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