118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/*
218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * If linux/types.h is already been included, assume it has defined
318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * everything we need.  (cross fingers)  Other header files may have
418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * also defined the types that we need.
518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer */
618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer	!defined(_EXT2_TYPES_H))
818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define _EXT2_TYPES_H
918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
1018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
1118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __U8_TYPEDEF
1218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __U8_TYPEDEF __u8;
1318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
1418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef unsigned char __u8;
1518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif
1618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
1718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __S8_TYPEDEF
1818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __S8_TYPEDEF __s8;
1918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
2018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef signed char __s8;
2118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif
2218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
2318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __U16_TYPEDEF
2418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __U16_TYPEDEF __u16;
2518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
2618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 2)
2718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	unsigned int	__u16;
2818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
2918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (2 == 2)
3018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	unsigned short	__u16;
3118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
3218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer  ?==error: undefined 16 bit type
3318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_SHORT == 2 */
3418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 2 */
3518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __U16_TYPEDEF */
3618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
3718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __S16_TYPEDEF
3818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __S16_TYPEDEF __s16;
3918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
4018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 2)
4118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	int		__s16;
4218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
4318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (2 == 2)
4418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	short		__s16;
4518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
4618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer  ?==error: undefined 16 bit type
4718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_SHORT == 2 */
4818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 2 */
4918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __S16_TYPEDEF */
5018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
5118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
5218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __U32_TYPEDEF
5318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __U32_TYPEDEF __u32;
5418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
5518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 4)
5618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	unsigned int	__u32;
5718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
5818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 4)
5918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	unsigned long	__u32;
6018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
6118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (2 == 4)
6218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	unsigned short	__u32;
6318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
6418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer ?== error: undefined 32 bit type
6518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_SHORT == 4 */
6618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG == 4 */
6718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 4 */
6818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __U32_TYPEDEF */
6918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
7018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __S32_TYPEDEF
7118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __S32_TYPEDEF __s32;
7218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
7318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 4)
7418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	int		__s32;
7518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
7618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 4)
7718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	long		__s32;
7818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
7918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (2 == 4)
8018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef	short		__s32;
8118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
8218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer ?== error: undefined 32 bit type
8318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_SHORT == 4 */
8418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG == 4 */
8518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 4 */
8618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __S32_TYPEDEF */
8718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
8818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __U64_TYPEDEF
8918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __U64_TYPEDEF __u64;
9018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
9118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 8)
9218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef unsigned int	__u64;
9318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
9465f0aab98b20b5994a726ab90d355248bcddfffdJP Abgrall#if (8 == 8)
9565f0aab98b20b5994a726ab90d355248bcddfffdJP Abgralltypedef unsigned long long	__u64;
96e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#else
97e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#if (4 == 8)
98e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef unsigned long	__u64;
9918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG_LONG == 8 */
10018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG == 8 */
10118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 8 */
10218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __U64_TYPEDEF */
10318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
10418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __S64_TYPEDEF
10518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __S64_TYPEDEF __s64;
10618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
10718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (4 == 8)
10818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef int		__s64;
10918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
11018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if (8 == 8)
11118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#if defined(__GNUC__)
112e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef __signed__ long long	__s64;
11318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#else
114e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef signed long long	__s64;
11518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __GNUC__ */
116e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#else
117e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#if (4 == 8)
118e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef long		__s64;
11918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG_LONG == 8 */
12018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_LONG == 8 */
12118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* SIZEOF_INT == 8 */
12218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* __S64_TYPEDEF */
12318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
12418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __S8_TYPEDEF
12518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __U8_TYPEDEF
12618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __S16_TYPEDEF
12718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __U16_TYPEDEF
12818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __S32_TYPEDEF
12918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __U32_TYPEDEF
13018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __S64_TYPEDEF
13118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef __U64_TYPEDEF
13218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
13318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* _*_TYPES_H */
13418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer
13518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* These defines are needed for the public ext2fs.h header file */
13618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define HAVE_SYS_TYPES_H 1
13718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#undef WORDS_BIGENDIAN
138