Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.