Merge remote-tracking branch 'torvalds/master' into perf/core
[linux-2.6-microblaze.git] / tools / include / linux / types.h
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 #define __bitwise __bitwise__
51
52 #define __force
53 #define __user
54 #define __must_check
55 #define __cold
56
57 typedef __u16 __bitwise __le16;
58 typedef __u16 __bitwise __be16;
59 typedef __u32 __bitwise __le32;
60 typedef __u32 __bitwise __be32;
61 typedef __u64 __bitwise __le64;
62 typedef __u64 __bitwise __be64;
63
64 typedef __u16 __bitwise __sum16;
65 typedef __u32 __bitwise __wsum;
66
67 typedef struct {
68         int counter;
69 } atomic_t;
70
71 #ifndef __aligned_u64
72 # define __aligned_u64 __u64 __attribute__((aligned(8)))
73 #endif
74
75 struct list_head {
76         struct list_head *next, *prev;
77 };
78
79 struct hlist_head {
80         struct hlist_node *first;
81 };
82
83 struct hlist_node {
84         struct hlist_node *next, **pprev;
85 };
86
87 #endif /* _TOOLS_LINUX_TYPES_H_ */