Go to the source code of this file.
|  | 
| #define | CLIB_UNIX | 
|  | 
| #define | BITS(x)   (8*sizeof(x)) | 
|  | 
| #define | ARRAY_LEN(x)   (sizeof (x)/sizeof (x[0])) | 
|  | 
| #define | STRUCT_OFFSET_OF(t,  f)   offsetof(t, f) | 
|  | 
| #define | STRUCT_BIT_OFFSET_OF(t,  f)   (BITS(u8) * STRUCT_OFFSET_OF (t, f)) | 
|  | 
| #define | STRUCT_SIZE_OF(t,  f)   (sizeof (_STRUCT_FIELD (t, f))) | 
|  | 
| #define | STRUCT_BITS_OF(t,  f)   (BITS (_STRUCT_FIELD (t, f))) | 
|  | 
| #define | STRUCT_ARRAY_LEN(t,  f)   ARRAY_LEN (_STRUCT_FIELD (t, f)) | 
|  | 
| #define | STRUCT_MARK(mark)   u8 mark[0] | 
|  | 
| #define | STRUCT_MARK_PTR(v,  f)   &(v)->f | 
|  | 
| #define | STRUCT_STRIDE_OF(t,  f) | 
|  | 
| #define | STRUCT_OFFSET_OF_VAR(v,  f)   ((uword) (&(v)->f) - (uword) (v)) | 
|  | 
| #define | CLIB_PACKED(x)   x __attribute__ ((packed)) | 
|  | 
| #define | CLIB_UNUSED(x)   x __attribute__ ((unused)) | 
|  | 
| #define | CLIB_ALIGN_MARK(name,  alignment)   u8 name[0] __attribute__((aligned(alignment))) | 
|  | 
| #define | CLIB_STRING_MACRO(x)   #x | 
|  | 
| #define | never_inline   __attribute__ ((__noinline__)) | 
|  | 
| #define | always_inline   static inline | 
|  | 
| #define | static_always_inline   static inline | 
|  | 
| #define | u8   pad_from[(to) - (from)] u8 pad_##from[(to) - (from)] | 
|  | Padding.  More... 
 | 
|  | 
| #define | PREDICT_FALSE(x)   __builtin_expect((x),0) | 
|  | 
| #define | PREDICT_TRUE(x)   __builtin_expect((x),1) | 
|  | 
| #define | CLIB_COMPILER_BARRIER()   asm volatile ("":::"memory") | 
|  | 
| #define | CLIB_MEMORY_BARRIER()   __sync_synchronize () | 
|  | 
| #define | CLIB_MEMORY_STORE_BARRIER()   __builtin_ia32_sfence () | 
|  | 
| #define | INIT_FUNCTION(decl) | 
|  | 
| #define | EXIT_FUNCTION(decl) | 
|  | 
| #define | count_leading_zeros(x)   __builtin_clzl (x) | 
|  | 
| #define | count_trailing_zeros(x)   __builtin_ctzl (x) | 
|  | 
| #define | clib_max(x,  y) | 
|  | 
| #define | clib_min(x,  y) | 
|  | 
| #define | clib_clamp(x,  lo,  hi) | 
|  | 
| #define | clib_abs(x) | 
|  | 
◆ always_inline
      
        
          | #define always_inline   static inline | 
      
 
 
◆ ARRAY_LEN
      
        
          | #define ARRAY_LEN | ( |  | x | ) | (sizeof (x)/sizeof (x[0])) | 
      
 
 
◆ BITS
      
        
          | #define BITS | ( |  | x | ) | (8*sizeof(x)) | 
      
 
 
◆ clib_abs
Value:({                                              \
  __typeof__ (x) _x = (x);                      \
  _x < 0 ? -_x : _x;                            \
})
Definition at line 343 of file clib.h.
 
 
◆ CLIB_ALIGN_MARK
      
        
          | #define CLIB_ALIGN_MARK | ( |  | name, | 
        
          |  |  |  | alignment | 
        
          |  | ) |  | u8 name[0] __attribute__((aligned(alignment))) | 
      
 
 
◆ clib_clamp
      
        
          | #define clib_clamp | ( |  | x, | 
        
          |  |  |  | lo, | 
        
          |  |  |  | hi | 
        
          |  | ) |  |  | 
      
 
Value:({                                              \
  __typeof__ (x) _x = (x);                      \
  __typeof__ (
lo) _lo = (
lo);                   \
  __typeof__ (
hi) _hi = (
hi);                   \
  _x < _lo ? _lo : (_x > _hi ? _hi : _x);       \
})
Definition at line 335 of file clib.h.
 
 
◆ CLIB_COMPILER_BARRIER
      
        
          | #define CLIB_COMPILER_BARRIER | ( |  | ) | asm volatile ("":::"memory") | 
      
 
 
◆ clib_max
      
        
          | #define clib_max | ( |  | x, | 
        
          |  |  |  | y | 
        
          |  | ) |  |  | 
      
 
Value:({                                              \
  __typeof__ (x) _x = (x);                      \
  __typeof__ (y) _y = (y);                      \
  _x > _y ? _x : _y;                            \
})
Definition at line 321 of file clib.h.
 
 
◆ CLIB_MEMORY_BARRIER
      
        
          | #define CLIB_MEMORY_BARRIER | ( |  | ) | __sync_synchronize () | 
      
 
 
◆ CLIB_MEMORY_STORE_BARRIER
      
        
          | #define CLIB_MEMORY_STORE_BARRIER | ( |  | ) | __builtin_ia32_sfence () | 
      
 
 
◆ clib_min
      
        
          | #define clib_min | ( |  | x, | 
        
          |  |  |  | y | 
        
          |  | ) |  |  | 
      
 
