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