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