12#ifndef __XF_BIT_DEFS_H__ 
   13#define __XF_BIT_DEFS_H__ 
   39#define BIT31   0x80000000 
   40#define BIT30   0x40000000 
   41#define BIT29   0x20000000 
   42#define BIT28   0x10000000 
   43#define BIT27   0x08000000 
   44#define BIT26   0x04000000 
   45#define BIT25   0x02000000 
   46#define BIT24   0x01000000 
   47#define BIT23   0x00800000 
   48#define BIT22   0x00400000 
   49#define BIT21   0x00200000 
   50#define BIT20   0x00100000 
   51#define BIT19   0x00080000 
   52#define BIT18   0x00040000 
   53#define BIT17   0x00020000 
   54#define BIT16   0x00010000 
   55#define BIT15   0x00008000 
   56#define BIT14   0x00004000 
   57#define BIT13   0x00002000 
   58#define BIT12   0x00001000 
   59#define BIT11   0x00000800 
   60#define BIT10   0x00000400 
   61#define BIT9    0x00000200 
   62#define BIT8    0x00000100 
   63#define BIT7    0x00000080 
   64#define BIT6    0x00000040 
   65#define BIT5    0x00000020 
   66#define BIT4    0x00000010 
   67#define BIT3    0x00000008 
   68#define BIT2    0x00000004 
   69#define BIT1    0x00000002 
   70#define BIT0    0x00000001 
   82#define BIT63   (0x80000000ULL << 32) 
   83#define BIT62   (0x40000000ULL << 32) 
   84#define BIT61   (0x20000000ULL << 32) 
   85#define BIT60   (0x10000000ULL << 32) 
   86#define BIT59   (0x08000000ULL << 32) 
   87#define BIT58   (0x04000000ULL << 32) 
   88#define BIT57   (0x02000000ULL << 32) 
   89#define BIT56   (0x01000000ULL << 32) 
   90#define BIT55   (0x00800000ULL << 32) 
   91#define BIT54   (0x00400000ULL << 32) 
   92#define BIT53   (0x00200000ULL << 32) 
   93#define BIT52   (0x00100000ULL << 32) 
   94#define BIT51   (0x00080000ULL << 32) 
   95#define BIT50   (0x00040000ULL << 32) 
   96#define BIT49   (0x00020000ULL << 32) 
   97#define BIT48   (0x00010000ULL << 32) 
   98#define BIT47   (0x00008000ULL << 32) 
   99#define BIT46   (0x00004000ULL << 32) 
  100#define BIT45   (0x00002000ULL << 32) 
  101#define BIT44   (0x00001000ULL << 32) 
  102#define BIT43   (0x00000800ULL << 32) 
  103#define BIT42   (0x00000400ULL << 32) 
  104#define BIT41   (0x00000200ULL << 32) 
  105#define BIT40   (0x00000100ULL << 32) 
  106#define BIT39   (0x00000080ULL << 32) 
  107#define BIT38   (0x00000040ULL << 32) 
  108#define BIT37   (0x00000020ULL << 32) 
  109#define BIT36   (0x00000010ULL << 32) 
  110#define BIT35   (0x00000008ULL << 32) 
  111#define BIT34   (0x00000004ULL << 32) 
  112#define BIT33   (0x00000002ULL << 32) 
  113#define BIT32   (0x00000001ULL << 32) 
  135#define BIT(nr)                 (1UL << (nr)) 
  145#define BIT64(nr)               (1ULL << (nr)) 
  154#define BIT(nr)                 (1 << (nr)) 
  168#define BIT_SET0(var, n) ((var) &= ~BIT(n)) 
  178#define BIT_SET1(var, n) ((var) |= BIT(n)) 
  189#define BIT_SET(var, n, value) \ 
  190    ((value) ? BIT_SET1((var), (n)) : BIT_SET0((var), (n))) 
 
  200#define BIT_FLIP(var, n) ((var) ^= BIT(n)) 
  212#define BIT_GET(src, n) (((src) & BIT(n)) >> (n)) 
  215#ifndef BIT_GET_MODIFY0 
  224#define BIT_GET_MODIFY0(src, n) ((src) & ~BIT(n)) 
  227#ifndef BIT_GET_MODIFY1 
  236#define BIT_GET_MODIFY1(src, n) ((src) | BIT(n)) 
  239#ifndef BIT_GET_MODIFY 
  249#define BIT_GET_MODIFY(src, n, value) \ 
  250    ((value) ? BIT_GET_MODIFY1((src), (n)) : BIT_GET_MODIFY0((src), (n))) 
 
  253#ifndef BIT_GET_MODIFY_FLIP 
  262#define BIT_GET_MODIFY_FLIP(src, n) ((src) ^ BIT(n)) 
  282#define BITS_MASK(n) (((n) < 32) ? (BIT(n) - 1) : (~0UL)) 
  303#define BITS_SET0(var, bits_mask) ((var) &= ~(bits_mask)) 
  324#define BITS_SET1(var, bits_mask) ((var) |= (bits_mask)) 
  337#define BITS_FLIP(var, bits_mask) ((var) ^= (bits_mask)) 
  362#define BITS_GET(src, n, offset) (((src) & (BITS_MASK(n) << (offset))) >> (offset)) 
  375#define BITS_CHECK(src, bits_mask) (!!((src) & (bits_mask))) 
  378#ifndef BITS_GET_MODIFY 
  420#define BITS_GET_MODIFY(src, n, offset, value) \ 
  421    ((((src) ^ ((BITS_MASK(n) & (value)) << (offset))) \ 
  422             & (BITS_MASK(n) << (offset))) \ 
 
  434#define BITS_SET(src, n, offset, value) \ 
  435    ((src) = BITS_GET_MODIFY((src), (n), (offset), (value))) 
 
预定义. xf_attr.h 等头文件通过包含本文件减少对其余外部文件的直接依赖. 如: xfconfig.h.