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