• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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