types: add C99-style constructors to <asm-generic/int-*.h>
[linux-2.6.git] / include / asm-generic / int-l64.h
1 /*
2  * asm-generic/int-l64.h
3  *
4  * Integer declarations for architectures which use "long"
5  * for 64-bit types.
6  */
7
8 #ifndef _ASM_GENERIC_INT_L64_H
9 #define _ASM_GENERIC_INT_L64_H
10
11 #ifndef __ASSEMBLY__
12 /*
13  * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
14  * header files exported to user space
15  */
16
17 typedef __signed__ char __s8;
18 typedef unsigned char __u8;
19
20 typedef __signed__ short __s16;
21 typedef unsigned short __u16;
22
23 typedef __signed__ int __s32;
24 typedef unsigned int __u32;
25
26 typedef __signed__ long __s64;
27 typedef unsigned long __u64;
28
29 #endif /* __ASSEMBLY__ */
30
31 #ifdef __KERNEL__
32
33 #ifndef __ASSEMBLY__
34
35 typedef signed char s8;
36 typedef unsigned char u8;
37
38 typedef signed short s16;
39 typedef unsigned short u16;
40
41 typedef signed int s32;
42 typedef unsigned int u32;
43
44 typedef signed long s64;
45 typedef unsigned long u64;
46
47 #define S8_C(x)  x
48 #define U8_C(x)  x ## U
49 #define S16_C(x) x
50 #define U16_C(x) x ## U
51 #define S32_C(x) x
52 #define U32_C(x) x ## U
53 #define S64_C(x) x ## L
54 #define U64_C(x) x ## UL
55
56 #else /* __ASSEMBLY__ */
57
58 #define S8_C(x)  x
59 #define U8_C(x)  x
60 #define S16_C(x) x
61 #define U16_C(x) x
62 #define S32_C(x) x
63 #define U32_C(x) x
64 #define S64_C(x) x
65 #define U64_C(x) x
66
67 #endif /* __ASSEMBLY__ */
68
69 #endif /* __KERNEL__ */
70
71 #endif /* _ASM_GENERIC_INT_L64_H */