1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _TOOLS_LINUX_TYPES_H_ |
3 | #define _TOOLS_LINUX_TYPES_H_ |
4 | |
5 | #include <stdbool.h> |
6 | #include <stddef.h> |
7 | #include <stdint.h> |
8 | |
9 | #ifndef __SANE_USERSPACE_TYPES__ |
10 | #define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ |
11 | #endif |
12 | |
13 | #include <asm/types.h> |
14 | #include <asm/posix_types.h> |
15 | |
16 | struct page; |
17 | struct kmem_cache; |
18 | |
19 | typedef enum { |
20 | GFP_KERNEL, |
21 | GFP_ATOMIC, |
22 | __GFP_HIGHMEM, |
23 | __GFP_HIGH |
24 | } gfp_t; |
25 | |
26 | /* |
27 | * We define u64 as uint64_t for every architecture |
28 | * so that we can print it with "%"PRIx64 without getting warnings. |
29 | * |
30 | * typedef __u64 u64; |
31 | * typedef __s64 s64; |
32 | */ |
33 | typedef uint64_t u64; |
34 | typedef int64_t s64; |
35 | |
36 | typedef __u32 u32; |
37 | typedef __s32 s32; |
38 | |
39 | typedef __u16 u16; |
40 | typedef __s16 s16; |
41 | |
42 | typedef __u8 u8; |
43 | typedef __s8 s8; |
44 | |
45 | #ifdef __CHECKER__ |
46 | #define __bitwise __attribute__((bitwise)) |
47 | #else |
48 | #define __bitwise |
49 | #endif |
50 | |
51 | #define __force |
52 | /* This is defined in linux/compiler_types.h and is left for backward |
53 | * compatibility. |
54 | */ |
55 | #ifndef __user |
56 | #define __user |
57 | #endif |
58 | #define __must_check |
59 | #define __cold |
60 | |
61 | typedef __u16 __bitwise __le16; |
62 | typedef __u16 __bitwise __be16; |
63 | typedef __u32 __bitwise __le32; |
64 | typedef __u32 __bitwise __be32; |
65 | typedef __u64 __bitwise __le64; |
66 | typedef __u64 __bitwise __be64; |
67 | |
68 | typedef __u16 __bitwise __sum16; |
69 | typedef __u32 __bitwise __wsum; |
70 | |
71 | #ifdef CONFIG_PHYS_ADDR_T_64BIT |
72 | typedef u64 phys_addr_t; |
73 | #else |
74 | typedef u32 phys_addr_t; |
75 | #endif |
76 | |
77 | typedef struct { |
78 | int counter; |
79 | } atomic_t; |
80 | |
81 | typedef struct { |
82 | long counter; |
83 | } atomic_long_t; |
84 | |
85 | #ifndef __aligned_u64 |
86 | # define __aligned_u64 __u64 __attribute__((aligned(8))) |
87 | #endif |
88 | |
89 | struct list_head { |
90 | struct list_head *next, *prev; |
91 | }; |
92 | |
93 | struct hlist_head { |
94 | struct hlist_node *first; |
95 | }; |
96 | |
97 | struct hlist_node { |
98 | struct hlist_node *next, **pprev; |
99 | }; |
100 | |
101 | #endif /* _TOOLS_LINUX_TYPES_H_ */ |
102 | |