blob: c26e5d1922f34a1ac343ab222b8bb7ab8d26980e [file] [log] [blame]
Denys Vlasenko0568b6e2009-08-08 03:20:12 +02001/* 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 the GPL version 2, see the file LICENSE in this tarball.
7 */
8#ifndef FIX_U32_H
9#define FIX_U32_H 1
10
Denys Vlasenko09b76722010-03-16 01:22:35 +010011/* 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 */
Denys Vlasenko8cb40362010-03-06 20:50:29 +010022#undef __u64
Denys Vlasenko0568b6e2009-08-08 03:20:12 +020023#undef u64
24#undef u32
25#undef u16
26#undef u8
Denys Vlasenko8cb40362010-03-06 20:50:29 +010027#undef __s64
Denys Vlasenko0568b6e2009-08-08 03:20:12 +020028#undef s64
29#undef s32
30#undef s16
31#undef s8
32
Denys Vlasenkoc77e4782010-03-08 21:53:45 +010033#define __u64 bb_hack___u64
Denys Vlasenko09b76722010-03-16 01:22:35 +010034#define u64 bb_hack_u64
35#define u32 bb_hack_u32
36#define u16 bb_hack_u16
37#define u8 bb_hack_u8
Denys Vlasenkoc77e4782010-03-08 21:53:45 +010038#define __s64 bb_hack___s64
Denys Vlasenko09b76722010-03-16 01:22:35 +010039#define s64 bb_hack_s64
40#define s32 bb_hack_s32
41#define s16 bb_hack_s16
42#define s8 bb_hack_s8
Denys Vlasenko0568b6e2009-08-08 03:20:12 +020043
Denys Vlasenko8cb40362010-03-06 20:50:29 +010044typedef uint64_t __u64;
Denys Vlasenko0568b6e2009-08-08 03:20:12 +020045typedef uint64_t u64;
46typedef uint32_t u32;
47typedef uint16_t u16;
48typedef uint8_t u8;
Denys Vlasenko8cb40362010-03-06 20:50:29 +010049typedef int64_t __s64;
Denys Vlasenko0568b6e2009-08-08 03:20:12 +020050typedef int64_t s64;
51typedef int32_t s32;
52typedef int16_t s16;
53typedef int8_t s8;
54
55#endif