55 while (__sync_lock_test_and_set (counter_lock, 1))
87 for (thread_index = 0; thread_index < tm->
n_vlib_mains; thread_index++)
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment) ...
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
volatile u32 * counter_lock
u64 vlib_refcount_get(vlib_refcount_t *r, u32 index)
static_always_inline void vlib_refcount_init(vlib_refcount_t *r)
#define static_always_inline
static u32 counter_index(vlib_main_t *vm, vlib_error_t e)
static_always_inline void vlib_refcount_unlock(volatile u32 *counter_lock)
static_always_inline void vlib_refcount_add(vlib_refcount_t *r, u32 thread_index, u32 counter_index, i32 v)
static_always_inline void vlib_refcount_lock(volatile u32 *counter_lock)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
static void * clib_mem_alloc_aligned(uword size, uword align)
static vlib_thread_main_t * vlib_get_thread_main()
#define CLIB_CACHE_LINE_BYTES
vlib_refcount_per_cpu_t * per_cpu