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