Blame view

include/linux/types.h 3.67 KB
b15cbc0be   wdenk   Initial revision
1
2
  #ifndef _LINUX_TYPES_H
  #define _LINUX_TYPES_H
b15cbc0be   wdenk   Initial revision
3
4
  #include <linux/posix_types.h>
  #include <asm/types.h>
472d54605   York Sun   Consolidate bool ...
5
  #include <stdbool.h>
b15cbc0be   wdenk   Initial revision
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
  #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;
1c4b453ad   Masahiro Yamada   linux/types.h: ad...
25
  typedef unsigned long		uintptr_t;
b15cbc0be   wdenk   Initial revision
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
  #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;
0d296cc2d   Gabe Black   Provide option to...
105
106
  #if defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
  	(!defined(CONFIG_USE_STDINT) || !defined(__INT64_TYPE__))
b15cbc0be   wdenk   Initial revision
107
108
109
110
111
112
  typedef		__u64		uint64_t;
  typedef		__u64		u_int64_t;
  typedef		__s64		int64_t;
  #endif
  
  #endif /* __KERNEL_STRICT_NAMES */
5598facbd   Simon Glass   Bring in __aligne...
113
114
115
116
  /* 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)
0d296cc2d   Gabe Black   Provide option to...
117
118
119
120
121
  #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
95ebc253e   Masahiro Yamada   types.h: move and...
122
123
124
  #ifdef __KERNEL__
  typedef phys_addr_t resource_size_t;
  #endif
b15cbc0be   wdenk   Initial revision
125
126
127
128
  /*
   * Below are truly Linux-specific types that should never collide with
   * any application/library that wants linux/types.h.
   */
7e6ee7ad2   Kyungmin Park   UBI: Add basic UB...
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
  #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;
7e6ee7ad2   Kyungmin Park   UBI: Add basic UB...
150
  typedef unsigned __bitwise__	gfp_t;
b15cbc0be   wdenk   Initial revision
151
152
153
154
155
156
157
158
159
  
  struct ustat {
  	__kernel_daddr_t	f_tfree;
  	__kernel_ino_t		f_tinode;
  	char			f_fname[6];
  	char			f_fpack[6];
  };
  
  #endif /* _LINUX_TYPES_H */