1*4418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause 2*4418919fSjohnjiang * Copyright(c) 2019 Intel Corporation 3*4418919fSjohnjiang */ 4*4418919fSjohnjiang 5*4418919fSjohnjiang #include "rte_stack.h" 6*4418919fSjohnjiang 7*4418919fSjohnjiang void rte_stack_std_init(struct rte_stack * s)8*4418919fSjohnjiangrte_stack_std_init(struct rte_stack *s) 9*4418919fSjohnjiang { 10*4418919fSjohnjiang rte_spinlock_init(&s->stack_std.lock); 11*4418919fSjohnjiang } 12*4418919fSjohnjiang 13*4418919fSjohnjiang ssize_t rte_stack_std_get_memsize(unsigned int count)14*4418919fSjohnjiangrte_stack_std_get_memsize(unsigned int count) 15*4418919fSjohnjiang { 16*4418919fSjohnjiang ssize_t sz = sizeof(struct rte_stack); 17*4418919fSjohnjiang 18*4418919fSjohnjiang sz += RTE_CACHE_LINE_ROUNDUP(count * sizeof(void *)); 19*4418919fSjohnjiang 20*4418919fSjohnjiang /* Add padding to avoid false sharing conflicts caused by 21*4418919fSjohnjiang * next-line hardware prefetchers. 22*4418919fSjohnjiang */ 23*4418919fSjohnjiang sz += 2 * RTE_CACHE_LINE_SIZE; 24*4418919fSjohnjiang 25*4418919fSjohnjiang return sz; 26*4418919fSjohnjiang } 27