File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/const.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /* const.h: Macros for dealing with constants.  */
       2: 
       3: #ifndef _LINUX_CONST_H
       4: #define _LINUX_CONST_H
       5: 
       6: /* Some constant macros are used in both assembler and
       7:  * C code.  Therefore we cannot annotate them always with
       8:  * 'UL' and other type specifiers unilaterally.  We
       9:  * use the following macros to deal with this.
      10:  *
      11:  * Similarly, _AT() will cast an expression with a type in C, but
      12:  * leave it unchanged in asm.
      13:  */
      14: 
      15: #ifdef __ASSEMBLY__
      16: #define _AC(X,Y)    X
      17: #define _AT(T,X)    X
      18: #else
      19: #define __AC(X,Y)    (X##Y)
      20: #define _AC(X,Y)    __AC(X,Y)
      21: #define _AT(T,X)    ((T)(X))
      22: #endif
      23: 
      24: #define _BITUL(x)    (_AC(1,UL) << (x))
      25: #define _BITULL(x)    (_AC(1,ULL) << (x))
      26: 
      27: #endif /* !(_LINUX_CONST_H) */
      28: