Whamcloud - gitweb
build: use MKDIR_P instead of MKINSTALLDIRS
[tools/e2fsprogs.git] / lib / ext2fs / ext2_types.h.in
index 1d82c5d..98cc65b 100644 (file)
-/* 
+/*
  * If linux/types.h is already been included, assume it has defined
- * everything we need.  (cross fingers)  Other header files may have 
+ * everything we need.  (cross fingers)  Other header files may have
  * also defined the types that we need.
  */
 #if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
-       !defined(_UUID_TYPES) && !defined(_EXT2_TYPES_H))
+       !defined(_EXT2_TYPES_H))
 #define _EXT2_TYPES_H
 
-typedef unsigned char __u8;
-typedef signed char __s8;
+@ASM_TYPES_HEADER@
 
-#if (@SIZEOF_INT@ == 8)
-typedef int            __s64;
-typedef unsigned int   __u64;
-#elif (@SIZEOF_LONG@ == 8)
-typedef long           __s64;
-typedef unsigned long  __u64;
-#elif (@SIZEOF_LONG_LONG@ == 8)
-#if defined(__GNUC__)
-typedef __signed__ long long   __s64;
+#ifndef HAVE___U8
+#define HAVE___U8
+#ifdef __U8_TYPEDEF
+typedef __U8_TYPEDEF __u8;
 #else
-typedef signed long long       __s64;
+typedef unsigned char __u8;
 #endif
-typedef unsigned long long     __u64;
+#endif /* HAVE___U8 */
+
+#ifndef HAVE___S8
+#define HAVE___S8
+#ifdef __S8_TYPEDEF
+typedef __S8_TYPEDEF __s8;
+#else
+typedef signed char __s8;
 #endif
+#endif /* HAVE___S8 */
 
+#ifndef HAVE___U16
+#define HAVE___U16
+#ifdef __U16_TYPEDEF
+typedef __U16_TYPEDEF __u16;
+#else
 #if (@SIZEOF_INT@ == 2)
-typedef        int             __s16;
 typedef        unsigned int    __u16;
-#elif (@SIZEOF_SHORT@ == 2)
-typedef        short           __s16;
+#else
+#if (@SIZEOF_SHORT@ == 2)
 typedef        unsigned short  __u16;
 #else
+#undef HAVE___U16
   ?==error: undefined 16 bit type
-#endif
+#endif /* SIZEOF_SHORT == 2 */
+#endif /* SIZEOF_INT == 2 */
+#endif /* __U16_TYPEDEF */
+#endif /* HAVE___U16 */
 
+#ifndef HAVE___S16
+#define HAVE___S16
+#ifdef __S16_TYPEDEF
+typedef __S16_TYPEDEF __s16;
+#else
+#if (@SIZEOF_INT@ == 2)
+typedef        int             __s16;
+#else
+#if (@SIZEOF_SHORT@ == 2)
+typedef        short           __s16;
+#else
+#undef HAVE___S16
+  ?==error: undefined 16 bit type
+#endif /* SIZEOF_SHORT == 2 */
+#endif /* SIZEOF_INT == 2 */
+#endif /* __S16_TYPEDEF */
+#endif /* HAVE___S16 */
+
+#ifndef HAVE___U32
+#define HAVE___U32
+#ifdef __U32_TYPEDEF
+typedef __U32_TYPEDEF __u32;
+#else
 #if (@SIZEOF_INT@ == 4)
-typedef        int             __s32;
 typedef        unsigned int    __u32;
-#elif (@SIZEOF_LONG@ == 4)
-typedef        long            __s32;
+#else
+#if (@SIZEOF_LONG@ == 4)
 typedef        unsigned long   __u32;
-#elif (@SIZEOF_SHORT@ == 4)
-typedef        short           __s32;
+#else
+#if (@SIZEOF_SHORT@ == 4)
 typedef        unsigned short  __u32;
 #else
+#undef HAVE___U32
  ?== error: undefined 32 bit type
