1 /* vi: set sw=4 ts=4: */
2 /*
3  * This header makes it easier to include kernel headers
4  * which use u32 and such.
5  *
6  * Licensed under GPLv2, see file LICENSE in this source tree.
7  */
8 #ifndef FIX_U32_H
9 #define FIX_U32_H 1
10 
11 /* Try hard to pull in u32 types and such.
12  * Otherwise, #include "fix_u32.h" + #include <linux/foo.h>
13  * may end up typedef'ing bb_hack_u32 inside foo.h,
14  * and repeated typedefs aren't allowed in C/C++.
15  */
16 #include <asm/types.h>
17 #include <linux/types.h>
18 
19 /* In case above includes still failed to provide the types,
20  * provide them ourself
21  */
22 #undef __u64
23 #undef u64
24 #undef u32
25 #undef u16
26 #undef u8
27 #undef __s64
28 #undef s64
29 #undef s32
30 #undef s16
31 #undef s8
32 
33 #define __u64 bb_hack___u64
34 #define u64   bb_hack_u64
35 #define u32   bb_hack_u32
36 #define u16   bb_hack_u16
37 #define u8    bb_hack_u8
38 #define __s64 bb_hack___s64
39 #define s64   bb_hack_s64
40 #define s32   bb_hack_s32
41 #define s16   bb_hack_s16
42 #define s8    bb_hack_s8
43 
44 typedef uint64_t __u64;
45 typedef uint64_t u64;
46 typedef uint32_t u32;
47 typedef uint16_t u16;
48 typedef uint8_t u8;
49 typedef int64_t __s64;
50 typedef int64_t s64;
51 typedef int32_t s32;
52 typedef int16_t s16;
53 typedef int8_t s8;
54 
55 #endif
56