These are some convience macros and defines.  
More...
 | 
| #define  | QB_ROUNDUP(x, y)   ((((x) + ((y) - 1)) / (y)) * (y)) | 
|   | 
| #define  | QB_ABS(i)   (((i) < 0) ? -(i) : (i)) | 
|   | 
| #define  | QB_MAX(a, b)   (((a) > (b)) ? (a) : (b)) | 
|   | 
| #define  | QB_MIN(a, b)   (((a) < (b)) ? (a) : (b)) | 
|   | 
| #define  | QB_FALSE   0 | 
|   | 
| #define  | QB_TRUE   (!QB_FALSE) | 
|   | 
| #define  | qb_bit_value(bit)   (1 << (bit)) | 
|   | 
| #define  | qb_bit_set(barray, bit)   (barray |= qb_bit_value(bit)) | 
|   | 
| #define  | qb_bit_clear(barray, bit)   (barray &= ~(qb_bit_value(bit))) | 
|   | 
| #define  | qb_bit_is_set(barray, bit)   (barray & qb_bit_value(bit)) | 
|   | 
| #define  | qb_bit_is_clear(barray, bit)   (!(barray & qb_bit_value(bit))) | 
|   | 
| #define  | QB_PP_JOIN_(a, b)   a##b | 
|   | 
| #define  | QB_PP_JOIN(a, b)   QB_PP_JOIN_(a, b) | 
|   | 
| #define  | QB_PP_STRINGIFY_(arg)   #arg | 
|   | 
| #define  | QB_PP_STRINGIFY(arg)   QB_PP_STRINGIFY_(arg) | 
|   | 
| #define  | HZ   100			/* 10ms */ | 
|   | 
| #define  | QB_TIME_MS_IN_SEC   1000ULL | 
|   | 
| #define  | QB_TIME_US_IN_SEC   1000000ULL | 
|   | 
| #define  | QB_TIME_NS_IN_SEC   1000000000ULL | 
|   | 
| #define  | QB_TIME_US_IN_MSEC   1000ULL | 
|   | 
| #define  | QB_TIME_NS_IN_MSEC   1000000ULL | 
|   | 
| #define  | QB_TIME_NS_IN_USEC   1000ULL | 
|   | 
| #define  | QB_GNUC_DEPRECATED | 
|   | 
| #define  | QB_GNUC_DEPRECATED_FOR(f)   QB_GNUC_DEPRECATED | 
|   | 
| #define  | QB_GNUC_MAY_ALIAS | 
|   | 
These are some convience macros and defines. 
- Author
 - Angus Salkeld asalk.nosp@m.eld@.nosp@m.redha.nosp@m.t.co.nosp@m.m 
 
 
      
        
          | #define HZ   100			/* 10ms */ | 
        
      
 
 
      
        
          | #define QB_ABS | 
          ( | 
            | 
          i | ) | 
             (((i) < 0) ? -(i) : (i)) | 
        
      
 
 
      
        
          | #define qb_bit_clear | 
          ( | 
            | 
          barray,  | 
        
        
           | 
           | 
            | 
          bit  | 
        
        
           | 
          ) | 
           |    (barray &= ~(qb_bit_value(bit))) | 
        
      
 
 
      
        
          | #define qb_bit_is_clear | 
          ( | 
            | 
          barray,  | 
        
        
           | 
           | 
            | 
          bit  | 
        
        
           | 
          ) | 
           |    (!(barray & qb_bit_value(bit))) | 
        
      
 
 
      
        
          | #define qb_bit_is_set | 
          ( | 
            | 
          barray,  | 
        
        
           | 
           | 
            | 
          bit  | 
        
        
           | 
          ) | 
           |    (barray & qb_bit_value(bit)) | 
        
      
 
 
      
        
          | #define qb_bit_set | 
          ( | 
            | 
          barray,  | 
        
        
           | 
           | 
            | 
          bit  | 
        
        
           | 
          ) | 
           |    (barray |= qb_bit_value(bit)) | 
        
      
 
 
      
        
          | #define qb_bit_value | 
          ( | 
            | 
          bit | ) | 
             (1 << (bit)) | 
        
      
 
 
      
        
          | #define QB_GNUC_DEPRECATED | 
        
      
 
 
      
        
          | #define QB_GNUC_MAY_ALIAS | 
        
      
 
 
      
        
          | #define QB_MAX | 
          ( | 
            | 
          a,  | 
        
        
           | 
           | 
            | 
          b  | 
        
        
           | 
          ) | 
           |    (((a) > (b)) ? (a) : (b)) | 
        
      
 
 
      
        
          | #define QB_MIN | 
          ( | 
            | 
          a,  | 
        
        
           | 
           | 
            | 
          b  | 
        
        
           | 
          ) | 
           |    (((a) < (b)) ? (a) : (b)) | 
        
      
 
 
      
        
          | #define QB_PP_JOIN_ | 
          ( | 
            | 
          a,  | 
        
        
           | 
           | 
            | 
          b  | 
        
        
           | 
          ) | 
           |    a##b | 
        
      
 
 
      
        
          | #define QB_PP_STRINGIFY_ | 
          ( | 
            | 
          arg | ) | 
             #arg | 
        
      
 
 
      
        
          | #define QB_ROUNDUP | 
          ( | 
            | 
          x,  | 
        
        
           | 
           | 
            | 
          y  | 
        
        
           | 
          ) | 
           |    ((((x) + ((y) - 1)) / (y)) * (y)) | 
        
      
 
 
      
        
          | #define QB_TIME_MS_IN_SEC   1000ULL | 
        
      
 
 
      
        
          | #define QB_TIME_NS_IN_MSEC   1000000ULL | 
        
      
 
 
      
        
          | #define QB_TIME_NS_IN_SEC   1000000000ULL | 
        
      
 
 
      
        
          | #define QB_TIME_NS_IN_USEC   1000ULL | 
        
      
 
 
      
        
          | #define QB_TIME_US_IN_MSEC   1000ULL | 
        
      
 
 
      
        
          | #define QB_TIME_US_IN_SEC   1000000ULL |