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 @ASM_TYPES_HEADER@ 11 12 #ifndef HAVE___U8 13 #define HAVE___U8 14 #ifdef __U8_TYPEDEF 15 typedef __U8_TYPEDEF __u8; 16 #else 17 typedef unsigned char __u8; 18 #endif 19 #endif /* HAVE___U8 */ 20 21 #ifndef HAVE___S8 22 #define HAVE___S8 23 #ifdef __S8_TYPEDEF 24 typedef __S8_TYPEDEF __s8; 25 #else 26 typedef signed char __s8; 27 #endif 28 #endif /* HAVE___S8 */ 29 30 #ifndef HAVE___U16 31 #define HAVE___U16 32 #ifdef __U16_TYPEDEF 33 typedef __U16_TYPEDEF __u16; 34 #else 35 #if (@SIZEOF_INT@ == 2) 36 typedef unsigned int __u16; 37 #else 38 #if (@SIZEOF_SHORT@ == 2) 39 typedef unsigned short __u16; 40 #else 41 #undef HAVE___U16 42 ?==error: undefined 16 bit type 43 #endif /* SIZEOF_SHORT == 2 */ 44 #endif /* SIZEOF_INT == 2 */ 45 #endif /* __U16_TYPEDEF */ 46 #endif /* HAVE___U16 */ 47 48 #ifndef HAVE___S16 49 #define HAVE___S16 50 #ifdef __S16_TYPEDEF 51 typedef __S16_TYPEDEF __s16; 52 #else 53 #if (@SIZEOF_INT@ == 2) 54 typedef int __s16; 55 #else 56 #if (@SIZEOF_SHORT@ == 2) 57 typedef short __s16; 58 #else 59 #undef HAVE___S16 60 ?==error: undefined 16 bit type 61 #endif /* SIZEOF_SHORT == 2 */ 62 #endif /* SIZEOF_INT == 2 */ 63 #endif /* __S16_TYPEDEF */ 64 #endif /* HAVE___S16 */ 65 66 #ifndef HAVE___U32 67 #define HAVE___U32 68 #ifdef __U32_TYPEDEF 69 typedef __U32_TYPEDEF __u32; 70 #else 71 #if (@SIZEOF_INT@ == 4) 72 typedef unsigned int __u32; 73 #else 74 #if (@SIZEOF_LONG@ == 4) 75 typedef unsigned long __u32; 76 #else 77 #if (@SIZEOF_SHORT@ == 4) 78 typedef unsigned short __u32; 79 #else 80 #undef HAVE___U32 81 ?== error: undefined 32 bit type 82 #endif /* SIZEOF_SHORT == 4 */ 83 #endif /* SIZEOF_LONG == 4 */ 84 #endif /* SIZEOF_INT == 4 */ 85 #endif /* __U32_TYPEDEF */ 86 #endif /* HAVE___U32 */ 87 88 #ifndef HAVE___S32 89 #define HAVE___S32 90 #ifdef __S32_TYPEDEF 91 typedef __S32_TYPEDEF __s32; 92 #else 93 #if (@SIZEOF_INT@ == 4) 94 typedef int __s32; 95 #else 96 #if (@SIZEOF_LONG@ == 4) 97 typedef long __s32; 98 #else 99 #if (@SIZEOF_SHORT@ == 4) 100 typedef short __s32; 101 #else 102 #undef HAVE___S32 103 ?== error: undefined 32 bit type 104 #endif /* SIZEOF_SHORT == 4 */ 105 #endif /* SIZEOF_LONG == 4 */ 106 #endif /* SIZEOF_INT == 4 */ 107 #endif /* __S32_TYPEDEF */ 108 #endif /* HAVE___S32 */ 109 110 #ifndef HAVE___U64 111 #define HAVE___U64 112 #ifdef __U64_TYPEDEF 113 typedef __U64_TYPEDEF __u64; 114 #else 115 #if (@SIZEOF_INT@ == 8) 116 typedef unsigned int __u64; 117 #else 118 #if (@SIZEOF_LONG_LONG@ == 8) 119 typedef unsigned long long __u64; 120 #else 121 #if (@SIZEOF_LONG@ == 8) 122 typedef unsigned long __u64; 123 #else 124 #undef HAVE___U64 125 ?== error: undefined 64 bit type 126 #endif /* SIZEOF_LONG_LONG == 8 */ 127 #endif /* SIZEOF_LONG == 8 */ 128 #endif /* SIZEOF_INT == 8 */ 129 #endif /* __U64_TYPEDEF */ 130 #endif /* HAVE___U64 */ 131 132 #ifndef HAVE___S64 133 #define HAVE___S64 134 #ifdef __S64_TYPEDEF 135 typedef __S64_TYPEDEF __s64; 136 #else 137 #if (@SIZEOF_INT@ == 8) 138 typedef int __s64; 139 #else 140 #if (@SIZEOF_LONG_LONG@ == 8) 141 #if defined(__GNUC__) 142 typedef __signed__ long long __s64; 143 #else 144 typedef signed long long __s64; 145 #endif /* __GNUC__ */ 146 #else 147 #if (@SIZEOF_LONG@ == 8) 148 typedef long __s64; 149 #else 150 #undef HAVE___S64 151 ?== error: undefined 64 bit type 152 #endif /* SIZEOF_LONG_LONG == 8 */ 153 #endif /* SIZEOF_LONG == 8 */ 154 #endif /* SIZEOF_INT == 8 */ 155 #endif /* __S64_TYPEDEF */ 156 #endif /* HAVE___S64 */ 157 158 #undef __S8_TYPEDEF 159 #undef __U8_TYPEDEF 160 #undef __S16_TYPEDEF 161 #undef __U16_TYPEDEF 162 #undef __S32_TYPEDEF 163 #undef __U32_TYPEDEF 164 #undef __S64_TYPEDEF 165 #undef __U64_TYPEDEF 166 167 #endif /* _*_TYPES_H */ 168 169 #include <stdint.h> 170 171 /* endian checking stuff */ 172 #ifndef EXT2_ENDIAN_H_ 173 #define EXT2_ENDIAN_H_ 174 175 #ifdef __CHECKER__ 176 # ifndef __bitwise 177 # define __bitwise __attribute__((bitwise)) 178 # endif 179 #define __force __attribute__((force)) 180 #else 181 # ifndef __bitwise 182 # define __bitwise 183 # endif 184 #define __force 185 #endif 186 187 typedef __u16 __bitwise __le16; 188 typedef __u32 __bitwise __le32; 189 typedef __u64 __bitwise __le64; 190 typedef __u16 __bitwise __be16; 191 typedef __u32 __bitwise __be32; 192 typedef __u64 __bitwise __be64; 193 194 #endif /* EXT2_ENDIAN_H_ */ 195 196 @PUBLIC_CONFIG_HEADER@