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 63typedef struct { 64 int counter; 65} atomic_t; 66 67#ifndef __aligned_u64 68# define __aligned_u64 __u64 __attribute__((aligned(8))) 69#endif 70 71struct list_head { 72 struct list_head *next, *prev; 73}; 74 75struct hlist_head { 76 struct hlist_node *first; 77}; 78 79struct hlist_node { 80 struct hlist_node *next, **pprev; 81}; 82 83#endif /* _TOOLS_LINUX_TYPES_H_ */ 84