ext2_types.h revision 18a1444b4f1e6a0948fd38fa0de382d86cfe04de
1/*
2 * If linux/types.h is already been included, assume it has defined
3 * everything we need.  (cross fingers)  Other header files may have
4 * also defined the types that we need.
5 */
6#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
7	!defined(_EXT2_TYPES_H))
8#define _EXT2_TYPES_H
9
10
11#ifdef __U8_TYPEDEF
12typedef __U8_TYPEDEF __u8;
13#else
14typedef unsigned char __u8;
15#endif
16
17#ifdef __S8_TYPEDEF
18typedef __S8_TYPEDEF __s8;
19#else
20typedef signed char __s8;
21#endif
22
23#ifdef __U16_TYPEDEF
24typedef __U16_TYPEDEF __u16;
25#else
26#if (4 == 2)
27typedef	unsigned int	__u16;
28#else
29#if (2 == 2)
30typedef	unsigned short	__u16;
31#else
32  ?==error: undefined 16 bit type
33#endif /* SIZEOF_SHORT == 2 */
34#endif /* SIZEOF_INT == 2 */
35#endif /* __U16_TYPEDEF */
36
37#ifdef __S16_TYPEDEF
38typedef __S16_TYPEDEF __s16;
39#else
40#if (4 == 2)
41typedef	int		__s16;
42#else
43#if (2 == 2)
44typedef	short		__s16;
45#else
46  ?==error: undefined 16 bit type
47#endif /* SIZEOF_SHORT == 2 */
48#endif /* SIZEOF_INT == 2 */
49#endif /* __S16_TYPEDEF */
50
51
52#ifdef __U32_TYPEDEF
53typedef __U32_TYPEDEF __u32;
54#else
55#if (4 == 4)
56typedef	unsigned int	__u32;
57#else
58#if (4 == 4)
59typedef	unsigned long	__u32;
60#else
61#if (2 == 4)
62typedef	unsigned short	__u32;
63#else
64 ?== error: undefined 32 bit type
65#endif /* SIZEOF_SHORT == 4 */
66#endif /* SIZEOF_LONG == 4 */
67#endif /* SIZEOF_INT == 4 */
68#endif /* __U32_TYPEDEF */
69
70#ifdef __S32_TYPEDEF
71typedef __S32_TYPEDEF __s32;
72#else
73#if (4 == 4)
74typedef	int		__s32;
75#else
76#if (4 == 4)
77typedef	long		__s32;
78#else
79#if (2 == 4)
80typedef	short		__s32;
81#else
82 ?== error: undefined 32 bit type
83#endif /* SIZEOF_SHORT == 4 */
84#endif /* SIZEOF_LONG == 4 */
85#endif /* SIZEOF_INT == 4 */
86#endif /* __S32_TYPEDEF */
87
88#ifdef __U64_TYPEDEF
89typedef __U64_TYPEDEF __u64;
90#else
91#if (4 == 8)
92typedef unsigned int	__u64;
93#else
94#if (8 == 8)
95typedef unsigned long long	__u64;
96#else
97#if (4 == 8)
98typedef unsigned long	__u64;
99#endif /* SIZEOF_LONG_LONG == 8 */
100#endif /* SIZEOF_LONG == 8 */
101#endif /* SIZEOF_INT == 8 */
102#endif /* __U64_TYPEDEF */
103
104#ifdef __S64_TYPEDEF
105typedef __S64_TYPEDEF __s64;
106#else
107#if (4 == 8)
108typedef int		__s64;
109#else
110#if (8 == 8)
111#if defined(__GNUC__)
112typedef __signed__ long long	__s64;
113#else
114typedef signed long long	__s64;
115#endif /* __GNUC__ */
116#else
117#if (4 == 8)
118typedef long		__s64;
119#endif /* SIZEOF_LONG_LONG == 8 */
120#endif /* SIZEOF_LONG == 8 */
121#endif /* SIZEOF_INT == 8 */
122#endif /* __S64_TYPEDEF */
123
124#undef __S8_TYPEDEF
125#undef __U8_TYPEDEF
126#undef __S16_TYPEDEF
127#undef __U16_TYPEDEF
128#undef __S32_TYPEDEF
129#undef __U32_TYPEDEF
130#undef __S64_TYPEDEF
131#undef __U64_TYPEDEF
132
133#endif /* _*_TYPES_H */
134
135/* These defines are needed for the public ext2fs.h header file */
136#define HAVE_SYS_TYPES_H 1
137#undef WORDS_BIGENDIAN
138