32 #define RTE_BIT64(nr) (UINT64_C(1) << (nr)) 40 #define RTE_BIT32(nr) (UINT32_C(1) << (nr)) 54 static inline uint32_t
59 uint32_t mask = UINT32_C(1) << nr;
60 return (*addr) & mask;
77 *addr = (*addr) | mask;
94 *addr = (*addr) & (~mask);
108 static inline uint32_t
114 uint32_t val = *addr;
130 static inline uint32_t
136 uint32_t val = *addr;
137 *addr = val & (~mask);
153 static inline uint64_t
159 return (*addr) & mask;
176 (*addr) = (*addr) | mask;
193 *addr = (*addr) & (~mask);
207 static inline uint64_t
213 uint64_t val = *addr;
229 static inline uint64_t
235 uint64_t val = *addr;
236 *addr = val & (~mask);
240 #ifdef RTE_TOOLCHAIN_MSVC 250 static inline unsigned int 255 (void)_BitScanReverse(&rv, v);
257 return (
unsigned int)(
sizeof(v) * CHAR_BIT - 1 - rv);
268 static inline unsigned int 273 (void)_BitScanReverse64(&rv, v);
275 return (
unsigned int)(
sizeof(v) * CHAR_BIT - 1 - rv);
286 static inline unsigned int 291 (void)_BitScanForward(&rv, v);
293 return (
unsigned int)rv;
304 static inline unsigned int 309 (void)_BitScanForward64(&rv, v);
311 return (
unsigned int)rv;
322 static inline unsigned int 325 return (
unsigned int)__popcnt(v);
336 static inline unsigned int 339 return (
unsigned int)__popcnt64(v);
352 static inline unsigned int 355 return (
unsigned int)__builtin_clz(v);
366 static inline unsigned int 369 return (
unsigned int)__builtin_clzll(v);
380 static inline unsigned int 383 return (
unsigned int)__builtin_ctz(v);
394 static inline unsigned int 397 return (
unsigned int)__builtin_ctzll(v);
408 static inline unsigned int 411 return (
unsigned int)__builtin_popcount(v);
422 static inline unsigned int 425 return (
unsigned int)__builtin_popcountll(v);
440 static inline uint32_t
462 static inline uint64_t
486 static inline uint32_t
527 static inline uint32_t
568 static inline uint32_t
586 static inline uint32_t
597 #define RTE_IS_POWER_OF_2(n) ((n) && !(((n) - 1) & (n))) 608 return n && !(n & (n - 1));
620 static inline uint32_t
638 static inline uint32_t
655 static inline uint64_t
673 static inline uint64_t
692 static inline uint32_t
712 static inline uint32_t
static int rte_bsf32_safe(uint32_t v, uint32_t *pos)
static void rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
static void rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
static unsigned int rte_popcount32(uint32_t v)
static uint32_t rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
static uint32_t rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
static unsigned int rte_clz32(uint32_t v)
static uint32_t rte_bsf32(uint32_t v)
static void rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
static uint32_t rte_align32prevpow2(uint32_t x)
static uint32_t rte_fls_u64(uint64_t x)
static uint32_t rte_bsf64(uint64_t v)
static uint32_t rte_align32pow2(uint32_t x)
static uint32_t rte_fls_u32(uint32_t x)
static int rte_is_power_of_2(uint32_t n)
static int rte_bsf64_safe(uint64_t v, uint32_t *pos)
static uint64_t rte_align64prevpow2(uint64_t v)
static uint32_t rte_log2_u32(uint32_t v)
static unsigned int rte_ctz64(uint64_t v)
static uint64_t rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
static unsigned int rte_ctz32(uint32_t v)
static uint64_t rte_align64pow2(uint64_t v)
static uint64_t rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
static uint64_t rte_bit_relaxed_test_and_clear64(unsigned int nr, volatile uint64_t *addr)
static uint32_t rte_combine32ms1b(uint32_t x)
static uint64_t rte_combine64ms1b(uint64_t v)
static void rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
static unsigned int rte_popcount64(uint64_t v)
static uint32_t rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
static unsigned int rte_clz64(uint64_t v)
static uint32_t rte_log2_u64(uint64_t v)