Rev 3031 | Rev 4103 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3031 | Rev 3391 | ||
---|---|---|---|
1 | #ifndef _LINUX_TYPES_H |
1 | #ifndef _LINUX_TYPES_H |
2 | #define _LINUX_TYPES_H |
2 | #define _LINUX_TYPES_H |
3 | 3 | ||
4 | #include |
4 | #include |
5 | 5 | ||
6 | #ifndef __ASSEMBLY__ |
6 | #ifndef __ASSEMBLY__ |
7 | #ifdef __KERNEL__ |
7 | #ifdef __KERNEL__ |
8 | 8 | ||
9 | #define DECLARE_BITMAP(name,bits) \ |
9 | #define DECLARE_BITMAP(name,bits) \ |
10 | unsigned long name[BITS_TO_LONGS(bits)] |
10 | unsigned long name[BITS_TO_LONGS(bits)] |
11 | #else |
11 | #else |
12 | #ifndef __EXPORTED_HEADERS__ |
12 | #ifndef __EXPORTED_HEADERS__ |
13 | #warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" |
13 | #warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" |
14 | #endif /* __EXPORTED_HEADERS__ */ |
14 | #endif /* __EXPORTED_HEADERS__ */ |
15 | #endif |
15 | #endif |
16 | 16 | ||
17 | #include |
17 | #include |
18 | 18 | ||
19 | #ifdef __KERNEL__ |
19 | #ifdef __KERNEL__ |
20 | 20 | ||
21 | typedef __u32 __kernel_dev_t; |
21 | typedef __u32 __kernel_dev_t; |
22 | 22 | ||
23 | typedef __kernel_fd_set fd_set; |
23 | typedef __kernel_fd_set fd_set; |
24 | typedef __kernel_dev_t dev_t; |
24 | typedef __kernel_dev_t dev_t; |
25 | typedef __kernel_ino_t ino_t; |
25 | typedef __kernel_ino_t ino_t; |
26 | typedef __kernel_mode_t mode_t; |
26 | typedef __kernel_mode_t mode_t; |
27 | typedef unsigned short umode_t; |
27 | typedef unsigned short umode_t; |
28 | typedef __u32 nlink_t; |
28 | typedef __u32 nlink_t; |
29 | typedef __kernel_off_t off_t; |
29 | typedef __kernel_off_t off_t; |
30 | typedef __kernel_pid_t pid_t; |
30 | typedef __kernel_pid_t pid_t; |
31 | typedef __kernel_daddr_t daddr_t; |
31 | typedef __kernel_daddr_t daddr_t; |
32 | typedef __kernel_key_t key_t; |
32 | typedef __kernel_key_t key_t; |
33 | typedef __kernel_suseconds_t suseconds_t; |
33 | typedef __kernel_suseconds_t suseconds_t; |
34 | typedef __kernel_timer_t timer_t; |
34 | typedef __kernel_timer_t timer_t; |
35 | typedef __kernel_clockid_t clockid_t; |
35 | typedef __kernel_clockid_t clockid_t; |
36 | typedef __kernel_mqd_t mqd_t; |
36 | typedef __kernel_mqd_t mqd_t; |
37 | 37 | ||
38 | typedef _Bool bool; |
38 | typedef _Bool bool; |
39 | 39 | ||
40 | typedef __kernel_uid32_t uid_t; |
40 | typedef __kernel_uid32_t uid_t; |
41 | typedef __kernel_gid32_t gid_t; |
41 | typedef __kernel_gid32_t gid_t; |
42 | typedef __kernel_uid16_t uid16_t; |
42 | typedef __kernel_uid16_t uid16_t; |
43 | typedef __kernel_gid16_t gid16_t; |
43 | typedef __kernel_gid16_t gid16_t; |
44 | 44 | ||
45 | typedef unsigned long uintptr_t; |
45 | typedef unsigned long uintptr_t; |
46 | 46 | ||
47 | #ifdef CONFIG_UID16 |
47 | #ifdef CONFIG_UID16 |
48 | /* This is defined by include/asm-{arch}/posix_types.h */ |
48 | /* This is defined by include/asm-{arch}/posix_types.h */ |
49 | typedef __kernel_old_uid_t old_uid_t; |
49 | typedef __kernel_old_uid_t old_uid_t; |
50 | typedef __kernel_old_gid_t old_gid_t; |
50 | typedef __kernel_old_gid_t old_gid_t; |
51 | #endif /* CONFIG_UID16 */ |
51 | #endif /* CONFIG_UID16 */ |
52 | 52 | ||
53 | #if defined(__GNUC__) |
53 | #if defined(__GNUC__) |
54 | typedef __kernel_loff_t loff_t; |
54 | typedef __kernel_loff_t loff_t; |
55 | #endif |
55 | #endif |
56 | 56 | ||
57 | /* |
57 | /* |
58 | * The following typedefs are also protected by individual ifdefs for |
58 | * The following typedefs are also protected by individual ifdefs for |
59 | * historical reasons: |
59 | * historical reasons: |
60 | */ |
60 | */ |
61 | #ifndef _SIZE_T |
61 | #ifndef _SIZE_T |
62 | #define _SIZE_T |
62 | #define _SIZE_T |
63 | typedef __kernel_size_t size_t; |
63 | typedef __kernel_size_t size_t; |
64 | #endif |
64 | #endif |
65 | 65 | ||
66 | #ifndef _SSIZE_T |
66 | #ifndef _SSIZE_T |
67 | #define _SSIZE_T |
67 | #define _SSIZE_T |
68 | typedef __kernel_ssize_t ssize_t; |
68 | typedef __kernel_ssize_t ssize_t; |
69 | #endif |
69 | #endif |
70 | 70 | ||
71 | #ifndef _PTRDIFF_T |
71 | #ifndef _PTRDIFF_T |
72 | #define _PTRDIFF_T |
72 | #define _PTRDIFF_T |
73 | typedef __kernel_ptrdiff_t ptrdiff_t; |
73 | typedef __kernel_ptrdiff_t ptrdiff_t; |
74 | #endif |
74 | #endif |
75 | 75 | ||
76 | #ifndef _TIME_T |
76 | #ifndef _TIME_T |
77 | #define _TIME_T |
77 | #define _TIME_T |
78 | typedef __kernel_time_t time_t; |
78 | typedef __kernel_time_t time_t; |
79 | #endif |
79 | #endif |
80 | 80 | ||
81 | #ifndef _CLOCK_T |
81 | #ifndef _CLOCK_T |
82 | #define _CLOCK_T |
82 | #define _CLOCK_T |
83 | typedef __kernel_clock_t clock_t; |
83 | typedef __kernel_clock_t clock_t; |
84 | #endif |
84 | #endif |
85 | 85 | ||
86 | #ifndef _CADDR_T |
86 | #ifndef _CADDR_T |
87 | #define _CADDR_T |
87 | #define _CADDR_T |
88 | typedef __kernel_caddr_t caddr_t; |
88 | typedef __kernel_caddr_t caddr_t; |
89 | #endif |
89 | #endif |
90 | 90 | ||
91 | /* bsd */ |
91 | /* bsd */ |
92 | typedef unsigned char u_char; |
92 | typedef unsigned char u_char; |
93 | typedef unsigned short u_short; |
93 | typedef unsigned short u_short; |
94 | typedef unsigned int u_int; |
94 | typedef unsigned int u_int; |
95 | typedef unsigned long u_long; |
95 | typedef unsigned long u_long; |
96 | 96 | ||
97 | /* sysv */ |
97 | /* sysv */ |
98 | typedef unsigned char unchar; |
98 | typedef unsigned char unchar; |
99 | typedef unsigned short ushort; |
99 | typedef unsigned short ushort; |
100 | typedef unsigned int uint; |
100 | typedef unsigned int uint; |
101 | typedef unsigned long ulong; |
101 | typedef unsigned long ulong; |
102 | 102 | ||
103 | #ifndef __BIT_TYPES_DEFINED__ |
103 | #ifndef __BIT_TYPES_DEFINED__ |
104 | #define __BIT_TYPES_DEFINED__ |
104 | #define __BIT_TYPES_DEFINED__ |
105 | 105 | ||
106 | typedef __u8 u_int8_t; |
106 | typedef __u8 u_int8_t; |
107 | typedef __s8 int8_t; |
107 | typedef __s8 int8_t; |
108 | typedef __u16 u_int16_t; |
108 | typedef __u16 u_int16_t; |
109 | typedef __s16 int16_t; |
109 | typedef __s16 int16_t; |
110 | typedef __u32 u_int32_t; |
110 | typedef __u32 u_int32_t; |
111 | typedef __s32 int32_t; |
111 | typedef __s32 int32_t; |
112 | 112 | ||
113 | #endif /* !(__BIT_TYPES_DEFINED__) */ |
113 | #endif /* !(__BIT_TYPES_DEFINED__) */ |
114 | 114 | ||
115 | typedef __u8 uint8_t; |
115 | typedef __u8 uint8_t; |
116 | typedef __u16 uint16_t; |
116 | typedef __u16 uint16_t; |
117 | typedef __u32 uint32_t; |
117 | typedef __u32 uint32_t; |
118 | 118 | ||
119 | #if defined(__GNUC__) |
119 | #if defined(__GNUC__) |
120 | typedef __u64 uint64_t; |
120 | typedef __u64 uint64_t; |
121 | typedef __u64 u_int64_t; |
121 | typedef __u64 u_int64_t; |
122 | typedef __s64 int64_t; |
122 | typedef __s64 int64_t; |
123 | #endif |
123 | #endif |
124 | 124 | ||
125 | /* this is a special 64bit data type that is 8-byte aligned */ |
125 | /* this is a special 64bit data type that is 8-byte aligned */ |
126 | #define aligned_u64 __u64 __attribute__((aligned(8))) |
126 | #define aligned_u64 __u64 __attribute__((aligned(8))) |
127 | #define aligned_be64 __be64 __attribute__((aligned(8))) |
127 | #define aligned_be64 __be64 __attribute__((aligned(8))) |
128 | #define aligned_le64 __le64 __attribute__((aligned(8))) |
128 | #define aligned_le64 __le64 __attribute__((aligned(8))) |
129 | 129 | ||
130 | /** |
130 | /** |
131 | * The type used for indexing onto a disc or disc partition. |
131 | * The type used for indexing onto a disc or disc partition. |
132 | * |
132 | * |
133 | * Linux always considers sectors to be 512 bytes long independently |
133 | * Linux always considers sectors to be 512 bytes long independently |
134 | * of the devices real block size. |
134 | * of the devices real block size. |
135 | * |
135 | * |
136 | * blkcnt_t is the type of the inode's block count. |
136 | * blkcnt_t is the type of the inode's block count. |
137 | */ |
137 | */ |
138 | #ifdef CONFIG_LBDAF |
138 | #ifdef CONFIG_LBDAF |
139 | typedef u64 sector_t; |
139 | typedef u64 sector_t; |
140 | typedef u64 blkcnt_t; |
140 | typedef u64 blkcnt_t; |
141 | #else |
141 | #else |
142 | typedef unsigned long sector_t; |
142 | typedef unsigned long sector_t; |
143 | typedef unsigned long blkcnt_t; |
143 | typedef unsigned long blkcnt_t; |
144 | #endif |
144 | #endif |
145 | 145 | ||
146 | /* |
146 | /* |
147 | * The type of an index into the pagecache. Use a #define so asm/types.h |
147 | * The type of an index into the pagecache. Use a #define so asm/types.h |
148 | * can override it. |
148 | * can override it. |
149 | */ |
149 | */ |
150 | #ifndef pgoff_t |
150 | #ifndef pgoff_t |
151 | #define pgoff_t unsigned long |
151 | #define pgoff_t unsigned long |
152 | #endif |
152 | #endif |
153 | 153 | ||
154 | #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT |
154 | #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT |
155 | typedef u64 dma_addr_t; |
155 | typedef u64 dma_addr_t; |
156 | #else |
156 | #else |
157 | typedef u32 dma_addr_t; |
157 | typedef u32 dma_addr_t; |
158 | #endif /* dma_addr_t */ |
158 | #endif /* dma_addr_t */ |
159 | 159 | ||
160 | #endif /* __KERNEL__ */ |
160 | #endif /* __KERNEL__ */ |
161 | 161 | ||
162 | /* |
162 | /* |
163 | * Below are truly Linux-specific types that should never collide with |
163 | * Below are truly Linux-specific types that should never collide with |
164 | * any application/library that wants linux/types.h. |
164 | * any application/library that wants linux/types.h. |
165 | */ |
165 | */ |
166 | 166 | ||
167 | #ifdef __CHECKER__ |
167 | #ifdef __CHECKER__ |
168 | #define __bitwise__ __attribute__((bitwise)) |
168 | #define __bitwise__ __attribute__((bitwise)) |
169 | #else |
169 | #else |
170 | #define __bitwise__ |
170 | #define __bitwise__ |
171 | #endif |
171 | #endif |
172 | #ifdef __CHECK_ENDIAN__ |
172 | #ifdef __CHECK_ENDIAN__ |
173 | #define __bitwise __bitwise__ |
173 | #define __bitwise __bitwise__ |
174 | #else |
174 | #else |
175 | #define __bitwise |
175 | #define __bitwise |
176 | #endif |
176 | #endif |
177 | 177 | ||
178 | typedef __u16 __bitwise __le16; |
178 | typedef __u16 __bitwise __le16; |
179 | typedef __u16 __bitwise __be16; |
179 | typedef __u16 __bitwise __be16; |
180 | typedef __u32 __bitwise __le32; |
180 | typedef __u32 __bitwise __le32; |
181 | typedef __u32 __bitwise __be32; |
181 | typedef __u32 __bitwise __be32; |
182 | typedef __u64 __bitwise __le64; |
182 | typedef __u64 __bitwise __le64; |
183 | typedef __u64 __bitwise __be64; |
183 | typedef __u64 __bitwise __be64; |
184 | 184 | ||
185 | typedef __u16 __bitwise __sum16; |
185 | typedef __u16 __bitwise __sum16; |
186 | typedef __u32 __bitwise __wsum; |
186 | typedef __u32 __bitwise __wsum; |
187 | 187 | ||
188 | /* |
188 | /* |
189 | * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid |
189 | * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid |
190 | * common 32/64-bit compat problems. |
190 | * common 32/64-bit compat problems. |
191 | * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other |
191 | * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other |
192 | * architectures) and to 8-byte boundaries on 64-bit architetures. The new |
192 | * architectures) and to 8-byte boundaries on 64-bit architetures. The new |
193 | * aligned_64 type enforces 8-byte alignment so that structs containing |
193 | * aligned_64 type enforces 8-byte alignment so that structs containing |
194 | * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. |
194 | * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. |
195 | * No conversions are necessary between 32-bit user-space and a 64-bit kernel. |
195 | * No conversions are necessary between 32-bit user-space and a 64-bit kernel. |
196 | */ |
196 | */ |
197 | #define __aligned_u64 __u64 __attribute__((aligned(8))) |
197 | #define __aligned_u64 __u64 __attribute__((aligned(8))) |
198 | #define __aligned_be64 __be64 __attribute__((aligned(8))) |
198 | #define __aligned_be64 __be64 __attribute__((aligned(8))) |
199 | #define __aligned_le64 __le64 __attribute__((aligned(8))) |
199 | #define __aligned_le64 __le64 __attribute__((aligned(8))) |
200 | 200 | ||
201 | #ifdef __KERNEL__ |
201 | #ifdef __KERNEL__ |
202 | typedef unsigned __bitwise__ gfp_t; |
202 | typedef unsigned __bitwise__ gfp_t; |
203 | typedef unsigned __bitwise__ fmode_t; |
203 | typedef unsigned __bitwise__ fmode_t; |
204 | 204 | ||
205 | #ifdef CONFIG_PHYS_ADDR_T_64BIT |
205 | #ifdef CONFIG_PHYS_ADDR_T_64BIT |
206 | typedef u64 phys_addr_t; |
206 | typedef u64 phys_addr_t; |
207 | #else |
207 | #else |
208 | typedef u32 phys_addr_t; |
208 | typedef u32 phys_addr_t; |
209 | #endif |
209 | #endif |
210 | 210 | ||
211 | typedef phys_addr_t resource_size_t; |
211 | typedef phys_addr_t resource_size_t; |
212 | 212 | ||
213 | typedef struct { |
213 | typedef struct { |
214 | int counter; |
214 | int counter; |
215 | } atomic_t; |
215 | } atomic_t; |
216 | 216 | ||
217 | #ifdef CONFIG_64BIT |
217 | #ifdef CONFIG_64BIT |
218 | typedef struct { |
218 | typedef struct { |
219 | long counter; |
219 | long counter; |
220 | } atomic64_t; |
220 | } atomic64_t; |
221 | #endif |
221 | #endif |
222 | 222 | ||
223 | struct list_head { |
223 | struct list_head { |
224 | struct list_head *next, *prev; |
224 | struct list_head *next, *prev; |
225 | }; |
225 | }; |
226 | 226 | ||
227 | struct hlist_head { |
227 | struct hlist_head { |
228 | struct hlist_node *first; |
228 | struct hlist_node *first; |
229 | }; |
229 | }; |
230 | 230 | ||
231 | struct hlist_node { |
231 | struct hlist_node { |
232 | struct hlist_node *next, **pprev; |
232 | struct hlist_node *next, **pprev; |
233 | }; |
233 | }; |
234 | 234 | ||
235 | struct ustat { |
235 | struct ustat { |
236 | __kernel_daddr_t f_tfree; |
236 | __kernel_daddr_t f_tfree; |
237 | __kernel_ino_t f_tinode; |
237 | __kernel_ino_t f_tinode; |
238 | char f_fname[6]; |
238 | char f_fname[6]; |
239 | char f_fpack[6]; |
239 | char f_fpack[6]; |
240 | }; |
240 | }; |
241 | 241 | ||
242 | #endif /* __KERNEL__ */ |
242 | #endif /* __KERNEL__ */ |
243 | #endif /* __ASSEMBLY__ */ |
243 | #endif /* __ASSEMBLY__ */ |
244 | 244 | ||
245 | 245 | ||
246 | 246 | ||
247 | 247 | ||
248 | typedef unsigned char u8_t; |
248 | typedef unsigned char u8_t; |
249 | typedef unsigned short u16_t; |
249 | typedef unsigned short u16_t; |
250 | typedef unsigned long u32_t; |
250 | typedef unsigned long u32_t; |
251 | typedef unsigned long long u64_t; |
251 | typedef unsigned long long u64_t; |
252 | 252 | ||
253 | typedef unsigned int addr_t; |
253 | typedef unsigned int addr_t; |
254 | typedef unsigned int count_t; |
254 | typedef unsigned int count_t; |
255 | 255 | ||
256 | 256 | ||
257 | #define false 0 |
257 | #define false 0 |
258 | #define true 1 |
258 | #define true 1 |
259 | 259 | ||
260 | 260 | ||
261 | #define likely(x) __builtin_expect(!!(x), 1) |
261 | #define likely(x) __builtin_expect(!!(x), 1) |
262 | #define unlikely(x) __builtin_expect(!!(x), 0) |
262 | #define unlikely(x) __builtin_expect(!!(x), 0) |
263 | 263 | ||
264 | #define BITS_PER_LONG 32 |
264 | #define BITS_PER_LONG 32 |
265 | 265 | ||
266 | #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) |
266 | #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) |
267 | 267 | ||
268 | 268 | ||
269 | #define BUILD_BUG_ON_ZERO(e) (sizeof(char[1 - 2 * !!(e)]) - 1) |
269 | #define BUILD_BUG_ON_ZERO(e) (sizeof(char[1 - 2 * !!(e)]) - 1) |
270 | 270 | ||
271 | 271 | ||
272 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) |
272 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) |
273 | 273 | ||
274 | - | ||
275 | - | ||
276 | - | ||
277 | #ifndef HAVE_ARCH_BUG |
- | |
278 | #define BUG() do { \ |
- | |
279 | printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \ |
- | |
280 | /* panic("BUG!"); */ \ |
- | |
281 | } while (0) |
- | |
282 | #endif |
- | |
283 | - | ||
284 | #ifndef HAVE_ARCH_BUG_ON |
- | |
285 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) |
- | |
286 | #endif |
- | |
287 | - | ||
288 | - | ||
289 | 274 | ||
290 | #define MTRR_TYPE_UNCACHABLE 0 |
275 | #define MTRR_TYPE_UNCACHABLE 0 |
291 | #define MTRR_TYPE_WRCOMB 1 |
276 | #define MTRR_TYPE_WRCOMB 1 |
292 | #define MTRR_TYPE_WRTHROUGH 4 |
277 | #define MTRR_TYPE_WRTHROUGH 4 |
293 | #define MTRR_TYPE_WRPROT 5 |
278 | #define MTRR_TYPE_WRPROT 5 |
294 | #define MTRR_TYPE_WRBACK 6 |
279 | #define MTRR_TYPE_WRBACK 6 |
295 | #define MTRR_NUM_TYPES 7 |
280 | #define MTRR_NUM_TYPES 7 |
296 | 281 | ||
297 | int dbgprintf(const char* format, ...); |
282 | int dbgprintf(const char* format, ...); |
298 | 283 | ||
299 | #define GFP_KERNEL 0 |
284 | #define GFP_KERNEL 0 |
300 | #define GFP_ATOMIC 0 |
285 | #define GFP_ATOMIC 0 |
301 | 286 | ||
302 | //#include |
287 | //#include |
303 | 288 | ||
304 | int snprintf(char *str, size_t size, const char *format, ...); |
289 | int snprintf(char *str, size_t size, const char *format, ...); |
305 | 290 | ||
306 | 291 | ||
307 | //#include |
292 | //#include |
308 | 293 | ||
309 | void* memcpy(void *s1, const void *s2, size_t n); |
294 | void* memcpy(void *s1, const void *s2, size_t n); |
310 | void* memset(void *s, int c, size_t n); |
295 | void* memset(void *s, int c, size_t n); |
311 | size_t strlen(const char *s); |
296 | size_t strlen(const char *s); |
312 | char *strcpy(char *s1, const char *s2); |
297 | char *strcpy(char *s1, const char *s2); |
313 | char *strncpy (char *dst, const char *src, size_t len); |
298 | char *strncpy (char *dst, const char *src, size_t len); |
314 | 299 | ||
315 | void *malloc(size_t size); |
300 | void *malloc(size_t size); |
- | 301 | void* realloc(void* oldmem, size_t bytes); |
|
- | 302 | ||
316 | #define kfree free |
303 | #define kfree free |
- | 304 | ||
- | 305 | static inline void *krealloc(void *p, size_t new_size, gfp_t flags) |
|
- | 306 | { |
|
- | 307 | return realloc(p, new_size); |
|
- | 308 | } |
|
317 | 309 | ||
318 | static inline void *kzalloc(size_t size, uint32_t flags) |
310 | static inline void *kzalloc(size_t size, uint32_t flags) |
319 | { |
311 | { |
320 | void *ret = malloc(size); |
312 | void *ret = malloc(size); |
321 | memset(ret, 0, size); |
313 | memset(ret, 0, size); |
322 | return ret; |
314 | return ret; |
323 | } |
315 | } |
324 | 316 | ||
325 | #define kmalloc(s,f) kzalloc((s), (f)) |
317 | #define kmalloc(s,f) kzalloc((s), (f)) |
- | 318 | ||
- | 319 | ||
- | 320 | ||
326 | 321 | ||
327 | struct drm_file; |
322 | struct drm_file; |
328 | 323 | ||
329 | 324 | ||
330 | #define DRM_MEMORYBARRIER() __asm__ __volatile__("lock; addl $0,0(%esp)") |
325 | #define DRM_MEMORYBARRIER() __asm__ __volatile__("lock; addl $0,0(%esp)") |
331 | #define mb() __asm__ __volatile__("lock; addl $0,0(%esp)") |
326 | #define mb() __asm__ __volatile__("lock; addl $0,0(%esp)") |
332 | 327 | ||
333 | 328 | ||
334 | #define PAGE_SHIFT 12 |
329 | #define PAGE_SHIFT 12 |
335 | #define PAGE_SIZE (1UL << PAGE_SHIFT) |
330 | #define PAGE_SIZE (1UL << PAGE_SHIFT) |
336 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
331 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
337 | 332 | ||
338 | 333 | ||
339 | 334 | ||
340 | #define ENTER() dbgprintf("enter %s\n",__FUNCTION__) |
335 | #define ENTER() dbgprintf("enter %s\n",__FUNCTION__) |
341 | #define LEAVE() dbgprintf("leave %s\n",__FUNCTION__) |
336 | #define LEAVE() dbgprintf("leave %s\n",__FUNCTION__) |
342 | 337 | ||
343 | struct timeval |
338 | struct timeval |
344 | { |
339 | { |
345 | __kernel_time_t tv_sec; /* seconds */ |
340 | __kernel_time_t tv_sec; /* seconds */ |
346 | __kernel_suseconds_t tv_usec; /* microseconds */ |
341 | __kernel_suseconds_t tv_usec; /* microseconds */ |
347 | }; |
342 | }; |
348 | 343 | ||
349 | 344 | ||
350 | #define PCI_DEVICE_ID_ATI_RADEON_QY 0x5159 |
345 | #define PCI_DEVICE_ID_ATI_RADEON_QY 0x5159 |
351 | 346 | ||
352 | #ifndef __read_mostly |
347 | #ifndef __read_mostly |
353 | #define __read_mostly |
348 | #define __read_mostly |
354 | #endif |
349 | #endif |
- | 350 | ||
- | 351 | /** |
|
- | 352 | * struct callback_head - callback structure for use with RCU and task_work |
|
- | 353 | * @next: next update requests in a list |
|
- | 354 | * @func: actual update function to call after the grace period. |
|
- | 355 | */ |
|
- | 356 | struct callback_head { |
|
- | 357 | struct callback_head *next; |
|
- | 358 | void (*func)(struct callback_head *head); |
|
- | 359 | }; |
|
355 | 360 | #define rcu_head callback_head |
|
356 | 361 | ||
357 | #endif /* _LINUX_TYPES_H */><>-> |
362 | #endif /* _LINUX_TYPES_H */><>-> |