1 # 1 "kernel/trace/trace.c"
2 # 1 "/usr/local/src/blackfin/git/linux-kernel//"
5 # 1 "./include/linux/autoconf.h" 1
7 # 1 "kernel/trace/trace.c"
8 # 14 "kernel/trace/trace.c"
9 # 1 "include/linux/utsrelease.h" 1
10 # 15 "kernel/trace/trace.c" 2
11 # 1 "include/linux/kallsyms.h" 1
19 # 1 "include/linux/errno.h" 1
23 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/errno.h" 1
27 # 1 "include/asm-generic/errno.h" 1
31 # 1 "include/asm-generic/errno-base.h" 1
32 # 5 "include/asm-generic/errno.h" 2
33 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/errno.h" 2
34 # 5 "include/linux/errno.h" 2
35 # 9 "include/linux/kallsyms.h" 2
36 # 1 "include/linux/kernel.h" 1
37 # 10 "include/linux/kernel.h"
38 # 1 "/usr/local/src/blackfin/toolchains/20090128/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.3/include/stdarg.h" 1 3 4
39 # 43 "/usr/local/src/blackfin/toolchains/20090128/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.3/include/stdarg.h" 3 4
40 typedef __builtin_va_list __gnuc_va_list;
41 # 105 "/usr/local/src/blackfin/toolchains/20090128/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.3/include/stdarg.h" 3 4
42 typedef __gnuc_va_list va_list;
43 # 11 "include/linux/kernel.h" 2
44 # 1 "include/linux/linkage.h" 1
48 # 1 "include/linux/compiler.h" 1
49 # 40 "include/linux/compiler.h"
50 # 1 "include/linux/compiler-gcc4.h" 1
56 # 1 "include/linux/compiler-gcc.h" 1
57 # 7 "include/linux/compiler-gcc4.h" 2
58 # 41 "include/linux/compiler.h" 2
59 # 5 "include/linux/linkage.h" 2
60 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/linkage.h" 1
61 # 6 "include/linux/linkage.h" 2
62 # 12 "include/linux/kernel.h" 2
63 # 1 "include/linux/stddef.h" 1
64 # 15 "include/linux/stddef.h"
69 # 13 "include/linux/kernel.h" 2
70 # 1 "include/linux/types.h" 1
71 # 11 "include/linux/types.h"
72 # 1 "include/linux/posix_types.h" 1
73 # 36 "include/linux/posix_types.h"
75 unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))];
79 typedef void (*__kernel_sighandler_t)(int);
82 typedef int __kernel_key_t;
83 typedef int __kernel_mqd_t;
85 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/posix_types.h" 1
86 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/posix_types.h"
87 typedef unsigned long __kernel_ino_t;
88 typedef unsigned short __kernel_mode_t;
89 typedef unsigned short __kernel_nlink_t;
90 typedef long __kernel_off_t;
91 typedef int __kernel_pid_t;
92 typedef unsigned int __kernel_ipc_pid_t;
93 typedef unsigned int __kernel_uid_t;
94 typedef unsigned int __kernel_gid_t;
95 typedef unsigned long __kernel_size_t;
96 typedef long __kernel_ssize_t;
97 typedef int __kernel_ptrdiff_t;
98 typedef long __kernel_time_t;
99 typedef long __kernel_suseconds_t;
100 typedef long __kernel_clock_t;
101 typedef int __kernel_timer_t;
102 typedef int __kernel_clockid_t;
103 typedef int __kernel_daddr_t;
104 typedef char *__kernel_caddr_t;
105 typedef unsigned short __kernel_uid16_t;
106 typedef unsigned short __kernel_gid16_t;
107 typedef unsigned int __kernel_uid32_t;
108 typedef unsigned int __kernel_gid32_t;
110 typedef unsigned short __kernel_old_uid_t;
111 typedef unsigned short __kernel_old_gid_t;
112 typedef unsigned short __kernel_old_dev_t;
115 typedef long long __kernel_loff_t;
121 # 48 "include/linux/posix_types.h" 2
122 # 12 "include/linux/types.h" 2
123 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
124 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h"
125 # 1 "include/asm-generic/int-ll64.h" 1
126 # 17 "include/asm-generic/int-ll64.h"
127 typedef __signed__ char __s8;
128 typedef unsigned char __u8;
130 typedef __signed__ short __s16;
131 typedef unsigned short __u16;
133 typedef __signed__ int __s32;
134 typedef unsigned int __u32;
137 __extension__ typedef __signed__ long long __s64;
138 __extension__ typedef unsigned long long __u64;
139 # 40 "include/asm-generic/int-ll64.h"
140 typedef signed char s8;
141 typedef unsigned char u8;
143 typedef signed short s16;
144 typedef unsigned short u16;
146 typedef signed int s32;
147 typedef unsigned int u32;
149 typedef signed long long s64;
150 typedef unsigned long long u64;
151 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 2
155 typedef unsigned short umode_t;
156 # 29 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h"
157 typedef u32 dma_addr_t;
158 typedef u64 dma64_addr_t;
159 # 13 "include/linux/types.h" 2
163 typedef __u32 __kernel_dev_t;
165 typedef __kernel_fd_set fd_set;
166 typedef __kernel_dev_t dev_t;
167 typedef __kernel_ino_t ino_t;
168 typedef __kernel_mode_t mode_t;
169 typedef __kernel_nlink_t nlink_t;
170 typedef __kernel_off_t off_t;
171 typedef __kernel_pid_t pid_t;
172 typedef __kernel_daddr_t daddr_t;
173 typedef __kernel_key_t key_t;
174 typedef __kernel_suseconds_t suseconds_t;
175 typedef __kernel_timer_t timer_t;
176 typedef __kernel_clockid_t clockid_t;
177 typedef __kernel_mqd_t mqd_t;
182 typedef __kernel_uid32_t uid_t;
183 typedef __kernel_gid32_t gid_t;
184 typedef __kernel_uid16_t uid16_t;
185 typedef __kernel_gid16_t gid16_t;
187 typedef unsigned long uintptr_t;
191 typedef __kernel_old_uid_t old_uid_t;
192 typedef __kernel_old_gid_t old_gid_t;
193 # 57 "include/linux/types.h"
194 typedef __kernel_loff_t loff_t;
195 # 66 "include/linux/types.h"
196 typedef __kernel_size_t size_t;
201 typedef __kernel_ssize_t ssize_t;
206 typedef __kernel_ptrdiff_t ptrdiff_t;
211 typedef __kernel_time_t time_t;
216 typedef __kernel_clock_t clock_t;
221 typedef __kernel_caddr_t caddr_t;
225 typedef unsigned char u_char;
226 typedef unsigned short u_short;
227 typedef unsigned int u_int;
228 typedef unsigned long u_long;
231 typedef unsigned char unchar;
232 typedef unsigned short ushort;
233 typedef unsigned int uint;
234 typedef unsigned long ulong;
239 typedef __u8 u_int8_t;
241 typedef __u16 u_int16_t;
242 typedef __s16 int16_t;
243 typedef __u32 u_int32_t;
244 typedef __s32 int32_t;
248 typedef __u8 uint8_t;
249 typedef __u16 uint16_t;
250 typedef __u32 uint32_t;
253 typedef __u64 uint64_t;
254 typedef __u64 u_int64_t;
255 typedef __s64 int64_t;
256 # 140 "include/linux/types.h"
257 typedef u64 sector_t;
258 # 151 "include/linux/types.h"
259 typedef unsigned long blkcnt_t;
260 # 180 "include/linux/types.h"
261 typedef __u16 __le16;
262 typedef __u16 __be16;
263 typedef __u32 __le32;
264 typedef __u32 __be32;
266 typedef __u64 __le64;
267 typedef __u64 __be64;
269 typedef __u16 __sum16;
270 typedef __u32 __wsum;
273 typedef unsigned gfp_t;
274 typedef unsigned fmode_t;
279 typedef u32 phys_addr_t;
282 typedef phys_addr_t resource_size_t;
285 __kernel_daddr_t f_tfree;
286 __kernel_ino_t f_tinode;
290 # 14 "include/linux/kernel.h" 2
292 # 1 "include/linux/bitops.h" 1
293 # 17 "include/linux/bitops.h"
294 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 1
295 # 9 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h"
296 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 1
297 # 9 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h"
298 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 ___arch__swahb32(__u32 xx)
301 __asm__("%1 = %0 >> 8 (V);\n\t"
302 "%0 = %0 << 8 (V);\n\t"
304 : "+d"(xx), "=&d"(tmp));
308 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 ___arch__swahw32(__u32 xx)
311 __asm__("%0 = PACK(%1.L, %1.H);\n\t": "=d"(rv): "d"(xx));
319 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 ___arch__swab16(__u16 xx)
322 __asm__("%0 <<= 8;\n %0.L = %0.L + %0.H (NS);\n": "+d"(xw));
325 # 46 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h"
326 # 1 "include/linux/byteorder/little_endian.h" 1
327 # 12 "include/linux/byteorder/little_endian.h"
328 # 1 "include/linux/byteorder/swab.h" 1
329 # 64 "include/linux/byteorder/swab.h"
330 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 ___swab16(__u16 x)
334 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 ___swab32(__u32 x)
336 return x<<24 | x>>24 |
337 (x & (__u32)0x0000ff00UL)<<8 |
338 (x & (__u32)0x00ff0000UL)>>8;
340 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u64 ___swab64(__u64 x)
342 return x<<56 | x>>56 |
343 (x & (__u64)0x000000000000ff00ULL)<<40 |
344 (x & (__u64)0x0000000000ff0000ULL)<<24 |
345 (x & (__u64)0x00000000ff000000ULL)<< 8 |
346 (x & (__u64)0x000000ff00000000ULL)>> 8 |
347 (x & (__u64)0x0000ff0000000000ULL)>>24 |
348 (x & (__u64)0x00ff000000000000ULL)>>40;
350 # 163 "include/linux/byteorder/swab.h"
351 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 __fswab16(__u16 x)
353 return ___arch__swab16(x);
355 static __inline__ __attribute__((always_inline)) __u16 __swab16p(const __u16 *x)
357 return ___arch__swab16(*(x));
359 static __inline__ __attribute__((always_inline)) void __swab16s(__u16 *addr)
361 ((void)(*(addr) = ___arch__swab16(*(addr))));
364 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswab32(__u32 x)
366 return ___arch__swahb32(___arch__swahw32(x));
368 static __inline__ __attribute__((always_inline)) __u32 __swab32p(const __u32 *x)
370 return ___arch__swahb32(___arch__swahw32(*(x)));
372 static __inline__ __attribute__((always_inline)) void __swab32s(__u32 *addr)
374 ((void)(*(addr) = ___arch__swahb32(___arch__swahw32(*(addr)))));
378 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u64 __fswab64(__u64 x)
382 __u32 l = x & ((1ULL<<32)-1);
383 return (((__u64)(__builtin_constant_p((__u32)(l)) ? ((__u32)( (((__u32)((l)) & (__u32)0x000000ffUL) << 24) | (((__u32)((l)) & (__u32)0x0000ff00UL) << 8) | (((__u32)((l)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((l)) & (__u32)0xff000000UL) >> 24) )) : __fswab32((l)))) << 32) | ((__u64)((__builtin_constant_p((__u32)(h)) ? ((__u32)( (((__u32)((h)) & (__u32)0x000000ffUL) << 24) | (((__u32)((h)) & (__u32)0x0000ff00UL) << 8) | (((__u32)((h)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((h)) & (__u32)0xff000000UL) >> 24) )) : __fswab32((h)))));
388 static __inline__ __attribute__((always_inline)) __u64 __swab64p(const __u64 *x)
390 return ___swab64(*(x));
392 static __inline__ __attribute__((always_inline)) void __swab64s(__u64 *addr)
394 ((void)(*(addr) = ___swab64(*(addr))));
396 # 13 "include/linux/byteorder/little_endian.h" 2
397 # 1 "include/linux/byteorder/swabb.h" 1
398 # 92 "include/linux/byteorder/swabb.h"
399 static inline __attribute__((always_inline)) __u32 __fswahw32(__u32 x)
401 return ___arch__swahw32(x);
404 static inline __attribute__((always_inline)) __u32 __swahw32p(__u32 *x)
406 return (__builtin_constant_p((__u32)(*(x))) ? ({ __u32 __x = ((*(x))); ((__u32)( (((__u32)(__x) & (__u32)0x0000ffffUL) << 16) | (((__u32)(__x) & (__u32)0xffff0000UL) >> 16) )); }) : __fswahw32((*(x))));
409 static inline __attribute__((always_inline)) void __swahw32s(__u32 *addr)
411 do { *(addr) = __swahw32p((addr)); } while (0);
414 static inline __attribute__((always_inline)) __u32 __fswahb32(__u32 x)
416 return ___arch__swahb32(x);
419 static inline __attribute__((always_inline)) __u32 __swahb32p(__u32 *x)
421 return (__builtin_constant_p((__u32)(*(x))) ? ({ __u32 __x = ((*(x))); ((__u32)( (((__u32)(__x) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(__x) & (__u32)0xff00ff00UL) >> 8) )); }) : __fswahb32((*(x))));
424 static inline __attribute__((always_inline)) void __swahb32s(__u32 *addr)
426 do { *(addr) = __swahb32p((addr)); } while (0);
428 # 14 "include/linux/byteorder/little_endian.h" 2
429 # 44 "include/linux/byteorder/little_endian.h"
430 static inline __attribute__((always_inline)) __le64 __cpu_to_le64p(const __u64 *p)
434 static inline __attribute__((always_inline)) __u64 __le64_to_cpup(const __le64 *p)
438 static inline __attribute__((always_inline)) __le32 __cpu_to_le32p(const __u32 *p)
442 static inline __attribute__((always_inline)) __u32 __le32_to_cpup(const __le32 *p)
446 static inline __attribute__((always_inline)) __le16 __cpu_to_le16p(const __u16 *p)
450 static inline __attribute__((always_inline)) __u16 __le16_to_cpup(const __le16 *p)
454 static inline __attribute__((always_inline)) __be64 __cpu_to_be64p(const __u64 *p)
456 return ( __be64)__swab64p(p);
458 static inline __attribute__((always_inline)) __u64 __be64_to_cpup(const __be64 *p)
460 return __swab64p((__u64 *)p);
462 static inline __attribute__((always_inline)) __be32 __cpu_to_be32p(const __u32 *p)
464 return ( __be32)__swab32p(p);
466 static inline __attribute__((always_inline)) __u32 __be32_to_cpup(const __be32 *p)
468 return __swab32p((__u32 *)p);
470 static inline __attribute__((always_inline)) __be16 __cpu_to_be16p(const __u16 *p)
472 return ( __be16)__swab16p(p);
474 static inline __attribute__((always_inline)) __u16 __be16_to_cpup(const __be16 *p)
476 return __swab16p((__u16 *)p);
478 # 106 "include/linux/byteorder/little_endian.h"
479 # 1 "include/linux/byteorder/generic.h" 1
480 # 143 "include/linux/byteorder/generic.h"
481 static inline __attribute__((always_inline)) void le16_add_cpu(__le16 *var, u16 val)
483 *var = (( __le16)(__u16)((( __u16)(__le16)(*var)) + val));
486 static inline __attribute__((always_inline)) void le32_add_cpu(__le32 *var, u32 val)
488 *var = (( __le32)(__u32)((( __u32)(__le32)(*var)) + val));
491 static inline __attribute__((always_inline)) void le64_add_cpu(__le64 *var, u64 val)
493 *var = (( __le64)(__u64)((( __u64)(__le64)(*var)) + val));
496 static inline __attribute__((always_inline)) void be16_add_cpu(__be16 *var, u16 val)
498 *var = (( __be16)(__builtin_constant_p((__u16)(((__builtin_constant_p((__u16)(( __u16)(__be16)(*var))) ? ((__u16)( (((__u16)((( __u16)(__be16)(*var))) & (__u16)0x00ffU) << 8) | (((__u16)((( __u16)(__be16)(*var))) & (__u16)0xff00U) >> 8) )) : __fswab16((( __u16)(__be16)(*var)))) + val))) ? ((__u16)( (((__u16)((((__builtin_constant_p((__u16)(( __u16)(__be16)(*var))) ? ((__u16)( (((__u16)((( __u16)(__be16)(*var))) & (__u16)0x00ffU) << 8) | (((__u16)((( __u16)(__be16)(*var))) & (__u16)0xff00U) >> 8) )) : __fswab16((( __u16)(__be16)(*var)))) + val))) & (__u16)0x00ffU) << 8) | (((__u16)((((__builtin_constant_p((__u16)(( __u16)(__be16)(*var))) ? ((__u16)( (((__u16)((( __u16)(__be16)(*var))) & (__u16)0x00ffU) << 8) | (((__u16)((( __u16)(__be16)(*var))) & (__u16)0xff00U) >> 8) )) : __fswab16((( __u16)(__be16)(*var)))) + val))) & (__u16)0xff00U) >> 8) )) : __fswab16((((__builtin_constant_p((__u16)(( __u16)(__be16)(*var))) ? ((__u16)( (((__u16)((( __u16)(__be16)(*var))) & (__u16)0x00ffU) << 8) | (((__u16)((( __u16)(__be16)(*var))) & (__u16)0xff00U) >> 8) )) : __fswab16((( __u16)(__be16)(*var)))) + val)))));
501 static inline __attribute__((always_inline)) void be32_add_cpu(__be32 *var, u32 val)
503 *var = (( __be32)(__builtin_constant_p((__u32)(((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val))) ? ((__u32)( (((__u32)((((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val))) & (__u32)0x000000ffUL) << 24) | (((__u32)((((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((((__builtin_constant_p((__u32)(( __u32)(__be32)(*var))) ? ((__u32)( (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x000000ffUL) << 24) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((( __u32)(__be32)(*var))) & (__u32)0xff000000UL) >> 24) )) : __fswab32((( __u32)(__be32)(*var)))) + val)))));
506 static inline __attribute__((always_inline)) void be64_add_cpu(__be64 *var, u64 val)
508 *var = (( __be64)(__builtin_constant_p((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) ? ((__u64)( (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((( __u64)(__be64)(*var))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((( __u64)(__be64)(*var)))) + val)))));
510 # 107 "include/linux/byteorder/little_endian.h" 2
511 # 47 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 2
512 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
520 # 1 "include/asm-generic/bitops/ffs.h" 1
521 # 12 "include/asm-generic/bitops/ffs.h"
522 static inline __attribute__((always_inline)) int ffs(int x)
550 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
551 # 1 "include/asm-generic/bitops/__ffs.h" 1
552 # 12 "include/asm-generic/bitops/__ffs.h"
553 static inline __attribute__((always_inline)) unsigned long __ffs(unsigned long word)
563 if ((word & 0xffff) == 0) {
567 if ((word & 0xff) == 0) {
571 if ((word & 0xf) == 0) {
575 if ((word & 0x3) == 0) {
579 if ((word & 0x1) == 0)
583 # 19 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
584 # 1 "include/asm-generic/bitops/sched.h" 1
585 # 12 "include/asm-generic/bitops/sched.h"
586 static inline __attribute__((always_inline)) int sched_find_first_bit(const unsigned long *b)
596 return __ffs(b[1]) + 32;
598 return __ffs(b[2]) + 64;
599 return __ffs(b[3]) + 96;
604 # 20 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
605 # 1 "include/asm-generic/bitops/ffz.h" 1
606 # 21 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
607 # 84 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h"
608 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 1
609 # 39 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
610 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/anomaly.h" 1
611 # 40 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
612 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pda.h" 1
613 # 30 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pda.h"
614 struct blackfin_pda {
615 struct blackfin_pda *next;
617 unsigned long syscfg;
623 unsigned long *ipdt_swapcount;
625 unsigned long *dpdt_swapcount;
633 unsigned long ex_iptr;
634 unsigned long ex_optr;
635 unsigned long ex_buf[4];
636 unsigned long ex_imask;
637 unsigned long *ex_stack;
640 unsigned long last_cplb_fault_retx;
642 unsigned long dcplb_fault_addr;
643 unsigned long icplb_fault_addr;
645 unsigned long seqstat;
646 unsigned int __nmi_count;
649 extern struct blackfin_pda cpu_pda[];
651 void reserve_pda(void);
652 # 41 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
653 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 1
654 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
655 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 1
656 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h"
657 static inline __attribute__((always_inline)) void SSYNC(void)
661 __asm__ __volatile__(
669 else if ((0x0003 < 5))
670 __asm__ __volatile__(
677 __asm__ __volatile__("ssync;");
681 static inline __attribute__((always_inline)) void CSYNC(void)
685 __asm__ __volatile__(
693 else if ((0x0003 < 5))
694 __asm__ __volatile__(
701 __asm__ __volatile__("csync;");
703 # 89 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h"
704 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 1
705 # 36 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h"
706 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/bf533.h" 1
707 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
708 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/mem_map.h" 1
709 # 38 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
710 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h" 1
711 # 51 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h"
712 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/def_LPBlackfin.h" 1
713 # 52 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h" 2
714 # 39 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
715 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/anomaly.h" 1
716 # 40 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
719 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 1
720 # 34 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
721 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 1
722 # 35 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 2
728 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_LPBlackfin.h" 1
729 # 41 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 2
730 # 680 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
731 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 1
732 # 21 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h"
733 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/irq.h" 1
734 # 22 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 2
736 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 1
737 # 24 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 2
745 extern unsigned long bfin_irq_flags;
746 # 283 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h"
747 static inline __attribute__((always_inline)) int irq_canonicalize(int irq)
751 # 681 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 2
752 # 692 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
753 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_D(unsigned short val) { unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00700), "d" ((uint16_t)(val)) : "memory" ); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); }
754 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_C(unsigned short val) { unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00704), "d" ((uint16_t)(val)) : "memory" ); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); }
755 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_S(unsigned short val) { unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00708), "d" ((uint16_t)(val)) : "memory" ); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); }
756 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_T(unsigned short val) { unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC0070C), "d" ((uint16_t)(val)) : "memory" ); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); }
757 # 708 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
758 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_D(void) { unsigned long flags; u16 ret; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); ret = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00700) ); __v; }); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); return ret; }
759 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_C(void) { unsigned long flags; u16 ret; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); ret = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00704) ); __v; }); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); return ret; }
760 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_S(void) { unsigned long flags; u16 ret; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); ret = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00708) ); __v; }); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); return ret; }
761 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_T(void) { unsigned long flags; u16 ret; __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) ); ret = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC0070C) ); __v; }); ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }); do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0); return ret; }
762 # 725 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
763 static __inline__ __attribute__((always_inline)) void bfin_write_PLL_CTL(unsigned int val)
765 unsigned long flags, iwr;
767 if (val == ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00000) ); __v; }))
770 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
772 iwr = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00124) ); __v; });
774 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" ((1 << (0))) : "memory" );
776 __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00000), "d" ((uint16_t)(val)) : "memory" );
780 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" (iwr) : "memory" );
781 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
785 static __inline__ __attribute__((always_inline)) void bfin_write_VR_CTL(unsigned int val)
787 unsigned long flags, iwr;
789 if (val == ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00008) ); __v; }))
792 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
794 iwr = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00124) ); __v; });
796 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" ((1 << (0))) : "memory" );
798 __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00008), "d" ((uint16_t)(val)) : "memory" );
802 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" (iwr) : "memory" );
803 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
805 # 43 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
806 # 90 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 2
807 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h" 1
808 # 34 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h"
809 # 1 "include/asm-generic/sections.h" 1
815 extern char _text[], _stext[], _etext[];
816 extern char _data[], _sdata[], _edata[];
817 extern char __bss_start[], __bss_stop[];
818 extern char __init_begin[], __init_end[];
819 extern char _sinittext[], _einittext[];
821 extern char __per_cpu_start[], __per_cpu_end[];
822 extern char __kprobes_text_start[], __kprobes_text_end[];
823 extern char __initdata_begin[], __initdata_end[];
824 extern char __start_rodata[], __end_rodata[];
825 # 35 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h" 2
826 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h" 1
827 # 24 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h"
885 # 99 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h"
886 extern void show_regs(struct pt_regs *);
887 # 36 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h" 2
888 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/user.h" 1
889 # 36 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/user.h"
890 struct user_bfinfp_struct {
896 struct user_regs_struct {
897 long r0, r1, r2, r3, r4, r5, r6, r7;
898 long p0, p1, p2, p3, p4, p5, usp, fp;
908 unsigned long orig_p0;
919 struct user_regs_struct regs;
922 unsigned long int u_tsize;
923 unsigned long int u_dsize;
924 unsigned long int u_ssize;
925 unsigned long start_code;
926 unsigned long start_stack;
938 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h" 2
939 # 50 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h"
940 extern void bfin_setup_caches(unsigned int cpu);
941 extern void bfin_setup_cpudata(unsigned int cpu);
943 extern unsigned long get_cclk(void);
944 extern unsigned long get_sclk(void);
945 extern unsigned long sclk_to_usecs(unsigned long sclk);
946 extern unsigned long usecs_to_sclk(unsigned long usecs);
948 extern void dump_bfin_process(struct pt_regs *regs);
949 extern void dump_bfin_mem(struct pt_regs *regs);
950 extern void dump_bfin_trace_buffer(void);
953 extern int init_arch_irq(void);
954 extern void init_exception_vectors(void);
955 extern void program_IAR(void);
957 extern void lower_to_irq14(void);
958 extern void bfin_return_from_exception(void);
959 extern void evt14_softirq(void);
960 extern void asm_do_IRQ(unsigned int irq, struct pt_regs *regs);
961 extern int bfin_internal_set_wake(unsigned int irq, unsigned int state);
963 extern void *l1_data_A_sram_alloc(size_t);
964 extern void *l1_data_B_sram_alloc(size_t);
965 extern void *l1_inst_sram_alloc(size_t);
966 extern void *l1_data_sram_alloc(size_t);
967 extern void *l1_data_sram_zalloc(size_t);
968 extern void *l2_sram_alloc(size_t);
969 extern void *l2_sram_zalloc(size_t);
970 extern int l1_data_A_sram_free(const void*);
971 extern int l1_data_B_sram_free(const void*);
972 extern int l1_inst_sram_free(const void*);
973 extern int l1_data_sram_free(const void*);
974 extern int l2_sram_free(const void *);
975 extern int sram_free(const void*);
982 extern void *sram_alloc_with_lsl(size_t, unsigned long);
983 extern int sram_free_with_lsl(const void*);
985 extern void *isram_memcpy(void *dest, const void *src, size_t n);
987 extern const char bfin_board_name[];
989 extern unsigned long bfin_sic_iwr[];
990 extern unsigned vr_wakeup;
991 extern u16 _bfin_swrst;
992 extern unsigned long _ramstart, _ramend, _rambase;
993 extern unsigned long memory_start, memory_end, physical_mem_end;
994 extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[],
995 _ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _sbss_b_l1[], _ebss_b_l1[],
996 _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[],
997 _ebss_l2[], _l2_lma_start[];
1000 extern unsigned long memory_mtd_start, memory_mtd_end, mtd_size;
1003 extern void cache_grab_lock(int way);
1004 extern void bfin_cache_lock(int way);
1005 # 91 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 2
1006 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 2
1007 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/segment.h" 1
1008 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 2
1011 static inline __attribute__((always_inline)) unsigned long rdusp(void)
1015 __asm__ __volatile__("%0 = usp;\n\t":"=da"(usp));
1019 static inline __attribute__((always_inline)) void wrusp(unsigned long usp)
1021 __asm__ __volatile__("usp = %0;\n\t"::"da"(usp));
1024 static inline __attribute__((always_inline)) unsigned long __get_SP(void)
1028 __asm__ __volatile__("%0 = sp;\n\t" : "=da"(sp));
1031 # 48 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
1032 struct thread_struct {
1035 unsigned short seqstat;
1038 void * debuggerinfo;
1040 # 94 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
1044 static inline __attribute__((always_inline)) void release_thread(struct task_struct *dead_task)
1050 extern int kernel_thread(int (*fn) (void *), void *arg, unsigned long flags);
1055 static inline __attribute__((always_inline)) void exit_thread(void)
1064 unsigned long get_wchan(struct task_struct *p);
1065 # 132 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
1066 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_revid(void)
1069 uint32_t revid = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }) >> 28;
1070 # 154 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
1074 static inline __attribute__((always_inline)) uint16_t __attribute__((pure)) bfin_cpuid(void)
1076 return (({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }) & 0x0FFFF000) >> 12;
1079 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_dspid(void)
1081 return ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFE05000) ); __v; });
1084 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_compiled_revid(void)
1094 # 188 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
1096 # 42 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1097 # 133 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
1098 struct __xchg_dummy {
1099 unsigned long a[100];
1103 static inline __attribute__((always_inline)) unsigned long __xchg(unsigned long x, volatile void *ptr,
1106 unsigned long tmp = 0;
1107 unsigned long flags = 0;
1109 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1113 __asm__ __volatile__
1114 ("%0 = b%2 (z);\n\t"
1116 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
1119 __asm__ __volatile__
1120 ("%0 = w%2 (z);\n\t"
1122 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
1125 __asm__ __volatile__
1128 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
1131 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1135 # 1 "include/asm-generic/cmpxchg-local.h" 1
1141 extern unsigned long wrong_size_cmpxchg(volatile void *ptr);
1147 static inline __attribute__((always_inline)) unsigned long __cmpxchg_local_generic(volatile void *ptr,
1148 unsigned long old, unsigned long new, int size)
1150 unsigned long flags, prev;
1155 if (size == 8 && sizeof(unsigned long) != 8)
1156 wrong_size_cmpxchg(ptr);
1158 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1160 case 1: prev = *(u8 *)ptr;
1162 *(u8 *)ptr = (u8)new;
1164 case 2: prev = *(u16 *)ptr;
1166 *(u16 *)ptr = (u16)new;
1168 case 4: prev = *(u32 *)ptr;
1170 *(u32 *)ptr = (u32)new;
1172 case 8: prev = *(u64 *)ptr;
1174 *(u64 *)ptr = (u64)new;
1177 wrong_size_cmpxchg(ptr);
1179 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1186 static inline __attribute__((always_inline)) u64 __cmpxchg64_local_generic(volatile void *ptr,
1190 unsigned long flags;
1192 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1196 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1199 # 171 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1200 # 181 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
1201 # 1 "include/asm-generic/cmpxchg.h" 1
1202 # 182 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1203 # 195 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
1204 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/l1layout.h" 1
1205 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/l1layout.h"
1206 struct l1_scratch_task_info
1215 # 196 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1216 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h" 1
1217 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h"
1218 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/mem_map.h" 1
1219 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h" 2
1220 # 51 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h"
1221 static inline __attribute__((always_inline)) ulong get_l1_scratch_start_cpu(int cpu)
1225 static inline __attribute__((always_inline)) ulong get_l1_code_start_cpu(int cpu)
1229 static inline __attribute__((always_inline)) ulong get_l1_data_a_start_cpu(int cpu)
1233 static inline __attribute__((always_inline)) ulong get_l1_data_b_start_cpu(int cpu)
1237 static inline __attribute__((always_inline)) ulong get_l1_scratch_start(void)
1239 return get_l1_scratch_start_cpu(0);
1241 static inline __attribute__((always_inline)) ulong get_l1_code_start(void)
1243 return get_l1_code_start_cpu(0);
1245 static inline __attribute__((always_inline)) ulong get_l1_data_a_start(void)
1247 return get_l1_data_a_start_cpu(0);
1249 static inline __attribute__((always_inline)) ulong get_l1_data_b_start(void)
1251 return get_l1_data_b_start_cpu(0);
1253 # 197 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1255 struct task_struct *resume(struct task_struct *prev, struct task_struct *next);
1256 # 85 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1258 static inline __attribute__((always_inline)) void set_bit(int nr, volatile unsigned long *addr)
1260 int *a = (int *)addr;
1262 unsigned long flags;
1264 mask = 1 << (nr & 0x1f);
1265 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1267 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1270 static inline __attribute__((always_inline)) void clear_bit(int nr, volatile unsigned long *addr)
1272 int *a = (int *)addr;
1274 unsigned long flags;
1276 mask = 1 << (nr & 0x1f);
1277 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1279 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1282 static inline __attribute__((always_inline)) void change_bit(int nr, volatile unsigned long *addr)
1285 unsigned long *ADDR = (unsigned long *)addr;
1288 mask = 1 << (nr & 31);
1289 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1291 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1294 static inline __attribute__((always_inline)) int test_and_set_bit(int nr, volatile unsigned long *addr)
1297 volatile unsigned int *a = (volatile unsigned int *)addr;
1298 unsigned long flags;
1301 mask = 1 << (nr & 0x1f);
1302 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1303 retval = (mask & *a) != 0;
1305 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1310 static inline __attribute__((always_inline)) int test_and_clear_bit(int nr, volatile unsigned long *addr)
1313 volatile unsigned int *a = (volatile unsigned int *)addr;
1314 unsigned long flags;
1317 mask = 1 << (nr & 0x1f);
1318 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1319 retval = (mask & *a) != 0;
1321 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1326 static inline __attribute__((always_inline)) int test_and_change_bit(int nr, volatile unsigned long *addr)
1329 volatile unsigned int *a = (volatile unsigned int *)addr;
1330 unsigned long flags;
1333 mask = 1 << (nr & 0x1f);
1334 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
1335 retval = (mask & *a) != 0;
1337 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
1340 # 177 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h"
1341 static inline __attribute__((always_inline)) void __set_bit(int nr, volatile unsigned long *addr)
1343 int *a = (int *)addr;
1347 mask = 1 << (nr & 0x1f);
1351 static inline __attribute__((always_inline)) void __clear_bit(int nr, volatile unsigned long *addr)
1353 int *a = (int *)addr;
1357 mask = 1 << (nr & 0x1f);
1361 static inline __attribute__((always_inline)) void __change_bit(int nr, volatile unsigned long *addr)
1364 unsigned long *ADDR = (unsigned long *)addr;
1367 mask = 1 << (nr & 31);
1371 static inline __attribute__((always_inline)) int __test_and_set_bit(int nr, volatile unsigned long *addr)
1374 volatile unsigned int *a = (volatile unsigned int *)addr;
1377 mask = 1 << (nr & 0x1f);
1378 retval = (mask & *a) != 0;
1383 static inline __attribute__((always_inline)) int __test_and_clear_bit(int nr, volatile unsigned long *addr)
1386 volatile unsigned int *a = (volatile unsigned int *)addr;
1389 mask = 1 << (nr & 0x1f);
1390 retval = (mask & *a) != 0;
1395 static inline __attribute__((always_inline)) int __test_and_change_bit(int nr,
1396 volatile unsigned long *addr)
1399 volatile unsigned int *a = (volatile unsigned int *)addr;
1402 mask = 1 << (nr & 0x1f);
1403 retval = (mask & *a) != 0;
1408 static inline __attribute__((always_inline)) int __test_bit(int nr, const void *addr)
1410 int *a = (int *)addr;
1414 mask = 1 << (nr & 0x1f);
1415 return ((mask & *a) != 0);
1423 static inline __attribute__((always_inline)) int test_bit(int nr, const void *addr)
1425 return __test_bit(nr, addr);
1429 # 1 "include/asm-generic/bitops/find.h" 1
1430 # 266 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1431 # 1 "include/asm-generic/bitops/hweight.h" 1
1437 extern unsigned int hweight32(unsigned int w);
1438 extern unsigned int hweight16(unsigned int w);
1439 extern unsigned int hweight8(unsigned int w);
1440 extern unsigned long hweight64(__u64 w);
1441 # 267 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1442 # 1 "include/asm-generic/bitops/lock.h" 1
1443 # 268 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1445 # 1 "include/asm-generic/bitops/ext2-atomic.h" 1
1446 # 270 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1447 # 1 "include/asm-generic/bitops/ext2-non-atomic.h" 1
1451 # 1 "include/asm-generic/bitops/le.h" 1
1452 # 5 "include/asm-generic/bitops/ext2-non-atomic.h" 2
1453 # 271 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1455 # 1 "include/asm-generic/bitops/minix.h" 1
1456 # 273 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1460 # 1 "include/asm-generic/bitops/fls.h" 1
1461 # 12 "include/asm-generic/bitops/fls.h"
1462 static inline __attribute__((always_inline)) int fls(int x)
1468 if (!(x & 0xffff0000u)) {
1472 if (!(x & 0xff000000u)) {
1476 if (!(x & 0xf0000000u)) {
1480 if (!(x & 0xc0000000u)) {
1484 if (!(x & 0x80000000u)) {
1490 # 277 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1491 # 1 "include/asm-generic/bitops/fls64.h" 1
1492 # 18 "include/asm-generic/bitops/fls64.h"
1493 static inline __attribute__((always_inline)) int fls64(__u64 x)
1500 # 278 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
1501 # 18 "include/linux/bitops.h" 2
1509 static __inline__ __attribute__((always_inline)) int get_bitmask_order(unsigned int count)
1517 static __inline__ __attribute__((always_inline)) int get_count_order(unsigned int count)
1521 order = fls(count) - 1;
1522 if (count & (count - 1))
1527 static inline __attribute__((always_inline)) unsigned long hweight_long(unsigned long w)
1529 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
1537 static inline __attribute__((always_inline)) __u32 rol32(__u32 word, unsigned int shift)
1539 return (word << shift) | (word >> (32 - shift));
1547 static inline __attribute__((always_inline)) __u32 ror32(__u32 word, unsigned int shift)
1549 return (word >> shift) | (word << (32 - shift));
1557 static inline __attribute__((always_inline)) __u16 rol16(__u16 word, unsigned int shift)
1559 return (word << shift) | (word >> (16 - shift));
1567 static inline __attribute__((always_inline)) __u16 ror16(__u16 word, unsigned int shift)
1569 return (word >> shift) | (word << (16 - shift));
1577 static inline __attribute__((always_inline)) __u8 rol8(__u8 word, unsigned int shift)
1579 return (word << shift) | (word >> (8 - shift));
1587 static inline __attribute__((always_inline)) __u8 ror8(__u8 word, unsigned int shift)
1589 return (word >> shift) | (word << (8 - shift));
1592 static inline __attribute__((always_inline)) unsigned fls_long(unsigned long l)
1598 # 148 "include/linux/bitops.h"
1599 extern unsigned long find_next_bit(const unsigned long *addr,
1600 unsigned long size, unsigned long offset);
1601 # 158 "include/linux/bitops.h"
1602 extern unsigned long find_next_zero_bit(const unsigned long *addr,
1604 unsigned long offset);
1605 # 16 "include/linux/kernel.h" 2
1606 # 1 "include/linux/log2.h" 1
1607 # 21 "include/linux/log2.h"
1608 extern __attribute__((const, noreturn))
1609 int ____ilog2_NaN(void);
1610 # 31 "include/linux/log2.h"
1611 static inline __attribute__((always_inline)) __attribute__((const))
1612 int __ilog2_u32(u32 n)
1619 static inline __attribute__((always_inline)) __attribute__((const))
1620 int __ilog2_u64(u64 n)
1622 return fls64(n) - 1;
1631 static inline __attribute__((always_inline)) __attribute__((const))
1632 bool is_power_of_2(unsigned long n)
1634 return (n != 0 && ((n & (n - 1)) == 0));
1640 static inline __attribute__((always_inline)) __attribute__((const))
1641 unsigned long __roundup_pow_of_two(unsigned long n)
1643 return 1UL << fls_long(n - 1);
1649 static inline __attribute__((always_inline)) __attribute__((const))
1650 unsigned long __rounddown_pow_of_two(unsigned long n)
1652 return 1UL << (fls_long(n) - 1);
1654 # 17 "include/linux/kernel.h" 2
1655 # 1 "include/linux/typecheck.h" 1
1656 # 18 "include/linux/kernel.h" 2
1657 # 1 "include/linux/ratelimit.h" 1
1660 # 1 "include/linux/param.h" 1
1664 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/param.h" 1
1665 # 5 "include/linux/param.h" 2
1666 # 4 "include/linux/ratelimit.h" 2
1671 struct ratelimit_state {
1676 unsigned long begin;
1682 extern int __ratelimit(struct ratelimit_state *rs);
1683 # 19 "include/linux/kernel.h" 2
1684 # 1 "include/linux/dynamic_printk.h" 1
1685 # 13 "include/linux/dynamic_printk.h"
1686 extern int dynamic_enabled;
1692 extern long long dynamic_printk_enabled;
1693 extern long long dynamic_printk_enabled2;
1697 char *logical_modname;
1702 } __attribute__((aligned(8)));
1704 int register_dynamic_debug_module(char *mod_name, int type, char *share_name,
1705 char *flags, int hash, int hash2);
1706 # 78 "include/linux/dynamic_printk.h"
1707 static inline __attribute__((always_inline)) int unregister_dynamic_debug_module(const char *mod_name)
1711 static inline __attribute__((always_inline)) int __dynamic_dbg_enabled_helper(char *modname, int type,
1712 int value, int hash)
1716 # 20 "include/linux/kernel.h" 2
1718 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h" 1
1719 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h"
1720 # 1 "include/asm-generic/bug.h" 1
1721 # 36 "include/asm-generic/bug.h"
1722 extern void warn_on_slowpath(const char *file, const int line);
1723 extern void warn_slowpath(const char *file, const int line,
1724 const char *fmt, ...) __attribute__((format(printf, 3, 4)));
1725 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h" 2
1726 # 22 "include/linux/kernel.h" 2
1728 extern const char linux_banner[];
1729 extern const char linux_proc_banner[];
1730 # 56 "include/linux/kernel.h"
1731 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 1
1732 # 1 "include/asm-generic/div64.h" 1
1733 # 35 "include/asm-generic/div64.h"
1734 extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
1735 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 2
1736 # 57 "include/linux/kernel.h" 2
1737 # 101 "include/linux/kernel.h"
1738 extern int console_printk[];
1748 # 144 "include/linux/kernel.h"
1749 extern struct atomic_notifier_head panic_notifier_list;
1750 extern long (*panic_blink)(long time);
1751 void panic(const char * fmt, ...)
1752 __attribute__ ((noreturn, format (printf, 1, 2))) __attribute__((__cold__));
1753 extern void oops_enter(void);
1754 extern void oops_exit(void);
1755 extern int oops_may_print(void);
1756 void do_exit(long error_code)
1757 __attribute__((noreturn));
1758 void complete_and_exit(struct completion *, long)
1759 __attribute__((noreturn));
1760 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
1761 extern long simple_strtol(const char *,char **,unsigned int);
1762 extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
1763 extern long long simple_strtoll(const char *,char **,unsigned int);
1764 extern int strict_strtoul(const char *, unsigned int, unsigned long *);
1765 extern int strict_strtol(const char *, unsigned int, long *);
1766 extern int strict_strtoull(const char *, unsigned int, unsigned long long *);
1767 extern int strict_strtoll(const char *, unsigned int, long long *);
1768 extern int sprintf(char * buf, const char * fmt, ...)
1769 __attribute__ ((format (printf, 2, 3)));
1770 extern int vsprintf(char *buf, const char *, va_list)
1771 __attribute__ ((format (printf, 2, 0)));
1772 extern int snprintf(char * buf, size_t size, const char * fmt, ...)
1773 __attribute__ ((format (printf, 3, 4)));
1774 extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
1775 __attribute__ ((format (printf, 3, 0)));
1776 extern int scnprintf(char * buf, size_t size, const char * fmt, ...)
1777 __attribute__ ((format (printf, 3, 4)));
1778 extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
1779 __attribute__ ((format (printf, 3, 0)));
1780 extern char *kasprintf(gfp_t gfp, const char *fmt, ...)
1781 __attribute__ ((format (printf, 2, 3)));
1782 extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args);
1784 extern int sscanf(const char *, const char *, ...)
1785 __attribute__ ((format (scanf, 2, 3)));
1786 extern int vsscanf(const char *, const char *, va_list)
1787 __attribute__ ((format (scanf, 2, 0)));
1789 extern int get_option(char **str, int *pint);
1790 extern char *get_options(const char *str, int nints, int *ints);
1791 extern unsigned long long memparse(const char *ptr, char **retptr);
1793 extern int core_kernel_text(unsigned long addr);
1794 extern int __kernel_text_address(unsigned long addr);
1795 extern int kernel_text_address(unsigned long addr);
1797 extern struct pid *session_of_pgrp(struct pid *pgrp);
1798 # 219 "include/linux/kernel.h"
1799 int vprintk(const char *fmt, va_list args)
1800 __attribute__ ((format (printf, 1, 0)));
1801 int printk(const char * fmt, ...)
1802 __attribute__ ((format (printf, 1, 2))) __attribute__((__cold__));
1804 extern struct ratelimit_state printk_ratelimit_state;
1805 extern int printk_ratelimit(void);
1806 extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
1807 unsigned int interval_msec);
1808 # 241 "include/linux/kernel.h"
1809 extern int printk_needs_cpu(int cpu);
1810 extern void printk_tick(void);
1812 extern void __attribute__((format(printf, 1, 2)))
1813 early_printk(const char *fmt, ...);
1815 unsigned long int_sqrt(unsigned long);
1817 static inline __attribute__((always_inline)) void console_silent(void)
1819 (console_printk[0]) = 0;
1822 static inline __attribute__((always_inline)) void console_verbose(void)
1824 if ((console_printk[0]))
1825 (console_printk[0]) = 15;
1828 extern void bust_spinlocks(int yes);
1829 extern void wake_up_klogd(void);
1830 extern int oops_in_progress;
1831 extern int panic_timeout;
1832 extern int panic_on_oops;
1833 extern int panic_on_unrecovered_nmi;
1834 extern const char *print_tainted(void);
1835 extern void add_taint(unsigned flag);
1836 extern int test_taint(unsigned flag);
1837 extern unsigned long get_taint(void);
1838 extern int root_mountflags;
1841 extern enum system_states {
1847 SYSTEM_SUSPEND_DISK,
1849 # 294 "include/linux/kernel.h"
1850 extern void dump_stack(void) __attribute__((__cold__));
1854 DUMP_PREFIX_ADDRESS,
1857 extern void hex_dump_to_buffer(const void *buf, size_t len,
1858 int rowsize, int groupsize,
1859 char *linebuf, size_t linebuflen, bool ascii);
1860 extern void print_hex_dump(const char *level, const char *prefix_str,
1861 int prefix_type, int rowsize, int groupsize,
1862 const void *buf, size_t len, bool ascii);
1863 extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
1864 const void *buf, size_t len);
1866 extern const char hex_asc[];
1870 static inline __attribute__((always_inline)) char *pack_hex_byte(char *buf, u8 byte)
1872 *buf++ = hex_asc[((byte) & 0xf0) >> 4];
1873 *buf++ = hex_asc[((byte) & 0x0f)];
1876 # 485 "include/linux/kernel.h"
1878 extern int do_sysinfo(struct sysinfo *info);
1885 unsigned long loads[3];
1886 unsigned long totalram;
1887 unsigned long freeram;
1888 unsigned long sharedram;
1889 unsigned long bufferram;
1890 unsigned long totalswap;
1891 unsigned long freeswap;
1892 unsigned short procs;
1894 unsigned long totalhigh;
1895 unsigned long freehigh;
1896 unsigned int mem_unit;
1897 char _f[20-2*sizeof(long)-sizeof(int)];
1899 # 10 "include/linux/kallsyms.h" 2
1900 # 41 "include/linux/kallsyms.h"
1901 static inline __attribute__((always_inline)) unsigned long kallsyms_lookup_name(const char *name)
1906 static inline __attribute__((always_inline)) int kallsyms_lookup_size_offset(unsigned long addr,
1907 unsigned long *symbolsize,
1908 unsigned long *offset)
1913 static inline __attribute__((always_inline)) const char *kallsyms_lookup(unsigned long addr,
1914 unsigned long *symbolsize,
1915 unsigned long *offset,
1916 char **modname, char *namebuf)
1921 static inline __attribute__((always_inline)) int sprint_symbol(char *buffer, unsigned long addr)
1927 static inline __attribute__((always_inline)) int lookup_symbol_name(unsigned long addr, char *symname)
1932 static inline __attribute__((always_inline)) int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name)
1942 static void __check_printsym_format(const char *fmt, ...)
1943 __attribute__((format(printf,1,2)));
1944 static inline __attribute__((always_inline)) void __check_printsym_format(const char *fmt, ...)
1948 static inline __attribute__((always_inline)) void print_symbol(const char *fmt, unsigned long addr)
1950 __check_printsym_format(fmt, "");
1959 static inline __attribute__((always_inline)) void __attribute__((deprecated)) print_fn_descriptor_symbol(const char *fmt, void *addr)
1964 print_symbol(fmt, (unsigned long)addr);
1967 static inline __attribute__((always_inline)) void print_ip_sym(unsigned long ip)
1969 printk("[<%p>] %pS\n", (void *) ip, (void *) ip);
1971 # 16 "kernel/trace/trace.c" 2
1972 # 1 "include/linux/seq_file.h" 1
1977 # 1 "include/linux/string.h" 1
1978 # 14 "include/linux/string.h"
1979 extern char *strndup_user(const char *, long);
1984 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/string.h" 1
1985 # 9 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/string.h"
1986 extern inline __attribute__((always_inline)) char *strcpy(char *dest, const char *src)
1991 __asm__ __volatile__ (
1993 "%2 = B [%1++] (Z);"
1996 "if cc jump 1b (bp);"
1997 : "+&a" (dest), "+&a" (src), "=&d" (temp)
2005 extern inline __attribute__((always_inline)) char *strncpy(char *dest, const char *src, size_t n)
2013 __asm__ __volatile__ (
2015 "%3 = B [%1++] (Z);"
2021 "if ! cc jump 1b (bp);"
2033 : "+&a" (dest), "+&a" (src), "+&da" (n), "=&d" (temp)
2041 extern inline __attribute__((always_inline)) int strcmp(const char *cs, const char *ct)
2048 __asm__ __volatile__ (
2055 "if cc jump 1b (bp);"
2060 : "+&a" (cs), "+&a" (ct), "=&d" (__res1), "=&d" (__res2)
2068 extern inline __attribute__((always_inline)) int strncmp(const char *cs, const char *ct, size_t count)
2078 __asm__ __volatile__ (
2095 : "+&a" (cs), "+&a" (ct), "+&da" (count), "=&d" (__res1), "=&d" (__res2)
2103 extern void *memset(void *s, int c, size_t count);
2105 extern void *memcpy(void *d, const void *s, size_t count);
2107 extern int memcmp(const void *, const void *, __kernel_size_t);
2109 extern void *memchr(const void *s, int c, size_t n);
2111 extern void *memmove(void *dest, const void *src, size_t count);
2112 # 20 "include/linux/string.h" 2
2113 # 28 "include/linux/string.h"
2114 size_t strlcpy(char *, const char *, size_t);
2117 extern char * strcat(char *, const char *);
2120 extern char * strncat(char *, const char *, __kernel_size_t);
2123 extern size_t strlcat(char *, const char *, __kernel_size_t);
2124 # 46 "include/linux/string.h"
2125 extern int strnicmp(const char *, const char *, __kernel_size_t);
2128 extern int strcasecmp(const char *s1, const char *s2);
2131 extern int strncasecmp(const char *s1, const char *s2, size_t n);
2134 extern char * strchr(const char *,int);
2137 extern char * strnchr(const char *, size_t, int);
2140 extern char * strrchr(const char *,int);
2142 extern char * strstrip(char *);
2144 extern char * strstr(const char *,const char *);
2147 extern __kernel_size_t strlen(const char *);
2150 extern __kernel_size_t strnlen(const char *,__kernel_size_t);
2153 extern char * strpbrk(const char *,const char *);
2156 extern char * strsep(char **,const char *);
2159 extern __kernel_size_t strspn(const char *,const char *);
2162 extern __kernel_size_t strcspn(const char *,const char *);
2163 # 96 "include/linux/string.h"
2164 extern void * memscan(void *,int,__kernel_size_t);
2165 # 105 "include/linux/string.h"
2166 extern char *kstrdup(const char *s, gfp_t gfp);
2167 extern char *kstrndup(const char *s, size_t len, gfp_t gfp);
2168 extern void *kmemdup(const void *src, size_t len, gfp_t gfp);
2170 extern char **argv_split(gfp_t gfp, const char *str, int *argcp);
2171 extern void argv_free(char **argv);
2173 extern bool sysfs_streq(const char *s1, const char *s2);
2175 extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
2176 const void *from, size_t available);
2177 # 6 "include/linux/seq_file.h" 2
2178 # 1 "include/linux/mutex.h" 1
2179 # 13 "include/linux/mutex.h"
2180 # 1 "include/linux/list.h" 1
2185 # 1 "include/linux/poison.h" 1
2186 # 6 "include/linux/list.h" 2
2187 # 1 "include/linux/prefetch.h" 1
2188 # 15 "include/linux/prefetch.h"
2189 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cache.h" 1
2190 # 16 "include/linux/prefetch.h" 2
2191 # 53 "include/linux/prefetch.h"
2192 static inline __attribute__((always_inline)) void prefetch_range(void *addr, size_t len)
2202 # 7 "include/linux/list.h" 2
2203 # 19 "include/linux/list.h"
2205 struct list_head *next, *prev;
2213 static inline __attribute__((always_inline)) void INIT_LIST_HEAD(struct list_head *list)
2218 # 51 "include/linux/list.h"
2219 extern void __list_add(struct list_head *new,
2220 struct list_head *prev,
2221 struct list_head *next);
2222 # 64 "include/linux/list.h"
2223 static inline __attribute__((always_inline)) void list_add(struct list_head *new, struct list_head *head)
2225 __list_add(new, head, head->next);
2227 # 78 "include/linux/list.h"
2228 static inline __attribute__((always_inline)) void list_add_tail(struct list_head *new, struct list_head *head)
2230 __list_add(new, head->prev, head);
2232 # 90 "include/linux/list.h"
2233 static inline __attribute__((always_inline)) void __list_del(struct list_head * prev, struct list_head * next)
2238 # 110 "include/linux/list.h"
2239 extern void list_del(struct list_head *entry);
2240 # 120 "include/linux/list.h"
2241 static inline __attribute__((always_inline)) void list_replace(struct list_head *old,
2242 struct list_head *new)
2244 new->next = old->next;
2245 new->next->prev = new;
2246 new->prev = old->prev;
2247 new->prev->next = new;
2250 static inline __attribute__((always_inline)) void list_replace_init(struct list_head *old,
2251 struct list_head *new)
2253 list_replace(old, new);
2254 INIT_LIST_HEAD(old);
2261 static inline __attribute__((always_inline)) void list_del_init(struct list_head *entry)
2263 __list_del(entry->prev, entry->next);
2264 INIT_LIST_HEAD(entry);
2272 static inline __attribute__((always_inline)) void list_move(struct list_head *list, struct list_head *head)
2274 __list_del(list->prev, list->next);
2275 list_add(list, head);
2283 static inline __attribute__((always_inline)) void list_move_tail(struct list_head *list,
2284 struct list_head *head)
2286 __list_del(list->prev, list->next);
2287 list_add_tail(list, head);
2295 static inline __attribute__((always_inline)) int list_is_last(const struct list_head *list,
2296 const struct list_head *head)
2298 return list->next == head;
2305 static inline __attribute__((always_inline)) int list_empty(const struct list_head *head)
2307 return head->next == head;
2309 # 202 "include/linux/list.h"
2310 static inline __attribute__((always_inline)) int list_empty_careful(const struct list_head *head)
2312 struct list_head *next = head->next;
2313 return (next == head) && (next == head->prev);
2320 static inline __attribute__((always_inline)) int list_is_singular(const struct list_head *head)
2322 return !list_empty(head) && (head->next == head->prev);
2325 static inline __attribute__((always_inline)) void __list_cut_position(struct list_head *list,
2326 struct list_head *head, struct list_head *entry)
2328 struct list_head *new_first = entry->next;
2329 list->next = head->next;
2330 list->next->prev = list;
2333 head->next = new_first;
2334 new_first->prev = head;
2336 # 243 "include/linux/list.h"
2337 static inline __attribute__((always_inline)) void list_cut_position(struct list_head *list,
2338 struct list_head *head, struct list_head *entry)
2340 if (list_empty(head))
2342 if (list_is_singular(head) &&
2343 (head->next != entry && head != entry))
2346 INIT_LIST_HEAD(list);
2348 __list_cut_position(list, head, entry);
2351 static inline __attribute__((always_inline)) void __list_splice(const struct list_head *list,
2352 struct list_head *prev,
2353 struct list_head *next)
2355 struct list_head *first = list->next;
2356 struct list_head *last = list->prev;
2370 static inline __attribute__((always_inline)) void list_splice(const struct list_head *list,
2371 struct list_head *head)
2373 if (!list_empty(list))
2374 __list_splice(list, head, head->next);
2382 static inline __attribute__((always_inline)) void list_splice_tail(struct list_head *list,
2383 struct list_head *head)
2385 if (!list_empty(list))
2386 __list_splice(list, head->prev, head);
2388 # 302 "include/linux/list.h"
2389 static inline __attribute__((always_inline)) void list_splice_init(struct list_head *list,
2390 struct list_head *head)
2392 if (!list_empty(list)) {
2393 __list_splice(list, head, head->next);
2394 INIT_LIST_HEAD(list);
2397 # 319 "include/linux/list.h"
2398 static inline __attribute__((always_inline)) void list_splice_tail_init(struct list_head *list,
2399 struct list_head *head)
2401 if (!list_empty(list)) {
2402 __list_splice(list, head->prev, head);
2403 INIT_LIST_HEAD(list);
2406 # 540 "include/linux/list.h"
2408 struct hlist_node *first;
2412 struct hlist_node *next, **pprev;
2418 static inline __attribute__((always_inline)) void INIT_HLIST_NODE(struct hlist_node *h)
2420 h->next = ((void *)0);
2421 h->pprev = ((void *)0);
2424 static inline __attribute__((always_inline)) int hlist_unhashed(const struct hlist_node *h)
2429 static inline __attribute__((always_inline)) int hlist_empty(const struct hlist_head *h)
2434 static inline __attribute__((always_inline)) void __hlist_del(struct hlist_node *n)
2436 struct hlist_node *next = n->next;
2437 struct hlist_node **pprev = n->pprev;
2440 next->pprev = pprev;
2443 static inline __attribute__((always_inline)) void hlist_del(struct hlist_node *n)
2446 n->next = ((void *) 0x00100100);
2447 n->pprev = ((void *) 0x00200200);
2450 static inline __attribute__((always_inline)) void hlist_del_init(struct hlist_node *n)
2452 if (!hlist_unhashed(n)) {
2458 static inline __attribute__((always_inline)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
2460 struct hlist_node *first = h->first;
2463 first->pprev = &n->next;
2465 n->pprev = &h->first;
2469 static inline __attribute__((always_inline)) void hlist_add_before(struct hlist_node *n,
2470 struct hlist_node *next)
2472 n->pprev = next->pprev;
2474 next->pprev = &n->next;
2478 static inline __attribute__((always_inline)) void hlist_add_after(struct hlist_node *n,
2479 struct hlist_node *next)
2481 next->next = n->next;
2483 next->pprev = &n->next;
2486 next->next->pprev = &next->next;
2493 static inline __attribute__((always_inline)) void hlist_move_list(struct hlist_head *old,
2494 struct hlist_head *new)
2496 new->first = old->first;
2498 new->first->pprev = &new->first;
2499 old->first = ((void *)0);
2501 # 14 "include/linux/mutex.h" 2
2502 # 1 "include/linux/spinlock_types.h" 1
2503 # 15 "include/linux/spinlock_types.h"
2504 # 1 "include/linux/spinlock_types_up.h" 1
2505 # 17 "include/linux/spinlock_types_up.h"
2507 volatile unsigned int slock;
2509 # 31 "include/linux/spinlock_types_up.h"
2513 # 16 "include/linux/spinlock_types.h" 2
2516 # 1 "include/linux/lockdep.h" 1
2517 # 12 "include/linux/lockdep.h"
2520 # 321 "include/linux/lockdep.h"
2521 static inline __attribute__((always_inline)) void lockdep_off(void)
2525 static inline __attribute__((always_inline)) void lockdep_on(void)
2528 # 350 "include/linux/lockdep.h"
2529 struct lock_class_key { };
2530 # 383 "include/linux/lockdep.h"
2531 static inline __attribute__((always_inline)) void early_init_irq_lock_class(void)
2541 static inline __attribute__((always_inline)) void early_boot_irqs_off(void)
2544 static inline __attribute__((always_inline)) void early_boot_irqs_on(void)
2547 static inline __attribute__((always_inline)) void print_irqtrace_events(struct task_struct *curr)
2550 # 19 "include/linux/spinlock_types.h" 2
2553 raw_spinlock_t raw_lock;
2558 unsigned int magic, owner_cpu;
2569 raw_rwlock_t raw_lock;
2574 unsigned int magic, owner_cpu;
2581 # 15 "include/linux/mutex.h" 2
2585 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h" 1
2586 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h"
2587 typedef struct { volatile int counter; } atomic_t;
2588 # 92 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h"
2589 static inline __attribute__((always_inline)) void atomic_add(int i, atomic_t *v)
2593 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2595 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2598 static inline __attribute__((always_inline)) void atomic_sub(int i, atomic_t *v)
2602 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2604 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2608 static inline __attribute__((always_inline)) int atomic_add_return(int i, atomic_t *v)
2613 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2615 __temp = v->counter;
2616 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2622 static inline __attribute__((always_inline)) int atomic_sub_return(int i, atomic_t *v)
2627 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2629 __temp = v->counter;
2630 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2635 static inline __attribute__((always_inline)) void atomic_inc(volatile atomic_t *v)
2639 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2641 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2644 static inline __attribute__((always_inline)) void atomic_dec(volatile atomic_t *v)
2648 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2650 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2653 static inline __attribute__((always_inline)) void atomic_clear_mask(unsigned int mask, atomic_t *v)
2657 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2658 v->counter &= ~mask;
2659 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2662 static inline __attribute__((always_inline)) void atomic_set_mask(unsigned int mask, atomic_t *v)
2666 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
2668 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
2670 # 212 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h"
2671 # 1 "include/asm-generic/atomic.h" 1
2672 # 141 "include/asm-generic/atomic.h"
2673 typedef atomic_t atomic_long_t;
2676 static inline __attribute__((always_inline)) long atomic_long_read(atomic_long_t *l)
2678 atomic_t *v = (atomic_t *)l;
2680 return (long)((v)->counter);
2683 static inline __attribute__((always_inline)) void atomic_long_set(atomic_long_t *l, long i)
2685 atomic_t *v = (atomic_t *)l;
2687 (((v)->counter) = i);
2690 static inline __attribute__((always_inline)) void atomic_long_inc(atomic_long_t *l)
2692 atomic_t *v = (atomic_t *)l;
2697 static inline __attribute__((always_inline)) void atomic_long_dec(atomic_long_t *l)
2699 atomic_t *v = (atomic_t *)l;
2704 static inline __attribute__((always_inline)) void atomic_long_add(long i, atomic_long_t *l)
2706 atomic_t *v = (atomic_t *)l;
2711 static inline __attribute__((always_inline)) void atomic_long_sub(long i, atomic_long_t *l)
2713 atomic_t *v = (atomic_t *)l;
2718 static inline __attribute__((always_inline)) int atomic_long_sub_and_test(long i, atomic_long_t *l)
2720 atomic_t *v = (atomic_t *)l;
2722 return (atomic_sub_return((i), (v)) == 0);
2725 static inline __attribute__((always_inline)) int atomic_long_dec_and_test(atomic_long_t *l)
2727 atomic_t *v = (atomic_t *)l;
2729 return (atomic_sub_return(1, (v)) == 0);
2732 static inline __attribute__((always_inline)) int atomic_long_inc_and_test(atomic_long_t *l)
2734 atomic_t *v = (atomic_t *)l;
2736 return (atomic_add_return(1,(v)) == 0);
2739 static inline __attribute__((always_inline)) int atomic_long_add_negative(long i, atomic_long_t *l)
2741 atomic_t *v = (atomic_t *)l;
2743 return (atomic_add_return((i), (v)) < 0);
2746 static inline __attribute__((always_inline)) long atomic_long_add_return(long i, atomic_long_t *l)
2748 atomic_t *v = (atomic_t *)l;
2750 return (long)atomic_add_return(i, v);
2753 static inline __attribute__((always_inline)) long atomic_long_sub_return(long i, atomic_long_t *l)
2755 atomic_t *v = (atomic_t *)l;
2757 return (long)atomic_sub_return(i, v);
2760 static inline __attribute__((always_inline)) long atomic_long_inc_return(atomic_long_t *l)
2762 atomic_t *v = (atomic_t *)l;
2764 return (long)atomic_add_return(1,(v));
2767 static inline __attribute__((always_inline)) long atomic_long_dec_return(atomic_long_t *l)
2769 atomic_t *v = (atomic_t *)l;
2771 return (long)atomic_sub_return(1,(v));
2774 static inline __attribute__((always_inline)) long atomic_long_add_unless(atomic_long_t *l, long a, long u)
2776 atomic_t *v = (atomic_t *)l;
2778 return (long)({ int c, old; c = ((v)->counter); while (c != (u) && (old = ((int)((__typeof__(*((&(((v))->counter)))))__cmpxchg_local_generic(((&(((v))->counter))), (unsigned long)(((c))), (unsigned long)(((c + (a)))), sizeof(*((&(((v))->counter)))))))) != c) c = old; c != (u); });
2780 # 213 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h" 2
2781 # 19 "include/linux/mutex.h" 2
2782 # 48 "include/linux/mutex.h"
2786 spinlock_t wait_lock;
2787 struct list_head wait_list;
2789 struct thread_info *owner;
2802 struct mutex_waiter {
2803 struct list_head list;
2804 struct task_struct *task;
2812 # 1 "include/linux/mutex-debug.h" 1
2813 # 21 "include/linux/mutex-debug.h"
2814 extern void mutex_destroy(struct mutex *lock);
2815 # 78 "include/linux/mutex.h" 2
2816 # 106 "include/linux/mutex.h"
2817 extern void __mutex_init(struct mutex *lock, const char *name,
2818 struct lock_class_key *key);
2826 static inline __attribute__((always_inline)) int mutex_is_locked(struct mutex *lock)
2828 return ((&lock->count)->counter) != 1;
2830 # 135 "include/linux/mutex.h"
2831 extern void mutex_lock(struct mutex *lock);
2832 extern int __attribute__((warn_unused_result)) mutex_lock_interruptible(struct mutex *lock);
2833 extern int __attribute__((warn_unused_result)) mutex_lock_killable(struct mutex *lock);
2834 # 148 "include/linux/mutex.h"
2835 extern int mutex_trylock(struct mutex *lock);
2836 extern void mutex_unlock(struct mutex *lock);
2837 # 7 "include/linux/seq_file.h" 2
2838 # 1 "include/linux/cpumask.h" 1
2839 # 141 "include/linux/cpumask.h"
2840 # 1 "include/linux/threads.h" 1
2841 # 142 "include/linux/cpumask.h" 2
2842 # 1 "include/linux/bitmap.h" 1
2843 # 87 "include/linux/bitmap.h"
2844 extern int __bitmap_empty(const unsigned long *bitmap, int bits);
2845 extern int __bitmap_full(const unsigned long *bitmap, int bits);
2846 extern int __bitmap_equal(const unsigned long *bitmap1,
2847 const unsigned long *bitmap2, int bits);
2848 extern void __bitmap_complement(unsigned long *dst, const unsigned long *src,
2850 extern void __bitmap_shift_right(unsigned long *dst,
2851 const unsigned long *src, int shift, int bits);
2852 extern void __bitmap_shift_left(unsigned long *dst,
2853 const unsigned long *src, int shift, int bits);
2854 extern void __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
2855 const unsigned long *bitmap2, int bits);
2856 extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
2857 const unsigned long *bitmap2, int bits);
2858 extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
2859 const unsigned long *bitmap2, int bits);
2860 extern void __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
2861 const unsigned long *bitmap2, int bits);
2862 extern int __bitmap_intersects(const unsigned long *bitmap1,
2863 const unsigned long *bitmap2, int bits);
2864 extern int __bitmap_subset(const unsigned long *bitmap1,
2865 const unsigned long *bitmap2, int bits);
2866 extern int __bitmap_weight(const unsigned long *bitmap, int bits);
2868 extern int bitmap_scnprintf(char *buf, unsigned int len,
2869 const unsigned long *src, int nbits);
2870 extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
2871 unsigned long *dst, int nbits);
2872 extern int bitmap_parse_user(const char *ubuf, unsigned int ulen,
2873 unsigned long *dst, int nbits);
2874 extern int bitmap_scnlistprintf(char *buf, unsigned int len,
2875 const unsigned long *src, int nbits);
2876 extern int bitmap_parselist(const char *buf, unsigned long *maskp,
2878 extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
2879 const unsigned long *old, const unsigned long *new, int bits);
2880 extern int bitmap_bitremap(int oldbit,
2881 const unsigned long *old, const unsigned long *new, int bits);
2882 extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
2883 const unsigned long *relmap, int bits);
2884 extern void bitmap_fold(unsigned long *dst, const unsigned long *orig,
2886 extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order);
2887 extern void bitmap_release_region(unsigned long *bitmap, int pos, int order);
2888 extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
2889 extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits);
2897 static inline __attribute__((always_inline)) void bitmap_zero(unsigned long *dst, int nbits)
2902 int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long);
2903 memset(dst, 0, len);
2907 static inline __attribute__((always_inline)) void bitmap_fill(unsigned long *dst, int nbits)
2909 size_t nlongs = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)));
2911 int len = (nlongs - 1) * sizeof(unsigned long);
2912 memset(dst, 0xff, len);
2914 dst[nlongs - 1] = ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
2917 static inline __attribute__((always_inline)) void bitmap_copy(unsigned long *dst, const unsigned long *src,
2923 int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long);
2924 memcpy(dst, src, len);
2928 static inline __attribute__((always_inline)) void bitmap_and(unsigned long *dst, const unsigned long *src1,
2929 const unsigned long *src2, int nbits)
2932 *dst = *src1 & *src2;
2934 __bitmap_and(dst, src1, src2, nbits);
2937 static inline __attribute__((always_inline)) void bitmap_or(unsigned long *dst, const unsigned long *src1,
2938 const unsigned long *src2, int nbits)
2941 *dst = *src1 | *src2;
2943 __bitmap_or(dst, src1, src2, nbits);
2946 static inline __attribute__((always_inline)) void bitmap_xor(unsigned long *dst, const unsigned long *src1,
2947 const unsigned long *src2, int nbits)
2950 *dst = *src1 ^ *src2;
2952 __bitmap_xor(dst, src1, src2, nbits);
2955 static inline __attribute__((always_inline)) void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
2956 const unsigned long *src2, int nbits)
2959 *dst = *src1 & ~(*src2);
2961 __bitmap_andnot(dst, src1, src2, nbits);
2964 static inline __attribute__((always_inline)) void bitmap_complement(unsigned long *dst, const unsigned long *src,
2968 *dst = ~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
2970 __bitmap_complement(dst, src, nbits);
2973 static inline __attribute__((always_inline)) int bitmap_equal(const unsigned long *src1,
2974 const unsigned long *src2, int nbits)
2977 return ! ((*src1 ^ *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2979 return __bitmap_equal(src1, src2, nbits);
2982 static inline __attribute__((always_inline)) int bitmap_intersects(const unsigned long *src1,
2983 const unsigned long *src2, int nbits)
2986 return ((*src1 & *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )) != 0;
2988 return __bitmap_intersects(src1, src2, nbits);
2991 static inline __attribute__((always_inline)) int bitmap_subset(const unsigned long *src1,
2992 const unsigned long *src2, int nbits)
2995 return ! ((*src1 & ~(*src2)) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2997 return __bitmap_subset(src1, src2, nbits);
3000 static inline __attribute__((always_inline)) int bitmap_empty(const unsigned long *src, int nbits)
3003 return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
3005 return __bitmap_empty(src, nbits);
3008 static inline __attribute__((always_inline)) int bitmap_full(const unsigned long *src, int nbits)
3011 return ! (~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
3013 return __bitmap_full(src, nbits);
3016 static inline __attribute__((always_inline)) int bitmap_weight(const unsigned long *src, int nbits)
3019 return hweight_long(*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
3020 return __bitmap_weight(src, nbits);
3023 static inline __attribute__((always_inline)) void bitmap_shift_right(unsigned long *dst,
3024 const unsigned long *src, int n, int nbits)
3029 __bitmap_shift_right(dst, src, n, nbits);
3032 static inline __attribute__((always_inline)) void bitmap_shift_left(unsigned long *dst,
3033 const unsigned long *src, int n, int nbits)
3036 *dst = (*src << n) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
3038 __bitmap_shift_left(dst, src, n, nbits);
3041 static inline __attribute__((always_inline)) int bitmap_parse(const char *buf, unsigned int buflen,
3042 unsigned long *maskp, int nmaskbits)
3044 return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits);
3046 # 143 "include/linux/cpumask.h" 2
3048 typedef struct cpumask { unsigned long bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t;
3049 extern cpumask_t _unused_cpumask_arg_;
3052 static inline __attribute__((always_inline)) void __cpu_set(int cpu, volatile cpumask_t *dstp)
3054 set_bit(cpu, dstp->bits);
3058 static inline __attribute__((always_inline)) void __cpu_clear(int cpu, volatile cpumask_t *dstp)
3060 clear_bit(cpu, dstp->bits);
3064 static inline __attribute__((always_inline)) void __cpus_setall(cpumask_t *dstp, int nbits)
3066 bitmap_fill(dstp->bits, nbits);
3070 static inline __attribute__((always_inline)) void __cpus_clear(cpumask_t *dstp, int nbits)
3072 bitmap_zero(dstp->bits, nbits);
3079 static inline __attribute__((always_inline)) int __cpu_test_and_set(int cpu, cpumask_t *addr)
3081 return test_and_set_bit(cpu, addr->bits);
3085 static inline __attribute__((always_inline)) void __cpus_and(cpumask_t *dstp, const cpumask_t *src1p,
3086 const cpumask_t *src2p, int nbits)
3088 bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
3092 static inline __attribute__((always_inline)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p,
3093 const cpumask_t *src2p, int nbits)
3095 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
3099 static inline __attribute__((always_inline)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p,
3100 const cpumask_t *src2p, int nbits)
3102 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
3107 static inline __attribute__((always_inline)) void __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p,
3108 const cpumask_t *src2p, int nbits)
3110 bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
3114 static inline __attribute__((always_inline)) void __cpus_complement(cpumask_t *dstp,
3115 const cpumask_t *srcp, int nbits)
3117 bitmap_complement(dstp->bits, srcp->bits, nbits);
3121 static inline __attribute__((always_inline)) int __cpus_equal(const cpumask_t *src1p,
3122 const cpumask_t *src2p, int nbits)
3124 return bitmap_equal(src1p->bits, src2p->bits, nbits);
3128 static inline __attribute__((always_inline)) int __cpus_intersects(const cpumask_t *src1p,
3129 const cpumask_t *src2p, int nbits)
3131 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
3135 static inline __attribute__((always_inline)) int __cpus_subset(const cpumask_t *src1p,
3136 const cpumask_t *src2p, int nbits)
3138 return bitmap_subset(src1p->bits, src2p->bits, nbits);
3142 static inline __attribute__((always_inline)) int __cpus_empty(const cpumask_t *srcp, int nbits)
3144 return bitmap_empty(srcp->bits, nbits);
3148 static inline __attribute__((always_inline)) int __cpus_full(const cpumask_t *srcp, int nbits)
3150 return bitmap_full(srcp->bits, nbits);
3154 static inline __attribute__((always_inline)) int __cpus_weight(const cpumask_t *srcp, int nbits)
3156 return bitmap_weight(srcp->bits, nbits);
3161 static inline __attribute__((always_inline)) void __cpus_shift_right(cpumask_t *dstp,
3162 const cpumask_t *srcp, int n, int nbits)
3164 bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
3169 static inline __attribute__((always_inline)) void __cpus_shift_left(cpumask_t *dstp,
3170 const cpumask_t *srcp, int n, int nbits)
3172 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
3174 # 278 "include/linux/cpumask.h"
3175 extern const unsigned long
3176 cpu_bit_bitmap[32 +1][(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
3178 static inline __attribute__((always_inline)) const cpumask_t *get_cpu_mask(unsigned int cpu)
3180 const unsigned long *p = cpu_bit_bitmap[1 + cpu % 32];
3182 return (const cpumask_t *)p;
3184 # 344 "include/linux/cpumask.h"
3185 static inline __attribute__((always_inline)) int __cpumask_scnprintf(char *buf, int len,
3186 const cpumask_t *srcp, int nbits)
3188 return bitmap_scnprintf(buf, len, srcp->bits, nbits);
3193 static inline __attribute__((always_inline)) int __cpumask_parse_user(const char *buf, int len,
3194 cpumask_t *dstp, int nbits)
3196 return bitmap_parse_user(buf, len, dstp->bits, nbits);
3201 static inline __attribute__((always_inline)) int __cpulist_scnprintf(char *buf, int len,
3202 const cpumask_t *srcp, int nbits)
3204 return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
3208 static inline __attribute__((always_inline)) int __cpulist_parse(const char *buf, cpumask_t *dstp, int nbits)
3210 return bitmap_parselist(buf, dstp->bits, nbits);
3215 static inline __attribute__((always_inline)) int __cpu_remap(int oldbit,
3216 const cpumask_t *oldp, const cpumask_t *newp, int nbits)
3218 return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
3223 static inline __attribute__((always_inline)) void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp,
3224 const cpumask_t *oldp, const cpumask_t *newp, int nbits)
3226 bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
3231 static inline __attribute__((always_inline)) void __cpus_onto(cpumask_t *dstp, const cpumask_t *origp,
3232 const cpumask_t *relmapp, int nbits)
3234 bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits);
3239 static inline __attribute__((always_inline)) void __cpus_fold(cpumask_t *dstp, const cpumask_t *origp,
3242 bitmap_fold(dstp->bits, origp->bits, sz, nbits);
3244 # 504 "include/linux/cpumask.h"
3245 extern cpumask_t cpu_possible_map;
3246 extern cpumask_t cpu_online_map;
3247 extern cpumask_t cpu_present_map;
3248 extern cpumask_t cpu_active_map;
3249 # 558 "include/linux/cpumask.h"
3250 static inline __attribute__((always_inline)) unsigned int cpumask_check(unsigned int cpu)
3260 static inline __attribute__((always_inline)) unsigned int cpumask_first(const struct cpumask *srcp)
3266 static inline __attribute__((always_inline)) unsigned int cpumask_next(int n, const struct cpumask *srcp)
3271 static inline __attribute__((always_inline)) unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
3276 static inline __attribute__((always_inline)) unsigned int cpumask_next_and(int n,
3277 const struct cpumask *srcp,
3278 const struct cpumask *andp)
3284 static inline __attribute__((always_inline)) unsigned int cpumask_any_but(const struct cpumask *mask,
3289 # 694 "include/linux/cpumask.h"
3290 static inline __attribute__((always_inline)) void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
3292 set_bit(cpumask_check(cpu), ((dstp)->bits));
3300 static inline __attribute__((always_inline)) void cpumask_clear_cpu(int cpu, struct cpumask *dstp)
3302 clear_bit(cpumask_check(cpu), ((dstp)->bits));
3304 # 726 "include/linux/cpumask.h"
3305 static inline __attribute__((always_inline)) int cpumask_test_and_set_cpu(int cpu, struct cpumask *cpumask)
3307 return test_and_set_bit(cpumask_check(cpu), ((cpumask)->bits));
3314 static inline __attribute__((always_inline)) void cpumask_setall(struct cpumask *dstp)
3316 bitmap_fill(((dstp)->bits), 1);
3323 static inline __attribute__((always_inline)) void cpumask_clear(struct cpumask *dstp)
3325 bitmap_zero(((dstp)->bits), 1);
3334 static inline __attribute__((always_inline)) void cpumask_and(struct cpumask *dstp,
3335 const struct cpumask *src1p,
3336 const struct cpumask *src2p)
3338 bitmap_and(((dstp)->bits), ((src1p)->bits),
3339 ((src2p)->bits), 1);
3348 static inline __attribute__((always_inline)) void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p,
3349 const struct cpumask *src2p)
3351 bitmap_or(((dstp)->bits), ((src1p)->bits),
3352 ((src2p)->bits), 1);
3361 static inline __attribute__((always_inline)) void cpumask_xor(struct cpumask *dstp,
3362 const struct cpumask *src1p,
3363 const struct cpumask *src2p)
3365 bitmap_xor(((dstp)->bits), ((src1p)->bits),
3366 ((src2p)->bits), 1);
3375 static inline __attribute__((always_inline)) void cpumask_andnot(struct cpumask *dstp,
3376 const struct cpumask *src1p,
3377 const struct cpumask *src2p)
3379 bitmap_andnot(((dstp)->bits), ((src1p)->bits),
3380 ((src2p)->bits), 1);
3388 static inline __attribute__((always_inline)) void cpumask_complement(struct cpumask *dstp,
3389 const struct cpumask *srcp)
3391 bitmap_complement(((dstp)->bits), ((srcp)->bits),
3400 static inline __attribute__((always_inline)) bool cpumask_equal(const struct cpumask *src1p,
3401 const struct cpumask *src2p)
3403 return bitmap_equal(((src1p)->bits), ((src2p)->bits),
3412 static inline __attribute__((always_inline)) bool cpumask_intersects(const struct cpumask *src1p,
3413 const struct cpumask *src2p)
3415 return bitmap_intersects(((src1p)->bits), ((src2p)->bits),
3424 static inline __attribute__((always_inline)) int cpumask_subset(const struct cpumask *src1p,
3425 const struct cpumask *src2p)
3427 return bitmap_subset(((src1p)->bits), ((src2p)->bits),
3435 static inline __attribute__((always_inline)) bool cpumask_empty(const struct cpumask *srcp)
3437 return bitmap_empty(((srcp)->bits), 1);
3444 static inline __attribute__((always_inline)) bool cpumask_full(const struct cpumask *srcp)
3446 return bitmap_full(((srcp)->bits), 1);
3453 static inline __attribute__((always_inline)) unsigned int cpumask_weight(const struct cpumask *srcp)
3455 return bitmap_weight(((srcp)->bits), 1);
3464 static inline __attribute__((always_inline)) void cpumask_shift_right(struct cpumask *dstp,
3465 const struct cpumask *srcp, int n)
3467 bitmap_shift_right(((dstp)->bits), ((srcp)->bits), n,
3477 static inline __attribute__((always_inline)) void cpumask_shift_left(struct cpumask *dstp,
3478 const struct cpumask *srcp, int n)
3480 bitmap_shift_left(((dstp)->bits), ((srcp)->bits), n,
3489 static inline __attribute__((always_inline)) void cpumask_copy(struct cpumask *dstp,
3490 const struct cpumask *srcp)
3492 bitmap_copy(((dstp)->bits), ((srcp)->bits), 1);
3494 # 962 "include/linux/cpumask.h"
3495 static inline __attribute__((always_inline)) int __check_is_bitmap(const unsigned long *bitmap)
3505 static inline __attribute__((always_inline)) size_t cpumask_size(void)
3509 return (((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(long);
3511 # 1004 "include/linux/cpumask.h"
3512 typedef struct cpumask cpumask_var_t[1];
3514 static inline __attribute__((always_inline)) bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
3519 static inline __attribute__((always_inline)) void alloc_bootmem_cpumask_var(cpumask_var_t *mask)
3523 static inline __attribute__((always_inline)) void free_cpumask_var(cpumask_var_t mask)
3527 static inline __attribute__((always_inline)) void free_bootmem_cpumask_var(cpumask_var_t mask)
3530 # 1032 "include/linux/cpumask.h"
3531 extern const unsigned long cpu_all_bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
3538 static inline __attribute__((always_inline)) void set_cpu_possible(unsigned int cpu, bool possible)
3541 cpumask_set_cpu(cpu, &cpu_possible_map);
3543 cpumask_clear_cpu(cpu, &cpu_possible_map);
3546 static inline __attribute__((always_inline)) void set_cpu_present(unsigned int cpu, bool present)
3549 cpumask_set_cpu(cpu, &cpu_present_map);
3551 cpumask_clear_cpu(cpu, &cpu_present_map);
3554 static inline __attribute__((always_inline)) void set_cpu_online(unsigned int cpu, bool online)
3557 cpumask_set_cpu(cpu, &cpu_online_map);
3559 cpumask_clear_cpu(cpu, &cpu_online_map);
3562 static inline __attribute__((always_inline)) void set_cpu_active(unsigned int cpu, bool active)
3565 cpumask_set_cpu(cpu, &cpu_active_map);
3567 cpumask_clear_cpu(cpu, &cpu_active_map);
3570 static inline __attribute__((always_inline)) void init_cpu_present(const struct cpumask *src)
3572 cpumask_copy(&cpu_present_map, src);
3575 static inline __attribute__((always_inline)) void init_cpu_possible(const struct cpumask *src)
3577 cpumask_copy(&cpu_possible_map, src);
3580 static inline __attribute__((always_inline)) void init_cpu_online(const struct cpumask *src)
3582 cpumask_copy(&cpu_online_map, src);
3584 # 8 "include/linux/seq_file.h" 2
3585 # 1 "include/linux/nodemask.h" 1
3586 # 90 "include/linux/nodemask.h"
3587 # 1 "include/linux/numa.h" 1
3588 # 91 "include/linux/nodemask.h" 2
3590 typedef struct { unsigned long bits[((((1 << 0)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } nodemask_t;
3591 extern nodemask_t _unused_nodemask_arg_;
3594 static inline __attribute__((always_inline)) void __node_set(int node, volatile nodemask_t *dstp)
3596 set_bit(node, dstp->bits);
3600 static inline __attribute__((always_inline)) void __node_clear(int node, volatile nodemask_t *dstp)
3602 clear_bit(node, dstp->bits);
3606 static inline __attribute__((always_inline)) void __nodes_setall(nodemask_t *dstp, int nbits)
3608 bitmap_fill(dstp->bits, nbits);
3612 static inline __attribute__((always_inline)) void __nodes_clear(nodemask_t *dstp, int nbits)
3614 bitmap_zero(dstp->bits, nbits);
3622 static inline __attribute__((always_inline)) int __node_test_and_set(int node, nodemask_t *addr)
3624 return test_and_set_bit(node, addr->bits);
3629 static inline __attribute__((always_inline)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p,
3630 const nodemask_t *src2p, int nbits)
3632 bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
3637 static inline __attribute__((always_inline)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p,
3638 const nodemask_t *src2p, int nbits)
3640 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
3645 static inline __attribute__((always_inline)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p,
3646 const nodemask_t *src2p, int nbits)
3648 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
3653 static inline __attribute__((always_inline)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p,
3654 const nodemask_t *src2p, int nbits)
3656 bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
3661 static inline __attribute__((always_inline)) void __nodes_complement(nodemask_t *dstp,
3662 const nodemask_t *srcp, int nbits)
3664 bitmap_complement(dstp->bits, srcp->bits, nbits);
3669 static inline __attribute__((always_inline)) int __nodes_equal(const nodemask_t *src1p,
3670 const nodemask_t *src2p, int nbits)
3672 return bitmap_equal(src1p->bits, src2p->bits, nbits);
3677 static inline __attribute__((always_inline)) int __nodes_intersects(const nodemask_t *src1p,
3678 const nodemask_t *src2p, int nbits)
3680 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
3685 static inline __attribute__((always_inline)) int __nodes_subset(const nodemask_t *src1p,
3686 const nodemask_t *src2p, int nbits)
3688 return bitmap_subset(src1p->bits, src2p->bits, nbits);
3692 static inline __attribute__((always_inline)) int __nodes_empty(const nodemask_t *srcp, int nbits)
3694 return bitmap_empty(srcp->bits, nbits);
3698 static inline __attribute__((always_inline)) int __nodes_full(const nodemask_t *srcp, int nbits)
3700 return bitmap_full(srcp->bits, nbits);
3704 static inline __attribute__((always_inline)) int __nodes_weight(const nodemask_t *srcp, int nbits)
3706 return bitmap_weight(srcp->bits, nbits);
3711 static inline __attribute__((always_inline)) void __nodes_shift_right(nodemask_t *dstp,
3712 const nodemask_t *srcp, int n, int nbits)
3714 bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
3719 static inline __attribute__((always_inline)) void __nodes_shift_left(nodemask_t *dstp,
3720 const nodemask_t *srcp, int n, int nbits)
3722 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
3729 static inline __attribute__((always_inline)) int __first_node(const nodemask_t *srcp)
3731 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_bit((srcp->bits), ((1 << 0)), 0)); __min1 < __min2 ? __min1: __min2; });
3735 static inline __attribute__((always_inline)) int __next_node(int n, const nodemask_t *srcp)
3737 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_bit(srcp->bits, (1 << 0), n+1)); __min1 < __min2 ? __min1: __min2; });
3739 # 255 "include/linux/nodemask.h"
3740 static inline __attribute__((always_inline)) int __first_unset_node(const nodemask_t *maskp)
3742 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_zero_bit((maskp->bits), ((1 << 0)), 0)); __min1 < __min2 ? __min1: __min2; });
3745 # 289 "include/linux/nodemask.h"
3746 static inline __attribute__((always_inline)) int __nodemask_scnprintf(char *buf, int len,
3747 const nodemask_t *srcp, int nbits)
3749 return bitmap_scnprintf(buf, len, srcp->bits, nbits);
3754 static inline __attribute__((always_inline)) int __nodemask_parse_user(const char *buf, int len,
3755 nodemask_t *dstp, int nbits)
3757 return bitmap_parse_user(buf, len, dstp->bits, nbits);
3762 static inline __attribute__((always_inline)) int __nodelist_scnprintf(char *buf, int len,
3763 const nodemask_t *srcp, int nbits)
3765 return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
3769 static inline __attribute__((always_inline)) int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits)
3771 return bitmap_parselist(buf, dstp->bits, nbits);
3776 static inline __attribute__((always_inline)) int __node_remap(int oldbit,
3777 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
3779 return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
3784 static inline __attribute__((always_inline)) void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp,
3785 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
3787 bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
3792 static inline __attribute__((always_inline)) void __nodes_onto(nodemask_t *dstp, const nodemask_t *origp,
3793 const nodemask_t *relmapp, int nbits)
3795 bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits);
3800 static inline __attribute__((always_inline)) void __nodes_fold(nodemask_t *dstp, const nodemask_t *origp,
3803 bitmap_fold(dstp->bits, origp->bits, sz, nbits);
3805 # 363 "include/linux/nodemask.h"
3813 N_HIGH_MEMORY = N_NORMAL_MEMORY,
3824 extern nodemask_t node_states[NR_NODE_STATES];
3825 # 413 "include/linux/nodemask.h"
3826 static inline __attribute__((always_inline)) int node_state(int node, enum node_states state)
3831 static inline __attribute__((always_inline)) void node_set_state(int node, enum node_states state)
3835 static inline __attribute__((always_inline)) void node_clear_state(int node, enum node_states state)
3839 static inline __attribute__((always_inline)) int num_node_state(enum node_states state)
3843 # 9 "include/linux/seq_file.h" 2
3845 struct seq_operations;
3859 const struct seq_operations *op;
3863 struct seq_operations {
3864 void * (*start) (struct seq_file *m, loff_t *pos);
3865 void (*stop) (struct seq_file *m, void *v);
3866 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
3867 int (*show) (struct seq_file *m, void *v);
3872 int seq_open(struct file *, const struct seq_operations *);
3873 ssize_t seq_read(struct file *, char *, size_t, loff_t *);
3874 loff_t seq_lseek(struct file *, loff_t, int);
3875 int seq_release(struct inode *, struct file *);
3876 int seq_escape(struct seq_file *, const char *, const char *);
3877 int seq_putc(struct seq_file *m, char c);
3878 int seq_puts(struct seq_file *m, const char *s);
3880 int seq_printf(struct seq_file *, const char *, ...)
3881 __attribute__ ((format (printf,2,3)));
3883 int seq_path(struct seq_file *, struct path *, char *);
3884 int seq_dentry(struct seq_file *, struct dentry *, char *);
3885 int seq_path_root(struct seq_file *m, struct path *path, struct path *root,
3887 int seq_bitmap(struct seq_file *m, unsigned long *bits, unsigned int nr_bits);
3888 static inline __attribute__((always_inline)) int seq_cpumask(struct seq_file *m, cpumask_t *mask)
3890 return seq_bitmap(m, mask->bits, 1);
3893 static inline __attribute__((always_inline)) int seq_nodemask(struct seq_file *m, nodemask_t *mask)
3895 return seq_bitmap(m, mask->bits, (1 << 0));
3898 int seq_bitmap_list(struct seq_file *m, unsigned long *bits,
3899 unsigned int nr_bits);
3901 static inline __attribute__((always_inline)) int seq_cpumask_list(struct seq_file *m, cpumask_t *mask)
3903 return seq_bitmap_list(m, mask->bits, 1);
3906 static inline __attribute__((always_inline)) int seq_nodemask_list(struct seq_file *m, nodemask_t *mask)
3908 return seq_bitmap_list(m, mask->bits, (1 << 0));
3911 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
3912 int single_release(struct inode *, struct file *);
3913 void *__seq_open_private(struct file *, const struct seq_operations *, int);
3914 int seq_open_private(struct file *, const struct seq_operations *, int);
3915 int seq_release_private(struct inode *, struct file *);
3923 extern struct list_head *seq_list_start(struct list_head *head,
3925 extern struct list_head *seq_list_start_head(struct list_head *head,
3927 extern struct list_head *seq_list_next(void *v, struct list_head *head,
3929 # 17 "kernel/trace/trace.c" 2
3930 # 1 "include/linux/notifier.h" 1
3931 # 14 "include/linux/notifier.h"
3932 # 1 "include/linux/rwsem.h" 1
3933 # 17 "include/linux/rwsem.h"
3934 struct rw_semaphore;
3937 # 1 "include/linux/rwsem-spinlock.h" 1
3938 # 15 "include/linux/rwsem-spinlock.h"
3939 # 1 "include/linux/spinlock.h" 1
3940 # 50 "include/linux/spinlock.h"
3941 # 1 "include/linux/preempt.h" 1
3942 # 9 "include/linux/preempt.h"
3943 # 1 "include/linux/thread_info.h" 1
3944 # 12 "include/linux/thread_info.h"
3946 struct compat_timespec;
3951 struct restart_block {
3952 long (*fn)(struct restart_block *);
3955 unsigned long arg0, arg1, arg2, arg3;
3968 struct timespec *rmtp;
3976 struct pollfd *ufds;
3979 unsigned long tv_sec;
3980 unsigned long tv_nsec;
3985 extern long do_no_restart_syscall(struct restart_block *parm);
3988 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 1
3989 # 30 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
3990 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 1
3991 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h"
3992 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/setup.h" 1
3993 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 2
3994 # 30 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h"
3999 unsigned long pmd[16];
4005 unsigned long pgprot;
4007 typedef struct page *pgtable_t;
4008 # 54 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h"
4009 extern unsigned long memory_start;
4010 extern unsigned long memory_end;
4014 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page_offset.h" 1
4015 # 60 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 2
4016 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/io.h" 1
4017 # 23 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/io.h"
4018 static inline __attribute__((always_inline)) unsigned char readb(const volatile void *addr)
4023 __asm__ __volatile__ ("cli %1;\n\t"
4024 "NOP; NOP; SSYNC;\n\t"
4025 "%0 = b [%2] (z);\n\t"
4027 : "=d"(val), "=d"(tmp): "a"(addr)
4030 return (unsigned char) val;
4033 static inline __attribute__((always_inline)) unsigned short readw(const volatile void *addr)
4038 __asm__ __volatile__ ("cli %1;\n\t"
4039 "NOP; NOP; SSYNC;\n\t"
4040 "%0 = w [%2] (z);\n\t"
4042 : "=d"(val), "=d"(tmp): "a"(addr)
4045 return (unsigned short) val;
4048 static inline __attribute__((always_inline)) unsigned int readl(const volatile void *addr)
4053 __asm__ __volatile__ ("cli %1;\n\t"
4054 "NOP; NOP; SSYNC;\n\t"
4057 : "=d"(val), "=d"(tmp): "a"(addr)
4061 # 120 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/io.h"
4062 extern void outsb(unsigned long port, const void *addr, unsigned long count);
4063 extern void outsw(unsigned long port, const void *addr, unsigned long count);
4064 extern void outsw_8(unsigned long port, const void *addr, unsigned long count);
4065 extern void outsl(unsigned long port, const void *addr, unsigned long count);
4067 extern void insb(unsigned long port, void *addr, unsigned long count);
4068 extern void insw(unsigned long port, void *addr, unsigned long count);
4069 extern void insw_8(unsigned long port, void *addr, unsigned long count);
4070 extern void insl(unsigned long port, void *addr, unsigned long count);
4071 extern void insl_16(unsigned long port, void *addr, unsigned long count);
4073 extern void dma_outsb(unsigned long port, const void *addr, unsigned short count);
4074 extern void dma_outsw(unsigned long port, const void *addr, unsigned short count);
4075 extern void dma_outsl(unsigned long port, const void *addr, unsigned short count);
4077 extern void dma_insb(unsigned long port, void *addr, unsigned short count);
4078 extern void dma_insw(unsigned long port, void *addr, unsigned short count);
4079 extern void dma_insl(unsigned long port, void *addr, unsigned short count);
4081 static inline __attribute__((always_inline)) void readsl(const void *addr, void *buf, int len)
4083 insl((unsigned long)addr, buf, len);
4086 static inline __attribute__((always_inline)) void readsw(const void *addr, void *buf, int len)
4088 insw((unsigned long)addr, buf, len);
4091 static inline __attribute__((always_inline)) void readsb(const void *addr, void *buf, int len)
4093 insb((unsigned long)addr, buf, len);
4096 static inline __attribute__((always_inline)) void writesl(const void *addr, const void *buf, int len)
4098 outsl((unsigned long)addr, buf, len);
4101 static inline __attribute__((always_inline)) void writesw(const void *addr, const void *buf, int len)
4103 outsw((unsigned long)addr, buf, len);
4106 static inline __attribute__((always_inline)) void writesb(const void *addr, const void *buf, int len)
4108 outsb((unsigned long)addr, buf, len);
4114 static inline __attribute__((always_inline)) void *__ioremap(unsigned long physaddr, unsigned long size,
4117 return (void *)physaddr;
4123 static inline __attribute__((always_inline)) void iounmap(void *addr)
4132 static inline __attribute__((always_inline)) void __iounmap(void *addr, unsigned long size)
4141 static inline __attribute__((always_inline)) void kernel_set_cachemode(void *addr, unsigned long size,
4146 static inline __attribute__((always_inline)) void *ioremap(unsigned long physaddr, unsigned long size)
4148 return __ioremap(physaddr, size, 1);
4150 static inline __attribute__((always_inline)) void *ioremap_nocache(unsigned long physaddr,
4153 return __ioremap(physaddr, size, 1);
4156 extern void blkfin_inv_cache_all(void);
4157 # 61 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 2
4158 # 84 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h"
4159 # 1 "include/asm-generic/page.h" 1
4160 # 9 "include/asm-generic/page.h"
4161 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) int get_order(unsigned long size)
4165 size = (size - 1) >> (12 - 1);
4173 # 85 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 2
4174 # 31 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 2
4175 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/entry.h" 1
4176 # 32 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 2
4177 # 51 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
4178 typedef unsigned long mm_segment_t;
4185 struct thread_info {
4186 struct task_struct *task;
4187 struct exec_domain *exec_domain;
4188 unsigned long flags;
4191 mm_segment_t addr_limit;
4192 struct restart_block restart_block;
4194 struct l1_scratch_task_info l1_task_info;
4197 # 92 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
4198 __attribute__((__const__))
4199 static inline __attribute__((always_inline)) struct thread_info *current_thread_info(void)
4201 struct thread_info *ti;
4202 __asm__("%0 = sp;" : "=da"(ti) :
4204 return (struct thread_info *)((long)ti & ~((long)8192 -1));
4206 # 56 "include/linux/thread_info.h" 2
4207 # 64 "include/linux/thread_info.h"
4208 static inline __attribute__((always_inline)) void set_ti_thread_flag(struct thread_info *ti, int flag)
4210 set_bit(flag, (unsigned long *)&ti->flags);
4213 static inline __attribute__((always_inline)) void clear_ti_thread_flag(struct thread_info *ti, int flag)
4215 clear_bit(flag, (unsigned long *)&ti->flags);
4218 static inline __attribute__((always_inline)) int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
4220 return test_and_set_bit(flag, (unsigned long *)&ti->flags);
4223 static inline __attribute__((always_inline)) int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
4225 return test_and_clear_bit(flag, (unsigned long *)&ti->flags);
4228 static inline __attribute__((always_inline)) int test_ti_thread_flag(struct thread_info *ti, int flag)
4230 return test_bit(flag, (unsigned long *)&ti->flags);
4232 # 121 "include/linux/thread_info.h"
4233 static inline __attribute__((always_inline)) void set_restore_sigmask(void)
4235 set_ti_thread_flag(current_thread_info(), 5);
4236 set_ti_thread_flag(current_thread_info(), 1);
4238 # 10 "include/linux/preempt.h" 2
4239 # 51 "include/linux/spinlock.h" 2
4244 # 1 "include/linux/stringify.h" 1
4245 # 56 "include/linux/spinlock.h" 2
4246 # 1 "include/linux/bottom_half.h" 1
4250 extern void local_bh_disable(void);
4251 extern void __local_bh_enable(void);
4252 extern void _local_bh_enable(void);
4253 extern void local_bh_enable(void);
4254 extern void local_bh_enable_ip(unsigned long ip);
4255 # 57 "include/linux/spinlock.h" 2
4256 # 82 "include/linux/spinlock.h"
4257 extern int __attribute__((section(".spinlock.text"))) generic__raw_read_trylock(raw_rwlock_t *lock);
4265 # 1 "include/linux/spinlock_up.h" 1
4266 # 23 "include/linux/spinlock_up.h"
4267 static inline __attribute__((always_inline)) void __raw_spin_lock(raw_spinlock_t *lock)
4272 static inline __attribute__((always_inline)) void
4273 __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
4275 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
4279 static inline __attribute__((always_inline)) int __raw_spin_trylock(raw_spinlock_t *lock)
4281 char oldval = lock->slock;
4288 static inline __attribute__((always_inline)) void __raw_spin_unlock(raw_spinlock_t *lock)
4292 # 91 "include/linux/spinlock.h" 2
4296 extern void __spin_lock_init(spinlock_t *lock, const char *name,
4297 struct lock_class_key *key);
4298 # 109 "include/linux/spinlock.h"
4299 extern void __rwlock_init(rwlock_t *lock, const char *name,
4300 struct lock_class_key *key);
4301 # 140 "include/linux/spinlock.h"
4302 # 1 "include/linux/spinlock_api_smp.h" 1
4303 # 18 "include/linux/spinlock_api_smp.h"
4304 int in_lock_functions(unsigned long addr);
4308 void __attribute__((section(".spinlock.text"))) _spin_lock(spinlock_t *lock) ;
4309 void __attribute__((section(".spinlock.text"))) _spin_lock_nested(spinlock_t *lock, int subclass)
4311 void __attribute__((section(".spinlock.text"))) _spin_lock_nest_lock(spinlock_t *lock, struct lockdep_map *map)
4313 void __attribute__((section(".spinlock.text"))) _read_lock(rwlock_t *lock) ;
4314 void __attribute__((section(".spinlock.text"))) _write_lock(rwlock_t *lock) ;
4315 void __attribute__((section(".spinlock.text"))) _spin_lock_bh(spinlock_t *lock) ;
4316 void __attribute__((section(".spinlock.text"))) _read_lock_bh(rwlock_t *lock) ;
4317 void __attribute__((section(".spinlock.text"))) _write_lock_bh(rwlock_t *lock) ;
4318 void __attribute__((section(".spinlock.text"))) _spin_lock_irq(spinlock_t *lock) ;
4319 void __attribute__((section(".spinlock.text"))) _read_lock_irq(rwlock_t *lock) ;
4320 void __attribute__((section(".spinlock.text"))) _write_lock_irq(rwlock_t *lock) ;
4321 unsigned long __attribute__((section(".spinlock.text"))) _spin_lock_irqsave(spinlock_t *lock)
4323 unsigned long __attribute__((section(".spinlock.text"))) _spin_lock_irqsave_nested(spinlock_t *lock, int subclass)
4325 unsigned long __attribute__((section(".spinlock.text"))) _read_lock_irqsave(rwlock_t *lock)
4327 unsigned long __attribute__((section(".spinlock.text"))) _write_lock_irqsave(rwlock_t *lock)
4329 int __attribute__((section(".spinlock.text"))) _spin_trylock(spinlock_t *lock);
4330 int __attribute__((section(".spinlock.text"))) _read_trylock(rwlock_t *lock);
4331 int __attribute__((section(".spinlock.text"))) _write_trylock(rwlock_t *lock);
4332 int __attribute__((section(".spinlock.text"))) _spin_trylock_bh(spinlock_t *lock);
4333 void __attribute__((section(".spinlock.text"))) _spin_unlock(spinlock_t *lock) ;
4334 void __attribute__((section(".spinlock.text"))) _read_unlock(rwlock_t *lock) ;
4335 void __attribute__((section(".spinlock.text"))) _write_unlock(rwlock_t *lock) ;
4336 void __attribute__((section(".spinlock.text"))) _spin_unlock_bh(spinlock_t *lock) ;
4337 void __attribute__((section(".spinlock.text"))) _read_unlock_bh(rwlock_t *lock) ;
4338 void __attribute__((section(".spinlock.text"))) _write_unlock_bh(rwlock_t *lock) ;
4339 void __attribute__((section(".spinlock.text"))) _spin_unlock_irq(spinlock_t *lock) ;
4340 void __attribute__((section(".spinlock.text"))) _read_unlock_irq(rwlock_t *lock) ;
4341 void __attribute__((section(".spinlock.text"))) _write_unlock_irq(rwlock_t *lock) ;
4342 void __attribute__((section(".spinlock.text"))) _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
4344 void __attribute__((section(".spinlock.text"))) _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
4346 void __attribute__((section(".spinlock.text"))) _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
4348 # 141 "include/linux/spinlock.h" 2
4354 extern void _raw_spin_lock(spinlock_t *lock);
4356 extern int _raw_spin_trylock(spinlock_t *lock);
4357 extern void _raw_spin_unlock(spinlock_t *lock);
4358 extern void _raw_read_lock(rwlock_t *lock);
4359 extern int _raw_read_trylock(rwlock_t *lock);
4360 extern void _raw_read_unlock(rwlock_t *lock);
4361 extern void _raw_write_lock(rwlock_t *lock);
4362 extern int _raw_write_trylock(rwlock_t *lock);
4363 extern void _raw_write_unlock(rwlock_t *lock);
4364 # 357 "include/linux/spinlock.h"
4365 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
4366 # 16 "include/linux/rwsem-spinlock.h" 2
4373 struct rwsem_waiter;
4374 # 31 "include/linux/rwsem-spinlock.h"
4375 struct rw_semaphore {
4377 spinlock_t wait_lock;
4378 struct list_head wait_list;
4383 # 53 "include/linux/rwsem-spinlock.h"
4384 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
4385 struct lock_class_key *key);
4386 # 63 "include/linux/rwsem-spinlock.h"
4387 extern void __down_read(struct rw_semaphore *sem);
4388 extern int __down_read_trylock(struct rw_semaphore *sem);
4389 extern void __down_write(struct rw_semaphore *sem);
4390 extern void __down_write_nested(struct rw_semaphore *sem, int subclass);
4391 extern int __down_write_trylock(struct rw_semaphore *sem);
4392 extern void __up_read(struct rw_semaphore *sem);
4393 extern void __up_write(struct rw_semaphore *sem);
4394 extern void __downgrade_write(struct rw_semaphore *sem);
4396 static inline __attribute__((always_inline)) int rwsem_is_locked(struct rw_semaphore *sem)
4398 return (sem->activity != 0);
4400 # 21 "include/linux/rwsem.h" 2
4408 extern void down_read(struct rw_semaphore *sem);
4413 extern int down_read_trylock(struct rw_semaphore *sem);
4418 extern void down_write(struct rw_semaphore *sem);
4423 extern int down_write_trylock(struct rw_semaphore *sem);
4428 extern void up_read(struct rw_semaphore *sem);
4433 extern void up_write(struct rw_semaphore *sem);
4438 extern void downgrade_write(struct rw_semaphore *sem);
4439 # 15 "include/linux/notifier.h" 2
4440 # 1 "include/linux/srcu.h" 1
4441 # 30 "include/linux/srcu.h"
4442 struct srcu_struct_array {
4446 struct srcu_struct {
4448 struct srcu_struct_array *per_cpu_ref;
4458 int init_srcu_struct(struct srcu_struct *sp);
4459 void cleanup_srcu_struct(struct srcu_struct *sp);
4460 int srcu_read_lock(struct srcu_struct *sp) ;
4461 void srcu_read_unlock(struct srcu_struct *sp, int idx) ;
4462 void synchronize_srcu(struct srcu_struct *sp);
4463 long srcu_batches_completed(struct srcu_struct *sp);
4464 # 16 "include/linux/notifier.h" 2
4465 # 50 "include/linux/notifier.h"
4466 struct notifier_block {
4467 int (*notifier_call)(struct notifier_block *, unsigned long, void *);
4468 struct notifier_block *next;
4472 struct atomic_notifier_head {
4474 struct notifier_block *head;
4477 struct blocking_notifier_head {
4478 struct rw_semaphore rwsem;
4479 struct notifier_block *head;
4482 struct raw_notifier_head {
4483 struct notifier_block *head;
4486 struct srcu_notifier_head {
4488 struct srcu_struct srcu;
4489 struct notifier_block *head;
4491 # 89 "include/linux/notifier.h"
4492 extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
4493 # 115 "include/linux/notifier.h"
4494 extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
4495 struct notifier_block *nb);
4496 extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
4497 struct notifier_block *nb);
4498 extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
4499 struct notifier_block *nb);
4500 extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
4501 struct notifier_block *nb);
4503 extern int blocking_notifier_chain_cond_register(
4504 struct blocking_notifier_head *nh,
4505 struct notifier_block *nb);
4507 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
4508 struct notifier_block *nb);
4509 extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
4510 struct notifier_block *nb);
4511 extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
4512 struct notifier_block *nb);
4513 extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
4514 struct notifier_block *nb);
4516 extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
4517 unsigned long val, void *v);
4518 extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
4519 unsigned long val, void *v, int nr_to_call, int *nr_calls);
4520 extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
4521 unsigned long val, void *v);
4522 extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh,
4523 unsigned long val, void *v, int nr_to_call, int *nr_calls);
4524 extern int raw_notifier_call_chain(struct raw_notifier_head *nh,
4525 unsigned long val, void *v);
4526 extern int __raw_notifier_call_chain(struct raw_notifier_head *nh,
4527 unsigned long val, void *v, int nr_to_call, int *nr_calls);
4528 extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
4529 unsigned long val, void *v);
4530 extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh,
4531 unsigned long val, void *v, int nr_to_call, int *nr_calls);
4532 # 165 "include/linux/notifier.h"
4533 static inline __attribute__((always_inline)) int notifier_from_errno(int err)
4535 return 0x8000 | (0x0001 - err);
4539 static inline __attribute__((always_inline)) int notifier_to_errno(int ret)
4542 return ret > 0x0001 ? 0x0001 - ret : 0;
4544 # 258 "include/linux/notifier.h"
4545 extern struct blocking_notifier_head reboot_notifier_list;
4546 # 18 "kernel/trace/trace.c" 2
4547 # 1 "include/linux/debugfs.h" 1
4548 # 18 "include/linux/debugfs.h"
4549 # 1 "include/linux/fs.h" 1
4550 # 9 "include/linux/fs.h"
4551 # 1 "include/linux/limits.h" 1
4552 # 10 "include/linux/fs.h" 2
4553 # 1 "include/linux/ioctl.h" 1
4557 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ioctl.h" 1
4558 # 1 "include/asm-generic/ioctl.h" 1
4559 # 73 "include/asm-generic/ioctl.h"
4560 extern unsigned int __invalid_size_argument_for_IOC;
4561 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ioctl.h" 2
4562 # 5 "include/linux/ioctl.h" 2
4563 # 11 "include/linux/fs.h" 2
4564 # 24 "include/linux/fs.h"
4565 extern int sysctl_nr_open;
4566 # 36 "include/linux/fs.h"
4567 struct files_stat_struct {
4572 extern struct files_stat_struct files_stat;
4573 extern int get_max_files(void);
4575 struct inodes_stat_t {
4580 extern struct inodes_stat_t inodes_stat;
4582 extern int leases_enable, lease_break_time;
4585 extern int dir_notify_enable;
4586 # 288 "include/linux/fs.h"
4587 # 1 "include/linux/wait.h" 1
4588 # 26 "include/linux/wait.h"
4589 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/current.h" 1
4590 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/current.h"
4593 static inline __attribute__((always_inline)) struct task_struct *get_current(void) __attribute__ ((__const__));
4594 static inline __attribute__((always_inline)) struct task_struct *get_current(void)
4596 return (current_thread_info()->task);
4598 # 27 "include/linux/wait.h" 2
4600 typedef struct __wait_queue wait_queue_t;
4601 typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int sync, void *key);
4602 int default_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
4604 struct __wait_queue {
4608 wait_queue_func_t func;
4609 struct list_head task_list;
4612 struct wait_bit_key {
4617 struct wait_bit_queue {
4618 struct wait_bit_key key;
4622 struct __wait_queue_head {
4624 struct list_head task_list;
4626 typedef struct __wait_queue_head wait_queue_head_t;
4629 # 80 "include/linux/wait.h"
4630 extern void init_waitqueue_head(wait_queue_head_t *q);
4631 # 91 "include/linux/wait.h"
4632 static inline __attribute__((always_inline)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
4636 q->func = default_wake_function;
4639 static inline __attribute__((always_inline)) void init_waitqueue_func_entry(wait_queue_t *q,
4640 wait_queue_func_t func)
4643 q->private = ((void *)0);
4647 static inline __attribute__((always_inline)) int waitqueue_active(wait_queue_head_t *q)
4649 return !list_empty(&q->task_list);
4652 extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
4653 extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait);
4654 extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
4656 static inline __attribute__((always_inline)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
4658 list_add(&new->task_list, &head->task_list);
4664 static inline __attribute__((always_inline)) void __add_wait_queue_tail(wait_queue_head_t *head,
4667 list_add_tail(&new->task_list, &head->task_list);
4670 static inline __attribute__((always_inline)) void __remove_wait_queue(wait_queue_head_t *head,
4673 list_del(&old->task_list);
4676 void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key);
4677 extern void __wake_up_locked(wait_queue_head_t *q, unsigned int mode);
4678 extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr);
4679 void __wake_up_bit(wait_queue_head_t *, void *, int);
4680 int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
4681 int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
4682 void wake_up_bit(void *, int);
4683 int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned);
4684 int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned);
4685 wait_queue_head_t *bit_waitqueue(void *, int);
4686 # 400 "include/linux/wait.h"
4687 static inline __attribute__((always_inline)) void add_wait_queue_exclusive_locked(wait_queue_head_t *q,
4688 wait_queue_t * wait)
4690 wait->flags |= 0x01;
4691 __add_wait_queue_tail(q, wait);
4697 static inline __attribute__((always_inline)) void remove_wait_queue_locked(wait_queue_head_t *q,
4698 wait_queue_t * wait)
4700 __remove_wait_queue(q, wait);
4708 extern void sleep_on(wait_queue_head_t *q);
4709 extern long sleep_on_timeout(wait_queue_head_t *q,
4710 signed long timeout);
4711 extern void interruptible_sleep_on(wait_queue_head_t *q);
4712 extern long interruptible_sleep_on_timeout(wait_queue_head_t *q,
4713 signed long timeout);
4718 void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state);
4719 void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state);
4720 void finish_wait(wait_queue_head_t *q, wait_queue_t *wait);
4721 int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
4722 int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
4723 # 476 "include/linux/wait.h"
4724 static inline __attribute__((always_inline)) int wait_on_bit(void *word, int bit,
4725 int (*action)(void *), unsigned mode)
4727 if (!test_bit(bit, word))
4729 return out_of_line_wait_on_bit(word, bit, action, mode);
4731 # 500 "include/linux/wait.h"
4732 static inline __attribute__((always_inline)) int wait_on_bit_lock(void *word, int bit,
4733 int (*action)(void *), unsigned mode)
4735 if (!test_and_set_bit(bit, word))
4737 return out_of_line_wait_on_bit_lock(word, bit, action, mode);
4739 # 289 "include/linux/fs.h" 2
4741 # 1 "include/linux/kdev_t.h" 1
4742 # 21 "include/linux/kdev_t.h"
4743 static inline __attribute__((always_inline)) int old_valid_dev(dev_t dev)
4745 return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256;
4748 static inline __attribute__((always_inline)) u16 old_encode_dev(dev_t dev)
4750 return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1)));
4753 static inline __attribute__((always_inline)) dev_t old_decode_dev(u16 val)
4755 return ((((val >> 8) & 255) << 20) | (val & 255));
4758 static inline __attribute__((always_inline)) int new_valid_dev(dev_t dev)
4763 static inline __attribute__((always_inline)) u32 new_encode_dev(dev_t dev)
4765 unsigned major = ((unsigned int) ((dev) >> 20));
4766 unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1)));
4767 return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12);
4770 static inline __attribute__((always_inline)) dev_t new_decode_dev(u32 dev)
4772 unsigned major = (dev & 0xfff00) >> 8;
4773 unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00);
4774 return (((major) << 20) | (minor));
4777 static inline __attribute__((always_inline)) int huge_valid_dev(dev_t dev)
4782 static inline __attribute__((always_inline)) u64 huge_encode_dev(dev_t dev)
4784 return new_encode_dev(dev);
4787 static inline __attribute__((always_inline)) dev_t huge_decode_dev(u64 dev)
4789 return new_decode_dev(dev);
4792 static inline __attribute__((always_inline)) int sysv_valid_dev(dev_t dev)
4794 return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18);
4797 static inline __attribute__((always_inline)) u32 sysv_encode_dev(dev_t dev)
4799 return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18);
4802 static inline __attribute__((always_inline)) unsigned sysv_major(u32 dev)
4804 return (dev >> 18) & 0x3fff;
4807 static inline __attribute__((always_inline)) unsigned sysv_minor(u32 dev)
4809 return dev & 0x3ffff;
4811 # 291 "include/linux/fs.h" 2
4812 # 1 "include/linux/dcache.h" 1
4818 # 1 "include/linux/rculist.h" 1
4819 # 10 "include/linux/rculist.h"
4820 # 1 "include/linux/rcupdate.h" 1
4821 # 36 "include/linux/rcupdate.h"
4822 # 1 "include/linux/cache.h" 1
4823 # 37 "include/linux/rcupdate.h" 2
4826 # 1 "include/linux/percpu.h" 1
4831 # 1 "include/linux/slab.h" 1
4832 # 12 "include/linux/slab.h"
4833 # 1 "include/linux/gfp.h" 1
4837 # 1 "include/linux/mmzone.h" 1
4838 # 14 "include/linux/mmzone.h"
4839 # 1 "include/linux/init.h" 1
4840 # 139 "include/linux/init.h"
4841 typedef int (*initcall_t)(void);
4842 typedef void (*exitcall_t)(void);
4844 extern initcall_t __con_initcall_start[], __con_initcall_end[];
4845 extern initcall_t __security_initcall_start[], __security_initcall_end[];
4848 extern int do_one_initcall(initcall_t fn);
4849 extern char __attribute__ ((__section__(".init.data"))) boot_command_line[];
4850 extern char *saved_command_line;
4851 extern unsigned int reset_devices;
4854 void setup_arch(char **);
4855 void prepare_namespace(void);
4857 extern void (*late_time_init)(void);
4858 # 221 "include/linux/init.h"
4859 struct obs_kernel_param {
4861 int (*setup_func)(char *);
4864 # 249 "include/linux/init.h"
4865 void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) parse_early_param(void);
4866 # 15 "include/linux/mmzone.h" 2
4867 # 1 "include/linux/seqlock.h" 1
4868 # 32 "include/linux/seqlock.h"
4873 # 60 "include/linux/seqlock.h"
4874 static inline __attribute__((always_inline)) void write_seqlock(seqlock_t *sl)
4876 _spin_lock(&sl->lock);
4878 __asm__ __volatile__("": : :"memory");
4881 static inline __attribute__((always_inline)) void write_sequnlock(seqlock_t *sl)
4883 __asm__ __volatile__("": : :"memory");
4885 _spin_unlock(&sl->lock);
4888 static inline __attribute__((always_inline)) int write_tryseqlock(seqlock_t *sl)
4890 int ret = (_spin_trylock(&sl->lock));
4894 __asm__ __volatile__("": : :"memory");
4900 static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned read_seqbegin(const seqlock_t *sl)
4906 __asm__ __volatile__("": : :"memory");
4907 if (__builtin_expect(!!(ret & 1), 0)) {
4908 __asm__ __volatile__("": : :"memory");
4920 static inline __attribute__((always_inline)) __attribute__((always_inline)) int read_seqretry(const seqlock_t *sl, unsigned start)
4922 __asm__ __volatile__("": : :"memory");
4924 return (sl->sequence != start);
4926 # 121 "include/linux/seqlock.h"
4927 typedef struct seqcount {
4935 static inline __attribute__((always_inline)) unsigned read_seqcount_begin(const seqcount_t *s)
4941 __asm__ __volatile__("": : :"memory");
4942 if (__builtin_expect(!!(ret & 1), 0)) {
4943 __asm__ __volatile__("": : :"memory");
4952 static inline __attribute__((always_inline)) int read_seqcount_retry(const seqcount_t *s, unsigned start)
4954 __asm__ __volatile__("": : :"memory");
4956 return s->sequence != start;
4964 static inline __attribute__((always_inline)) void write_seqcount_begin(seqcount_t *s)
4967 __asm__ __volatile__("": : :"memory");
4970 static inline __attribute__((always_inline)) void write_seqcount_end(seqcount_t *s)
4972 __asm__ __volatile__("": : :"memory");
4975 # 16 "include/linux/mmzone.h" 2
4977 # 1 "include/linux/pageblock-flags.h" 1
4978 # 29 "include/linux/pageblock-flags.h"
4979 enum pageblock_bits {
4981 PB_migrate_end = PB_migrate + 3 - 1,
4985 # 60 "include/linux/pageblock-flags.h"
4989 unsigned long get_pageblock_flags_group(struct page *page,
4990 int start_bitidx, int end_bitidx);
4991 void set_pageblock_flags_group(struct page *page, unsigned long flags,
4992 int start_bitidx, int end_bitidx);
4993 # 18 "include/linux/mmzone.h" 2
4994 # 1 "include/linux/bounds.h" 1
4995 # 19 "include/linux/mmzone.h" 2
4996 # 49 "include/linux/mmzone.h"
4997 extern int page_group_by_mobility_disabled;
4999 static inline __attribute__((always_inline)) int get_pageblock_migratetype(struct page *page)
5001 if (__builtin_expect(!!(page_group_by_mobility_disabled), 0))
5004 return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end);
5008 struct list_head free_list[5];
5009 unsigned long nr_free;
5013 # 81 "include/linux/mmzone.h"
5014 enum zone_stat_item {
5018 NR_INACTIVE_ANON = NR_LRU_BASE,
5026 NR_UNEVICTABLE = NR_ACTIVE_FILE,
5027 NR_MLOCK = NR_ACTIVE_FILE,
5035 NR_SLAB_RECLAIMABLE,
5036 NR_SLAB_UNRECLAIMABLE,
5043 # 118 "include/linux/mmzone.h"
5044 NR_VM_ZONE_STAT_ITEMS };
5045 # 133 "include/linux/mmzone.h"
5047 LRU_INACTIVE_ANON = 0,
5048 LRU_ACTIVE_ANON = 0 + 1,
5049 LRU_INACTIVE_FILE = 0 + 2,
5050 LRU_ACTIVE_FILE = 0 + 2 + 1,
5054 LRU_UNEVICTABLE = LRU_ACTIVE_FILE,
5063 static inline __attribute__((always_inline)) int is_file_lru(enum lru_list l)
5065 return (l == LRU_INACTIVE_FILE || l == LRU_ACTIVE_FILE);
5068 static inline __attribute__((always_inline)) int is_active_lru(enum lru_list l)
5070 return (l == LRU_ACTIVE_ANON || l == LRU_ACTIVE_FILE);
5073 static inline __attribute__((always_inline)) int is_unevictable_lru(enum lru_list l)
5082 struct per_cpu_pages {
5086 struct list_head list;
5089 struct per_cpu_pageset {
5090 struct per_cpu_pages pcp;
5099 # 195 "include/linux/mmzone.h"
5101 # 215 "include/linux/mmzone.h"
5103 # 230 "include/linux/mmzone.h"
5105 # 242 "include/linux/mmzone.h"
5109 # 266 "include/linux/mmzone.h"
5112 unsigned long pages_min, pages_low, pages_high;
5113 # 277 "include/linux/mmzone.h"
5114 unsigned long lowmem_reserve[3];
5115 # 288 "include/linux/mmzone.h"
5116 struct per_cpu_pageset pageset[1];
5126 struct free_area free_area[14];
5133 unsigned long *pageblock_flags;
5140 spinlock_t lru_lock;
5142 struct list_head list;
5143 unsigned long nr_scan;
5144 } lru[NR_LRU_LISTS];
5145 # 326 "include/linux/mmzone.h"
5146 unsigned long recent_rotated[2];
5147 unsigned long recent_scanned[2];
5149 unsigned long pages_scanned;
5150 unsigned long flags;
5153 atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
5154 # 348 "include/linux/mmzone.h"
5161 unsigned int inactive_ratio;
5165 # 384 "include/linux/mmzone.h"
5166 wait_queue_head_t * wait_table;
5167 unsigned long wait_table_hash_nr_entries;
5168 unsigned long wait_table_bits;
5173 struct pglist_data *zone_pgdat;
5175 unsigned long zone_start_pfn;
5176 # 405 "include/linux/mmzone.h"
5177 unsigned long spanned_pages;
5178 unsigned long present_pages;
5187 ZONE_ALL_UNRECLAIMABLE,
5188 ZONE_RECLAIM_LOCKED,
5192 static inline __attribute__((always_inline)) void zone_set_flag(struct zone *zone, zone_flags_t flag)
5194 set_bit(flag, &zone->flags);
5197 static inline __attribute__((always_inline)) int zone_test_and_set_flag(struct zone *zone, zone_flags_t flag)
5199 return test_and_set_bit(flag, &zone->flags);
5202 static inline __attribute__((always_inline)) void zone_clear_flag(struct zone *zone, zone_flags_t flag)
5204 clear_bit(flag, &zone->flags);
5207 static inline __attribute__((always_inline)) int zone_is_all_unreclaimable(const struct zone *zone)
5209 return test_bit(ZONE_ALL_UNRECLAIMABLE, &zone->flags);
5212 static inline __attribute__((always_inline)) int zone_is_reclaim_locked(const struct zone *zone)
5214 return test_bit(ZONE_RECLAIM_LOCKED, &zone->flags);
5217 static inline __attribute__((always_inline)) int zone_is_oom_locked(const struct zone *zone)
5219 return test_bit(ZONE_OOM_LOCKED, &zone->flags);
5221 # 538 "include/linux/mmzone.h"
5222 struct zonelist_cache;
5233 # 567 "include/linux/mmzone.h"
5235 struct zonelist_cache *zlcache_ptr;
5236 struct zoneref _zonerefs[((1 << 0) * 3) + 1];
5241 # 585 "include/linux/mmzone.h"
5242 extern struct page *mem_map;
5243 # 599 "include/linux/mmzone.h"
5244 struct bootmem_data;
5245 typedef struct pglist_data {
5246 struct zone node_zones[3];
5247 struct zonelist node_zonelists[1];
5250 struct page *node_mem_map;
5255 struct bootmem_data *bdata;
5256 # 621 "include/linux/mmzone.h"
5257 unsigned long node_start_pfn;
5258 unsigned long node_present_pages;
5259 unsigned long node_spanned_pages;
5262 wait_queue_head_t kswapd_wait;
5263 struct task_struct *kswapd;
5264 int kswapd_max_order;
5266 # 640 "include/linux/mmzone.h"
5267 # 1 "include/linux/memory_hotplug.h" 1
5271 # 1 "include/linux/mmzone.h" 1
5272 # 5 "include/linux/memory_hotplug.h" 2
5280 # 165 "include/linux/memory_hotplug.h"
5281 static inline __attribute__((always_inline)) void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {}
5282 static inline __attribute__((always_inline)) void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {}
5283 static inline __attribute__((always_inline)) void pgdat_resize_init(struct pglist_data *pgdat) {}
5285 static inline __attribute__((always_inline)) unsigned zone_span_seqbegin(struct zone *zone)
5289 static inline __attribute__((always_inline)) int zone_span_seqretry(struct zone *zone, unsigned iv)
5293 static inline __attribute__((always_inline)) void zone_span_writelock(struct zone *zone) {}
5294 static inline __attribute__((always_inline)) void zone_span_writeunlock(struct zone *zone) {}
5295 static inline __attribute__((always_inline)) void zone_seqlock_init(struct zone *zone) {}
5297 static inline __attribute__((always_inline)) int mhp_notimplemented(const char *func)
5299 printk("<4>" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func);
5304 static inline __attribute__((always_inline)) void register_page_bootmem_info_node(struct pglist_data *pgdat)
5314 extern int walk_memory_resource(unsigned long start_pfn,
5315 unsigned long nr_pages, void *arg,
5316 int (*func)(unsigned long, unsigned long, void *));
5323 static inline __attribute__((always_inline)) int is_mem_section_removable(unsigned long pfn,
5324 unsigned long nr_pages)
5330 extern int add_memory(int nid, u64 start, u64 size);
5331 extern int arch_add_memory(int nid, u64 start, u64 size);
5332 extern int remove_memory(u64 start, u64 size);
5333 extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn,
5335 extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms);
5336 extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map,
5337 unsigned long pnum);
5338 # 641 "include/linux/mmzone.h" 2
5340 void get_zone_counts(unsigned long *active, unsigned long *inactive,
5341 unsigned long *free);
5342 void build_all_zonelists(void);
5343 void wakeup_kswapd(struct zone *zone, int order);
5344 int zone_watermark_ok(struct zone *z, int order, unsigned long mark,
5345 int classzone_idx, int alloc_flags);
5346 enum memmap_context {
5350 extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
5352 enum memmap_context context);
5357 static inline __attribute__((always_inline)) void memory_present(int nid, unsigned long start, unsigned long end) {}
5358 # 671 "include/linux/mmzone.h"
5359 static inline __attribute__((always_inline)) int populated_zone(struct zone *zone)
5361 return (!!zone->present_pages);
5364 extern int movable_zone;
5366 static inline __attribute__((always_inline)) int zone_movable_is_highmem(void)
5375 static inline __attribute__((always_inline)) int is_highmem_idx(enum zone_type idx)
5385 static inline __attribute__((always_inline)) int is_normal_idx(enum zone_type idx)
5387 return (idx == ZONE_NORMAL);
5396 static inline __attribute__((always_inline)) int is_highmem(struct zone *zone)
5408 static inline __attribute__((always_inline)) int is_normal(struct zone *zone)
5410 return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL;
5413 static inline __attribute__((always_inline)) int is_dma32(struct zone *zone)
5422 static inline __attribute__((always_inline)) int is_dma(struct zone *zone)
5425 return zone == zone->zone_pgdat->node_zones + ZONE_DMA;
5434 int min_free_kbytes_sysctl_handler(struct ctl_table *, int, struct file *,
5435 void *, size_t *, loff_t *);
5436 extern int sysctl_lowmem_reserve_ratio[3 -1];
5437 int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *,
5438 void *, size_t *, loff_t *);
5439 int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, struct file *,
5440 void *, size_t *, loff_t *);
5441 int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int,
5442 struct file *, void *, size_t *, loff_t *);
5443 int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int,
5444 struct file *, void *, size_t *, loff_t *);
5446 extern int numa_zonelist_order_handler(struct ctl_table *, int,
5447 struct file *, void *, size_t *, loff_t *);
5448 extern char numa_zonelist_order[];
5451 # 1 "include/linux/topology.h" 1
5452 # 33 "include/linux/topology.h"
5453 # 1 "include/linux/smp.h" 1
5454 # 14 "include/linux/smp.h"
5455 extern void cpu_idle(void);
5457 struct call_single_data {
5458 struct list_head list;
5459 void (*func) (void *info);
5464 # 123 "include/linux/smp.h"
5465 static inline __attribute__((always_inline)) int up_smp_call_function(void (*func)(void *), void *info)
5469 # 136 "include/linux/smp.h"
5470 static inline __attribute__((always_inline)) void smp_send_reschedule(int cpu) { }
5471 # 151 "include/linux/smp.h"
5472 static inline __attribute__((always_inline)) void init_call_single_data(void)
5475 # 182 "include/linux/smp.h"
5476 void smp_setup_processor_id(void);
5477 # 34 "include/linux/topology.h" 2
5478 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/topology.h" 1
5482 # 1 "include/asm-generic/topology.h" 1
5483 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/topology.h" 2
5484 # 35 "include/linux/topology.h" 2
5485 # 52 "include/linux/topology.h"
5486 void arch_update_cpu_topology(void);
5487 # 764 "include/linux/mmzone.h" 2
5495 extern struct pglist_data contig_page_data;
5496 # 781 "include/linux/mmzone.h"
5497 extern struct pglist_data *first_online_pgdat(void);
5498 extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
5499 extern struct zone *next_zone(struct zone *zone);
5500 # 805 "include/linux/mmzone.h"
5501 static inline __attribute__((always_inline)) struct zone *zonelist_zone(struct zoneref *zoneref)
5503 return zoneref->zone;
5506 static inline __attribute__((always_inline)) int zonelist_zone_idx(struct zoneref *zoneref)
5508 return zoneref->zone_idx;
5511 static inline __attribute__((always_inline)) int zonelist_node_idx(struct zoneref *zoneref)
5520 # 838 "include/linux/mmzone.h"
5521 struct zoneref *next_zones_zonelist(struct zoneref *z,
5522 enum zone_type highest_zoneidx,
5524 struct zone **zone);
5525 # 855 "include/linux/mmzone.h"
5526 static inline __attribute__((always_inline)) struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
5527 enum zone_type highest_zoneidx,
5531 return next_zones_zonelist(zonelist->_zonerefs, highest_zoneidx, nodes,
5534 # 898 "include/linux/mmzone.h"
5535 static inline __attribute__((always_inline)) unsigned long early_pfn_to_nid(unsigned long pfn)
5539 # 1079 "include/linux/mmzone.h"
5540 void memory_present(int nid, unsigned long start, unsigned long end);
5541 unsigned long __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) node_memmap_size_bytes(int, unsigned long, unsigned long);
5542 # 5 "include/linux/gfp.h" 2
5546 struct vm_area_struct;
5547 # 108 "include/linux/gfp.h"
5548 static inline __attribute__((always_inline)) int allocflags_to_migratetype(gfp_t gfp_flags)
5550 ({ int __ret_warn_on = !!((gfp_flags & ((( gfp_t)0x80000u)|(( gfp_t)0x100000u))) == ((( gfp_t)0x80000u)|(( gfp_t)0x100000u))); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("include/linux/gfp.h", 110); __builtin_expect(!!(__ret_warn_on), 0); });
5552 if (__builtin_expect(!!(page_group_by_mobility_disabled), 0))
5556 return (((gfp_flags & (( gfp_t)0x100000u)) != 0) << 1) |
5557 ((gfp_flags & (( gfp_t)0x80000u)) != 0);
5560 static inline __attribute__((always_inline)) enum zone_type gfp_zone(gfp_t flags)
5563 if (flags & (( gfp_t)0x01u))
5570 if ((flags & ((( gfp_t)0x02u) | (( gfp_t)0x100000u))) ==
5571 ((( gfp_t)0x02u) | (( gfp_t)0x100000u)))
5572 return ZONE_MOVABLE;
5579 # 147 "include/linux/gfp.h"
5580 static inline __attribute__((always_inline)) int gfp_zonelist(gfp_t flags)
5582 if (0 && __builtin_expect(!!(flags & (( gfp_t)0x40000u)), 0))
5587 # 164 "include/linux/gfp.h"
5588 static inline __attribute__((always_inline)) struct zonelist *node_zonelist(int nid, gfp_t flags)
5590 return (&contig_page_data)->node_zonelists + gfp_zonelist(flags);
5594 static inline __attribute__((always_inline)) void arch_free_page(struct page *page, int order) { }
5597 static inline __attribute__((always_inline)) void arch_alloc_page(struct page *page, int order) { }
5601 __alloc_pages_internal(gfp_t gfp_mask, unsigned int order,
5602 struct zonelist *zonelist, nodemask_t *nodemask);
5604 static inline __attribute__((always_inline)) struct page *
5605 __alloc_pages(gfp_t gfp_mask, unsigned int order,
5606 struct zonelist *zonelist)
5608 return __alloc_pages_internal(gfp_mask, order, zonelist, ((void *)0));
5611 static inline __attribute__((always_inline)) struct page *
5612 __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
5613 struct zonelist *zonelist, nodemask_t *nodemask)
5615 return __alloc_pages_internal(gfp_mask, order, zonelist, nodemask);
5619 static inline __attribute__((always_inline)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask,
5622 if (__builtin_expect(!!(order >= 14), 0))
5627 nid = (((void)(0),0));
5629 return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
5631 # 228 "include/linux/gfp.h"
5632 extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
5633 extern unsigned long get_zeroed_page(gfp_t gfp_mask);
5635 void *alloc_pages_exact(size_t size, gfp_t gfp_mask);
5636 void free_pages_exact(void *virt, size_t size);
5644 extern void __free_pages(struct page *page, unsigned int order);
5645 extern void free_pages(unsigned long addr, unsigned int order);
5646 extern void free_hot_page(struct page *page);
5647 extern void free_cold_page(struct page *page);
5652 void page_alloc_init(void);
5653 void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
5654 void drain_all_pages(void);
5655 void drain_local_pages(void *dummy);
5656 # 13 "include/linux/slab.h" 2
5657 # 84 "include/linux/slab.h"
5658 void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) kmem_cache_init(void);
5659 int slab_is_available(void);
5661 struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
5664 void kmem_cache_destroy(struct kmem_cache *);
5665 int kmem_cache_shrink(struct kmem_cache *);
5666 void kmem_cache_free(struct kmem_cache *, void *);
5667 unsigned int kmem_cache_size(struct kmem_cache *);
5668 const char *kmem_cache_name(struct kmem_cache *);
5669 int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr);
5670 # 127 "include/linux/slab.h"
5671 void * __attribute__((warn_unused_result)) __krealloc(const void *, size_t, gfp_t);
5672 void * __attribute__((warn_unused_result)) krealloc(const void *, size_t, gfp_t);
5673 void kfree(const void *);
5674 size_t ksize(const void *);
5675 # 152 "include/linux/slab.h"
5676 # 1 "include/linux/slub_def.h" 1
5677 # 11 "include/linux/slub_def.h"
5678 # 1 "include/linux/workqueue.h" 1
5686 # 1 "include/linux/timer.h" 1
5691 # 1 "include/linux/ktime.h" 1
5692 # 24 "include/linux/ktime.h"
5693 # 1 "include/linux/time.h" 1
5694 # 9 "include/linux/time.h"
5695 # 1 "include/linux/math64.h" 1
5700 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 1
5701 # 6 "include/linux/math64.h" 2
5702 # 41 "include/linux/math64.h"
5703 static inline __attribute__((always_inline)) u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
5705 *remainder = ({ uint32_t __base = (divisor); uint32_t __rem; (void)(((typeof((dividend)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((dividend) >> 32) == 0), 1)) { __rem = (uint32_t)(dividend) % __base; (dividend) = (uint32_t)(dividend) / __base; } else __rem = __div64_32(&(dividend), __base); __rem; });
5711 extern s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder);
5715 extern u64 div64_u64(u64 dividend, u64 divisor);
5716 # 66 "include/linux/math64.h"
5717 static inline __attribute__((always_inline)) u64 div_u64(u64 dividend, u32 divisor)
5720 return div_u64_rem(dividend, divisor, &remainder);
5728 static inline __attribute__((always_inline)) s64 div_s64(s64 dividend, s32 divisor)
5731 return div_s64_rem(dividend, divisor, &remainder);
5735 u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder);
5737 static inline __attribute__((always_inline)) __attribute__((always_inline)) u32
5738 __iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
5742 while (dividend >= divisor) {
5745 asm("" : "+rm"(dividend));
5747 dividend -= divisor;
5751 *remainder = dividend;
5755 # 10 "include/linux/time.h" 2
5768 suseconds_t tv_usec;
5778 extern struct timezone sys_tz;
5779 # 45 "include/linux/time.h"
5780 static inline __attribute__((always_inline)) int timespec_equal(const struct timespec *a,
5781 const struct timespec *b)
5783 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
5791 static inline __attribute__((always_inline)) int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
5793 if (lhs->tv_sec < rhs->tv_sec)
5795 if (lhs->tv_sec > rhs->tv_sec)
5797 return lhs->tv_nsec - rhs->tv_nsec;
5800 static inline __attribute__((always_inline)) int timeval_compare(const struct timeval *lhs, const struct timeval *rhs)
5802 if (lhs->tv_sec < rhs->tv_sec)
5804 if (lhs->tv_sec > rhs->tv_sec)
5806 return lhs->tv_usec - rhs->tv_usec;
5809 extern unsigned long mktime(const unsigned int year, const unsigned int mon,
5810 const unsigned int day, const unsigned int hour,
5811 const unsigned int min, const unsigned int sec);
5813 extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec);
5814 extern struct timespec timespec_add_safe(const struct timespec lhs,
5815 const struct timespec rhs);
5820 static inline __attribute__((always_inline)) struct timespec timespec_sub(struct timespec lhs,
5821 struct timespec rhs)
5823 struct timespec ts_delta;
5824 set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec,
5825 lhs.tv_nsec - rhs.tv_nsec);
5835 extern struct timespec xtime;
5836 extern struct timespec wall_to_monotonic;
5837 extern seqlock_t xtime_lock;
5839 extern unsigned long read_persistent_clock(void);
5840 extern int update_persistent_clock(struct timespec now);
5841 extern int no_sync_cmos_clock ;
5842 void timekeeping_init(void);
5844 unsigned long get_seconds(void);
5845 struct timespec current_kernel_time(void);
5850 extern void do_gettimeofday(struct timeval *tv);
5851 extern int do_settimeofday(struct timespec *tv);
5852 extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz);
5854 extern long do_utimes(int dfd, char *filename, struct timespec *times, int flags);
5856 extern int do_setitimer(int which, struct itimerval *value,
5857 struct itimerval *ovalue);
5858 extern unsigned int alarm_setitimer(unsigned int seconds);
5859 extern int do_getitimer(int which, struct itimerval *value);
5860 extern void getnstimeofday(struct timespec *tv);
5861 extern void getrawmonotonic(struct timespec *ts);
5862 extern void getboottime(struct timespec *ts);
5863 extern void monotonic_to_bootbased(struct timespec *ts);
5865 extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
5866 extern int timekeeping_valid_for_hres(void);
5867 extern void update_wall_time(void);
5868 extern void update_xtime_cache(u64 nsec);
5871 extern void do_sys_times(struct tms *);
5872 # 145 "include/linux/time.h"
5873 static inline __attribute__((always_inline)) s64 timespec_to_ns(const struct timespec *ts)
5875 return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec;
5877 # 157 "include/linux/time.h"
5878 static inline __attribute__((always_inline)) s64 timeval_to_ns(const struct timeval *tv)
5880 return ((s64) tv->tv_sec * 1000000000L) +
5881 tv->tv_usec * 1000L;
5890 extern struct timespec ns_to_timespec(const s64 nsec);
5898 extern struct timeval ns_to_timeval(const s64 nsec);
5899 # 187 "include/linux/time.h"
5900 static inline __attribute__((always_inline)) __attribute__((always_inline)) void timespec_add_ns(struct timespec *a, u64 ns)
5902 a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, 1000000000L, &ns);
5905 # 210 "include/linux/time.h"
5907 struct timespec it_interval;
5908 struct timespec it_value;
5912 struct timeval it_interval;
5913 struct timeval it_value;
5915 # 25 "include/linux/ktime.h" 2
5916 # 1 "include/linux/jiffies.h" 1
5924 # 1 "include/linux/timex.h" 1
5925 # 100 "include/linux/timex.h"
5938 struct timeval time;
5952 int :32; int :32; int :32; int :32;
5953 int :32; int :32; int :32; int :32;
5954 int :32; int :32; int :32;
5956 # 202 "include/linux/timex.h"
5957 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/timex.h" 1
5958 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/timex.h"
5959 typedef unsigned long long cycles_t;
5961 static inline __attribute__((always_inline)) cycles_t get_cycles(void)
5963 unsigned long tmp, tmp2;
5964 __asm__ __volatile__("%0 = cycles; %1 = cycles2;" : "=d"(tmp), "=d"(tmp2));
5965 return tmp | ((cycles_t)tmp2 << 32);
5967 # 203 "include/linux/timex.h" 2
5974 extern unsigned long tick_usec;
5975 extern unsigned long tick_nsec;
5981 extern int time_status;
5982 extern long time_maxerror;
5983 extern long time_esterror;
5985 extern long time_adjust;
5987 extern void ntp_init(void);
5988 extern void ntp_clear(void);
5994 static inline __attribute__((always_inline)) int ntp_synced(void)
5996 return !(time_status & 0x0040);
5998 # 251 "include/linux/timex.h"
5999 extern u64 tick_length;
6001 extern void second_overflow(void);
6002 extern void update_ntp_one_tick(void);
6003 extern int do_adjtimex(struct timex *);
6008 int read_current_timer(unsigned long *timer_val);
6009 # 9 "include/linux/jiffies.h" 2
6010 # 81 "include/linux/jiffies.h"
6011 extern u64 __attribute__((section(".data"))) jiffies_64;
6012 extern unsigned long volatile __attribute__((section(".data"))) jiffies;
6015 u64 get_jiffies_64(void);
6016 # 173 "include/linux/jiffies.h"
6017 extern unsigned long preset_lpj;
6018 # 286 "include/linux/jiffies.h"
6019 extern unsigned int jiffies_to_msecs(const unsigned long j);
6020 extern unsigned int jiffies_to_usecs(const unsigned long j);
6021 extern unsigned long msecs_to_jiffies(const unsigned int m);
6022 extern unsigned long usecs_to_jiffies(const unsigned int u);
6023 extern unsigned long timespec_to_jiffies(const struct timespec *value);
6024 extern void jiffies_to_timespec(const unsigned long jiffies,
6025 struct timespec *value);
6026 extern unsigned long timeval_to_jiffies(const struct timeval *value);
6027 extern void jiffies_to_timeval(const unsigned long jiffies,
6028 struct timeval *value);
6029 extern clock_t jiffies_to_clock_t(long x);
6030 extern unsigned long clock_t_to_jiffies(unsigned long x);
6031 extern u64 jiffies_64_to_clock_t(u64 x);
6032 extern u64 nsec_to_clock_t(u64 x);
6033 # 26 "include/linux/ktime.h" 2
6034 # 46 "include/linux/ktime.h"
6048 typedef union ktime ktime_t;
6049 # 151 "include/linux/ktime.h"
6050 static inline __attribute__((always_inline)) ktime_t ktime_set(const long secs, const unsigned long nsecs)
6052 return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } };
6054 # 163 "include/linux/ktime.h"
6055 static inline __attribute__((always_inline)) ktime_t ktime_sub(const ktime_t lhs, const ktime_t rhs)
6059 res.tv64 = lhs.tv64 - rhs.tv64;
6060 if (res.tv.nsec < 0)
6061 res.tv.nsec += 1000000000L;
6065 # 181 "include/linux/ktime.h"
6066 static inline __attribute__((always_inline)) ktime_t ktime_add(const ktime_t add1, const ktime_t add2)
6070 res.tv64 = add1.tv64 + add2.tv64;
6071 # 194 "include/linux/ktime.h"
6072 if (res.tv.nsec >= 1000000000L)
6073 res.tv64 += (u32)-1000000000L;
6077 # 207 "include/linux/ktime.h"
6078 extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec);
6079 # 216 "include/linux/ktime.h"
6080 extern ktime_t ktime_sub_ns(const ktime_t kt, u64 nsec);
6088 static inline __attribute__((always_inline)) ktime_t timespec_to_ktime(const struct timespec ts)
6090 return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec,
6091 .nsec = (s32)ts.tv_nsec } };
6100 static inline __attribute__((always_inline)) ktime_t timeval_to_ktime(const struct timeval tv)
6102 return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec,
6103 .nsec = (s32)tv.tv_usec * 1000 } };
6112 static inline __attribute__((always_inline)) struct timespec ktime_to_timespec(const ktime_t kt)
6114 return (struct timespec) { .tv_sec = (time_t) kt.tv.sec,
6115 .tv_nsec = (long) kt.tv.nsec };
6124 static inline __attribute__((always_inline)) struct timeval ktime_to_timeval(const ktime_t kt)
6126 return (struct timeval) {
6127 .tv_sec = (time_t) kt.tv.sec,
6128 .tv_usec = (suseconds_t) (kt.tv.nsec / 1000L) };
6137 static inline __attribute__((always_inline)) s64 ktime_to_ns(const ktime_t kt)
6139 return (s64) kt.tv.sec * 1000000000L + kt.tv.nsec;
6141 # 287 "include/linux/ktime.h"
6142 static inline __attribute__((always_inline)) int ktime_equal(const ktime_t cmp1, const ktime_t cmp2)
6144 return cmp1.tv64 == cmp2.tv64;
6147 static inline __attribute__((always_inline)) s64 ktime_to_us(const ktime_t kt)
6149 struct timeval tv = ktime_to_timeval(kt);
6150 return (s64) tv.tv_sec * 1000000L + tv.tv_usec;
6153 static inline __attribute__((always_inline)) s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
6155 return ktime_to_us(ktime_sub(later, earlier));
6158 static inline __attribute__((always_inline)) ktime_t ktime_add_us(const ktime_t kt, const u64 usec)
6160 return ktime_add_ns(kt, usec * 1000);
6163 static inline __attribute__((always_inline)) ktime_t ktime_sub_us(const ktime_t kt, const u64 usec)
6165 return ktime_sub_ns(kt, usec * 1000);
6168 extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs);
6169 # 325 "include/linux/ktime.h"
6170 extern void ktime_get_ts(struct timespec *ts);
6175 static inline __attribute__((always_inline)) ktime_t ns_to_ktime(u64 ns)
6177 static const ktime_t ktime_zero = { .tv64 = 0 };
6178 return ktime_add_ns(ktime_zero, ns);
6180 # 6 "include/linux/timer.h" 2
6182 # 1 "include/linux/debugobjects.h" 1
6189 enum debug_obj_state {
6192 ODEBUG_STATE_INACTIVE,
6193 ODEBUG_STATE_ACTIVE,
6194 ODEBUG_STATE_DESTROYED,
6195 ODEBUG_STATE_NOTAVAILABLE,
6199 struct debug_obj_descr;
6200 # 26 "include/linux/debugobjects.h"
6202 struct hlist_node node;
6203 enum debug_obj_state state;
6205 struct debug_obj_descr *descr;
6207 # 45 "include/linux/debugobjects.h"
6208 struct debug_obj_descr {
6211 int (*fixup_init) (void *addr, enum debug_obj_state state);
6212 int (*fixup_activate) (void *addr, enum debug_obj_state state);
6213 int (*fixup_destroy) (void *addr, enum debug_obj_state state);
6214 int (*fixup_free) (void *addr, enum debug_obj_state state);
6218 extern void debug_object_init (void *addr, struct debug_obj_descr *descr);
6220 debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr);
6221 extern void debug_object_activate (void *addr, struct debug_obj_descr *descr);
6222 extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
6223 extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
6224 extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
6226 extern void debug_objects_early_init(void);
6227 extern void debug_objects_mem_init(void);
6228 # 84 "include/linux/debugobjects.h"
6229 extern void debug_check_no_obj_freed(const void *address, unsigned long size);
6230 # 8 "include/linux/timer.h" 2
6235 struct list_head entry;
6236 unsigned long expires;
6238 void (*function)(unsigned long);
6241 struct tvec_base *base;
6244 char start_comm[16];
6249 extern struct tvec_base boot_tvec_bases;
6250 # 40 "include/linux/timer.h"
6251 void init_timer(struct timer_list *timer);
6252 void init_timer_deferrable(struct timer_list *timer);
6258 static inline __attribute__((always_inline)) void destroy_timer_on_stack(struct timer_list *timer) { }
6259 static inline __attribute__((always_inline)) void init_timer_on_stack(struct timer_list *timer)
6265 static inline __attribute__((always_inline)) void setup_timer(struct timer_list * timer,
6266 void (*function)(unsigned long),
6269 timer->function = function;
6274 static inline __attribute__((always_inline)) void setup_timer_on_stack(struct timer_list *timer,
6275 void (*function)(unsigned long),
6278 timer->function = function;
6280 init_timer_on_stack(timer);
6282 # 82 "include/linux/timer.h"
6283 static inline __attribute__((always_inline)) int timer_pending(const struct timer_list * timer)
6285 return timer->entry.next != ((void *)0);
6288 extern void add_timer_on(struct timer_list *timer, int cpu);
6289 extern int del_timer(struct timer_list * timer);
6290 extern int __mod_timer(struct timer_list *timer, unsigned long expires);
6291 extern int mod_timer(struct timer_list *timer, unsigned long expires);
6292 # 102 "include/linux/timer.h"
6293 extern unsigned long next_timer_interrupt(void);
6299 extern unsigned long get_next_timer_interrupt(unsigned long now);
6300 # 117 "include/linux/timer.h"
6301 extern void init_timer_stats(void);
6303 extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
6304 void *timerf, char *comm,
6305 unsigned int timer_flag);
6307 extern void __timer_stats_timer_set_start_info(struct timer_list *timer,
6310 static inline __attribute__((always_inline)) void timer_stats_timer_set_start_info(struct timer_list *timer)
6312 __timer_stats_timer_set_start_info(timer, __builtin_return_address(0));
6315 static inline __attribute__((always_inline)) void timer_stats_timer_clear_start_info(struct timer_list *timer)
6317 timer->start_site = ((void *)0);
6319 # 163 "include/linux/timer.h"
6320 static inline __attribute__((always_inline)) void add_timer(struct timer_list *timer)
6322 do { if (__builtin_expect(!!(timer_pending(timer)), 0)) do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/timer.h", 165, __func__); panic("BUG!"); } while (0); } while(0);
6323 __mod_timer(timer, timer->expires);
6325 # 179 "include/linux/timer.h"
6326 extern void init_timers(void);
6327 extern void run_local_timers(void);
6329 extern enum hrtimer_restart it_real_fn(struct hrtimer *);
6331 unsigned long __round_jiffies(unsigned long j, int cpu);
6332 unsigned long __round_jiffies_relative(unsigned long j, int cpu);
6333 unsigned long round_jiffies(unsigned long j);
6334 unsigned long round_jiffies_relative(unsigned long j);
6336 unsigned long __round_jiffies_up(unsigned long j, int cpu);
6337 unsigned long __round_jiffies_up_relative(unsigned long j, int cpu);
6338 unsigned long round_jiffies_up(unsigned long j);
6339 unsigned long round_jiffies_up_relative(unsigned long j);
6340 # 9 "include/linux/workqueue.h" 2
6346 struct workqueue_struct;
6349 typedef void (*work_func_t)(struct work_struct *work);
6357 struct work_struct {
6362 struct list_head entry;
6371 struct delayed_work {
6372 struct work_struct work;
6373 struct timer_list timer;
6376 struct execute_work {
6377 struct work_struct work;
6379 # 150 "include/linux/workqueue.h"
6380 extern struct workqueue_struct *
6381 __create_workqueue_key(const char *name, int singlethread,
6382 int freezeable, int rt, struct lock_class_key *key,
6383 const char *lock_name);
6384 # 181 "include/linux/workqueue.h"
6385 extern void destroy_workqueue(struct workqueue_struct *wq);
6387 extern int queue_work(struct workqueue_struct *wq, struct work_struct *work);
6388 extern int queue_work_on(int cpu, struct workqueue_struct *wq,
6389 struct work_struct *work);
6390 extern int queue_delayed_work(struct workqueue_struct *wq,
6391 struct delayed_work *work, unsigned long delay);
6392 extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
6393 struct delayed_work *work, unsigned long delay);
6395 extern void flush_workqueue(struct workqueue_struct *wq);
6396 extern void flush_scheduled_work(void);
6398 extern int schedule_work(struct work_struct *work);
6399 extern int schedule_work_on(int cpu, struct work_struct *work);
6400 extern int schedule_delayed_work(struct delayed_work *work, unsigned long delay);
6401 extern int schedule_delayed_work_on(int cpu, struct delayed_work *work,
6402 unsigned long delay);
6403 extern int schedule_on_each_cpu(work_func_t func);
6404 extern int current_is_keventd(void);
6405 extern int keventd_up(void);
6407 extern void init_workqueues(void);
6408 int execute_in_process_context(work_func_t fn, struct execute_work *);
6410 extern int flush_work(struct work_struct *work);
6412 extern int cancel_work_sync(struct work_struct *work);
6420 static inline __attribute__((always_inline)) int cancel_delayed_work(struct delayed_work *work)
6424 ret = del_timer(&work->timer);
6426 clear_bit(0, ((unsigned long *)(&(&work->work)->data)));
6430 extern int cancel_delayed_work_sync(struct delayed_work *work);
6433 static inline __attribute__((always_inline))
6434 void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq,
6435 struct delayed_work *work)
6437 cancel_delayed_work_sync(work);
6441 static inline __attribute__((always_inline))
6442 void cancel_rearming_delayed_work(struct delayed_work *work)
6444 cancel_delayed_work_sync(work);
6448 static inline __attribute__((always_inline)) long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)
6452 # 12 "include/linux/slub_def.h" 2
6453 # 1 "include/linux/kobject.h" 1
6454 # 21 "include/linux/kobject.h"
6455 # 1 "include/linux/sysfs.h" 1
6456 # 20 "include/linux/sysfs.h"
6467 struct module *owner;
6471 struct attribute_group {
6473 mode_t (*is_visible)(struct kobject *,
6474 struct attribute *, int);
6475 struct attribute **attrs;
6477 # 63 "include/linux/sysfs.h"
6478 struct vm_area_struct;
6480 struct bin_attribute {
6481 struct attribute attr;
6484 ssize_t (*read)(struct kobject *, struct bin_attribute *,
6485 char *, loff_t, size_t);
6486 ssize_t (*write)(struct kobject *, struct bin_attribute *,
6487 char *, loff_t, size_t);
6488 int (*mmap)(struct kobject *, struct bin_attribute *attr,
6489 struct vm_area_struct *vma);
6493 ssize_t (*show)(struct kobject *, struct attribute *,char *);
6494 ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
6497 struct sysfs_dirent;
6498 # 134 "include/linux/sysfs.h"
6499 static inline __attribute__((always_inline)) int sysfs_schedule_callback(struct kobject *kobj,
6500 void (*func)(void *), void *data, struct module *owner)
6505 static inline __attribute__((always_inline)) int sysfs_create_dir(struct kobject *kobj)
6510 static inline __attribute__((always_inline)) void sysfs_remove_dir(struct kobject *kobj)
6514 static inline __attribute__((always_inline)) int sysfs_rename_dir(struct kobject *kobj, const char *new_name)
6519 static inline __attribute__((always_inline)) int sysfs_move_dir(struct kobject *kobj,
6520 struct kobject *new_parent_kobj)
6525 static inline __attribute__((always_inline)) int sysfs_create_file(struct kobject *kobj,
6526 const struct attribute *attr)
6531 static inline __attribute__((always_inline)) int sysfs_chmod_file(struct kobject *kobj,
6532 struct attribute *attr, mode_t mode)
6537 static inline __attribute__((always_inline)) void sysfs_remove_file(struct kobject *kobj,
6538 const struct attribute *attr)
6542 static inline __attribute__((always_inline)) int sysfs_create_bin_file(struct kobject *kobj,
6543 struct bin_attribute *attr)
6548 static inline __attribute__((always_inline)) void sysfs_remove_bin_file(struct kobject *kobj,
6549 struct bin_attribute *attr)
6553 static inline __attribute__((always_inline)) int sysfs_create_link(struct kobject *kobj,
6554 struct kobject *target, const char *name)
6559 static inline __attribute__((always_inline)) int sysfs_create_link_nowarn(struct kobject *kobj,
6560 struct kobject *target,
6566 static inline __attribute__((always_inline)) void sysfs_remove_link(struct kobject *kobj, const char *name)
6570 static inline __attribute__((always_inline)) int sysfs_create_group(struct kobject *kobj,
6571 const struct attribute_group *grp)
6576 static inline __attribute__((always_inline)) int sysfs_update_group(struct kobject *kobj,
6577 const struct attribute_group *grp)
6582 static inline __attribute__((always_inline)) void sysfs_remove_group(struct kobject *kobj,
6583 const struct attribute_group *grp)
6587 static inline __attribute__((always_inline)) int sysfs_add_file_to_group(struct kobject *kobj,
6588 const struct attribute *attr, const char *group)
6593 static inline __attribute__((always_inline)) void sysfs_remove_file_from_group(struct kobject *kobj,
6594 const struct attribute *attr, const char *group)
6598 static inline __attribute__((always_inline)) void sysfs_notify(struct kobject *kobj, const char *dir,
6602 static inline __attribute__((always_inline)) void sysfs_notify_dirent(struct sysfs_dirent *sd)
6605 static inline __attribute__((always_inline))
6606 struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
6607 const unsigned char *name)
6611 static inline __attribute__((always_inline)) struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd)
6615 static inline __attribute__((always_inline)) void sysfs_put(struct sysfs_dirent *sd)
6619 static inline __attribute__((always_inline)) int __attribute__((warn_unused_result)) sysfs_init(void)
6624 static inline __attribute__((always_inline)) void sysfs_printk_last_file(void)
6627 # 22 "include/linux/kobject.h" 2
6630 # 1 "include/linux/kref.h" 1
6631 # 21 "include/linux/kref.h"
6636 void kref_set(struct kref *kref, int num);
6637 void kref_init(struct kref *kref);
6638 void kref_get(struct kref *kref);
6639 int kref_put(struct kref *kref, void (*release) (struct kref *kref));
6640 # 25 "include/linux/kobject.h" 2
6641 # 34 "include/linux/kobject.h"
6642 extern char uevent_helper[];
6645 extern u64 uevent_seqnum;
6646 # 49 "include/linux/kobject.h"
6647 enum kobject_action {
6659 struct list_head entry;
6660 struct kobject *parent;
6662 struct kobj_type *ktype;
6663 struct sysfs_dirent *sd;
6665 unsigned int state_initialized:1;
6666 unsigned int state_in_sysfs:1;
6667 unsigned int state_add_uevent_sent:1;
6668 unsigned int state_remove_uevent_sent:1;
6671 extern int kobject_set_name(struct kobject *kobj, const char *name, ...)
6672 __attribute__((format(printf, 2, 3)));
6674 static inline __attribute__((always_inline)) const char *kobject_name(const struct kobject *kobj)
6679 extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype);
6680 extern int __attribute__((warn_unused_result)) kobject_add(struct kobject *kobj,
6681 struct kobject *parent,
6682 const char *fmt, ...);
6683 extern int __attribute__((warn_unused_result)) kobject_init_and_add(struct kobject *kobj,
6684 struct kobj_type *ktype,
6685 struct kobject *parent,
6686 const char *fmt, ...);
6688 extern void kobject_del(struct kobject *kobj);
6690 extern struct kobject * __attribute__((warn_unused_result)) kobject_create(void);
6691 extern struct kobject * __attribute__((warn_unused_result)) kobject_create_and_add(const char *name,
6692 struct kobject *parent);
6694 extern int __attribute__((warn_unused_result)) kobject_rename(struct kobject *, const char *new_name);
6695 extern int __attribute__((warn_unused_result)) kobject_move(struct kobject *, struct kobject *);
6697 extern struct kobject *kobject_get(struct kobject *kobj);
6698 extern void kobject_put(struct kobject *kobj);
6700 extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
6703 void (*release)(struct kobject *kobj);
6704 struct sysfs_ops *sysfs_ops;
6705 struct attribute **default_attrs;
6708 struct kobj_uevent_env {
6715 struct kset_uevent_ops {
6716 int (*filter)(struct kset *kset, struct kobject *kobj);
6717 const char *(*name)(struct kset *kset, struct kobject *kobj);
6718 int (*uevent)(struct kset *kset, struct kobject *kobj,
6719 struct kobj_uevent_env *env);
6722 struct kobj_attribute {
6723 struct attribute attr;
6724 ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
6726 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
6727 const char *buf, size_t count);
6730 extern struct sysfs_ops kobj_sysfs_ops;
6731 # 151 "include/linux/kobject.h"
6733 struct list_head list;
6734 spinlock_t list_lock;
6735 struct kobject kobj;
6736 struct kset_uevent_ops *uevent_ops;
6739 extern void kset_init(struct kset *kset);
6740 extern int __attribute__((warn_unused_result)) kset_register(struct kset *kset);
6741 extern void kset_unregister(struct kset *kset);
6742 extern struct kset * __attribute__((warn_unused_result)) kset_create_and_add(const char *name,
6743 struct kset_uevent_ops *u,
6744 struct kobject *parent_kobj);
6746 static inline __attribute__((always_inline)) struct kset *to_kset(struct kobject *kobj)
6748 return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof(struct kset,kobj) );}) : ((void *)0);
6751 static inline __attribute__((always_inline)) struct kset *kset_get(struct kset *k)
6753 return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0);
6756 static inline __attribute__((always_inline)) void kset_put(struct kset *k)
6758 kobject_put(&k->kobj);
6761 static inline __attribute__((always_inline)) struct kobj_type *get_ktype(struct kobject *kobj)
6766 extern struct kobject *kset_find_obj(struct kset *, const char *);
6769 extern struct kobject *kernel_kobj;
6771 extern struct kobject *mm_kobj;
6773 extern struct kobject *hypervisor_kobj;
6775 extern struct kobject *power_kobj;
6777 extern struct kobject *firmware_kobj;
6778 # 209 "include/linux/kobject.h"
6779 static inline __attribute__((always_inline)) int kobject_uevent(struct kobject *kobj,
6780 enum kobject_action action)
6782 static inline __attribute__((always_inline)) int kobject_uevent_env(struct kobject *kobj,
6783 enum kobject_action action,
6787 static inline __attribute__((always_inline)) int add_uevent_var(struct kobj_uevent_env *env,
6788 const char *format, ...)
6791 static inline __attribute__((always_inline)) int kobject_action_type(const char *buf, size_t count,
6792 enum kobject_action *type)
6794 # 13 "include/linux/slub_def.h" 2
6803 FREE_REMOVE_PARTIAL,
6813 DEACTIVATE_REMOTE_FREES,
6815 NR_SLUB_STAT_ITEMS };
6817 struct kmem_cache_cpu {
6821 unsigned int offset;
6822 unsigned int objsize;
6828 struct kmem_cache_node {
6829 spinlock_t list_lock;
6830 unsigned long nr_partial;
6831 unsigned long min_partial;
6832 struct list_head partial;
6845 struct kmem_cache_order_objects {
6854 unsigned long flags;
6858 struct kmem_cache_order_objects oo;
6864 struct kmem_cache_node local_node;
6867 struct kmem_cache_order_objects max;
6868 struct kmem_cache_order_objects min;
6871 void (*ctor)(void *);
6875 struct list_head list;
6876 # 108 "include/linux/slub_def.h"
6877 struct kmem_cache_cpu cpu_slab;
6880 # 127 "include/linux/slub_def.h"
6881 extern struct kmem_cache kmalloc_caches[12 + 1];
6887 static inline __attribute__((always_inline)) __attribute__((always_inline)) int kmalloc_index(size_t size)
6893 return ( __builtin_constant_p(8) ? ( (8) < 1 ? ____ilog2_NaN() : (8) & (1ULL << 63) ? 63 : (8) & (1ULL << 62) ? 62 : (8) & (1ULL << 61) ? 61 : (8) & (1ULL << 60) ? 60 : (8) & (1ULL << 59) ? 59 : (8) & (1ULL << 58) ? 58 : (8) & (1ULL << 57) ? 57 : (8) & (1ULL << 56) ? 56 : (8) & (1ULL << 55) ? 55 : (8) & (1ULL << 54) ? 54 : (8) & (1ULL << 53) ? 53 : (8) & (1ULL << 52) ? 52 : (8) & (1ULL << 51) ? 51 : (8) & (1ULL << 50) ? 50 : (8) & (1ULL << 49) ? 49 : (8) & (1ULL << 48) ? 48 : (8) & (1ULL << 47) ? 47 : (8) & (1ULL << 46) ? 46 : (8) & (1ULL << 45) ? 45 : (8) & (1ULL << 44) ? 44 : (8) & (1ULL << 43) ? 43 : (8) & (1ULL << 42) ? 42 : (8) & (1ULL << 41) ? 41 : (8) & (1ULL << 40) ? 40 : (8) & (1ULL << 39) ? 39 : (8) & (1ULL << 38) ? 38 : (8) & (1ULL << 37) ? 37 : (8) & (1ULL << 36) ? 36 : (8) & (1ULL << 35) ? 35 : (8) & (1ULL << 34) ? 34 : (8) & (1ULL << 33) ? 33 : (8) & (1ULL << 32) ? 32 : (8) & (1ULL << 31) ? 31 : (8) & (1ULL << 30) ? 30 : (8) & (1ULL << 29) ? 29 : (8) & (1ULL << 28) ? 28 : (8) & (1ULL << 27) ? 27 : (8) & (1ULL << 26) ? 26 : (8) & (1ULL << 25) ? 25 : (8) & (1ULL << 24) ? 24 : (8) & (1ULL << 23) ? 23 : (8) & (1ULL << 22) ? 22 : (8) & (1ULL << 21) ? 21 : (8) & (1ULL << 20) ? 20 : (8) & (1ULL << 19) ? 19 : (8) & (1ULL << 18) ? 18 : (8) & (1ULL << 17) ? 17 : (8) & (1ULL << 16) ? 16 : (8) & (1ULL << 15) ? 15 : (8) & (1ULL << 14) ? 14 : (8) & (1ULL << 13) ? 13 : (8) & (1ULL << 12) ? 12 : (8) & (1ULL << 11) ? 11 : (8) & (1ULL << 10) ? 10 : (8) & (1ULL << 9) ? 9 : (8) & (1ULL << 8) ? 8 : (8) & (1ULL << 7) ? 7 : (8) & (1ULL << 6) ? 6 : (8) & (1ULL << 5) ? 5 : (8) & (1ULL << 4) ? 4 : (8) & (1ULL << 3) ? 3 : (8) & (1ULL << 2) ? 2 : (8) & (1ULL << 1) ? 1 : (8) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof(8) <= 4) ? __ilog2_u32(8) : __ilog2_u64(8) );
6896 if (size > 64 && size <= 96)
6898 if (size > 128 && size <= 192)
6901 if (size <= 8) return 3;
6902 if (size <= 16) return 4;
6903 if (size <= 32) return 5;
6904 if (size <= 64) return 6;
6905 if (size <= 128) return 7;
6906 if (size <= 256) return 8;
6907 if (size <= 512) return 9;
6908 if (size <= 1024) return 10;
6909 if (size <= 2 * 1024) return 11;
6910 if (size <= 4 * 1024) return 12;
6915 if (size <= 8 * 1024) return 13;
6916 if (size <= 16 * 1024) return 14;
6917 if (size <= 32 * 1024) return 15;
6918 if (size <= 64 * 1024) return 16;
6919 if (size <= 128 * 1024) return 17;
6920 if (size <= 256 * 1024) return 18;
6921 if (size <= 512 * 1024) return 19;
6922 if (size <= 1024 * 1024) return 20;
6923 if (size <= 2 * 1024 * 1024) return 21;
6925 # 179 "include/linux/slub_def.h"
6934 static inline __attribute__((always_inline)) __attribute__((always_inline)) struct kmem_cache *kmalloc_slab(size_t size)
6936 int index = kmalloc_index(size);
6941 return &kmalloc_caches[index];
6943 # 204 "include/linux/slub_def.h"
6944 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
6945 void *__kmalloc(size_t size, gfp_t flags);
6947 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *kmalloc_large(size_t size, gfp_t flags)
6949 return (void *)__get_free_pages(flags | (( gfp_t)0x4000u), get_order(size));
6952 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *kmalloc(size_t size, gfp_t flags)
6954 if (__builtin_constant_p(size)) {
6955 if (size > (1UL << 12))
6956 return kmalloc_large(size, flags);
6958 if (!(flags & (( gfp_t)0x01u))) {
6959 struct kmem_cache *s = kmalloc_slab(size);
6962 return ((void *)16);
6964 return kmem_cache_alloc(s, flags);
6967 return __kmalloc(size, flags);
6969 # 153 "include/linux/slab.h" 2
6970 # 210 "include/linux/slab.h"
6971 static inline __attribute__((always_inline)) void *kcalloc(size_t n, size_t size, gfp_t flags)
6973 if (size != 0 && n > (~0UL) / size)
6975 return __kmalloc(n * size, flags | (( gfp_t)0x8000u));
6977 # 228 "include/linux/slab.h"
6978 static inline __attribute__((always_inline)) void *kmalloc_node(size_t size, gfp_t flags, int node)
6980 return kmalloc(size, flags);
6983 static inline __attribute__((always_inline)) void *__kmalloc_node(size_t size, gfp_t flags, int node)
6985 return __kmalloc(size, flags);
6988 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
6990 static inline __attribute__((always_inline)) void *kmem_cache_alloc_node(struct kmem_cache *cachep,
6991 gfp_t flags, int node)
6993 return kmem_cache_alloc(cachep, flags);
6995 # 256 "include/linux/slab.h"
6996 extern void *__kmalloc_track_caller(size_t, gfp_t, void*);
6997 # 293 "include/linux/slab.h"
6998 static inline __attribute__((always_inline)) void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)
7000 return kmem_cache_alloc(k, flags | (( gfp_t)0x8000u));
7008 static inline __attribute__((always_inline)) void *kzalloc(size_t size, gfp_t flags)
7010 return kmalloc(size, flags | (( gfp_t)0x8000u));
7019 static inline __attribute__((always_inline)) void *kzalloc_node(size_t size, gfp_t flags, int node)
7021 return kmalloc_node(size, flags | (( gfp_t)0x8000u), node);
7023 # 6 "include/linux/percpu.h" 2
7027 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/percpu.h" 1
7031 # 1 "include/asm-generic/percpu.h" 1
7032 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/percpu.h" 2
7033 # 10 "include/linux/percpu.h" 2
7034 # 91 "include/linux/percpu.h"
7035 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask)
7037 return kzalloc(size, gfp);
7040 static inline __attribute__((always_inline)) void percpu_free(void *__pdata)
7044 # 40 "include/linux/rcupdate.h" 2
7048 # 1 "include/linux/completion.h" 1
7049 # 25 "include/linux/completion.h"
7052 wait_queue_head_t wait;
7054 # 73 "include/linux/completion.h"
7055 static inline __attribute__((always_inline)) void init_completion(struct completion *x)
7058 init_waitqueue_head(&x->wait);
7061 extern void wait_for_completion(struct completion *);
7062 extern int wait_for_completion_interruptible(struct completion *x);
7063 extern int wait_for_completion_killable(struct completion *x);
7064 extern unsigned long wait_for_completion_timeout(struct completion *x,
7065 unsigned long timeout);
7066 extern unsigned long wait_for_completion_interruptible_timeout(
7067 struct completion *x, unsigned long timeout);
7068 extern bool try_wait_for_completion(struct completion *x);
7069 extern bool completion_done(struct completion *x);
7071 extern void complete(struct completion *);
7072 extern void complete_all(struct completion *);
7073 # 44 "include/linux/rcupdate.h" 2
7081 struct rcu_head *next;
7082 void (*func)(struct rcu_head *head);
7086 # 1 "include/linux/rcuclassic.h" 1
7087 # 49 "include/linux/rcuclassic.h"
7088 struct rcu_ctrlblk {
7093 unsigned long gp_start;
7094 unsigned long jiffies_stall;
7106 static inline __attribute__((always_inline)) int rcu_batch_before(long a, long b)
7112 static inline __attribute__((always_inline)) int rcu_batch_after(long a, long b)
7123 # 100 "include/linux/rcuclassic.h"
7125 struct rcu_head *nxtlist;
7126 struct rcu_head **nxttail[3];
7128 struct rcu_head *donelist;
7129 struct rcu_head **donetail;
7132 struct rcu_head barrier;
7135 extern __typeof__(struct rcu_data) per_cpu__rcu_data;
7136 extern __typeof__(struct rcu_data) per_cpu__rcu_bh_data;
7144 static inline __attribute__((always_inline)) void rcu_qsctr_inc(int cpu)
7146 struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_data));
7147 rdp->passed_quiesc = 1;
7149 static inline __attribute__((always_inline)) void rcu_bh_qsctr_inc(int cpu)
7151 struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_bh_data));
7152 rdp->passed_quiesc = 1;
7155 extern int rcu_pending(int cpu);
7156 extern int rcu_needs_cpu(int cpu);
7157 # 173 "include/linux/rcuclassic.h"
7158 extern void __rcu_init(void);
7160 extern void rcu_check_callbacks(int cpu, int user);
7161 extern void rcu_restart_cpu(int cpu);
7163 extern long rcu_batches_completed(void);
7164 extern long rcu_batches_completed_bh(void);
7165 # 57 "include/linux/rcupdate.h" 2
7166 # 194 "include/linux/rcupdate.h"
7167 struct rcu_synchronize {
7168 struct rcu_head head;
7169 struct completion completion;
7172 extern void wakeme_after_rcu(struct rcu_head *head);
7173 # 242 "include/linux/rcupdate.h"
7174 extern void call_rcu(struct rcu_head *head,
7175 void (*func)(struct rcu_head *head));
7176 # 263 "include/linux/rcupdate.h"
7177 extern void call_rcu_bh(struct rcu_head *head,
7178 void (*func)(struct rcu_head *head));
7181 extern void synchronize_rcu(void);
7182 extern void rcu_barrier(void);
7183 extern void rcu_barrier_bh(void);
7184 extern void rcu_barrier_sched(void);
7187 extern void rcu_init(void);
7188 extern int rcu_needs_cpu(int cpu);
7189 # 11 "include/linux/rculist.h" 2
7197 static inline __attribute__((always_inline)) void __list_add_rcu(struct list_head *new,
7198 struct list_head *prev, struct list_head *next)
7202 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (prev->next) = (new); });
7205 # 43 "include/linux/rculist.h"
7206 static inline __attribute__((always_inline)) void list_add_rcu(struct list_head *new, struct list_head *head)
7208 __list_add_rcu(new, head, head->next);
7210 # 64 "include/linux/rculist.h"
7211 static inline __attribute__((always_inline)) void list_add_tail_rcu(struct list_head *new,
7212 struct list_head *head)
7214 __list_add_rcu(new, head->prev, head);
7216 # 94 "include/linux/rculist.h"
7217 static inline __attribute__((always_inline)) void list_del_rcu(struct list_head *entry)
7219 __list_del(entry->prev, entry->next);
7220 entry->prev = ((void *) 0x00200200);
7222 # 120 "include/linux/rculist.h"
7223 static inline __attribute__((always_inline)) void hlist_del_init_rcu(struct hlist_node *n)
7225 if (!hlist_unhashed(n)) {
7227 n->pprev = ((void *)0);
7230 # 136 "include/linux/rculist.h"
7231 static inline __attribute__((always_inline)) void list_replace_rcu(struct list_head *old,
7232 struct list_head *new)
7234 new->next = old->next;
7235 new->prev = old->prev;
7236 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (new->prev->next) = (new); });
7237 new->next->prev = new;
7238 old->prev = ((void *) 0x00200200);
7240 # 163 "include/linux/rculist.h"
7241 static inline __attribute__((always_inline)) void list_splice_init_rcu(struct list_head *list,
7242 struct list_head *head,
7245 struct list_head *first = list->next;
7246 struct list_head *last = list->prev;
7247 struct list_head *at = head->next;
7249 if (list_empty(head))
7254 INIT_LIST_HEAD(list);
7255 # 185 "include/linux/rculist.h"
7257 # 195 "include/linux/rculist.h"
7259 ({ if (!__builtin_constant_p(first) || ((first) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (head->next) = (first); });
7263 # 257 "include/linux/rculist.h"
7264 static inline __attribute__((always_inline)) void hlist_del_rcu(struct hlist_node *n)
7267 n->pprev = ((void *) 0x00200200);
7269 # 270 "include/linux/rculist.h"
7270 static inline __attribute__((always_inline)) void hlist_replace_rcu(struct hlist_node *old,
7271 struct hlist_node *new)
7273 struct hlist_node *next = old->next;
7276 new->pprev = old->pprev;
7277 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*new->pprev) = (new); });
7279 new->next->pprev = &new->next;
7280 old->pprev = ((void *) 0x00200200);
7282 # 302 "include/linux/rculist.h"
7283 static inline __attribute__((always_inline)) void hlist_add_head_rcu(struct hlist_node *n,
7284 struct hlist_head *h)
7286 struct hlist_node *first = h->first;
7289 n->pprev = &h->first;
7290 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (h->first) = (n); });
7292 first->pprev = &n->next;
7294 # 332 "include/linux/rculist.h"
7295 static inline __attribute__((always_inline)) void hlist_add_before_rcu(struct hlist_node *n,
7296 struct hlist_node *next)
7298 n->pprev = next->pprev;
7300 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*(n->pprev)) = (n); });
7301 next->pprev = &n->next;
7303 # 359 "include/linux/rculist.h"
7304 static inline __attribute__((always_inline)) void hlist_add_after_rcu(struct hlist_node *prev,
7305 struct hlist_node *n)
7307 n->next = prev->next;
7308 n->pprev = &prev->next;
7309 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (prev->next) = (n); });
7311 n->next->pprev = &n->next;
7313 # 7 "include/linux/dcache.h" 2
7321 # 33 "include/linux/dcache.h"
7325 const unsigned char *name;
7328 struct dentry_stat_t {
7335 extern struct dentry_stat_t dentry_stat;
7342 static inline __attribute__((always_inline)) unsigned long
7343 partial_name_hash(unsigned long c, unsigned long prevhash)
7345 return (prevhash + (c << 4) + (c >> 4)) * 11;
7352 static inline __attribute__((always_inline)) unsigned long end_name_hash(unsigned long hash)
7354 return (unsigned int) hash;
7358 static inline __attribute__((always_inline)) unsigned int
7359 full_name_hash(const unsigned char *name, unsigned int len)
7361 unsigned long hash = 0;
7363 hash = partial_name_hash(*name++, hash);
7364 return end_name_hash(hash);
7367 struct dcookie_struct;
7373 unsigned int d_flags;
7375 struct inode *d_inode;
7381 struct hlist_node d_hash;
7382 struct dentry *d_parent;
7385 struct list_head d_lru;
7390 struct list_head d_child;
7391 struct rcu_head d_rcu;
7393 struct list_head d_subdirs;
7394 struct list_head d_alias;
7395 unsigned long d_time;
7396 struct dentry_operations *d_op;
7397 struct super_block *d_sb;
7400 struct dcookie_struct *d_cookie;
7403 unsigned char d_iname[36];
7412 enum dentry_d_lock_class
7414 DENTRY_D_LOCK_NORMAL,
7415 DENTRY_D_LOCK_NESTED
7418 struct dentry_operations {
7419 int (*d_revalidate)(struct dentry *, struct nameidata *);
7420 int (*d_hash) (struct dentry *, struct qstr *);
7421 int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
7422 int (*d_delete)(struct dentry *);
7423 void (*d_release)(struct dentry *);
7424 void (*d_iput)(struct dentry *, struct inode *);
7425 char *(*d_dname)(struct dentry *, char *, int);
7427 # 180 "include/linux/dcache.h"
7428 extern spinlock_t dcache_lock;
7429 extern seqlock_t rename_lock;
7430 # 199 "include/linux/dcache.h"
7431 static inline __attribute__((always_inline)) void __d_drop(struct dentry *dentry)
7433 if (!(dentry->d_flags & 0x0010)) {
7434 dentry->d_flags |= 0x0010;
7435 hlist_del_rcu(&dentry->d_hash);
7439 static inline __attribute__((always_inline)) void d_drop(struct dentry *dentry)
7441 _spin_lock(&dcache_lock);
7442 _spin_lock(&dentry->d_lock);
7444 _spin_unlock(&dentry->d_lock);
7445 _spin_unlock(&dcache_lock);
7448 static inline __attribute__((always_inline)) int dname_external(struct dentry *dentry)
7450 return dentry->d_name.name != dentry->d_iname;
7456 extern void d_instantiate(struct dentry *, struct inode *);
7457 extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *);
7458 extern struct dentry * d_materialise_unique(struct dentry *, struct inode *);
7459 extern void d_delete(struct dentry *);
7462 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
7463 extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
7464 extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
7465 extern struct dentry * d_obtain_alias(struct inode *);
7466 extern void shrink_dcache_sb(struct super_block *);
7467 extern void shrink_dcache_parent(struct dentry *);
7468 extern void shrink_dcache_for_umount(struct super_block *);
7469 extern int d_invalidate(struct dentry *);
7472 extern struct dentry * d_alloc_root(struct inode *);
7475 extern void d_genocide(struct dentry *);
7477 extern struct dentry *d_find_alias(struct inode *);
7478 extern void d_prune_aliases(struct inode *);
7481 extern int have_submounts(struct dentry *);
7486 extern void d_rehash(struct dentry *);
7487 # 265 "include/linux/dcache.h"
7488 static inline __attribute__((always_inline)) void d_add(struct dentry *entry, struct inode *inode)
7490 d_instantiate(entry, inode);
7493 # 279 "include/linux/dcache.h"
7494 static inline __attribute__((always_inline)) struct dentry *d_add_unique(struct dentry *entry, struct inode *inode)
7498 res = d_instantiate_unique(entry, inode);
7499 d_rehash(res != ((void *)0) ? res : entry);
7504 extern void d_move(struct dentry *, struct dentry *);
7505 extern struct dentry *d_ancestor(struct dentry *, struct dentry *);
7508 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
7509 extern struct dentry * __d_lookup(struct dentry *, struct qstr *);
7510 extern struct dentry * d_hash_and_lookup(struct dentry *, struct qstr *);
7513 extern int d_validate(struct dentry *, struct dentry *);
7518 extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
7520 extern char *__d_path(const struct path *path, struct path *root, char *, int);
7521 extern char *d_path(const struct path *, char *, int);
7522 extern char *dentry_path(struct dentry *, char *, int);
7523 # 324 "include/linux/dcache.h"
7524 static inline __attribute__((always_inline)) struct dentry *dget(struct dentry *dentry)
7527 do { if (__builtin_expect(!!(!((&dentry->d_count)->counter)), 0)) do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/dcache.h", 327, __func__); panic("BUG!"); } while (0); } while(0);
7528 atomic_inc(&dentry->d_count);
7533 extern struct dentry * dget_locked(struct dentry *);
7534 # 342 "include/linux/dcache.h"
7535 static inline __attribute__((always_inline)) int d_unhashed(struct dentry *dentry)
7537 return (dentry->d_flags & 0x0010);
7540 static inline __attribute__((always_inline)) struct dentry *dget_parent(struct dentry *dentry)
7544 _spin_lock(&dentry->d_lock);
7545 ret = dget(dentry->d_parent);
7546 _spin_unlock(&dentry->d_lock);
7550 extern void dput(struct dentry *);
7552 static inline __attribute__((always_inline)) int d_mountpoint(struct dentry *dentry)
7554 return dentry->d_mounted;
7557 extern struct vfsmount *lookup_mnt(struct vfsmount *, struct dentry *);
7558 extern struct dentry *lookup_create(struct nameidata *nd, int is_dir);
7560 extern int sysctl_vfs_cache_pressure;
7561 # 292 "include/linux/fs.h" 2
7562 # 1 "include/linux/path.h" 1
7570 struct vfsmount *mnt;
7571 struct dentry *dentry;
7574 extern void path_get(struct path *);
7575 extern void path_put(struct path *);
7576 # 293 "include/linux/fs.h" 2
7577 # 1 "include/linux/stat.h" 1
7583 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/stat.h" 1
7588 unsigned short st_dev;
7589 unsigned short __pad1;
7590 unsigned long st_ino;
7591 unsigned short st_mode;
7592 unsigned short st_nlink;
7593 unsigned short st_uid;
7594 unsigned short st_gid;
7595 unsigned short st_rdev;
7596 unsigned short __pad2;
7597 unsigned long st_size;
7598 unsigned long st_blksize;
7599 unsigned long st_blocks;
7600 unsigned long st_atime;
7601 unsigned long __unused1;
7602 unsigned long st_mtime;
7603 unsigned long __unused2;
7604 unsigned long st_ctime;
7605 unsigned long __unused3;
7606 unsigned long __unused4;
7607 unsigned long __unused5;
7614 unsigned long long st_dev;
7615 unsigned char __pad1[4];
7618 unsigned long __st_ino;
7620 unsigned int st_mode;
7621 unsigned int st_nlink;
7623 unsigned long st_uid;
7624 unsigned long st_gid;
7626 unsigned long long st_rdev;
7627 unsigned char __pad2[4];
7630 unsigned long st_blksize;
7632 long long st_blocks;
7634 unsigned long st_atime;
7635 unsigned long st_atime_nsec;
7637 unsigned long st_mtime;
7638 unsigned long st_mtime_nsec;
7640 unsigned long st_ctime;
7641 unsigned long st_ctime_nsec;
7643 unsigned long long st_ino;
7645 # 7 "include/linux/stat.h" 2
7646 # 62 "include/linux/stat.h"
7656 struct timespec atime;
7657 struct timespec mtime;
7658 struct timespec ctime;
7659 unsigned long blksize;
7660 unsigned long long blocks;
7662 # 294 "include/linux/fs.h" 2
7666 # 1 "include/linux/radix-tree.h" 1
7667 # 41 "include/linux/radix-tree.h"
7668 static inline __attribute__((always_inline)) void *radix_tree_ptr_to_indirect(void *ptr)
7670 return (void *)((unsigned long)ptr | 1);
7673 static inline __attribute__((always_inline)) void *radix_tree_indirect_to_ptr(void *ptr)
7675 return (void *)((unsigned long)ptr & ~1);
7678 static inline __attribute__((always_inline)) int radix_tree_is_indirect_ptr(void *ptr)
7680 return (int)((unsigned long)ptr & 1);
7688 struct radix_tree_root {
7689 unsigned int height;
7691 struct radix_tree_node *rnode;
7693 # 137 "include/linux/radix-tree.h"
7694 static inline __attribute__((always_inline)) void *radix_tree_deref_slot(void **pslot)
7697 if (__builtin_expect(!!(radix_tree_is_indirect_ptr(ret)), 0))
7698 ret = ((void *)-1UL);
7701 # 152 "include/linux/radix-tree.h"
7702 static inline __attribute__((always_inline)) void radix_tree_replace_slot(void **pslot, void *item)
7704 do { if (__builtin_expect(!!(radix_tree_is_indirect_ptr(item)), 0)) do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/radix-tree.h", 154, __func__); panic("BUG!"); } while (0); } while(0);
7705 ({ if (!__builtin_constant_p(item) || ((item) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*pslot) = (item); });
7708 int radix_tree_insert(struct radix_tree_root *, unsigned long, void *);
7709 void *radix_tree_lookup(struct radix_tree_root *, unsigned long);
7710 void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long);
7711 void *radix_tree_delete(struct radix_tree_root *, unsigned long);
7713 radix_tree_gang_lookup(struct radix_tree_root *root, void **results,
7714 unsigned long first_index, unsigned int max_items);
7716 radix_tree_gang_lookup_slot(struct radix_tree_root *root, void ***results,
7717 unsigned long first_index, unsigned int max_items);
7718 unsigned long radix_tree_next_hole(struct radix_tree_root *root,
7719 unsigned long index, unsigned long max_scan);
7720 int radix_tree_preload(gfp_t gfp_mask);
7721 void radix_tree_init(void);
7722 void *radix_tree_tag_set(struct radix_tree_root *root,
7723 unsigned long index, unsigned int tag);
7724 void *radix_tree_tag_clear(struct radix_tree_root *root,
7725 unsigned long index, unsigned int tag);
7726 int radix_tree_tag_get(struct radix_tree_root *root,
7727 unsigned long index, unsigned int tag);
7729 radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results,
7730 unsigned long first_index, unsigned int max_items,
7733 radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results,
7734 unsigned long first_index, unsigned int max_items,
7736 int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
7738 static inline __attribute__((always_inline)) void radix_tree_preload_end(void)
7742 # 298 "include/linux/fs.h" 2
7743 # 1 "include/linux/prio_tree.h" 1
7744 # 14 "include/linux/prio_tree.h"
7745 struct raw_prio_tree_node {
7746 struct prio_tree_node *left;
7747 struct prio_tree_node *right;
7748 struct prio_tree_node *parent;
7751 struct prio_tree_node {
7752 struct prio_tree_node *left;
7753 struct prio_tree_node *right;
7754 struct prio_tree_node *parent;
7755 unsigned long start;
7759 struct prio_tree_root {
7760 struct prio_tree_node *prio_tree_node;
7761 unsigned short index_bits;
7769 struct prio_tree_iter {
7770 struct prio_tree_node *cur;
7772 unsigned long value;
7775 struct prio_tree_root *root;
7776 unsigned long r_index;
7777 unsigned long h_index;
7780 static inline __attribute__((always_inline)) void prio_tree_iter_init(struct prio_tree_iter *iter,
7781 struct prio_tree_root *root, unsigned long r_index, unsigned long h_index)
7784 iter->r_index = r_index;
7785 iter->h_index = h_index;
7786 iter->cur = ((void *)0);
7788 # 84 "include/linux/prio_tree.h"
7789 static inline __attribute__((always_inline)) int prio_tree_empty(const struct prio_tree_root *root)
7791 return root->prio_tree_node == ((void *)0);
7794 static inline __attribute__((always_inline)) int prio_tree_root(const struct prio_tree_node *node)
7796 return node->parent == node;
7799 static inline __attribute__((always_inline)) int prio_tree_left_empty(const struct prio_tree_node *node)
7801 return node->left == node;
7804 static inline __attribute__((always_inline)) int prio_tree_right_empty(const struct prio_tree_node *node)
7806 return node->right == node;
7810 struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root,
7811 struct prio_tree_node *old, struct prio_tree_node *node);
7812 struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root,
7813 struct prio_tree_node *node);
7814 void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node);
7815 struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter);
7816 # 299 "include/linux/fs.h" 2
7818 # 1 "include/linux/pid.h" 1
7831 # 50 "include/linux/pid.h"
7835 struct pid_namespace *ns;
7836 struct hlist_node pid_chain;
7844 struct hlist_head tasks[PIDTYPE_MAX];
7845 struct rcu_head rcu;
7846 struct upid numbers[1];
7849 extern struct pid init_struct_pid;
7853 struct hlist_node node;
7857 static inline __attribute__((always_inline)) struct pid *get_pid(struct pid *pid)
7860 atomic_inc(&pid->count);
7864 extern void put_pid(struct pid *pid);
7865 extern struct task_struct *pid_task(struct pid *pid, enum pid_type);
7866 extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type);
7868 extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type);
7874 extern void attach_pid(struct task_struct *task, enum pid_type type,
7876 extern void detach_pid(struct task_struct *task, enum pid_type);
7877 extern void change_pid(struct task_struct *task, enum pid_type,
7879 extern void transfer_pid(struct task_struct *old, struct task_struct *new,
7882 struct pid_namespace;
7883 extern struct pid_namespace init_pid_ns;
7884 # 112 "include/linux/pid.h"
7885 extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns);
7886 extern struct pid *find_vpid(int nr);
7891 extern struct pid *find_get_pid(int nr);
7892 extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
7893 int next_pidmap(struct pid_namespace *pid_ns, int last);
7895 extern struct pid *alloc_pid(struct pid_namespace *ns);
7896 extern void free_pid(struct pid *pid);
7897 # 136 "include/linux/pid.h"
7898 static inline __attribute__((always_inline)) pid_t pid_nr(struct pid *pid)
7902 nr = pid->numbers[0].nr;
7906 pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
7907 pid_t pid_vnr(struct pid *pid);
7908 # 301 "include/linux/fs.h" 2
7910 # 1 "include/linux/capability.h" 1
7911 # 18 "include/linux/capability.h"
7913 # 40 "include/linux/capability.h"
7914 typedef struct __user_cap_header_struct {
7917 } *cap_user_header_t;
7919 typedef struct __user_cap_data_struct {
7924 # 72 "include/linux/capability.h"
7925 struct vfs_cap_data {
7932 # 95 "include/linux/capability.h"
7933 typedef struct kernel_cap_struct {
7936 # 416 "include/linux/capability.h"
7937 static inline __attribute__((always_inline)) kernel_cap_t cap_combine(const kernel_cap_t a,
7938 const kernel_cap_t b)
7941 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] | b.cap[__capi]; } } while (0);
7945 static inline __attribute__((always_inline)) kernel_cap_t cap_intersect(const kernel_cap_t a,
7946 const kernel_cap_t b)
7949 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] & b.cap[__capi]; } } while (0);
7953 static inline __attribute__((always_inline)) kernel_cap_t cap_drop(const kernel_cap_t a,
7954 const kernel_cap_t drop)
7957 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] &~ drop.cap[__capi]; } } while (0);
7961 static inline __attribute__((always_inline)) kernel_cap_t cap_invert(const kernel_cap_t c)
7964 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = ~ c.cap[__capi]; } } while (0);
7968 static inline __attribute__((always_inline)) int cap_isclear(const kernel_cap_t a)
7971 for (__capi = 0; __capi < 2; ++__capi) {
7972 if (a.cap[__capi] != 0)
7978 static inline __attribute__((always_inline)) int cap_issubset(const kernel_cap_t a, const kernel_cap_t set)
7981 dest = cap_drop(a, set);
7982 return cap_isclear(dest);
7987 static inline __attribute__((always_inline)) int cap_is_fs_cap(int cap)
7989 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))), ((1 << ((32) & 31))) } });
7990 return !!((1 << ((cap) & 31)) & __cap_fs_set.cap[((cap) >> 5)]);
7993 static inline __attribute__((always_inline)) kernel_cap_t cap_drop_fs_set(const kernel_cap_t a)
7995 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))), ((1 << ((32) & 31))) } });
7996 return cap_drop(a, __cap_fs_set);
7999 static inline __attribute__((always_inline)) kernel_cap_t cap_raise_fs_set(const kernel_cap_t a,
8000 const kernel_cap_t permitted)
8002 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))), ((1 << ((32) & 31))) } });
8003 return cap_combine(a,
8004 cap_intersect(permitted, __cap_fs_set));
8007 static inline __attribute__((always_inline)) kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a)
8009 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31)))|(1 << ((24) & 31)), ((1 << ((32) & 31))) } });
8010 return cap_drop(a, __cap_fs_set);
8013 static inline __attribute__((always_inline)) kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a,
8014 const kernel_cap_t permitted)
8016 const kernel_cap_t __cap_nfsd_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31)))|(1 << ((24) & 31)), ((1 << ((32) & 31))) } });
8017 return cap_combine(a,
8018 cap_intersect(permitted, __cap_nfsd_set));
8021 extern const kernel_cap_t __cap_empty_set;
8022 extern const kernel_cap_t __cap_full_set;
8023 extern const kernel_cap_t __cap_init_eff_set;
8025 kernel_cap_t cap_set_effective(const kernel_cap_t pE_new);
8026 # 518 "include/linux/capability.h"
8027 extern int capable(int cap);
8028 # 303 "include/linux/fs.h" 2
8029 # 1 "include/linux/semaphore.h" 1
8030 # 16 "include/linux/semaphore.h"
8034 struct list_head wait_list;
8036 # 32 "include/linux/semaphore.h"
8037 static inline __attribute__((always_inline)) void sema_init(struct semaphore *sem, int val)
8039 static struct lock_class_key __key;
8040 *sem = (struct semaphore) { .lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, }, .count = val, .wait_list = { &((*sem).wait_list), &((*sem).wait_list) }, };
8041 do { (void)("semaphore->lock"); (void)(&__key); } while (0);
8047 extern void down(struct semaphore *sem);
8048 extern int __attribute__((warn_unused_result)) down_interruptible(struct semaphore *sem);
8049 extern int __attribute__((warn_unused_result)) down_killable(struct semaphore *sem);
8050 extern int __attribute__((warn_unused_result)) down_trylock(struct semaphore *sem);
8051 extern int __attribute__((warn_unused_result)) down_timeout(struct semaphore *sem, long jiffies);
8052 extern void up(struct semaphore *sem);
8053 # 304 "include/linux/fs.h" 2
8054 # 1 "include/linux/fiemap.h" 1
8055 # 14 "include/linux/fiemap.h"
8056 struct fiemap_extent {
8062 __u64 fe_reserved64[2];
8064 __u32 fe_reserved[3];
8073 __u32 fm_mapped_extents;
8074 __u32 fm_extent_count;
8076 struct fiemap_extent fm_extents[0];
8078 # 305 "include/linux/fs.h" 2
8083 struct export_operations;
8088 struct pipe_inode_info;
8089 struct poll_table_struct;
8091 struct vm_area_struct;
8094 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init(void);
8095 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init_early(void);
8096 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) files_init(unsigned long);
8099 typedef int (get_block_t)(struct inode *inode, sector_t iblock,
8100 struct buffer_head *bh_result, int create);
8101 typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
8102 ssize_t bytes, void *private);
8103 # 361 "include/linux/fs.h"
8105 unsigned int ia_valid;
8110 struct timespec ia_atime;
8111 struct timespec ia_mtime;
8112 struct timespec ia_ctime;
8119 struct file *ia_file;
8125 # 1 "include/linux/quota.h" 1
8126 # 98 "include/linux/quota.h"
8128 __u64 dqb_bhardlimit;
8129 __u64 dqb_bsoftlimit;
8131 __u64 dqb_ihardlimit;
8132 __u64 dqb_isoftlimit;
8133 __u64 dqb_curinodes;
8138 # 119 "include/linux/quota.h"
8145 # 141 "include/linux/quota.h"
8156 QUOTA_NL_A_EXCESS_ID,
8158 QUOTA_NL_A_DEV_MAJOR,
8159 QUOTA_NL_A_DEV_MINOR,
8160 QUOTA_NL_A_CAUSED_ID,
8163 # 168 "include/linux/quota.h"
8164 # 1 "include/linux/dqblk_xfs.h" 1
8165 # 50 "include/linux/dqblk_xfs.h"
8166 typedef struct fs_disk_quota {
8171 __u64 d_blk_hardlimit;
8172 __u64 d_blk_softlimit;
8173 __u64 d_ino_hardlimit;
8174 __u64 d_ino_softlimit;
8183 __u64 d_rtb_hardlimit;
8184 __u64 d_rtb_softlimit;
8191 # 137 "include/linux/dqblk_xfs.h"
8192 typedef struct fs_qfilestat {
8198 typedef struct fs_quota_stat {
8202 fs_qfilestat_t qs_uquota;
8203 fs_qfilestat_t qs_gquota;
8205 __s32 qs_btimelimit;
8206 __s32 qs_itimelimit;
8207 __s32 qs_rtbtimelimit;
8208 __u16 qs_bwarnlimit;
8209 __u16 qs_iwarnlimit;
8211 # 169 "include/linux/quota.h" 2
8212 # 1 "include/linux/dqblk_v1.h" 1
8213 # 21 "include/linux/dqblk_v1.h"
8214 struct v1_mem_dqinfo {
8216 # 170 "include/linux/quota.h" 2
8217 # 1 "include/linux/dqblk_v2.h" 1
8218 # 20 "include/linux/dqblk_v2.h"
8219 struct v2_mem_dqinfo {
8220 unsigned int dqi_blocks;
8221 unsigned int dqi_free_blk;
8222 unsigned int dqi_free_entry;
8224 # 171 "include/linux/quota.h" 2
8228 typedef __kernel_uid32_t qid_t;
8229 typedef __u64 qsize_t;
8231 extern spinlock_t dq_data_lock;
8232 # 189 "include/linux/quota.h"
8234 __u32 dqb_bhardlimit;
8235 __u32 dqb_bsoftlimit;
8236 qsize_t dqb_curspace;
8237 __u32 dqb_ihardlimit;
8238 __u32 dqb_isoftlimit;
8239 __u32 dqb_curinodes;
8247 struct quota_format_type;
8250 struct quota_format_type *dqi_format;
8253 struct list_head dqi_dirty_list;
8254 unsigned long dqi_flags;
8255 unsigned int dqi_bgrace;
8256 unsigned int dqi_igrace;
8257 qsize_t dqi_maxblimit;
8258 qsize_t dqi_maxilimit;
8260 struct v1_mem_dqinfo v1_i;
8261 struct v2_mem_dqinfo v2_i;
8271 extern void mark_info_dirty(struct super_block *sb, int type);
8272 static inline __attribute__((always_inline)) int info_dirty(struct mem_dqinfo *info)
8274 return test_bit(16, &info->dqi_flags);
8283 int allocated_dquots;
8288 extern struct dqstats dqstats;
8289 # 253 "include/linux/quota.h"
8291 struct hlist_node dq_hash;
8292 struct list_head dq_inuse;
8293 struct list_head dq_free;
8294 struct list_head dq_dirty;
8295 struct mutex dq_lock;
8297 wait_queue_head_t dq_wait_unused;
8298 struct super_block *dq_sb;
8301 unsigned long dq_flags;
8303 struct mem_dqblk dq_dqb;
8312 struct quota_format_ops {
8313 int (*check_quota_file)(struct super_block *sb, int type);
8314 int (*read_file_info)(struct super_block *sb, int type);
8315 int (*write_file_info)(struct super_block *sb, int type);
8316 int (*free_file_info)(struct super_block *sb, int type);
8317 int (*read_dqblk)(struct dquot *dquot);
8318 int (*commit_dqblk)(struct dquot *dquot);
8319 int (*release_dqblk)(struct dquot *dquot);
8323 struct dquot_operations {
8324 int (*initialize) (struct inode *, int);
8325 int (*drop) (struct inode *);
8326 int (*alloc_space) (struct inode *, qsize_t, int);
8327 int (*alloc_inode) (const struct inode *, unsigned long);
8328 int (*free_space) (struct inode *, qsize_t);
8329 int (*free_inode) (const struct inode *, unsigned long);
8330 int (*transfer) (struct inode *, struct iattr *);
8331 int (*write_dquot) (struct dquot *);
8332 int (*acquire_dquot) (struct dquot *);
8333 int (*release_dquot) (struct dquot *);
8334 int (*mark_dirty) (struct dquot *);
8335 int (*write_info) (struct super_block *, int);
8339 struct quotactl_ops {
8340 int (*quota_on)(struct super_block *, int, int, char *, int);
8341 int (*quota_off)(struct super_block *, int, int);
8342 int (*quota_sync)(struct super_block *, int);
8343 int (*get_info)(struct super_block *, int, struct if_dqinfo *);
8344 int (*set_info)(struct super_block *, int, struct if_dqinfo *);
8345 int (*get_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
8346 int (*set_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
8347 int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
8348 int (*set_xstate)(struct super_block *, unsigned int, int);
8349 int (*get_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
8350 int (*set_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
8353 struct quota_format_type {
8355 struct quota_format_ops *qf_ops;
8356 struct module *qf_owner;
8357 struct quota_format_type *qf_next;
8359 # 330 "include/linux/quota.h"
8362 struct mutex dqio_mutex;
8363 struct mutex dqonoff_mutex;
8364 struct rw_semaphore dqptr_sem;
8365 struct inode *files[2];
8366 struct mem_dqinfo info[2];
8367 struct quota_format_ops *ops[2];
8370 int register_quota_format(struct quota_format_type *fmt);
8371 void unregister_quota_format(struct quota_format_type *fmt);
8373 struct quota_module_name {
8377 # 383 "include/linux/fs.h" 2
8378 # 410 "include/linux/fs.h"
8379 enum positive_aop_returns {
8380 AOP_WRITEPAGE_ACTIVATE = 0x80000,
8381 AOP_TRUNCATED_PAGE = 0x80001,
8391 struct address_space;
8392 struct writeback_control;
8395 const struct iovec *iov;
8396 unsigned long nr_segs;
8401 size_t iov_iter_copy_from_user_atomic(struct page *page,
8402 struct iov_iter *i, unsigned long offset, size_t bytes);
8403 size_t iov_iter_copy_from_user(struct page *page,
8404 struct iov_iter *i, unsigned long offset, size_t bytes);
8405 void iov_iter_advance(struct iov_iter *i, size_t bytes);
8406 int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes);
8407 size_t iov_iter_single_seg_count(struct iov_iter *i);
8409 static inline __attribute__((always_inline)) void iov_iter_init(struct iov_iter *i,
8410 const struct iovec *iov, unsigned long nr_segs,
8411 size_t count, size_t written)
8414 i->nr_segs = nr_segs;
8416 i->count = count + written;
8418 iov_iter_advance(i, written);
8421 static inline __attribute__((always_inline)) size_t iov_iter_count(struct iov_iter *i)
8425 # 466 "include/linux/fs.h"
8434 } read_descriptor_t;
8436 typedef int (*read_actor_t)(read_descriptor_t *, struct page *,
8437 unsigned long, unsigned long);
8439 struct address_space_operations {
8440 int (*writepage)(struct page *page, struct writeback_control *wbc);
8441 int (*readpage)(struct file *, struct page *);
8442 void (*sync_page)(struct page *);
8445 int (*writepages)(struct address_space *, struct writeback_control *);
8448 int (*set_page_dirty)(struct page *page);
8450 int (*readpages)(struct file *filp, struct address_space *mapping,
8451 struct list_head *pages, unsigned nr_pages);
8453 int (*write_begin)(struct file *, struct address_space *mapping,
8454 loff_t pos, unsigned len, unsigned flags,
8455 struct page **pagep, void **fsdata);
8456 int (*write_end)(struct file *, struct address_space *mapping,
8457 loff_t pos, unsigned len, unsigned copied,
8458 struct page *page, void *fsdata);
8461 sector_t (*bmap)(struct address_space *, sector_t);
8462 void (*invalidatepage) (struct page *, unsigned long);
8463 int (*releasepage) (struct page *, gfp_t);
8464 ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
8465 loff_t offset, unsigned long nr_segs);
8466 int (*get_xip_mem)(struct address_space *, unsigned long, int,
8467 void **, unsigned long *);
8469 int (*migratepage) (struct address_space *,
8470 struct page *, struct page *);
8471 int (*launder_page) (struct page *);
8472 int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
8480 int pagecache_write_begin(struct file *, struct address_space *mapping,
8481 loff_t pos, unsigned len, unsigned flags,
8482 struct page **pagep, void **fsdata);
8484 int pagecache_write_end(struct file *, struct address_space *mapping,
8485 loff_t pos, unsigned len, unsigned copied,
8486 struct page *page, void *fsdata);
8488 struct backing_dev_info;
8489 struct address_space {
8491 struct radix_tree_root page_tree;
8492 spinlock_t tree_lock;
8493 unsigned int i_mmap_writable;
8494 struct prio_tree_root i_mmap;
8495 struct list_head i_mmap_nonlinear;
8496 spinlock_t i_mmap_lock;
8497 unsigned int truncate_count;
8498 unsigned long nrpages;
8499 unsigned long writeback_index;
8500 const struct address_space_operations *a_ops;
8501 unsigned long flags;
8502 struct backing_dev_info *backing_dev_info;
8503 spinlock_t private_lock;
8504 struct list_head private_list;
8505 struct address_space *assoc_mapping;
8506 } __attribute__((aligned(sizeof(long))));
8513 struct block_device {
8515 struct inode * bd_inode;
8517 struct mutex bd_mutex;
8518 struct semaphore bd_mount_sem;
8519 struct list_head bd_inodes;
8525 struct block_device * bd_contains;
8526 unsigned bd_block_size;
8527 struct hd_struct * bd_part;
8529 unsigned bd_part_count;
8531 struct gendisk * bd_disk;
8532 struct list_head bd_list;
8533 struct backing_dev_info *bd_inode_backing_dev_info;
8540 unsigned long bd_private;
8542 # 590 "include/linux/fs.h"
8543 int mapping_tagged(struct address_space *mapping, int tag);
8548 static inline __attribute__((always_inline)) int mapping_mapped(struct address_space *mapping)
8550 return !prio_tree_empty(&mapping->i_mmap) ||
8551 !list_empty(&mapping->i_mmap_nonlinear);
8560 static inline __attribute__((always_inline)) int mapping_writably_mapped(struct address_space *mapping)
8562 return mapping->i_mmap_writable != 0;
8564 # 623 "include/linux/fs.h"
8566 struct hlist_node i_hash;
8567 struct list_head i_list;
8568 struct list_head i_sb_list;
8569 struct list_head i_dentry;
8570 unsigned long i_ino;
8572 unsigned int i_nlink;
8581 struct timespec i_atime;
8582 struct timespec i_mtime;
8583 struct timespec i_ctime;
8584 unsigned int i_blkbits;
8586 unsigned short i_bytes;
8589 struct mutex i_mutex;
8590 struct rw_semaphore i_alloc_sem;
8591 const struct inode_operations *i_op;
8592 const struct file_operations *i_fop;
8593 struct super_block *i_sb;
8594 struct file_lock *i_flock;
8595 struct address_space *i_mapping;
8596 struct address_space i_data;
8598 struct dquot *i_dquot[2];
8600 struct list_head i_devices;
8602 struct pipe_inode_info *i_pipe;
8603 struct block_device *i_bdev;
8604 struct cdev *i_cdev;
8611 unsigned long i_dnotify_mask;
8612 struct dnotify_struct *i_dnotify;
8616 struct list_head inotify_watches;
8617 struct mutex inotify_mutex;
8620 unsigned long i_state;
8621 unsigned long dirtied_when;
8623 unsigned int i_flags;
8625 atomic_t i_writecount;
8631 # 701 "include/linux/fs.h"
8632 enum inode_i_mutex_lock_class
8641 extern void inode_double_lock(struct inode *inode1, struct inode *inode2);
8642 extern void inode_double_unlock(struct inode *inode1, struct inode *inode2);
8643 # 723 "include/linux/fs.h"
8644 static inline __attribute__((always_inline)) loff_t i_size_read(const struct inode *inode)
8646 # 742 "include/linux/fs.h"
8647 return inode->i_size;
8656 static inline __attribute__((always_inline)) void i_size_write(struct inode *inode, loff_t i_size)
8658 # 762 "include/linux/fs.h"
8659 inode->i_size = i_size;
8663 static inline __attribute__((always_inline)) unsigned iminor(const struct inode *inode)
8665 return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1)));
8668 static inline __attribute__((always_inline)) unsigned imajor(const struct inode *inode)
8670 return ((unsigned int) ((inode->i_rdev) >> 20));
8673 extern struct block_device *I_BDEV(struct inode *inode);
8675 struct fown_struct {
8678 enum pid_type pid_type;
8686 struct file_ra_state {
8687 unsigned long start;
8689 unsigned int async_size;
8692 unsigned int ra_pages;
8700 static inline __attribute__((always_inline)) int ra_has_index(struct file_ra_state *ra, unsigned long index)
8702 return (index >= ra->start &&
8703 index < ra->start + ra->size);
8715 struct list_head fu_list;
8716 struct rcu_head fu_rcuhead;
8721 const struct file_operations *f_op;
8722 atomic_long_t f_count;
8723 unsigned int f_flags;
8726 struct fown_struct f_owner;
8727 unsigned int f_uid, f_gid;
8728 struct file_ra_state f_ra;
8739 struct list_head f_ep_links;
8740 spinlock_t f_ep_lock;
8742 struct address_space *f_mapping;
8744 unsigned long f_mnt_write_state;
8747 extern spinlock_t files_lock;
8755 static inline __attribute__((always_inline)) void file_take_write(struct file *f)
8757 ({ int __ret_warn_on = !!(f->f_mnt_write_state != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("include/linux/fs.h", 860); __builtin_expect(!!(__ret_warn_on), 0); });
8758 f->f_mnt_write_state = 1;
8760 static inline __attribute__((always_inline)) void file_release_write(struct file *f)
8762 f->f_mnt_write_state |= 2;
8764 static inline __attribute__((always_inline)) void file_reset_write(struct file *f)
8766 f->f_mnt_write_state = 0;
8768 static inline __attribute__((always_inline)) void file_check_state(struct file *f)
8774 ({ int __ret_warn_on = !!(f->f_mnt_write_state == 1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("include/linux/fs.h", 877); __builtin_expect(!!(__ret_warn_on), 0); });
8775 ({ int __ret_warn_on = !!(f->f_mnt_write_state == 2); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("include/linux/fs.h", 878); __builtin_expect(!!(__ret_warn_on), 0); });
8777 static inline __attribute__((always_inline)) int file_check_writeable(struct file *f)
8779 if (f->f_mnt_write_state == 1)
8781 printk("<4>" "writeable file with no "
8782 "mnt_want_write()\n");
8783 ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("include/linux/fs.h", 886); __builtin_expect(!!(__ret_warn_on), 0); });
8786 # 931 "include/linux/fs.h"
8787 typedef struct files_struct *fl_owner_t;
8789 struct file_lock_operations {
8790 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
8791 void (*fl_release_private)(struct file_lock *);
8794 struct lock_manager_operations {
8795 int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
8796 void (*fl_notify)(struct file_lock *);
8797 int (*fl_grant)(struct file_lock *, struct file_lock *, int);
8798 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
8799 void (*fl_release_private)(struct file_lock *);
8800 void (*fl_break)(struct file_lock *);
8801 int (*fl_mylease)(struct file_lock *, struct file_lock *);
8802 int (*fl_change)(struct file_lock **, int);
8805 struct lock_manager {
8806 struct list_head list;
8809 void locks_start_grace(struct lock_manager *);
8810 void locks_end_grace(struct lock_manager *);
8811 int locks_in_grace(void);
8814 # 1 "include/linux/nfs_fs_i.h" 1
8820 # 1 "include/linux/nfs.h" 1
8821 # 39 "include/linux/nfs.h"
8840 NFSERR_OPNOTSUPP = 45,
8841 NFSERR_NAMETOOLONG = 63,
8842 NFSERR_NOTEMPTY = 66,
8847 NFSERR_BADHANDLE = 10001,
8848 NFSERR_NOT_SYNC = 10002,
8849 NFSERR_BAD_COOKIE = 10003,
8850 NFSERR_NOTSUPP = 10004,
8851 NFSERR_TOOSMALL = 10005,
8852 NFSERR_SERVERFAULT = 10006,
8853 NFSERR_BADTYPE = 10007,
8854 NFSERR_JUKEBOX = 10008,
8855 NFSERR_SAME = 10009,
8856 NFSERR_DENIED = 10010,
8857 NFSERR_EXPIRED = 10011,
8858 NFSERR_LOCKED = 10012,
8859 NFSERR_GRACE = 10013,
8860 NFSERR_FHEXPIRED = 10014,
8861 NFSERR_SHARE_DENIED = 10015,
8862 NFSERR_WRONGSEC = 10016,
8863 NFSERR_CLID_INUSE = 10017,
8864 NFSERR_RESOURCE = 10018,
8865 NFSERR_MOVED = 10019,
8866 NFSERR_NOFILEHANDLE = 10020,
8867 NFSERR_MINOR_VERS_MISMATCH = 10021,
8868 NFSERR_STALE_CLIENTID = 10022,
8869 NFSERR_STALE_STATEID = 10023,
8870 NFSERR_OLD_STATEID = 10024,
8871 NFSERR_BAD_STATEID = 10025,
8872 NFSERR_BAD_SEQID = 10026,
8873 NFSERR_NOT_SAME = 10027,
8874 NFSERR_LOCK_RANGE = 10028,
8875 NFSERR_SYMLINK = 10029,
8876 NFSERR_RESTOREFH = 10030,
8877 NFSERR_LEASE_MOVED = 10031,
8878 NFSERR_ATTRNOTSUPP = 10032,
8879 NFSERR_NO_GRACE = 10033,
8880 NFSERR_RECLAIM_BAD = 10034,
8881 NFSERR_RECLAIM_CONFLICT = 10035,
8882 NFSERR_BAD_XDR = 10036,
8883 NFSERR_LOCKS_HELD = 10037,
8884 NFSERR_OPENMODE = 10038,
8885 NFSERR_BADOWNER = 10039,
8886 NFSERR_BADCHAR = 10040,
8887 NFSERR_BADNAME = 10041,
8888 NFSERR_BAD_RANGE = 10042,
8889 NFSERR_LOCK_NOTSUPP = 10043,
8890 NFSERR_OP_ILLEGAL = 10044,
8891 NFSERR_DEADLOCK = 10045,
8892 NFSERR_FILE_OPEN = 10046,
8893 NFSERR_ADMIN_REVOKED = 10047,
8894 NFSERR_CB_PATH_DOWN = 10048,
8895 NFSERR_REPLAY_ME = 10049
8913 # 1 "include/linux/sunrpc/msg_prot.h" 1
8914 # 18 "include/linux/sunrpc/msg_prot.h"
8915 typedef u32 rpc_authflavor_t;
8917 enum rpc_auth_flavors {
8924 RPC_AUTH_MAXFLAVOR = 8,
8926 RPC_AUTH_GSS_KRB5 = 390003,
8927 RPC_AUTH_GSS_KRB5I = 390004,
8928 RPC_AUTH_GSS_KRB5P = 390005,
8929 RPC_AUTH_GSS_LKEY = 390006,
8930 RPC_AUTH_GSS_LKEYI = 390007,
8931 RPC_AUTH_GSS_LKEYP = 390008,
8932 RPC_AUTH_GSS_SPKM = 390009,
8933 RPC_AUTH_GSS_SPKMI = 390010,
8934 RPC_AUTH_GSS_SPKMP = 390011,
8945 enum rpc_reply_stat {
8946 RPC_MSG_ACCEPTED = 0,
8950 enum rpc_accept_stat {
8952 RPC_PROG_UNAVAIL = 1,
8953 RPC_PROG_MISMATCH = 2,
8954 RPC_PROC_UNAVAIL = 3,
8955 RPC_GARBAGE_ARGS = 4,
8958 RPC_DROP_REPLY = 60000,
8961 enum rpc_reject_stat {
8966 enum rpc_auth_stat {
8968 RPC_AUTH_BADCRED = 1,
8969 RPC_AUTH_REJECTEDCRED = 2,
8970 RPC_AUTH_BADVERF = 3,
8971 RPC_AUTH_REJECTEDVERF = 4,
8972 RPC_AUTH_TOOWEAK = 5,
8974 RPCSEC_GSS_CREDPROBLEM = 13,
8975 RPCSEC_GSS_CTXPROBLEM = 14
8977 # 102 "include/linux/sunrpc/msg_prot.h"
8978 typedef __be32 rpc_fraghdr;
8979 # 131 "include/linux/nfs.h" 2
8987 unsigned short size;
8988 unsigned char data[128];
8995 static inline __attribute__((always_inline)) int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
8997 return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
9000 static inline __attribute__((always_inline)) void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
9002 target->size = source->size;
9003 memcpy(target->data, source->data, source->size);
9005 # 165 "include/linux/nfs.h"
9006 enum nfs3_stable_how {
9011 # 7 "include/linux/nfs_fs_i.h" 2
9013 struct nlm_lockowner;
9018 struct nfs_lock_info {
9020 struct nlm_lockowner *owner;
9021 struct list_head list;
9024 struct nfs4_lock_state;
9025 struct nfs4_lock_info {
9026 struct nfs4_lock_state *owner;
9028 # 959 "include/linux/fs.h" 2
9031 struct file_lock *fl_next;
9032 struct list_head fl_link;
9033 struct list_head fl_block;
9034 fl_owner_t fl_owner;
9035 unsigned char fl_flags;
9036 unsigned char fl_type;
9037 unsigned int fl_pid;
9038 struct pid *fl_nspid;
9039 wait_queue_head_t fl_wait;
9040 struct file *fl_file;
9044 struct fasync_struct * fl_fasync;
9045 unsigned long fl_break_time;
9047 struct file_lock_operations *fl_ops;
9048 struct lock_manager_operations *fl_lmops;
9050 struct nfs_lock_info nfs_fl;
9051 struct nfs4_lock_info nfs4_fl;
9053 struct list_head link;
9058 # 996 "include/linux/fs.h"
9059 # 1 "include/linux/fcntl.h" 1
9063 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h" 1
9064 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h"
9065 # 1 "include/asm-generic/fcntl.h" 1
9066 # 117 "include/asm-generic/fcntl.h"
9075 # 140 "include/asm-generic/fcntl.h"
9084 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h" 2
9085 # 5 "include/linux/fcntl.h" 2
9086 # 997 "include/linux/fs.h" 2
9088 extern void send_sigio(struct fown_struct *fown, int fd, int band);
9091 extern int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
9092 loff_t endbyte, unsigned int flags);
9095 extern int fcntl_getlk(struct file *, struct flock *);
9096 extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
9100 extern int fcntl_getlk64(struct file *, struct flock64 *);
9101 extern int fcntl_setlk64(unsigned int, struct file *, unsigned int,
9105 extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
9106 extern int fcntl_getlease(struct file *filp);
9109 extern void locks_init_lock(struct file_lock *);
9110 extern void locks_copy_lock(struct file_lock *, struct file_lock *);
9111 extern void __locks_copy_lock(struct file_lock *, const struct file_lock *);
9112 extern void locks_remove_posix(struct file *, fl_owner_t);
9113 extern void locks_remove_flock(struct file *);
9114 extern void posix_test_lock(struct file *, struct file_lock *);
9115 extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *);
9116 extern int posix_lock_file_wait(struct file *, struct file_lock *);
9117 extern int posix_unblock_lock(struct file *, struct file_lock *);
9118 extern int vfs_test_lock(struct file *, struct file_lock *);
9119 extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *);
9120 extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl);
9121 extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl);
9122 extern int __break_lease(struct inode *inode, unsigned int flags);
9123 extern void lease_get_mtime(struct inode *, struct timespec *time);
9124 extern int generic_setlease(struct file *, long, struct file_lock **);
9125 extern int vfs_setlease(struct file *, long, struct file_lock **);
9126 extern int lease_modify(struct file_lock **, int);
9127 extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
9128 extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
9129 # 1071 "include/linux/fs.h"
9130 struct fasync_struct {
9133 struct fasync_struct *fa_next;
9134 struct file *fa_file;
9140 extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
9142 extern void kill_fasync(struct fasync_struct **, int, int);
9144 extern void __kill_fasync(struct fasync_struct *, int, int);
9146 extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
9147 extern int f_setown(struct file *filp, unsigned long arg, int force);
9148 extern void f_delown(struct file *filp);
9149 extern pid_t f_getown(struct file *filp);
9150 extern int send_sigurg(struct fown_struct *fown);
9151 # 1101 "include/linux/fs.h"
9152 extern struct list_head super_blocks;
9153 extern spinlock_t sb_lock;
9157 struct super_block {
9158 struct list_head s_list;
9160 unsigned long s_blocksize;
9161 unsigned char s_blocksize_bits;
9162 unsigned char s_dirt;
9163 unsigned long long s_maxbytes;
9164 struct file_system_type *s_type;
9165 const struct super_operations *s_op;
9166 struct dquot_operations *dq_op;
9167 struct quotactl_ops *s_qcop;
9168 const struct export_operations *s_export_op;
9169 unsigned long s_flags;
9170 unsigned long s_magic;
9171 struct dentry *s_root;
9172 struct rw_semaphore s_umount;
9173 struct mutex s_lock;
9181 struct xattr_handler **s_xattr;
9183 struct list_head s_inodes;
9184 struct list_head s_dirty;
9185 struct list_head s_io;
9186 struct list_head s_more_io;
9187 struct hlist_head s_anon;
9188 struct list_head s_files;
9190 struct list_head s_dentry_lru;
9191 int s_nr_dentry_unused;
9193 struct block_device *s_bdev;
9194 struct mtd_info *s_mtd;
9195 struct list_head s_instances;
9196 struct quota_info s_dquot;
9199 wait_queue_head_t s_wait_unfrozen;
9210 struct mutex s_vfs_rename_mutex;
9229 extern struct timespec current_fs_time(struct super_block *sb);
9236 SB_FREEZE_WRITE = 1,
9237 SB_FREEZE_TRANS = 2,
9239 # 1200 "include/linux/fs.h"
9240 extern void lock_super(struct super_block *);
9241 extern void unlock_super(struct super_block *);
9246 extern int vfs_permission(struct nameidata *, int);
9247 extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
9248 extern int vfs_mkdir(struct inode *, struct dentry *, int);
9249 extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
9250 extern int vfs_symlink(struct inode *, struct dentry *, const char *);
9251 extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
9252 extern int vfs_rmdir(struct inode *, struct dentry *);
9253 extern int vfs_unlink(struct inode *, struct dentry *);
9254 extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
9259 extern void dentry_unhash(struct dentry *dentry);
9264 extern int file_permission(struct file *, int);
9269 struct fiemap_extent_info {
9270 unsigned int fi_flags;
9271 unsigned int fi_extents_mapped;
9272 unsigned int fi_extents_max;
9273 struct fiemap_extent *fi_extents_start;
9276 int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical,
9277 u64 phys, u64 len, u32 flags);
9278 int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags);
9279 # 1259 "include/linux/fs.h"
9280 int generic_osync_inode(struct inode *, struct address_space *, int);
9288 typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned);
9289 struct block_device_operations;
9290 # 1281 "include/linux/fs.h"
9291 struct file_operations {
9292 struct module *owner;
9293 loff_t (*llseek) (struct file *, loff_t, int);
9294 ssize_t (*read) (struct file *, char *, size_t, loff_t *);
9295 ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
9296 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
9297 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
9298 int (*readdir) (struct file *, void *, filldir_t);
9299 unsigned int (*poll) (struct file *, struct poll_table_struct *);
9300 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
9301 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
9302 long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
9303 int (*mmap) (struct file *, struct vm_area_struct *);
9304 int (*open) (struct inode *, struct file *);
9305 int (*flush) (struct file *, fl_owner_t id);
9306 int (*release) (struct inode *, struct file *);
9307 int (*fsync) (struct file *, struct dentry *, int datasync);
9308 int (*aio_fsync) (struct kiocb *, int datasync);
9309 int (*fasync) (int, struct file *, int);
9310 int (*lock) (struct file *, int, struct file_lock *);
9311 ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
9312 unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
9313 int (*check_flags)(int);
9314 int (*dir_notify)(struct file *filp, unsigned long arg);
9315 int (*flock) (struct file *, int, struct file_lock *);
9316 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
9317 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
9318 int (*setlease)(struct file *, long, struct file_lock **);
9321 struct inode_operations {
9322 int (*create) (struct inode *,struct dentry *,int, struct nameidata *);
9323 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
9324 int (*link) (struct dentry *,struct inode *,struct dentry *);
9325 int (*unlink) (struct inode *,struct dentry *);
9326 int (*symlink) (struct inode *,struct dentry *,const char *);
9327 int (*mkdir) (struct inode *,struct dentry *,int);
9328 int (*rmdir) (struct inode *,struct dentry *);
9329 int (*mknod) (struct inode *,struct dentry *,int,dev_t);
9330 int (*rename) (struct inode *, struct dentry *,
9331 struct inode *, struct dentry *);
9332 int (*readlink) (struct dentry *, char *,int);
9333 void * (*follow_link) (struct dentry *, struct nameidata *);
9334 void (*put_link) (struct dentry *, struct nameidata *, void *);
9335 void (*truncate) (struct inode *);
9336 int (*permission) (struct inode *, int);
9337 int (*setattr) (struct dentry *, struct iattr *);
9338 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
9339 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
9340 ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
9341 ssize_t (*listxattr) (struct dentry *, char *, size_t);
9342 int (*removexattr) (struct dentry *, const char *);
9343 void (*truncate_range)(struct inode *, loff_t, loff_t);
9344 long (*fallocate)(struct inode *inode, int mode, loff_t offset,
9346 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
9352 ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector,
9353 unsigned long nr_segs, unsigned long fast_segs,
9354 struct iovec *fast_pointer,
9355 struct iovec **ret_pointer);
9357 extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *);
9358 extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *);
9359 extern ssize_t vfs_readv(struct file *, const struct iovec *,
9360 unsigned long, loff_t *);
9361 extern ssize_t vfs_writev(struct file *, const struct iovec *,
9362 unsigned long, loff_t *);
9364 struct super_operations {
9365 struct inode *(*alloc_inode)(struct super_block *sb);
9366 void (*destroy_inode)(struct inode *);
9368 void (*dirty_inode) (struct inode *);
9369 int (*write_inode) (struct inode *, int);
9370 void (*drop_inode) (struct inode *);
9371 void (*delete_inode) (struct inode *);
9372 void (*put_super) (struct super_block *);
9373 void (*write_super) (struct super_block *);
9374 int (*sync_fs)(struct super_block *sb, int wait);
9375 void (*write_super_lockfs) (struct super_block *);
9376 void (*unlockfs) (struct super_block *);
9377 int (*statfs) (struct dentry *, struct kstatfs *);
9378 int (*remount_fs) (struct super_block *, int *, char *);
9379 void (*clear_inode) (struct inode *);
9380 void (*umount_begin) (struct super_block *);
9382 int (*show_options)(struct seq_file *, struct vfsmount *);
9383 int (*show_stats)(struct seq_file *, struct vfsmount *);
9385 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
9386 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
9389 # 1447 "include/linux/fs.h"
9390 extern void __mark_inode_dirty(struct inode *, int);
9391 static inline __attribute__((always_inline)) void mark_inode_dirty(struct inode *inode)
9393 __mark_inode_dirty(inode, (1 | 2 | 4));
9396 static inline __attribute__((always_inline)) void mark_inode_dirty_sync(struct inode *inode)
9398 __mark_inode_dirty(inode, 1);
9400 # 1466 "include/linux/fs.h"
9401 static inline __attribute__((always_inline)) void inc_nlink(struct inode *inode)
9406 static inline __attribute__((always_inline)) void inode_inc_link_count(struct inode *inode)
9409 mark_inode_dirty(inode);
9411 # 1488 "include/linux/fs.h"
9412 static inline __attribute__((always_inline)) void drop_nlink(struct inode *inode)
9416 # 1501 "include/linux/fs.h"
9417 static inline __attribute__((always_inline)) void clear_nlink(struct inode *inode)
9422 static inline __attribute__((always_inline)) void inode_dec_link_count(struct inode *inode)
9425 mark_inode_dirty(inode);
9427 # 1520 "include/linux/fs.h"
9428 static inline __attribute__((always_inline)) void inode_inc_iversion(struct inode *inode)
9430 _spin_lock(&inode->i_lock);
9432 _spin_unlock(&inode->i_lock);
9435 extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry);
9436 static inline __attribute__((always_inline)) void file_accessed(struct file *file)
9438 if (!(file->f_flags & 01000000))
9439 touch_atime(file->f_path.mnt, file->f_path.dentry);
9442 int sync_inode(struct inode *inode, struct writeback_control *wbc);
9444 struct file_system_type {
9447 int (*get_sb) (struct file_system_type *, int,
9448 const char *, void *, struct vfsmount *);
9449 void (*kill_sb) (struct super_block *);
9450 struct module *owner;
9451 struct file_system_type * next;
9452 struct list_head fs_supers;
9454 struct lock_class_key s_lock_key;
9455 struct lock_class_key s_umount_key;
9457 struct lock_class_key i_lock_key;
9458 struct lock_class_key i_mutex_key;
9459 struct lock_class_key i_mutex_dir_key;
9460 struct lock_class_key i_alloc_sem_key;
9463 extern int get_sb_bdev(struct file_system_type *fs_type,
9464 int flags, const char *dev_name, void *data,
9465 int (*fill_super)(struct super_block *, void *, int),
9466 struct vfsmount *mnt);
9467 extern int get_sb_single(struct file_system_type *fs_type,
9468 int flags, void *data,
9469 int (*fill_super)(struct super_block *, void *, int),
9470 struct vfsmount *mnt);
9471 extern int get_sb_nodev(struct file_system_type *fs_type,
9472 int flags, void *data,
9473 int (*fill_super)(struct super_block *, void *, int),
9474 struct vfsmount *mnt);
9475 void generic_shutdown_super(struct super_block *sb);
9476 void kill_block_super(struct super_block *sb);
9477 void kill_anon_super(struct super_block *sb);
9478 void kill_litter_super(struct super_block *sb);
9479 void deactivate_super(struct super_block *sb);
9480 int set_anon_super(struct super_block *s, void *data);
9481 struct super_block *sget(struct file_system_type *type,
9482 int (*test)(struct super_block *,void *),
9483 int (*set)(struct super_block *,void *),
9485 extern int get_sb_pseudo(struct file_system_type *, char *,
9486 const struct super_operations *ops, unsigned long,
9487 struct vfsmount *mnt);
9488 extern int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
9489 int __put_super_and_need_restart(struct super_block *sb);
9497 extern int register_filesystem(struct file_system_type *);
9498 extern int unregister_filesystem(struct file_system_type *);
9499 extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data);
9501 extern int may_umount_tree(struct vfsmount *);
9502 extern int may_umount(struct vfsmount *);
9503 extern long do_mount(char *, char *, char *, unsigned long, void *);
9504 extern struct vfsmount *collect_mounts(struct vfsmount *, struct dentry *);
9505 extern void drop_collected_mounts(struct vfsmount *);
9507 extern int vfs_statfs(struct dentry *, struct kstatfs *);
9510 extern struct kobject *fs_kobj;
9512 extern int rw_verify_area(int, struct file *, loff_t *, size_t);
9518 extern int locks_mandatory_locked(struct inode *);
9519 extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
9526 static inline __attribute__((always_inline)) int __mandatory_lock(struct inode *ino)
9528 return (ino->i_mode & (0002000 | 00010)) == 0002000;
9536 static inline __attribute__((always_inline)) int mandatory_lock(struct inode *ino)
9538 return ((ino)->i_sb->s_flags & (64)) && __mandatory_lock(ino);
9541 static inline __attribute__((always_inline)) int locks_verify_locked(struct inode *inode)
9543 if (mandatory_lock(inode))
9544 return locks_mandatory_locked(inode);
9548 static inline __attribute__((always_inline)) int locks_verify_truncate(struct inode *inode,
9552 if (inode->i_flock && mandatory_lock(inode))
9553 return locks_mandatory_area(
9555 size < inode->i_size ? size : inode->i_size,
9556 (size < inode->i_size ? inode->i_size - size
9557 : size - inode->i_size)
9562 static inline __attribute__((always_inline)) int break_lease(struct inode *inode, unsigned int mode)
9565 return __break_lease(inode, mode);
9568 # 1672 "include/linux/fs.h"
9569 extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs,
9571 extern long do_sys_open(int dfd, const char *filename, int flags,
9573 extern struct file *filp_open(const char *, int, int);
9574 extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
9575 extern int filp_close(struct file *, fl_owner_t id);
9576 extern char * getname(const char *);
9579 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init_early(void);
9580 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init(unsigned long);
9582 extern struct kmem_cache *names_cachep;
9583 # 1696 "include/linux/fs.h"
9584 extern int register_blkdev(unsigned int, const char *);
9585 extern void unregister_blkdev(unsigned int, const char *);
9586 extern struct block_device *bdget(dev_t);
9587 extern void bd_set_size(struct block_device *, loff_t size);
9588 extern void bd_forget(struct inode *inode);
9589 extern void bdput(struct block_device *);
9590 extern struct block_device *open_by_devnum(dev_t, fmode_t);
9594 extern const struct file_operations def_blk_fops;
9595 extern const struct file_operations def_chr_fops;
9596 extern const struct file_operations bad_sock_fops;
9597 extern const struct file_operations def_fifo_fops;
9599 extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);
9600 extern int blkdev_ioctl(struct block_device *, fmode_t, unsigned, unsigned long);
9601 extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long);
9602 extern int blkdev_get(struct block_device *, fmode_t);
9603 extern int blkdev_put(struct block_device *, fmode_t);
9604 extern int bd_claim(struct block_device *, void *);
9605 extern void bd_release(struct block_device *);
9606 # 1729 "include/linux/fs.h"
9607 extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
9608 extern int register_chrdev_region(dev_t, unsigned, const char *);
9609 extern int register_chrdev(unsigned int, const char *,
9610 const struct file_operations *);
9611 extern void unregister_chrdev(unsigned int, const char *);
9612 extern void unregister_chrdev_region(dev_t, unsigned);
9613 extern void chrdev_show(struct seq_file *,off_t);
9621 extern const char *__bdevname(dev_t, char *buffer);
9622 extern const char *bdevname(struct block_device *bdev, char *buffer);
9623 extern struct block_device *lookup_bdev(const char *);
9624 extern struct block_device *open_bdev_exclusive(const char *, fmode_t, void *);
9625 extern void close_bdev_exclusive(struct block_device *, fmode_t);
9626 extern void blkdev_show(struct seq_file *,off_t);
9632 extern void init_special_inode(struct inode *, umode_t, dev_t);
9635 extern void make_bad_inode(struct inode *);
9636 extern int is_bad_inode(struct inode *);
9638 extern const struct file_operations read_pipefifo_fops;
9639 extern const struct file_operations write_pipefifo_fops;
9640 extern const struct file_operations rdwr_pipefifo_fops;
9642 extern int fs_may_remount_ro(struct super_block *);
9643 # 1777 "include/linux/fs.h"
9644 extern void check_disk_size_change(struct gendisk *disk,
9645 struct block_device *bdev);
9646 extern int revalidate_disk(struct gendisk *);
9647 extern int check_disk_change(struct block_device *);
9648 extern int __invalidate_device(struct block_device *);
9649 extern int invalidate_partition(struct gendisk *, int);
9651 extern int invalidate_inodes(struct super_block *);
9652 unsigned long __invalidate_mapping_pages(struct address_space *mapping,
9653 unsigned long start, unsigned long end,
9655 unsigned long invalidate_mapping_pages(struct address_space *mapping,
9656 unsigned long start, unsigned long end);
9658 static inline __attribute__((always_inline)) unsigned long __attribute__((deprecated))
9659 invalidate_inode_pages(struct address_space *mapping)
9661 return invalidate_mapping_pages(mapping, 0, ~0UL);
9664 static inline __attribute__((always_inline)) void invalidate_remote_inode(struct inode *inode)
9666 if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) ||
9667 (((inode->i_mode) & 00170000) == 0120000))
9668 invalidate_mapping_pages(inode->i_mapping, 0, -1);
9670 extern int invalidate_inode_pages2(struct address_space *mapping);
9671 extern int invalidate_inode_pages2_range(struct address_space *mapping,
9672 unsigned long start, unsigned long end);
9673 extern void generic_sync_sb_inodes(struct super_block *sb,
9674 struct writeback_control *wbc);
9675 extern int write_inode_now(struct inode *, int);
9676 extern int filemap_fdatawrite(struct address_space *);
9677 extern int filemap_flush(struct address_space *);
9678 extern int filemap_fdatawait(struct address_space *);
9679 extern int filemap_write_and_wait(struct address_space *mapping);
9680 extern int filemap_write_and_wait_range(struct address_space *mapping,
9681 loff_t lstart, loff_t lend);
9682 extern int wait_on_page_writeback_range(struct address_space *mapping,
9683 unsigned long start, unsigned long end);
9684 extern int __filemap_fdatawrite_range(struct address_space *mapping,
9685 loff_t start, loff_t end, int sync_mode);
9686 extern int filemap_fdatawrite_range(struct address_space *mapping,
9687 loff_t start, loff_t end);
9689 extern long do_fsync(struct file *file, int datasync);
9690 extern void sync_supers(void);
9691 extern void sync_filesystems(int wait);
9692 extern void __fsync_super(struct super_block *sb);
9693 extern void emergency_sync(void);
9694 extern void emergency_remount(void);
9695 extern int do_remount_sb(struct super_block *sb, int flags,
9696 void *data, int force);
9698 extern sector_t bmap(struct inode *, sector_t);
9700 extern int notify_change(struct dentry *, struct iattr *);
9701 extern int inode_permission(struct inode *, int);
9702 extern int generic_permission(struct inode *, int,
9703 int (*check_acl)(struct inode *, int));
9705 static inline __attribute__((always_inline)) bool execute_ok(struct inode *inode)
9707 return (inode->i_mode & (00100|00010|00001)) || (((inode->i_mode) & 00170000) == 0040000);
9710 extern int get_write_access(struct inode *);
9711 extern int deny_write_access(struct file *);
9712 static inline __attribute__((always_inline)) void put_write_access(struct inode * inode)
9714 atomic_dec(&inode->i_writecount);
9716 static inline __attribute__((always_inline)) void allow_write_access(struct file *file)
9719 atomic_inc(&file->f_path.dentry->d_inode->i_writecount);
9721 extern int do_pipe(int *);
9722 extern int do_pipe_flags(int *, int);
9723 extern struct file *create_read_pipe(struct file *f, int flags);
9724 extern struct file *create_write_pipe(int flags);
9725 extern void free_write_pipe(struct file *);
9727 extern struct file *do_filp_open(int dfd, const char *pathname,
9728 int open_flag, int mode);
9729 extern int may_open(struct nameidata *, int, int);
9731 extern int kernel_read(struct file *, unsigned long, char *, unsigned long);
9732 extern struct file * open_exec(const char *);
9735 extern int is_subdir(struct dentry *, struct dentry *);
9736 extern ino_t find_inode_number(struct dentry *, struct qstr *);
9738 # 1 "include/linux/err.h" 1
9739 # 22 "include/linux/err.h"
9740 static inline __attribute__((always_inline)) void *ERR_PTR(long error)
9742 return (void *) error;
9745 static inline __attribute__((always_inline)) long PTR_ERR(const void *ptr)
9750 static inline __attribute__((always_inline)) long IS_ERR(const void *ptr)
9752 return __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0);
9754 # 44 "include/linux/err.h"
9755 static inline __attribute__((always_inline)) void *ERR_CAST(const void *ptr)
9758 return (void *) ptr;
9760 # 1872 "include/linux/fs.h" 2
9763 extern loff_t default_llseek(struct file *file, loff_t offset, int origin);
9765 extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin);
9767 extern void inode_init_once(struct inode *);
9768 extern void iput(struct inode *);
9769 extern struct inode * igrab(struct inode *);
9770 extern ino_t iunique(struct super_block *, ino_t);
9771 extern int inode_needs_sync(struct inode *inode);
9772 extern void generic_delete_inode(struct inode *inode);
9773 extern void generic_drop_inode(struct inode *inode);
9775 extern struct inode *ilookup5_nowait(struct super_block *sb,
9776 unsigned long hashval, int (*test)(struct inode *, void *),
9778 extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
9779 int (*test)(struct inode *, void *), void *data);
9780 extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
9782 extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *);
9783 extern struct inode * iget_locked(struct super_block *, unsigned long);
9784 extern void unlock_new_inode(struct inode *);
9786 extern void __iget(struct inode * inode);
9787 extern void iget_failed(struct inode *);
9788 extern void clear_inode(struct inode *);
9789 extern void destroy_inode(struct inode *);
9790 extern struct inode *new_inode(struct super_block *);
9791 extern int should_remove_suid(struct dentry *);
9792 extern int file_remove_suid(struct file *);
9794 extern void __insert_inode_hash(struct inode *, unsigned long hashval);
9795 extern void remove_inode_hash(struct inode *);
9796 static inline __attribute__((always_inline)) void insert_inode_hash(struct inode *inode) {
9797 __insert_inode_hash(inode, inode->i_ino);
9800 extern struct file * get_empty_filp(void);
9801 extern void file_move(struct file *f, struct list_head *list);
9802 extern void file_kill(struct file *f);
9805 extern void submit_bio(int, struct bio *);
9806 extern int bdev_read_only(struct block_device *);
9808 extern int set_blocksize(struct block_device *, int);
9809 extern int sb_set_blocksize(struct super_block *, int);
9810 extern int sb_min_blocksize(struct super_block *, int);
9811 extern int sb_has_dirty_inodes(struct super_block *);
9813 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
9814 extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
9815 extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
9816 int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk);
9817 extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t);
9818 extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t);
9819 extern ssize_t generic_file_aio_write_nolock(struct kiocb *, const struct iovec *,
9820 unsigned long, loff_t);
9821 extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *,
9822 unsigned long *, loff_t, loff_t *, size_t, size_t);
9823 extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *,
9824 unsigned long, loff_t, loff_t *, size_t, ssize_t);
9825 extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos);
9826 extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos);
9827 extern int generic_segment_checks(const struct iovec *iov,
9828 unsigned long *nr_segs, size_t *count, int access_flags);
9831 extern ssize_t generic_file_splice_read(struct file *, loff_t *,
9832 struct pipe_inode_info *, size_t, unsigned int);
9833 extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
9834 struct file *, loff_t *, size_t, unsigned int);
9835 extern ssize_t generic_file_splice_write_nolock(struct pipe_inode_info *,
9836 struct file *, loff_t *, size_t, unsigned int);
9837 extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
9838 struct file *out, loff_t *, size_t len, unsigned int flags);
9839 extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
9840 size_t len, unsigned int flags);
9843 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
9844 extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
9845 extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin);
9846 extern loff_t generic_file_llseek_unlocked(struct file *file, loff_t offset,
9848 extern int generic_file_open(struct inode * inode, struct file * filp);
9849 extern int nonseekable_open(struct inode * inode, struct file * filp);
9850 # 1970 "include/linux/fs.h"
9851 static inline __attribute__((always_inline)) int xip_truncate_page(struct address_space *mapping, loff_t from)
9858 ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
9859 struct block_device *bdev, const struct iovec *iov, loff_t offset,
9860 unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io,
9869 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb,
9870 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
9871 loff_t offset, unsigned long nr_segs, get_block_t get_block,
9872 dio_iodone_t end_io)
9874 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
9875 nr_segs, get_block, end_io, DIO_LOCKING);
9878 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb,
9879 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
9880 loff_t offset, unsigned long nr_segs, get_block_t get_block,
9881 dio_iodone_t end_io)
9883 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
9884 nr_segs, get_block, end_io, DIO_NO_LOCKING);
9887 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_own_locking(int rw, struct kiocb *iocb,
9888 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
9889 loff_t offset, unsigned long nr_segs, get_block_t get_block,
9890 dio_iodone_t end_io)
9892 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
9893 nr_segs, get_block, end_io, DIO_OWN_LOCKING);
9897 extern const struct file_operations generic_ro_fops;
9901 extern int vfs_readlink(struct dentry *, char *, int, const char *);
9902 extern int vfs_follow_link(struct nameidata *, const char *);
9903 extern int page_readlink(struct dentry *, char *, int);
9904 extern void *page_follow_link_light(struct dentry *, struct nameidata *);
9905 extern void page_put_link(struct dentry *, struct nameidata *, void *);
9906 extern int __page_symlink(struct inode *inode, const char *symname, int len,
9908 extern int page_symlink(struct inode *inode, const char *symname, int len);
9909 extern const struct inode_operations page_symlink_inode_operations;
9910 extern int generic_readlink(struct dentry *, char *, int);
9911 extern void generic_fillattr(struct inode *, struct kstat *);
9912 extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
9913 void inode_add_bytes(struct inode *inode, loff_t bytes);
9914 void inode_sub_bytes(struct inode *inode, loff_t bytes);
9915 loff_t inode_get_bytes(struct inode *inode);
9916 void inode_set_bytes(struct inode *inode, loff_t bytes);
9918 extern int vfs_readdir(struct file *, filldir_t, void *);
9920 extern int vfs_stat(char *, struct kstat *);
9921 extern int vfs_lstat(char *, struct kstat *);
9922 extern int vfs_stat_fd(int dfd, char *, struct kstat *);
9923 extern int vfs_lstat_fd(int dfd, char *, struct kstat *);
9924 extern int vfs_fstat(unsigned int, struct kstat *);
9926 extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
9928 extern int generic_block_fiemap(struct inode *inode,
9929 struct fiemap_extent_info *fieinfo, u64 start,
9930 u64 len, get_block_t *get_block);
9932 extern void get_filesystem(struct file_system_type *fs);
9933 extern void put_filesystem(struct file_system_type *fs);
9934 extern struct file_system_type *get_fs_type(const char *name);
9935 extern struct super_block *get_super(struct block_device *);
9936 extern struct super_block *user_get_super(dev_t);
9937 extern void drop_super(struct super_block *sb);
9939 extern int dcache_dir_open(struct inode *, struct file *);
9940 extern int dcache_dir_close(struct inode *, struct file *);
9941 extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
9942 extern int dcache_readdir(struct file *, void *, filldir_t);
9943 extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
9944 extern int simple_statfs(struct dentry *, struct kstatfs *);
9945 extern int simple_link(struct dentry *, struct inode *, struct dentry *);
9946 extern int simple_unlink(struct inode *, struct dentry *);
9947 extern int simple_rmdir(struct inode *, struct dentry *);
9948 extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
9949 extern int simple_sync_file(struct file *, struct dentry *, int);
9950 extern int simple_empty(struct dentry *);
9951 extern int simple_readpage(struct file *file, struct page *page);
9952 extern int simple_prepare_write(struct file *file, struct page *page,
9953 unsigned offset, unsigned to);
9954 extern int simple_write_begin(struct file *file, struct address_space *mapping,
9955 loff_t pos, unsigned len, unsigned flags,
9956 struct page **pagep, void **fsdata);
9957 extern int simple_write_end(struct file *file, struct address_space *mapping,
9958 loff_t pos, unsigned len, unsigned copied,
9959 struct page *page, void *fsdata);
9961 extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *);
9962 extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *);
9963 extern const struct file_operations simple_dir_operations;
9964 extern const struct inode_operations simple_dir_inode_operations;
9965 struct tree_descr { char *name; const struct file_operations *ops; int mode; };
9966 struct dentry *d_alloc_name(struct dentry *, const char *);
9967 extern int simple_fill_super(struct super_block *, int, struct tree_descr *);
9968 extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count);
9969 extern void simple_release_fs(struct vfsmount **mount, int *count);
9971 extern ssize_t simple_read_from_buffer(void *to, size_t count,
9972 loff_t *ppos, const void *from, size_t available);
9973 # 2100 "include/linux/fs.h"
9974 extern int inode_change_ok(struct inode *, struct iattr *);
9975 extern int __attribute__((warn_unused_result)) inode_setattr(struct inode *, struct iattr *);
9977 extern void file_update_time(struct file *file);
9979 extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt);
9980 extern void save_mount_options(struct super_block *sb, char *options);
9982 static inline __attribute__((always_inline)) ino_t parent_ino(struct dentry *dentry)
9986 _spin_lock(&dentry->d_lock);
9987 res = dentry->d_parent->d_inode->i_ino;
9988 _spin_unlock(&dentry->d_lock);
9998 struct simple_transaction_argresp {
10005 char *simple_transaction_get(struct file *file, const char *buf,
10007 ssize_t simple_transaction_read(struct file *file, char *buf,
10008 size_t size, loff_t *pos);
10009 int simple_transaction_release(struct inode *inode, struct file *file);
10011 static inline __attribute__((always_inline)) void simple_transaction_set(struct file *file, size_t n)
10013 struct simple_transaction_argresp *ar = file->private_data;
10015 do { if (__builtin_expect(!!(n > ((1UL << 12) - sizeof(struct simple_transaction_argresp))), 0)) do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/fs.h", 2141, __func__); panic("BUG!"); } while (0); } while(0);
10021 __asm__ __volatile__("": : :"memory");
10024 # 2181 "include/linux/fs.h"
10025 static inline __attribute__((always_inline)) void __attribute__((format(printf, 1, 2)))
10026 __simple_attr_check_format(const char *fmt, ...)
10031 int simple_attr_open(struct inode *inode, struct file *file,
10032 int (*get)(void *, u64 *), int (*set)(void *, u64),
10034 int simple_attr_release(struct inode *inode, struct file *file);
10035 ssize_t simple_attr_read(struct file *file, char *buf,
10036 size_t len, loff_t *ppos);
10037 ssize_t simple_attr_write(struct file *file, const char *buf,
10038 size_t len, loff_t *ppos);
10039 # 2208 "include/linux/fs.h"
10040 static inline __attribute__((always_inline)) char *alloc_secdata(void)
10045 static inline __attribute__((always_inline)) void free_secdata(void *secdata)
10050 int proc_nr_files(struct ctl_table *table, int write, struct file *filp,
10051 void *buffer, size_t *lenp, loff_t *ppos);
10053 int get_filesystem_list(char * buf);
10054 # 19 "include/linux/debugfs.h" 2
10058 struct file_operations;
10060 struct debugfs_blob_wrapper {
10062 unsigned long size;
10065 extern struct dentry *arch_debugfs_dir;
10070 extern const struct file_operations debugfs_file_operations;
10071 extern const struct inode_operations debugfs_link_operations;
10073 struct dentry *debugfs_create_file(const char *name, mode_t mode,
10074 struct dentry *parent, void *data,
10075 const struct file_operations *fops);
10077 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent);
10079 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
10082 void debugfs_remove(struct dentry *dentry);
10083 void debugfs_remove_recursive(struct dentry *dentry);
10085 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry,
10086 struct dentry *new_dir, const char *new_name);
10088 struct dentry *debugfs_create_u8(const char *name, mode_t mode,
10089 struct dentry *parent, u8 *value);
10090 struct dentry *debugfs_create_u16(const char *name, mode_t mode,
10091 struct dentry *parent, u16 *value);
10092 struct dentry *debugfs_create_u32(const char *name, mode_t mode,
10093 struct dentry *parent, u32 *value);
10094 struct dentry *debugfs_create_u64(const char *name, mode_t mode,
10095 struct dentry *parent, u64 *value);
10096 struct dentry *debugfs_create_x8(const char *name, mode_t mode,
10097 struct dentry *parent, u8 *value);
10098 struct dentry *debugfs_create_x16(const char *name, mode_t mode,
10099 struct dentry *parent, u16 *value);
10100 struct dentry *debugfs_create_x32(const char *name, mode_t mode,
10101 struct dentry *parent, u32 *value);
10102 struct dentry *debugfs_create_bool(const char *name, mode_t mode,
10103 struct dentry *parent, u32 *value);
10105 struct dentry *debugfs_create_blob(const char *name, mode_t mode,
10106 struct dentry *parent,
10107 struct debugfs_blob_wrapper *blob);
10108 # 19 "kernel/trace/trace.c" 2
10109 # 1 "include/linux/pagemap.h" 1
10116 # 1 "include/linux/mm.h" 1
10117 # 10 "include/linux/mm.h"
10118 # 1 "include/linux/mmdebug.h" 1
10122 # 1 "include/linux/autoconf.h" 1
10123 # 5 "include/linux/mmdebug.h" 2
10124 # 11 "include/linux/mm.h" 2
10126 # 1 "include/linux/rbtree.h" 1
10127 # 100 "include/linux/rbtree.h"
10130 unsigned long rb_parent_color;
10133 struct rb_node *rb_right;
10134 struct rb_node *rb_left;
10135 } __attribute__((aligned(sizeof(long))));
10140 struct rb_node *rb_node;
10142 # 123 "include/linux/rbtree.h"
10143 static inline __attribute__((always_inline)) void rb_set_parent(struct rb_node *rb, struct rb_node *p)
10145 rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p;
10147 static inline __attribute__((always_inline)) void rb_set_color(struct rb_node *rb, int color)
10149 rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;
10151 # 139 "include/linux/rbtree.h"
10152 extern void rb_insert_color(struct rb_node *, struct rb_root *);
10153 extern void rb_erase(struct rb_node *, struct rb_root *);
10156 extern struct rb_node *rb_next(struct rb_node *);
10157 extern struct rb_node *rb_prev(struct rb_node *);
10158 extern struct rb_node *rb_first(struct rb_root *);
10159 extern struct rb_node *rb_last(struct rb_root *);
10162 extern void rb_replace_node(struct rb_node *victim, struct rb_node *new,
10163 struct rb_root *root);
10165 static inline __attribute__((always_inline)) void rb_link_node(struct rb_node * node, struct rb_node * parent,
10166 struct rb_node ** rb_link)
10168 node->rb_parent_color = (unsigned long )parent;
10169 node->rb_left = node->rb_right = ((void *)0);
10173 # 13 "include/linux/mm.h" 2
10175 # 1 "include/linux/debug_locks.h" 1
10181 struct task_struct;
10183 extern int debug_locks;
10184 extern int debug_locks_silent;
10189 extern int debug_locks_off(void);
10190 # 35 "include/linux/debug_locks.h"
10191 extern void locking_selftest(void);
10196 struct task_struct;
10197 # 49 "include/linux/debug_locks.h"
10198 static inline __attribute__((always_inline)) void debug_show_all_locks(void)
10202 static inline __attribute__((always_inline)) void __debug_show_held_locks(struct task_struct *task)
10206 static inline __attribute__((always_inline)) void debug_show_held_locks(struct task_struct *task)
10210 static inline __attribute__((always_inline)) void
10211 debug_check_no_locks_freed(const void *from, unsigned long len)
10215 static inline __attribute__((always_inline)) void
10216 debug_check_no_locks_held(struct task_struct *task)
10219 # 15 "include/linux/mm.h" 2
10220 # 1 "include/linux/mm_types.h" 1
10224 # 1 "include/linux/auxvec.h" 1
10228 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/auxvec.h" 1
10229 # 5 "include/linux/auxvec.h" 2
10230 # 5 "include/linux/mm_types.h" 2
10231 # 15 "include/linux/mm_types.h"
10232 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mmu.h" 1
10238 struct sram_list_struct {
10239 struct sram_list_struct *next;
10245 struct vm_list_struct *vmlist;
10246 unsigned long end_brk;
10247 unsigned long stack_start;
10251 void *l1_stack_save;
10253 struct sram_list_struct *sram_list;
10254 # 30 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mmu.h"
10256 # 16 "include/linux/mm_types.h" 2
10263 struct address_space;
10270 typedef unsigned long mm_counter_t;
10271 # 39 "include/linux/mm_types.h"
10273 unsigned long flags;
10277 atomic_t _mapcount;
10288 unsigned long private;
10295 struct address_space *mapping;
10306 struct kmem_cache *slab;
10307 struct page *first_page;
10310 unsigned long index;
10313 struct list_head lru;
10314 # 97 "include/linux/mm_types.h"
10323 struct vm_area_struct {
10324 struct mm_struct * vm_mm;
10325 unsigned long vm_start;
10326 unsigned long vm_end;
10330 struct vm_area_struct *vm_next;
10332 pgprot_t vm_page_prot;
10333 unsigned long vm_flags;
10335 struct rb_node vm_rb;
10345 struct list_head list;
10347 struct vm_area_struct *head;
10350 struct raw_prio_tree_node prio_tree_node;
10359 struct list_head anon_vma_node;
10360 struct anon_vma *anon_vma;
10363 struct vm_operations_struct * vm_ops;
10366 unsigned long vm_pgoff;
10368 struct file * vm_file;
10369 void * vm_private_data;
10370 unsigned long vm_truncate_count;
10380 struct core_thread {
10381 struct task_struct *task;
10382 struct core_thread *next;
10385 struct core_state {
10386 atomic_t nr_threads;
10387 struct core_thread dumper;
10388 struct completion startup;
10392 struct vm_area_struct * mmap;
10393 struct rb_root mm_rb;
10394 struct vm_area_struct * mmap_cache;
10395 unsigned long (*get_unmapped_area) (struct file *filp,
10396 unsigned long addr, unsigned long len,
10397 unsigned long pgoff, unsigned long flags);
10398 void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
10399 unsigned long mmap_base;
10400 unsigned long task_size;
10401 unsigned long cached_hole_size;
10402 unsigned long free_area_cache;
10407 struct rw_semaphore mmap_sem;
10408 spinlock_t page_table_lock;
10410 struct list_head mmlist;
10418 mm_counter_t _file_rss;
10419 mm_counter_t _anon_rss;
10421 unsigned long hiwater_rss;
10422 unsigned long hiwater_vm;
10424 unsigned long total_vm, locked_vm, shared_vm, exec_vm;
10425 unsigned long stack_vm, reserved_vm, def_flags, nr_ptes;
10426 unsigned long start_code, end_code, start_data, end_data;
10427 unsigned long start_brk, brk, start_stack;
10428 unsigned long arg_start, arg_end, env_start, env_end;
10430 unsigned long saved_auxv[(2*(0 + 18 + 1))];
10432 cpumask_t cpu_vm_mask;
10435 mm_context_t context;
10436 # 226 "include/linux/mm_types.h"
10437 unsigned int faultstamp;
10438 unsigned int token_priority;
10439 unsigned int last_interval;
10441 unsigned long flags;
10443 struct core_state *core_state;
10446 rwlock_t ioctx_list_lock;
10447 struct kioctx *ioctx_list;
10448 # 253 "include/linux/mm_types.h"
10449 struct file *exe_file;
10450 unsigned long num_exe_file_vmas;
10456 # 16 "include/linux/mm.h" 2
10460 struct file_ra_state;
10461 struct user_struct;
10462 struct writeback_control;
10465 extern unsigned long max_mapnr;
10468 extern unsigned long num_physpages;
10469 extern void * high_memory;
10470 extern int page_cluster;
10473 extern int sysctl_legacy_va_layout;
10478 extern unsigned long mmap_min_addr;
10481 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 1
10485 # 1 "include/asm-generic/4level-fixup.h" 1
10486 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 2
10491 typedef pte_t *pte_addr_t;
10492 # 34 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
10493 extern void paging_init(void);
10501 static inline __attribute__((always_inline)) int pte_file(pte_t pte)
10505 # 62 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
10506 static inline __attribute__((always_inline)) pte_t pte_rdprotect(pte_t _pte) { _pte.pte &= ~(0x00000004); return _pte; };
10507 static inline __attribute__((always_inline)) pte_t pte_mkread(pte_t _pte) { _pte.pte |= (0x00000004); return _pte; };
10508 static inline __attribute__((always_inline)) pte_t pte_wrprotect(pte_t _pte) { _pte.pte &= ~(0x00000008); return _pte; };
10509 static inline __attribute__((always_inline)) pte_t pte_mkwrite(pte_t _pte) { _pte.pte |= (0x00000008); return _pte; };
10510 static inline __attribute__((always_inline)) pte_t pte_exprotect(pte_t _pte) { _pte.pte &= ~(0x00000004 | 0x00000008); return _pte; };
10511 static inline __attribute__((always_inline)) pte_t pte_mkexec(pte_t _pte) { _pte.pte |= (0x00000004 | 0x00000008); return _pte; };
10512 static inline __attribute__((always_inline)) pte_t pte_mkclean(pte_t _pte) { _pte.pte &= ~(0x00000080); return _pte; };
10513 static inline __attribute__((always_inline)) pte_t pte_mkdirty(pte_t _pte) { _pte.pte |= (0x00000080); return _pte; };
10514 static inline __attribute__((always_inline)) pte_t pte_mkold(pte_t _pte) { _pte.pte &= ~0x00000010 | 0x00000004 | 0x00000008; return _pte; };
10515 static inline __attribute__((always_inline)) pte_t pte_mkyoung(pte_t _pte) { _pte.pte |= 0x00000010 | 0x00000004 | 0x00000008; return _pte; };
10523 extern unsigned int kobjsize(const void *objp);
10524 # 95 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
10525 # 1 "include/asm-generic/pgtable.h" 1
10526 # 96 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 2
10527 # 41 "include/linux/mm.h" 2
10528 # 57 "include/linux/mm.h"
10529 extern struct kmem_cache *vm_area_cachep;
10536 struct vm_list_struct {
10537 struct vm_list_struct *next;
10538 struct vm_area_struct *vma;
10542 extern struct rb_root nommu_vma_tree;
10543 extern struct rw_semaphore nommu_vma_sem;
10545 extern unsigned int kobjsize(const void *objp);
10546 # 144 "include/linux/mm.h"
10547 extern pgprot_t protection_map[16];
10548 # 159 "include/linux/mm.h"
10550 unsigned int flags;
10551 unsigned long pgoff;
10552 void *virtual_address;
10566 struct vm_operations_struct {
10567 void (*open)(struct vm_area_struct * area);
10568 void (*close)(struct vm_area_struct * area);
10569 int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
10573 int (*page_mkwrite)(struct vm_area_struct *vma, struct page *page);
10578 int (*access)(struct vm_area_struct *vma, unsigned long addr,
10579 void *buf, int len, int write);
10580 # 215 "include/linux/mm.h"
10585 # 227 "include/linux/mm.h"
10586 # 1 "include/linux/page-flags.h" 1
10587 # 72 "include/linux/page-flags.h"
10623 PG_checked = PG_owner_priv_1,
10626 PG_pinned = PG_owner_priv_1,
10627 PG_savepinned = PG_dirty,
10630 PG_slob_page = PG_active,
10631 PG_slob_free = PG_private,
10634 PG_slub_frozen = PG_active,
10635 PG_slub_debug = PG_error,
10637 # 181 "include/linux/page-flags.h"
10640 static inline __attribute__((always_inline)) int PageLocked(struct page *page) { return test_bit(PG_locked, &page->flags); }
10641 static inline __attribute__((always_inline)) int PageError(struct page *page) { return test_bit(PG_error, &page->flags); } static inline __attribute__((always_inline)) void SetPageError(struct page *page) { set_bit(PG_error, &page->flags); } static inline __attribute__((always_inline)) void ClearPageError(struct page *page) { clear_bit(PG_error, &page->flags); }
10642 static inline __attribute__((always_inline)) int PageReferenced(struct page *page) { return test_bit(PG_referenced, &page->flags); } static inline __attribute__((always_inline)) void SetPageReferenced(struct page *page) { set_bit(PG_referenced, &page->flags); } static inline __attribute__((always_inline)) void ClearPageReferenced(struct page *page) { clear_bit(PG_referenced, &page->flags); } static inline __attribute__((always_inline)) int TestClearPageReferenced(struct page *page) { return test_and_clear_bit(PG_referenced, &page->flags); }
10643 static inline __attribute__((always_inline)) int PageDirty(struct page *page) { return test_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) void SetPageDirty(struct page *page) { set_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) void ClearPageDirty(struct page *page) { clear_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) int TestSetPageDirty(struct page *page) { return test_and_set_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) int TestClearPageDirty(struct page *page) { return test_and_clear_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageDirty(struct page *page) { __clear_bit(PG_dirty, &page->flags); }
10644 static inline __attribute__((always_inline)) int PageLRU(struct page *page) { return test_bit(PG_lru, &page->flags); } static inline __attribute__((always_inline)) void SetPageLRU(struct page *page) { set_bit(PG_lru, &page->flags); } static inline __attribute__((always_inline)) void ClearPageLRU(struct page *page) { clear_bit(PG_lru, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageLRU(struct page *page) { __clear_bit(PG_lru, &page->flags); }
10645 static inline __attribute__((always_inline)) int PageActive(struct page *page) { return test_bit(PG_active, &page->flags); } static inline __attribute__((always_inline)) void SetPageActive(struct page *page) { set_bit(PG_active, &page->flags); } static inline __attribute__((always_inline)) void ClearPageActive(struct page *page) { clear_bit(PG_active, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageActive(struct page *page) { __clear_bit(PG_active, &page->flags); }
10646 static inline __attribute__((always_inline)) int TestClearPageActive(struct page *page) { return test_and_clear_bit(PG_active, &page->flags); }
10647 static inline __attribute__((always_inline)) int PageSlab(struct page *page) { return test_bit(PG_slab, &page->flags); } static inline __attribute__((always_inline)) void __SetPageSlab(struct page *page) { __set_bit(PG_slab, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSlab(struct page *page) { __clear_bit(PG_slab, &page->flags); }
10648 static inline __attribute__((always_inline)) int PageChecked(struct page *page) { return test_bit(PG_checked, &page->flags); } static inline __attribute__((always_inline)) void SetPageChecked(struct page *page) { set_bit(PG_checked, &page->flags); } static inline __attribute__((always_inline)) void ClearPageChecked(struct page *page) { clear_bit(PG_checked, &page->flags); }
10649 static inline __attribute__((always_inline)) int PagePinned(struct page *page) { return test_bit(PG_pinned, &page->flags); } static inline __attribute__((always_inline)) void SetPagePinned(struct page *page) { set_bit(PG_pinned, &page->flags); } static inline __attribute__((always_inline)) void ClearPagePinned(struct page *page) { clear_bit(PG_pinned, &page->flags); } static inline __attribute__((always_inline)) int TestSetPagePinned(struct page *page) { return test_and_set_bit(PG_pinned, &page->flags); } static inline __attribute__((always_inline)) int TestClearPagePinned(struct page *page) { return test_and_clear_bit(PG_pinned, &page->flags); }
10650 static inline __attribute__((always_inline)) int PageSavePinned(struct page *page) { return test_bit(PG_savepinned, &page->flags); } static inline __attribute__((always_inline)) void SetPageSavePinned(struct page *page) { set_bit(PG_savepinned, &page->flags); } static inline __attribute__((always_inline)) void ClearPageSavePinned(struct page *page) { clear_bit(PG_savepinned, &page->flags); };
10651 static inline __attribute__((always_inline)) int PageReserved(struct page *page) { return test_bit(PG_reserved, &page->flags); } static inline __attribute__((always_inline)) void SetPageReserved(struct page *page) { set_bit(PG_reserved, &page->flags); } static inline __attribute__((always_inline)) void ClearPageReserved(struct page *page) { clear_bit(PG_reserved, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageReserved(struct page *page) { __clear_bit(PG_reserved, &page->flags); }
10652 static inline __attribute__((always_inline)) int PagePrivate(struct page *page) { return test_bit(PG_private, &page->flags); } static inline __attribute__((always_inline)) void SetPagePrivate(struct page *page) { set_bit(PG_private, &page->flags); } static inline __attribute__((always_inline)) void ClearPagePrivate(struct page *page) { clear_bit(PG_private, &page->flags); } static inline __attribute__((always_inline)) void __ClearPagePrivate(struct page *page) { __clear_bit(PG_private, &page->flags); }
10653 static inline __attribute__((always_inline)) void __SetPagePrivate(struct page *page) { __set_bit(PG_private, &page->flags); }
10654 static inline __attribute__((always_inline)) int PageSwapBacked(struct page *page) { return test_bit(PG_swapbacked, &page->flags); } static inline __attribute__((always_inline)) void SetPageSwapBacked(struct page *page) { set_bit(PG_swapbacked, &page->flags); } static inline __attribute__((always_inline)) void ClearPageSwapBacked(struct page *page) { clear_bit(PG_swapbacked, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSwapBacked(struct page *page) { __clear_bit(PG_swapbacked, &page->flags); }
10656 static inline __attribute__((always_inline)) int PageSlobPage(struct page *page) { return test_bit(PG_slob_page, &page->flags); } static inline __attribute__((always_inline)) void __SetPageSlobPage(struct page *page) { __set_bit(PG_slob_page, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSlobPage(struct page *page) { __clear_bit(PG_slob_page, &page->flags); }
10657 static inline __attribute__((always_inline)) int PageSlobFree(struct page *page) { return test_bit(PG_slob_free, &page->flags); } static inline __attribute__((always_inline)) void __SetPageSlobFree(struct page *page) { __set_bit(PG_slob_free, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSlobFree(struct page *page) { __clear_bit(PG_slob_free, &page->flags); }
10659 static inline __attribute__((always_inline)) int PageSlubFrozen(struct page *page) { return test_bit(PG_slub_frozen, &page->flags); } static inline __attribute__((always_inline)) void __SetPageSlubFrozen(struct page *page) { __set_bit(PG_slub_frozen, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSlubFrozen(struct page *page) { __clear_bit(PG_slub_frozen, &page->flags); }
10660 static inline __attribute__((always_inline)) int PageSlubDebug(struct page *page) { return test_bit(PG_slub_debug, &page->flags); } static inline __attribute__((always_inline)) void __SetPageSlubDebug(struct page *page) { __set_bit(PG_slub_debug, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageSlubDebug(struct page *page) { __clear_bit(PG_slub_debug, &page->flags); }
10666 static inline __attribute__((always_inline)) int PageWriteback(struct page *page) { return test_bit(PG_writeback, &page->flags); } static inline __attribute__((always_inline)) int TestSetPageWriteback(struct page *page) { return test_and_set_bit(PG_writeback, &page->flags); } static inline __attribute__((always_inline)) int TestClearPageWriteback(struct page *page) { return test_and_clear_bit(PG_writeback, &page->flags); }
10667 static inline __attribute__((always_inline)) int PageBuddy(struct page *page) { return test_bit(PG_buddy, &page->flags); } static inline __attribute__((always_inline)) void __SetPageBuddy(struct page *page) { __set_bit(PG_buddy, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageBuddy(struct page *page) { __clear_bit(PG_buddy, &page->flags); }
10668 static inline __attribute__((always_inline)) int PageMappedToDisk(struct page *page) { return test_bit(PG_mappedtodisk, &page->flags); } static inline __attribute__((always_inline)) void SetPageMappedToDisk(struct page *page) { set_bit(PG_mappedtodisk, &page->flags); } static inline __attribute__((always_inline)) void ClearPageMappedToDisk(struct page *page) { clear_bit(PG_mappedtodisk, &page->flags); }
10671 static inline __attribute__((always_inline)) int PageReclaim(struct page *page) { return test_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) void SetPageReclaim(struct page *page) { set_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) void ClearPageReclaim(struct page *page) { clear_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) int TestClearPageReclaim(struct page *page) { return test_and_clear_bit(PG_reclaim, &page->flags); }
10672 static inline __attribute__((always_inline)) int PageReadahead(struct page *page) { return test_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) void SetPageReadahead(struct page *page) { set_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) void ClearPageReadahead(struct page *page) { clear_bit(PG_reclaim, &page->flags); }
10673 # 224 "include/linux/page-flags.h"
10674 static inline __attribute__((always_inline)) int PageHighMem(struct page *page) { return 0; }
10680 static inline __attribute__((always_inline)) int PageSwapCache(struct page *page) { return 0; }
10681 # 244 "include/linux/page-flags.h"
10682 static inline __attribute__((always_inline)) int PageMlocked(struct page *page) { return 0; }
10683 static inline __attribute__((always_inline)) void SetPageMlocked(struct page *page) { } static inline __attribute__((always_inline)) int TestClearPageMlocked(struct page *page) { return 0; }
10685 static inline __attribute__((always_inline)) int PageUnevictable(struct page *page) { return 0; } static inline __attribute__((always_inline)) int TestClearPageUnevictable(struct page *page) { return 0; }
10686 static inline __attribute__((always_inline)) void SetPageUnevictable(struct page *page) { } static inline __attribute__((always_inline)) void ClearPageUnevictable(struct page *page) { }
10687 static inline __attribute__((always_inline)) void __ClearPageUnevictable(struct page *page) { }
10693 static inline __attribute__((always_inline)) int PageUncached(struct page *page) { return 0; }
10696 static inline __attribute__((always_inline)) int PageUptodate(struct page *page)
10698 int ret = test_bit(PG_uptodate, &(page)->flags);
10699 # 270 "include/linux/page-flags.h"
10701 __asm__ __volatile__("": : :"memory");
10706 static inline __attribute__((always_inline)) void __SetPageUptodate(struct page *page)
10708 __asm__ __volatile__("": : :"memory");
10709 __set_bit(PG_uptodate, &(page)->flags);
10712 static inline __attribute__((always_inline)) void SetPageUptodate(struct page *page)
10714 # 296 "include/linux/page-flags.h"
10715 __asm__ __volatile__("": : :"memory");
10716 set_bit(PG_uptodate, &(page)->flags);
10720 static inline __attribute__((always_inline)) void ClearPageUptodate(struct page *page) { clear_bit(PG_uptodate, &page->flags); }
10722 extern void cancel_dirty_page(struct page *page, unsigned int account_size);
10724 int test_clear_page_writeback(struct page *page);
10725 int test_set_page_writeback(struct page *page);
10727 static inline __attribute__((always_inline)) void set_page_writeback(struct page *page)
10729 test_set_page_writeback(page);
10731 # 320 "include/linux/page-flags.h"
10732 static inline __attribute__((always_inline)) int PageHead(struct page *page) { return test_bit(PG_head, &page->flags); } static inline __attribute__((always_inline)) void __SetPageHead(struct page *page) { __set_bit(PG_head, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageHead(struct page *page) { __clear_bit(PG_head, &page->flags); }
10733 static inline __attribute__((always_inline)) int PageTail(struct page *page) { return test_bit(PG_tail, &page->flags); } static inline __attribute__((always_inline)) void __SetPageTail(struct page *page) { __set_bit(PG_tail, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageTail(struct page *page) { __clear_bit(PG_tail, &page->flags); }
10735 static inline __attribute__((always_inline)) int PageCompound(struct page *page)
10737 return page->flags & ((1L << PG_head) | (1L << PG_tail));
10740 # 228 "include/linux/mm.h" 2
10741 # 245 "include/linux/mm.h"
10742 static inline __attribute__((always_inline)) int put_page_testzero(struct page *page)
10745 return (atomic_sub_return(1, (&page->_count)) == 0);
10752 static inline __attribute__((always_inline)) int get_page_unless_zero(struct page *page)
10755 return ({ int c, old; c = (((&page->_count))->counter); while (c != (0) && (old = ((int)((__typeof__(*((&((((&page->_count)))->counter)))))__cmpxchg_local_generic(((&((((&page->_count)))->counter))), (unsigned long)(((c))), (unsigned long)(((c + (1)))), sizeof(*((&((((&page->_count)))->counter)))))))) != c) c = old; c != (0); });
10759 struct page *vmalloc_to_page(const void *addr);
10760 unsigned long vmalloc_to_pfn(const void *addr);
10768 static inline __attribute__((always_inline)) int is_vmalloc_addr(const void *x)
10779 static inline __attribute__((always_inline)) struct page *compound_head(struct page *page)
10781 if (__builtin_expect(!!(PageTail(page)), 0))
10782 return page->first_page;
10786 static inline __attribute__((always_inline)) int page_count(struct page *page)
10788 return ((&compound_head(page)->_count)->counter);
10791 static inline __attribute__((always_inline)) void get_page(struct page *page)
10793 page = compound_head(page);
10795 atomic_inc(&page->_count);
10798 static inline __attribute__((always_inline)) struct page *virt_to_head_page(const void *x)
10800 struct page *page = (mem_map + (((unsigned long)(x)-(0x00000000)) >> 12));
10801 return compound_head(page);
10808 static inline __attribute__((always_inline)) void init_page_count(struct page *page)
10810 (((&page->_count)->counter) = 1);
10813 void put_page(struct page *page);
10814 void put_pages_list(struct list_head *pages);
10816 void split_page(struct page *page, unsigned int order);
10817 void split_compound_page(struct page *page, unsigned int order);
10824 typedef void compound_page_dtor(struct page *);
10826 static inline __attribute__((always_inline)) void set_compound_page_dtor(struct page *page,
10827 compound_page_dtor *dtor)
10829 page[1].lru.next = (void *)dtor;
10832 static inline __attribute__((always_inline)) compound_page_dtor *get_compound_page_dtor(struct page *page)
10834 return (compound_page_dtor *)page[1].lru.next;
10837 static inline __attribute__((always_inline)) int compound_order(struct page *page)
10839 if (!PageHead(page))
10841 return (unsigned long)page[1].lru.prev;
10844 static inline __attribute__((always_inline)) void set_compound_order(struct page *page, unsigned long order)
10846 page[1].lru.prev = (void *)order;
10848 # 497 "include/linux/mm.h"
10849 static inline __attribute__((always_inline)) enum zone_type page_zonenum(struct page *page)
10851 return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0))) & ((1UL << 2) - 1);
10853 # 510 "include/linux/mm.h"
10854 static inline __attribute__((always_inline)) int page_zone_id(struct page *page)
10856 return (page->flags >> ((((((sizeof(unsigned long)*8) - 0) - 0) < ((((sizeof(unsigned long)*8) - 0) - 0) - 2))? (((sizeof(unsigned long)*8) - 0) - 0) : ((((sizeof(unsigned long)*8) - 0) - 0) - 2)) * ((0 + 2) != 0))) & ((1UL << (0 + 2)) - 1);
10859 static inline __attribute__((always_inline)) int zone_to_nid(struct zone *zone)
10871 static inline __attribute__((always_inline)) int page_to_nid(struct page *page)
10873 return (page->flags >> ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))) & ((1UL << 0) - 1);
10877 static inline __attribute__((always_inline)) struct zone *page_zone(struct page *page)
10879 return &(&contig_page_data)->node_zones[page_zonenum(page)];
10881 # 545 "include/linux/mm.h"
10882 static inline __attribute__((always_inline)) void set_page_zone(struct page *page, enum zone_type zone)
10884 page->flags &= ~(((1UL << 2) - 1) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0)));
10885 page->flags |= (zone & ((1UL << 2) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0));
10888 static inline __attribute__((always_inline)) void set_page_node(struct page *page, unsigned long node)
10890 page->flags &= ~(((1UL << 0) - 1) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0)));
10891 page->flags |= (node & ((1UL << 0) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0));
10894 static inline __attribute__((always_inline)) void set_page_section(struct page *page, unsigned long section)
10896 page->flags &= ~(((1UL << 0) - 1) << (((sizeof(unsigned long)*8) - 0) * (0 != 0)));
10897 page->flags |= (section & ((1UL << 0) - 1)) << (((sizeof(unsigned long)*8) - 0) * (0 != 0));
10900 static inline __attribute__((always_inline)) void set_page_links(struct page *page, enum zone_type zone,
10901 unsigned long node, unsigned long pfn)
10903 set_page_zone(page, zone);
10904 set_page_node(page, node);
10905 set_page_section(page, ((pfn) >> 0));
10912 static inline __attribute__((always_inline)) unsigned long round_hint_to_min(unsigned long hint)
10926 # 1 "include/linux/vmstat.h" 1
10932 # 1 "include/linux/mm.h" 1
10933 # 7 "include/linux/vmstat.h" 2
10934 # 31 "include/linux/vmstat.h"
10935 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
10936 PGALLOC_DMA, PGALLOC_NORMAL , PGALLOC_MOVABLE,
10937 PGFREE, PGACTIVATE, PGDEACTIVATE,
10938 PGFAULT, PGMAJFAULT,
10939 PGREFILL_DMA, PGREFILL_NORMAL , PGREFILL_MOVABLE,
10940 PGSTEAL_DMA, PGSTEAL_NORMAL , PGSTEAL_MOVABLE,
10941 PGSCAN_KSWAPD_DMA, PGSCAN_KSWAPD_NORMAL , PGSCAN_KSWAPD_MOVABLE,
10942 PGSCAN_DIRECT_DMA, PGSCAN_DIRECT_NORMAL , PGSCAN_DIRECT_MOVABLE,
10943 PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
10944 PAGEOUTRUN, ALLOCSTALL, PGROTATED,
10945 # 54 "include/linux/vmstat.h"
10949 extern int sysctl_stat_interval;
10950 # 70 "include/linux/vmstat.h"
10951 struct vm_event_state {
10952 unsigned long event[NR_VM_EVENT_ITEMS];
10955 extern __typeof__(struct vm_event_state) per_cpu__vm_event_states;
10957 static inline __attribute__((always_inline)) void __count_vm_event(enum vm_event_item item)
10959 per_cpu__vm_event_states.event[item]++;
10962 static inline __attribute__((always_inline)) void count_vm_event(enum vm_event_item item)
10964 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item]++;
10968 static inline __attribute__((always_inline)) void __count_vm_events(enum vm_event_item item, long delta)
10970 per_cpu__vm_event_states.event[item] += delta;
10973 static inline __attribute__((always_inline)) void count_vm_events(enum vm_event_item item, long delta)
10975 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item] += delta;
10979 extern void all_vm_events(unsigned long *);
10983 static inline __attribute__((always_inline)) void vm_events_fold_cpu(int cpu)
10986 # 138 "include/linux/vmstat.h"
10987 extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
10989 static inline __attribute__((always_inline)) void zone_page_state_add(long x, struct zone *zone,
10990 enum zone_stat_item item)
10992 atomic_long_add(x, &zone->vm_stat[item]);
10993 atomic_long_add(x, &vm_stat[item]);
10996 static inline __attribute__((always_inline)) unsigned long global_page_state(enum zone_stat_item item)
10998 long x = atomic_long_read(&vm_stat[item]);
11006 static inline __attribute__((always_inline)) unsigned long zone_page_state(struct zone *zone,
11007 enum zone_stat_item item)
11009 long x = atomic_long_read(&zone->vm_stat[item]);
11017 extern unsigned long global_lru_pages(void);
11019 static inline __attribute__((always_inline)) unsigned long zone_lru_pages(struct zone *zone)
11021 return (zone_page_state(zone, NR_ACTIVE_ANON)
11022 + zone_page_state(zone, NR_ACTIVE_FILE)
11023 + zone_page_state(zone, NR_INACTIVE_ANON)
11024 + zone_page_state(zone, NR_INACTIVE_FILE));
11026 # 220 "include/linux/vmstat.h"
11027 static inline __attribute__((always_inline)) void zap_zone_vm_stats(struct zone *zone)
11029 memset(zone->vm_stat, 0, sizeof(zone->vm_stat));
11032 extern void inc_zone_state(struct zone *, enum zone_stat_item);
11033 # 248 "include/linux/vmstat.h"
11034 static inline __attribute__((always_inline)) void __mod_zone_page_state(struct zone *zone,
11035 enum zone_stat_item item, int delta)
11037 zone_page_state_add(delta, zone, item);
11040 static inline __attribute__((always_inline)) void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
11042 atomic_long_inc(&zone->vm_stat[item]);
11043 atomic_long_inc(&vm_stat[item]);
11046 static inline __attribute__((always_inline)) void __inc_zone_page_state(struct page *page,
11047 enum zone_stat_item item)
11049 __inc_zone_state(page_zone(page), item);
11052 static inline __attribute__((always_inline)) void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
11054 atomic_long_dec(&zone->vm_stat[item]);
11055 atomic_long_dec(&vm_stat[item]);
11058 static inline __attribute__((always_inline)) void __dec_zone_page_state(struct page *page,
11059 enum zone_stat_item item)
11061 __dec_zone_state(page_zone(page), item);
11063 # 286 "include/linux/vmstat.h"
11064 static inline __attribute__((always_inline)) void refresh_cpu_vm_stats(int cpu) { }
11065 # 590 "include/linux/mm.h" 2
11067 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *lowmem_page_address(struct page *page)
11069 return ((void *) ((unsigned long)((((unsigned long) ((void *)(((((page) - mem_map) << 12) + (0x00000000))))) >> 12) << 12)));
11071 # 632 "include/linux/mm.h"
11072 extern struct address_space swapper_space;
11073 static inline __attribute__((always_inline)) struct address_space *page_mapping(struct page *page)
11075 struct address_space *mapping = page->mapping;
11083 if (__builtin_expect(!!((unsigned long)mapping & 1), 0))
11084 mapping = ((void *)0);
11088 static inline __attribute__((always_inline)) int PageAnon(struct page *page)
11090 return ((unsigned long)page->mapping & 1) != 0;
11097 static inline __attribute__((always_inline)) unsigned long page_index(struct page *page)
11099 if (__builtin_expect(!!(PageSwapCache(page)), 0))
11100 return ((page)->private);
11101 return page->index;
11109 static inline __attribute__((always_inline)) void reset_page_mapcount(struct page *page)
11111 (((&(page)->_mapcount)->counter) = -1);
11114 static inline __attribute__((always_inline)) int page_mapcount(struct page *page)
11116 return ((&(page)->_mapcount)->counter) + 1;
11122 static inline __attribute__((always_inline)) int page_mapped(struct page *page)
11124 return ((&(page)->_mapcount)->counter) >= 0;
11126 # 707 "include/linux/mm.h"
11127 extern void show_free_areas(void);
11132 static inline __attribute__((always_inline)) int shmem_lock(struct file *file, int lock,
11133 struct user_struct *user)
11138 struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags);
11140 int shmem_zero_setup(struct vm_area_struct *);
11143 extern unsigned long shmem_get_unmapped_area(struct file *file,
11144 unsigned long addr,
11146 unsigned long pgoff,
11147 unsigned long flags);
11150 extern int can_do_mlock(void);
11151 extern int user_shm_lock(size_t, struct user_struct *);
11152 extern void user_shm_unlock(size_t, struct user_struct *);
11157 struct zap_details {
11158 struct vm_area_struct *nonlinear_vma;
11159 struct address_space *check_mapping;
11160 unsigned long first_index;
11161 unsigned long last_index;
11162 spinlock_t *i_mmap_lock;
11163 unsigned long truncate_count;
11166 struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
11169 int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
11170 unsigned long size);
11171 unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address,
11172 unsigned long size, struct zap_details *);
11173 unsigned long unmap_vmas(struct mmu_gather **tlb,
11174 struct vm_area_struct *start_vma, unsigned long start_addr,
11175 unsigned long end_addr, unsigned long *nr_accounted,
11176 struct zap_details *);
11177 # 768 "include/linux/mm.h"
11179 int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
11180 int (*pud_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
11181 int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
11182 int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
11183 int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *);
11184 struct mm_struct *mm;
11188 int walk_page_range(unsigned long addr, unsigned long end,
11189 struct mm_walk *walk);
11190 void free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
11191 unsigned long end, unsigned long floor, unsigned long ceiling);
11192 int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
11193 struct vm_area_struct *vma);
11194 void unmap_mapping_range(struct address_space *mapping,
11195 loff_t const holebegin, loff_t const holelen, int even_cows);
11196 int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
11197 void *buf, int len, int write);
11199 static inline __attribute__((always_inline)) void unmap_shared_mapping_range(struct address_space *mapping,
11200 loff_t const holebegin, loff_t const holelen)
11202 unmap_mapping_range(mapping, holebegin, holelen, 0);
11205 extern int vmtruncate(struct inode * inode, loff_t offset);
11206 extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end);
11212 static inline __attribute__((always_inline)) int handle_mm_fault(struct mm_struct *mm,
11213 struct vm_area_struct *vma, unsigned long address,
11217 do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/mm.h", 807, __func__); panic("BUG!"); } while (0);
11222 extern int make_pages_present(unsigned long addr, unsigned long end);
11223 extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
11225 int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start,
11226 int len, int write, int force, struct page **pages, struct vm_area_struct **vmas);
11228 extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
11229 extern void do_invalidatepage(struct page *page, unsigned long offset);
11231 int __set_page_dirty_nobuffers(struct page *page);
11232 int __set_page_dirty_no_writeback(struct page *page);
11233 int redirty_page_for_writepage(struct writeback_control *wbc,
11234 struct page *page);
11235 int set_page_dirty(struct page *page);
11236 int set_page_dirty_lock(struct page *page);
11237 int clear_page_dirty_for_io(struct page *page);
11239 extern unsigned long move_page_tables(struct vm_area_struct *vma,
11240 unsigned long old_addr, struct vm_area_struct *new_vma,
11241 unsigned long new_addr, unsigned long len);
11242 extern unsigned long do_mremap(unsigned long addr,
11243 unsigned long old_len, unsigned long new_len,
11244 unsigned long flags, unsigned long new_addr);
11245 extern int mprotect_fixup(struct vm_area_struct *vma,
11246 struct vm_area_struct **pprev, unsigned long start,
11247 unsigned long end, unsigned long newflags);
11248 # 849 "include/linux/mm.h"
11249 int get_user_pages_fast(unsigned long start, int nr_pages, int write,
11250 struct page **pages);
11251 # 867 "include/linux/mm.h"
11253 int (*shrink)(int nr_to_scan, gfp_t gfp_mask);
11257 struct list_head list;
11261 extern void register_shrinker(struct shrinker *);
11262 extern void unregister_shrinker(struct shrinker *);
11264 int vma_wants_writenotify(struct vm_area_struct *vma);
11266 extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl);
11269 static inline __attribute__((always_inline)) int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
11270 unsigned long address)
11274 # 900 "include/linux/mm.h"
11275 int __pmd_alloc(struct mm_struct *mm, pgd_t *pud, unsigned long address);
11278 int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
11279 int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
11280 # 946 "include/linux/mm.h"
11281 static inline __attribute__((always_inline)) void pgtable_page_ctor(struct page *page)
11284 __inc_zone_page_state(page, NR_PAGETABLE);
11287 static inline __attribute__((always_inline)) void pgtable_page_dtor(struct page *page)
11290 __dec_zone_page_state(page, NR_PAGETABLE);
11292 # 984 "include/linux/mm.h"
11293 extern void free_area_init(unsigned long * zones_size);
11294 extern void free_area_init_node(int nid, unsigned long * zones_size,
11295 unsigned long zone_start_pfn, unsigned long *zholes_size);
11296 # 1037 "include/linux/mm.h"
11297 extern void set_dma_reserve(unsigned long new_dma_reserve);
11298 extern void memmap_init_zone(unsigned long, int, unsigned long,
11299 unsigned long, enum memmap_context);
11300 extern void setup_per_zone_pages_min(void);
11301 extern void mem_init(void);
11302 extern void show_mem(void);
11303 extern void si_meminfo(struct sysinfo * val);
11304 extern void si_meminfo_node(struct sysinfo *val, int nid);
11305 extern int after_bootmem;
11310 static inline __attribute__((always_inline)) void setup_per_cpu_pageset(void) {}
11314 void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old);
11315 void vma_prio_tree_insert(struct vm_area_struct *, struct prio_tree_root *);
11316 void vma_prio_tree_remove(struct vm_area_struct *, struct prio_tree_root *);
11317 struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma,
11318 struct prio_tree_iter *iter);
11324 static inline __attribute__((always_inline)) void vma_nonlinear_insert(struct vm_area_struct *vma,
11325 struct list_head *list)
11327 vma->shared.vm_set.parent = ((void *)0);
11328 list_add_tail(&vma->shared.vm_set.list, list);
11332 extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin);
11333 extern void vma_adjust(struct vm_area_struct *vma, unsigned long start,
11334 unsigned long end, unsigned long pgoff, struct vm_area_struct *insert);
11335 extern struct vm_area_struct *vma_merge(struct mm_struct *,
11336 struct vm_area_struct *prev, unsigned long addr, unsigned long end,
11337 unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long,
11338 struct mempolicy *);
11339 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
11340 extern int split_vma(struct mm_struct *,
11341 struct vm_area_struct *, unsigned long addr, int new_below);
11342 extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
11343 extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
11344 struct rb_node **, struct rb_node *);
11345 extern void unlink_file_vma(struct vm_area_struct *);
11346 extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
11347 unsigned long addr, unsigned long len, unsigned long pgoff);
11348 extern void exit_mmap(struct mm_struct *);
11350 extern int mm_take_all_locks(struct mm_struct *mm);
11351 extern void mm_drop_all_locks(struct mm_struct *mm);
11355 extern void added_exe_file_vma(struct mm_struct *mm);
11356 extern void removed_exe_file_vma(struct mm_struct *mm);
11357 # 1105 "include/linux/mm.h"
11358 extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
11359 extern int install_special_mapping(struct mm_struct *mm,
11360 unsigned long addr, unsigned long len,
11361 unsigned long flags, struct page **pages);
11363 extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
11365 extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
11366 unsigned long len, unsigned long prot,
11367 unsigned long flag, unsigned long pgoff);
11368 extern unsigned long mmap_region(struct file *file, unsigned long addr,
11369 unsigned long len, unsigned long flags,
11370 unsigned int vm_flags, unsigned long pgoff,
11373 static inline __attribute__((always_inline)) unsigned long do_mmap(struct file *file, unsigned long addr,
11374 unsigned long len, unsigned long prot,
11375 unsigned long flag, unsigned long offset)
11377 unsigned long ret = -22;
11378 if ((offset + (((len)+((typeof(len))((1UL << 12))-1))&~((typeof(len))((1UL << 12))-1))) < offset)
11380 if (!(offset & ~(~((1UL << 12)-1))))
11381 ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> 12);
11386 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
11388 extern unsigned long do_brk(unsigned long, unsigned long);
11391 extern unsigned long page_unuse(struct page *);
11392 extern void truncate_inode_pages(struct address_space *, loff_t);
11393 extern void truncate_inode_pages_range(struct address_space *,
11394 loff_t lstart, loff_t lend);
11397 extern int filemap_fault(struct vm_area_struct *, struct vm_fault *);
11400 int write_one_page(struct page *page, int wait);
11406 int do_page_cache_readahead(struct address_space *mapping, struct file *filp,
11407 unsigned long offset, unsigned long nr_to_read);
11408 int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
11409 unsigned long offset, unsigned long nr_to_read);
11411 void page_cache_sync_readahead(struct address_space *mapping,
11412 struct file_ra_state *ra,
11414 unsigned long offset,
11415 unsigned long size);
11417 void page_cache_async_readahead(struct address_space *mapping,
11418 struct file_ra_state *ra,
11421 unsigned long offset,
11422 unsigned long size);
11424 unsigned long max_sane_readahead(unsigned long nr);
11427 extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
11431 extern int expand_stack_downwards(struct vm_area_struct *vma,
11432 unsigned long address);
11435 extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
11436 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
11437 struct vm_area_struct **pprev);
11441 static inline __attribute__((always_inline)) struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
11443 struct vm_area_struct * vma = find_vma(mm,start_addr);
11445 if (vma && end_addr <= vma->vm_start)
11450 static inline __attribute__((always_inline)) unsigned long vma_pages(struct vm_area_struct *vma)
11452 return (vma->vm_end - vma->vm_start) >> 12;
11455 pgprot_t vm_get_page_prot(unsigned long vm_flags);
11456 struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
11457 int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
11458 unsigned long pfn, unsigned long size, pgprot_t);
11459 int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
11460 int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
11461 unsigned long pfn);
11462 int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
11463 unsigned long pfn);
11465 struct page *follow_page(struct vm_area_struct *, unsigned long address,
11466 unsigned int foll_flags);
11472 typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
11474 extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
11475 unsigned long size, pte_fn_t fn, void *data);
11478 void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
11479 # 1246 "include/linux/mm.h"
11480 static inline __attribute__((always_inline)) void
11481 kernel_map_pages(struct page *page, int numpages, int enable) {}
11482 static inline __attribute__((always_inline)) void enable_debug_pagealloc(void)
11490 extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk);
11495 int in_gate_area_no_task(unsigned long addr);
11499 int drop_caches_sysctl_handler(struct ctl_table *, int, struct file *,
11500 void *, size_t *, loff_t *);
11501 unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
11502 unsigned long lru_pages);
11503 void drop_pagecache(void);
11511 const char * arch_vma_name(struct vm_area_struct *vma);
11512 void print_vma_addr(char *prefix, unsigned long rip);
11514 struct page *sparse_mem_map_populate(unsigned long pnum, int nid);
11515 pgd_t *vmemmap_pgd_populate(unsigned long addr, int node);
11516 pgd_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node);
11517 pmd_t *vmemmap_pmd_populate(pgd_t *pud, unsigned long addr, int node);
11518 pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node);
11519 void *vmemmap_alloc_block(unsigned long size, int node);
11520 void vmemmap_verify(pte_t *, int, unsigned long, unsigned long);
11521 int vmemmap_populate_basepages(struct page *start_page,
11522 unsigned long pages, int node);
11523 int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
11524 void vmemmap_populate_print_last(void);
11525 # 8 "include/linux/pagemap.h" 2
11528 # 1 "include/linux/highmem.h" 1
11534 # 1 "include/linux/uaccess.h" 1
11539 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 1
11540 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
11541 # 1 "include/linux/sched.h" 1
11542 # 44 "include/linux/sched.h"
11543 struct sched_param {
11544 int sched_priority;
11546 # 66 "include/linux/sched.h"
11547 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cputime.h" 1
11551 # 1 "include/asm-generic/cputime.h" 1
11558 typedef unsigned long cputime_t;
11559 # 24 "include/asm-generic/cputime.h"
11560 typedef u64 cputime64_t;
11561 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cputime.h" 2
11562 # 67 "include/linux/sched.h" 2
11565 # 1 "include/linux/sem.h" 1
11569 # 1 "include/linux/ipc.h" 1
11570 # 9 "include/linux/ipc.h"
11573 __kernel_key_t key;
11574 __kernel_uid_t uid;
11575 __kernel_gid_t gid;
11576 __kernel_uid_t cuid;
11577 __kernel_gid_t cgid;
11578 __kernel_mode_t mode;
11579 unsigned short seq;
11583 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ipcbuf.h" 1
11584 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ipcbuf.h"
11585 struct ipc64_perm {
11586 __kernel_key_t key;
11587 __kernel_uid32_t uid;
11588 __kernel_gid32_t gid;
11589 __kernel_uid32_t cuid;
11590 __kernel_gid32_t cgid;
11591 __kernel_mode_t mode;
11592 unsigned short __pad1;
11593 unsigned short seq;
11594 unsigned short __pad2;
11595 unsigned long __unused1;
11596 unsigned long __unused2;
11598 # 22 "include/linux/ipc.h" 2
11599 # 57 "include/linux/ipc.h"
11600 struct ipc_kludge {
11601 struct msgbuf *msgp;
11604 # 88 "include/linux/ipc.h"
11605 struct kern_ipc_perm
11619 # 5 "include/linux/sem.h" 2
11620 # 23 "include/linux/sem.h"
11622 struct ipc_perm sem_perm;
11623 __kernel_time_t sem_otime;
11624 __kernel_time_t sem_ctime;
11625 struct sem *sem_base;
11626 struct sem_queue *sem_pending;
11627 struct sem_queue **sem_pending_last;
11628 struct sem_undo *undo;
11629 unsigned short sem_nsems;
11633 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sembuf.h" 1
11634 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sembuf.h"
11635 struct semid64_ds {
11636 struct ipc64_perm sem_perm;
11637 __kernel_time_t sem_otime;
11638 unsigned long __unused1;
11639 __kernel_time_t sem_ctime;
11640 unsigned long __unused2;
11641 unsigned long sem_nsems;
11642 unsigned long __unused3;
11643 unsigned long __unused4;
11645 # 36 "include/linux/sem.h" 2
11649 unsigned short sem_num;
11657 struct semid_ds *buf;
11658 unsigned short *array;
11659 struct seminfo *__buf;
11675 # 83 "include/linux/sem.h"
11676 struct task_struct;
11686 struct kern_ipc_perm sem_perm;
11689 struct sem *sem_base;
11690 struct list_head sem_pending;
11691 struct list_head list_id;
11692 unsigned long sem_nsems;
11697 struct list_head list;
11698 struct task_struct *sleeper;
11699 struct sem_undo *undo;
11702 struct sembuf *sops;
11711 struct list_head list_proc;
11713 struct rcu_head rcu;
11714 struct sem_undo_list *ulp;
11715 struct list_head list_id;
11723 struct sem_undo_list {
11726 struct list_head list_proc;
11730 struct sem_undo_list *undo_list;
11735 extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk);
11736 extern void exit_sem(struct task_struct *tsk);
11737 # 70 "include/linux/sched.h" 2
11738 # 1 "include/linux/signal.h" 1
11742 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h" 1
11750 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h"
11751 typedef unsigned long old_sigset_t;
11754 unsigned long sig[(64 / 32)];
11756 # 107 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h"
11757 # 1 "include/asm-generic/signal.h" 1
11758 # 17 "include/asm-generic/signal.h"
11759 typedef void __signalfn_t(int);
11760 typedef __signalfn_t *__sighandler_t;
11762 typedef void __restorefn_t(void);
11763 typedef __restorefn_t *__sigrestore_t;
11764 # 108 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h" 2
11767 struct old_sigaction {
11768 __sighandler_t sa_handler;
11769 old_sigset_t sa_mask;
11770 unsigned long sa_flags;
11771 void (*sa_restorer) (void);
11775 __sighandler_t sa_handler;
11776 unsigned long sa_flags;
11777 void (*sa_restorer) (void);
11781 struct k_sigaction {
11782 struct sigaction sa;
11784 # 145 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h"
11785 typedef struct sigaltstack {
11793 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sigcontext.h" 1
11798 struct sigcontext {
11799 unsigned long sc_r0;
11800 unsigned long sc_r1;
11801 unsigned long sc_r2;
11802 unsigned long sc_r3;
11803 unsigned long sc_r4;
11804 unsigned long sc_r5;
11805 unsigned long sc_r6;
11806 unsigned long sc_r7;
11807 unsigned long sc_p0;
11808 unsigned long sc_p1;
11809 unsigned long sc_p2;
11810 unsigned long sc_p3;
11811 unsigned long sc_p4;
11812 unsigned long sc_p5;
11813 unsigned long sc_usp;
11814 unsigned long sc_a0w;
11815 unsigned long sc_a1w;
11816 unsigned long sc_a0x;
11817 unsigned long sc_a1x;
11818 unsigned long sc_astat;
11819 unsigned long sc_rets;
11820 unsigned long sc_pc;
11821 unsigned long sc_retx;
11822 unsigned long sc_fp;
11823 unsigned long sc_i0;
11824 unsigned long sc_i1;
11825 unsigned long sc_i2;
11826 unsigned long sc_i3;
11827 unsigned long sc_m0;
11828 unsigned long sc_m1;
11829 unsigned long sc_m2;
11830 unsigned long sc_m3;
11831 unsigned long sc_l0;
11832 unsigned long sc_l1;
11833 unsigned long sc_l2;
11834 unsigned long sc_l3;
11835 unsigned long sc_b0;
11836 unsigned long sc_b1;
11837 unsigned long sc_b2;
11838 unsigned long sc_b3;
11839 unsigned long sc_lc0;
11840 unsigned long sc_lc1;
11841 unsigned long sc_lt0;
11842 unsigned long sc_lt1;
11843 unsigned long sc_lb0;
11844 unsigned long sc_lb1;
11845 unsigned long sc_seqstat;
11847 # 154 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h" 2
11848 # 5 "include/linux/signal.h" 2
11849 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/siginfo.h" 1
11854 # 1 "include/asm-generic/siginfo.h" 1
11861 typedef union sigval {
11865 # 40 "include/asm-generic/siginfo.h"
11866 typedef struct siginfo {
11872 int _pad[((128 - (3 * sizeof(int))) / sizeof(int))];
11884 char _pad[sizeof( uid_t) - sizeof(int)];
11920 # 253 "include/asm-generic/siginfo.h"
11921 typedef struct sigevent {
11922 sigval_t sigev_value;
11926 int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))];
11930 void (*_function)(sigval_t);
11943 void do_schedule_next_timer(struct siginfo *info);
11949 static inline __attribute__((always_inline)) void copy_siginfo(struct siginfo *to, struct siginfo *from)
11951 if (from->si_code < 0)
11952 memcpy(to, from, sizeof(*to));
11955 memcpy(to, from, (3 * sizeof(int)) + sizeof(from->_sifields._sigchld));
11960 extern int copy_siginfo_to_user(struct siginfo *to, struct siginfo *from);
11961 # 6 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/siginfo.h" 2
11962 # 6 "include/linux/signal.h" 2
11963 # 14 "include/linux/signal.h"
11965 struct list_head list;
11968 struct user_struct *user;
11974 struct sigpending {
11975 struct list_head list;
11978 # 38 "include/linux/signal.h"
11979 static inline __attribute__((always_inline)) void sigaddset(sigset_t *set, int _sig)
11981 unsigned long sig = _sig - 1;
11982 if ((64 / 32) == 1)
11983 set->sig[0] |= 1UL << sig;
11985 set->sig[sig / 32] |= 1UL << (sig % 32);
11988 static inline __attribute__((always_inline)) void sigdelset(sigset_t *set, int _sig)
11990 unsigned long sig = _sig - 1;
11991 if ((64 / 32) == 1)
11992 set->sig[0] &= ~(1UL << sig);
11994 set->sig[sig / 32] &= ~(1UL << (sig % 32));
11997 static inline __attribute__((always_inline)) int sigismember(sigset_t *set, int _sig)
11999 unsigned long sig = _sig - 1;
12000 if ((64 / 32) == 1)
12001 return 1 & (set->sig[0] >> sig);
12003 return 1 & (set->sig[sig / 32] >> (sig % 32));
12006 static inline __attribute__((always_inline)) int sigfindinword(unsigned long word)
12008 return __ffs(~(~word));
12013 static inline __attribute__((always_inline)) int sigisemptyset(sigset_t *set)
12015 extern void _NSIG_WORDS_is_unsupported_size(void);
12016 switch ((64 / 32)) {
12018 return (set->sig[3] | set->sig[2] |
12019 set->sig[1] | set->sig[0]) == 0;
12021 return (set->sig[1] | set->sig[0]) == 0;
12023 return set->sig[0] == 0;
12025 _NSIG_WORDS_is_unsupported_size();
12029 # 119 "include/linux/signal.h"
12030 static inline __attribute__((always_inline)) void sigorsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) | (b3)); r->sig[2] = ((a2) | (b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) | (b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) | (b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } }
12033 static inline __attribute__((always_inline)) void sigandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) & (b3)); r->sig[2] = ((a2) & (b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) & (b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) & (b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } }
12036 static inline __attribute__((always_inline)) void signandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) & ~(b3)); r->sig[2] = ((a2) & ~(b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) & ~(b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) & ~(b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } }
12037 # 149 "include/linux/signal.h"
12038 static inline __attribute__((always_inline)) void signotset(sigset_t *set) { extern void _NSIG_WORDS_is_unsupported_size(void); switch ((64 / 32)) { case 4: set->sig[3] = (~(set->sig[3])); set->sig[2] = (~(set->sig[2])); case 2: set->sig[1] = (~(set->sig[1])); case 1: set->sig[0] = (~(set->sig[0])); break; default: _NSIG_WORDS_is_unsupported_size(); } }
12043 static inline __attribute__((always_inline)) void sigemptyset(sigset_t *set)
12045 switch ((64 / 32)) {
12047 memset(set, 0, sizeof(sigset_t));
12049 case 2: set->sig[1] = 0;
12050 case 1: set->sig[0] = 0;
12055 static inline __attribute__((always_inline)) void sigfillset(sigset_t *set)
12057 switch ((64 / 32)) {
12059 memset(set, -1, sizeof(sigset_t));
12061 case 2: set->sig[1] = -1;
12062 case 1: set->sig[0] = -1;
12069 static inline __attribute__((always_inline)) void sigaddsetmask(sigset_t *set, unsigned long mask)
12071 set->sig[0] |= mask;
12074 static inline __attribute__((always_inline)) void sigdelsetmask(sigset_t *set, unsigned long mask)
12076 set->sig[0] &= ~mask;
12079 static inline __attribute__((always_inline)) int sigtestsetmask(sigset_t *set, unsigned long mask)
12081 return (set->sig[0] & mask) != 0;
12084 static inline __attribute__((always_inline)) void siginitset(sigset_t *set, unsigned long mask)
12086 set->sig[0] = mask;
12087 switch ((64 / 32)) {
12089 memset(&set->sig[1], 0, sizeof(long)*((64 / 32)-1));
12091 case 2: set->sig[1] = 0;
12096 static inline __attribute__((always_inline)) void siginitsetinv(sigset_t *set, unsigned long mask)
12098 set->sig[0] = ~mask;
12099 switch ((64 / 32)) {
12101 memset(&set->sig[1], -1, sizeof(long)*((64 / 32)-1));
12103 case 2: set->sig[1] = -1;
12110 static inline __attribute__((always_inline)) void init_sigpending(struct sigpending *sig)
12112 sigemptyset(&sig->signal);
12113 INIT_LIST_HEAD(&sig->list);
12116 extern void flush_sigqueue(struct sigpending *queue);
12119 static inline __attribute__((always_inline)) int valid_signal(unsigned long sig)
12121 return sig <= 64 ? 1 : 0;
12124 extern int next_signal(struct sigpending *pending, sigset_t *mask);
12125 extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p);
12126 extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *);
12127 extern long do_sigpending(void *, unsigned long);
12128 extern int sigprocmask(int, sigset_t *, sigset_t *);
12129 extern int show_unhandled_signals;
12132 extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
12133 extern void exit_signals(struct task_struct *tsk);
12135 extern struct kmem_cache *sighand_cachep;
12137 int unhandled_signal(struct task_struct *tsk, int sig);
12138 # 373 "include/linux/signal.h"
12139 void signals_init(void);
12140 # 71 "include/linux/sched.h" 2
12141 # 1 "include/linux/fs_struct.h" 1
12151 struct path root, pwd;
12160 extern struct kmem_cache *fs_cachep;
12162 extern void exit_fs(struct task_struct *);
12163 extern void set_fs_root(struct fs_struct *, struct path *);
12164 extern void set_fs_pwd(struct fs_struct *, struct path *);
12165 extern struct fs_struct *copy_fs_struct(struct fs_struct *);
12166 extern void put_fs_struct(struct fs_struct *);
12167 # 72 "include/linux/sched.h" 2
12173 # 1 "include/linux/proportions.h" 1
12174 # 12 "include/linux/proportions.h"
12175 # 1 "include/linux/percpu_counter.h" 1
12176 # 78 "include/linux/percpu_counter.h"
12177 struct percpu_counter {
12181 static inline __attribute__((always_inline)) int percpu_counter_init(struct percpu_counter *fbc, s64 amount)
12183 fbc->count = amount;
12189 static inline __attribute__((always_inline)) void percpu_counter_destroy(struct percpu_counter *fbc)
12193 static inline __attribute__((always_inline)) void percpu_counter_set(struct percpu_counter *fbc, s64 amount)
12195 fbc->count = amount;
12201 static inline __attribute__((always_inline)) void
12202 percpu_counter_add(struct percpu_counter *fbc, s64 amount)
12205 fbc->count += amount;
12209 static inline __attribute__((always_inline)) s64 percpu_counter_read(struct percpu_counter *fbc)
12214 static inline __attribute__((always_inline)) s64 percpu_counter_read_positive(struct percpu_counter *fbc)
12219 static inline __attribute__((always_inline)) s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
12221 return percpu_counter_read_positive(fbc);
12224 static inline __attribute__((always_inline)) s64 percpu_counter_sum(struct percpu_counter *fbc)
12226 return percpu_counter_read(fbc);
12231 static inline __attribute__((always_inline)) void percpu_counter_inc(struct percpu_counter *fbc)
12233 percpu_counter_add(fbc, 1);
12236 static inline __attribute__((always_inline)) void percpu_counter_dec(struct percpu_counter *fbc)
12238 percpu_counter_add(fbc, -1);
12241 static inline __attribute__((always_inline)) void percpu_counter_sub(struct percpu_counter *fbc, s64 amount)
12243 percpu_counter_add(fbc, -amount);
12245 # 13 "include/linux/proportions.h" 2
12249 struct prop_global {
12262 struct percpu_counter events;
12270 struct prop_descriptor {
12272 struct prop_global pg[2];
12273 struct mutex mutex;
12276 int prop_descriptor_init(struct prop_descriptor *pd, int shift);
12277 void prop_change_shift(struct prop_descriptor *pd, int new_shift);
12283 struct prop_local_percpu {
12287 struct percpu_counter events;
12293 unsigned long period;
12297 int prop_local_init_percpu(struct prop_local_percpu *pl);
12298 void prop_local_destroy_percpu(struct prop_local_percpu *pl);
12299 void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl);
12300 void prop_fraction_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl,
12301 long *numerator, long *denominator);
12303 static inline __attribute__((always_inline))
12304 void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl)
12306 unsigned long flags;
12308 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
12309 __prop_inc_percpu(pd, pl);
12310 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
12312 # 89 "include/linux/proportions.h"
12313 void __prop_inc_percpu_max(struct prop_descriptor *pd,
12314 struct prop_local_percpu *pl, long frac);
12321 struct prop_local_single {
12325 unsigned long events;
12331 unsigned long period;
12340 int prop_local_init_single(struct prop_local_single *pl);
12341 void prop_local_destroy_single(struct prop_local_single *pl);
12342 void __prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl);
12343 void prop_fraction_single(struct prop_descriptor *pd, struct prop_local_single *pl,
12344 long *numerator, long *denominator);
12346 static inline __attribute__((always_inline))
12347 void prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl)
12349 unsigned long flags;
12351 __asm__ __volatile__( "cli %0;" "sti %1;" : "=&d" (flags) : "d" (0x3F) );
12352 __prop_inc_single(pd, pl);
12353 do { if ((((flags) & ~0x3f) != 0)) __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) ); } while (0);
12355 # 78 "include/linux/sched.h" 2
12356 # 1 "include/linux/seccomp.h" 1
12357 # 24 "include/linux/seccomp.h"
12358 typedef struct { } seccomp_t;
12362 static inline __attribute__((always_inline)) long prctl_get_seccomp(void)
12367 static inline __attribute__((always_inline)) long prctl_set_seccomp(unsigned long arg2)
12371 # 79 "include/linux/sched.h" 2
12373 # 1 "include/linux/rtmutex.h" 1
12374 # 16 "include/linux/rtmutex.h"
12375 # 1 "include/linux/plist.h" 1
12376 # 80 "include/linux/plist.h"
12377 struct plist_head {
12378 struct list_head prio_list;
12379 struct list_head node_list;
12385 struct plist_node {
12387 struct plist_head plist;
12389 # 127 "include/linux/plist.h"
12390 static inline __attribute__((always_inline)) void
12391 plist_head_init(struct plist_head *head, spinlock_t *lock)
12393 INIT_LIST_HEAD(&head->prio_list);
12394 INIT_LIST_HEAD(&head->node_list);
12405 static inline __attribute__((always_inline)) void plist_node_init(struct plist_node *node, int prio)
12408 plist_head_init(&node->plist, ((void *)0));
12411 extern void plist_add(struct plist_node *node, struct plist_head *head);
12412 extern void plist_del(struct plist_node *node, struct plist_head *head);
12413 # 195 "include/linux/plist.h"
12414 static inline __attribute__((always_inline)) int plist_head_empty(const struct plist_head *head)
12416 return list_empty(&head->node_list);
12423 static inline __attribute__((always_inline)) int plist_node_empty(const struct plist_node *node)
12425 return plist_head_empty(&node->plist);
12427 # 234 "include/linux/plist.h"
12428 static inline __attribute__((always_inline)) struct plist_node* plist_first(const struct plist_head *head)
12430 return ({ const typeof( ((struct plist_node *)0)->plist.node_list ) *__mptr = (head->node_list.next); (struct plist_node *)( (char *)__mptr - __builtin_offsetof(struct plist_node,plist.node_list) );});
12433 # 17 "include/linux/rtmutex.h" 2
12434 # 26 "include/linux/rtmutex.h"
12436 spinlock_t wait_lock;
12437 struct plist_head wait_list;
12438 struct task_struct *owner;
12447 struct rt_mutex_waiter;
12448 struct hrtimer_sleeper;
12455 static inline __attribute__((always_inline)) int rt_mutex_debug_check_no_locks_freed(const void *from,
12460 # 80 "include/linux/rtmutex.h"
12461 static inline __attribute__((always_inline)) int rt_mutex_is_locked(struct rt_mutex *lock)
12463 return lock->owner != ((void *)0);
12466 extern void __rt_mutex_init(struct rt_mutex *lock, const char *name);
12467 extern void rt_mutex_destroy(struct rt_mutex *lock);
12469 extern void rt_mutex_lock(struct rt_mutex *lock);
12470 extern int rt_mutex_lock_interruptible(struct rt_mutex *lock,
12471 int detect_deadlock);
12472 extern int rt_mutex_timed_lock(struct rt_mutex *lock,
12473 struct hrtimer_sleeper *timeout,
12474 int detect_deadlock);
12476 extern int rt_mutex_trylock(struct rt_mutex *lock);
12478 extern void rt_mutex_unlock(struct rt_mutex *lock);
12479 # 81 "include/linux/sched.h" 2
12483 # 1 "include/linux/resource.h" 1
12489 struct task_struct;
12490 # 24 "include/linux/resource.h"
12492 struct timeval ru_utime;
12493 struct timeval ru_stime;
12511 unsigned long rlim_cur;
12512 unsigned long rlim_max;
12514 # 71 "include/linux/resource.h"
12515 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/resource.h" 1
12519 # 1 "include/asm-generic/resource.h" 1
12520 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/resource.h" 2
12521 # 72 "include/linux/resource.h" 2
12523 int getrusage(struct task_struct *p, int who, struct rusage *ru);
12524 # 85 "include/linux/sched.h" 2
12526 # 1 "include/linux/hrtimer.h" 1
12527 # 26 "include/linux/hrtimer.h"
12528 struct hrtimer_clock_base;
12529 struct hrtimer_cpu_base;
12534 enum hrtimer_mode {
12542 enum hrtimer_restart {
12546 # 59 "include/linux/hrtimer.h"
12547 enum hrtimer_cb_mode {
12548 HRTIMER_CB_SOFTIRQ,
12549 HRTIMER_CB_IRQSAFE_PERCPU,
12550 HRTIMER_CB_IRQSAFE_UNLOCKED,
12552 # 124 "include/linux/hrtimer.h"
12554 struct rb_node node;
12556 ktime_t _softexpires;
12557 enum hrtimer_restart (*function)(struct hrtimer *);
12558 struct hrtimer_clock_base *base;
12559 unsigned long state;
12560 struct list_head cb_entry;
12561 enum hrtimer_cb_mode cb_mode;
12565 char start_comm[16];
12568 # 147 "include/linux/hrtimer.h"
12569 struct hrtimer_sleeper {
12570 struct hrtimer timer;
12571 struct task_struct *task;
12573 # 164 "include/linux/hrtimer.h"
12574 struct hrtimer_clock_base {
12575 struct hrtimer_cpu_base *cpu_base;
12577 struct rb_root active;
12578 struct rb_node *first;
12579 ktime_t resolution;
12580 ktime_t (*get_time)(void);
12581 ktime_t softirq_time;
12586 # 196 "include/linux/hrtimer.h"
12587 struct hrtimer_cpu_base {
12589 struct hrtimer_clock_base clock_base[2];
12590 struct list_head cb_pending;
12598 static inline __attribute__((always_inline)) void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)
12600 timer->_expires = time;
12601 timer->_softexpires = time;
12604 static inline __attribute__((always_inline)) void hrtimer_set_expires_range(struct hrtimer *timer, ktime_t time, ktime_t delta)
12606 timer->_softexpires = time;
12607 timer->_expires = ktime_add_safe(time, delta);
12610 static inline __attribute__((always_inline)) void hrtimer_set_expires_range_ns(struct hrtimer *timer, ktime_t time, unsigned long delta)
12612 timer->_softexpires = time;
12613 timer->_expires = ktime_add_safe(time, ns_to_ktime(delta));
12616 static inline __attribute__((always_inline)) void hrtimer_set_expires_tv64(struct hrtimer *timer, s64 tv64)
12618 timer->_expires.tv64 = tv64;
12619 timer->_softexpires.tv64 = tv64;
12622 static inline __attribute__((always_inline)) void hrtimer_add_expires(struct hrtimer *timer, ktime_t time)
12624 timer->_expires = ktime_add_safe(timer->_expires, time);
12625 timer->_softexpires = ktime_add_safe(timer->_softexpires, time);
12628 static inline __attribute__((always_inline)) void hrtimer_add_expires_ns(struct hrtimer *timer, u64 ns)
12630 timer->_expires = ktime_add_ns(timer->_expires, ns);
12631 timer->_softexpires = ktime_add_ns(timer->_softexpires, ns);
12634 static inline __attribute__((always_inline)) ktime_t hrtimer_get_expires(const struct hrtimer *timer)
12636 return timer->_expires;
12639 static inline __attribute__((always_inline)) ktime_t hrtimer_get_softexpires(const struct hrtimer *timer)
12641 return timer->_softexpires;
12644 static inline __attribute__((always_inline)) s64 hrtimer_get_expires_tv64(const struct hrtimer *timer)
12646 return timer->_expires.tv64;
12648 static inline __attribute__((always_inline)) s64 hrtimer_get_softexpires_tv64(const struct hrtimer *timer)
12650 return timer->_softexpires.tv64;
12653 static inline __attribute__((always_inline)) s64 hrtimer_get_expires_ns(const struct hrtimer *timer)
12655 return ktime_to_ns(timer->_expires);
12658 static inline __attribute__((always_inline)) ktime_t hrtimer_expires_remaining(const struct hrtimer *timer)
12660 return ktime_sub(timer->_expires, timer->base->get_time());
12662 # 315 "include/linux/hrtimer.h"
12663 static inline __attribute__((always_inline)) void clock_was_set(void) { }
12664 static inline __attribute__((always_inline)) void hrtimer_peek_ahead_timers(void) { }
12666 static inline __attribute__((always_inline)) void hres_timers_resume(void) { }
12672 static inline __attribute__((always_inline)) ktime_t hrtimer_cb_get_time(struct hrtimer *timer)
12674 return timer->base->softirq_time;
12677 static inline __attribute__((always_inline)) int hrtimer_is_hres_active(struct hrtimer *timer)
12683 extern ktime_t ktime_get(void);
12684 extern ktime_t ktime_get_real(void);
12687 extern __typeof__(struct tick_device) per_cpu__tick_cpu_device;
12693 extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
12694 enum hrtimer_mode mode);
12702 static inline __attribute__((always_inline)) void hrtimer_init_on_stack(struct hrtimer *timer,
12703 clockid_t which_clock,
12704 enum hrtimer_mode mode)
12706 hrtimer_init(timer, which_clock, mode);
12708 static inline __attribute__((always_inline)) void destroy_hrtimer_on_stack(struct hrtimer *timer) { }
12712 extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
12713 const enum hrtimer_mode mode);
12714 extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
12715 unsigned long range_ns, const enum hrtimer_mode mode);
12716 extern int hrtimer_cancel(struct hrtimer *timer);
12717 extern int hrtimer_try_to_cancel(struct hrtimer *timer);
12719 static inline __attribute__((always_inline)) int hrtimer_start_expires(struct hrtimer *timer,
12720 enum hrtimer_mode mode)
12722 unsigned long delta;
12723 ktime_t soft, hard;
12724 soft = hrtimer_get_softexpires(timer);
12725 hard = hrtimer_get_expires(timer);
12726 delta = ktime_to_ns(ktime_sub(hard, soft));
12727 return hrtimer_start_range_ns(timer, soft, delta, mode);
12730 static inline __attribute__((always_inline)) int hrtimer_restart(struct hrtimer *timer)
12732 return hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
12736 extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
12737 extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
12739 extern ktime_t hrtimer_get_next_event(void);
12745 static inline __attribute__((always_inline)) int hrtimer_active(const struct hrtimer *timer)
12747 return timer->state != 0x00;
12753 static inline __attribute__((always_inline)) int hrtimer_is_queued(struct hrtimer *timer)
12755 return timer->state &
12763 static inline __attribute__((always_inline)) int hrtimer_callback_running(struct hrtimer *timer)
12765 return timer->state & 0x02;
12770 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval);
12773 static inline __attribute__((always_inline)) u64 hrtimer_forward_now(struct hrtimer *timer,
12776 return hrtimer_forward(timer, timer->base->get_time(), interval);
12780 extern long hrtimer_nanosleep(struct timespec *rqtp,
12781 struct timespec *rmtp,
12782 const enum hrtimer_mode mode,
12783 const clockid_t clockid);
12784 extern long hrtimer_nanosleep_restart(struct restart_block *restart_block);
12786 extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
12787 struct task_struct *tsk);
12789 extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta,
12790 const enum hrtimer_mode mode);
12791 extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode);
12794 extern void hrtimer_run_queues(void);
12795 extern void hrtimer_run_pending(void);
12798 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) hrtimers_init(void);
12801 extern u64 ktime_divns(const ktime_t kt, s64 div);
12807 extern void sysrq_timer_list_show(void);
12814 extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
12815 void *timerf, char *comm,
12816 unsigned int timer_flag);
12818 static inline __attribute__((always_inline)) void timer_stats_account_hrtimer(struct hrtimer *timer)
12820 timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
12821 timer->function, timer->start_comm, 0);
12824 extern void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer,
12827 static inline __attribute__((always_inline)) void timer_stats_hrtimer_set_start_info(struct hrtimer *timer)
12829 __timer_stats_hrtimer_set_start_info(timer, __builtin_return_address(0));
12832 static inline __attribute__((always_inline)) void timer_stats_hrtimer_clear_start_info(struct hrtimer *timer)
12834 timer->start_site = ((void *)0);
12836 # 87 "include/linux/sched.h" 2
12837 # 1 "include/linux/task_io_accounting.h" 1
12838 # 11 "include/linux/task_io_accounting.h"
12839 struct task_io_accounting {
12840 # 45 "include/linux/task_io_accounting.h"
12842 # 88 "include/linux/sched.h" 2
12844 # 1 "include/linux/latencytop.h" 1
12845 # 33 "include/linux/latencytop.h"
12846 static inline __attribute__((always_inline)) void
12847 account_scheduler_latency(struct task_struct *task, int usecs, int inter)
12851 static inline __attribute__((always_inline)) void clear_all_latency_tracing(struct task_struct *p)
12854 # 90 "include/linux/sched.h" 2
12855 # 1 "include/linux/cred.h" 1
12856 # 91 "include/linux/sched.h" 2
12861 struct exec_domain;
12862 struct futex_pi_state;
12863 struct robust_list_head;
12865 # 116 "include/linux/sched.h"
12866 extern unsigned long avenrun[];
12867 # 130 "include/linux/sched.h"
12868 extern unsigned long total_forks;
12869 extern int nr_threads;
12870 extern __typeof__(unsigned long) per_cpu__process_counts;
12871 extern int nr_processes(void);
12872 extern unsigned long nr_running(void);
12873 extern unsigned long nr_uninterruptible(void);
12874 extern unsigned long nr_active(void);
12875 extern unsigned long nr_iowait(void);
12881 extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m);
12882 extern void proc_sched_set_task(struct task_struct *p);
12884 print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq);
12885 # 161 "include/linux/sched.h"
12886 extern unsigned long long time_sync_thresh;
12887 # 238 "include/linux/sched.h"
12888 extern rwlock_t tasklist_lock;
12889 extern spinlock_t mmlist_lock;
12891 struct task_struct;
12893 extern void sched_init(void);
12894 extern void sched_init_smp(void);
12895 extern void schedule_tail(struct task_struct *prev);
12896 extern void init_idle(struct task_struct *idle, int cpu);
12897 extern void init_idle_bootup_task(struct task_struct *idle);
12899 extern int runqueue_is_locked(void);
12900 extern void task_rq_unlock_wait(struct task_struct *p);
12902 extern cpumask_t nohz_cpu_mask;
12906 static inline __attribute__((always_inline)) int select_nohz_load_balancer(int cpu)
12912 extern unsigned long rt_needs_cpu(int cpu);
12917 extern void show_state_filter(unsigned long state_filter);
12919 static inline __attribute__((always_inline)) void show_state(void)
12921 show_state_filter(0);
12924 extern void show_regs(struct pt_regs *);
12931 extern void show_stack(struct task_struct *task, unsigned long *sp);
12933 void io_schedule(void);
12934 long io_schedule_timeout(long timeout);
12936 extern void cpu_init (void);
12937 extern void trap_init(void);
12938 extern void account_process_tick(struct task_struct *task, int user);
12939 extern void update_process_times(int user);
12940 extern void scheduler_tick(void);
12942 extern void sched_show_task(struct task_struct *p);
12943 # 304 "include/linux/sched.h"
12944 static inline __attribute__((always_inline)) void softlockup_tick(void)
12947 static inline __attribute__((always_inline)) void spawn_softlockup_task(void)
12950 static inline __attribute__((always_inline)) void touch_softlockup_watchdog(void)
12953 static inline __attribute__((always_inline)) void touch_all_softlockup_watchdogs(void)
12963 extern char __sched_text_start[], __sched_text_end[];
12966 extern int in_sched_functions(unsigned long addr);
12969 extern signed long schedule_timeout(signed long timeout);
12970 extern signed long schedule_timeout_interruptible(signed long timeout);
12971 extern signed long schedule_timeout_killable(signed long timeout);
12972 extern signed long schedule_timeout_uninterruptible(signed long timeout);
12973 void schedule(void);
12976 struct user_namespace;
12981 extern int sysctl_max_map_count;
12983 # 1 "include/linux/aio.h" 1
12989 # 1 "include/linux/aio_abi.h" 1
12990 # 32 "include/linux/aio_abi.h"
12991 typedef unsigned long aio_context_t;
12994 IOCB_CMD_PREAD = 0,
12995 IOCB_CMD_PWRITE = 1,
12996 IOCB_CMD_FSYNC = 2,
12997 IOCB_CMD_FDSYNC = 3,
13003 IOCB_CMD_PREADV = 7,
13004 IOCB_CMD_PWRITEV = 8,
13006 # 57 "include/linux/aio_abi.h"
13013 # 78 "include/linux/aio_abi.h"
13017 __u32 aio_key, aio_reserved1;
13021 __u16 aio_lio_opcode;
13030 __u64 aio_reserved2;
13041 # 7 "include/linux/aio.h" 2
13042 # 1 "include/linux/uio.h" 1
13043 # 16 "include/linux/uio.h"
13047 __kernel_size_t iov_len;
13056 # 45 "include/linux/uio.h"
13057 static inline __attribute__((always_inline)) size_t iov_length(const struct iovec *iov, unsigned long nr_segs)
13062 for (seg = 0; seg < nr_segs; seg++)
13063 ret += iov[seg].iov_len;
13067 unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to);
13068 # 8 "include/linux/aio.h" 2
13076 # 86 "include/linux/aio.h"
13078 struct list_head ki_run_list;
13079 unsigned long ki_flags;
13083 struct file *ki_filp;
13084 struct kioctx *ki_ctx;
13085 int (*ki_cancel)(struct kiocb *, struct io_event *);
13086 ssize_t (*ki_retry)(struct kiocb *);
13087 void (*ki_dtor)(struct kiocb *);
13091 struct task_struct *tsk;
13094 __u64 ki_user_data;
13095 wait_queue_t ki_wait;
13100 unsigned short ki_opcode;
13104 struct iovec ki_inline_vec;
13105 struct iovec *ki_iovec;
13106 unsigned long ki_nr_segs;
13107 unsigned long ki_cur_seg;
13109 struct list_head ki_list;
13116 struct file *ki_eventfd;
13118 # 148 "include/linux/aio.h"
13126 unsigned compat_features;
13127 unsigned incompat_features;
13128 unsigned header_length;
13131 struct io_event io_events[0];
13137 struct aio_ring_info {
13138 unsigned long mmap_base;
13139 unsigned long mmap_size;
13141 struct page **ring_pages;
13142 spinlock_t ring_lock;
13147 struct page *internal_pages[8];
13153 struct mm_struct *mm;
13156 unsigned long user_id;
13157 struct kioctx *next;
13159 wait_queue_head_t wait;
13161 spinlock_t ctx_lock;
13164 struct list_head active_reqs;
13165 struct list_head run_list;
13170 struct aio_ring_info ring_info;
13172 struct delayed_work wq;
13176 extern unsigned aio_max_size;
13177 # 215 "include/linux/aio.h"
13178 static inline __attribute__((always_inline)) ssize_t wait_on_sync_kiocb(struct kiocb *iocb) { return 0; }
13179 static inline __attribute__((always_inline)) int aio_put_req(struct kiocb *iocb) { return 0; }
13180 static inline __attribute__((always_inline)) void kick_iocb(struct kiocb *iocb) { }
13181 static inline __attribute__((always_inline)) int aio_complete(struct kiocb *iocb, long res, long res2) { return 0; }
13183 static inline __attribute__((always_inline)) void exit_aio(struct mm_struct *mm) { }
13190 static inline __attribute__((always_inline)) struct kiocb *list_kiocb(struct list_head *h)
13192 return ({ const typeof( ((struct kiocb *)0)->ki_list ) *__mptr = (h); (struct kiocb *)( (char *)__mptr - __builtin_offsetof(struct kiocb,ki_list) );});
13196 extern unsigned long aio_nr;
13197 extern unsigned long aio_max_nr;
13198 # 344 "include/linux/sched.h" 2
13200 extern unsigned long
13201 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
13202 unsigned long, unsigned long);
13203 extern unsigned long
13204 arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
13205 unsigned long len, unsigned long pgoff,
13206 unsigned long flags);
13207 extern void arch_unmap_area(struct mm_struct *, unsigned long);
13208 extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long);
13209 # 391 "include/linux/sched.h"
13210 extern void set_dumpable(struct mm_struct *mm, int value);
13211 extern int get_dumpable(struct mm_struct *mm);
13212 # 422 "include/linux/sched.h"
13213 struct sighand_struct {
13215 struct k_sigaction action[64];
13216 spinlock_t siglock;
13217 wait_queue_head_t signalfd_wqh;
13220 struct pacct_struct {
13223 unsigned long ac_mem;
13224 cputime_t ac_utime, ac_stime;
13225 unsigned long ac_minflt, ac_majflt;
13227 # 448 "include/linux/sched.h"
13228 struct task_cputime {
13231 unsigned long long sum_exec_runtime;
13233 # 466 "include/linux/sched.h"
13234 struct thread_group_cputime {
13235 struct task_cputime *totals;
13237 # 477 "include/linux/sched.h"
13238 struct signal_struct {
13242 wait_queue_head_t wait_chldexit;
13245 struct task_struct *curr_target;
13248 struct sigpending shared_pending;
13251 int group_exit_code;
13258 struct task_struct *group_exit_task;
13261 int group_stop_count;
13262 unsigned int flags;
13265 struct list_head posix_timers;
13268 struct hrtimer real_timer;
13269 struct pid *leader_pid;
13270 ktime_t it_real_incr;
13273 cputime_t it_prof_expires, it_virt_expires;
13274 cputime_t it_prof_incr, it_virt_incr;
13280 struct thread_group_cputime cputime;
13283 struct task_cputime cputime_expires;
13285 struct list_head cpu_timers[3];
13286 # 533 "include/linux/sched.h"
13288 pid_t pgrp __attribute__((deprecated));
13292 struct pid *tty_old_pgrp;
13295 pid_t session __attribute__((deprecated));
13302 struct tty_struct *tty;
13310 cputime_t cutime, cstime;
13313 unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
13314 unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
13315 unsigned long inblock, oublock, cinblock, coublock;
13316 struct task_io_accounting ioac;
13317 # 573 "include/linux/sched.h"
13318 struct rlimit rlim[16];
13319 # 582 "include/linux/sched.h"
13320 struct pacct_struct pacct;
13321 # 591 "include/linux/sched.h"
13323 # 615 "include/linux/sched.h"
13324 static inline __attribute__((always_inline)) int signal_group_exit(const struct signal_struct *sig)
13326 return (sig->flags & 0x00000008) ||
13327 (sig->group_exit_task != ((void *)0));
13333 struct user_struct {
13335 atomic_t processes;
13337 atomic_t sigpending;
13339 atomic_t inotify_watches;
13340 atomic_t inotify_devs;
13343 atomic_t epoll_devs;
13344 atomic_t epoll_watches;
13350 unsigned long locked_shm;
13358 struct hlist_node uidhash_node;
13360 # 659 "include/linux/sched.h"
13363 extern int uids_sysfs_init(void);
13365 extern struct user_struct *find_user(uid_t);
13367 extern struct user_struct root_user;
13370 struct backing_dev_info;
13371 struct reclaim_state;
13374 struct sched_info {
13376 unsigned long pcount;
13377 unsigned long long cpu_time,
13381 unsigned long long last_arrival,
13385 unsigned int bkl_count;
13388 # 722 "include/linux/sched.h"
13389 static inline __attribute__((always_inline)) int sched_info_on(void)
13401 enum cpu_idle_type {
13407 # 881 "include/linux/sched.h"
13408 struct sched_domain_attr;
13410 static inline __attribute__((always_inline)) void
13411 partition_sched_domains(int ndoms_new, cpumask_t *doms_new,
13412 struct sched_domain_attr *dattr_new)
13420 struct group_info {
13423 gid_t small_block[32];
13427 # 916 "include/linux/sched.h"
13428 extern struct group_info *groups_alloc(int gidsetsize);
13429 extern void groups_free(struct group_info *group_info);
13430 extern int set_current_groups(struct group_info *group_info);
13431 extern int groups_search(struct group_info *group_info, gid_t grp);
13439 static inline __attribute__((always_inline)) void prefetch_stack(struct task_struct *t) { }
13442 struct audit_context;
13444 struct pipe_inode_info;
13445 struct uts_namespace;
13448 struct sched_domain;
13450 struct sched_class {
13451 const struct sched_class *next;
13453 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup);
13454 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep);
13455 void (*yield_task) (struct rq *rq);
13457 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int sync);
13459 struct task_struct * (*pick_next_task) (struct rq *rq);
13460 void (*put_prev_task) (struct rq *rq, struct task_struct *p);
13461 # 972 "include/linux/sched.h"
13462 void (*set_curr_task) (struct rq *rq);
13463 void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
13464 void (*task_new) (struct rq *rq, struct task_struct *p);
13466 void (*switched_from) (struct rq *this_rq, struct task_struct *task,
13468 void (*switched_to) (struct rq *this_rq, struct task_struct *task,
13470 void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
13471 int oldprio, int running);
13478 struct load_weight {
13479 unsigned long weight, inv_weight;
13481 # 1002 "include/linux/sched.h"
13482 struct sched_entity {
13483 struct load_weight load;
13484 struct rb_node run_node;
13485 struct list_head group_node;
13486 unsigned int on_rq;
13489 u64 sum_exec_runtime;
13491 u64 prev_sum_exec_runtime;
13504 s64 sum_sleep_runtime;
13512 u64 nr_migrations_cold;
13513 u64 nr_failed_migrations_affine;
13514 u64 nr_failed_migrations_running;
13515 u64 nr_failed_migrations_hot;
13516 u64 nr_forced_migrations;
13517 u64 nr_forced2_migrations;
13520 u64 nr_wakeups_sync;
13521 u64 nr_wakeups_migrate;
13522 u64 nr_wakeups_local;
13523 u64 nr_wakeups_remote;
13524 u64 nr_wakeups_affine;
13525 u64 nr_wakeups_affine_attempts;
13526 u64 nr_wakeups_passive;
13527 u64 nr_wakeups_idle;
13528 # 1057 "include/linux/sched.h"
13531 struct sched_rt_entity {
13532 struct list_head run_list;
13533 unsigned long timeout;
13534 unsigned int time_slice;
13535 int nr_cpus_allowed;
13537 struct sched_rt_entity *back;
13547 struct task_struct {
13548 volatile long state;
13551 unsigned int flags;
13552 unsigned int ptrace;
13562 int prio, static_prio, normal_prio;
13563 unsigned int rt_priority;
13564 const struct sched_class *sched_class;
13565 struct sched_entity se;
13566 struct sched_rt_entity rt;
13567 # 1109 "include/linux/sched.h"
13568 unsigned char fpu_counter;
13574 unsigned int policy;
13575 cpumask_t cpus_allowed;
13583 struct sched_info sched_info;
13586 struct list_head tasks;
13588 struct mm_struct *mm, *active_mm;
13591 struct linux_binfmt *binfmt;
13593 int exit_code, exit_signal;
13596 unsigned int personality;
13597 unsigned did_exec:1;
13600 # 1151 "include/linux/sched.h"
13601 struct task_struct *real_parent;
13602 struct task_struct *parent;
13606 struct list_head children;
13607 struct list_head sibling;
13608 struct task_struct *group_leader;
13615 struct list_head ptraced;
13616 struct list_head ptrace_entry;
13619 struct pid_link pids[PIDTYPE_MAX];
13620 struct list_head thread_group;
13622 struct completion *vfork_done;
13623 int *set_child_tid;
13624 int *clear_child_tid;
13626 cputime_t utime, stime, utimescaled, stimescaled;
13628 cputime_t prev_utime, prev_stime;
13629 unsigned long nvcsw, nivcsw;
13630 struct timespec start_time;
13631 struct timespec real_start_time;
13633 unsigned long min_flt, maj_flt;
13635 struct task_cputime cputime_expires;
13636 struct list_head cpu_timers[3];
13639 uid_t uid,euid,suid,fsuid;
13640 gid_t gid,egid,sgid,fsgid;
13641 struct group_info *group_info;
13642 kernel_cap_t cap_effective, cap_inheritable, cap_permitted, cap_bset;
13643 struct user_struct *user;
13644 unsigned securebits;
13655 int link_count, total_link_count;
13658 struct sysv_sem sysvsem;
13666 struct thread_struct thread;
13668 struct fs_struct *fs;
13670 struct files_struct *files;
13672 struct nsproxy *nsproxy;
13674 struct signal_struct *signal;
13675 struct sighand_struct *sighand;
13677 sigset_t blocked, real_blocked;
13678 sigset_t saved_sigmask;
13679 struct sigpending pending;
13681 unsigned long sas_ss_sp;
13682 size_t sas_ss_size;
13683 int (*notifier)(void *priv);
13684 void *notifier_data;
13685 sigset_t *notifier_mask;
13689 struct audit_context *audit_context;
13697 u32 parent_exec_id;
13700 spinlock_t alloc_lock;
13703 spinlock_t pi_lock;
13707 struct plist_head pi_waiters;
13709 struct rt_mutex_waiter *pi_blocked_on;
13714 struct mutex_waiter *blocked_on;
13715 # 1290 "include/linux/sched.h"
13716 void *journal_info;
13719 struct bio *bio_list, **bio_tail;
13722 struct reclaim_state *reclaim_state;
13724 struct backing_dev_info *backing_dev_info;
13726 struct io_context *io_context;
13728 unsigned long ptrace_message;
13729 siginfo_t *last_siginfo;
13730 struct task_io_accounting ioac;
13731 # 1317 "include/linux/sched.h"
13732 struct css_set *cgroups;
13734 struct list_head cg_list;
13737 struct robust_list_head *robust_list;
13741 struct list_head pi_state_list;
13742 struct futex_pi_state *pi_state_cache;
13749 struct rcu_head rcu;
13754 struct pipe_inode_info *splice_pipe;
13761 struct prop_local_single dirties;
13762 # 1355 "include/linux/sched.h"
13763 unsigned long timer_slack_ns;
13764 unsigned long default_timer_slack_ns;
13766 struct list_head *scm_work_list;
13768 # 1380 "include/linux/sched.h"
13769 static inline __attribute__((always_inline)) int rt_prio(int prio)
13771 if (__builtin_expect(!!(prio < 100), 0))
13776 static inline __attribute__((always_inline)) int rt_task(struct task_struct *p)
13778 return rt_prio(p->prio);
13781 static inline __attribute__((always_inline)) void set_task_session(struct task_struct *tsk, pid_t session)
13783 tsk->signal->__session = session;
13786 static inline __attribute__((always_inline)) void set_task_pgrp(struct task_struct *tsk, pid_t pgrp)
13788 tsk->signal->__pgrp = pgrp;
13791 static inline __attribute__((always_inline)) struct pid *task_pid(struct task_struct *task)
13793 return task->pids[PIDTYPE_PID].pid;
13796 static inline __attribute__((always_inline)) struct pid *task_tgid(struct task_struct *task)
13798 return task->group_leader->pids[PIDTYPE_PID].pid;
13801 static inline __attribute__((always_inline)) struct pid *task_pgrp(struct task_struct *task)
13803 return task->group_leader->pids[PIDTYPE_PGID].pid;
13806 static inline __attribute__((always_inline)) struct pid *task_session(struct task_struct *task)
13808 return task->group_leader->pids[PIDTYPE_SID].pid;
13811 struct pid_namespace;
13812 # 1438 "include/linux/sched.h"
13813 static inline __attribute__((always_inline)) pid_t task_pid_nr(struct task_struct *tsk)
13818 pid_t task_pid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
13820 static inline __attribute__((always_inline)) pid_t task_pid_vnr(struct task_struct *tsk)
13822 return pid_vnr(task_pid(tsk));
13826 static inline __attribute__((always_inline)) pid_t task_tgid_nr(struct task_struct *tsk)
13831 pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
13833 static inline __attribute__((always_inline)) pid_t task_tgid_vnr(struct task_struct *tsk)
13835 return pid_vnr(task_tgid(tsk));
13839 static inline __attribute__((always_inline)) pid_t task_pgrp_nr(struct task_struct *tsk)
13841 return tsk->signal->__pgrp;
13844 pid_t task_pgrp_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
13846 static inline __attribute__((always_inline)) pid_t task_pgrp_vnr(struct task_struct *tsk)
13848 return pid_vnr(task_pgrp(tsk));
13852 static inline __attribute__((always_inline)) pid_t task_session_nr(struct task_struct *tsk)
13854 return tsk->signal->__session;
13857 pid_t task_session_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
13859 static inline __attribute__((always_inline)) pid_t task_session_vnr(struct task_struct *tsk)
13861 return pid_vnr(task_session(tsk));
13863 # 1498 "include/linux/sched.h"
13864 static inline __attribute__((always_inline)) int pid_alive(struct task_struct *p)
13866 return p->pids[PIDTYPE_PID].pid != ((void *)0);
13875 static inline __attribute__((always_inline)) int is_global_init(struct task_struct *tsk)
13877 return tsk->pid == 1;
13884 extern int is_container_init(struct task_struct *tsk);
13886 extern struct pid *cad_pid;
13888 extern void free_task(struct task_struct *tsk);
13891 extern void __put_task_struct(struct task_struct *t);
13893 static inline __attribute__((always_inline)) void put_task_struct(struct task_struct *t)
13895 if ((atomic_sub_return(1, (&t->usage)) == 0))
13896 __put_task_struct(t);
13899 extern cputime_t task_utime(struct task_struct *p);
13900 extern cputime_t task_stime(struct task_struct *p);
13901 extern cputime_t task_gtime(struct task_struct *p);
13902 # 1599 "include/linux/sched.h"
13903 static inline __attribute__((always_inline)) int set_cpus_allowed_ptr(struct task_struct *p,
13904 const cpumask_t *new_mask)
13906 if (!test_bit((0), (*new_mask).bits))
13911 static inline __attribute__((always_inline)) int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
13913 return set_cpus_allowed_ptr(p, &new_mask);
13916 extern unsigned long long sched_clock(void);
13918 extern void sched_clock_init(void);
13919 extern u64 sched_clock_cpu(int cpu);
13922 static inline __attribute__((always_inline)) void sched_clock_tick(void)
13926 static inline __attribute__((always_inline)) void sched_clock_idle_sleep_event(void)
13930 static inline __attribute__((always_inline)) void sched_clock_idle_wakeup_event(u64 delta_ns)
13933 # 1639 "include/linux/sched.h"
13934 extern unsigned long long cpu_clock(int cpu);
13936 extern unsigned long long
13937 task_sched_runtime(struct task_struct *task);
13938 extern unsigned long long thread_group_sched_runtime(struct task_struct *task);
13939 # 1652 "include/linux/sched.h"
13940 extern void sched_clock_idle_sleep_event(void);
13941 extern void sched_clock_idle_wakeup_event(u64 delta_ns);
13946 static inline __attribute__((always_inline)) void idle_task_exit(void) {}
13949 extern void sched_idle_next(void);
13954 static inline __attribute__((always_inline)) void wake_up_idle_cpu(int cpu) { }
13958 extern unsigned int sysctl_sched_latency;
13959 extern unsigned int sysctl_sched_min_granularity;
13960 extern unsigned int sysctl_sched_wakeup_granularity;
13961 extern unsigned int sysctl_sched_child_runs_first;
13962 extern unsigned int sysctl_sched_features;
13963 extern unsigned int sysctl_sched_migration_cost;
13964 extern unsigned int sysctl_sched_nr_migrate;
13965 extern unsigned int sysctl_sched_shares_ratelimit;
13966 extern unsigned int sysctl_sched_shares_thresh;
13968 int sched_nr_latency_handler(struct ctl_table *table, int write,
13969 struct file *file, void *buffer, size_t *length,
13972 extern unsigned int sysctl_sched_rt_period;
13973 extern int sysctl_sched_rt_runtime;
13975 int sched_rt_handler(struct ctl_table *table, int write,
13976 struct file *filp, void *buffer, size_t *lenp,
13979 extern unsigned int sysctl_sched_compat_yield;
13982 extern int rt_mutex_getprio(struct task_struct *p);
13983 extern void rt_mutex_setprio(struct task_struct *p, int prio);
13984 extern void rt_mutex_adjust_pi(struct task_struct *p);
13985 # 1705 "include/linux/sched.h"
13986 extern void set_user_nice(struct task_struct *p, long nice);
13987 extern int task_prio(const struct task_struct *p);
13988 extern int task_nice(const struct task_struct *p);
13989 extern int can_nice(const struct task_struct *p, const int nice);
13990 extern int task_curr(const struct task_struct *p);
13991 extern int idle_cpu(int cpu);
13992 extern int sched_setscheduler(struct task_struct *, int, struct sched_param *);
13993 extern int sched_setscheduler_nocheck(struct task_struct *, int,
13994 struct sched_param *);
13995 extern struct task_struct *idle_task(int cpu);
13996 extern struct task_struct *curr_task(int cpu);
13997 extern void set_curr_task(int cpu, struct task_struct *p);
14004 extern struct exec_domain default_exec_domain;
14006 union thread_union {
14007 struct thread_info thread_info;
14008 unsigned long stack[8192/sizeof(long)];
14012 static inline __attribute__((always_inline)) int kstack_end(void *addr)
14017 return !(((unsigned long)addr+sizeof(void*)-1) & (8192 -sizeof(void*)));
14021 extern union thread_union init_thread_union;
14022 extern struct task_struct init_task;
14024 extern struct mm_struct init_mm;
14026 extern struct pid_namespace init_pid_ns;
14027 # 1761 "include/linux/sched.h"
14028 extern struct task_struct *find_task_by_pid_type_ns(int type, int pid,
14029 struct pid_namespace *ns);
14031 extern struct task_struct *find_task_by_vpid(pid_t nr);
14032 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
14033 struct pid_namespace *ns);
14035 extern void __set_special_pids(struct pid *pid);
14038 extern struct user_struct * alloc_uid(struct user_namespace *, uid_t);
14039 static inline __attribute__((always_inline)) struct user_struct *get_uid(struct user_struct *u)
14041 atomic_inc(&u->__count);
14044 extern void free_uid(struct user_struct *);
14045 extern void switch_uid(struct user_struct *);
14046 extern void release_uids(struct user_namespace *ns);
14050 extern void do_timer(unsigned long ticks);
14052 extern int wake_up_state(struct task_struct *tsk, unsigned int state);
14053 extern int wake_up_process(struct task_struct *tsk);
14054 extern void wake_up_new_task(struct task_struct *tsk,
14055 unsigned long clone_flags);
14059 static inline __attribute__((always_inline)) void kick_process(struct task_struct *tsk) { }
14061 extern void sched_fork(struct task_struct *p, int clone_flags);
14062 extern void sched_dead(struct task_struct *p);
14064 extern int in_group_p(gid_t);
14065 extern int in_egroup_p(gid_t);
14067 extern void proc_caches_init(void);
14068 extern void flush_signals(struct task_struct *);
14069 extern void ignore_signals(struct task_struct *);
14070 extern void flush_signal_handlers(struct task_struct *, int force_default);
14071 extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
14073 static inline __attribute__((always_inline)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
14075 unsigned long flags;
14078 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _spin_lock_irqsave(&tsk->sighand->siglock); } while (0);
14079 ret = dequeue_signal(tsk, mask, info);
14080 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&tsk->sighand->siglock, flags); } while (0);
14085 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
14087 extern void unblock_all_signals(void);
14088 extern void release_task(struct task_struct * p);
14089 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
14090 extern int force_sigsegv(int, struct task_struct *);
14091 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
14092 extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
14093 extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
14094 extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32);
14095 extern int kill_pgrp(struct pid *pid, int sig, int priv);
14096 extern int kill_pid(struct pid *pid, int sig, int priv);
14097 extern int kill_proc_info(int, struct siginfo *, pid_t);
14098 extern int do_notify_parent(struct task_struct *, int);
14099 extern void force_sig(int, struct task_struct *);
14100 extern void force_sig_specific(int, struct task_struct *);
14101 extern int send_sig(int, struct task_struct *, int);
14102 extern void zap_other_threads(struct task_struct *p);
14103 extern struct sigqueue *sigqueue_alloc(void);
14104 extern void sigqueue_free(struct sigqueue *);
14105 extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group);
14106 extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
14107 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
14109 static inline __attribute__((always_inline)) int kill_cad_pid(int sig, int priv)
14111 return kill_pid(cad_pid, sig, priv);
14119 static inline __attribute__((always_inline)) int is_si_special(const struct siginfo *info)
14121 return info <= ((struct siginfo *) 2);
14126 static inline __attribute__((always_inline)) int on_sig_stack(unsigned long sp)
14128 return (sp - (get_current())->sas_ss_sp < (get_current())->sas_ss_size);
14131 static inline __attribute__((always_inline)) int sas_ss_flags(unsigned long sp)
14133 return ((get_current())->sas_ss_size == 0 ? 2
14134 : on_sig_stack(sp) ? 1 : 0);
14140 extern struct mm_struct * mm_alloc(void);
14143 extern void __mmdrop(struct mm_struct *);
14144 static inline __attribute__((always_inline)) void mmdrop(struct mm_struct * mm)
14146 if (__builtin_expect(!!((atomic_sub_return(1, (&mm->mm_count)) == 0)), 0))
14151 extern void mmput(struct mm_struct *);
14153 extern struct mm_struct *get_task_mm(struct task_struct *task);
14155 extern void mm_release(struct task_struct *, struct mm_struct *);
14157 extern struct mm_struct *dup_mm(struct task_struct *tsk);
14159 extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *);
14160 extern void flush_thread(void);
14161 extern void exit_thread(void);
14163 extern void exit_files(struct task_struct *);
14164 extern void __cleanup_signal(struct signal_struct *);
14165 extern void __cleanup_sighand(struct sighand_struct *);
14167 extern void exit_itimers(struct signal_struct *);
14168 extern void flush_itimer_signals(void);
14170 extern void do_group_exit(int);
14172 extern void daemonize(const char *, ...);
14173 extern int allow_signal(int);
14174 extern int disallow_signal(int);
14176 extern int do_execve(char *, char * *, char * *, struct pt_regs *);
14177 extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int *, int *);
14178 struct task_struct *fork_idle(int);
14180 extern void set_task_comm(struct task_struct *tsk, char *from);
14181 extern char *get_task_comm(char *to, struct task_struct *tsk);
14186 static inline __attribute__((always_inline)) unsigned long wait_task_inactive(struct task_struct *p,
14191 # 1950 "include/linux/sched.h"
14192 static inline __attribute__((always_inline)) int has_group_leader_pid(struct task_struct *p)
14194 return p->pid == p->tgid;
14197 static inline __attribute__((always_inline))
14198 int same_thread_group(struct task_struct *p1, struct task_struct *p2)
14200 return p1->tgid == p2->tgid;
14203 static inline __attribute__((always_inline)) struct task_struct *next_thread(const struct task_struct *p)
14205 return ({ const typeof( ((struct task_struct *)0)->thread_group ) *__mptr = (({ typeof(p->thread_group.next) _________p1 = (*(volatile typeof(p->thread_group.next) *)&(p->thread_group.next)); do { } while(0); (_________p1); })); (struct task_struct *)( (char *)__mptr - __builtin_offsetof(struct task_struct,thread_group) );});
14209 static inline __attribute__((always_inline)) int thread_group_empty(struct task_struct *p)
14211 return list_empty(&p->thread_group);
14213 # 1985 "include/linux/sched.h"
14214 static inline __attribute__((always_inline)) void task_lock(struct task_struct *p)
14216 _spin_lock(&p->alloc_lock);
14219 static inline __attribute__((always_inline)) void task_unlock(struct task_struct *p)
14221 _spin_unlock(&p->alloc_lock);
14224 extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
14225 unsigned long *flags);
14227 static inline __attribute__((always_inline)) void unlock_task_sighand(struct task_struct *tsk,
14228 unsigned long *flags)
14230 do { ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&tsk->sighand->siglock, *flags); } while (0);
14238 static inline __attribute__((always_inline)) void setup_thread_stack(struct task_struct *p, struct task_struct *org)
14240 *((struct thread_info *)(p)->stack) = *((struct thread_info *)(org)->stack);
14241 ((struct thread_info *)(p)->stack)->task = p;
14244 static inline __attribute__((always_inline)) unsigned long *end_of_stack(struct task_struct *p)
14246 return (unsigned long *)(((struct thread_info *)(p)->stack) + 1);
14251 static inline __attribute__((always_inline)) int object_is_on_stack(void *obj)
14253 void *stack = (((get_current()))->stack);
14255 return (obj >= stack) && (obj < (stack + 8192));
14258 extern void thread_info_cache_init(void);
14263 static inline __attribute__((always_inline)) void set_tsk_thread_flag(struct task_struct *tsk, int flag)
14265 set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
14268 static inline __attribute__((always_inline)) void clear_tsk_thread_flag(struct task_struct *tsk, int flag)
14270 clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
14273 static inline __attribute__((always_inline)) int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag)
14275 return test_and_set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
14278 static inline __attribute__((always_inline)) int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag)
14280 return test_and_clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
14283 static inline __attribute__((always_inline)) int test_tsk_thread_flag(struct task_struct *tsk, int flag)
14285 return test_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
14288 static inline __attribute__((always_inline)) void set_tsk_need_resched(struct task_struct *tsk)
14290 set_tsk_thread_flag(tsk,2);
14293 static inline __attribute__((always_inline)) void clear_tsk_need_resched(struct task_struct *tsk)
14295 clear_tsk_thread_flag(tsk,2);
14298 static inline __attribute__((always_inline)) int test_tsk_need_resched(struct task_struct *tsk)
14300 return __builtin_expect(!!(test_tsk_thread_flag(tsk,2)), 0);
14303 static inline __attribute__((always_inline)) int signal_pending(struct task_struct *p)
14305 return __builtin_expect(!!(test_tsk_thread_flag(p,1)), 0);
14308 extern int __fatal_signal_pending(struct task_struct *p);
14310 static inline __attribute__((always_inline)) int fatal_signal_pending(struct task_struct *p)
14312 return signal_pending(p) && __fatal_signal_pending(p);
14315 static inline __attribute__((always_inline)) int signal_pending_state(long state, struct task_struct *p)
14317 if (!(state & (1 | 128)))
14319 if (!signal_pending(p))
14322 return (state & 1) || __fatal_signal_pending(p);
14325 static inline __attribute__((always_inline)) int need_resched(void)
14327 return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 2)), 0);
14329 # 2108 "include/linux/sched.h"
14330 extern int _cond_resched(void);
14337 static inline __attribute__((always_inline)) int cond_resched(void)
14339 return _cond_resched();
14342 extern int cond_resched_lock(spinlock_t * lock);
14343 extern int cond_resched_softirq(void);
14344 static inline __attribute__((always_inline)) int cond_resched_bkl(void)
14346 return _cond_resched();
14354 static inline __attribute__((always_inline)) int spin_needbreak(spinlock_t *lock)
14367 extern int thread_group_cputime_alloc(struct task_struct *);
14368 extern void thread_group_cputime(struct task_struct *, struct task_cputime *);
14370 static inline __attribute__((always_inline)) void thread_group_cputime_init(struct signal_struct *sig)
14372 sig->cputime.totals = ((void *)0);
14375 static inline __attribute__((always_inline)) int thread_group_cputime_clone_thread(struct task_struct *curr)
14377 if (curr->signal->cputime.totals)
14379 return thread_group_cputime_alloc(curr);
14382 static inline __attribute__((always_inline)) void thread_group_cputime_free(struct signal_struct *sig)
14384 percpu_free((sig->cputime.totals));
14393 extern void recalc_sigpending_and_wake(struct task_struct *t);
14394 extern void recalc_sigpending(void);
14396 extern void signal_wake_up(struct task_struct *t, int resume_stopped);
14397 # 2190 "include/linux/sched.h"
14398 static inline __attribute__((always_inline)) unsigned int task_cpu(const struct task_struct *p)
14403 static inline __attribute__((always_inline)) void set_task_cpu(struct task_struct *p, unsigned int cpu)
14409 extern void arch_pick_mmap_layout(struct mm_struct *mm);
14413 __trace_special(void *__tr, void *__data,
14414 unsigned long arg1, unsigned long arg2, unsigned long arg3);
14415 # 2215 "include/linux/sched.h"
14416 extern long sched_setaffinity(pid_t pid, const cpumask_t *new_mask);
14417 extern long sched_getaffinity(pid_t pid, cpumask_t *mask);
14419 extern int sched_mc_power_savings, sched_smt_power_savings;
14421 extern void normalize_rt_tasks(void);
14422 # 2267 "include/linux/sched.h"
14423 static inline __attribute__((always_inline)) void add_rchar(struct task_struct *tsk, ssize_t amt)
14427 static inline __attribute__((always_inline)) void add_wchar(struct task_struct *tsk, ssize_t amt)
14431 static inline __attribute__((always_inline)) void inc_syscr(struct task_struct *tsk)
14435 static inline __attribute__((always_inline)) void inc_syscw(struct task_struct *tsk)
14438 # 2292 "include/linux/sched.h"
14439 static inline __attribute__((always_inline)) void mm_update_next_owner(struct mm_struct *mm)
14443 static inline __attribute__((always_inline)) void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
14446 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 2
14447 # 24 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14448 static inline __attribute__((always_inline)) void set_fs(mm_segment_t fs)
14450 current_thread_info()->addr_limit = fs;
14452 # 36 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14453 static inline __attribute__((always_inline)) int is_in_rom(unsigned long addr)
14455 # 46 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14456 if ((addr < _ramstart) || (addr >= _ramend))
14462 # 60 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14463 static inline __attribute__((always_inline)) int _access_ok(unsigned long addr, unsigned long size) { return 1; }
14464 # 82 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14465 struct exception_table_entry {
14466 unsigned long insn, fixup;
14470 extern unsigned long search_exception_table(unsigned long);
14471 # 129 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14472 static inline __attribute__((always_inline)) int bad_user_access_length(void)
14474 panic("bad_user_access_length");
14477 # 200 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
14478 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
14479 copy_from_user(void *to, const void *from, unsigned long n)
14481 if (_access_ok((unsigned long)(from), (n)))
14482 memcpy(to, from, n);
14488 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
14489 copy_to_user(void *to, const void *from, unsigned long n)
14491 if (_access_ok((unsigned long)(to), (n)))
14492 memcpy(to, from, n);
14502 static inline __attribute__((always_inline)) long __attribute__((warn_unused_result))
14503 strncpy_from_user(char *dst, const char *src, long count)
14506 if (!_access_ok((unsigned long)(src), (1)))
14508 strncpy(dst, src, count);
14509 for (tmp = dst; *tmp && count > 0; tmp++, count--) ;
14510 return (tmp - dst);
14518 static inline __attribute__((always_inline)) long strnlen_user(const char *src, long n)
14520 return (strlen(src) + 1);
14529 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
14530 __clear_user(void *to, unsigned long n)
14535 # 6 "include/linux/uaccess.h" 2
14536 # 16 "include/linux/uaccess.h"
14537 static inline __attribute__((always_inline)) void pagefault_disable(void)
14539 do { (current_thread_info()->preempt_count) += (1); } while (0);
14544 __asm__ __volatile__("": : :"memory");
14547 static inline __attribute__((always_inline)) void pagefault_enable(void)
14553 __asm__ __volatile__("": : :"memory");
14554 do { (current_thread_info()->preempt_count) -= (1); } while (0);
14558 __asm__ __volatile__("": : :"memory");
14564 static inline __attribute__((always_inline)) unsigned long __copy_from_user_inatomic_nocache(void *to,
14565 const void *from, unsigned long n)
14567 return copy_from_user(to, from, n);
14570 static inline __attribute__((always_inline)) unsigned long __copy_from_user_nocache(void *to,
14571 const void *from, unsigned long n)
14573 return copy_from_user(to, from, n);
14575 # 96 "include/linux/uaccess.h"
14576 extern long probe_kernel_read(void *dst, void *src, size_t size);
14577 # 107 "include/linux/uaccess.h"
14578 extern long probe_kernel_write(void *dst, void *src, size_t size);
14579 # 7 "include/linux/highmem.h" 2
14581 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h" 1
14582 # 33 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
14583 extern void blackfin_icache_dcache_flush_range(unsigned long start_address, unsigned long end_address);
14584 extern void blackfin_icache_flush_range(unsigned long start_address, unsigned long end_address);
14585 extern void blackfin_dcache_flush_range(unsigned long start_address, unsigned long end_address);
14586 extern void blackfin_dcache_invalidate_range(unsigned long start_address, unsigned long end_address);
14587 extern void blackfin_dflush_page(void *page);
14588 extern void blackfin_invalidate_entire_dcache(void);
14589 # 55 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
14590 static inline __attribute__((always_inline)) void flush_icache_range(unsigned start, unsigned end)
14598 blackfin_icache_dcache_flush_range((start), (end));
14599 # 77 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
14601 # 100 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
14602 extern unsigned long reserved_mem_dcache_on;
14603 extern unsigned long reserved_mem_icache_on;
14605 static inline __attribute__((always_inline)) int bfin_addr_dcachable(unsigned long addr)
14608 if (addr < (_ramend - (1024 * 1024)))
14612 if (reserved_mem_dcache_on &&
14613 addr >= _ramend && addr < physical_mem_end)
14618 # 9 "include/linux/highmem.h" 2
14621 static inline __attribute__((always_inline)) void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr)
14627 static inline __attribute__((always_inline)) void flush_kernel_dcache_page(struct page *page)
14630 # 34 "include/linux/highmem.h"
14631 static inline __attribute__((always_inline)) unsigned int nr_free_highpages(void) { return 0; }
14636 static inline __attribute__((always_inline)) void *kmap(struct page *page)
14638 do { do { } while (0); } while (0);
14639 return lowmem_page_address(page);
14644 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/kmap_types.h" 1
14650 KM_SKB_SUNRPC_DATA,
14651 KM_SKB_DATA_SOFTIRQ,
14664 # 48 "include/linux/highmem.h" 2
14666 static inline __attribute__((always_inline)) void *kmap_atomic(struct page *page, enum km_type idx)
14668 pagefault_disable();
14669 return lowmem_page_address(page);
14671 # 67 "include/linux/highmem.h"
14672 static inline __attribute__((always_inline)) void clear_user_highpage(struct page *page, unsigned long vaddr)
14674 void *addr = kmap_atomic(page, KM_USER0);
14675 memset((addr), 0, (1UL << 12));
14676 do { pagefault_enable(); } while (0);
14678 # 90 "include/linux/highmem.h"
14679 static inline __attribute__((always_inline)) struct page *
14680 __alloc_zeroed_user_highpage(gfp_t movableflags,
14681 struct vm_area_struct *vma,
14682 unsigned long vaddr)
14684 struct page *page = alloc_pages_node((((void)(0),0)), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u) | (( gfp_t)0x20000u) | (( gfp_t)0x02u)) | movableflags, 0);
14688 clear_user_highpage(page, vaddr);
14692 # 113 "include/linux/highmem.h"
14693 static inline __attribute__((always_inline)) struct page *
14694 alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
14695 unsigned long vaddr)
14697 return __alloc_zeroed_user_highpage((( gfp_t)0x100000u), vma, vaddr);
14700 static inline __attribute__((always_inline)) void clear_highpage(struct page *page)
14702 void *kaddr = kmap_atomic(page, KM_USER0);
14703 memset((kaddr), 0, (1UL << 12));
14704 do { pagefault_enable(); } while (0);
14707 static inline __attribute__((always_inline)) void zero_user_segments(struct page *page,
14708 unsigned start1, unsigned end1,
14709 unsigned start2, unsigned end2)
14711 void *kaddr = kmap_atomic(page, KM_USER0);
14713 do { if (__builtin_expect(!!(end1 > (1UL << 12) || end2 > (1UL << 12)), 0)) do { dump_bfin_trace_buffer(); printk("<0>" "BUG: failure at %s:%d/%s()!\n", "include/linux/highmem.h", 133, __func__); panic("BUG!"); } while (0); } while(0);
14716 memset(kaddr + start1, 0, end1 - start1);
14719 memset(kaddr + start2, 0, end2 - start2);
14721 do { pagefault_enable(); } while (0);
14722 blackfin_dflush_page(lowmem_page_address(page));
14725 static inline __attribute__((always_inline)) void zero_user_segment(struct page *page,
14726 unsigned start, unsigned end)
14728 zero_user_segments(page, start, end, 0, 0);
14731 static inline __attribute__((always_inline)) void zero_user(struct page *page,
14732 unsigned start, unsigned size)
14734 zero_user_segments(page, start, start + size, 0, 0);
14737 static inline __attribute__((always_inline)) void __attribute__((deprecated)) memclear_highpage_flush(struct page *page,
14738 unsigned int offset, unsigned int size)
14740 zero_user(page, offset, size);
14745 static inline __attribute__((always_inline)) void copy_user_highpage(struct page *to, struct page *from,
14746 unsigned long vaddr, struct vm_area_struct *vma)
14750 vfrom = kmap_atomic(from, KM_USER0);
14751 vto = kmap_atomic(to, KM_USER1);
14752 memcpy((vto), (vfrom), (1UL << 12));
14753 do { pagefault_enable(); } while (0);
14754 do { pagefault_enable(); } while (0);
14759 static inline __attribute__((always_inline)) void copy_highpage(struct page *to, struct page *from)
14763 vfrom = kmap_atomic(from, KM_USER0);
14764 vto = kmap_atomic(to, KM_USER1);
14765 memcpy((vto), (vfrom), (1UL << 12));
14766 do { pagefault_enable(); } while (0);
14767 do { pagefault_enable(); } while (0);
14769 # 11 "include/linux/pagemap.h" 2
14774 # 1 "include/linux/hardirq.h" 1
14779 # 1 "include/linux/smp_lock.h" 1
14780 # 6 "include/linux/hardirq.h" 2
14782 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h" 1
14791 unsigned int __softirq_pending;
14792 unsigned int __syscall_count;
14793 struct task_struct *__ksoftirqd_task;
14796 # 1 "include/linux/irq_cpustat.h" 1
14797 # 20 "include/linux/irq_cpustat.h"
14798 extern irq_cpustat_t irq_stat[];
14799 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h" 2
14800 # 45 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h"
14801 extern void ack_bad_irq(unsigned int irq);
14802 # 8 "include/linux/hardirq.h" 2
14803 # 113 "include/linux/hardirq.h"
14804 struct task_struct;
14807 static inline __attribute__((always_inline)) void account_system_vtime(struct task_struct *tsk)
14810 # 146 "include/linux/hardirq.h"
14811 extern void irq_enter(void);
14812 # 162 "include/linux/hardirq.h"
14813 extern void irq_exit(void);
14814 # 16 "include/linux/pagemap.h" 2
14815 # 25 "include/linux/pagemap.h"
14816 static inline __attribute__((always_inline)) void mapping_set_error(struct address_space *mapping, int error)
14818 if (__builtin_expect(!!(error), 0)) {
14820 set_bit((21 + 1), &mapping->flags);
14822 set_bit((21 + 0), &mapping->flags);
14825 # 55 "include/linux/pagemap.h"
14826 static inline __attribute__((always_inline)) void mapping_set_unevictable(struct address_space *mapping) { }
14827 static inline __attribute__((always_inline)) void mapping_clear_unevictable(struct address_space *mapping) { }
14828 static inline __attribute__((always_inline)) int mapping_unevictable(struct address_space *mapping)
14834 static inline __attribute__((always_inline)) gfp_t mapping_gfp_mask(struct address_space * mapping)
14836 return ( gfp_t)mapping->flags & (( gfp_t)((1 << 21) - 1));
14843 static inline __attribute__((always_inline)) void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
14845 m->flags = (m->flags & ~( unsigned long)(( gfp_t)((1 << 21) - 1))) |
14846 ( unsigned long)mask;
14848 # 93 "include/linux/pagemap.h"
14849 void release_pages(struct page **pages, int nr, int cold);
14850 # 139 "include/linux/pagemap.h"
14851 static inline __attribute__((always_inline)) int page_cache_get_speculative(struct page *page)
14854 # 156 "include/linux/pagemap.h"
14856 atomic_inc(&page->_count);
14857 # 169 "include/linux/pagemap.h"
14866 static inline __attribute__((always_inline)) int page_cache_add_speculative(struct page *page, int count)
14875 atomic_add(count, &page->_count);
14886 static inline __attribute__((always_inline)) int page_freeze_refs(struct page *page, int count)
14888 return __builtin_expect(!!(((int)((__typeof__(*((&((&page->_count)->counter)))))__cmpxchg_local_generic(((&((&page->_count)->counter))), (unsigned long)(((count))), (unsigned long)(((0))), sizeof(*((&((&page->_count)->counter))))))) == count), 1);
14891 static inline __attribute__((always_inline)) void page_unfreeze_refs(struct page *page, int count)
14896 (((&page->_count)->counter) = count);
14902 static inline __attribute__((always_inline)) struct page *__page_cache_alloc(gfp_t gfp)
14904 return alloc_pages_node((((void)(0),0)), gfp, 0);
14908 static inline __attribute__((always_inline)) struct page *page_cache_alloc(struct address_space *x)
14910 return __page_cache_alloc(mapping_gfp_mask(x));
14913 static inline __attribute__((always_inline)) struct page *page_cache_alloc_cold(struct address_space *x)
14915 return __page_cache_alloc(mapping_gfp_mask(x)|(( gfp_t)0x100u));
14918 typedef int filler_t(void *, struct page *);
14920 extern struct page * find_get_page(struct address_space *mapping,
14921 unsigned long index);
14922 extern struct page * find_lock_page(struct address_space *mapping,
14923 unsigned long index);
14924 extern struct page * find_or_create_page(struct address_space *mapping,
14925 unsigned long index, gfp_t gfp_mask);
14926 unsigned find_get_pages(struct address_space *mapping, unsigned long start,
14927 unsigned int nr_pages, struct page **pages);
14928 unsigned find_get_pages_contig(struct address_space *mapping, unsigned long start,
14929 unsigned int nr_pages, struct page **pages);
14930 unsigned find_get_pages_tag(struct address_space *mapping, unsigned long *index,
14931 int tag, unsigned int nr_pages, struct page **pages);
14933 struct page *__grab_cache_page(struct address_space *mapping, unsigned long index);
14938 static inline __attribute__((always_inline)) struct page *grab_cache_page(struct address_space *mapping,
14939 unsigned long index)
14941 return find_or_create_page(mapping, index, mapping_gfp_mask(mapping));
14944 extern struct page * grab_cache_page_nowait(struct address_space *mapping,
14945 unsigned long index);
14946 extern struct page * read_cache_page_async(struct address_space *mapping,
14947 unsigned long index, filler_t *filler,
14949 extern struct page * read_cache_page(struct address_space *mapping,
14950 unsigned long index, filler_t *filler,
14952 extern int read_cache_pages(struct address_space *mapping,
14953 struct list_head *pages, filler_t *filler, void *data);
14955 static inline __attribute__((always_inline)) struct page *read_mapping_page_async(
14956 struct address_space *mapping,
14957 unsigned long index, void *data)
14959 filler_t *filler = (filler_t *)mapping->a_ops->readpage;
14960 return read_cache_page_async(mapping, index, filler, data);
14963 static inline __attribute__((always_inline)) struct page *read_mapping_page(struct address_space *mapping,
14964 unsigned long index, void *data)
14966 filler_t *filler = (filler_t *)mapping->a_ops->readpage;
14967 return read_cache_page(mapping, index, filler, data);
14973 static inline __attribute__((always_inline)) loff_t page_offset(struct page *page)
14975 return ((loff_t)page->index) << 12;
14978 static inline __attribute__((always_inline)) unsigned long linear_page_index(struct vm_area_struct *vma,
14979 unsigned long address)
14981 unsigned long pgoff = (address - vma->vm_start) >> 12;
14982 pgoff += vma->vm_pgoff;
14983 return pgoff >> (12 - 12);
14986 extern void __lock_page(struct page *page);
14987 extern int __lock_page_killable(struct page *page);
14988 extern void __lock_page_nosync(struct page *page);
14989 extern void unlock_page(struct page *page);
14991 static inline __attribute__((always_inline)) void __set_page_locked(struct page *page)
14993 __set_bit(PG_locked, &page->flags);
14996 static inline __attribute__((always_inline)) void __clear_page_locked(struct page *page)
14998 __clear_bit(PG_locked, &page->flags);
15001 static inline __attribute__((always_inline)) int trylock_page(struct page *page)
15003 return (__builtin_expect(!!(!test_and_set_bit(PG_locked, &page->flags)), 1));
15009 static inline __attribute__((always_inline)) void lock_page(struct page *page)
15011 do { do { } while (0); } while (0);
15012 if (!trylock_page(page))
15021 static inline __attribute__((always_inline)) int lock_page_killable(struct page *page)
15023 do { do { } while (0); } while (0);
15024 if (!trylock_page(page))
15025 return __lock_page_killable(page);
15033 static inline __attribute__((always_inline)) void lock_page_nosync(struct page *page)
15035 do { do { } while (0); } while (0);
15036 if (!trylock_page(page))
15037 __lock_page_nosync(page);
15044 extern void wait_on_page_bit(struct page *page, int bit_nr);
15045 # 364 "include/linux/pagemap.h"
15046 static inline __attribute__((always_inline)) void wait_on_page_locked(struct page *page)
15048 if (PageLocked(page))
15049 wait_on_page_bit(page, PG_locked);
15055 static inline __attribute__((always_inline)) void wait_on_page_writeback(struct page *page)
15057 if (PageWriteback(page))
15058 wait_on_page_bit(page, PG_writeback);
15061 extern void end_page_writeback(struct page *page);
15069 static inline __attribute__((always_inline)) int fault_in_pages_writeable(char *uaddr, int size)
15073 if (__builtin_expect(!!(size == 0), 0))
15080 ret = ({ int _err = 0; typeof(*(uaddr)) _x = (0); typeof(*(uaddr)) *_p = (uaddr); if (!_access_ok((unsigned long)(_p), (sizeof(*(_p))))) { _err = -14; } else { switch (sizeof (*(_p))) { case 1: __asm__ ("B""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 2: __asm__ ("W""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 4: __asm__ ("""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 8: { long _xl, _xh; _xl = ((long *)&_x)[0]; _xh = ((long *)&_x)[1]; __asm__ ("""[%1] = %0;\n\t" : :"d" (_xl),"a" (((unsigned long *)(((long *)_p)+0))) : "memory"); __asm__ ("""[%1] = %0;\n\t" : :"d" (_xh),"a" (((unsigned long *)(((long *)_p)+1))) : "memory"); } break; default: _err = (printk("<6>" "put_user_bad %s:%d %s\n", "include/linux/pagemap.h", 398, __func__), bad_user_access_length(), (-14)); break; } } _err; });
15082 char *end = uaddr + size - 1;
15088 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
15089 ((unsigned long)end & (~((1UL << 12)-1))))
15090 ret = ({ int _err = 0; typeof(*(end)) _x = (0); typeof(*(end)) *_p = (end); if (!_access_ok((unsigned long)(_p), (sizeof(*(_p))))) { _err = -14; } else { switch (sizeof (*(_p))) { case 1: __asm__ ("B""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 2: __asm__ ("W""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 4: __asm__ ("""[%1] = %0;\n\t" : :"d" (_x),"a" (((unsigned long *)(_p))) : "memory"); break; case 8: { long _xl, _xh; _xl = ((long *)&_x)[0]; _xh = ((long *)&_x)[1]; __asm__ ("""[%1] = %0;\n\t" : :"d" (_xl),"a" (((unsigned long *)(((long *)_p)+0))) : "memory"); __asm__ ("""[%1] = %0;\n\t" : :"d" (_xh),"a" (((unsigned long *)(((long *)_p)+1))) : "memory"); } break; default: _err = (printk("<6>" "put_user_bad %s:%d %s\n", "include/linux/pagemap.h", 408, __func__), bad_user_access_length(), (-14)); break; } } _err; });
15095 static inline __attribute__((always_inline)) int fault_in_pages_readable(const char *uaddr, int size)
15100 if (__builtin_expect(!!(size == 0), 0))
15103 ret = ({ int _err = 0; unsigned long _val = 0; const typeof(*(uaddr)) *_p = (uaddr); const size_t ptr_size = sizeof(*(_p)); if (__builtin_expect(!!(_access_ok((unsigned long)(_p), (ptr_size))), 1)) { ((void)sizeof(char[1 - 2*!!(ptr_size >= 8)])); switch (ptr_size) { case 1: ({ __asm__ __volatile__ ( "%0 =" "B" "[%1]" "(Z)" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; case 2: ({ __asm__ __volatile__ ( "%0 =" "W" "[%1]" "(Z)" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; case 4: ({ __asm__ __volatile__ ( "%0 =" "" "[%1]" "" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; } } else _err = -14; c = (typeof(*(uaddr)))_val; _err; });
15105 const char *end = uaddr + size - 1;
15107 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
15108 ((unsigned long)end & (~((1UL << 12)-1))))
15109 ret = ({ int _err = 0; unsigned long _val = 0; const typeof(*(end)) *_p = (end); const size_t ptr_size = sizeof(*(_p)); if (__builtin_expect(!!(_access_ok((unsigned long)(_p), (ptr_size))), 1)) { ((void)sizeof(char[1 - 2*!!(ptr_size >= 8)])); switch (ptr_size) { case 1: ({ __asm__ __volatile__ ( "%0 =" "B" "[%1]" "(Z)" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; case 2: ({ __asm__ __volatile__ ( "%0 =" "W" "[%1]" "(Z)" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; case 4: ({ __asm__ __volatile__ ( "%0 =" "" "[%1]" "" ";" : "=d" (_val) : "a" (((unsigned long *)(_p)))); }); break; } } else _err = -14; c = (typeof(*(end)))_val; _err; });
15114 int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
15115 unsigned long index, gfp_t gfp_mask);
15116 int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
15117 unsigned long index, gfp_t gfp_mask);
15118 extern void remove_from_page_cache(struct page *page);
15119 extern void __remove_from_page_cache(struct page *page);
15125 static inline __attribute__((always_inline)) int add_to_page_cache(struct page *page,
15126 struct address_space *mapping, unsigned long offset, gfp_t gfp_mask)
15130 __set_page_locked(page);
15131 error = add_to_page_cache_locked(page, mapping, offset, gfp_mask);
15132 if (__builtin_expect(!!(error), 0))
15133 __clear_page_locked(page);
15136 # 20 "kernel/trace/trace.c" 2
15140 # 1 "include/linux/ftrace.h" 1
15141 # 9 "include/linux/ftrace.h"
15142 # 1 "include/linux/module.h" 1
15143 # 13 "include/linux/module.h"
15144 # 1 "include/linux/kmod.h" 1
15145 # 35 "include/linux/kmod.h"
15146 static inline __attribute__((always_inline)) int request_module(const char * name, ...) { return -38; }
15153 struct subprocess_info;
15156 struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
15157 char **envp, gfp_t gfp_mask);
15160 void call_usermodehelper_setkeys(struct subprocess_info *info,
15161 struct key *session_keyring);
15162 int call_usermodehelper_stdinpipe(struct subprocess_info *sub_info,
15163 struct file **filp);
15164 void call_usermodehelper_setcleanup(struct subprocess_info *info,
15165 void (*cleanup)(char **argv, char **envp));
15174 int call_usermodehelper_exec(struct subprocess_info *info, enum umh_wait wait);
15178 void call_usermodehelper_freeinfo(struct subprocess_info *info);
15180 static inline __attribute__((always_inline)) int
15181 call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
15183 struct subprocess_info *info;
15184 gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? ((( gfp_t)0x20u)) : ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u));
15186 info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
15187 if (info == ((void *)0))
15189 return call_usermodehelper_exec(info, wait);
15192 static inline __attribute__((always_inline)) int
15193 call_usermodehelper_keys(char *path, char **argv, char **envp,
15194 struct key *session_keyring, enum umh_wait wait)
15196 struct subprocess_info *info;
15197 gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? ((( gfp_t)0x20u)) : ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u));
15199 info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
15200 if (info == ((void *)0))
15203 call_usermodehelper_setkeys(info, session_keyring);
15204 return call_usermodehelper_exec(info, wait);
15207 extern void usermodehelper_init(void);
15210 extern int call_usermodehelper_pipe(char *path, char *argv[], char *envp[],
15211 struct file **filp);
15213 extern int usermodehelper_disable(void);
15214 extern void usermodehelper_enable(void);
15215 # 14 "include/linux/module.h" 2
15216 # 1 "include/linux/elf.h" 1
15221 # 1 "include/linux/elf-em.h" 1
15222 # 6 "include/linux/elf.h" 2
15224 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h" 1
15225 # 21 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h"
15226 typedef unsigned long elf_greg_t;
15229 typedef elf_greg_t elf_gregset_t[(sizeof(struct user_regs_struct) / sizeof(elf_greg_t))];
15231 typedef struct user_bfinfp_struct elf_fpregset_t;
15232 # 8 "include/linux/elf.h" 2
15236 # 20 "include/linux/elf.h"
15237 typedef __u32 Elf32_Addr;
15238 typedef __u16 Elf32_Half;
15239 typedef __u32 Elf32_Off;
15240 typedef __s32 Elf32_Sword;
15241 typedef __u32 Elf32_Word;
15244 typedef __u64 Elf64_Addr;
15245 typedef __u16 Elf64_Half;
15246 typedef __s16 Elf64_SHalf;
15247 typedef __u64 Elf64_Off;
15248 typedef __s32 Elf64_Sword;
15249 typedef __u32 Elf64_Word;
15250 typedef __u64 Elf64_Xword;
15251 typedef __s64 Elf64_Sxword;
15252 # 127 "include/linux/elf.h"
15253 typedef struct dynamic{
15262 Elf64_Sxword d_tag;
15268 # 150 "include/linux/elf.h"
15269 typedef struct elf32_rel {
15270 Elf32_Addr r_offset;
15274 typedef struct elf64_rel {
15275 Elf64_Addr r_offset;
15276 Elf64_Xword r_info;
15279 typedef struct elf32_rela{
15280 Elf32_Addr r_offset;
15282 Elf32_Sword r_addend;
15285 typedef struct elf64_rela {
15286 Elf64_Addr r_offset;
15287 Elf64_Xword r_info;
15288 Elf64_Sxword r_addend;
15291 typedef struct elf32_sym{
15292 Elf32_Word st_name;
15293 Elf32_Addr st_value;
15294 Elf32_Word st_size;
15295 unsigned char st_info;
15296 unsigned char st_other;
15297 Elf32_Half st_shndx;
15300 typedef struct elf64_sym {
15301 Elf64_Word st_name;
15302 unsigned char st_info;
15303 unsigned char st_other;
15304 Elf64_Half st_shndx;
15305 Elf64_Addr st_value;
15306 Elf64_Xword st_size;
15312 typedef struct elf32_hdr{
15313 unsigned char e_ident[16];
15315 Elf32_Half e_machine;
15316 Elf32_Word e_version;
15317 Elf32_Addr e_entry;
15320 Elf32_Word e_flags;
15321 Elf32_Half e_ehsize;
15322 Elf32_Half e_phentsize;
15323 Elf32_Half e_phnum;
15324 Elf32_Half e_shentsize;
15325 Elf32_Half e_shnum;
15326 Elf32_Half e_shstrndx;
15329 typedef struct elf64_hdr {
15330 unsigned char e_ident[16];
15332 Elf64_Half e_machine;
15333 Elf64_Word e_version;
15334 Elf64_Addr e_entry;
15337 Elf64_Word e_flags;
15338 Elf64_Half e_ehsize;
15339 Elf64_Half e_phentsize;
15340 Elf64_Half e_phnum;
15341 Elf64_Half e_shentsize;
15342 Elf64_Half e_shnum;
15343 Elf64_Half e_shstrndx;
15352 typedef struct elf32_phdr{
15354 Elf32_Off p_offset;
15355 Elf32_Addr p_vaddr;
15356 Elf32_Addr p_paddr;
15357 Elf32_Word p_filesz;
15358 Elf32_Word p_memsz;
15359 Elf32_Word p_flags;
15360 Elf32_Word p_align;
15363 typedef struct elf64_phdr {
15365 Elf64_Word p_flags;
15366 Elf64_Off p_offset;
15367 Elf64_Addr p_vaddr;
15368 Elf64_Addr p_paddr;
15369 Elf64_Xword p_filesz;
15370 Elf64_Xword p_memsz;
15371 Elf64_Xword p_align;
15373 # 289 "include/linux/elf.h"
15375 Elf32_Word sh_name;
15376 Elf32_Word sh_type;
15377 Elf32_Word sh_flags;
15378 Elf32_Addr sh_addr;
15379 Elf32_Off sh_offset;
15380 Elf32_Word sh_size;
15381 Elf32_Word sh_link;
15382 Elf32_Word sh_info;
15383 Elf32_Word sh_addralign;
15384 Elf32_Word sh_entsize;
15387 typedef struct elf64_shdr {
15388 Elf64_Word sh_name;
15389 Elf64_Word sh_type;
15390 Elf64_Xword sh_flags;
15391 Elf64_Addr sh_addr;
15392 Elf64_Off sh_offset;
15393 Elf64_Xword sh_size;
15394 Elf64_Word sh_link;
15395 Elf64_Word sh_info;
15396 Elf64_Xword sh_addralign;
15397 Elf64_Xword sh_entsize;
15399 # 367 "include/linux/elf.h"
15400 typedef struct elf32_note {
15401 Elf32_Word n_namesz;
15402 Elf32_Word n_descsz;
15407 typedef struct elf64_note {
15408 Elf64_Word n_namesz;
15409 Elf64_Word n_descsz;
15415 extern Elf32_Dyn _DYNAMIC [];
15416 # 400 "include/linux/elf.h"
15417 static inline __attribute__((always_inline)) int elf_coredump_extra_notes_size(void) { return 0; }
15418 static inline __attribute__((always_inline)) int elf_coredump_extra_notes_write(struct file *file,
15419 loff_t *foffset) { return 0; }
15420 # 15 "include/linux/module.h" 2
15423 # 1 "include/linux/moduleparam.h" 1
15424 # 32 "include/linux/moduleparam.h"
15425 struct kernel_param;
15428 typedef int (*param_set_fn)(const char *val, struct kernel_param *kp);
15430 typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp);
15432 struct kernel_param {
15439 const struct kparam_string *str;
15440 const struct kparam_array *arr;
15445 struct kparam_string {
15446 unsigned int maxlen;
15451 struct kparam_array
15457 unsigned int elemsize;
15460 # 135 "include/linux/moduleparam.h"
15461 extern int parse_args(const char *name,
15463 struct kernel_param *params,
15465 int (*unknown)(char *param, char *val));
15473 extern int param_set_byte(const char *val, struct kernel_param *kp);
15474 extern int param_get_byte(char *buffer, struct kernel_param *kp);
15477 extern int param_set_short(const char *val, struct kernel_param *kp);
15478 extern int param_get_short(char *buffer, struct kernel_param *kp);
15481 extern int param_set_ushort(const char *val, struct kernel_param *kp);
15482 extern int param_get_ushort(char *buffer, struct kernel_param *kp);
15485 extern int param_set_int(const char *val, struct kernel_param *kp);
15486 extern int param_get_int(char *buffer, struct kernel_param *kp);
15489 extern int param_set_uint(const char *val, struct kernel_param *kp);
15490 extern int param_get_uint(char *buffer, struct kernel_param *kp);
15493 extern int param_set_long(const char *val, struct kernel_param *kp);
15494 extern int param_get_long(char *buffer, struct kernel_param *kp);
15497 extern int param_set_ulong(const char *val, struct kernel_param *kp);
15498 extern int param_get_ulong(char *buffer, struct kernel_param *kp);
15501 extern int param_set_charp(const char *val, struct kernel_param *kp);
15502 extern int param_get_charp(char *buffer, struct kernel_param *kp);
15505 extern int param_set_bool(const char *val, struct kernel_param *kp);
15506 extern int param_get_bool(char *buffer, struct kernel_param *kp);
15509 extern int param_set_invbool(const char *val, struct kernel_param *kp);
15510 extern int param_get_invbool(char *buffer, struct kernel_param *kp);
15511 # 199 "include/linux/moduleparam.h"
15512 extern int param_array_set(const char *val, struct kernel_param *kp);
15513 extern int param_array_get(char *buffer, struct kernel_param *kp);
15515 extern int param_set_copystring(const char *val, struct kernel_param *kp);
15516 extern int param_get_string(char *buffer, struct kernel_param *kp);
15521 # 216 "include/linux/moduleparam.h"
15522 static inline __attribute__((always_inline)) int module_param_sysfs_setup(struct module *mod,
15523 struct kernel_param *kparam,
15524 unsigned int num_params)
15529 static inline __attribute__((always_inline)) void module_param_sysfs_remove(struct module *mod)
15531 # 18 "include/linux/module.h" 2
15532 # 1 "include/linux/marker.h" 1
15533 # 17 "include/linux/marker.h"
15536 # 32 "include/linux/marker.h"
15537 typedef void marker_probe_func(void *probe_private, void *call_private,
15538 const char *fmt, va_list *args);
15540 struct marker_probe_closure {
15541 marker_probe_func *func;
15542 void *probe_private;
15547 const char *format;
15553 void (*call)(const struct marker *mdata, void *call_private, ...);
15554 struct marker_probe_closure single;
15555 struct marker_probe_closure *multi;
15556 } __attribute__((aligned(8)));
15557 # 83 "include/linux/marker.h"
15558 extern void marker_update_probe_range(struct marker *begin,
15559 struct marker *end);
15560 # 125 "include/linux/marker.h"
15561 static inline __attribute__((always_inline)) void __attribute__((format(printf,1,2))) ___mark_check_format(const char *fmt, ...)
15571 extern marker_probe_func __mark_empty_function;
15573 extern void marker_probe_cb(const struct marker *mdata,
15574 void *call_private, ...);
15575 extern void marker_probe_cb_noarg(const struct marker *mdata,
15576 void *call_private, ...);
15582 extern int marker_probe_register(const char *name, const char *format,
15583 marker_probe_func *probe, void *probe_private);
15588 extern int marker_probe_unregister(const char *name,
15589 marker_probe_func *probe, void *probe_private);
15593 extern int marker_probe_unregister_private_data(marker_probe_func *probe,
15594 void *probe_private);
15596 extern void *marker_get_private_data(const char *name, marker_probe_func *probe,
15598 # 19 "include/linux/module.h" 2
15599 # 1 "include/linux/tracepoint.h" 1
15600 # 20 "include/linux/tracepoint.h"
15604 struct tracepoint {
15608 } __attribute__((aligned(8)));
15609 # 82 "include/linux/tracepoint.h"
15610 extern void tracepoint_update_probe_range(struct tracepoint *begin,
15611 struct tracepoint *end);
15612 # 107 "include/linux/tracepoint.h"
15613 extern int tracepoint_probe_register(const char *name, void *probe);
15619 extern int tracepoint_probe_unregister(const char *name, void *probe);
15621 struct tracepoint_iter {
15622 struct module *module;
15623 struct tracepoint *tracepoint;
15626 extern void tracepoint_iter_start(struct tracepoint_iter *iter);
15627 extern void tracepoint_iter_next(struct tracepoint_iter *iter);
15628 extern void tracepoint_iter_stop(struct tracepoint_iter *iter);
15629 extern void tracepoint_iter_reset(struct tracepoint_iter *iter);
15630 extern int tracepoint_get_iter_range(struct tracepoint **tracepoint,
15631 struct tracepoint *begin, struct tracepoint *end);
15638 static inline __attribute__((always_inline)) void tracepoint_synchronize_unregister(void)
15642 # 20 "include/linux/module.h" 2
15643 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/local.h" 1
15647 # 1 "include/asm-generic/local.h" 1
15648 # 22 "include/asm-generic/local.h"
15653 # 5 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/local.h" 2
15654 # 21 "include/linux/module.h" 2
15656 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/module.h" 1
15657 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/module.h"
15658 struct mod_arch_specific {
15659 Elf32_Shdr *text_l1;
15660 Elf32_Shdr *data_a_l1;
15661 Elf32_Shdr *bss_a_l1;
15662 Elf32_Shdr *data_b_l1;
15663 Elf32_Shdr *bss_b_l1;
15664 Elf32_Shdr *text_l2;
15665 Elf32_Shdr *data_l2;
15666 Elf32_Shdr *bss_l2;
15668 # 23 "include/linux/module.h" 2
15669 # 34 "include/linux/module.h"
15670 struct kernel_symbol
15672 unsigned long value;
15676 struct modversion_info
15679 char name[(64 - sizeof(unsigned long))];
15684 struct module_attribute {
15685 struct attribute attr;
15686 ssize_t (*show)(struct module_attribute *, struct module *, char *);
15687 ssize_t (*store)(struct module_attribute *, struct module *,
15688 const char *, size_t count);
15689 void (*setup)(struct module *, const char *);
15690 int (*test)(struct module *);
15691 void (*free)(struct module *);
15694 struct module_kobject
15696 struct kobject kobj;
15697 struct module *mod;
15698 struct kobject *drivers_dir;
15699 struct module_param_attrs *mp;
15703 extern int init_module(void);
15704 extern void cleanup_module(void);
15707 struct exception_table_entry;
15709 const struct exception_table_entry *
15710 search_extable(const struct exception_table_entry *first,
15711 const struct exception_table_entry *last,
15712 unsigned long value);
15713 void sort_extable(struct exception_table_entry *start,
15714 struct exception_table_entry *finish);
15715 void sort_main_extable(void);
15716 # 165 "include/linux/module.h"
15717 const struct exception_table_entry *search_exception_tables(unsigned long add);
15719 struct notifier_block;
15720 # 472 "include/linux/module.h"
15721 static inline __attribute__((always_inline)) const struct exception_table_entry *
15722 search_module_extables(unsigned long addr)
15724 return ((void *)0);
15728 static inline __attribute__((always_inline)) struct module *module_text_address(unsigned long addr)
15730 return ((void *)0);
15734 static inline __attribute__((always_inline)) struct module *__module_text_address(unsigned long addr)
15736 return ((void *)0);
15739 static inline __attribute__((always_inline)) int is_module_address(unsigned long addr)
15749 static inline __attribute__((always_inline)) void __module_get(struct module *module)
15753 static inline __attribute__((always_inline)) int try_module_get(struct module *module)
15758 static inline __attribute__((always_inline)) void module_put(struct module *module)
15765 static inline __attribute__((always_inline)) const char *module_address_lookup(unsigned long addr,
15766 unsigned long *symbolsize,
15767 unsigned long *offset,
15771 return ((void *)0);
15774 static inline __attribute__((always_inline)) int lookup_module_symbol_name(unsigned long addr, char *symname)
15779 static inline __attribute__((always_inline)) int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name)
15784 static inline __attribute__((always_inline)) int module_get_kallsym(unsigned int symnum, unsigned long *value,
15785 char *type, char *name,
15786 char *module_name, int *exported)
15791 static inline __attribute__((always_inline)) unsigned long module_kallsyms_lookup_name(const char *name)
15796 static inline __attribute__((always_inline)) int register_module_notifier(struct notifier_block * nb)
15802 static inline __attribute__((always_inline)) int unregister_module_notifier(struct notifier_block * nb)
15809 static inline __attribute__((always_inline)) void print_modules(void)
15813 static inline __attribute__((always_inline)) void module_update_markers(void)
15817 static inline __attribute__((always_inline)) void module_update_tracepoints(void)
15821 static inline __attribute__((always_inline)) int module_get_iter_tracepoints(struct tracepoint_iter *iter)
15828 struct device_driver;
15829 # 596 "include/linux/module.h"
15830 static inline __attribute__((always_inline)) int mod_sysfs_init(struct module *mod)
15835 static inline __attribute__((always_inline)) int mod_sysfs_setup(struct module *mod,
15836 struct kernel_param *kparam,
15837 unsigned int num_params)
15842 static inline __attribute__((always_inline)) int module_add_modinfo_attrs(struct module *mod)
15847 static inline __attribute__((always_inline)) void module_remove_modinfo_attrs(struct module *mod)
15849 # 10 "include/linux/ftrace.h" 2
15850 # 44 "include/linux/ftrace.h"
15851 static inline __attribute__((always_inline)) void ftrace_kill(void) { }
15852 # 113 "include/linux/ftrace.h"
15853 static inline __attribute__((always_inline)) void ftrace_release(void *start, unsigned long size) { }
15857 void ftrace_kill(void);
15859 static inline __attribute__((always_inline)) void tracer_disable(void)
15871 static inline __attribute__((always_inline)) int __ftrace_enabled_save(void)
15882 static inline __attribute__((always_inline)) void __ftrace_enabled_restore(int enabled)
15888 # 185 "include/linux/ftrace.h"
15890 ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
15891 # 205 "include/linux/ftrace.h"
15893 __ftrace_printk(unsigned long ip, const char *fmt, ...)
15894 __attribute__ ((format (printf, 2, 3)));
15895 extern void ftrace_dump(void);
15896 # 227 "include/linux/ftrace.h"
15897 static inline __attribute__((always_inline)) void ftrace_init(void) { }
15898 static inline __attribute__((always_inline)) void
15899 ftrace_init_module(unsigned long *start, unsigned long *end) { }
15903 struct boot_trace {
15905 char func[(sizeof("%s+%#lx/%#lx [%s]") + (128 - 1) + 2*(32*3/10) + ((64 - sizeof(unsigned long)) - 1) + 1)];
15907 unsigned long long duration;
15913 extern void trace_boot(struct boot_trace *it, initcall_t fn);
15914 extern void start_boot_trace(void);
15915 extern void stop_boot_trace(void);
15916 # 24 "kernel/trace/trace.c" 2
15919 # 1 "include/linux/kdebug.h" 1
15923 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/kdebug.h" 1
15924 # 1 "include/asm-generic/kdebug.h" 1
15932 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/kdebug.h" 2
15933 # 5 "include/linux/kdebug.h" 2
15935 struct notifier_block;
15938 struct pt_regs *regs;
15945 int register_die_notifier(struct notifier_block *nb);
15946 int unregister_die_notifier(struct notifier_block *nb);
15948 int notify_die(enum die_val val, const char *str,
15949 struct pt_regs *regs, long err, int trap, int sig);
15950 # 27 "kernel/trace/trace.c" 2
15951 # 1 "include/linux/ctype.h" 1
15952 # 18 "include/linux/ctype.h"
15953 extern unsigned char _ctype[];
15954 # 37 "include/linux/ctype.h"
15955 static inline __attribute__((always_inline)) unsigned char __tolower(unsigned char c)
15957 if ((((_ctype[(int)(unsigned char)(c)])&(0x01)) != 0))
15962 static inline __attribute__((always_inline)) unsigned char __toupper(unsigned char c)
15964 if ((((_ctype[(int)(unsigned char)(c)])&(0x02)) != 0))
15968 # 28 "kernel/trace/trace.c" 2
15970 # 1 "include/linux/poll.h" 1
15974 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/poll.h" 1
15975 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/poll.h"
15981 # 5 "include/linux/poll.h" 2
15982 # 26 "include/linux/poll.h"
15983 struct poll_table_struct;
15988 typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
15990 typedef struct poll_table_struct {
15991 poll_queue_proc qproc;
15994 static inline __attribute__((always_inline)) void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)
15996 if (p && wait_address)
15997 p->qproc(filp, wait_address, p);
16000 static inline __attribute__((always_inline)) void init_poll_funcptr(poll_table *pt, poll_queue_proc qproc)
16005 struct poll_table_entry {
16006 struct file * filp;
16008 wait_queue_head_t * wait_address;
16014 struct poll_wqueues {
16016 struct poll_table_page * table;
16019 struct poll_table_entry inline_entries[((832 - 256) / sizeof(struct poll_table_entry))];
16022 extern void poll_initwait(struct poll_wqueues *pwq);
16023 extern void poll_freewait(struct poll_wqueues *pwq);
16030 unsigned long *in, *out, *ex;
16031 unsigned long *res_in, *res_out, *res_ex;
16033 # 90 "include/linux/poll.h"
16034 static inline __attribute__((always_inline))
16035 int get_fd_set(unsigned long nr, void *ufdset, unsigned long *fdset)
16037 nr = ((((nr)+(8*sizeof(long))-1)/(8*sizeof(long)))*sizeof(long));
16039 return copy_from_user(fdset, ufdset, nr) ? -14 : 0;
16041 memset(fdset, 0, nr);
16045 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
16046 set_fd_set(unsigned long nr, void *ufdset, unsigned long *fdset)
16049 return copy_to_user(ufdset, fdset, ((((nr)+(8*sizeof(long))-1)/(8*sizeof(long)))*sizeof(long)));
16053 static inline __attribute__((always_inline))
16054 void zero_fd_set(unsigned long nr, unsigned long *fdset)
16056 memset(fdset, 0, ((((nr)+(8*sizeof(long))-1)/(8*sizeof(long)))*sizeof(long)));
16061 extern int do_select(int n, fd_set_bits *fds, struct timespec *end_time);
16062 extern int do_sys_poll(struct pollfd * ufds, unsigned int nfds,
16063 struct timespec *end_time);
16064 extern int core_sys_select(int n, fd_set *inp, fd_set *outp,
16065 fd_set *exp, struct timespec *end_time);
16067 extern int poll_select_set_timeout(struct timespec *to, long sec, long nsec);
16068 # 30 "kernel/trace/trace.c" 2
16071 # 1 "include/linux/kprobes.h" 1
16072 # 261 "include/linux/kprobes.h"
16076 static inline __attribute__((always_inline)) struct kprobe *get_kprobe(void *addr)
16078 return ((void *)0);
16080 static inline __attribute__((always_inline)) struct kprobe *kprobe_running(void)
16082 return ((void *)0);
16084 static inline __attribute__((always_inline)) int register_kprobe(struct kprobe *p)
16088 static inline __attribute__((always_inline)) int register_kprobes(struct kprobe **kps, int num)
16092 static inline __attribute__((always_inline)) void unregister_kprobe(struct kprobe *p)
16095 static inline __attribute__((always_inline)) void unregister_kprobes(struct kprobe **kps, int num)
16098 static inline __attribute__((always_inline)) int register_jprobe(struct jprobe *p)
16102 static inline __attribute__((always_inline)) int register_jprobes(struct jprobe **jps, int num)
16106 static inline __attribute__((always_inline)) void unregister_jprobe(struct jprobe *p)
16109 static inline __attribute__((always_inline)) void unregister_jprobes(struct jprobe **jps, int num)
16112 static inline __attribute__((always_inline)) void jprobe_return(void)
16115 static inline __attribute__((always_inline)) int register_kretprobe(struct kretprobe *rp)
16119 static inline __attribute__((always_inline)) int register_kretprobes(struct kretprobe **rps, int num)
16123 static inline __attribute__((always_inline)) void unregister_kretprobe(struct kretprobe *rp)
16126 static inline __attribute__((always_inline)) void unregister_kretprobes(struct kretprobe **rps, int num)
16129 static inline __attribute__((always_inline)) void kprobe_flush_task(struct task_struct *tk)
16132 # 33 "kernel/trace/trace.c" 2
16133 # 1 "include/linux/writeback.h" 1
16134 # 10 "include/linux/writeback.h"
16135 struct backing_dev_info;
16137 extern spinlock_t inode_lock;
16138 extern struct list_head inode_in_use;
16139 extern struct list_head inode_unused;
16145 static inline __attribute__((always_inline)) int task_is_pdflush(struct task_struct *task)
16147 return task->flags & 0x00001000;
16155 enum writeback_sync_modes {
16166 struct writeback_control {
16167 struct backing_dev_info *bdi;
16169 enum writeback_sync_modes sync_mode;
16170 unsigned long *older_than_this;
16174 long pages_skipped;
16181 loff_t range_start;
16184 unsigned nonblocking:1;
16185 unsigned encountered_congestion:1;
16186 unsigned for_kupdate:1;
16187 unsigned for_reclaim:1;
16188 unsigned for_writepages:1;
16189 unsigned range_cyclic:1;
16190 unsigned more_io:1;
16191 # 74 "include/linux/writeback.h"
16192 unsigned no_nrwrite_index_update:1;
16198 void writeback_inodes(struct writeback_control *wbc);
16199 int inode_wait(void *);
16200 void sync_inodes_sb(struct super_block *, int wait);
16201 void sync_inodes(int wait);
16204 static inline __attribute__((always_inline)) void wait_on_inode(struct inode *inode)
16206 do { do { } while (0); } while (0);
16207 wait_on_bit(&inode->i_state, 7, inode_wait,
16210 static inline __attribute__((always_inline)) void inode_sync_wait(struct inode *inode)
16212 do { do { } while (0); } while (0);
16213 wait_on_bit(&inode->i_state, 8, inode_wait,
16221 int wakeup_pdflush(long nr_pages);
16222 void laptop_io_completion(void);
16223 void laptop_sync_completion(void);
16224 void throttle_vm_writeout(gfp_t gfp_mask);
16227 extern int dirty_background_ratio;
16228 extern int vm_dirty_ratio;
16229 extern int dirty_writeback_interval;
16230 extern int dirty_expire_interval;
16231 extern int vm_highmem_is_dirtyable;
16232 extern int block_dump;
16233 extern int laptop_mode;
16235 extern unsigned long determine_dirtyable_memory(void);
16237 extern int dirty_ratio_handler(struct ctl_table *table, int write,
16238 struct file *filp, void *buffer, size_t *lenp,
16243 int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *,
16244 void *, size_t *, loff_t *);
16246 void get_dirty_limits(long *pbackground, long *pdirty, long *pbdi_dirty,
16247 struct backing_dev_info *bdi);
16249 void page_writeback_init(void);
16250 void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
16251 unsigned long nr_pages_dirtied);
16253 static inline __attribute__((always_inline)) void
16254 balance_dirty_pages_ratelimited(struct address_space *mapping)
16256 balance_dirty_pages_ratelimited_nr(mapping, 1);
16259 typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc,
16262 int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0);
16263 int generic_writepages(struct address_space *mapping,
16264 struct writeback_control *wbc);
16265 int write_cache_pages(struct address_space *mapping,
16266 struct writeback_control *wbc, writepage_t writepage,
16268 int do_writepages(struct address_space *mapping, struct writeback_control *wbc);
16269 int sync_page_range(struct inode *inode, struct address_space *mapping,
16270 loff_t pos, loff_t count);
16271 int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
16272 loff_t pos, loff_t count);
16273 void set_page_dirty_balance(struct page *page, int page_mkwrite);
16274 void writeback_set_ratelimit(void);
16277 extern int nr_pdflush_threads;
16278 # 34 "kernel/trace/trace.c" 2
16280 # 1 "include/linux/stacktrace.h" 1
16284 struct task_struct;
16285 # 36 "kernel/trace/trace.c" 2
16286 # 1 "include/linux/ring_buffer.h" 1
16293 struct ring_buffer;
16294 struct ring_buffer_iter;
16299 struct ring_buffer_event {
16300 u32 type:2, len:3, time_delta:27;
16303 # 43 "include/linux/ring_buffer.h"
16304 enum ring_buffer_type {
16305 RINGBUF_TYPE_PADDING,
16306 RINGBUF_TYPE_TIME_EXTEND,
16308 RINGBUF_TYPE_TIME_STAMP,
16312 unsigned ring_buffer_event_length(struct ring_buffer_event *event);
16313 void *ring_buffer_event_data(struct ring_buffer_event *event);
16321 static inline __attribute__((always_inline)) unsigned
16322 ring_buffer_event_time_delta(struct ring_buffer_event *event)
16324 return event->time_delta;
16330 struct ring_buffer *
16331 ring_buffer_alloc(unsigned long size, unsigned flags);
16332 void ring_buffer_free(struct ring_buffer *buffer);
16334 int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size);
16336 struct ring_buffer_event *
16337 ring_buffer_lock_reserve(struct ring_buffer *buffer,
16338 unsigned long length,
16339 unsigned long *flags);
16340 int ring_buffer_unlock_commit(struct ring_buffer *buffer,
16341 struct ring_buffer_event *event,
16342 unsigned long flags);
16343 int ring_buffer_write(struct ring_buffer *buffer,
16344 unsigned long length, void *data);
16346 struct ring_buffer_event *
16347 ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts);
16348 struct ring_buffer_event *
16349 ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts);
16351 struct ring_buffer_iter *
16352 ring_buffer_read_start(struct ring_buffer *buffer, int cpu);
16353 void ring_buffer_read_finish(struct ring_buffer_iter *iter);
16355 struct ring_buffer_event *
16356 ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts);
16357 struct ring_buffer_event *
16358 ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts);
16359 void ring_buffer_iter_reset(struct ring_buffer_iter *iter);
16360 int ring_buffer_iter_empty(struct ring_buffer_iter *iter);
16362 unsigned long ring_buffer_size(struct ring_buffer *buffer);
16364 void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu);
16365 void ring_buffer_reset(struct ring_buffer *buffer);
16367 int ring_buffer_swap_cpu(struct ring_buffer *buffer_a,
16368 struct ring_buffer *buffer_b, int cpu);
16370 int ring_buffer_empty(struct ring_buffer *buffer);
16371 int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu);
16373 void ring_buffer_record_disable(struct ring_buffer *buffer);
16374 void ring_buffer_record_enable(struct ring_buffer *buffer);
16375 void ring_buffer_record_disable_cpu(struct ring_buffer *buffer, int cpu);
16376 void ring_buffer_record_enable_cpu(struct ring_buffer *buffer, int cpu);
16378 unsigned long ring_buffer_entries(struct ring_buffer *buffer);
16379 unsigned long ring_buffer_overruns(struct ring_buffer *buffer);
16381 u64 ring_buffer_time_stamp(int cpu);
16382 void ring_buffer_normalize_time_stamp(int cpu, u64 *ts);
16384 void tracing_on(void);
16385 void tracing_off(void);
16387 enum ring_buffer_flags {
16388 RB_FL_OVERWRITE = 1 << 0,
16390 # 37 "kernel/trace/trace.c" 2
16391 # 1 "include/linux/irqflags.h" 1
16392 # 38 "kernel/trace/trace.c" 2
16394 # 1 "kernel/trace/trace.h" 1
16401 # 1 "include/linux/clocksource.h" 1
16402 # 17 "include/linux/clocksource.h"
16403 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 1
16404 # 18 "include/linux/clocksource.h" 2
16408 typedef u64 cycle_t;
16409 struct clocksource;
16410 # 57 "include/linux/clocksource.h"
16411 struct clocksource {
16416 struct list_head list;
16418 cycle_t (*read)(void);
16423 unsigned long flags;
16424 cycle_t (*vread)(void);
16425 void (*resume)(void);
16426 # 80 "include/linux/clocksource.h"
16427 cycle_t cycle_interval;
16428 u64 xtime_interval;
16435 cycle_t cycle_last ;
16438 struct timespec raw_time;
16447 extern struct clocksource *clock;
16448 # 122 "include/linux/clocksource.h"
16449 static inline __attribute__((always_inline)) u32 clocksource_khz2mult(u32 khz, u32 shift_constant)
16458 u64 tmp = ((u64)1000000) << shift_constant;
16461 ({ uint32_t __base = (khz); uint32_t __rem; (void)(((typeof((tmp)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((tmp) >> 32) == 0), 1)) { __rem = (uint32_t)(tmp) % __base; (tmp) = (uint32_t)(tmp) / __base; } else __rem = __div64_32(&(tmp), __base); __rem; });
16465 # 148 "include/linux/clocksource.h"
16466 static inline __attribute__((always_inline)) u32 clocksource_hz2mult(u32 hz, u32 shift_constant)
16475 u64 tmp = ((u64)1000000000) << shift_constant;
16478 ({ uint32_t __base = (hz); uint32_t __rem; (void)(((typeof((tmp)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((tmp) >> 32) == 0), 1)) { __rem = (uint32_t)(tmp) % __base; (tmp) = (uint32_t)(tmp) / __base; } else __rem = __div64_32(&(tmp), __base); __rem; });
16489 static inline __attribute__((always_inline)) cycle_t clocksource_read(struct clocksource *cs)
16493 # 185 "include/linux/clocksource.h"
16494 static inline __attribute__((always_inline)) s64 cyc2ns(struct clocksource *cs, cycle_t cycles)
16496 u64 ret = (u64)cycles;
16497 ret = (ret * cs->mult) >> cs->shift;
16500 # 203 "include/linux/clocksource.h"
16501 static inline __attribute__((always_inline)) void clocksource_calculate_interval(struct clocksource *c,
16502 unsigned long length_nsec)
16509 tmp += c->mult_orig/2;
16510 ({ uint32_t __base = (c->mult_orig); uint32_t __rem; (void)(((typeof((tmp)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((tmp) >> 32) == 0), 1)) { __rem = (uint32_t)(tmp) % __base; (tmp) = (uint32_t)(tmp) / __base; } else __rem = __div64_32(&(tmp), __base); __rem; });
16512 c->cycle_interval = (cycle_t)tmp;
16513 if (c->cycle_interval == 0)
16514 c->cycle_interval = 1;
16517 c->xtime_interval = (u64)c->cycle_interval * c->mult;
16518 c->raw_interval = ((u64)c->cycle_interval * c->mult_orig) >> c->shift;
16523 extern int clocksource_register(struct clocksource*);
16524 extern void clocksource_unregister(struct clocksource*);
16525 extern void clocksource_touch_watchdog(void);
16526 extern struct clocksource* clocksource_get_next(void);
16527 extern void clocksource_change_rating(struct clocksource *cs, int rating);
16528 extern void clocksource_resume(void);
16534 static inline __attribute__((always_inline)) void update_vsyscall(struct timespec *ts, struct clocksource *c)
16538 static inline __attribute__((always_inline)) void update_vsyscall_tz(void)
16541 # 8 "kernel/trace/trace.h" 2
16543 # 1 "include/linux/mmiotrace.h" 1
16550 struct kmmio_probe;
16553 typedef void (*kmmio_pre_handler_t)(struct kmmio_probe *,
16554 struct pt_regs *, unsigned long addr);
16555 typedef void (*kmmio_post_handler_t)(struct kmmio_probe *,
16556 unsigned long condition, struct pt_regs *);
16558 struct kmmio_probe {
16559 struct list_head list;
16560 unsigned long addr;
16562 kmmio_pre_handler_t pre_handler;
16563 kmmio_post_handler_t post_handler;
16568 static inline __attribute__((always_inline)) int is_kmmio_active(void)
16570 extern unsigned int kmmio_count;
16571 return kmmio_count;
16574 extern int register_kmmio_probe(struct kmmio_probe *p);
16575 extern void unregister_kmmio_probe(struct kmmio_probe *p);
16578 extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
16579 # 47 "include/linux/mmiotrace.h"
16580 static inline __attribute__((always_inline)) void mmiotrace_ioremap(resource_size_t offset,
16581 unsigned long size, void *addr)
16585 static inline __attribute__((always_inline)) void mmiotrace_iounmap(volatile void *addr)
16589 static inline __attribute__((always_inline)) int mmiotrace_printk(const char *fmt, ...)
16590 __attribute__ ((format (printf, 1, 0)));
16592 static inline __attribute__((always_inline)) int mmiotrace_printk(const char *fmt, ...)
16598 enum mm_io_opcode {
16602 MMIO_UNPROBE = 0x4,
16603 MMIO_UNKNOWN_OP = 0x5,
16606 struct mmiotrace_rw {
16607 resource_size_t phys;
16608 unsigned long value;
16611 unsigned char opcode;
16612 unsigned char width;
16615 struct mmiotrace_map {
16616 resource_size_t phys;
16617 unsigned long virt;
16620 unsigned char opcode;
16624 extern void enable_mmiotrace(void);
16625 extern void disable_mmiotrace(void);
16626 extern void mmio_trace_rw(struct mmiotrace_rw *rw);
16627 extern void mmio_trace_mapping(struct mmiotrace_map *map);
16628 extern int mmio_trace_printk(const char *fmt, va_list args);
16629 # 10 "kernel/trace/trace.h" 2
16633 __TRACE_FIRST_TYPE = 0,
16655 struct trace_entry {
16656 unsigned char type;
16658 unsigned char flags;
16659 unsigned char preempt_count;
16666 struct ftrace_entry {
16667 struct trace_entry ent;
16669 unsigned long parent_ip;
16671 extern struct tracer boot_tracer;
16676 struct ctx_switch_entry {
16677 struct trace_entry ent;
16678 unsigned int prev_pid;
16679 unsigned char prev_prio;
16680 unsigned char prev_state;
16681 unsigned int next_pid;
16682 unsigned char next_prio;
16683 unsigned char next_state;
16684 unsigned int next_cpu;
16690 struct special_entry {
16691 struct trace_entry ent;
16692 unsigned long arg1;
16693 unsigned long arg2;
16694 unsigned long arg3;
16703 struct stack_entry {
16704 struct trace_entry ent;
16705 unsigned long caller[8];
16711 struct print_entry {
16712 struct trace_entry ent;
16719 struct trace_field_cont {
16720 unsigned char type;
16725 struct trace_mmiotrace_rw {
16726 struct trace_entry ent;
16727 struct mmiotrace_rw rw;
16730 struct trace_mmiotrace_map {
16731 struct trace_entry ent;
16732 struct mmiotrace_map map;
16735 struct trace_boot {
16736 struct trace_entry ent;
16737 struct boot_trace initcall;
16739 # 130 "kernel/trace/trace.h"
16740 enum trace_flag_type {
16741 TRACE_FLAG_IRQS_OFF = 0x01,
16742 TRACE_FLAG_IRQS_NOSUPPORT = 0x02,
16743 TRACE_FLAG_NEED_RESCHED = 0x04,
16744 TRACE_FLAG_HARDIRQ = 0x08,
16745 TRACE_FLAG_SOFTIRQ = 0x10,
16746 TRACE_FLAG_CONT = 0x20,
16748 # 146 "kernel/trace/trace.h"
16749 struct trace_array_cpu {
16753 unsigned long trace_idx;
16754 unsigned long overrun;
16755 unsigned long saved_latency;
16756 unsigned long critical_start;
16757 unsigned long critical_end;
16758 unsigned long critical_sequence;
16759 unsigned long nice;
16760 unsigned long policy;
16761 unsigned long rt_priority;
16762 cycle_t preempt_timestamp;
16768 struct trace_iterator;
16775 struct trace_array {
16776 struct ring_buffer *buffer;
16777 unsigned long entries;
16780 cycle_t time_start;
16781 struct task_struct *waiter;
16782 struct trace_array_cpu *data[1];
16784 # 194 "kernel/trace/trace.h"
16785 extern void __ftrace_bad_type(void);
16786 # 226 "kernel/trace/trace.h"
16787 enum print_line_t {
16788 TRACE_TYPE_PARTIAL_LINE = 0,
16789 TRACE_TYPE_HANDLED = 1,
16790 TRACE_TYPE_UNHANDLED = 2
16798 void (*init)(struct trace_array *tr);
16799 void (*reset)(struct trace_array *tr);
16800 void (*open)(struct trace_iterator *iter);
16801 void (*pipe_open)(struct trace_iterator *iter);
16802 void (*close)(struct trace_iterator *iter);
16803 void (*start)(struct trace_iterator *iter);
16804 void (*stop)(struct trace_iterator *iter);
16805 ssize_t (*read)(struct trace_iterator *iter,
16806 struct file *filp, char *ubuf,
16807 size_t cnt, loff_t *ppos);
16808 void (*ctrl_update)(struct trace_array *tr);
16813 enum print_line_t (*print_line)(struct trace_iterator *iter);
16814 struct tracer *next;
16819 unsigned char buffer[(1UL << 12)];
16821 unsigned int readpos;
16828 struct trace_iterator {
16829 struct trace_array *tr;
16830 struct tracer *trace;
16832 struct ring_buffer_iter *buffer_iter[1];
16835 struct trace_seq seq;
16836 struct trace_entry *ent;
16840 unsigned long iter_flags;
16845 void trace_wake_up(void);
16846 void tracing_reset(struct trace_array *tr, int cpu);
16847 int tracing_open_generic(struct inode *inode, struct file *filp);
16848 struct dentry *tracing_init_dentry(void);
16849 void init_tracer_sysprof_debugfs(struct dentry *d_tracer);
16851 struct trace_entry *tracing_get_trace_entry(struct trace_array *tr,
16852 struct trace_array_cpu *data);
16853 void tracing_generic_entry_update(struct trace_entry *entry,
16854 unsigned long flags,
16857 void ftrace(struct trace_array *tr,
16858 struct trace_array_cpu *data,
16860 unsigned long parent_ip,
16861 unsigned long flags, int pc);
16862 void tracing_sched_switch_trace(struct trace_array *tr,
16863 struct trace_array_cpu *data,
16864 struct task_struct *prev,
16865 struct task_struct *next,
16866 unsigned long flags, int pc);
16867 void tracing_record_cmdline(struct task_struct *tsk);
16869 void tracing_sched_wakeup_trace(struct trace_array *tr,
16870 struct trace_array_cpu *data,
16871 struct task_struct *wakee,
16872 struct task_struct *cur,
16873 unsigned long flags, int pc);
16874 void trace_special(struct trace_array *tr,
16875 struct trace_array_cpu *data,
16876 unsigned long arg1,
16877 unsigned long arg2,
16878 unsigned long arg3, int pc);
16879 void trace_function(struct trace_array *tr,
16880 struct trace_array_cpu *data,
16882 unsigned long parent_ip,
16883 unsigned long flags, int pc);
16885 void tracing_start_cmdline_record(void);
16886 void tracing_stop_cmdline_record(void);
16887 int register_tracer(struct tracer *type);
16888 void unregister_tracer(struct tracer *type);
16890 extern unsigned long nsecs_to_usecs(unsigned long nsecs);
16892 extern unsigned long tracing_max_latency;
16893 extern unsigned long tracing_thresh;
16895 void update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu);
16896 void update_max_tr_single(struct trace_array *tr,
16897 struct task_struct *tsk, int cpu);
16899 extern cycle_t ftrace_now(int cpu);
16900 # 349 "kernel/trace/trace.h"
16902 (*tracer_switch_func_t)(void *private,
16904 struct task_struct *prev,
16905 struct task_struct *next);
16907 struct tracer_switch_ops {
16908 tracer_switch_func_t func;
16910 struct tracer_switch_ops *next;
16912 # 388 "kernel/trace/trace.h"
16913 extern void *head_page(struct trace_array_cpu *data);
16914 extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...);
16915 extern void trace_seq_print_cont(struct trace_seq *s,
16916 struct trace_iterator *iter);
16917 extern ssize_t trace_seq_to_user(struct trace_seq *s, char *ubuf,
16919 extern long ns2usecs(cycle_t nsec);
16920 extern int trace_vprintk(unsigned long ip, const char *fmt, va_list args);
16922 extern unsigned long trace_flags;
16923 # 406 "kernel/trace/trace.h"
16924 enum trace_iterator_flags {
16925 TRACE_ITER_PRINT_PARENT = 0x01,
16926 TRACE_ITER_SYM_OFFSET = 0x02,
16927 TRACE_ITER_SYM_ADDR = 0x04,
16928 TRACE_ITER_VERBOSE = 0x08,
16929 TRACE_ITER_RAW = 0x10,
16930 TRACE_ITER_HEX = 0x20,
16931 TRACE_ITER_BIN = 0x40,
16932 TRACE_ITER_BLOCK = 0x80,
16933 TRACE_ITER_STACKTRACE = 0x100,
16934 TRACE_ITER_SCHED_TREE = 0x200,
16935 TRACE_ITER_PRINTK = 0x400,
16938 extern struct tracer nop_trace;
16939 # 40 "kernel/trace/trace.c" 2
16943 unsigned long tracing_max_latency = (cycle_t)(~0UL);
16944 unsigned long tracing_thresh;
16946 static __typeof__(local_t) per_cpu__ftrace_cpu_disabled;
16948 static inline __attribute__((always_inline)) void ftrace_disable_cpu(void)
16951 atomic_long_inc(&(&per_cpu__ftrace_cpu_disabled)->a);
16954 static inline __attribute__((always_inline)) void ftrace_enable_cpu(void)
16956 atomic_long_dec(&(&per_cpu__ftrace_cpu_disabled)->a);
16960 static cpumask_t tracing_buffer_mask;
16965 static int tracing_disabled = 1;
16968 ns2usecs(cycle_t nsec)
16971 ({ uint32_t __base = (1000); uint32_t __rem; (void)(((typeof((nsec)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((nsec) >> 32) == 0), 1)) { __rem = (uint32_t)(nsec) % __base; (nsec) = (uint32_t)(nsec) / __base; } else __rem = __div64_32(&(nsec), __base); __rem; });
16975 cycle_t ftrace_now(int cpu)
16977 u64 ts = ring_buffer_time_stamp(cpu);
16978 ring_buffer_normalize_time_stamp(cpu, &ts);
16981 # 94 "kernel/trace/trace.c"
16982 static struct trace_array global_trace;
16984 static __typeof__(struct trace_array_cpu) per_cpu__global_trace_cpu;
16985 # 108 "kernel/trace/trace.c"
16986 static struct trace_array max_tr;
16988 static __typeof__(struct trace_array_cpu) per_cpu__max_data;
16991 static int tracer_enabled = 1;
16994 int ftrace_function_enabled;
16995 # 130 "kernel/trace/trace.c"
16996 static unsigned long trace_buf_size = 1441792UL;
16999 static struct tracer *trace_types ;
17002 static struct tracer *current_trace ;
17009 static int max_tracer_type_len;
17017 static struct mutex trace_types_lock = { .count = { (1) } , .wait_lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, } , .wait_list = { &(trace_types_lock.wait_list), &(trace_types_lock.wait_list) } , .magic = &trace_types_lock };
17020 static wait_queue_head_t trace_wait = { .lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, }, .task_list = { &(trace_wait).task_list, &(trace_wait).task_list } };
17023 unsigned long trace_flags = TRACE_ITER_PRINT_PARENT;
17031 void trace_wake_up(void)
17037 if (!(trace_flags & TRACE_ITER_BLOCK) && !runqueue_is_locked())
17038 __wake_up(&trace_wait, (1 | 2), 1, ((void *)0));
17041 static int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) set_buf_size(char *str)
17043 unsigned long buf_size;
17048 ret = strict_strtoul(str, 0, &buf_size);
17050 if (ret < 0 || buf_size == 0)
17052 trace_buf_size = buf_size;
17055 static char __setup_str_set_buf_size[] __attribute__ ((__section__(".init.data"))) __attribute__((aligned(1))) = "trace_buf_size="; static struct obs_kernel_param __setup_set_buf_size __attribute__((__used__)) __attribute__ ((__section__(".init.setup"))) __attribute__((aligned((sizeof(long))))) = { __setup_str_set_buf_size, set_buf_size, 0 };
17057 unsigned long nsecs_to_usecs(unsigned long nsecs)
17059 return nsecs / 1000;
17061 # 204 "kernel/trace/trace.c"
17062 static const char *trace_options[] = {
17076 # 228 "kernel/trace/trace.c"
17077 static raw_spinlock_t ftrace_max_lock =
17078 (raw_spinlock_t){ 1 };
17086 __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
17088 struct trace_array_cpu *data = tr->data[cpu];
17091 max_tr.time_start = data->preempt_timestamp;
17093 data = max_tr.data[cpu];
17094 data->saved_latency = tracing_max_latency;
17096 memcpy(data->comm, tsk->comm, 16);
17097 data->pid = tsk->pid;
17098 data->uid = tsk->uid;
17099 data->nice = tsk->static_prio - 20 - 100;
17100 data->policy = tsk->policy;
17101 data->rt_priority = tsk->rt_priority;
17104 tracing_record_cmdline((get_current()));
17106 # 269 "kernel/trace/trace.c"
17108 trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
17110 int len = ((1UL << 12) - 1) - s->len;
17117 __builtin_va_start(ap,fmt);
17118 ret = vsnprintf(s->buffer + s->len, len, fmt, ap);
17119 __builtin_va_end(ap);
17129 # 302 "kernel/trace/trace.c"
17131 trace_seq_puts(struct trace_seq *s, const char *str)
17133 int len = strlen(str);
17135 if (len > (((1UL << 12) - 1) - s->len))
17138 memcpy(s->buffer + s->len, str, len);
17145 trace_seq_putc(struct trace_seq *s, unsigned char c)
17147 if (s->len >= ((1UL << 12) - 1))
17150 s->buffer[s->len++] = c;
17156 trace_seq_putmem(struct trace_seq *s, void *mem, size_t len)
17158 if (len > (((1UL << 12) - 1) - s->len))
17161 memcpy(s->buffer + s->len, mem, len);
17171 trace_seq_putmem_hex(struct trace_seq *s, void *mem, size_t len)
17173 unsigned char hex[(8*2 + 1)];
17174 unsigned char *data = mem;
17180 for (i = len-1, j = 0; i >= 0; i--) {
17182 hex[j++] = hex_asc[((data[i]) & 0xf0) >> 4];
17183 hex[j++] = hex_asc[((data[i]) & 0x0f)];
17187 return trace_seq_putmem(s, hex, j);
17191 trace_seq_reset(struct trace_seq *s)
17197 ssize_t trace_seq_to_user(struct trace_seq *s, char *ubuf, size_t cnt)
17202 if (s->len <= s->readpos)
17205 len = s->len - s->readpos;
17208 ret = copy_to_user(ubuf, s->buffer + s->readpos, cnt);
17217 trace_print_seq(struct seq_file *m, struct trace_seq *s)
17219 int len = s->len >= (1UL << 12) ? (1UL << 12) - 1 : s->len;
17221 s->buffer[len] = 0;
17222 seq_puts(m, s->buffer);
17224 trace_seq_reset(s);
17226 # 408 "kernel/trace/trace.c"
17228 update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
17230 struct ring_buffer *buf = tr->buffer;
17232 ({ static int __warned; int __ret_warn_once = !!(!({ unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %0;" : "=d" (flags) ); !(((flags) & ~0x3f) != 0); })); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 413); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = 1; __builtin_expect(!!(__ret_warn_once), 0); });
17233 __raw_spin_lock(&ftrace_max_lock);
17235 tr->buffer = max_tr.buffer;
17236 max_tr.buffer = buf;
17238 ftrace_disable_cpu();
17239 ring_buffer_reset(tr->buffer);
17240 ftrace_enable_cpu();
17242 __update_max_tr(tr, tsk, cpu);
17243 __raw_spin_unlock(&ftrace_max_lock);
17245 # 435 "kernel/trace/trace.c"
17247 update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
17251 ({ static int __warned; int __ret_warn_once = !!(!({ unsigned long flags; __asm__ __volatile__( "cli %0;" "sti %0;" : "=d" (flags) ); !(((flags) & ~0x3f) != 0); })); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 440); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = 1; __builtin_expect(!!(__ret_warn_once), 0); });
17252 __raw_spin_lock(&ftrace_max_lock);
17254 ftrace_disable_cpu();
17256 ring_buffer_reset(max_tr.buffer);
17257 ret = ring_buffer_swap_cpu(max_tr.buffer, tr->buffer, cpu);
17259 ftrace_enable_cpu();
17261 ({ static int __warned; int __ret_warn_once = !!(ret); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 450); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = 1; __builtin_expect(!!(__ret_warn_once), 0); });
17263 __update_max_tr(tr, tsk, cpu);
17264 __raw_spin_unlock(&ftrace_max_lock);
17273 int register_tracer(struct tracer *type)
17280 printk("<6>" "Tracer must have a name\n");
17284 mutex_lock(&trace_types_lock);
17285 for (t = trace_types; t; t = t->next) {
17286 if (strcmp(type->name, t->name) == 0) {
17288 printk("<6>" "Trace %s already registered\n", type->name);
17294 # 520 "kernel/trace/trace.c"
17295 type->next = trace_types;
17296 trace_types = type;
17297 len = strlen(type->name);
17298 if (len > max_tracer_type_len)
17299 max_tracer_type_len = len;
17302 mutex_unlock(&trace_types_lock);
17307 void unregister_tracer(struct tracer *type)
17312 mutex_lock(&trace_types_lock);
17313 for (t = &trace_types; *t; t = &(*t)->next) {
17317 printk("<6>" "Trace %s not registered\n", type->name);
17322 if (strlen(type->name) != max_tracer_type_len)
17325 max_tracer_type_len = 0;
17326 for (t = &trace_types; *t; t = &(*t)->next) {
17327 len = strlen((*t)->name);
17328 if (len > max_tracer_type_len)
17329 max_tracer_type_len = len;
17332 mutex_unlock(&trace_types_lock);
17335 void tracing_reset(struct trace_array *tr, int cpu)
17337 ftrace_disable_cpu();
17338 ring_buffer_reset_cpu(tr->buffer, cpu);
17339 ftrace_enable_cpu();
17343 static unsigned map_pid_to_cmdline[(1 ? 0x1000 : 0x8000)+1];
17344 static unsigned map_cmdline_to_pid[128];
17345 static char saved_cmdlines[128][16];
17346 static int cmdline_idx;
17347 static spinlock_t trace_cmdline_lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, };
17350 atomic_t trace_record_cmdline_disabled ;
17352 static void trace_init_cmdlines(void)
17354 memset(&map_pid_to_cmdline, -1, sizeof(map_pid_to_cmdline));
17355 memset(&map_cmdline_to_pid, -1, sizeof(map_cmdline_to_pid));
17359 void trace_stop_cmdline_recording(void);
17361 static void trace_save_cmdline(struct task_struct *tsk)
17366 if (!tsk->pid || __builtin_expect(!!(tsk->pid > (1 ? 0x1000 : 0x8000)), 0))
17375 if (!(_spin_trylock(&trace_cmdline_lock)))
17378 idx = map_pid_to_cmdline[tsk->pid];
17380 idx = (cmdline_idx + 1) % 128;
17382 map = map_cmdline_to_pid[idx];
17383 if (map <= (1 ? 0x1000 : 0x8000))
17384 map_pid_to_cmdline[map] = (unsigned)-1;
17386 map_pid_to_cmdline[tsk->pid] = idx;
17391 memcpy(&saved_cmdlines[idx], tsk->comm, 16);
17393 _spin_unlock(&trace_cmdline_lock);
17396 static char *trace_find_cmdline(int pid)
17398 char *cmdline = "<...>";
17404 if (pid > (1 ? 0x1000 : 0x8000))
17407 map = map_pid_to_cmdline[pid];
17411 cmdline = saved_cmdlines[map];
17417 void tracing_record_cmdline(struct task_struct *tsk)
17419 if (((&trace_record_cmdline_disabled)->counter))
17422 trace_save_cmdline(tsk);
17426 tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
17429 struct task_struct *tsk = (get_current());
17431 entry->preempt_count = pc & 0xff;
17432 entry->pid = (tsk) ? tsk->pid : 0;
17437 TRACE_FLAG_IRQS_NOSUPPORT |
17439 ((pc & (((1UL << (8))-1) << ((0 + 8) + 8))) ? TRACE_FLAG_HARDIRQ : 0) |
17440 ((pc & (((1UL << (8))-1) << (0 + 8))) ? TRACE_FLAG_SOFTIRQ : 0) |
17441 (need_resched() ? TRACE_FLAG_NEED_RESCHED : 0);
17445 trace_function(struct trace_array *tr, struct trace_array_cpu *data,
17446 unsigned long ip, unsigned long parent_ip, unsigned long flags,
17449 struct ring_buffer_event *event;
17450 struct ftrace_entry *entry;
17451 unsigned long irq_flags;
17454 if (__builtin_expect(!!(atomic_long_read(&(&per_cpu__ftrace_cpu_disabled)->a)), 0))
17457 event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry),
17461 entry = ring_buffer_event_data(event);
17462 tracing_generic_entry_update(&entry->ent, flags, pc);
17463 entry->ent.type = TRACE_FN;
17465 entry->parent_ip = parent_ip;
17466 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
17470 ftrace(struct trace_array *tr, struct trace_array_cpu *data,
17471 unsigned long ip, unsigned long parent_ip, unsigned long flags,
17474 if (__builtin_expect(!!(!((&data->disabled)->counter)), 1))
17475 trace_function(tr, data, ip, parent_ip, flags, pc);
17478 static void ftrace_trace_stack(struct trace_array *tr,
17479 struct trace_array_cpu *data,
17480 unsigned long flags,
17483 # 735 "kernel/trace/trace.c"
17486 void __trace_stack(struct trace_array *tr,
17487 struct trace_array_cpu *data,
17488 unsigned long flags,
17491 ftrace_trace_stack(tr, data, flags, skip, (current_thread_info()->preempt_count));
17495 ftrace_trace_special(void *__tr, void *__data,
17496 unsigned long arg1, unsigned long arg2, unsigned long arg3,
17499 struct ring_buffer_event *event;
17500 struct trace_array_cpu *data = __data;
17501 struct trace_array *tr = __tr;
17502 struct special_entry *entry;
17503 unsigned long irq_flags;
17505 event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry),
17509 entry = ring_buffer_event_data(event);
17510 tracing_generic_entry_update(&entry->ent, 0, pc);
17511 entry->ent.type = TRACE_SPECIAL;
17512 entry->arg1 = arg1;
17513 entry->arg2 = arg2;
17514 entry->arg3 = arg3;
17515 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
17516 ftrace_trace_stack(tr, data, irq_flags, 4, pc);
17522 __trace_special(void *__tr, void *__data,
17523 unsigned long arg1, unsigned long arg2, unsigned long arg3)
17525 ftrace_trace_special(__tr, __data, arg1, arg2, arg3, (current_thread_info()->preempt_count));
17529 tracing_sched_switch_trace(struct trace_array *tr,
17530 struct trace_array_cpu *data,
17531 struct task_struct *prev,
17532 struct task_struct *next,
17533 unsigned long flags, int pc)
17535 struct ring_buffer_event *event;
17536 struct ctx_switch_entry *entry;
17537 unsigned long irq_flags;
17539 event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry),
17543 entry = ring_buffer_event_data(event);
17544 tracing_generic_entry_update(&entry->ent, flags, pc);
17545 entry->ent.type = TRACE_CTX;
17546 entry->prev_pid = prev->pid;
17547 entry->prev_prio = prev->prio;
17548 entry->prev_state = prev->state;
17549 entry->next_pid = next->pid;
17550 entry->next_prio = next->prio;
17551 entry->next_state = next->state;
17552 entry->next_cpu = task_cpu(next);
17553 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
17554 ftrace_trace_stack(tr, data, flags, 5, pc);
17558 tracing_sched_wakeup_trace(struct trace_array *tr,
17559 struct trace_array_cpu *data,
17560 struct task_struct *wakee,
17561 struct task_struct *curr,
17562 unsigned long flags, int pc)
17564 struct ring_buffer_event *event;
17565 struct ctx_switch_entry *entry;
17566 unsigned long irq_flags;
17568 event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry),
17572 entry = ring_buffer_event_data(event);
17573 tracing_generic_entry_update(&entry->ent, flags, pc);
17574 entry->ent.type = TRACE_WAKE;
17575 entry->prev_pid = curr->pid;
17576 entry->prev_prio = curr->prio;
17577 entry->prev_state = curr->state;
17578 entry->next_pid = wakee->pid;
17579 entry->next_prio = wakee->prio;
17580 entry->next_state = wakee->state;
17581 entry->next_cpu = task_cpu(wakee);
17582 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
17583 ftrace_trace_stack(tr, data, flags, 6, pc);
17589 ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3)
17591 struct trace_array *tr = &global_trace;
17592 struct trace_array_cpu *data;
17596 if (tracing_disabled || !tr->ctrl)
17599 pc = (current_thread_info()->preempt_count);
17602 data = tr->data[cpu];
17604 if (__builtin_expect(!!(!((&data->disabled)->counter)), 1))
17605 ftrace_trace_special(tr, data, arg1, arg2, arg3, pc);
17609 # 913 "kernel/trace/trace.c"
17610 enum trace_file_type {
17611 TRACE_FILE_LAT_FMT = 1,
17614 static void trace_iterator_increment(struct trace_iterator *iter, int cpu)
17617 ftrace_disable_cpu();
17620 if (iter->buffer_iter[iter->cpu])
17621 ring_buffer_read(iter->buffer_iter[iter->cpu], ((void *)0));
17623 ftrace_enable_cpu();
17626 static struct trace_entry *
17627 peek_next_entry(struct trace_iterator *iter, int cpu, u64 *ts)
17629 struct ring_buffer_event *event;
17630 struct ring_buffer_iter *buf_iter = iter->buffer_iter[cpu];
17633 ftrace_disable_cpu();
17636 event = ring_buffer_iter_peek(buf_iter, ts);
17638 event = ring_buffer_peek(iter->tr->buffer, cpu, ts);
17640 ftrace_enable_cpu();
17642 return event ? ring_buffer_event_data(event) : ((void *)0);
17645 static struct trace_entry *
17646 __find_next_entry(struct trace_iterator *iter, int *ent_cpu, u64 *ent_ts)
17648 struct ring_buffer *buffer = iter->tr->buffer;
17649 struct trace_entry *ent, *next = ((void *)0);
17650 u64 next_ts = 0, ts;
17654 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
17656 if (ring_buffer_empty_cpu(buffer, cpu))
17659 ent = peek_next_entry(iter, cpu, &ts);
17664 if (ent && (!next || ts < next_ts)) {
17672 *ent_cpu = next_cpu;
17681 static struct trace_entry *
17682 find_next_entry(struct trace_iterator *iter, int *ent_cpu, u64 *ent_ts)
17684 return __find_next_entry(iter, ent_cpu, ent_ts);
17688 static void *find_next_entry_inc(struct trace_iterator *iter)
17690 iter->ent = __find_next_entry(iter, &iter->cpu, &iter->ts);
17693 trace_iterator_increment(iter, iter->cpu);
17695 return iter->ent ? iter : ((void *)0);
17698 static void trace_consume(struct trace_iterator *iter)
17701 ftrace_disable_cpu();
17702 ring_buffer_consume(iter->tr->buffer, iter->cpu, &iter->ts);
17703 ftrace_enable_cpu();
17706 static void *s_next(struct seq_file *m, void *v, loff_t *pos)
17708 struct trace_iterator *iter = m->private;
17716 return ((void *)0);
17719 ent = find_next_entry_inc(iter);
17723 while (ent && iter->idx < i)
17724 ent = find_next_entry_inc(iter);
17731 static void *s_start(struct seq_file *m, loff_t *pos)
17733 struct trace_iterator *iter = m->private;
17734 void *p = ((void *)0);
17738 mutex_lock(&trace_types_lock);
17740 if (!current_trace || current_trace != iter->trace) {
17741 mutex_unlock(&trace_types_lock);
17742 return ((void *)0);
17745 atomic_inc(&trace_record_cmdline_disabled);
17748 if (current_trace->start)
17749 current_trace->start(iter);
17751 if (*pos != iter->pos) {
17752 iter->ent = ((void *)0);
17756 ftrace_disable_cpu();
17758 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
17759 ring_buffer_iter_reset(iter->buffer_iter[cpu]);
17762 ftrace_enable_cpu();
17764 for (p = iter; p && l < *pos; p = s_next(m, p, &l))
17769 p = s_next(m, p, &l);
17775 static void s_stop(struct seq_file *m, void *p)
17777 struct trace_iterator *iter = m->private;
17779 atomic_dec(&trace_record_cmdline_disabled);
17782 if (current_trace && current_trace == iter->trace && iter->trace->stop)
17783 iter->trace->stop(iter);
17785 mutex_unlock(&trace_types_lock);
17787 # 1102 "kernel/trace/trace.c"
17788 static inline __attribute__((always_inline)) const char *kretprobed(const char *name)
17795 seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address)
17797 # 1121 "kernel/trace/trace.c"
17802 seq_print_sym_offset(struct trace_seq *s, const char *fmt,
17803 unsigned long address)
17805 # 1137 "kernel/trace/trace.c"
17816 seq_print_ip_sym(struct trace_seq *s, unsigned long ip, unsigned long sym_flags)
17821 return trace_seq_printf(s, "0");
17823 if (sym_flags & TRACE_ITER_SYM_OFFSET)
17824 ret = seq_print_sym_offset(s, "%s", ip);
17826 ret = seq_print_sym_short(s, "%s", ip);
17831 if (sym_flags & TRACE_ITER_SYM_ADDR)
17832 ret = trace_seq_printf(s, " <" "%08lx" ">", ip);
17836 static void print_lat_help_header(struct seq_file *m)
17838 seq_puts(m, "# _------=> CPU# \n");
17839 seq_puts(m, "# / _-----=> irqs-off \n");
17840 seq_puts(m, "# | / _----=> need-resched \n");
17841 seq_puts(m, "# || / _---=> hardirq/softirq \n");
17842 seq_puts(m, "# ||| / _--=> preempt-depth \n");
17843 seq_puts(m, "# |||| / \n");
17844 seq_puts(m, "# ||||| delay \n");
17845 seq_puts(m, "# cmd pid ||||| time | caller \n");
17846 seq_puts(m, "# \\ / ||||| \\ | / \n");
17849 static void print_func_help_header(struct seq_file *m)
17851 seq_puts(m, "# TASK-PID CPU# TIMESTAMP FUNCTION\n");
17852 seq_puts(m, "# | | | | |\n");
17857 print_trace_header(struct seq_file *m, struct trace_iterator *iter)
17859 unsigned long sym_flags = (trace_flags & (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR));
17860 struct trace_array *tr = iter->tr;
17861 struct trace_array_cpu *data = tr->data[tr->cpu];
17862 struct tracer *type = current_trace;
17863 unsigned long total;
17864 unsigned long entries;
17865 const char *name = "preemption";
17870 entries = ring_buffer_entries(iter->tr->buffer);
17872 ring_buffer_overruns(iter->tr->buffer);
17874 seq_printf(m, "%s latency trace v1.1.5 on %s\n",
17875 name, "2.6.28-ADI-2009R1-pre-g0033e75-dirty");
17876 seq_puts(m, "-----------------------------------"
17877 "---------------------------------\n");
17878 seq_printf(m, " latency: %lu us, #%lu/%lu, CPU#%d |"
17879 " (M:%s VP:%d, KP:%d, SP:%d HP:%d",
17880 nsecs_to_usecs(data->saved_latency),
17886 # 1225 "kernel/trace/trace.c"
17891 seq_puts(m, ")\n");
17893 seq_puts(m, " -----------------\n");
17894 seq_printf(m, " | task: %.16s-%d "
17895 "(uid:%d nice:%ld policy:%ld rt_prio:%ld)\n",
17896 data->comm, data->pid, data->uid, data->nice,
17897 data->policy, data->rt_priority);
17898 seq_puts(m, " -----------------\n");
17900 if (data->critical_start) {
17901 seq_puts(m, " => started at: ");
17902 seq_print_ip_sym(&iter->seq, data->critical_start, sym_flags);
17903 trace_print_seq(m, &iter->seq);
17904 seq_puts(m, "\n => ended at: ");
17905 seq_print_ip_sym(&iter->seq, data->critical_end, sym_flags);
17906 trace_print_seq(m, &iter->seq);
17914 lat_print_generic(struct trace_seq *s, struct trace_entry *entry, int cpu)
17916 int hardirq, softirq;
17919 comm = trace_find_cmdline(entry->pid);
17921 trace_seq_printf(s, "%8.8s-%-5d ", comm, entry->pid);
17922 trace_seq_printf(s, "%3d", cpu);
17923 trace_seq_printf(s, "%c%c",
17924 (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' :
17925 (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' : '.',
17926 ((entry->flags & TRACE_FLAG_NEED_RESCHED) ? 'N' : '.'));
17928 hardirq = entry->flags & TRACE_FLAG_HARDIRQ;
17929 softirq = entry->flags & TRACE_FLAG_SOFTIRQ;
17930 if (hardirq && softirq) {
17931 trace_seq_putc(s, 'H');
17934 trace_seq_putc(s, 'h');
17937 trace_seq_putc(s, 's');
17939 trace_seq_putc(s, '.');
17943 if (entry->preempt_count)
17944 trace_seq_printf(s, "%x", entry->preempt_count);
17946 trace_seq_puts(s, ".");
17949 unsigned long preempt_mark_thresh = 100;
17952 lat_print_timestamp(struct trace_seq *s, u64 abs_usecs,
17953 unsigned long rel_usecs)
17955 trace_seq_printf(s, " %4lldus", abs_usecs);
17956 if (rel_usecs > preempt_mark_thresh)
17957 trace_seq_puts(s, "!: ");
17958 else if (rel_usecs > 1)
17959 trace_seq_puts(s, "+: ");
17961 trace_seq_puts(s, " : ");
17964 static const char state_to_char[] = "RSDTtZX";
17970 void trace_seq_print_cont(struct trace_seq *s, struct trace_iterator *iter)
17972 struct trace_entry *ent;
17973 struct trace_field_cont *cont;
17976 ent = peek_next_entry(iter, iter->cpu, ((void *)0));
17977 if (!ent || ent->type != TRACE_CONT) {
17978 trace_seq_putc(s, '\n');
17983 cont = (struct trace_field_cont *)ent;
17985 ok = (trace_seq_printf(s, "%s", cont->buf) > 0);
17987 ftrace_disable_cpu();
17989 if (iter->buffer_iter[iter->cpu])
17990 ring_buffer_read(iter->buffer_iter[iter->cpu], ((void *)0));
17992 ring_buffer_consume(iter->tr->buffer, iter->cpu, ((void *)0));
17994 ftrace_enable_cpu();
17996 ent = peek_next_entry(iter, iter->cpu, ((void *)0));
17997 } while (ent && ent->type == TRACE_CONT);
18000 trace_seq_putc(s, '\n');
18003 static enum print_line_t
18004 print_lat_fmt(struct trace_iterator *iter, unsigned int trace_idx, int cpu)
18006 struct trace_seq *s = &iter->seq;
18007 unsigned long sym_flags = (trace_flags & (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR));
18008 struct trace_entry *next_entry;
18009 unsigned long verbose = (trace_flags & TRACE_ITER_VERBOSE);
18010 struct trace_entry *entry = iter->ent;
18011 unsigned long abs_usecs;
18012 unsigned long rel_usecs;
18019 if (entry->type == TRACE_CONT)
18020 return TRACE_TYPE_HANDLED;
18022 next_entry = find_next_entry(iter, ((void *)0), &next_ts);
18024 next_ts = iter->ts;
18025 rel_usecs = ns2usecs(next_ts - iter->ts);
18026 abs_usecs = ns2usecs(iter->ts - iter->tr->time_start);
18029 comm = trace_find_cmdline(entry->pid);
18030 trace_seq_printf(s, "%16s %5d %3d %d %08x %08x [%08lx]"
18031 " %ld.%03ldms (+%ld.%03ldms): ",
18033 entry->pid, cpu, entry->flags,
18034 entry->preempt_count, trace_idx,
18035 ns2usecs(iter->ts),
18037 abs_usecs % 1000, rel_usecs/1000,
18040 lat_print_generic(s, entry, cpu);
18041 lat_print_timestamp(s, abs_usecs, rel_usecs);
18043 switch (entry->type) {
18045 struct ftrace_entry *field;
18047 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1385); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18049 seq_print_ip_sym(s, field->ip, sym_flags);
18050 trace_seq_puts(s, " (");
18051 seq_print_ip_sym(s, field->parent_ip, sym_flags);
18052 trace_seq_puts(s, ")\n");
18057 struct ctx_switch_entry *field;
18059 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1397); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18061 T = field->next_state < sizeof(state_to_char) ?
18062 state_to_char[field->next_state] : 'X';
18064 state = field->prev_state ?
18065 __ffs(field->prev_state) + 1 : 0;
18066 S = state < sizeof(state_to_char) - 1 ? state_to_char[state] : 'X';
18067 comm = trace_find_cmdline(field->next_pid);
18068 trace_seq_printf(s, " %5d:%3d:%c %s [%03d] %5d:%3d:%c %s\n",
18071 S, entry->type == TRACE_CTX ? "==>" : " +",
18078 case TRACE_SPECIAL: {
18079 struct special_entry *field;
18081 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1419); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18083 trace_seq_printf(s, "# %ld %ld %ld\n",
18089 case TRACE_STACK: {
18090 struct stack_entry *field;
18092 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1430); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18094 for (i = 0; i < 8; i++) {
18096 trace_seq_puts(s, " <= ");
18097 seq_print_ip_sym(s, field->caller[i], sym_flags);
18099 trace_seq_puts(s, "\n");
18102 case TRACE_PRINT: {
18103 struct print_entry *field;
18105 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1443); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18107 seq_print_ip_sym(s, field->ip, sym_flags);
18108 trace_seq_printf(s, ": %s", field->buf);
18109 if (entry->flags & TRACE_FLAG_CONT)
18110 trace_seq_print_cont(s, iter);
18114 trace_seq_printf(s, "Unknown type %d\n", entry->type);
18116 return TRACE_TYPE_HANDLED;
18119 static enum print_line_t print_trace_fmt(struct trace_iterator *iter)
18121 struct trace_seq *s = &iter->seq;
18122 unsigned long sym_flags = (trace_flags & (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR));
18123 struct trace_entry *entry;
18124 unsigned long usec_rem;
18125 unsigned long long t;
18126 unsigned long secs;
18134 if (entry->type == TRACE_CONT)
18135 return TRACE_TYPE_HANDLED;
18137 comm = trace_find_cmdline(iter->ent->pid);
18139 t = ns2usecs(iter->ts);
18140 usec_rem = ({ uint32_t __base = (1000000ULL); uint32_t __rem; (void)(((typeof((t)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((t) >> 32) == 0), 1)) { __rem = (uint32_t)(t) % __base; (t) = (uint32_t)(t) / __base; } else __rem = __div64_32(&(t), __base); __rem; });
18141 secs = (unsigned long)t;
18143 ret = trace_seq_printf(s, "%16s-%-5d ", comm, entry->pid);
18145 return TRACE_TYPE_PARTIAL_LINE;
18146 ret = trace_seq_printf(s, "[%03d] ", iter->cpu);
18148 return TRACE_TYPE_PARTIAL_LINE;
18149 ret = trace_seq_printf(s, "%5lu.%06lu: ", secs, usec_rem);
18151 return TRACE_TYPE_PARTIAL_LINE;
18153 switch (entry->type) {
18155 struct ftrace_entry *field;
18157 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1495); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18159 ret = seq_print_ip_sym(s, field->ip, sym_flags);
18161 return TRACE_TYPE_PARTIAL_LINE;
18162 if ((sym_flags & TRACE_ITER_PRINT_PARENT) &&
18163 field->parent_ip) {
18164 ret = trace_seq_printf(s, " <-");
18166 return TRACE_TYPE_PARTIAL_LINE;
18167 ret = seq_print_ip_sym(s,
18171 return TRACE_TYPE_PARTIAL_LINE;
18173 ret = trace_seq_printf(s, "\n");
18175 return TRACE_TYPE_PARTIAL_LINE;
18180 struct ctx_switch_entry *field;
18182 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1520); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18184 S = field->prev_state < sizeof(state_to_char) ?
18185 state_to_char[field->prev_state] : 'X';
18186 T = field->next_state < sizeof(state_to_char) ?
18187 state_to_char[field->next_state] : 'X';
18188 ret = trace_seq_printf(s, " %5d:%3d:%c %s [%03d] %5d:%3d:%c\n",
18192 entry->type == TRACE_CTX ? "==>" : " +",
18198 return TRACE_TYPE_PARTIAL_LINE;
18201 case TRACE_SPECIAL: {
18202 struct special_entry *field;
18204 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1542); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18206 ret = trace_seq_printf(s, "# %ld %ld %ld\n",
18211 return TRACE_TYPE_PARTIAL_LINE;
18214 case TRACE_STACK: {
18215 struct stack_entry *field;
18217 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1555); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18219 for (i = 0; i < 8; i++) {
18221 ret = trace_seq_puts(s, " <= ");
18223 return TRACE_TYPE_PARTIAL_LINE;
18225 ret = seq_print_ip_sym(s, field->caller[i],
18228 return TRACE_TYPE_PARTIAL_LINE;
18230 ret = trace_seq_puts(s, "\n");
18232 return TRACE_TYPE_PARTIAL_LINE;
18235 case TRACE_PRINT: {
18236 struct print_entry *field;
18238 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1576); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18240 seq_print_ip_sym(s, field->ip, sym_flags);
18241 trace_seq_printf(s, ": %s", field->buf);
18242 if (entry->flags & TRACE_FLAG_CONT)
18243 trace_seq_print_cont(s, iter);
18247 return TRACE_TYPE_HANDLED;
18250 static enum print_line_t print_raw_fmt(struct trace_iterator *iter)
18252 struct trace_seq *s = &iter->seq;
18253 struct trace_entry *entry;
18259 if (entry->type == TRACE_CONT)
18260 return TRACE_TYPE_HANDLED;
18262 ret = trace_seq_printf(s, "%d %d %llu ",
18263 entry->pid, iter->cpu, iter->ts);
18265 return TRACE_TYPE_PARTIAL_LINE;
18267 switch (entry->type) {
18269 struct ftrace_entry *field;
18271 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1609); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18273 ret = trace_seq_printf(s, "%x %x\n",
18277 return TRACE_TYPE_PARTIAL_LINE;
18282 struct ctx_switch_entry *field;
18284 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1622); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18286 S = field->prev_state < sizeof(state_to_char) ?
18287 state_to_char[field->prev_state] : 'X';
18288 T = field->next_state < sizeof(state_to_char) ?
18289 state_to_char[field->next_state] : 'X';
18290 if (entry->type == TRACE_WAKE)
18292 ret = trace_seq_printf(s, "%d %d %c %d %d %d %c\n",
18301 return TRACE_TYPE_PARTIAL_LINE;
18304 case TRACE_SPECIAL:
18305 case TRACE_STACK: {
18306 struct special_entry *field;
18308 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1646); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18310 ret = trace_seq_printf(s, "# %ld %ld %ld\n",
18315 return TRACE_TYPE_PARTIAL_LINE;
18318 case TRACE_PRINT: {
18319 struct print_entry *field;
18321 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1659); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18323 trace_seq_printf(s, "# %lx %s", field->ip, field->buf);
18324 if (entry->flags & TRACE_FLAG_CONT)
18325 trace_seq_print_cont(s, iter);
18329 return TRACE_TYPE_HANDLED;
18331 # 1683 "kernel/trace/trace.c"
18332 static enum print_line_t print_hex_fmt(struct trace_iterator *iter)
18334 struct trace_seq *s = &iter->seq;
18335 unsigned char newline = '\n';
18336 struct trace_entry *entry;
18341 if (entry->type == TRACE_CONT)
18342 return TRACE_TYPE_HANDLED;
18344 do { ((void)sizeof(char[1 - 2*!!(sizeof(entry->pid) > 8)])); if (!trace_seq_putmem_hex(s, &(entry->pid), sizeof(entry->pid))) return 0; } while (0);
18345 do { ((void)sizeof(char[1 - 2*!!(sizeof(iter->cpu) > 8)])); if (!trace_seq_putmem_hex(s, &(iter->cpu), sizeof(iter->cpu))) return 0; } while (0);
18346 do { ((void)sizeof(char[1 - 2*!!(sizeof(iter->ts) > 8)])); if (!trace_seq_putmem_hex(s, &(iter->ts), sizeof(iter->ts))) return 0; } while (0);
18348 switch (entry->type) {
18350 struct ftrace_entry *field;
18352 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1703); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18354 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->ip) > 8)])); if (!trace_seq_putmem_hex(s, &(field->ip), sizeof(field->ip))) return 0; } while (0);
18355 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->parent_ip) > 8)])); if (!trace_seq_putmem_hex(s, &(field->parent_ip), sizeof(field->parent_ip))) return 0; } while (0);
18360 struct ctx_switch_entry *field;
18362 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1713); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18364 S = field->prev_state < sizeof(state_to_char) ?
18365 state_to_char[field->prev_state] : 'X';
18366 T = field->next_state < sizeof(state_to_char) ?
18367 state_to_char[field->next_state] : 'X';
18368 if (entry->type == TRACE_WAKE)
18370 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->prev_pid) > 8)])); if (!trace_seq_putmem_hex(s, &(field->prev_pid), sizeof(field->prev_pid))) return 0; } while (0);
18371 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->prev_prio) > 8)])); if (!trace_seq_putmem_hex(s, &(field->prev_prio), sizeof(field->prev_prio))) return 0; } while (0);
18372 do { ((void)sizeof(char[1 - 2*!!(sizeof(S) > 8)])); if (!trace_seq_putmem_hex(s, &(S), sizeof(S))) return 0; } while (0);
18373 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->next_cpu) > 8)])); if (!trace_seq_putmem_hex(s, &(field->next_cpu), sizeof(field->next_cpu))) return 0; } while (0);
18374 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->next_pid) > 8)])); if (!trace_seq_putmem_hex(s, &(field->next_pid), sizeof(field->next_pid))) return 0; } while (0);
18375 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->next_prio) > 8)])); if (!trace_seq_putmem_hex(s, &(field->next_prio), sizeof(field->next_prio))) return 0; } while (0);
18376 do { ((void)sizeof(char[1 - 2*!!(sizeof(T) > 8)])); if (!trace_seq_putmem_hex(s, &(T), sizeof(T))) return 0; } while (0);
18379 case TRACE_SPECIAL:
18380 case TRACE_STACK: {
18381 struct special_entry *field;
18383 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1734); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18385 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->arg1) > 8)])); if (!trace_seq_putmem_hex(s, &(field->arg1), sizeof(field->arg1))) return 0; } while (0);
18386 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->arg2) > 8)])); if (!trace_seq_putmem_hex(s, &(field->arg2), sizeof(field->arg2))) return 0; } while (0);
18387 do { ((void)sizeof(char[1 - 2*!!(sizeof(field->arg3) > 8)])); if (!trace_seq_putmem_hex(s, &(field->arg3), sizeof(field->arg3))) return 0; } while (0);
18391 do { if (!trace_seq_putmem(s, &(newline), sizeof(newline))) return 0; } while (0);
18393 return TRACE_TYPE_HANDLED;
18396 static enum print_line_t print_bin_fmt(struct trace_iterator *iter)
18398 struct trace_seq *s = &iter->seq;
18399 struct trace_entry *entry;
18403 if (entry->type == TRACE_CONT)
18404 return TRACE_TYPE_HANDLED;
18406 do { if (!trace_seq_putmem(s, &(entry->pid), sizeof(entry->pid))) return 0; } while (0);
18407 do { if (!trace_seq_putmem(s, &(entry->cpu), sizeof(entry->cpu))) return 0; } while (0);
18408 do { if (!trace_seq_putmem(s, &(iter->ts), sizeof(iter->ts))) return 0; } while (0);
18410 switch (entry->type) {
18412 struct ftrace_entry *field;
18414 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1765); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18416 do { if (!trace_seq_putmem(s, &(field->ip), sizeof(field->ip))) return 0; } while (0);
18417 do { if (!trace_seq_putmem(s, &(field->parent_ip), sizeof(field->parent_ip))) return 0; } while (0);
18421 struct ctx_switch_entry *field;
18423 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1774); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18425 do { if (!trace_seq_putmem(s, &(field->prev_pid), sizeof(field->prev_pid))) return 0; } while (0);
18426 do { if (!trace_seq_putmem(s, &(field->prev_prio), sizeof(field->prev_prio))) return 0; } while (0);
18427 do { if (!trace_seq_putmem(s, &(field->prev_state), sizeof(field->prev_state))) return 0; } while (0);
18428 do { if (!trace_seq_putmem(s, &(field->next_pid), sizeof(field->next_pid))) return 0; } while (0);
18429 do { if (!trace_seq_putmem(s, &(field->next_prio), sizeof(field->next_prio))) return 0; } while (0);
18430 do { if (!trace_seq_putmem(s, &(field->next_state), sizeof(field->next_state))) return 0; } while (0);
18433 case TRACE_SPECIAL:
18434 case TRACE_STACK: {
18435 struct special_entry *field;
18437 do { if (__builtin_types_compatible_p(typeof(field), struct ftrace_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_FN && (entry)->type != TRACE_FN); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct ctx_switch_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_field_cont *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_CONT && (entry)->type != TRACE_CONT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct stack_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_STACK && (entry)->type != TRACE_STACK); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct print_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_PRINT && (entry)->type != TRACE_PRINT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct special_entry *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(0 && (entry)->type != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_rw *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_RW && (entry)->type != TRACE_MMIO_RW); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_mmiotrace_map *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_MMIO_MAP && (entry)->type != TRACE_MMIO_MAP); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; if (__builtin_types_compatible_p(typeof(field), struct trace_boot *)) { field = (typeof(field))(entry); ({ int __ret_warn_on = !!(TRACE_BOOT && (entry)->type != TRACE_BOOT); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 1788); __builtin_expect(!!(__ret_warn_on), 0); }); break; }; __ftrace_bad_type(); } while (0);
18439 do { if (!trace_seq_putmem(s, &(field->arg1), sizeof(field->arg1))) return 0; } while (0);
18440 do { if (!trace_seq_putmem(s, &(field->arg2), sizeof(field->arg2))) return 0; } while (0);
18441 do { if (!trace_seq_putmem(s, &(field->arg3), sizeof(field->arg3))) return 0; } while (0);
18448 static int trace_empty(struct trace_iterator *iter)
18452 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
18453 if (iter->buffer_iter[cpu]) {
18454 if (!ring_buffer_iter_empty(iter->buffer_iter[cpu]))
18457 if (!ring_buffer_empty_cpu(iter->tr->buffer, cpu))
18465 static enum print_line_t print_trace_line(struct trace_iterator *iter)
18467 enum print_line_t ret;
18469 if (iter->trace && iter->trace->print_line) {
18470 ret = iter->trace->print_line(iter);
18471 if (ret != TRACE_TYPE_UNHANDLED)
18475 if (trace_flags & TRACE_ITER_BIN)
18476 return print_bin_fmt(iter);
18478 if (trace_flags & TRACE_ITER_HEX)
18479 return print_hex_fmt(iter);
18481 if (trace_flags & TRACE_ITER_RAW)
18482 return print_raw_fmt(iter);
18484 if (iter->iter_flags & TRACE_FILE_LAT_FMT)
18485 return print_lat_fmt(iter, iter->idx, iter->cpu);
18487 return print_trace_fmt(iter);
18490 static int s_show(struct seq_file *m, void *v)
18492 struct trace_iterator *iter = v;
18494 if (iter->ent == ((void *)0)) {
18496 seq_printf(m, "# tracer: %s\n", iter->trace->name);
18497 seq_puts(m, "#\n");
18499 if (iter->iter_flags & TRACE_FILE_LAT_FMT) {
18501 if (trace_empty(iter))
18503 print_trace_header(m, iter);
18504 if (!(trace_flags & TRACE_ITER_VERBOSE))
18505 print_lat_help_header(m);
18507 if (!(trace_flags & TRACE_ITER_VERBOSE))
18508 print_func_help_header(m);
18511 print_trace_line(iter);
18512 trace_print_seq(m, &iter->seq);
18518 static struct seq_operations tracer_seq_ops = {
18525 static struct trace_iterator *
18526 __tracing_open(struct inode *inode, struct file *file, int *ret)
18528 struct trace_iterator *iter;
18529 struct seq_file *m;
18532 if (tracing_disabled) {
18534 return ((void *)0);
18537 iter = kzalloc(sizeof(*iter), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
18543 mutex_lock(&trace_types_lock);
18544 if (current_trace && current_trace->print_max)
18545 iter->tr = &max_tr;
18547 iter->tr = inode->i_private;
18548 iter->trace = current_trace;
18551 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
18553 iter->buffer_iter[cpu] =
18554 ring_buffer_read_start(iter->tr->buffer, cpu);
18556 if (!iter->buffer_iter[cpu])
18561 *ret = seq_open(file, &tracer_seq_ops);
18565 m = file->private_data;
18569 if (iter->tr->ctrl) {
18570 tracer_enabled = 0;
18571 ftrace_function_enabled = 0;
18574 if (iter->trace && iter->trace->open)
18575 iter->trace->open(iter);
18577 mutex_unlock(&trace_types_lock);
18583 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
18584 if (iter->buffer_iter[cpu])
18585 ring_buffer_read_finish(iter->buffer_iter[cpu]);
18587 mutex_unlock(&trace_types_lock);
18590 return ERR_PTR(-12);
18593 int tracing_open_generic(struct inode *inode, struct file *filp)
18595 if (tracing_disabled)
18598 filp->private_data = inode->i_private;
18602 int tracing_release(struct inode *inode, struct file *file)
18604 struct seq_file *m = (struct seq_file *)file->private_data;
18605 struct trace_iterator *iter = m->private;
18608 mutex_lock(&trace_types_lock);
18609 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
18610 if (iter->buffer_iter[cpu])
18611 ring_buffer_read_finish(iter->buffer_iter[cpu]);
18614 if (iter->trace && iter->trace->close)
18615 iter->trace->close(iter);
18618 if (iter->tr->ctrl) {
18619 tracer_enabled = 1;
18624 ftrace_function_enabled = 1;
18626 mutex_unlock(&trace_types_lock);
18628 seq_release(inode, file);
18633 static int tracing_open(struct inode *inode, struct file *file)
18637 __tracing_open(inode, file, &ret);
18642 static int tracing_lt_open(struct inode *inode, struct file *file)
18644 struct trace_iterator *iter;
18647 iter = __tracing_open(inode, file, &ret);
18650 iter->iter_flags |= TRACE_FILE_LAT_FMT;
18657 t_next(struct seq_file *m, void *v, loff_t *pos)
18659 struct tracer *t = m->private;
18671 static void *t_start(struct seq_file *m, loff_t *pos)
18673 struct tracer *t = m->private;
18676 mutex_lock(&trace_types_lock);
18677 for (; t && l < *pos; t = t_next(m, t, &l))
18683 static void t_stop(struct seq_file *m, void *p)
18685 mutex_unlock(&trace_types_lock);
18688 static int t_show(struct seq_file *m, void *v)
18690 struct tracer *t = v;
18695 seq_printf(m, "%s", t->name);
18704 static struct seq_operations show_traces_seq_ops = {
18711 static int show_traces_open(struct inode *inode, struct file *file)
18715 if (tracing_disabled)
18718 ret = seq_open(file, &show_traces_seq_ops);
18720 struct seq_file *m = file->private_data;
18721 m->private = trace_types;
18727 static struct file_operations tracing_fops = {
18728 .open = tracing_open,
18730 .llseek = seq_lseek,
18731 .release = tracing_release,
18734 static struct file_operations tracing_lt_fops = {
18735 .open = tracing_lt_open,
18737 .llseek = seq_lseek,
18738 .release = tracing_release,
18741 static struct file_operations show_traces_fops = {
18742 .open = show_traces_open,
18744 .release = seq_release,
18750 static cpumask_t tracing_cpumask = (cpumask_t) { { [(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))-1] = ( ((1) % 32) ? (1UL<<((1) % 32))-1 : ~0UL ) } };
18756 static cpumask_t tracing_cpumask_new;
18762 static struct mutex tracing_cpumask_update_lock = { .count = { (1) } , .wait_lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, } , .wait_list = { &(tracing_cpumask_update_lock.wait_list), &(tracing_cpumask_update_lock.wait_list) } , .magic = &tracing_cpumask_update_lock };
18768 static char mask_str[1 + 1];
18771 tracing_cpumask_read(struct file *filp, char *ubuf,
18772 size_t count, loff_t *ppos)
18776 mutex_lock(&tracing_cpumask_update_lock);
18778 len = __cpumask_scnprintf((mask_str), (count), &(tracing_cpumask), 1);
18779 if (count - len < 2) {
18783 len += sprintf(mask_str + len, "\n");
18784 count = simple_read_from_buffer(ubuf, count, ppos, mask_str, 1 +1);
18787 mutex_unlock(&tracing_cpumask_update_lock);
18793 tracing_cpumask_write(struct file *filp, const char *ubuf,
18794 size_t count, loff_t *ppos)
18798 mutex_lock(&tracing_cpumask_update_lock);
18799 err = __cpumask_parse_user((ubuf), (count), &(tracing_cpumask_new), 1);
18803 do { int __tmp_dummy; __asm__ __volatile__( "cli %0;" : "=d" (__tmp_dummy) ); } while (0);
18804 __raw_spin_lock(&ftrace_max_lock);
18805 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
18810 if (test_bit((cpu), (tracing_cpumask).bits) &&
18811 !test_bit((cpu), (tracing_cpumask_new).bits)) {
18812 atomic_inc(&global_trace.data[cpu]->disabled);
18814 if (!test_bit((cpu), (tracing_cpumask).bits) &&
18815 test_bit((cpu), (tracing_cpumask_new).bits)) {
18816 atomic_dec(&global_trace.data[cpu]->disabled);
18819 __raw_spin_unlock(&ftrace_max_lock);
18820 __asm__ __volatile__( "sti %0;" : : "d" (bfin_irq_flags) );
18822 tracing_cpumask = tracing_cpumask_new;
18824 mutex_unlock(&tracing_cpumask_update_lock);
18829 mutex_unlock(&tracing_cpumask_update_lock);
18834 static struct file_operations tracing_cpumask_fops = {
18835 .open = tracing_open_generic,
18836 .read = tracing_cpumask_read,
18837 .write = tracing_cpumask_write,
18841 tracing_iter_ctrl_read(struct file *filp, char *ubuf,
18842 size_t cnt, loff_t *ppos)
18850 for (i = 0; trace_options[i]; i++) {
18851 len += strlen(trace_options[i]);
18856 buf = kmalloc(len + 2, ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
18860 for (i = 0; trace_options[i]; i++) {
18861 if (trace_flags & (1 << i))
18862 r += sprintf(buf + r, "%s ", trace_options[i]);
18864 r += sprintf(buf + r, "no%s ", trace_options[i]);
18867 r += sprintf(buf + r, "\n");
18868 ({ int __ret_warn_on = !!(r >= len + 2); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 2219); __builtin_expect(!!(__ret_warn_on), 0); });
18870 r = simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
18878 tracing_iter_ctrl_write(struct file *filp, const char *ubuf,
18879 size_t cnt, loff_t *ppos)
18886 if (cnt >= sizeof(buf))
18889 if (copy_from_user(&buf, ubuf, cnt))
18894 if (strncmp(buf, "no", 2) == 0) {
18899 for (i = 0; trace_options[i]; i++) {
18900 int len = strlen(trace_options[i]);
18902 if (strncmp(cmp, trace_options[i], len) == 0) {
18904 trace_flags &= ~(1 << i);
18906 trace_flags |= (1 << i);
18913 if (!trace_options[i])
18916 filp->f_pos += cnt;
18921 static struct file_operations tracing_iter_fops = {
18922 .open = tracing_open_generic,
18923 .read = tracing_iter_ctrl_read,
18924 .write = tracing_iter_ctrl_write,
18927 static const char readme_msg[] =
18928 "tracing mini-HOWTO:\n\n"
18930 "# mount -t debugfs nodev /debug\n\n"
18931 "# cat /debug/tracing/available_tracers\n"
18932 "wakeup preemptirqsoff preemptoff irqsoff ftrace sched_switch none\n\n"
18933 "# cat /debug/tracing/current_tracer\n"
18935 "# echo sched_switch > /debug/tracing/current_tracer\n"
18936 "# cat /debug/tracing/current_tracer\n"
18938 "# cat /debug/tracing/iter_ctrl\n"
18939 "noprint-parent nosym-offset nosym-addr noverbose\n"
18940 "# echo print-parent > /debug/tracing/iter_ctrl\n"
18941 "# echo 1 > /debug/tracing/tracing_enabled\n"
18942 "# cat /debug/tracing/trace > /tmp/trace.txt\n"
18943 "echo 0 > /debug/tracing/tracing_enabled\n"
18947 tracing_readme_read(struct file *filp, char *ubuf,
18948 size_t cnt, loff_t *ppos)
18950 return simple_read_from_buffer(ubuf, cnt, ppos,
18951 readme_msg, strlen(readme_msg));
18954 static struct file_operations tracing_readme_fops = {
18955 .open = tracing_open_generic,
18956 .read = tracing_readme_read,
18960 tracing_ctrl_read(struct file *filp, char *ubuf,
18961 size_t cnt, loff_t *ppos)
18963 struct trace_array *tr = filp->private_data;
18967 r = sprintf(buf, "%ld\n", tr->ctrl);
18968 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
18972 tracing_ctrl_write(struct file *filp, const char *ubuf,
18973 size_t cnt, loff_t *ppos)
18975 struct trace_array *tr = filp->private_data;
18980 if (cnt >= sizeof(buf))
18983 if (copy_from_user(&buf, ubuf, cnt))
18988 ret = strict_strtoul(buf, 10, &val);
18994 mutex_lock(&trace_types_lock);
18995 if (tr->ctrl ^ val) {
18997 tracer_enabled = 1;
18999 tracer_enabled = 0;
19003 if (current_trace && current_trace->ctrl_update)
19004 current_trace->ctrl_update(tr);
19006 mutex_unlock(&trace_types_lock);
19008 filp->f_pos += cnt;
19014 tracing_set_trace_read(struct file *filp, char *ubuf,
19015 size_t cnt, loff_t *ppos)
19017 char buf[max_tracer_type_len+2];
19020 mutex_lock(&trace_types_lock);
19022 r = sprintf(buf, "%s\n", current_trace->name);
19024 r = sprintf(buf, "\n");
19025 mutex_unlock(&trace_types_lock);
19027 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
19031 tracing_set_trace_write(struct file *filp, const char *ubuf,
19032 size_t cnt, loff_t *ppos)
19034 struct trace_array *tr = &global_trace;
19036 char buf[max_tracer_type_len+1];
19042 if (cnt > max_tracer_type_len)
19043 cnt = max_tracer_type_len;
19045 if (copy_from_user(&buf, ubuf, cnt))
19051 for (i = cnt - 1; i > 0 && (((_ctype[(int)(unsigned char)(buf[i])])&(0x20)) != 0); i--)
19054 mutex_lock(&trace_types_lock);
19055 for (t = trace_types; t; t = t->next) {
19056 if (strcmp(t->name, buf) == 0)
19063 if (t == current_trace)
19066 if (current_trace && current_trace->reset)
19067 current_trace->reset(tr);
19074 mutex_unlock(&trace_types_lock);
19077 filp->f_pos += ret;
19083 tracing_max_lat_read(struct file *filp, char *ubuf,
19084 size_t cnt, loff_t *ppos)
19086 unsigned long *ptr = filp->private_data;
19090 r = snprintf(buf, sizeof(buf), "%ld\n",
19091 *ptr == (unsigned long)-1 ? -1 : nsecs_to_usecs(*ptr));
19092 if (r > sizeof(buf))
19094 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
19098 tracing_max_lat_write(struct file *filp, const char *ubuf,
19099 size_t cnt, loff_t *ppos)
19101 long *ptr = filp->private_data;
19106 if (cnt >= sizeof(buf))
19109 if (copy_from_user(&buf, ubuf, cnt))
19114 ret = strict_strtoul(buf, 10, &val);
19123 static atomic_t tracing_reader;
19125 static int tracing_open_pipe(struct inode *inode, struct file *filp)
19127 struct trace_iterator *iter;
19129 if (tracing_disabled)
19133 if (atomic_add_return(1,(&tracing_reader)) != 1) {
19134 atomic_dec(&tracing_reader);
19139 iter = kzalloc(sizeof(*iter), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
19143 mutex_lock(&trace_types_lock);
19144 iter->tr = &global_trace;
19145 iter->trace = current_trace;
19146 filp->private_data = iter;
19148 if (iter->trace->pipe_open)
19149 iter->trace->pipe_open(iter);
19150 mutex_unlock(&trace_types_lock);
19155 static int tracing_release_pipe(struct inode *inode, struct file *file)
19157 struct trace_iterator *iter = file->private_data;
19160 atomic_dec(&tracing_reader);
19165 static unsigned int
19166 tracing_poll_pipe(struct file *filp, poll_table *poll_table)
19168 struct trace_iterator *iter = filp->private_data;
19170 if (trace_flags & TRACE_ITER_BLOCK) {
19176 if (!trace_empty(iter))
19178 poll_wait(filp, &trace_wait, poll_table);
19179 if (!trace_empty(iter))
19190 tracing_read_pipe(struct file *filp, char *ubuf,
19191 size_t cnt, loff_t *ppos)
19193 struct trace_iterator *iter = filp->private_data;
19197 sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
19201 trace_seq_reset(&iter->seq);
19203 mutex_lock(&trace_types_lock);
19204 if (iter->trace->read) {
19205 sret = iter->trace->read(iter, filp, ubuf, cnt, ppos);
19212 while (trace_empty(iter)) {
19214 if ((filp->f_flags & 00004000)) {
19218 # 2579 "kernel/trace/trace.c"
19219 do { (void) ((__typeof__(*(&(get_current())->state)))__xchg((unsigned long)((1)), (&(get_current())->state), sizeof(*(&(get_current())->state)))); } while (0);
19220 iter->tr->waiter = (get_current());
19222 mutex_unlock(&trace_types_lock);
19225 schedule_timeout(250/10);
19227 mutex_lock(&trace_types_lock);
19229 iter->tr->waiter = ((void *)0);
19231 if (signal_pending((get_current()))) {
19236 if (iter->trace != current_trace)
19238 # 2608 "kernel/trace/trace.c"
19239 if (!tracer_enabled && iter->pos)
19246 if (trace_empty(iter))
19249 if (cnt >= (1UL << 12))
19250 cnt = (1UL << 12) - 1;
19253 memset(&iter->seq, 0,
19254 sizeof(struct trace_iterator) -
19255 __builtin_offsetof(struct trace_iterator,seq));
19258 while (find_next_entry_inc(iter) != ((void *)0)) {
19259 enum print_line_t ret;
19260 int len = iter->seq.len;
19262 ret = print_trace_line(iter);
19263 if (ret == TRACE_TYPE_PARTIAL_LINE) {
19265 iter->seq.len = len;
19269 trace_consume(iter);
19271 if (iter->seq.len >= cnt)
19276 sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
19277 if (iter->seq.readpos >= iter->seq.len)
19278 trace_seq_reset(&iter->seq);
19288 mutex_unlock(&trace_types_lock);
19294 tracing_entries_read(struct file *filp, char *ubuf,
19295 size_t cnt, loff_t *ppos)
19297 struct trace_array *tr = filp->private_data;
19301 r = sprintf(buf, "%lu\n", tr->entries);
19302 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
19306 tracing_entries_write(struct file *filp, const char *ubuf,
19307 size_t cnt, loff_t *ppos)
19312 struct trace_array *tr = filp->private_data;
19314 if (cnt >= sizeof(buf))
19317 if (copy_from_user(&buf, ubuf, cnt))
19322 ret = strict_strtoul(buf, 10, &val);
19330 mutex_lock(&trace_types_lock);
19334 printk("<6>" "ftrace: please disable tracing" " before modifying buffer size\n");
19340 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
19341 if (global_trace.data[cpu])
19342 atomic_inc(&global_trace.data[cpu]->disabled);
19343 if (max_tr.data[cpu])
19344 atomic_inc(&max_tr.data[cpu]->disabled);
19347 if (val != global_trace.entries) {
19348 ret = ring_buffer_resize(global_trace.buffer, val);
19354 ret = ring_buffer_resize(max_tr.buffer, val);
19358 r = ring_buffer_resize(global_trace.buffer,
19359 global_trace.entries);
19363 ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 2732); __builtin_expect(!!(__ret_warn_on), 0); });
19364 tracing_disabled = 1;
19369 global_trace.entries = val;
19372 filp->f_pos += cnt;
19375 if (tracing_disabled)
19378 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
19379 if (global_trace.data[cpu])
19380 atomic_dec(&global_trace.data[cpu]->disabled);
19381 if (max_tr.data[cpu])
19382 atomic_dec(&max_tr.data[cpu]->disabled);
19385 max_tr.entries = global_trace.entries;
19386 mutex_unlock(&trace_types_lock);
19391 static int mark_printk(const char *fmt, ...)
19395 __builtin_va_start(args,fmt);
19396 ret = trace_vprintk(0, fmt, args);
19397 __builtin_va_end(args);
19402 tracing_mark_write(struct file *filp, const char *ubuf,
19403 size_t cnt, loff_t *fpos)
19407 struct trace_array *tr = &global_trace;
19409 if (!tr->ctrl || tracing_disabled)
19415 buf = kmalloc(cnt + 1, ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
19416 if (buf == ((void *)0))
19419 if (copy_from_user(buf, ubuf, cnt)) {
19426 end = strchr(buf, '\n');
19430 cnt = mark_printk("%s\n", buf);
19437 static struct file_operations tracing_max_lat_fops = {
19438 .open = tracing_open_generic,
19439 .read = tracing_max_lat_read,
19440 .write = tracing_max_lat_write,
19443 static struct file_operations tracing_ctrl_fops = {
19444 .open = tracing_open_generic,
19445 .read = tracing_ctrl_read,
19446 .write = tracing_ctrl_write,
19449 static struct file_operations set_tracer_fops = {
19450 .open = tracing_open_generic,
19451 .read = tracing_set_trace_read,
19452 .write = tracing_set_trace_write,
19455 static struct file_operations tracing_pipe_fops = {
19456 .open = tracing_open_pipe,
19457 .poll = tracing_poll_pipe,
19458 .read = tracing_read_pipe,
19459 .release = tracing_release_pipe,
19462 static struct file_operations tracing_entries_fops = {
19463 .open = tracing_open_generic,
19464 .read = tracing_entries_read,
19465 .write = tracing_entries_write,
19468 static struct file_operations tracing_mark_fops = {
19469 .open = tracing_open_generic,
19470 .write = tracing_mark_write,
19472 # 2863 "kernel/trace/trace.c"
19473 static struct dentry *d_tracer;
19475 struct dentry *tracing_init_dentry(void)
19482 d_tracer = debugfs_create_dir("tracing", ((void *)0));
19484 if (!d_tracer && !once) {
19486 printk("<4>" "Could not create debugfs directory 'tracing'\n");
19487 return ((void *)0);
19498 static __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) int tracer_init_debugfs(void)
19500 struct dentry *d_tracer;
19501 struct dentry *entry;
19503 d_tracer = tracing_init_dentry();
19505 entry = debugfs_create_file("tracing_enabled", 0644, d_tracer,
19506 &global_trace, &tracing_ctrl_fops);
19508 printk("<4>" "Could not create debugfs 'tracing_enabled' entry\n");
19510 entry = debugfs_create_file("iter_ctrl", 0644, d_tracer,
19511 ((void *)0), &tracing_iter_fops);
19513 printk("<4>" "Could not create debugfs 'iter_ctrl' entry\n");
19515 entry = debugfs_create_file("tracing_cpumask", 0644, d_tracer,
19516 ((void *)0), &tracing_cpumask_fops);
19518 printk("<4>" "Could not create debugfs 'tracing_cpumask' entry\n");
19520 entry = debugfs_create_file("latency_trace", 0444, d_tracer,
19521 &global_trace, &tracing_lt_fops);
19523 printk("<4>" "Could not create debugfs 'latency_trace' entry\n");
19525 entry = debugfs_create_file("trace", 0444, d_tracer,
19526 &global_trace, &tracing_fops);
19528 printk("<4>" "Could not create debugfs 'trace' entry\n");
19530 entry = debugfs_create_file("available_tracers", 0444, d_tracer,
19531 &global_trace, &show_traces_fops);
19533 printk("<4>" "Could not create debugfs 'available_tracers' entry\n");
19535 entry = debugfs_create_file("current_tracer", 0444, d_tracer,
19536 &global_trace, &set_tracer_fops);
19538 printk("<4>" "Could not create debugfs 'current_tracer' entry\n");
19540 entry = debugfs_create_file("tracing_max_latency", 0644, d_tracer,
19541 &tracing_max_latency,
19542 &tracing_max_lat_fops);
19544 printk("<4>" "Could not create debugfs " "'tracing_max_latency' entry\n");
19547 entry = debugfs_create_file("tracing_thresh", 0644, d_tracer,
19548 &tracing_thresh, &tracing_max_lat_fops);
19550 printk("<4>" "Could not create debugfs " "'tracing_thresh' entry\n");
19552 entry = debugfs_create_file("README", 0644, d_tracer,
19553 ((void *)0), &tracing_readme_fops);
19555 printk("<4>" "Could not create debugfs 'README' entry\n");
19557 entry = debugfs_create_file("trace_pipe", 0644, d_tracer,
19558 ((void *)0), &tracing_pipe_fops);
19560 printk("<4>" "Could not create debugfs " "'trace_pipe' entry\n");
19563 entry = debugfs_create_file("trace_entries", 0644, d_tracer,
19564 &global_trace, &tracing_entries_fops);
19566 printk("<4>" "Could not create debugfs " "'trace_entries' entry\n");
19569 entry = debugfs_create_file("trace_marker", 0220, d_tracer,
19570 ((void *)0), &tracing_mark_fops);
19572 printk("<4>" "Could not create debugfs " "'trace_marker' entry\n");
19573 # 2976 "kernel/trace/trace.c"
19577 int trace_vprintk(unsigned long ip, const char *fmt, va_list args)
19579 static spinlock_t trace_buf_lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, };
19580 static char trace_buf[1024];
19582 struct ring_buffer_event *event;
19583 struct trace_array *tr = &global_trace;
19584 struct trace_array_cpu *data;
19585 struct print_entry *entry;
19586 unsigned long flags, irq_flags;
19587 int cpu, len = 0, size, pc;
19589 if (!tr->ctrl || tracing_disabled)
19592 pc = (current_thread_info()->preempt_count);
19595 data = tr->data[cpu];
19597 if (__builtin_expect(!!(((&data->disabled)->counter)), 0))
19600 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _spin_lock_irqsave(&trace_buf_lock); } while (0);
19601 len = vsnprintf(trace_buf, 1024, fmt, args);
19603 len = ({ typeof(len) _min1 = (len); typeof(1024 -1) _min2 = (1024 -1); (void) (&_min1 == &_min2); _min1 < _min2 ? _min1 : _min2; });
19604 trace_buf[len] = 0;
19606 size = sizeof(*entry) + len + 1;
19607 event = ring_buffer_lock_reserve(tr->buffer, size, &irq_flags);
19610 entry = ring_buffer_event_data(event);
19611 tracing_generic_entry_update(&entry->ent, flags, pc);
19612 entry->ent.type = TRACE_PRINT;
19615 memcpy(&entry->buf, trace_buf, len);
19616 entry->buf[len] = 0;
19617 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
19620 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&trace_buf_lock, flags); } while (0);
19629 int __ftrace_printk(unsigned long ip, const char *fmt, ...)
19634 if (!(trace_flags & TRACE_ITER_PRINTK))
19637 __builtin_va_start(ap,fmt);
19638 ret = trace_vprintk(ip, fmt, ap);
19639 __builtin_va_end(ap);
19644 static int trace_panic_handler(struct notifier_block *this,
19645 unsigned long event, void *unused)
19651 static struct notifier_block trace_panic_notifier = {
19652 .notifier_call = trace_panic_handler,
19653 .next = ((void *)0),
19657 static int trace_die_handler(struct notifier_block *self,
19671 static struct notifier_block trace_die_notifier = {
19672 .notifier_call = trace_die_handler,
19675 # 3091 "kernel/trace/trace.c"
19677 trace_printk_seq(struct trace_seq *s)
19680 if (s->len >= 1000)
19684 s->buffer[s->len] = 0;
19686 printk("<6>" "%s", s->buffer);
19688 trace_seq_reset(s);
19692 void ftrace_dump(void)
19694 static spinlock_t ftrace_dump_lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, };
19696 static struct trace_iterator iter;
19697 static cpumask_t mask;
19698 static int dump_ran;
19699 unsigned long flags;
19703 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _spin_lock_irqsave(&ftrace_dump_lock); } while (0);
19712 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) {
19713 atomic_inc(&global_trace.data[cpu]->disabled);
19716 printk("<6>" "Dumping ftrace buffer:\n");
19718 iter.tr = &global_trace;
19719 iter.trace = current_trace;
19720 # 3143 "kernel/trace/trace.c"
19721 __cpus_clear(&(mask), 1);
19723 while (!trace_empty(&iter)) {
19726 printk("<6>" "---------------------------------\n");
19731 memset(&iter.seq, 0,
19732 sizeof(struct trace_iterator) -
19733 __builtin_offsetof(struct trace_iterator,seq));
19734 iter.iter_flags |= TRACE_FILE_LAT_FMT;
19737 if (find_next_entry_inc(&iter) != ((void *)0)) {
19738 print_trace_line(&iter);
19739 trace_consume(&iter);
19742 trace_printk_seq(&iter.seq);
19746 printk("<6>" " (ftrace buffer empty)\n");
19748 printk("<6>" "---------------------------------\n");
19751 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&ftrace_dump_lock, flags); } while (0);
19754 __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) static int tracer_alloc_buffers(void)
19756 struct trace_array_cpu *data;
19760 tracing_buffer_mask = cpu_possible_map;
19762 global_trace.buffer = ring_buffer_alloc(trace_buf_size,
19763 (RB_FL_OVERWRITE));
19764 if (!global_trace.buffer) {
19765 printk("<3>" "tracer: failed to allocate ring buffer!\n");
19766 ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 3188); __builtin_expect(!!(__ret_warn_on), 0); });
19769 global_trace.entries = ring_buffer_size(global_trace.buffer);
19772 max_tr.buffer = ring_buffer_alloc(trace_buf_size,
19773 (RB_FL_OVERWRITE));
19774 if (!max_tr.buffer) {
19775 printk("<3>" "tracer: failed to allocate max ring buffer!\n");
19776 ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 3198); __builtin_expect(!!(__ret_warn_on), 0); });
19777 ring_buffer_free(global_trace.buffer);
19780 max_tr.entries = ring_buffer_size(max_tr.buffer);
19781 ({ int __ret_warn_on = !!(max_tr.entries != global_trace.entries); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_on_slowpath("kernel/trace/trace.c", 3203); __builtin_expect(!!(__ret_warn_on), 0); });
19785 for ((i) = 0; (i) < 1; (i)++, (void)tracing_buffer_mask) {
19786 data = global_trace.data[i] = &(*((void)(i), &per_cpu__global_trace_cpu));
19787 max_tr.data[i] = &(*((void)(i), &per_cpu__max_data));
19790 trace_init_cmdlines();
19792 register_tracer(&nop_trace);
19794 register_tracer(&boot_tracer);
19795 current_trace = &boot_tracer;
19796 current_trace->init(&global_trace);
19802 global_trace.ctrl = tracer_enabled;
19803 tracing_disabled = 0;
19805 atomic_notifier_chain_register(&panic_notifier_list,
19806 &trace_panic_notifier);
19808 register_die_notifier(&trace_die_notifier);
19812 static initcall_t __initcall_tracer_alloc_buffersearly __attribute__((__used__)) __attribute__((__section__(".initcall" "early" ".init"))) = tracer_alloc_buffers;
19813 static initcall_t __initcall_tracer_init_debugfs5 __attribute__((__used__)) __attribute__((__section__(".initcall" "5" ".init"))) = tracer_init_debugfs;