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 11struct page; 12struct kmem_cache; 13 14typedef 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 */ 28typedef uint64_t u64; 29typedef int64_t s64; 30 31typedef __u32 u32; 32typedef __s32 s32; 33 34typedef __u16 u16; 35typedef __s16 s16; 36 37typedef __u8 u8; 38typedef __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 56typedef __u16 __bitwise __le16; 57typedef __u16 __bitwise __be16; 58typedef __u32 __bitwise __le32; 59typedef __u32 __bitwise __be32; 60typedef __u64 __bitwise __le64; 61typedef __u64 __bitwise __be64; 62 63struct list_head { 64 struct list_head *next, *prev; 65}; 66 67struct hlist_head { 68 struct hlist_node *first; 69}; 70 71struct hlist_node { 72 struct hlist_node *next, **pprev; 73}; 74 75#endif /* _TOOLS_LINUX_TYPES_H_ */ 76