1 #ifndef LINUX_TYPES_H 2 #define LINUX_TYPES_H 3 4 #include <stdint.h> 5 6 #define __s8 int8_t 7 #define __u8 uint8_t 8 9 #define __s16 int16_t 10 #define __u16 uint16_t 11 12 #define __s32 int32_t 13 #define __u32 uint32_t 14 15 #define __s64 long long 16 #define __u64 unsigned long long 17 18 typedef __u64 u64; 19 typedef __s64 s64; 20 21 typedef __u32 u32; 22 typedef __s32 s32; 23 24 typedef __u16 u16; 25 typedef __s16 s16; 26 27 typedef __u8 u8; 28 typedef __s8 s8; 29 30 #ifdef __CHECKER__ 31 #define __bitwise__ __attribute__((bitwise)) 32 #else 33 #define __bitwise__ 34 #endif 35 #ifdef __CHECK_ENDIAN__ 36 #define __bitwise __bitwise__ 37 #else 38 #define __bitwise 39 #endif 40 41 42 typedef __u16 __bitwise __le16; 43 typedef __u16 __bitwise __be16; 44 typedef __u32 __bitwise __le32; 45 typedef __u32 __bitwise __be32; 46 typedef __u64 __bitwise __le64; 47 typedef __u64 __bitwise __be64; 48 49 struct list_head { 50 struct list_head *next, *prev; 51 }; 52 53 struct hlist_head { 54 struct hlist_node *first; 55 }; 56 57 struct hlist_node { 58 struct hlist_node *next, **pprev; 59 }; 60 61 #endif /* LINUX_TYPES_H */ 62