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
10typedef unsigned char __u8;
11typedef __signed__ char __s8;
12typedef unsigned short __u16;
13typedef __signed__ short __s16;
14typedef unsigned int __u32;
15typedef __signed__ int __s32;
16typedef unsigned long long __u64;
17typedef __signed__ long long __s64;
18#endif
19
20#include <stdint.h> //uintptr_t
21
22/* endian checking stuff */
23#ifndef EXT2_ENDIAN_H_
24#define EXT2_ENDIAN_H_
25
26#ifdef __CHECKER__
27#define __bitwise		__attribute__((bitwise))
28#define __force			__attribute__((force))
29#else
30#define __bitwise
31#define __force
32#endif
33
34typedef __u16	__bitwise	__le16;
35typedef __u32	__bitwise	__le32;
36typedef __u64	__bitwise	__le64;
37typedef __u16	__bitwise	__be16;
38typedef __u32	__bitwise	__be32;
39typedef __u64	__bitwise	__be64;
40
41#endif /* EXT2_ENDIAN_H_ */
42