1e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o/*
2e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o * If linux/types.h is already been included, assume it has defined
3ed78c021c3b111d8ab9a51aef5d5156e3004083fTheodore Ts'o * everything we need.  (cross fingers)  Other header files may have
4ed78c021c3b111d8ab9a51aef5d5156e3004083fTheodore Ts'o * also defined the types that we need.
5e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o */
6ed78c021c3b111d8ab9a51aef5d5156e3004083fTheodore Ts'o#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
72625803ecff90ba8ab60d3c6b83a1ea0c91d2294Theodore Ts'o	!defined(_EXT2_TYPES_H))
8ed78c021c3b111d8ab9a51aef5d5156e3004083fTheodore Ts'o#define _BLKID_TYPES_H
9e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o
104ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o@ASM_TYPES_HEADER@
114ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
124ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __U8_TYPEDEF
134ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __U8_TYPEDEF __u8;
144ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
15e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef unsigned char __u8;
164ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif
174ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
184ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __S8_TYPEDEF
194ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __S8_TYPEDEF __s8;
204ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
21e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef signed char __s8;
224ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif
23e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o
244ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __U16_TYPEDEF
254ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __U16_TYPEDEF __u16;
2648e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#else
274ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_INT@ == 2)
284ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef	unsigned int	__u16;
2948e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#else
304ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_SHORT@ == 2)
314ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef	unsigned short	__u16;
32e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o#else
334ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o  ?==error: undefined 16 bit type
344ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_SHORT == 2 */
354ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_INT == 2 */
364ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __U16_TYPEDEF */
37e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o
384ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __S16_TYPEDEF
394ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __S16_TYPEDEF __s16;
404ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
41e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o#if (@SIZEOF_INT@ == 2)
42e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef	int		__s16;
4348e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#else
4448e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#if (@SIZEOF_SHORT@ == 2)
45e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef	short		__s16;
46e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o#else
47e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o  ?==error: undefined 16 bit type
4848e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#endif /* SIZEOF_SHORT == 2 */
4948e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#endif /* SIZEOF_INT == 2 */
504ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __S16_TYPEDEF */
514ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
52e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o
534ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __U32_TYPEDEF
544ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __U32_TYPEDEF __u32;
554ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
56e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o#if (@SIZEOF_INT@ == 4)
57e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef	unsigned int	__u32;
5848e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#else
5948e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#if (@SIZEOF_LONG@ == 4)
60e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef	unsigned long	__u32;
6148e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#else
6248e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#if (@SIZEOF_SHORT@ == 4)
63e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'otypedef	unsigned short	__u32;
64e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o#else
65e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o ?== error: undefined 32 bit type
6648e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#endif /* SIZEOF_SHORT == 4 */
6748e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#endif /* SIZEOF_LONG == 4 */
6848e6e81362f264aee4f3945c14928efaf71a06c9Theodore Ts'o#endif /* SIZEOF_INT == 4 */
694ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __U32_TYPEDEF */
704ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
714ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __S32_TYPEDEF
724ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __S32_TYPEDEF __s32;
734ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
744ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_INT@ == 4)
754ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef	int		__s32;
764ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
774ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_LONG@ == 4)
784ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef	long		__s32;
794ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
804ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_SHORT@ == 4)
814ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef	short		__s32;
824ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
834ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o ?== error: undefined 32 bit type
844ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_SHORT == 4 */
854ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_LONG == 4 */
864ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_INT == 4 */
874ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __S32_TYPEDEF */
884ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
894ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __U64_TYPEDEF
904ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __U64_TYPEDEF __u64;
914ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
924ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_INT@ == 8)
934ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef unsigned int	__u64;
944ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
9565f0aab98b20b5994a726ab90d355248bcddfffdJP Abgrall#if (@SIZEOF_LONG_LONG@ == 8)
9665f0aab98b20b5994a726ab90d355248bcddfffdJP Abgralltypedef unsigned long long	__u64;
97e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#else
98e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#if (@SIZEOF_LONG@ == 8)
99e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef unsigned long	__u64;
10065f0aab98b20b5994a726ab90d355248bcddfffdJP Abgrall#endif /* SIZEOF_LONG == 8 */
101e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#endif /* SIZEOF_LONG_LONG == 8 */
1024ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_INT == 8 */
1034ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __U64_TYPEDEF */
1044ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
1054ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#ifdef __S64_TYPEDEF
1064ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __S64_TYPEDEF __s64;
1074ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
1084ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_INT@ == 8)
1094ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef int		__s64;
1104ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
1114ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if (@SIZEOF_LONG_LONG@ == 8)
1124ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#if defined(__GNUC__)
1134ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef __signed__ long long 	__s64;
1144ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#else
1154ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'otypedef signed long long 	__s64;
1164ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __GNUC__ */
117e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#else
118e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#if (@SIZEOF_LONG@ == 8)
119e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltypedef long		__s64;
12065f0aab98b20b5994a726ab90d355248bcddfffdJP Abgrall#endif /* SIZEOF_LONG == 8 */
121e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#endif /* SIZEOF_LONG_LONG == 8 */
1224ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* SIZEOF_INT == 8 */
1234ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#endif /* __S64_TYPEDEF */
1244ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o
1254ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __S8_TYPEDEF
1264ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __U8_TYPEDEF
1274ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __S16_TYPEDEF
1284ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __U16_TYPEDEF
1294ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __S32_TYPEDEF
1304ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __U32_TYPEDEF
1314ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __S64_TYPEDEF
1324ea7ea007bb227727ee1d4dca997c4f5b21d3a30Theodore Ts'o#undef __U64_TYPEDEF
133e12f2ae74c2eb8997bf13adf8fdd7e7313971eaeTheodore Ts'o
134ed78c021c3b111d8ab9a51aef5d5156e3004083fTheodore Ts'o#endif /* _*_TYPES_H */
135