26#include <rte_config.h>
36#define RTE_LCORE_VAR_HANDLE_TYPE(type) \
51#define RTE_LCORE_VAR_HANDLE(type, name) \
52 RTE_LCORE_VAR_HANDLE_TYPE(type) name
59#define RTE_LCORE_VAR_ALLOC_SIZE_ALIGN(handle, size, align) \
60 handle = rte_lcore_var_alloc(size, align)
68#define RTE_LCORE_VAR_ALLOC_SIZE(handle, size) \
69 RTE_LCORE_VAR_ALLOC_SIZE_ALIGN(handle, size, 0)
77#define RTE_LCORE_VAR_ALLOC(handle) \
78 RTE_LCORE_VAR_ALLOC_SIZE_ALIGN(handle, sizeof(*(handle)), \
79 alignof(typeof(*(handle))))
87#define RTE_LCORE_VAR_INIT_SIZE_ALIGN(name, size, align) \
88 RTE_INIT(rte_lcore_var_init_ ## name) \
90 RTE_LCORE_VAR_ALLOC_SIZE_ALIGN(name, size, align); \
99#define RTE_LCORE_VAR_INIT_SIZE(name, size) \
100 RTE_LCORE_VAR_INIT_SIZE_ALIGN(name, size, 0)
107#define RTE_LCORE_VAR_INIT(name) \
108 RTE_INIT(rte_lcore_var_init_ ## name) \
110 RTE_LCORE_VAR_ALLOC(name); \
128 return RTE_PTR_ADD(handle, lcore_id * RTE_MAX_LCORE_VAR);
143#define RTE_LCORE_VAR_LCORE(lcore_id, handle) \
144 ((typeof(handle))rte_lcore_var_lcore(lcore_id, handle))
151#define RTE_LCORE_VAR(handle) \
152 RTE_LCORE_VAR_LCORE(rte_lcore_id(), handle)
166#define RTE_LCORE_VAR_FOREACH(lcore_id, value, handle) \
168 (((value) = RTE_LCORE_VAR_LCORE(0, handle)), 0); \
169 (lcore_id) < RTE_MAX_LCORE; \
170 (lcore_id)++, (value) = RTE_LCORE_VAR_LCORE(lcore_id, \
#define __rte_alloc_align(argno)
#define __rte_alloc_size(...)
#define RTE_PTR_ADD(ptr, x)
__rte_experimental void * rte_lcore_var_alloc(size_t size, size_t align) __rte_alloc_size(1) __rte_alloc_align(2)
static void * rte_lcore_var_lcore(unsigned int lcore_id, void *handle)