-#endif
+#endif /* SIZEOF_SHORT == 4 */
+#endif /* SIZEOF_LONG == 4 */
+#endif /* SIZEOF_INT == 4 */
+#endif /* __U32_TYPEDEF */
+#endif /* HAVE___U32 */
+
+#ifndef HAVE___S32
+#define HAVE___S32
+#ifdef __S32_TYPEDEF
+typedef __S32_TYPEDEF __s32;
+#else
+#if (@SIZEOF_INT@ == 4)
+typedef        int             __s32;
+#else
+#if (@SIZEOF_LONG@ == 4)
+typedef        long            __s32;
+#else
+#if (@SIZEOF_SHORT@ == 4)
+typedef        short           __s32;
+#else
+#undef HAVE___S32
+ ?== error: undefined 32 bit type
+#endif /* SIZEOF_SHORT == 4 */
+#endif /* SIZEOF_LONG == 4 */
+#endif /* SIZEOF_INT == 4 */
+#endif /* __S32_TYPEDEF */
+#endif /* HAVE___S32 */
+
+#ifndef HAVE___U64
+#define HAVE___U64
+#ifdef __U64_TYPEDEF
+typedef __U64_TYPEDEF __u64;
+#else
+#if (@SIZEOF_INT@ == 8)
+typedef unsigned int   __u64;
+#else
+#if (@SIZEOF_LONG_LONG@ == 8)
+typedef unsigned long long     __u64;
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef unsigned long  __u64;
+#else
+#undef HAVE___U64
+ ?== error: undefined 64 bit type
+#endif /* SIZEOF_LONG_LONG == 8 */
+#endif /* SIZEOF_LONG == 8 */
+#endif /* SIZEOF_INT == 8 */
+#endif /* __U64_TYPEDEF */
+#endif /* HAVE___U64 */
+
+#ifndef HAVE___S64
+#define HAVE___S64
+#ifdef __S64_TYPEDEF
+typedef __S64_TYPEDEF __s64;
+#else
+#if (@SIZEOF_INT@ == 8)
+typedef int            __s64;
+#else
+#if (@SIZEOF_LONG_LONG@ == 8)
+#if defined(__GNUC__)
+typedef __signed__ long long   __s64;
+#else
+typedef signed long long       __s64;
+#endif /* __GNUC__ */
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef long           __s64;
+#else
+#undef HAVE___S64
+ ?== error: undefined 64 bit type
+#endif /* SIZEOF_LONG_LONG == 8 */
+#endif /* SIZEOF_LONG == 8 */
+#endif /* SIZEOF_INT == 8 */
+#endif /* __S64_TYPEDEF */
+#endif /* HAVE___S64 */
+
+#undef __S8_TYPEDEF
+#undef __U8_TYPEDEF
+#undef __S16_TYPEDEF
+#undef __U16_TYPEDEF
+#undef __S32_TYPEDEF
+#undef __U32_TYPEDEF
+#undef __S64_TYPEDEF
+#undef __U64_TYPEDEF
 
 #endif /* _*_TYPES_H */
+
+#include <stdint.h>
+
+/* endian checking stuff */
+#ifndef EXT2_ENDIAN_H_
+#define EXT2_ENDIAN_H_
+
+#ifdef __CHECKER__
+# ifndef __bitwise
+#  define __bitwise            __attribute__((bitwise))
+# endif
+#define __force                        __attribute__((force))
+#else
+# ifndef __bitwise
+#  define __bitwise
+# endif
+#define __force
+#endif
+
+typedef __u16  __bitwise       __le16;
+typedef __u32  __bitwise       __le32;
+typedef __u64  __bitwise       __le64;
+typedef __u16  __bitwise       __be16;
+typedef __u32  __bitwise       __be32;
+typedef __u64  __bitwise       __be64;
+
+#endif /* EXT2_ENDIAN_H_ */
+
+@PUBLIC_CONFIG_HEADER@