/* 
 * If linux/types.h is already been included, assume it has defined
 * 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(_EXT2_TYPES_H))
#define _EXT2_TYPES_H

@ASM_TYPES_HEADER@

#ifdef __U8_TYPEDEF
typedef __U8_TYPEDEF __u8;
#else
typedef unsigned char __u8;
#endif

#ifdef __S8_TYPEDEF
typedef __S8_TYPEDEF __s8;
#else
typedef signed char __s8;
#endif

#ifdef __U16_TYPEDEF
typedef __U16_TYPEDEF __u16;
#else
#if (@SIZEOF_INT@ == 2)
typedef	unsigned int	__u16;
#else
#if (@SIZEOF_SHORT@ == 2)
typedef	unsigned short	__u16;
#else
  ?==error: undefined 16 bit type
#endif /* SIZEOF_SHORT == 2 */
#endif /* SIZEOF_INT == 2 */
#endif /* __U16_TYPEDEF */

#ifdef __S16_TYPEDEF
typedef __S16_TYPEDEF __s16;
#else
#if (@SIZEOF_INT@ == 2)
typedef	int		__s16;
#else
#if (@SIZEOF_SHORT@ == 2)
typedef	short		__s16;
#else
  ?==error: undefined 16 bit type
#endif /* SIZEOF_SHORT == 2 */
#endif /* SIZEOF_INT == 2 */
#endif /* __S16_TYPEDEF */


#ifdef __U32_TYPEDEF
typedef __U32_TYPEDEF __u32;
#else
#if (@SIZEOF_INT@ == 4)
typedef	unsigned int	__u32;
#else
#if (@SIZEOF_LONG@ == 4)
typedef	unsigned long	__u32;
#else
#if (@SIZEOF_SHORT@ == 4)
typedef	unsigned short	__u32;
#else
 ?== error: undefined 32 bit type
#endif /* SIZEOF_SHORT == 4 */
#endif /* SIZEOF_LONG == 4 */
#endif /* SIZEOF_INT == 4 */
#endif /* __U32_TYPEDEF */

#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
 ?== error: undefined 32 bit type
#endif /* SIZEOF_SHORT == 4 */
#endif /* SIZEOF_LONG == 4 */
#endif /* SIZEOF_INT == 4 */
#endif /* __S32_TYPEDEF */

#ifdef __U64_TYPEDEF
typedef __U64_TYPEDEF __u64;
#else
#if (@SIZEOF_INT@ == 8)
typedef unsigned int	__u64;
#else
#if (@SIZEOF_LONG@ == 8)
typedef unsigned long	__u64;
#else
#if (@SIZEOF_LONG_LONG@ == 8)
typedef unsigned long long	__u64;
#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
#endif /* __U64_TYPEDEF */

#ifdef __S64_TYPEDEF
typedef __S64_TYPEDEF __s64;
#else
#if (@SIZEOF_INT@ == 8)
typedef int		__s64;
#else
#if (@SIZEOF_LONG@ == 8)
typedef long		__s64;
#else
#if (@SIZEOF_LONG_LONG@ == 8)
#if defined(__GNUC__)
typedef __signed__ long long 	__s64;
#else
typedef signed long long 	__s64;
#endif /* __GNUC__ */
#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
#endif /* __S64_TYPEDEF */

#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 */

@PUBLIC_CONFIG_HEADER@
