Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
16struct page;
17struct kmem_cache;
18
19typedef 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 */
33typedef uint64_t u64;
34typedef int64_t s64;
35
36typedef __u32 u32;
37typedef __s32 s32;
38
39typedef __u16 u16;
40typedef __s16 s16;
41
42typedef __u8 u8;
43typedef __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
57typedef __u16 __bitwise __le16;
58typedef __u16 __bitwise __be16;
59typedef __u32 __bitwise __le32;
60typedef __u32 __bitwise __be32;
61typedef __u64 __bitwise __le64;
62typedef __u64 __bitwise __be64;
63
64typedef __u16 __bitwise __sum16;
65typedef __u32 __bitwise __wsum;
66
67typedef struct {
68 int counter;
69} atomic_t;
70
71#ifndef __aligned_u64
72# define __aligned_u64 __u64 __attribute__((aligned(8)))
73#endif
74
75struct list_head {
76 struct list_head *next, *prev;
77};
78
79struct hlist_head {
80 struct hlist_node *first;
81};
82
83struct hlist_node {
84 struct hlist_node *next, **pprev;
85};
86
87#endif /* _TOOLS_LINUX_TYPES_H_ */