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