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 #include <asm/bitsperlong.h>
12 
13 #ifndef __ASSEMBLY__
14 /*
15  * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
16  * header files exported to user space
17  */
18 
19 typedef __signed__ char __s8;
20 typedef unsigned char __u8;
21 
22 typedef __signed__ short __s16;
23 typedef unsigned short __u16;
24 
25 typedef __signed__ int __s32;
26 typedef unsigned int __u32;
27 
28 typedef __signed__ long __s64;
29 typedef unsigned long __u64;
30 
31 #endif /* __ASSEMBLY__ */
32 
33 #ifdef __KERNEL__
34 
35 #ifndef __ASSEMBLY__
36 
37 typedef signed char s8;
38 typedef unsigned char u8;
39 
40 typedef signed short s16;
41 typedef unsigned short u16;
42 
43 typedef signed int s32;
44 typedef unsigned int u32;
45 
46 typedef signed long s64;
47 typedef unsigned long u64;
48 
49 #define S8_C(x)  x
50 #define U8_C(x)  x ## U
51 #define S16_C(x) x
52 #define U16_C(x) x ## U
53 #define S32_C(x) x
54 #define U32_C(x) x ## U
55 #define S64_C(x) x ## L
56 #define U64_C(x) x ## UL
57 
58 #else /* __ASSEMBLY__ */
59 
60 #define S8_C(x)  x
61 #define U8_C(x)  x
62 #define S16_C(x) x
63 #define U16_C(x) x
64 #define S32_C(x) x
65 #define U32_C(x) x
66 #define S64_C(x) x
67 #define U64_C(x) x
68 
69 #endif /* __ASSEMBLY__ */
70 
71 #endif /* __KERNEL__ */
72 
73 #endif /* _ASM_GENERIC_INT_L64_H */
74