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