Value:({                                              \
  __typeof__ (x) _x = (x);                      \
  __typeof__ (y) _y = (y);                      \
  _x < _y ? _x : _y;                            \
})
Definition at line 328 of file clib.h.
 
 
◆ CLIB_PACKED
      
        
          | #define CLIB_PACKED | ( |  | x | ) | x __attribute__ ((packed)) | 
      
 
 
◆ CLIB_STRING_MACRO
      
        
          | #define CLIB_STRING_MACRO | ( |  | x | ) | #x | 
      
 
 
◆ CLIB_UNIX
◆ CLIB_UNUSED
      
        
          | #define CLIB_UNUSED | ( |  | x | ) | x __attribute__ ((unused)) | 
      
 
 
◆ count_leading_zeros
      
        
          | #define count_leading_zeros | ( |  | x | ) | __builtin_clzl (x) | 
      
 
 
◆ count_trailing_zeros
      
        
          | #define count_trailing_zeros | ( |  | x | ) | __builtin_ctzl (x) | 
      
 
 
◆ EXIT_FUNCTION
      
        
          | #define EXIT_FUNCTION | ( |  | decl | ) |  | 
      
 
Value:decl __attribute ((destructor));                \
  decl
Definition at line 147 of file clib.h.
 
 
◆ INIT_FUNCTION
      
        
          | #define INIT_FUNCTION | ( |  | decl | ) |  | 
      
 
Value:decl __attribute ((constructor));               \
  decl
Definition at line 142 of file clib.h.
 
 
◆ never_inline
      
        
          | #define never_inline   __attribute__ ((__noinline__)) | 
      
 
 
◆ PREDICT_FALSE
      
        
          | #define PREDICT_FALSE | ( |  | x | ) | __builtin_expect((x),0) | 
      
 
 
◆ PREDICT_TRUE
      
        
          | #define PREDICT_TRUE | ( |  | x | ) | __builtin_expect((x),1) | 
      
 
 
◆ static_always_inline
      
        
          | #define static_always_inline   static inline | 
      
 
 
◆ STRUCT_ARRAY_LEN
      
        
          | #define STRUCT_ARRAY_LEN | ( |  | t, | 
        
          |  |  |  | f | 
        
          |  | ) |  | ARRAY_LEN (_STRUCT_FIELD (t, f)) | 
      
 
 
◆ STRUCT_BIT_OFFSET_OF
◆ STRUCT_BITS_OF
      
        
          | #define STRUCT_BITS_OF | ( |  | t, | 
        
          |  |  |  | f | 
        
          |  | ) |  | (BITS (_STRUCT_FIELD (t, f))) | 
      
 
 
◆ STRUCT_MARK
      
        
          | #define STRUCT_MARK | ( |  | mark | ) | u8 mark[0] | 
      
 
 
◆ STRUCT_MARK_PTR
      
        
          | #define STRUCT_MARK_PTR | ( |  | v, | 
        
          |  |  |  | f | 
        
          |  | ) |  | &(v)->f | 
      
 
 
◆ STRUCT_OFFSET_OF
      
        
          | #define STRUCT_OFFSET_OF | ( |  | t, | 
        
          |  |  |  | f | 
        
          |  | ) |  | offsetof(t, f) | 
      
 
 
◆ STRUCT_OFFSET_OF_VAR
      
        
          | #define STRUCT_OFFSET_OF_VAR | ( |  | v, | 
        
          |  |  |  | f | 
        
          |  | ) |  | ((uword) (&(v)->f) - (uword) (v)) | 
      
 
 
◆ STRUCT_SIZE_OF
      
        
          | #define STRUCT_SIZE_OF | ( |  | t, | 
        
          |  |  |  | f | 
        
          |  | ) |  | (sizeof (_STRUCT_FIELD (t, f))) | 
      
 
 
◆ STRUCT_STRIDE_OF
      
        
          | #define STRUCT_STRIDE_OF | ( |  | t, | 
        
          |  |  |  | f | 
        
          |  | ) |  |  | 
      
 
Value:(  ((
uword) & (((t *) 0)[1].f))         \
   - ((
uword) & (((t *) 0)[0].f)))
Definition at line 79 of file clib.h.
 
 
◆ u8
      
        
          | #define u8   pad_from[(to) - (from)] u8 pad_##from[(to) - (from)] | 
      
 
Padding. 
Definition at line 118 of file clib.h.
 
 
◆ clib_backtrace()
◆ extract_bits()
  
  | 
        
          | static uword extract_bits | ( | uword | x, |  
          |  |  | int | start, |  
          |  |  | int | count |  
          |  | ) |  |  |  | inlinestatic | 
 
 
◆ first_set()
◆ flt_round_down()
  
  | 
        
          | static f64 flt_round_down | ( | f64 | x | ) |  |  | inlinestatic | 
 
 
◆ flt_round_nearest()
  
  | 
        
          | static word flt_round_nearest | ( | f64 | x | ) |  |  | inlinestatic | 
 
 
◆ flt_round_to_multiple()
  
  | 
        
          | static f64 flt_round_to_multiple | ( | f64 | x, |  
          |  |  | f64 | f |  
          |  | ) |  |  |  | inlinestatic | 
 
 
◆ is_pow2()
◆ log2_first_set()
◆ max_log2()
◆ max_pow2()
◆ min_log2()
◆ min_log2_u64()
  
  | 
        
          | static u64 min_log2_u64 | ( | u64 | x | ) |  |  | inlinestatic | 
 
 
◆ pow2_mask()
◆ round_down_pow2()
◆ round_pow2()
◆ round_pow2_u64()
  
  | 
        
          | static u64 round_pow2_u64 | ( | u64 | x, |  
          |  |  | u64 | pow2 |  
          |  | ) |  |  |  | inlinestatic |