linux/include/uapi/linux/const.h
<<
>>
Prefs
   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