hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#ifndef _LINUX_TYPES_H
#define _LINUX_TYPES_H
 
#include <linux/posix_types.h>
#include <asm/types.h>
#include <stdbool.h>
 
#ifndef __KERNEL_STRICT_NAMES
 
typedef __kernel_fd_set        fd_set;
typedef __kernel_dev_t        dev_t;
typedef __kernel_ino_t        ino_t;
typedef __kernel_mode_t        mode_t;
typedef __kernel_nlink_t    nlink_t;
typedef __kernel_off_t        off_t;
typedef __kernel_pid_t        pid_t;
typedef __kernel_daddr_t    daddr_t;
typedef __kernel_key_t        key_t;
typedef __kernel_suseconds_t    suseconds_t;
 
#ifdef __KERNEL__
typedef __kernel_uid32_t    uid_t;
typedef __kernel_gid32_t    gid_t;
typedef __kernel_uid16_t        uid16_t;
typedef __kernel_gid16_t        gid16_t;
 
typedef unsigned long        uintptr_t;
 
#ifdef CONFIG_UID16
/* This is defined by include/asm-{arch}/posix_types.h */
typedef __kernel_old_uid_t    old_uid_t;
typedef __kernel_old_gid_t    old_gid_t;
#endif /* CONFIG_UID16 */
 
/* libc5 includes this file to define uid_t, thus uid_t can never change
 * when it is included by non-kernel code
 */
#else
typedef __kernel_uid_t        uid_t;
typedef __kernel_gid_t        gid_t;
#endif /* __KERNEL__ */
 
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __kernel_loff_t        loff_t;
#endif
 
/*
 * The following typedefs are also protected by individual ifdefs for
 * historical reasons:
 */
#ifndef _SIZE_T
#define _SIZE_T
typedef __kernel_size_t        size_t;
#endif
 
#ifndef _SSIZE_T
#define _SSIZE_T
typedef __kernel_ssize_t    ssize_t;
#endif
 
#ifndef _PTRDIFF_T
#define _PTRDIFF_T
typedef __kernel_ptrdiff_t    ptrdiff_t;
#endif
 
#ifndef _TIME_T
#define _TIME_T
typedef __kernel_time_t        time_t;
#endif
 
#ifndef _CLOCK_T
#define _CLOCK_T
typedef __kernel_clock_t    clock_t;
#endif
 
#ifndef _CADDR_T
#define _CADDR_T
typedef __kernel_caddr_t    caddr_t;
#endif
 
/* bsd */
typedef unsigned char        u_char;
typedef unsigned short        u_short;
typedef unsigned int        u_int;
typedef unsigned long        u_long;
 
/* sysv */
typedef unsigned char        unchar;
typedef unsigned short        ushort;
typedef unsigned int        uint;
typedef unsigned long        ulong;
 
#ifndef __BIT_TYPES_DEFINED__
#define __BIT_TYPES_DEFINED__
 
typedef        __u8        u_int8_t;
typedef        __s8        int8_t;
typedef        __u16        u_int16_t;
typedef        __s16        int16_t;
typedef        __u32        u_int32_t;
typedef        __s32        int32_t;
 
#endif /* !(__BIT_TYPES_DEFINED__) */
 
typedef        __u8        uint8_t;
typedef        __u16        uint16_t;
typedef        __u32        uint32_t;
 
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
   (!defined(CONFIG_USE_STDINT) || !defined(__INT64_TYPE__))
typedef        __u64        uint64_t;
typedef        __u64        u_int64_t;
typedef        __s64        int64_t;
#endif
 
#endif /* __KERNEL_STRICT_NAMES */
 
/* this is a special 64bit data type that is 8-byte aligned */
#define aligned_u64 __u64 __aligned(8)
#define aligned_be64 __be64 __aligned(8)
#define aligned_le64 __le64 __aligned(8)
 
#if defined(CONFIG_USE_STDINT) && defined(__INT64_TYPE__)
typedef        __UINT64_TYPE__    uint64_t;
typedef        __UINT64_TYPE__    u_int64_t;
typedef        __INT64_TYPE__        int64_t;
#endif
 
#ifdef __KERNEL__
typedef phys_addr_t resource_size_t;
#endif
 
/*
 * Below are truly Linux-specific types that should never collide with
 * any application/library that wants linux/types.h.
 */
#ifdef __CHECKER__
#define __bitwise__ __attribute__((bitwise))
#else
#define __bitwise__
#endif
#ifdef __CHECK_ENDIAN__
#define __bitwise __bitwise__
#else
#define __bitwise
#endif
 
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
#if defined(__GNUC__)
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;
#endif
typedef __u16 __bitwise __sum16;
typedef __u32 __bitwise __wsum;
 
typedef unsigned __bitwise__    gfp_t;
 
struct ustat {
   __kernel_daddr_t    f_tfree;
   __kernel_ino_t        f_tinode;
   char            f_fname[6];
   char            f_fpack[6];
};
 
#define DECLARE_BITMAP(name, bits) \
   unsigned long name[BITS_TO_LONGS(bits)]
 
#endif /* _LINUX_TYPES_H */