Primatives for number manipulation.  
More...
Go to the source code of this file.
 | 
| #define  | _AC(num,  suf)   __tok(num, suf) | 
|   | Create an integer usable in both C and Assembly, even when suf is needed.  More...
  | 
|   | 
| #define  | KB(num)   (_AC(num, ULL) << 10) | 
|   | Express num in Kilobytes.  More...
  | 
|   | 
| #define  | MB(num)   (_AC(num, ULL) << 20) | 
|   | Express num in Megabytes.  More...
  | 
|   | 
| #define  | GB(num)   (_AC(num, ULL) << 30) | 
|   | Express num in Gigabytes.  More...
  | 
|   | 
| #define  | TB(num)   (_AC(num, ULL) << 40) | 
|   | Express num in Terabytes.  More...
  | 
|   | 
| #define  | IS_ALIGNED(val,  align)   (((val) & ((align) - 1)) == 0) | 
|   | Return a boolean indicating whether val is aligned on align.  More...
  | 
|   | 
| #define  | MASK_EXTR(v,  m)   (((v) & (m)) / ((m) & -(m))) | 
|   | 
| #define  | MASK_INSR(v,  m)   (((v) * ((m) & -(m))) & (m)) | 
|   | 
| #define  | _p(v)   ((void*)(unsigned long)(v)) | 
|   | Express an abitrary integer v as void *.  More...
  | 
|   | 
| #define  | _u(v)   ((unsigned long)(v)) | 
|   | Express an arbitrary value v as unsigned long.  More...
  | 
|   | 
Primatives for number manipulation. 
Definition in file numbers.h.
 
◆ _AC
      
        
          | #define _AC | 
          ( | 
            | 
          num,  | 
        
        
           | 
           | 
            | 
          suf  | 
        
        
           | 
          ) | 
           |    __tok(num, suf) | 
        
      
 
Create an integer usable in both C and Assembly, even when suf is needed. 
Definition at line 16 of file numbers.h.
 
 
◆ KB
      
        
          | #define KB | 
          ( | 
            | 
          num | ) | 
             (_AC(num, ULL) << 10) | 
        
      
 
Express num in Kilobytes. 
Definition at line 23 of file numbers.h.
 
 
◆ MB
      
        
          | #define MB | 
          ( | 
            | 
          num | ) | 
             (_AC(num, ULL) << 20) | 
        
      
 
Express num in Megabytes. 
Definition at line 26 of file numbers.h.
 
 
◆ GB
      
        
          | #define GB | 
          ( | 
            | 
          num | ) | 
             (_AC(num, ULL) << 30) | 
        
      
 
Express num in Gigabytes. 
Definition at line 29 of file numbers.h.
 
 
◆ TB
      
        
          | #define TB | 
          ( | 
            | 
          num | ) | 
             (_AC(num, ULL) << 40) | 
        
      
 
Express num in Terabytes. 
Definition at line 32 of file numbers.h.
 
 
◆ IS_ALIGNED
      
        
          | #define IS_ALIGNED | 
          ( | 
            | 
          val,  | 
        
        
           | 
           | 
            | 
          align  | 
        
        
           | 
          ) | 
           |    (((val) & ((align) - 1)) == 0) | 
        
      
 
Return a boolean indicating whether val is aligned on align. 
align is required to be exact power of two. 
Definition at line 38 of file numbers.h.
 
 
◆ MASK_EXTR
      
        
          | #define MASK_EXTR | 
          ( | 
            | 
          v,  | 
        
        
           | 
           | 
            | 
          m  | 
        
        
           | 
          ) | 
           |    (((v) & (m)) / ((m) & -(m))) | 
        
      
 
 
◆ MASK_INSR
      
        
          | #define MASK_INSR | 
          ( | 
            | 
          v,  | 
        
        
           | 
           | 
            | 
          m  | 
        
        
           | 
          ) | 
           |    (((v) * ((m) & -(m))) & (m)) | 
        
      
 
 
◆ _p
      
        
          | #define _p | 
          ( | 
            | 
          v | ) | 
             ((void*)(unsigned long)(v)) | 
        
      
 
Express an abitrary integer v as void *. 
Definition at line 48 of file numbers.h.
 
 
◆ _u
      
        
          | #define _u | 
          ( | 
            | 
          v | ) | 
             ((unsigned long)(v)) | 
        
      
 
Express an arbitrary value v as unsigned long. 
Definition at line 53 of file numbers.h.