1 #ifndef _TOOLS_LINUX_TYPES_H_ 2 #define _TOOLS_LINUX_TYPES_H_ 3 4 #include <stdbool.h> 5 #include <stddef.h> 6 #include <stdint.h> 7 8 #define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ 9 #include <asm/types.h> 10 11 struct page; 12 struct kmem_cache; 13 14 typedef enum { 15 GFP_KERNEL, 16 GFP_ATOMIC, 17 __GFP_HIGHMEM, 18 __GFP_HIGH 19 } gfp_t; 20 21 /* 22 * We define u64 as uint64_t for every architecture 23 * so that we can print it with "%"PRIx64 without getting warnings. 24 * 25 * typedef __u64 u64; 26 * typedef __s64 s64; 27 */ 28 typedef uint64_t u64; 29 typedef int64_t s64; 30 31 typedef __u32 u32; 32 typedef __s32 s32; 33 34 typedef __u16 u16; 35 typedef __s16 s16; 36 37 typedef __u8 u8; 38 typedef __s8 s8; 39 40 #ifdef __CHECKER__ 41 #define __bitwise__ __attribute__((bitwise)) 42 #else 43 #define __bitwise__ 44 #endif 45 #ifdef __CHECK_ENDIAN__ 46 #define __bitwise __bitwise__ 47 #else 48 #define __bitwise 49 #endif 50 51 #define __force 52 #define __user 53 #define __must_check 54 #define __cold 55 56 typedef __u16 __bitwise __le16; 57 typedef __u16 __bitwise __be16; 58 typedef __u32 __bitwise __le32; 59 typedef __u32 __bitwise __be32; 60 typedef __u64 __bitwise __le64; 61 typedef __u64 __bitwise __be64; 62 63 typedef struct { 64 int counter; 65 } atomic_t; 66 67 #ifndef __aligned_u64 68 # define __aligned_u64 __u64 __attribute__((aligned(8))) 69 #endif 70 71 struct list_head { 72 struct list_head *next, *prev; 73 }; 74 75 struct hlist_head { 76 struct hlist_node *first; 77 }; 78 79 struct hlist_node { 80 struct hlist_node *next, **pprev; 81 }; 82 83 #endif /* _TOOLS_LINUX_TYPES_H_ */ 84