blob: aa7ca3a9c5f52aa892b680db026df56ea5280332 [file] [log] [blame]
Theodore Ts'o65794882001-06-14 00:24:42 +00001/*
2 * If linux/types.h is already been included, assume it has defined
Theodore Ts'oed78c022003-03-06 11:09:18 -05003 * everything we need. (cross fingers) Other header files may have
4 * also defined the types that we need.
Theodore Ts'o65794882001-06-14 00:24:42 +00005 */
Theodore Ts'oed78c022003-03-06 11:09:18 -05006#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
Theodore Ts'o26258032004-04-03 10:20:26 -05007 !defined(_EXT2_TYPES_H))
Theodore Ts'oed78c022003-03-06 11:09:18 -05008#define _EXT2_TYPES_H
Theodore Ts'o65794882001-06-14 00:24:42 +00009
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -040010@ASM_TYPES_HEADER@
Theodore Ts'o50e1e101997-04-26 13:58:21 +000011
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -040012#ifdef __U8_TYPEDEF
13typedef __U8_TYPEDEF __u8;
14#else
15typedef unsigned char __u8;
16#endif
17
18#ifdef __S8_TYPEDEF
19typedef __S8_TYPEDEF __s8;
20#else
21typedef signed char __s8;
22#endif
23
24#ifdef __U16_TYPEDEF
25typedef __U16_TYPEDEF __u16;
26#else
27#if (@SIZEOF_INT@ == 2)
28typedef unsigned int __u16;
29#else
30#if (@SIZEOF_SHORT@ == 2)
31typedef unsigned short __u16;
32#else
33 ?==error: undefined 16 bit type
34#endif /* SIZEOF_SHORT == 2 */
35#endif /* SIZEOF_INT == 2 */
36#endif /* __U16_TYPEDEF */
37
38#ifdef __S16_TYPEDEF
39typedef __S16_TYPEDEF __s16;
40#else
41#if (@SIZEOF_INT@ == 2)
42typedef int __s16;
43#else
44#if (@SIZEOF_SHORT@ == 2)
45typedef short __s16;
46#else
47 ?==error: undefined 16 bit type
48#endif /* SIZEOF_SHORT == 2 */
49#endif /* SIZEOF_INT == 2 */
50#endif /* __S16_TYPEDEF */
51
52
53#ifdef __U32_TYPEDEF
54typedef __U32_TYPEDEF __u32;
55#else
56#if (@SIZEOF_INT@ == 4)
57typedef unsigned int __u32;
58#else
59#if (@SIZEOF_LONG@ == 4)
60typedef unsigned long __u32;
61#else
62#if (@SIZEOF_SHORT@ == 4)
63typedef unsigned short __u32;
64#else
65 ?== error: undefined 32 bit type
66#endif /* SIZEOF_SHORT == 4 */
67#endif /* SIZEOF_LONG == 4 */
68#endif /* SIZEOF_INT == 4 */
69#endif /* __U32_TYPEDEF */
70
71#ifdef __S32_TYPEDEF
72typedef __S32_TYPEDEF __s32;
73#else
74#if (@SIZEOF_INT@ == 4)
75typedef int __s32;
76#else
77#if (@SIZEOF_LONG@ == 4)
78typedef long __s32;
79#else
80#if (@SIZEOF_SHORT@ == 4)
81typedef short __s32;
82#else
83 ?== error: undefined 32 bit type
84#endif /* SIZEOF_SHORT == 4 */
85#endif /* SIZEOF_LONG == 4 */
86#endif /* SIZEOF_INT == 4 */
87#endif /* __S32_TYPEDEF */
88
89#ifdef __U64_TYPEDEF
90typedef __U64_TYPEDEF __u64;
91#else
Theodore Ts'o1e3472c1997-04-29 14:53:37 +000092#if (@SIZEOF_INT@ == 8)
Theodore Ts'o1e3472c1997-04-29 14:53:37 +000093typedef unsigned int __u64;
Theodore Ts'o48e6e812003-07-06 00:36:48 -040094#else
95#if (@SIZEOF_LONG@ == 8)
Theodore Ts'o1e3472c1997-04-29 14:53:37 +000096typedef unsigned long __u64;
Theodore Ts'o48e6e812003-07-06 00:36:48 -040097#else
98#if (@SIZEOF_LONG_LONG@ == 8)
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -040099typedef unsigned long long __u64;
100#endif /* SIZEOF_LONG_LONG == 8 */
101#endif /* SIZEOF_LONG == 8 */
102#endif /* SIZEOF_INT == 8 */
103#endif /* __U64_TYPEDEF */
104
105#ifdef __S64_TYPEDEF
106typedef __S64_TYPEDEF __s64;
107#else
108#if (@SIZEOF_INT@ == 8)
109typedef int __s64;
110#else
111#if (@SIZEOF_LONG@ == 8)
112typedef long __s64;
113#else
114#if (@SIZEOF_LONG_LONG@ == 8)
Theodore Ts'odefde781999-01-04 07:39:19 +0000115#if defined(__GNUC__)
Theodore Ts'od171c5b1998-04-03 16:07:06 +0000116typedef __signed__ long long __s64;
Theodore Ts'odefde781999-01-04 07:39:19 +0000117#else
118typedef signed long long __s64;
Theodore Ts'o48e6e812003-07-06 00:36:48 -0400119#endif /* __GNUC__ */
Theodore Ts'o48e6e812003-07-06 00:36:48 -0400120#endif /* SIZEOF_LONG_LONG == 8 */
121#endif /* SIZEOF_LONG == 8 */
122#endif /* SIZEOF_INT == 8 */
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400123#endif /* __S64_TYPEDEF */
Theodore Ts'o1e3472c1997-04-29 14:53:37 +0000124
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400125#undef __S8_TYPEDEF
126#undef __U8_TYPEDEF
127#undef __S16_TYPEDEF
128#undef __U16_TYPEDEF
129#undef __S32_TYPEDEF
130#undef __U32_TYPEDEF
131#undef __S64_TYPEDEF
132#undef __U64_TYPEDEF
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000133
Theodore Ts'oed78c022003-03-06 11:09:18 -0500134#endif /* _*_TYPES_H */
Theodore Ts'o488c75a2008-06-07 08:55:21 -0400135
136@PUBLIC_CONFIG_HEADER@