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