2 # 1 "/usr/local/src/blackfin/git/linux-kernel//"
5 # 1 "./include/linux/autoconf.h" 1
9 # 1 "include/linux/module.h" 1
10 # 9 "include/linux/module.h"
11 # 1 "include/linux/list.h" 1
15 # 1 "include/linux/stddef.h" 1
19 # 1 "include/linux/compiler.h" 1
20 # 40 "include/linux/compiler.h"
21 # 1 "include/linux/compiler-gcc.h" 1
22 # 86 "include/linux/compiler-gcc.h"
23 # 1 "include/linux/compiler-gcc4.h" 1
24 # 86 "include/linux/compiler-gcc.h" 2
25 # 41 "include/linux/compiler.h" 2
26 # 58 "include/linux/compiler.h"
27 struct ftrace_branch_data {
33 unsigned long correct;
34 unsigned long incorrect;
40 unsigned long miss_hit[2];
43 # 5 "include/linux/stddef.h" 2
44 # 15 "include/linux/stddef.h"
49 # 5 "include/linux/list.h" 2
50 # 1 "include/linux/poison.h" 1
51 # 6 "include/linux/list.h" 2
52 # 1 "include/linux/prefetch.h" 1
53 # 13 "include/linux/prefetch.h"
54 # 1 "include/linux/types.h" 1
58 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
59 # 1 "include/asm-generic/types.h" 1
66 # 1 "include/asm-generic/int-ll64.h" 1
67 # 11 "include/asm-generic/int-ll64.h"
68 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitsperlong.h" 1
69 # 1 "include/asm-generic/bitsperlong.h" 1
70 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitsperlong.h" 2
71 # 12 "include/asm-generic/int-ll64.h" 2
79 typedef __signed__ char __s8;
80 typedef unsigned char __u8;
82 typedef __signed__ short __s16;
83 typedef unsigned short __u16;
85 typedef __signed__ int __s32;
86 typedef unsigned int __u32;
89 __extension__ typedef __signed__ long long __s64;
90 __extension__ typedef unsigned long long __u64;
91 # 42 "include/asm-generic/int-ll64.h"
92 typedef signed char s8;
93 typedef unsigned char u8;
95 typedef signed short s16;
96 typedef unsigned short u16;
98 typedef signed int s32;
99 typedef unsigned int u32;
101 typedef signed long long s64;
102 typedef unsigned long long u64;
103 # 8 "include/asm-generic/types.h" 2
107 typedef unsigned short umode_t;
108 # 34 "include/asm-generic/types.h"
109 typedef u32 dma_addr_t;
110 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 2
111 # 5 "include/linux/types.h" 2
112 # 14 "include/linux/types.h"
113 # 1 "include/linux/posix_types.h" 1
114 # 36 "include/linux/posix_types.h"
116 unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))];
120 typedef void (*__kernel_sighandler_t)(int);
123 typedef int __kernel_key_t;
124 typedef int __kernel_mqd_t;
126 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/posix_types.h" 1
127 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/posix_types.h"
128 typedef unsigned short __kernel_mode_t;
131 typedef unsigned short __kernel_nlink_t;
134 typedef unsigned int __kernel_ipc_pid_t;
137 typedef unsigned long __kernel_size_t;
138 typedef long __kernel_ssize_t;
139 typedef int __kernel_ptrdiff_t;
142 typedef unsigned short __kernel_old_uid_t;
143 typedef unsigned short __kernel_old_gid_t;
146 typedef unsigned short __kernel_old_dev_t;
149 # 1 "include/asm-generic/posix_types.h" 1
153 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitsperlong.h" 1
154 # 5 "include/asm-generic/posix_types.h" 2
155 # 14 "include/asm-generic/posix_types.h"
156 typedef unsigned long __kernel_ino_t;
157 # 26 "include/asm-generic/posix_types.h"
158 typedef int __kernel_pid_t;
166 typedef unsigned int __kernel_uid_t;
167 typedef unsigned int __kernel_gid_t;
171 typedef long __kernel_suseconds_t;
175 typedef int __kernel_daddr_t;
179 typedef __kernel_uid_t __kernel_uid32_t;
180 typedef __kernel_gid_t __kernel_gid32_t;
181 # 79 "include/asm-generic/posix_types.h"
182 typedef long __kernel_off_t;
183 typedef long long __kernel_loff_t;
184 typedef long __kernel_time_t;
185 typedef long __kernel_clock_t;
186 typedef int __kernel_timer_t;
187 typedef int __kernel_clockid_t;
188 typedef char * __kernel_caddr_t;
189 typedef unsigned short __kernel_uid16_t;
190 typedef unsigned short __kernel_gid16_t;
199 static inline __attribute__((always_inline)) void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
201 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
202 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
203 __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
207 static inline __attribute__((always_inline)) void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
209 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
210 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
211 __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
215 static inline __attribute__((always_inline)) int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
217 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
218 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
219 return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
227 static inline __attribute__((always_inline)) void __FD_ZERO(__kernel_fd_set *__p)
229 unsigned long *__tmp = __p->fds_bits;
232 if (__builtin_constant_p((1024/(8 * sizeof(unsigned long))))) {
233 switch ((1024/(8 * sizeof(unsigned long)))) {
235 __tmp[ 0] = 0; __tmp[ 1] = 0;
236 __tmp[ 2] = 0; __tmp[ 3] = 0;
237 __tmp[ 4] = 0; __tmp[ 5] = 0;
238 __tmp[ 6] = 0; __tmp[ 7] = 0;
239 __tmp[ 8] = 0; __tmp[ 9] = 0;
240 __tmp[10] = 0; __tmp[11] = 0;
241 __tmp[12] = 0; __tmp[13] = 0;
242 __tmp[14] = 0; __tmp[15] = 0;
246 __tmp[ 0] = 0; __tmp[ 1] = 0;
247 __tmp[ 2] = 0; __tmp[ 3] = 0;
248 __tmp[ 4] = 0; __tmp[ 5] = 0;
249 __tmp[ 6] = 0; __tmp[ 7] = 0;
253 __tmp[ 0] = 0; __tmp[ 1] = 0;
254 __tmp[ 2] = 0; __tmp[ 3] = 0;
258 __i = (1024/(8 * sizeof(unsigned long)));
265 # 32 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/posix_types.h" 2
266 # 48 "include/linux/posix_types.h" 2
267 # 15 "include/linux/types.h" 2
271 typedef __u32 __kernel_dev_t;
273 typedef __kernel_fd_set fd_set;
274 typedef __kernel_dev_t dev_t;
275 typedef __kernel_ino_t ino_t;
276 typedef __kernel_mode_t mode_t;
277 typedef __kernel_nlink_t nlink_t;
278 typedef __kernel_off_t off_t;
279 typedef __kernel_pid_t pid_t;
280 typedef __kernel_daddr_t daddr_t;
281 typedef __kernel_key_t key_t;
282 typedef __kernel_suseconds_t suseconds_t;
283 typedef __kernel_timer_t timer_t;
284 typedef __kernel_clockid_t clockid_t;
285 typedef __kernel_mqd_t mqd_t;
289 typedef __kernel_uid32_t uid_t;
290 typedef __kernel_gid32_t gid_t;
291 typedef __kernel_uid16_t uid16_t;
292 typedef __kernel_gid16_t gid16_t;
294 typedef unsigned long uintptr_t;
298 typedef __kernel_old_uid_t old_uid_t;
299 typedef __kernel_old_gid_t old_gid_t;
303 typedef __kernel_loff_t loff_t;
304 # 59 "include/linux/types.h"
305 typedef __kernel_size_t size_t;
310 typedef __kernel_ssize_t ssize_t;
315 typedef __kernel_ptrdiff_t ptrdiff_t;
320 typedef __kernel_time_t time_t;
325 typedef __kernel_clock_t clock_t;
330 typedef __kernel_caddr_t caddr_t;
334 typedef unsigned char u_char;
335 typedef unsigned short u_short;
336 typedef unsigned int u_int;
337 typedef unsigned long u_long;
340 typedef unsigned char unchar;
341 typedef unsigned short ushort;
342 typedef unsigned int uint;
343 typedef unsigned long ulong;
348 typedef __u8 u_int8_t;
350 typedef __u16 u_int16_t;
351 typedef __s16 int16_t;
352 typedef __u32 u_int32_t;
353 typedef __s32 int32_t;
357 typedef __u8 uint8_t;
358 typedef __u16 uint16_t;
359 typedef __u32 uint32_t;
362 typedef __u64 uint64_t;
363 typedef __u64 u_int64_t;
364 typedef __s64 int64_t;
365 # 135 "include/linux/types.h"
366 typedef u64 sector_t;
367 typedef u64 blkcnt_t;
368 # 168 "include/linux/types.h"
369 typedef __u16 __le16;
370 typedef __u16 __be16;
371 typedef __u32 __le32;
372 typedef __u32 __be32;
373 typedef __u64 __le64;
374 typedef __u64 __be64;
376 typedef __u16 __sum16;
377 typedef __u32 __wsum;
380 typedef unsigned gfp_t;
381 typedef unsigned fmode_t;
386 typedef u32 phys_addr_t;
389 typedef phys_addr_t resource_size_t;
392 volatile int counter;
402 __kernel_daddr_t f_tfree;
403 __kernel_ino_t f_tinode;
407 # 14 "include/linux/prefetch.h" 2
408 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 1
409 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
410 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h" 1
411 # 30 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h"
469 # 105 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ptrace.h"
470 extern void show_regs(struct pt_regs *);
471 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 2
472 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 1
473 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h"
474 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/bf533.h" 1
475 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
476 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h" 1
477 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h"
478 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/def_LPBlackfin.h" 1
479 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/def_LPBlackfin.h"
480 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/anomaly.h" 1
481 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/def_LPBlackfin.h" 2
482 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/defBF532.h" 2
483 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
484 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/anomaly.h" 1
485 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
488 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 1
489 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h"
490 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_LPBlackfin.h" 1
491 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/cdefBF532.h" 2
492 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/blackfin.h" 2
493 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h" 2
495 static inline __attribute__((always_inline)) unsigned long rdusp(void)
499 __asm__ __volatile__("%0 = usp;\n\t":"=da"(usp));
503 static inline __attribute__((always_inline)) void wrusp(unsigned long usp)
505 __asm__ __volatile__("usp = %0;\n\t"::"da"(usp));
508 static inline __attribute__((always_inline)) unsigned long __get_SP(void)
512 __asm__ __volatile__("%0 = sp;\n\t" : "=da"(sp));
515 # 53 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
516 struct thread_struct {
519 unsigned short seqstat;
530 extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
531 unsigned long new_sp);
537 static inline __attribute__((always_inline)) void release_thread(struct task_struct *dead_task)
543 extern int kernel_thread(int (*fn) (void *), void *arg, unsigned long flags);
548 static inline __attribute__((always_inline)) void exit_thread(void)
557 unsigned long get_wchan(struct task_struct *p);
558 # 109 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
559 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_revid(void)
562 uint32_t revid = (({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }) & 0xF0000000) >> 28;
563 # 124 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
567 static inline __attribute__((always_inline)) uint16_t __attribute__((pure)) bfin_cpuid(void)
569 return (({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00014) ); __v; }) & 0x0FFFF000) >> 12;
572 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_dspid(void)
574 return ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFE05000) ); __v; });
579 static inline __attribute__((always_inline)) uint32_t __attribute__((pure)) bfin_compiled_revid(void)
581 # 150 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
583 # 160 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/processor.h"
585 # 15 "include/linux/prefetch.h" 2
586 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cache.h" 1
587 # 9 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cache.h"
588 # 1 "include/linux/linkage.h" 1
593 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/linkage.h" 1
594 # 6 "include/linux/linkage.h" 2
595 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cache.h" 2
596 # 16 "include/linux/prefetch.h" 2
597 # 53 "include/linux/prefetch.h"
598 static inline __attribute__((always_inline)) void prefetch_range(void *addr, size_t len)
608 # 7 "include/linux/list.h" 2
609 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 1
610 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
611 # 1 "include/linux/irqflags.h" 1
612 # 14 "include/linux/irqflags.h"
613 # 1 "include/linux/typecheck.h" 1
614 # 15 "include/linux/irqflags.h" 2
615 # 57 "include/linux/irqflags.h"
616 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irqflags.h" 1
617 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irqflags.h"
618 extern unsigned long bfin_irq_flags;
621 static inline __attribute__((always_inline)) void bfin_sti(unsigned long flags)
623 asm volatile("sti %0;" : : "d" (flags));
626 static inline __attribute__((always_inline)) unsigned long bfin_cli(void)
629 asm volatile("cli %0;" : "=d" (flags));
632 # 176 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irqflags.h"
633 static inline __attribute__((always_inline)) void raw_local_irq_disable(void)
637 static inline __attribute__((always_inline)) void raw_local_irq_enable(void)
639 bfin_sti(bfin_irq_flags);
646 static inline __attribute__((always_inline)) unsigned long __raw_local_irq_save(void)
648 unsigned long flags = bfin_cli();
654 # 207 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irqflags.h"
655 static inline __attribute__((always_inline)) void raw_local_irq_restore(unsigned long flags)
657 if (!(((flags) & ~0x3f) == 0))
658 raw_local_irq_enable();
660 # 58 "include/linux/irqflags.h" 2
661 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
664 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pda.h" 1
665 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pda.h"
666 struct blackfin_pda {
667 struct blackfin_pda *next;
669 unsigned long syscfg;
675 unsigned long *ipdt_swapcount;
677 unsigned long *dpdt_swapcount;
685 unsigned long ex_iptr;
686 unsigned long ex_optr;
687 unsigned long ex_buf[4];
688 unsigned long ex_imask;
689 unsigned long ex_ipend;
690 unsigned long *ex_stack;
693 unsigned long last_cplb_fault_retx;
695 unsigned long dcplb_fault_addr;
696 unsigned long icplb_fault_addr;
698 unsigned long seqstat;
699 unsigned int __nmi_count;
701 unsigned long dcplb_doublefault_addr;
702 unsigned long icplb_doublefault_addr;
703 unsigned long retx_doublefault;
704 unsigned long seqstat_doublefault;
708 extern struct blackfin_pda cpu_pda[];
709 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
710 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 1
711 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h"
712 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/irq.h" 1
713 # 19 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 2
714 # 36 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h"
715 # 1 "include/asm-generic/irq.h" 1
716 # 13 "include/asm-generic/irq.h"
717 static inline __attribute__((always_inline)) int irq_canonicalize(int irq)
721 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq.h" 2
722 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
723 # 107 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
724 struct __xchg_dummy {
725 unsigned long a[100];
731 static inline __attribute__((always_inline)) unsigned long __xchg(unsigned long x, volatile void *ptr,
734 unsigned long tmp = 0;
737 do { (flags) = __raw_local_irq_save(); } while (0);
744 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
750 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
756 : "=&d" (tmp) : "d" (x), "m" (*((volatile struct __xchg_dummy *)(ptr))) : "memory");
759 raw_local_irq_restore(flags);
763 # 1 "include/asm-generic/cmpxchg-local.h" 1
769 extern unsigned long wrong_size_cmpxchg(volatile void *ptr);
775 static inline __attribute__((always_inline)) unsigned long __cmpxchg_local_generic(volatile void *ptr,
776 unsigned long old, unsigned long new, int size)
778 unsigned long flags, prev;
783 if (size == 8 && sizeof(unsigned long) != 8)
784 wrong_size_cmpxchg(ptr);
786 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
788 case 1: prev = *(u8 *)ptr;
790 *(u8 *)ptr = (u8)new;
792 case 2: prev = *(u16 *)ptr;
794 *(u16 *)ptr = (u16)new;
796 case 4: prev = *(u32 *)ptr;
798 *(u32 *)ptr = (u32)new;
800 case 8: prev = *(u64 *)ptr;
802 *(u64 *)ptr = (u64)new;
805 wrong_size_cmpxchg(ptr);
807 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
814 static inline __attribute__((always_inline)) u64 __cmpxchg64_local_generic(volatile void *ptr,
820 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
824 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
827 # 147 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
828 # 157 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
829 # 1 "include/asm-generic/cmpxchg.h" 1
830 # 158 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
831 # 171 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h"
832 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/l1layout.h" 1
833 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/l1layout.h"
834 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 1
835 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h"
836 static inline __attribute__((always_inline)) void SSYNC(void)
840 __asm__ __volatile__(
848 else if ((0x0004 < 5))
849 __asm__ __volatile__(
856 __asm__ __volatile__("ssync;");
860 static inline __attribute__((always_inline)) void CSYNC(void)
864 __asm__ __volatile__(
872 else if ((0x0004 < 5))
873 __asm__ __volatile__(
880 __asm__ __volatile__("csync;");
882 # 92 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h"
883 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h" 1
884 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h"
885 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/mach-bf533/include/mach/mem_map.h" 1
886 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h" 2
887 # 53 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mem_map.h"
888 static inline __attribute__((always_inline)) unsigned long get_l1_scratch_start_cpu(int cpu)
892 static inline __attribute__((always_inline)) unsigned long get_l1_code_start_cpu(int cpu)
896 static inline __attribute__((always_inline)) unsigned long get_l1_data_a_start_cpu(int cpu)
900 static inline __attribute__((always_inline)) unsigned long get_l1_data_b_start_cpu(int cpu)
904 static inline __attribute__((always_inline)) unsigned long get_l1_scratch_start(void)
906 return get_l1_scratch_start_cpu(0);
908 static inline __attribute__((always_inline)) unsigned long get_l1_code_start(void)
910 return get_l1_code_start_cpu(0);
912 static inline __attribute__((always_inline)) unsigned long get_l1_data_a_start(void)
914 return get_l1_data_a_start_cpu(0);
916 static inline __attribute__((always_inline)) unsigned long get_l1_data_b_start(void)
918 return get_l1_data_b_start_cpu(0);
920 # 93 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 2
922 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h" 1
923 # 33 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bfin-global.h"
924 extern void bfin_setup_caches(unsigned int cpu);
925 extern void bfin_setup_cpudata(unsigned int cpu);
927 extern unsigned long get_cclk(void);
928 extern unsigned long get_sclk(void);
929 extern unsigned long sclk_to_usecs(unsigned long sclk);
930 extern unsigned long usecs_to_sclk(unsigned long usecs);
933 extern void dump_bfin_process(struct pt_regs *regs);
934 extern void dump_bfin_mem(struct pt_regs *regs);
935 extern void dump_bfin_trace_buffer(void);
938 extern int init_arch_irq(void);
939 extern void init_exception_vectors(void);
940 extern void program_IAR(void);
942 extern void lower_to_irq14(void);
943 extern void bfin_return_from_exception(void);
944 extern void asm_do_IRQ(unsigned int irq, struct pt_regs *regs);
945 extern int bfin_internal_set_wake(unsigned int irq, unsigned int state);
947 extern void *l1_data_A_sram_alloc(size_t);
948 extern void *l1_data_B_sram_alloc(size_t);
949 extern void *l1_inst_sram_alloc(size_t);
950 extern void *l1_data_sram_alloc(size_t);
951 extern void *l1_data_sram_zalloc(size_t);
952 extern void *l2_sram_alloc(size_t);
953 extern void *l2_sram_zalloc(size_t);
954 extern int l1_data_A_sram_free(const void*);
955 extern int l1_data_B_sram_free(const void*);
956 extern int l1_inst_sram_free(const void*);
957 extern int l1_data_sram_free(const void*);
958 extern int l2_sram_free(const void *);
959 extern int sram_free(const void*);
966 extern void *sram_alloc_with_lsl(size_t, unsigned long);
967 extern int sram_free_with_lsl(const void*);
969 extern void *isram_memcpy(void *dest, const void *src, size_t n);
971 extern const char bfin_board_name[];
973 extern unsigned long bfin_sic_iwr[];
974 extern unsigned vr_wakeup;
975 extern u16 _bfin_swrst;
976 # 95 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 2
977 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h" 1
978 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
979 static __inline__ __attribute__((always_inline)) void bfin_write_PLL_CTL(unsigned int val)
981 unsigned long flags = 0;
982 # 49 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
986 if (val == ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00000) ); __v; }))
989 do { (flags) = __raw_local_irq_save(); } while (0);
990 # 70 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
991 iwr = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00124) ); __v; });
994 __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00000), "d" ((uint16_t)(val)) : "memory" );
997 # 86 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
998 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" (iwr) : "memory" );
1000 raw_local_irq_restore(flags);
1004 static __inline__ __attribute__((always_inline)) void bfin_write_VR_CTL(unsigned int val)
1006 unsigned long flags = 0;
1007 # 104 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
1011 if (val == ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = w[%1] (z);" : "=d" (__v) : "a" (0xFFC00008) ); __v; }))
1014 do { (flags) = __raw_local_irq_save(); } while (0);
1015 # 125 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
1016 iwr = ({ uint32_t __v; __asm__ __volatile__( "nop;" "%0 = [%1];" : "=d" (__v) : "a" (0xFFC00124) ); __v; });
1017 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" ((1 << (0))) : "memory" );
1020 __asm__ __volatile__( "nop;" "w[%0] = %1;" : : "a" (0xFFC00008), "d" ((uint16_t)(val)) : "memory" );
1023 # 142 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
1024 __asm__ __volatile__( "nop;" "[%0] = %1;" : : "a" (0xFFC00124), "d" (iwr) : "memory" );
1026 raw_local_irq_restore(flags);
1028 # 160 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
1029 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_D(unsigned short val) { unsigned long flags; do { (flags) = __raw_local_irq_save(); } while (0); __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; }); raw_local_irq_restore(flags); }
1030 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_C(unsigned short val) { unsigned long flags; do { (flags) = __raw_local_irq_save(); } while (0); __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; }); raw_local_irq_restore(flags); }
1031 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_S(unsigned short val) { unsigned long flags; do { (flags) = __raw_local_irq_save(); } while (0); __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; }); raw_local_irq_restore(flags); }
1032 static inline __attribute__((always_inline)) void bfin_write_FIO_FLAG_T(unsigned short val) { unsigned long flags; do { (flags) = __raw_local_irq_save(); } while (0); __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; }); raw_local_irq_restore(flags); }
1033 # 176 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cdef_misc.h"
1034 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_D(void) { unsigned long flags; u16 ret; do { (flags) = __raw_local_irq_save(); } while (0); 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; }); raw_local_irq_restore(flags); return ret; }
1035 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_C(void) { unsigned long flags; u16 ret; do { (flags) = __raw_local_irq_save(); } while (0); 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; }); raw_local_irq_restore(flags); return ret; }
1036 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_S(void) { unsigned long flags; u16 ret; do { (flags) = __raw_local_irq_save(); } while (0); 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; }); raw_local_irq_restore(flags); return ret; }
1037 static inline __attribute__((always_inline)) u16 bfin_read_FIO_FLAG_T(void) { unsigned long flags; u16 ret; do { (flags) = __raw_local_irq_save(); } while (0); 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; }); raw_local_irq_restore(flags); return ret; }
1038 # 96 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/blackfin.h" 2
1039 # 13 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/l1layout.h" 2
1047 struct l1_scratch_task_info
1056 # 172 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/system.h" 2
1059 struct task_struct *resume(struct task_struct *prev, struct task_struct *next);
1060 # 8 "include/linux/list.h" 2
1061 # 19 "include/linux/list.h"
1063 struct list_head *next, *prev;
1071 static inline __attribute__((always_inline)) void INIT_LIST_HEAD(struct list_head *list)
1076 # 41 "include/linux/list.h"
1077 static inline __attribute__((always_inline)) void __list_add(struct list_head *new,
1078 struct list_head *prev,
1079 struct list_head *next)
1086 # 64 "include/linux/list.h"
1087 static inline __attribute__((always_inline)) void list_add(struct list_head *new, struct list_head *head)
1089 __list_add(new, head, head->next);
1091 # 78 "include/linux/list.h"
1092 static inline __attribute__((always_inline)) void list_add_tail(struct list_head *new, struct list_head *head)
1094 __list_add(new, head->prev, head);
1096 # 90 "include/linux/list.h"
1097 static inline __attribute__((always_inline)) void __list_del(struct list_head * prev, struct list_head * next)
1102 # 103 "include/linux/list.h"
1103 static inline __attribute__((always_inline)) void list_del(struct list_head *entry)
1105 __list_del(entry->prev, entry->next);
1106 entry->next = ((void *) 0x00100100);
1107 entry->prev = ((void *) 0x00200200);
1109 # 120 "include/linux/list.h"
1110 static inline __attribute__((always_inline)) void list_replace(struct list_head *old,
1111 struct list_head *new)
1113 new->next = old->next;
1114 new->next->prev = new;
1115 new->prev = old->prev;
1116 new->prev->next = new;
1119 static inline __attribute__((always_inline)) void list_replace_init(struct list_head *old,
1120 struct list_head *new)
1122 list_replace(old, new);
1123 INIT_LIST_HEAD(old);
1130 static inline __attribute__((always_inline)) void list_del_init(struct list_head *entry)
1132 __list_del(entry->prev, entry->next);
1133 INIT_LIST_HEAD(entry);
1141 static inline __attribute__((always_inline)) void list_move(struct list_head *list, struct list_head *head)
1143 __list_del(list->prev, list->next);
1144 list_add(list, head);
1152 static inline __attribute__((always_inline)) void list_move_tail(struct list_head *list,
1153 struct list_head *head)
1155 __list_del(list->prev, list->next);
1156 list_add_tail(list, head);
1164 static inline __attribute__((always_inline)) int list_is_last(const struct list_head *list,
1165 const struct list_head *head)
1167 return list->next == head;
1174 static inline __attribute__((always_inline)) int list_empty(const struct list_head *head)
1176 return head->next == head;
1178 # 202 "include/linux/list.h"
1179 static inline __attribute__((always_inline)) int list_empty_careful(const struct list_head *head)
1181 struct list_head *next = head->next;
1182 return (next == head) && (next == head->prev);
1189 static inline __attribute__((always_inline)) int list_is_singular(const struct list_head *head)
1191 return !list_empty(head) && (head->next == head->prev);
1194 static inline __attribute__((always_inline)) void __list_cut_position(struct list_head *list,
1195 struct list_head *head, struct list_head *entry)
1197 struct list_head *new_first = entry->next;
1198 list->next = head->next;
1199 list->next->prev = list;
1202 head->next = new_first;
1203 new_first->prev = head;
1205 # 243 "include/linux/list.h"
1206 static inline __attribute__((always_inline)) void list_cut_position(struct list_head *list,
1207 struct list_head *head, struct list_head *entry)
1209 if (list_empty(head))
1211 if (list_is_singular(head) &&
1212 (head->next != entry && head != entry))
1215 INIT_LIST_HEAD(list);
1217 __list_cut_position(list, head, entry);
1220 static inline __attribute__((always_inline)) void __list_splice(const struct list_head *list,
1221 struct list_head *prev,
1222 struct list_head *next)
1224 struct list_head *first = list->next;
1225 struct list_head *last = list->prev;
1239 static inline __attribute__((always_inline)) void list_splice(const struct list_head *list,
1240 struct list_head *head)
1242 if (!list_empty(list))
1243 __list_splice(list, head, head->next);
1251 static inline __attribute__((always_inline)) void list_splice_tail(struct list_head *list,
1252 struct list_head *head)
1254 if (!list_empty(list))
1255 __list_splice(list, head->prev, head);
1257 # 302 "include/linux/list.h"
1258 static inline __attribute__((always_inline)) void list_splice_init(struct list_head *list,
1259 struct list_head *head)
1261 if (!list_empty(list)) {
1262 __list_splice(list, head, head->next);
1263 INIT_LIST_HEAD(list);
1266 # 319 "include/linux/list.h"
1267 static inline __attribute__((always_inline)) void list_splice_tail_init(struct list_head *list,
1268 struct list_head *head)
1270 if (!list_empty(list)) {
1271 __list_splice(list, head->prev, head);
1272 INIT_LIST_HEAD(list);
1275 # 540 "include/linux/list.h"
1277 struct hlist_node *first;
1281 struct hlist_node *next, **pprev;
1287 static inline __attribute__((always_inline)) void INIT_HLIST_NODE(struct hlist_node *h)
1289 h->next = ((void *)0);
1290 h->pprev = ((void *)0);
1293 static inline __attribute__((always_inline)) int hlist_unhashed(const struct hlist_node *h)
1298 static inline __attribute__((always_inline)) int hlist_empty(const struct hlist_head *h)
1303 static inline __attribute__((always_inline)) void __hlist_del(struct hlist_node *n)
1305 struct hlist_node *next = n->next;
1306 struct hlist_node **pprev = n->pprev;
1309 next->pprev = pprev;
1312 static inline __attribute__((always_inline)) void hlist_del(struct hlist_node *n)
1315 n->next = ((void *) 0x00100100);
1316 n->pprev = ((void *) 0x00200200);
1319 static inline __attribute__((always_inline)) void hlist_del_init(struct hlist_node *n)
1321 if (!hlist_unhashed(n)) {
1327 static inline __attribute__((always_inline)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
1329 struct hlist_node *first = h->first;
1332 first->pprev = &n->next;
1334 n->pprev = &h->first;
1338 static inline __attribute__((always_inline)) void hlist_add_before(struct hlist_node *n,
1339 struct hlist_node *next)
1341 n->pprev = next->pprev;
1343 next->pprev = &n->next;
1347 static inline __attribute__((always_inline)) void hlist_add_after(struct hlist_node *n,
1348 struct hlist_node *next)
1350 next->next = n->next;
1352 next->pprev = &n->next;
1355 next->next->pprev = &next->next;
1362 static inline __attribute__((always_inline)) void hlist_move_list(struct hlist_head *old,
1363 struct hlist_head *new)
1365 new->first = old->first;
1367 new->first->pprev = &new->first;
1368 old->first = ((void *)0);
1370 # 10 "include/linux/module.h" 2
1371 # 1 "include/linux/stat.h" 1
1377 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/stat.h" 1
1378 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/stat.h"
1380 unsigned short st_dev;
1381 unsigned short __pad1;
1382 unsigned long st_ino;
1383 unsigned short st_mode;
1384 unsigned short st_nlink;
1385 unsigned short st_uid;
1386 unsigned short st_gid;
1387 unsigned short st_rdev;
1388 unsigned short __pad2;
1389 unsigned long st_size;
1390 unsigned long st_blksize;
1391 unsigned long st_blocks;
1392 unsigned long st_atime;
1393 unsigned long __unused1;
1394 unsigned long st_mtime;
1395 unsigned long __unused2;
1396 unsigned long st_ctime;
1397 unsigned long __unused3;
1398 unsigned long __unused4;
1399 unsigned long __unused5;
1406 unsigned long long st_dev;
1407 unsigned char __pad1[4];
1410 unsigned long __st_ino;
1412 unsigned int st_mode;
1413 unsigned int st_nlink;
1415 unsigned long st_uid;
1416 unsigned long st_gid;
1418 unsigned long long st_rdev;
1419 unsigned char __pad2[4];
1422 unsigned long st_blksize;
1424 long long st_blocks;
1426 unsigned long st_atime;
1427 unsigned long st_atime_nsec;
1429 unsigned long st_mtime;
1430 unsigned long st_mtime_nsec;
1432 unsigned long st_ctime;
1433 unsigned long st_ctime_nsec;
1435 unsigned long long st_ino;
1437 # 7 "include/linux/stat.h" 2
1438 # 60 "include/linux/stat.h"
1439 # 1 "include/linux/time.h" 1
1446 # 1 "include/linux/cache.h" 1
1450 # 1 "include/linux/kernel.h" 1
1451 # 10 "include/linux/kernel.h"
1452 # 1 "/usr/local/src/blackfin/toolchains/20091208/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.4/include/stdarg.h" 1 3 4
1453 # 43 "/usr/local/src/blackfin/toolchains/20091208/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.4/include/stdarg.h" 3 4
1454 typedef __builtin_va_list __gnuc_va_list;
1455 # 105 "/usr/local/src/blackfin/toolchains/20091208/bfin-uclinux/lib/gcc/bfin-uclinux/4.3.4/include/stdarg.h" 3 4
1456 typedef __gnuc_va_list va_list;
1457 # 11 "include/linux/kernel.h" 2
1462 # 1 "include/linux/bitops.h" 1
1465 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1466 # 4 "include/linux/bitops.h" 2
1467 # 17 "include/linux/bitops.h"
1468 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 1
1469 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h"
1470 # 1 "include/asm-generic/bitops.h" 1
1471 # 23 "include/asm-generic/bitops.h"
1472 # 1 "include/asm-generic/bitops/__ffs.h" 1
1476 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1477 # 5 "include/asm-generic/bitops/__ffs.h" 2
1485 static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned long __ffs(unsigned long word)
1495 if ((word & 0xffff) == 0) {
1499 if ((word & 0xff) == 0) {
1503 if ((word & 0xf) == 0) {
1507 if ((word & 0x3) == 0) {
1511 if ((word & 0x1) == 0)
1515 # 24 "include/asm-generic/bitops.h" 2
1516 # 1 "include/asm-generic/bitops/ffz.h" 1
1517 # 25 "include/asm-generic/bitops.h" 2
1518 # 1 "include/asm-generic/bitops/fls.h" 1
1519 # 12 "include/asm-generic/bitops/fls.h"
1520 static inline __attribute__((always_inline)) __attribute__((always_inline)) int fls(int x)
1526 if (!(x & 0xffff0000u)) {
1530 if (!(x & 0xff000000u)) {
1534 if (!(x & 0xf0000000u)) {
1538 if (!(x & 0xc0000000u)) {
1542 if (!(x & 0x80000000u)) {
1548 # 26 "include/asm-generic/bitops.h" 2
1549 # 1 "include/asm-generic/bitops/__fls.h" 1
1553 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1554 # 5 "include/asm-generic/bitops/__fls.h" 2
1562 static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned long __fls(unsigned long word)
1572 if (!(word & (~0ul << (32 -16)))) {
1576 if (!(word & (~0ul << (32 -8)))) {
1580 if (!(word & (~0ul << (32 -4)))) {
1584 if (!(word & (~0ul << (32 -2)))) {
1588 if (!(word & (~0ul << (32 -1))))
1592 # 27 "include/asm-generic/bitops.h" 2
1593 # 1 "include/asm-generic/bitops/fls64.h" 1
1597 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1598 # 5 "include/asm-generic/bitops/fls64.h" 2
1599 # 18 "include/asm-generic/bitops/fls64.h"
1600 static inline __attribute__((always_inline)) __attribute__((always_inline)) int fls64(__u64 x)
1607 # 28 "include/asm-generic/bitops.h" 2
1608 # 1 "include/asm-generic/bitops/find.h" 1
1609 # 29 "include/asm-generic/bitops.h" 2
1615 # 1 "include/asm-generic/bitops/sched.h" 1
1620 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1621 # 6 "include/asm-generic/bitops/sched.h" 2
1628 static inline __attribute__((always_inline)) int sched_find_first_bit(const unsigned long *b)
1638 return __ffs(b[1]) + 32;
1640 return __ffs(b[2]) + 64;
1641 return __ffs(b[3]) + 96;
1646 # 35 "include/asm-generic/bitops.h" 2
1647 # 1 "include/asm-generic/bitops/ffs.h" 1
1648 # 12 "include/asm-generic/bitops/ffs.h"
1649 static inline __attribute__((always_inline)) int ffs(int x)
1655 if (!(x & 0xffff)) {
1677 # 36 "include/asm-generic/bitops.h" 2
1678 # 1 "include/asm-generic/bitops/hweight.h" 1
1682 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1683 # 5 "include/asm-generic/bitops/hweight.h" 2
1685 extern unsigned int hweight32(unsigned int w);
1686 extern unsigned int hweight16(unsigned int w);
1687 extern unsigned int hweight8(unsigned int w);
1688 extern unsigned long hweight64(__u64 w);
1689 # 37 "include/asm-generic/bitops.h" 2
1690 # 1 "include/asm-generic/bitops/lock.h" 1
1691 # 38 "include/asm-generic/bitops.h" 2
1693 # 1 "include/asm-generic/bitops/atomic.h" 1
1697 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1698 # 5 "include/asm-generic/bitops/atomic.h" 2
1699 # 65 "include/asm-generic/bitops/atomic.h"
1700 static inline __attribute__((always_inline)) void set_bit(int nr, volatile unsigned long *addr)
1702 unsigned long mask = (1UL << ((nr) % 32));
1703 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1704 unsigned long flags;
1706 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1708 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1710 # 86 "include/asm-generic/bitops/atomic.h"
1711 static inline __attribute__((always_inline)) void clear_bit(int nr, volatile unsigned long *addr)
1713 unsigned long mask = (1UL << ((nr) % 32));
1714 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1715 unsigned long flags;
1717 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1719 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1721 # 107 "include/asm-generic/bitops/atomic.h"
1722 static inline __attribute__((always_inline)) void change_bit(int nr, volatile unsigned long *addr)
1724 unsigned long mask = (1UL << ((nr) % 32));
1725 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1726 unsigned long flags;
1728 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1730 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1732 # 127 "include/asm-generic/bitops/atomic.h"
1733 static inline __attribute__((always_inline)) int test_and_set_bit(int nr, volatile unsigned long *addr)
1735 unsigned long mask = (1UL << ((nr) % 32));
1736 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1738 unsigned long flags;
1740 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1743 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1745 return (old & mask) != 0;
1747 # 151 "include/asm-generic/bitops/atomic.h"
1748 static inline __attribute__((always_inline)) int test_and_clear_bit(int nr, volatile unsigned long *addr)
1750 unsigned long mask = (1UL << ((nr) % 32));
1751 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1753 unsigned long flags;
1755 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1758 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1760 return (old & mask) != 0;
1762 # 174 "include/asm-generic/bitops/atomic.h"
1763 static inline __attribute__((always_inline)) int test_and_change_bit(int nr, volatile unsigned long *addr)
1765 unsigned long mask = (1UL << ((nr) % 32));
1766 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1768 unsigned long flags;
1770 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0); } while (0);
1773 do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0); } while (0);
1775 return (old & mask) != 0;
1777 # 40 "include/asm-generic/bitops.h" 2
1778 # 1 "include/asm-generic/bitops/non-atomic.h" 1
1782 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1783 # 5 "include/asm-generic/bitops/non-atomic.h" 2
1784 # 15 "include/asm-generic/bitops/non-atomic.h"
1785 static inline __attribute__((always_inline)) void __set_bit(int nr, volatile unsigned long *addr)
1787 unsigned long mask = (1UL << ((nr) % 32));
1788 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1793 static inline __attribute__((always_inline)) void __clear_bit(int nr, volatile unsigned long *addr)
1795 unsigned long mask = (1UL << ((nr) % 32));
1796 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1800 # 40 "include/asm-generic/bitops/non-atomic.h"
1801 static inline __attribute__((always_inline)) void __change_bit(int nr, volatile unsigned long *addr)
1803 unsigned long mask = (1UL << ((nr) % 32));
1804 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1808 # 57 "include/asm-generic/bitops/non-atomic.h"
1809 static inline __attribute__((always_inline)) int __test_and_set_bit(int nr, volatile unsigned long *addr)
1811 unsigned long mask = (1UL << ((nr) % 32));
1812 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1813 unsigned long old = *p;
1816 return (old & mask) != 0;
1818 # 76 "include/asm-generic/bitops/non-atomic.h"
1819 static inline __attribute__((always_inline)) int __test_and_clear_bit(int nr, volatile unsigned long *addr)
1821 unsigned long mask = (1UL << ((nr) % 32));
1822 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1823 unsigned long old = *p;
1826 return (old & mask) != 0;
1830 static inline __attribute__((always_inline)) int __test_and_change_bit(int nr,
1831 volatile unsigned long *addr)
1833 unsigned long mask = (1UL << ((nr) % 32));
1834 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
1835 unsigned long old = *p;
1838 return (old & mask) != 0;
1846 static inline __attribute__((always_inline)) int test_bit(int nr, const volatile unsigned long *addr)
1848 return 1UL & (addr[((nr) / 32)] >> (nr & (32 -1)));
1850 # 41 "include/asm-generic/bitops.h" 2
1851 # 1 "include/asm-generic/bitops/ext2-non-atomic.h" 1
1855 # 1 "include/asm-generic/bitops/le.h" 1
1859 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
1860 # 5 "include/asm-generic/bitops/le.h" 2
1861 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 1
1862 # 1 "include/linux/byteorder/little_endian.h" 1
1863 # 12 "include/linux/byteorder/little_endian.h"
1864 # 1 "include/linux/swab.h" 1
1870 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/swab.h" 1
1871 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/swab.h"
1872 # 1 "include/asm-generic/swab.h" 1
1876 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitsperlong.h" 1
1877 # 5 "include/asm-generic/swab.h" 2
1878 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/swab.h" 2
1882 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __arch_swahb32(__u32 xx)
1885 __asm__("%1 = %0 >> 8 (V);\n\t"
1886 "%0 = %0 << 8 (V);\n\t"
1888 : "+d"(xx), "=&d"(tmp));
1893 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __arch_swahw32(__u32 xx)
1896 __asm__("%0 = PACK(%1.L, %1.H);\n\t": "=d"(rv): "d"(xx));
1901 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __arch_swab32(__u32 xx)
1903 return __arch_swahb32(__arch_swahw32(xx));
1907 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 __arch_swab16(__u16 xx)
1910 __asm__("%0 <<= 8;\n %0.L = %0.L + %0.H (NS);\n": "+d"(xw));
1913 # 7 "include/linux/swab.h" 2
1914 # 46 "include/linux/swab.h"
1915 static inline __attribute__((always_inline)) __attribute__((__const__)) __u16 __fswab16(__u16 val)
1918 return __arch_swab16(val);
1924 static inline __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswab32(__u32 val)
1927 return __arch_swab32(val);
1933 static inline __attribute__((always_inline)) __attribute__((__const__)) __u64 __fswab64(__u64 val)
1938 __u32 h = val >> 32;
1939 __u32 l = val & ((1ULL << 32) - 1);
1940 return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h)));
1946 static inline __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswahw32(__u32 val)
1949 return __arch_swahw32(val);
1955 static inline __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswahb32(__u32 val)
1958 return __arch_swahb32(val);
1963 # 148 "include/linux/swab.h"
1964 static inline __attribute__((always_inline)) __u16 __swab16p(const __u16 *p)
1969 return (__builtin_constant_p((__u16)(*p)) ? ((__u16)( (((__u16)(*p) & (__u16)0x00ffU) << 8) | (((__u16)(*p) & (__u16)0xff00U) >> 8))) : __fswab16(*p));
1977 static inline __attribute__((always_inline)) __u32 __swab32p(const __u32 *p)
1982 return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x000000ffUL) << 24) | (((__u32)(*p) & (__u32)0x0000ff00UL) << 8) | (((__u32)(*p) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(*p) & (__u32)0xff000000UL) >> 24))) : __fswab32(*p));
1990 static inline __attribute__((always_inline)) __u64 __swab64p(const __u64 *p)
1995 return (__builtin_constant_p((__u64)(*p)) ? ((__u64)( (((__u64)(*p) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(*p) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(*p) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(*p) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(*p) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(*p) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(*p) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(*p) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(*p));
2005 static inline __attribute__((always_inline)) __u32 __swahw32p(const __u32 *p)
2010 return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x0000ffffUL) << 16) | (((__u32)(*p) & (__u32)0xffff0000UL) >> 16))) : __fswahw32(*p));
2020 static inline __attribute__((always_inline)) __u32 __swahb32p(const __u32 *p)
2025 return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(*p) & (__u32)0xff00ff00UL) >> 8))) : __fswahb32(*p));
2033 static inline __attribute__((always_inline)) void __swab16s(__u16 *p)
2045 static inline __attribute__((always_inline)) void __swab32s(__u32 *p)
2058 static inline __attribute__((always_inline)) void __swab64s(__u64 *p)
2073 static inline __attribute__((always_inline)) void __swahw32s(__u32 *p)
2088 static inline __attribute__((always_inline)) void __swahb32s(__u32 *p)
2096 # 13 "include/linux/byteorder/little_endian.h" 2
2097 # 43 "include/linux/byteorder/little_endian.h"
2098 static inline __attribute__((always_inline)) __le64 __cpu_to_le64p(const __u64 *p)
2102 static inline __attribute__((always_inline)) __u64 __le64_to_cpup(const __le64 *p)
2106 static inline __attribute__((always_inline)) __le32 __cpu_to_le32p(const __u32 *p)
2110 static inline __attribute__((always_inline)) __u32 __le32_to_cpup(const __le32 *p)
2114 static inline __attribute__((always_inline)) __le16 __cpu_to_le16p(const __u16 *p)
2118 static inline __attribute__((always_inline)) __u16 __le16_to_cpup(const __le16 *p)
2122 static inline __attribute__((always_inline)) __be64 __cpu_to_be64p(const __u64 *p)
2124 return ( __be64)__swab64p(p);
2126 static inline __attribute__((always_inline)) __u64 __be64_to_cpup(const __be64 *p)
2128 return __swab64p((__u64 *)p);
2130 static inline __attribute__((always_inline)) __be32 __cpu_to_be32p(const __u32 *p)
2132 return ( __be32)__swab32p(p);
2134 static inline __attribute__((always_inline)) __u32 __be32_to_cpup(const __be32 *p)
2136 return __swab32p((__u32 *)p);
2138 static inline __attribute__((always_inline)) __be16 __cpu_to_be16p(const __u16 *p)
2140 return ( __be16)__swab16p(p);
2142 static inline __attribute__((always_inline)) __u16 __be16_to_cpup(const __be16 *p)
2144 return __swab16p((__u16 *)p);
2146 # 105 "include/linux/byteorder/little_endian.h"
2147 # 1 "include/linux/byteorder/generic.h" 1
2148 # 143 "include/linux/byteorder/generic.h"
2149 static inline __attribute__((always_inline)) void le16_add_cpu(__le16 *var, u16 val)
2151 *var = (( __le16)(__u16)((( __u16)(__le16)(*var)) + val));
2154 static inline __attribute__((always_inline)) void le32_add_cpu(__le32 *var, u32 val)
2156 *var = (( __le32)(__u32)((( __u32)(__le32)(*var)) + val));
2159 static inline __attribute__((always_inline)) void le64_add_cpu(__le64 *var, u64 val)
2161 *var = (( __le64)(__u64)((( __u64)(__le64)(*var)) + val));
2164 static inline __attribute__((always_inline)) void be16_add_cpu(__be16 *var, u16 val)
2166 *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))));
2169 static inline __attribute__((always_inline)) void be32_add_cpu(__be32 *var, u32 val)
2171 *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))));
2174 static inline __attribute__((always_inline)) void be64_add_cpu(__be64 *var, u64 val)
2176 *var = (( __be64)(__builtin_constant_p((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val))) ? ((__u64)( (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(((__builtin_constant_p((__u64)(( __u64)(__be64)(*var))) ? ((__u64)( (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__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)(__be64)(*var)) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(( __u64)(__be64)(*var)) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(( __u64)(__be64)(*var))) + val))));
2178 # 106 "include/linux/byteorder/little_endian.h" 2
2179 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 2
2180 # 6 "include/asm-generic/bitops/le.h" 2
2181 # 5 "include/asm-generic/bitops/ext2-non-atomic.h" 2
2182 # 42 "include/asm-generic/bitops.h" 2
2183 # 1 "include/asm-generic/bitops/ext2-atomic.h" 1
2184 # 43 "include/asm-generic/bitops.h" 2
2185 # 1 "include/asm-generic/bitops/minix.h" 1
2186 # 44 "include/asm-generic/bitops.h" 2
2187 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitops.h" 2
2188 # 18 "include/linux/bitops.h" 2
2196 static __inline__ __attribute__((always_inline)) int get_bitmask_order(unsigned int count)
2204 static __inline__ __attribute__((always_inline)) int get_count_order(unsigned int count)
2208 order = fls(count) - 1;
2209 if (count & (count - 1))
2214 static inline __attribute__((always_inline)) unsigned long hweight_long(unsigned long w)
2216 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
2224 static inline __attribute__((always_inline)) __u32 rol32(__u32 word, unsigned int shift)
2226 return (word << shift) | (word >> (32 - shift));
2234 static inline __attribute__((always_inline)) __u32 ror32(__u32 word, unsigned int shift)
2236 return (word >> shift) | (word << (32 - shift));
2244 static inline __attribute__((always_inline)) __u16 rol16(__u16 word, unsigned int shift)
2246 return (word << shift) | (word >> (16 - shift));
2254 static inline __attribute__((always_inline)) __u16 ror16(__u16 word, unsigned int shift)
2256 return (word >> shift) | (word << (16 - shift));
2264 static inline __attribute__((always_inline)) __u8 rol8(__u8 word, unsigned int shift)
2266 return (word << shift) | (word >> (8 - shift));
2274 static inline __attribute__((always_inline)) __u8 ror8(__u8 word, unsigned int shift)
2276 return (word >> shift) | (word << (8 - shift));
2279 static inline __attribute__((always_inline)) unsigned fls_long(unsigned long l)
2285 # 123 "include/linux/bitops.h"
2286 static inline __attribute__((always_inline)) unsigned long __ffs64(u64 word)
2289 if (((u32)word) == 0UL)
2290 return __ffs((u32)(word >> 32)) + 32;
2294 return __ffs((unsigned long)word);
2296 # 166 "include/linux/bitops.h"
2297 extern unsigned long find_last_bit(const unsigned long *addr,
2298 unsigned long size);
2299 # 178 "include/linux/bitops.h"
2300 extern unsigned long find_next_bit(const unsigned long *addr,
2301 unsigned long size, unsigned long offset);
2302 # 188 "include/linux/bitops.h"
2303 extern unsigned long find_next_zero_bit(const unsigned long *addr,
2305 unsigned long offset);
2306 # 16 "include/linux/kernel.h" 2
2307 # 1 "include/linux/log2.h" 1
2308 # 21 "include/linux/log2.h"
2309 extern __attribute__((const, noreturn))
2310 int ____ilog2_NaN(void);
2311 # 31 "include/linux/log2.h"
2312 static inline __attribute__((always_inline)) __attribute__((const))
2313 int __ilog2_u32(u32 n)
2320 static inline __attribute__((always_inline)) __attribute__((const))
2321 int __ilog2_u64(u64 n)
2323 return fls64(n) - 1;
2332 static inline __attribute__((always_inline)) __attribute__((const))
2333 bool is_power_of_2(unsigned long n)
2335 return (n != 0 && ((n & (n - 1)) == 0));
2341 static inline __attribute__((always_inline)) __attribute__((const))
2342 unsigned long __roundup_pow_of_two(unsigned long n)
2344 return 1UL << fls_long(n - 1);
2350 static inline __attribute__((always_inline)) __attribute__((const))
2351 unsigned long __rounddown_pow_of_two(unsigned long n)
2353 return 1UL << (fls_long(n) - 1);
2355 # 17 "include/linux/kernel.h" 2
2357 # 1 "include/linux/ratelimit.h" 1
2360 # 1 "include/linux/param.h" 1
2364 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/param.h" 1
2365 # 1 "include/asm-generic/param.h" 1
2366 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/param.h" 2
2367 # 5 "include/linux/param.h" 2
2368 # 4 "include/linux/ratelimit.h" 2
2373 struct ratelimit_state {
2378 unsigned long begin;
2384 extern int __ratelimit(struct ratelimit_state *rs);
2385 # 19 "include/linux/kernel.h" 2
2386 # 1 "include/linux/dynamic_debug.h" 1
2394 extern long long dynamic_debug_enabled;
2395 extern long long dynamic_debug_enabled2;
2407 const char *modname;
2408 const char *function;
2409 const char *filename;
2412 char secondary_hash;
2413 unsigned int lineno:24;
2421 unsigned int flags:8;
2422 } __attribute__((aligned(8)));
2425 int ddebug_add_module(struct _ddebug *tab, unsigned int n,
2426 const char *modname);
2427 # 79 "include/linux/dynamic_debug.h"
2428 static inline __attribute__((always_inline)) int ddebug_remove_module(char *mod)
2432 # 20 "include/linux/kernel.h" 2
2433 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 1
2434 # 21 "include/linux/kernel.h" 2
2435 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h" 1
2436 # 66 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h"
2437 # 1 "include/asm-generic/bug.h" 1
2438 # 10 "include/asm-generic/bug.h"
2441 unsigned long bug_addr;
2451 unsigned short line;
2453 unsigned short flags;
2455 # 61 "include/asm-generic/bug.h"
2456 extern void warn_slowpath_fmt(const char *file, const int line,
2457 const char *fmt, ...) __attribute__((format(printf, 3, 4)));
2458 extern void warn_slowpath_null(const char *file, const int line);
2459 # 67 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bug.h" 2
2460 # 22 "include/linux/kernel.h" 2
2462 extern const char linux_banner[];
2463 extern const char linux_proc_banner[];
2464 # 62 "include/linux/kernel.h"
2465 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 1
2466 # 1 "include/asm-generic/div64.h" 1
2467 # 35 "include/asm-generic/div64.h"
2468 extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
2469 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 2
2470 # 63 "include/linux/kernel.h" 2
2471 # 109 "include/linux/kernel.h"
2472 extern int console_printk[];
2484 extern int _cond_resched(void);
2491 void __might_sleep(char *file, int line, int preempt_offset);
2492 # 156 "include/linux/kernel.h"
2493 static inline __attribute__((always_inline)) void might_fault(void)
2495 do { __might_sleep("include/linux/kernel.h", 158, 0); _cond_resched(); } while (0);
2499 extern struct atomic_notifier_head panic_notifier_list;
2500 extern long (*panic_blink)(long time);
2501 void panic(const char * fmt, ...)
2502 __attribute__ ((noreturn, format (printf, 1, 2))) __attribute__((__cold__));
2503 extern void oops_enter(void);
2504 extern void oops_exit(void);
2505 extern int oops_may_print(void);
2506 void do_exit(long error_code)
2507 __attribute__((noreturn));
2508 void complete_and_exit(struct completion *, long)
2509 __attribute__((noreturn));
2510 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
2511 extern long simple_strtol(const char *,char **,unsigned int);
2512 extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
2513 extern long long simple_strtoll(const char *,char **,unsigned int);
2514 extern int strict_strtoul(const char *, unsigned int, unsigned long *);
2515 extern int strict_strtol(const char *, unsigned int, long *);
2516 extern int strict_strtoull(const char *, unsigned int, unsigned long long *);
2517 extern int strict_strtoll(const char *, unsigned int, long long *);
2518 extern int sprintf(char * buf, const char * fmt, ...)
2519 __attribute__ ((format (printf, 2, 3)));
2520 extern int vsprintf(char *buf, const char *, va_list)
2521 __attribute__ ((format (printf, 2, 0)));
2522 extern int snprintf(char * buf, size_t size, const char * fmt, ...)
2523 __attribute__ ((format (printf, 3, 4)));
2524 extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
2525 __attribute__ ((format (printf, 3, 0)));
2526 extern int scnprintf(char * buf, size_t size, const char * fmt, ...)
2527 __attribute__ ((format (printf, 3, 4)));
2528 extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
2529 __attribute__ ((format (printf, 3, 0)));
2530 extern char *kasprintf(gfp_t gfp, const char *fmt, ...)
2531 __attribute__ ((format (printf, 2, 3)));
2532 extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args);
2534 extern int sscanf(const char *, const char *, ...)
2535 __attribute__ ((format (scanf, 2, 3)));
2536 extern int vsscanf(const char *, const char *, va_list)
2537 __attribute__ ((format (scanf, 2, 0)));
2539 extern int get_option(char **str, int *pint);
2540 extern char *get_options(const char *str, int nints, int *ints);
2541 extern unsigned long long memparse(const char *ptr, char **retptr);
2543 extern int core_kernel_text(unsigned long addr);
2544 extern int __kernel_text_address(unsigned long addr);
2545 extern int kernel_text_address(unsigned long addr);
2546 extern int func_ptr_is_kernel_text(void *ptr);
2549 extern struct pid *session_of_pgrp(struct pid *pgrp);
2550 # 239 "include/linux/kernel.h"
2551 int vprintk(const char *fmt, va_list args)
2552 __attribute__ ((format (printf, 1, 0)));
2553 int printk(const char * fmt, ...)
2554 __attribute__ ((format (printf, 1, 2))) __attribute__((__cold__));
2556 extern struct ratelimit_state printk_ratelimit_state;
2557 extern int printk_ratelimit(void);
2558 extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
2559 unsigned int interval_msec);
2561 extern int printk_delay_msec;
2562 # 263 "include/linux/kernel.h"
2563 void log_buf_kexec_setup(void);
2564 # 284 "include/linux/kernel.h"
2565 extern int printk_needs_cpu(int cpu);
2566 extern void printk_tick(void);
2568 extern void __attribute__((format(printf, 1, 2)))
2569 early_printk(const char *fmt, ...);
2571 unsigned long int_sqrt(unsigned long);
2573 static inline __attribute__((always_inline)) void console_silent(void)
2575 (console_printk[0]) = 0;
2578 static inline __attribute__((always_inline)) void console_verbose(void)
2580 if ((console_printk[0]))
2581 (console_printk[0]) = 15;
2584 extern void bust_spinlocks(int yes);
2585 extern void wake_up_klogd(void);
2586 extern int oops_in_progress;
2587 extern int panic_timeout;
2588 extern int panic_on_oops;
2589 extern int panic_on_unrecovered_nmi;
2590 extern int panic_on_io_nmi;
2591 extern const char *print_tainted(void);
2592 extern void add_taint(unsigned flag);
2593 extern int test_taint(unsigned flag);
2594 extern unsigned long get_taint(void);
2595 extern int root_mountflags;
2598 extern enum system_states {
2604 SYSTEM_SUSPEND_DISK,
2606 # 338 "include/linux/kernel.h"
2607 extern void dump_stack(void) __attribute__((__cold__));
2611 DUMP_PREFIX_ADDRESS,
2614 extern void hex_dump_to_buffer(const void *buf, size_t len,
2615 int rowsize, int groupsize,
2616 char *linebuf, size_t linebuflen, bool ascii);
2617 extern void print_hex_dump(const char *level, const char *prefix_str,
2618 int prefix_type, int rowsize, int groupsize,
2619 const void *buf, size_t len, bool ascii);
2620 extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
2621 const void *buf, size_t len);
2623 extern const char hex_asc[];
2627 static inline __attribute__((always_inline)) char *pack_hex_byte(char *buf, u8 byte)
2629 *buf++ = hex_asc[((byte) & 0xf0) >> 4];
2630 *buf++ = hex_asc[((byte) & 0x0f)];
2633 # 429 "include/linux/kernel.h"
2634 void tracing_on(void);
2635 void tracing_off(void);
2637 void tracing_off_permanent(void);
2638 int tracing_is_on(void);
2646 extern void tracing_start(void);
2647 extern void tracing_stop(void);
2648 extern void ftrace_off_permanent(void);
2651 ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
2653 static inline __attribute__((always_inline)) void __attribute__ ((format (printf, 1, 2)))
2654 ____trace_printk_check_format(const char *fmt, ...)
2657 # 488 "include/linux/kernel.h"
2659 __trace_bprintk(unsigned long ip, const char *fmt, ...)
2660 __attribute__ ((format (printf, 2, 3)));
2663 __trace_printk(unsigned long ip, const char *fmt, ...)
2664 __attribute__ ((format (printf, 2, 3)));
2665 # 513 "include/linux/kernel.h"
2667 __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap);
2670 __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
2672 extern void ftrace_dump(void);
2673 # 657 "include/linux/kernel.h"
2675 extern int do_sysinfo(struct sysinfo *info);
2676 # 669 "include/linux/kernel.h"
2679 unsigned long loads[3];
2680 unsigned long totalram;
2681 unsigned long freeram;
2682 unsigned long sharedram;
2683 unsigned long bufferram;
2684 unsigned long totalswap;
2685 unsigned long freeswap;
2686 unsigned short procs;
2688 unsigned long totalhigh;
2689 unsigned long freehigh;
2690 unsigned int mem_unit;
2691 char _f[20-2*sizeof(long)-sizeof(int)];
2693 # 5 "include/linux/cache.h" 2
2694 # 8 "include/linux/time.h" 2
2695 # 1 "include/linux/seqlock.h" 1
2696 # 29 "include/linux/seqlock.h"
2697 # 1 "include/linux/spinlock.h" 1
2698 # 50 "include/linux/spinlock.h"
2699 # 1 "include/linux/preempt.h" 1
2700 # 9 "include/linux/preempt.h"
2701 # 1 "include/linux/thread_info.h" 1
2702 # 12 "include/linux/thread_info.h"
2704 struct compat_timespec;
2709 struct restart_block {
2710 long (*fn)(struct restart_block *);
2713 unsigned long arg0, arg1, arg2, arg3;
2727 struct timespec *rmtp;
2735 struct pollfd *ufds;
2738 unsigned long tv_sec;
2739 unsigned long tv_nsec;
2744 extern long do_no_restart_syscall(struct restart_block *parm);
2747 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 1
2748 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
2749 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 1
2750 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h"
2751 # 1 "include/asm-generic/page.h" 1
2752 # 23 "include/asm-generic/page.h"
2753 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/setup.h" 1
2754 # 1 "include/asm-generic/setup.h" 1
2755 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/setup.h" 2
2756 # 24 "include/asm-generic/page.h" 2
2757 # 39 "include/asm-generic/page.h"
2762 unsigned long pmd[16];
2768 unsigned long pgprot;
2770 typedef struct page *pgtable_t;
2771 # 63 "include/asm-generic/page.h"
2772 extern unsigned long memory_start;
2773 extern unsigned long memory_end;
2774 # 96 "include/asm-generic/page.h"
2775 # 1 "include/asm-generic/memory_model.h" 1
2776 # 97 "include/asm-generic/page.h" 2
2777 # 1 "include/asm-generic/getorder.h" 1
2778 # 9 "include/asm-generic/getorder.h"
2779 static inline __attribute__((always_inline)) __attribute__((__const__)) int get_order(unsigned long size)
2783 size = (size - 1) >> (12 - 1);
2791 # 98 "include/asm-generic/page.h" 2
2792 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/page.h" 2
2793 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 2
2794 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/entry.h" 1
2795 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/entry.h"
2796 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/setup.h" 1
2797 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/entry.h" 2
2798 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h" 2
2799 # 31 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
2800 typedef unsigned long mm_segment_t;
2807 struct thread_info {
2808 struct task_struct *task;
2809 struct exec_domain *exec_domain;
2810 unsigned long flags;
2813 mm_segment_t addr_limit;
2814 struct restart_block restart_block;
2816 struct l1_scratch_task_info l1_task_info;
2819 # 72 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/thread_info.h"
2820 __attribute__((__const__))
2821 static inline __attribute__((always_inline)) struct thread_info *current_thread_info(void)
2823 struct thread_info *ti;
2824 __asm__("%0 = sp;" : "=da"(ti) :
2826 return (struct thread_info *)((long)ti & ~((long)8192 -1));
2828 # 57 "include/linux/thread_info.h" 2
2829 # 65 "include/linux/thread_info.h"
2830 static inline __attribute__((always_inline)) void set_ti_thread_flag(struct thread_info *ti, int flag)
2832 set_bit(flag, (unsigned long *)&ti->flags);
2835 static inline __attribute__((always_inline)) void clear_ti_thread_flag(struct thread_info *ti, int flag)
2837 clear_bit(flag, (unsigned long *)&ti->flags);
2840 static inline __attribute__((always_inline)) int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
2842 return test_and_set_bit(flag, (unsigned long *)&ti->flags);
2845 static inline __attribute__((always_inline)) int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
2847 return test_and_clear_bit(flag, (unsigned long *)&ti->flags);
2850 static inline __attribute__((always_inline)) int test_ti_thread_flag(struct thread_info *ti, int flag)
2852 return test_bit(flag, (unsigned long *)&ti->flags);
2854 # 122 "include/linux/thread_info.h"
2855 static inline __attribute__((always_inline)) void set_restore_sigmask(void)
2857 set_ti_thread_flag(current_thread_info(), 5);
2858 set_ti_thread_flag(current_thread_info(), 1);
2860 # 10 "include/linux/preempt.h" 2
2861 # 51 "include/linux/spinlock.h" 2
2866 # 1 "include/linux/stringify.h" 1
2867 # 56 "include/linux/spinlock.h" 2
2868 # 1 "include/linux/bottom_half.h" 1
2872 extern void local_bh_disable(void);
2873 extern void _local_bh_enable(void);
2874 extern void local_bh_enable(void);
2875 extern void local_bh_enable_ip(unsigned long ip);
2876 # 57 "include/linux/spinlock.h" 2
2877 # 80 "include/linux/spinlock.h"
2878 # 1 "include/linux/spinlock_types.h" 1
2879 # 15 "include/linux/spinlock_types.h"
2880 # 1 "include/linux/spinlock_types_up.h" 1
2881 # 17 "include/linux/spinlock_types_up.h"
2883 volatile unsigned int slock;
2885 # 31 "include/linux/spinlock_types_up.h"
2889 # 16 "include/linux/spinlock_types.h" 2
2892 # 1 "include/linux/lockdep.h" 1
2893 # 12 "include/linux/lockdep.h"
2901 # 1 "include/linux/debug_locks.h" 1
2906 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h" 1
2907 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h"
2908 # 1 "include/asm-generic/atomic.h" 1
2909 # 58 "include/asm-generic/atomic.h"
2910 static inline __attribute__((always_inline)) int atomic_add_return(int i, atomic_t *v)
2912 unsigned long flags;
2915 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
2919 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
2923 # 80 "include/asm-generic/atomic.h"
2924 static inline __attribute__((always_inline)) int atomic_sub_return(int i, atomic_t *v)
2926 unsigned long flags;
2929 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
2933 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
2938 static inline __attribute__((always_inline)) int atomic_add_negative(int i, atomic_t *v)
2940 return atomic_add_return(i, v) < 0;
2943 static inline __attribute__((always_inline)) void atomic_add(int i, atomic_t *v)
2945 atomic_add_return(i, v);
2948 static inline __attribute__((always_inline)) void atomic_sub(int i, atomic_t *v)
2950 atomic_sub_return(i, v);
2953 static inline __attribute__((always_inline)) void atomic_inc(atomic_t *v)
2955 atomic_add_return(1, v);
2958 static inline __attribute__((always_inline)) void atomic_dec(atomic_t *v)
2960 atomic_sub_return(1, v);
2962 # 137 "include/asm-generic/atomic.h"
2963 static inline __attribute__((always_inline)) void atomic_clear_mask(unsigned long mask, unsigned long *addr)
2965 unsigned long flags;
2968 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
2970 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
2972 # 162 "include/asm-generic/atomic.h"
2973 # 1 "include/asm-generic/atomic-long.h" 1
2974 # 11 "include/asm-generic/atomic-long.h"
2975 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
2976 # 12 "include/asm-generic/atomic-long.h" 2
2977 # 141 "include/asm-generic/atomic-long.h"
2978 typedef atomic_t atomic_long_t;
2981 static inline __attribute__((always_inline)) long atomic_long_read(atomic_long_t *l)
2983 atomic_t *v = (atomic_t *)l;
2985 return (long)((v)->counter);
2988 static inline __attribute__((always_inline)) void atomic_long_set(atomic_long_t *l, long i)
2990 atomic_t *v = (atomic_t *)l;
2992 (((v)->counter) = (i));
2995 static inline __attribute__((always_inline)) void atomic_long_inc(atomic_long_t *l)
2997 atomic_t *v = (atomic_t *)l;
3002 static inline __attribute__((always_inline)) void atomic_long_dec(atomic_long_t *l)
3004 atomic_t *v = (atomic_t *)l;
3009 static inline __attribute__((always_inline)) void atomic_long_add(long i, atomic_long_t *l)
3011 atomic_t *v = (atomic_t *)l;
3016 static inline __attribute__((always_inline)) void atomic_long_sub(long i, atomic_long_t *l)
3018 atomic_t *v = (atomic_t *)l;
3023 static inline __attribute__((always_inline)) int atomic_long_sub_and_test(long i, atomic_long_t *l)
3025 atomic_t *v = (atomic_t *)l;
3027 return (atomic_sub_return((i), (v)) == 0);
3030 static inline __attribute__((always_inline)) int atomic_long_dec_and_test(atomic_long_t *l)
3032 atomic_t *v = (atomic_t *)l;
3034 return (atomic_sub_return(1, (v)) == 0);
3037 static inline __attribute__((always_inline)) int atomic_long_inc_and_test(atomic_long_t *l)
3039 atomic_t *v = (atomic_t *)l;
3041 return (atomic_add_return(1, (v)) == 0);
3044 static inline __attribute__((always_inline)) int atomic_long_add_negative(long i, atomic_long_t *l)
3046 atomic_t *v = (atomic_t *)l;
3048 return atomic_add_negative(i, v);
3051 static inline __attribute__((always_inline)) long atomic_long_add_return(long i, atomic_long_t *l)
3053 atomic_t *v = (atomic_t *)l;
3055 return (long)atomic_add_return(i, v);
3058 static inline __attribute__((always_inline)) long atomic_long_sub_return(long i, atomic_long_t *l)
3060 atomic_t *v = (atomic_t *)l;
3062 return (long)atomic_sub_return(i, v);
3065 static inline __attribute__((always_inline)) long atomic_long_inc_return(atomic_long_t *l)
3067 atomic_t *v = (atomic_t *)l;
3069 return (long)atomic_add_return(1, (v));
3072 static inline __attribute__((always_inline)) long atomic_long_dec_return(atomic_long_t *l)
3074 atomic_t *v = (atomic_t *)l;
3076 return (long)atomic_sub_return(1, (v));
3079 static inline __attribute__((always_inline)) long atomic_long_add_unless(atomic_long_t *l, long a, long u)
3081 atomic_t *v = (atomic_t *)l;
3083 return (long)({ int c, old; c = ((v)->counter); while (c != (u) && (old = (((__typeof__(*((&(((v))->counter)))))__cmpxchg_local_generic(((&(((v))->counter))), (unsigned long)(((c))), (unsigned long)(((c + (a)))), sizeof(*((&(((v))->counter)))))))) != c) c = old; c != (u); });
3085 # 163 "include/asm-generic/atomic.h" 2
3086 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/atomic.h" 2
3087 # 6 "include/linux/debug_locks.h" 2
3092 extern int debug_locks;
3093 extern int debug_locks_silent;
3096 static inline __attribute__((always_inline)) int __debug_locks_off(void)
3098 return ((__typeof__(*(&debug_locks)))__xchg((unsigned long)(0), (&debug_locks), sizeof(*(&debug_locks))));
3104 extern int debug_locks_off(void);
3105 # 43 "include/linux/debug_locks.h"
3106 extern void locking_selftest(void);
3114 extern void debug_show_all_locks(void);
3115 extern void __debug_show_held_locks(struct task_struct *task);
3116 extern void debug_show_held_locks(struct task_struct *task);
3117 extern void debug_check_no_locks_freed(const void *from, unsigned long len);
3118 extern void debug_check_no_locks_held(struct task_struct *task);
3119 # 20 "include/linux/lockdep.h" 2
3120 # 1 "include/linux/stacktrace.h" 1
3129 struct stack_trace {
3130 unsigned int nr_entries, max_entries;
3131 unsigned long *entries;
3135 extern void save_stack_trace(struct stack_trace *trace);
3136 extern void save_stack_trace_bp(struct stack_trace *trace, unsigned long bp);
3137 extern void save_stack_trace_tsk(struct task_struct *tsk,
3138 struct stack_trace *trace);
3140 extern void print_stack_trace(struct stack_trace *trace, int spaces);
3141 # 21 "include/linux/lockdep.h" 2
3142 # 35 "include/linux/lockdep.h"
3143 struct lockdep_subclass_key {
3145 } __attribute__ ((__packed__));
3147 struct lock_class_key {
3148 struct lockdep_subclass_key subkeys[8UL];
3160 struct list_head hash_entry;
3165 struct list_head lock_entry;
3167 struct lockdep_subclass_key *key;
3168 unsigned int subclass;
3169 unsigned int dep_gen_id;
3174 unsigned long usage_mask;
3175 struct stack_trace usage_traces[(1+3*4)];
3182 struct list_head locks_after, locks_before;
3188 unsigned int version;
3203 # 133 "include/linux/lockdep.h"
3204 struct lockdep_map {
3205 struct lock_class_key *key;
3206 struct lock_class *class_cache;
3219 struct list_head entry;
3220 struct lock_class *class;
3221 struct stack_trace trace;
3228 struct lock_list *parent;
3238 struct list_head entry;
3241 # 179 "include/linux/lockdep.h"
3243 # 194 "include/linux/lockdep.h"
3245 unsigned long acquire_ip;
3246 struct lockdep_map *instance;
3247 struct lockdep_map *nest_lock;
3252 unsigned int class_idx:13;
3253 # 216 "include/linux/lockdep.h"
3254 unsigned int irq_context:2;
3255 unsigned int trylock:1;
3257 unsigned int read:2;
3258 unsigned int check:2;
3259 unsigned int hardirqs_off:1;
3260 unsigned int references:11;
3266 extern void lockdep_init(void);
3267 extern void lockdep_info(void);
3268 extern void lockdep_reset(void);
3269 extern void lockdep_reset_lock(struct lockdep_map *lock);
3270 extern void lockdep_free_key_range(void *start, unsigned long size);
3271 extern void lockdep_sys_exit(void);
3273 extern void lockdep_off(void);
3274 extern void lockdep_on(void);
3282 extern void lockdep_init_map(struct lockdep_map *lock, const char *name,
3283 struct lock_class_key *key, int subclass);
3284 # 274 "include/linux/lockdep.h"
3285 static inline __attribute__((always_inline)) int lockdep_match_key(struct lockdep_map *lock,
3286 struct lock_class_key *key)
3288 return lock->key == key;
3290 # 295 "include/linux/lockdep.h"
3291 extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
3292 int trylock, int read, int check,
3293 struct lockdep_map *nest_lock, unsigned long ip);
3295 extern void lock_release(struct lockdep_map *lock, int nested,
3300 extern int lock_is_held(struct lockdep_map *lock);
3302 extern void lock_set_class(struct lockdep_map *lock, const char *name,
3303 struct lock_class_key *key, unsigned int subclass,
3306 static inline __attribute__((always_inline)) void lock_set_subclass(struct lockdep_map *lock,
3307 unsigned int subclass, unsigned long ip)
3309 lock_set_class(lock, lock->name, lock->key, subclass, ip);
3312 extern void lockdep_set_current_reclaim_state(gfp_t gfp_mask);
3313 extern void lockdep_clear_current_reclaim_state(void);
3314 extern void lockdep_trace_alloc(gfp_t mask);
3315 # 416 "include/linux/lockdep.h"
3316 extern void early_init_irq_lock_class(void);
3317 # 428 "include/linux/lockdep.h"
3318 static inline __attribute__((always_inline)) void early_boot_irqs_off(void)
3321 static inline __attribute__((always_inline)) void early_boot_irqs_on(void)
3324 static inline __attribute__((always_inline)) void print_irqtrace_events(struct task_struct *curr)
3327 # 19 "include/linux/spinlock_types.h" 2
3330 raw_spinlock_t raw_lock;
3335 unsigned int magic, owner_cpu;
3339 struct lockdep_map dep_map;
3346 raw_rwlock_t raw_lock;
3351 unsigned int magic, owner_cpu;
3355 struct lockdep_map dep_map;
3358 # 81 "include/linux/spinlock.h" 2
3360 extern int __attribute__((section(".spinlock.text"))) generic__raw_read_trylock(raw_rwlock_t *lock);
3368 # 1 "include/linux/spinlock_up.h" 1
3369 # 23 "include/linux/spinlock_up.h"
3370 static inline __attribute__((always_inline)) void __raw_spin_lock(raw_spinlock_t *lock)
3375 static inline __attribute__((always_inline)) void
3376 __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
3378 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
3382 static inline __attribute__((always_inline)) int __raw_spin_trylock(raw_spinlock_t *lock)
3384 char oldval = lock->slock;
3391 static inline __attribute__((always_inline)) void __raw_spin_unlock(raw_spinlock_t *lock)
3395 # 91 "include/linux/spinlock.h" 2
3399 extern void __spin_lock_init(spinlock_t *lock, const char *name,
3400 struct lock_class_key *key);
3401 # 109 "include/linux/spinlock.h"
3402 extern void __rwlock_init(rwlock_t *lock, const char *name,
3403 struct lock_class_key *key);
3404 # 137 "include/linux/spinlock.h"
3405 static inline __attribute__((always_inline)) void smp_mb__after_lock(void) { __asm__ __volatile__("": : :"memory"); }
3406 # 147 "include/linux/spinlock.h"
3407 extern void _raw_spin_lock(spinlock_t *lock);
3409 extern int _raw_spin_trylock(spinlock_t *lock);
3410 extern void _raw_spin_unlock(spinlock_t *lock);
3411 extern void _raw_read_lock(rwlock_t *lock);
3413 extern int _raw_read_trylock(rwlock_t *lock);
3414 extern void _raw_read_unlock(rwlock_t *lock);
3415 extern void _raw_write_lock(rwlock_t *lock);
3417 extern int _raw_write_trylock(rwlock_t *lock);
3418 extern void _raw_write_unlock(rwlock_t *lock);
3419 # 330 "include/linux/spinlock.h"
3420 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
3421 # 344 "include/linux/spinlock.h"
3422 # 1 "include/linux/spinlock_api_smp.h" 1
3423 # 18 "include/linux/spinlock_api_smp.h"
3424 int in_lock_functions(unsigned long addr);
3428 void __attribute__((section(".spinlock.text"))) _spin_lock(spinlock_t *lock) ;
3429 void __attribute__((section(".spinlock.text"))) _spin_lock_nested(spinlock_t *lock, int subclass)
3431 void __attribute__((section(".spinlock.text"))) _spin_lock_nest_lock(spinlock_t *lock, struct lockdep_map *map)
3433 void __attribute__((section(".spinlock.text"))) _read_lock(rwlock_t *lock) ;
3434 void __attribute__((section(".spinlock.text"))) _write_lock(rwlock_t *lock) ;
3435 void __attribute__((section(".spinlock.text"))) _spin_lock_bh(spinlock_t *lock) ;
3436 void __attribute__((section(".spinlock.text"))) _read_lock_bh(rwlock_t *lock) ;
3437 void __attribute__((section(".spinlock.text"))) _write_lock_bh(rwlock_t *lock) ;
3438 void __attribute__((section(".spinlock.text"))) _spin_lock_irq(spinlock_t *lock) ;
3439 void __attribute__((section(".spinlock.text"))) _read_lock_irq(rwlock_t *lock) ;
3440 void __attribute__((section(".spinlock.text"))) _write_lock_irq(rwlock_t *lock) ;
3441 unsigned long __attribute__((section(".spinlock.text"))) _spin_lock_irqsave(spinlock_t *lock)
3443 unsigned long __attribute__((section(".spinlock.text"))) _spin_lock_irqsave_nested(spinlock_t *lock, int subclass)
3445 unsigned long __attribute__((section(".spinlock.text"))) _read_lock_irqsave(rwlock_t *lock)
3447 unsigned long __attribute__((section(".spinlock.text"))) _write_lock_irqsave(rwlock_t *lock)
3449 int __attribute__((section(".spinlock.text"))) _spin_trylock(spinlock_t *lock);
3450 int __attribute__((section(".spinlock.text"))) _read_trylock(rwlock_t *lock);
3451 int __attribute__((section(".spinlock.text"))) _write_trylock(rwlock_t *lock);
3452 int __attribute__((section(".spinlock.text"))) _spin_trylock_bh(spinlock_t *lock);
3453 void __attribute__((section(".spinlock.text"))) _spin_unlock(spinlock_t *lock) ;
3454 void __attribute__((section(".spinlock.text"))) _read_unlock(rwlock_t *lock) ;
3455 void __attribute__((section(".spinlock.text"))) _write_unlock(rwlock_t *lock) ;
3456 void __attribute__((section(".spinlock.text"))) _spin_unlock_bh(spinlock_t *lock) ;
3457 void __attribute__((section(".spinlock.text"))) _read_unlock_bh(rwlock_t *lock) ;
3458 void __attribute__((section(".spinlock.text"))) _write_unlock_bh(rwlock_t *lock) ;
3459 void __attribute__((section(".spinlock.text"))) _spin_unlock_irq(spinlock_t *lock) ;
3460 void __attribute__((section(".spinlock.text"))) _read_unlock_irq(rwlock_t *lock) ;
3461 void __attribute__((section(".spinlock.text"))) _write_unlock_irq(rwlock_t *lock) ;
3462 void __attribute__((section(".spinlock.text"))) _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
3464 void __attribute__((section(".spinlock.text"))) _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
3466 void __attribute__((section(".spinlock.text"))) _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
3468 # 194 "include/linux/spinlock_api_smp.h"
3469 static inline __attribute__((always_inline)) int __spin_trylock(spinlock_t *lock)
3472 if (_raw_spin_trylock(lock)) {
3473 lock_acquire(&lock->dep_map, 0, 1, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3480 static inline __attribute__((always_inline)) int __read_trylock(rwlock_t *lock)
3483 if (_raw_read_trylock(lock)) {
3484 lock_acquire(&lock->dep_map, 0, 1, 2, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3491 static inline __attribute__((always_inline)) int __write_trylock(rwlock_t *lock)
3494 if (_raw_write_trylock(lock)) {
3495 lock_acquire(&lock->dep_map, 0, 1, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3501 # 234 "include/linux/spinlock_api_smp.h"
3502 static inline __attribute__((always_inline)) void __read_lock(rwlock_t *lock)
3505 lock_acquire(&lock->dep_map, 0, 0, 2, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3506 _raw_read_lock(lock);
3509 static inline __attribute__((always_inline)) unsigned long __spin_lock_irqsave(spinlock_t *lock)
3511 unsigned long flags;
3513 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
3515 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3522 _raw_spin_lock(lock);
3529 static inline __attribute__((always_inline)) void __spin_lock_irq(spinlock_t *lock)
3531 do { raw_local_irq_disable(); do { } while (0); } while (0);
3533 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3534 _raw_spin_lock(lock);
3537 static inline __attribute__((always_inline)) void __spin_lock_bh(spinlock_t *lock)
3541 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3542 _raw_spin_lock(lock);
3545 static inline __attribute__((always_inline)) unsigned long __read_lock_irqsave(rwlock_t *lock)
3547 unsigned long flags;
3549 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
3551 lock_acquire(&lock->dep_map, 0, 0, 2, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3552 (_raw_read_lock)((lock));
3557 static inline __attribute__((always_inline)) void __read_lock_irq(rwlock_t *lock)
3559 do { raw_local_irq_disable(); do { } while (0); } while (0);
3561 lock_acquire(&lock->dep_map, 0, 0, 2, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3562 _raw_read_lock(lock);
3565 static inline __attribute__((always_inline)) void __read_lock_bh(rwlock_t *lock)
3569 lock_acquire(&lock->dep_map, 0, 0, 2, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3570 _raw_read_lock(lock);
3573 static inline __attribute__((always_inline)) unsigned long __write_lock_irqsave(rwlock_t *lock)
3575 unsigned long flags;
3577 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
3579 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3580 (_raw_write_lock)((lock));
3585 static inline __attribute__((always_inline)) void __write_lock_irq(rwlock_t *lock)
3587 do { raw_local_irq_disable(); do { } while (0); } while (0);
3589 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3590 _raw_write_lock(lock);
3593 static inline __attribute__((always_inline)) void __write_lock_bh(rwlock_t *lock)
3597 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3598 _raw_write_lock(lock);
3601 static inline __attribute__((always_inline)) void __spin_lock(spinlock_t *lock)
3604 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3605 _raw_spin_lock(lock);
3608 static inline __attribute__((always_inline)) void __write_lock(rwlock_t *lock)
3611 lock_acquire(&lock->dep_map, 0, 0, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3612 _raw_write_lock(lock);
3617 static inline __attribute__((always_inline)) void __spin_unlock(spinlock_t *lock)
3619 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3620 _raw_spin_unlock(lock);
3624 static inline __attribute__((always_inline)) void __write_unlock(rwlock_t *lock)
3626 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3627 _raw_write_unlock(lock);
3631 static inline __attribute__((always_inline)) void __read_unlock(rwlock_t *lock)
3633 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3634 _raw_read_unlock(lock);
3638 static inline __attribute__((always_inline)) void __spin_unlock_irqrestore(spinlock_t *lock,
3639 unsigned long flags)
3641 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3642 _raw_spin_unlock(lock);
3643 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
3647 static inline __attribute__((always_inline)) void __spin_unlock_irq(spinlock_t *lock)
3649 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3650 _raw_spin_unlock(lock);
3651 do { do { } while (0); raw_local_irq_enable(); } while (0);
3655 static inline __attribute__((always_inline)) void __spin_unlock_bh(spinlock_t *lock)
3657 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3658 _raw_spin_unlock(lock);
3660 local_bh_enable_ip((unsigned long)__builtin_return_address(0));
3663 static inline __attribute__((always_inline)) void __read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
3665 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3666 _raw_read_unlock(lock);
3667 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
3671 static inline __attribute__((always_inline)) void __read_unlock_irq(rwlock_t *lock)
3673 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3674 _raw_read_unlock(lock);
3675 do { do { } while (0); raw_local_irq_enable(); } while (0);
3679 static inline __attribute__((always_inline)) void __read_unlock_bh(rwlock_t *lock)
3681 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3682 _raw_read_unlock(lock);
3684 local_bh_enable_ip((unsigned long)__builtin_return_address(0));
3687 static inline __attribute__((always_inline)) void __write_unlock_irqrestore(rwlock_t *lock,
3688 unsigned long flags)
3690 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3691 _raw_write_unlock(lock);
3692 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
3696 static inline __attribute__((always_inline)) void __write_unlock_irq(rwlock_t *lock)
3698 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3699 _raw_write_unlock(lock);
3700 do { do { } while (0); raw_local_irq_enable(); } while (0);
3704 static inline __attribute__((always_inline)) void __write_unlock_bh(rwlock_t *lock)
3706 lock_release(&lock->dep_map, 1, (unsigned long)__builtin_return_address(0));
3707 _raw_write_unlock(lock);
3709 local_bh_enable_ip((unsigned long)__builtin_return_address(0));
3712 static inline __attribute__((always_inline)) int __spin_trylock_bh(spinlock_t *lock)
3716 if (_raw_spin_trylock(lock)) {
3717 lock_acquire(&lock->dep_map, 0, 1, 0, 1, ((void *)0), (unsigned long)__builtin_return_address(0));
3721 local_bh_enable_ip((unsigned long)__builtin_return_address(0));
3724 # 345 "include/linux/spinlock.h" 2
3725 # 30 "include/linux/seqlock.h" 2
3732 # 60 "include/linux/seqlock.h"
3733 static inline __attribute__((always_inline)) void write_seqlock(seqlock_t *sl)
3735 _spin_lock(&sl->lock);
3737 __asm__ __volatile__("": : :"memory");
3740 static inline __attribute__((always_inline)) void write_sequnlock(seqlock_t *sl)
3742 __asm__ __volatile__("": : :"memory");
3744 _spin_unlock(&sl->lock);
3747 static inline __attribute__((always_inline)) int write_tryseqlock(seqlock_t *sl)
3749 int ret = (_spin_trylock(&sl->lock));
3753 __asm__ __volatile__("": : :"memory");
3759 static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned read_seqbegin(const seqlock_t *sl)
3765 __asm__ __volatile__("": : :"memory");
3766 if (__builtin_expect(!!(ret & 1), 0)) {
3767 __asm__ __volatile__("": : :"memory");
3779 static inline __attribute__((always_inline)) __attribute__((always_inline)) int read_seqretry(const seqlock_t *sl, unsigned start)
3781 __asm__ __volatile__("": : :"memory");
3783 return (sl->sequence != start);
3785 # 121 "include/linux/seqlock.h"
3786 typedef struct seqcount {
3794 static inline __attribute__((always_inline)) unsigned read_seqcount_begin(const seqcount_t *s)
3800 __asm__ __volatile__("": : :"memory");
3801 if (__builtin_expect(!!(ret & 1), 0)) {
3802 __asm__ __volatile__("": : :"memory");
3811 static inline __attribute__((always_inline)) int read_seqcount_retry(const seqcount_t *s, unsigned start)
3813 __asm__ __volatile__("": : :"memory");
3815 return s->sequence != start;
3823 static inline __attribute__((always_inline)) void write_seqcount_begin(seqcount_t *s)
3826 __asm__ __volatile__("": : :"memory");
3829 static inline __attribute__((always_inline)) void write_seqcount_end(seqcount_t *s)
3831 __asm__ __volatile__("": : :"memory");
3834 # 9 "include/linux/time.h" 2
3835 # 1 "include/linux/math64.h" 1
3840 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/div64.h" 1
3841 # 6 "include/linux/math64.h" 2
3842 # 41 "include/linux/math64.h"
3843 static inline __attribute__((always_inline)) u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
3845 *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; });
3851 extern s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder);
3855 extern u64 div64_u64(u64 dividend, u64 divisor);
3856 # 66 "include/linux/math64.h"
3857 static inline __attribute__((always_inline)) u64 div_u64(u64 dividend, u32 divisor)
3860 return div_u64_rem(dividend, divisor, &remainder);
3868 static inline __attribute__((always_inline)) s64 div_s64(s64 dividend, s32 divisor)
3871 return div_s64_rem(dividend, divisor, &remainder);
3875 u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder);
3877 static inline __attribute__((always_inline)) __attribute__((always_inline)) u32
3878 __iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
3882 while (dividend >= divisor) {
3885 asm("" : "+rm"(dividend));
3887 dividend -= divisor;
3891 *remainder = dividend;
3895 # 10 "include/linux/time.h" 2
3901 __kernel_time_t tv_sec;
3907 __kernel_time_t tv_sec;
3908 __kernel_suseconds_t tv_usec;
3918 extern struct timezone sys_tz;
3919 # 45 "include/linux/time.h"
3920 static inline __attribute__((always_inline)) int timespec_equal(const struct timespec *a,
3921 const struct timespec *b)
3923 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
3931 static inline __attribute__((always_inline)) int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
3933 if (lhs->tv_sec < rhs->tv_sec)
3935 if (lhs->tv_sec > rhs->tv_sec)
3937 return lhs->tv_nsec - rhs->tv_nsec;
3940 static inline __attribute__((always_inline)) int timeval_compare(const struct timeval *lhs, const struct timeval *rhs)
3942 if (lhs->tv_sec < rhs->tv_sec)
3944 if (lhs->tv_sec > rhs->tv_sec)
3946 return lhs->tv_usec - rhs->tv_usec;
3949 extern unsigned long mktime(const unsigned int year, const unsigned int mon,
3950 const unsigned int day, const unsigned int hour,
3951 const unsigned int min, const unsigned int sec);
3953 extern void set_normalized_timespec(struct timespec *ts, time_t sec, s64 nsec);
3954 extern struct timespec timespec_add_safe(const struct timespec lhs,
3955 const struct timespec rhs);
3960 static inline __attribute__((always_inline)) struct timespec timespec_sub(struct timespec lhs,
3961 struct timespec rhs)
3963 struct timespec ts_delta;
3964 set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec,
3965 lhs.tv_nsec - rhs.tv_nsec);
3975 extern struct timespec xtime;
3976 extern struct timespec wall_to_monotonic;
3977 extern seqlock_t xtime_lock;
3979 extern void read_persistent_clock(struct timespec *ts);
3980 extern void read_boot_clock(struct timespec *ts);
3981 extern int update_persistent_clock(struct timespec now);
3982 extern int no_sync_cmos_clock ;
3983 void timekeeping_init(void);
3984 extern int timekeeping_suspended;
3986 unsigned long get_seconds(void);
3987 struct timespec current_kernel_time(void);
3988 struct timespec __current_kernel_time(void);
3989 struct timespec get_monotonic_coarse(void);
3990 # 131 "include/linux/time.h"
3991 static inline __attribute__((always_inline)) u32 arch_gettimeoffset(void) { return 0; }
3994 extern void do_gettimeofday(struct timeval *tv);
3995 extern int do_settimeofday(struct timespec *tv);
3996 extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz);
3998 extern long do_utimes(int dfd, char *filename, struct timespec *times, int flags);
4000 extern int do_setitimer(int which, struct itimerval *value,
4001 struct itimerval *ovalue);
4002 extern unsigned int alarm_setitimer(unsigned int seconds);
4003 extern int do_getitimer(int which, struct itimerval *value);
4004 extern void getnstimeofday(struct timespec *tv);
4005 extern void getrawmonotonic(struct timespec *ts);
4006 extern void getboottime(struct timespec *ts);
4007 extern void monotonic_to_bootbased(struct timespec *ts);
4009 extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
4010 extern int timekeeping_valid_for_hres(void);
4011 extern void update_wall_time(void);
4012 extern void update_xtime_cache(u64 nsec);
4013 extern void timekeeping_leap_insert(int leapsecond);
4016 extern void do_sys_times(struct tms *);
4044 void time_to_tm(time_t totalsecs, int offset, struct tm *result);
4045 # 193 "include/linux/time.h"
4046 static inline __attribute__((always_inline)) s64 timespec_to_ns(const struct timespec *ts)
4048 return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec;
4050 # 205 "include/linux/time.h"
4051 static inline __attribute__((always_inline)) s64 timeval_to_ns(const struct timeval *tv)
4053 return ((s64) tv->tv_sec * 1000000000L) +
4054 tv->tv_usec * 1000L;
4063 extern struct timespec ns_to_timespec(const s64 nsec);
4071 extern struct timeval ns_to_timeval(const s64 nsec);
4072 # 235 "include/linux/time.h"
4073 static inline __attribute__((always_inline)) __attribute__((always_inline)) void timespec_add_ns(struct timespec *a, u64 ns)
4075 a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, 1000000000L, &ns);
4078 # 258 "include/linux/time.h"
4080 struct timespec it_interval;
4081 struct timespec it_value;
4085 struct timeval it_interval;
4086 struct timeval it_value;
4088 # 61 "include/linux/stat.h" 2
4099 struct timespec atime;
4100 struct timespec mtime;
4101 struct timespec ctime;
4102 unsigned long blksize;
4103 unsigned long long blocks;
4105 # 11 "include/linux/module.h" 2
4108 # 1 "include/linux/kmod.h" 1
4109 # 22 "include/linux/kmod.h"
4110 # 1 "include/linux/gfp.h" 1
4114 # 1 "include/linux/mmzone.h" 1
4115 # 9 "include/linux/mmzone.h"
4116 # 1 "include/linux/wait.h" 1
4117 # 26 "include/linux/wait.h"
4118 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/current.h" 1
4119 # 1 "include/asm-generic/current.h" 1
4120 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/current.h" 2
4121 # 27 "include/linux/wait.h" 2
4123 typedef struct __wait_queue wait_queue_t;
4124 typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
4125 int default_wake_function(wait_queue_t *wait, unsigned mode, int flags, void *key);
4127 struct __wait_queue {
4131 wait_queue_func_t func;
4132 struct list_head task_list;
4135 struct wait_bit_key {
4140 struct wait_bit_queue {
4141 struct wait_bit_key key;
4145 struct __wait_queue_head {
4147 struct list_head task_list;
4149 typedef struct __wait_queue_head wait_queue_head_t;
4152 # 80 "include/linux/wait.h"
4153 extern void __init_waitqueue_head(wait_queue_head_t *q, struct lock_class_key *);
4154 # 98 "include/linux/wait.h"
4155 static inline __attribute__((always_inline)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
4159 q->func = default_wake_function;
4162 static inline __attribute__((always_inline)) void init_waitqueue_func_entry(wait_queue_t *q,
4163 wait_queue_func_t func)
4166 q->private = ((void *)0);
4170 static inline __attribute__((always_inline)) int waitqueue_active(wait_queue_head_t *q)
4172 return !list_empty(&q->task_list);
4175 extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
4176 extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait);
4177 extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
4179 static inline __attribute__((always_inline)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
4181 list_add(&new->task_list, &head->task_list);
4187 static inline __attribute__((always_inline)) void __add_wait_queue_tail(wait_queue_head_t *head,
4190 list_add_tail(&new->task_list, &head->task_list);
4193 static inline __attribute__((always_inline)) void __remove_wait_queue(wait_queue_head_t *head,
4196 list_del(&old->task_list);
4199 void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key);
4200 void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key);
4201 void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode, int nr,
4203 void __wake_up_locked(wait_queue_head_t *q, unsigned int mode);
4204 void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr);
4205 void __wake_up_bit(wait_queue_head_t *, void *, int);
4206 int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
4207 int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
4208 void wake_up_bit(void *, int);
4209 int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned);
4210 int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned);
4211 wait_queue_head_t *bit_waitqueue(void *, int);
4212 # 409 "include/linux/wait.h"
4213 static inline __attribute__((always_inline)) void add_wait_queue_exclusive_locked(wait_queue_head_t *q,
4214 wait_queue_t * wait)
4216 wait->flags |= 0x01;
4217 __add_wait_queue_tail(q, wait);
4223 static inline __attribute__((always_inline)) void remove_wait_queue_locked(wait_queue_head_t *q,
4224 wait_queue_t * wait)
4226 __remove_wait_queue(q, wait);
4234 extern void sleep_on(wait_queue_head_t *q);
4235 extern long sleep_on_timeout(wait_queue_head_t *q,
4236 signed long timeout);
4237 extern void interruptible_sleep_on(wait_queue_head_t *q);
4238 extern long interruptible_sleep_on_timeout(wait_queue_head_t *q,
4239 signed long timeout);
4244 void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state);
4245 void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state);
4246 void finish_wait(wait_queue_head_t *q, wait_queue_t *wait);
4247 void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait,
4248 unsigned int mode, void *key);
4249 int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
4250 int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
4251 # 489 "include/linux/wait.h"
4252 static inline __attribute__((always_inline)) int wait_on_bit(void *word, int bit,
4253 int (*action)(void *), unsigned mode)
4255 if (!test_bit(bit, word))
4257 return out_of_line_wait_on_bit(word, bit, action, mode);
4259 # 513 "include/linux/wait.h"
4260 static inline __attribute__((always_inline)) int wait_on_bit_lock(void *word, int bit,
4261 int (*action)(void *), unsigned mode)
4263 if (!test_and_set_bit(bit, word))
4265 return out_of_line_wait_on_bit_lock(word, bit, action, mode);
4267 # 10 "include/linux/mmzone.h" 2
4270 # 1 "include/linux/threads.h" 1
4271 # 13 "include/linux/mmzone.h" 2
4272 # 1 "include/linux/numa.h" 1
4273 # 14 "include/linux/mmzone.h" 2
4274 # 1 "include/linux/init.h" 1
4275 # 131 "include/linux/init.h"
4276 typedef int (*initcall_t)(void);
4277 typedef void (*exitcall_t)(void);
4279 extern initcall_t __con_initcall_start[], __con_initcall_end[];
4280 extern initcall_t __security_initcall_start[], __security_initcall_end[];
4283 typedef void (*ctor_fn_t)(void);
4286 extern int do_one_initcall(initcall_t fn);
4287 extern char __attribute__ ((__section__(".init.data"))) boot_command_line[];
4288 extern char *saved_command_line;
4289 extern unsigned int reset_devices;
4292 void setup_arch(char **);
4293 void prepare_namespace(void);
4295 extern void (*late_time_init)(void);
4296 # 15 "include/linux/mmzone.h" 2
4298 # 1 "include/linux/nodemask.h" 1
4299 # 95 "include/linux/nodemask.h"
4300 # 1 "include/linux/bitmap.h" 1
4308 # 1 "include/linux/string.h" 1
4309 # 15 "include/linux/string.h"
4310 extern char *strndup_user(const char *, long);
4311 extern void *memdup_user(const void *, size_t);
4316 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/string.h" 1
4317 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/string.h"
4318 extern inline __attribute__((always_inline)) char *strcpy(char *dest, const char *src)
4323 __asm__ __volatile__ (
4325 "%2 = B [%1++] (Z);"
4328 "if cc jump 1b (bp);"
4329 : "+&a" (dest), "+&a" (src), "=&d" (temp)
4337 extern inline __attribute__((always_inline)) char *strncpy(char *dest, const char *src, size_t n)
4345 __asm__ __volatile__ (
4347 "%3 = B [%1++] (Z);"
4353 "if ! cc jump 1b (bp);"
4365 : "+&a" (dest), "+&a" (src), "+&da" (n), "=&d" (temp)
4373 extern inline __attribute__((always_inline)) int strcmp(const char *cs, const char *ct)
4380 __asm__ __volatile__ (
4387 "if cc jump 1b (bp);"
4392 : "+&a" (cs), "+&a" (ct), "=&d" (__res1), "=&d" (__res2)
4400 extern inline __attribute__((always_inline)) int strncmp(const char *cs, const char *ct, size_t count)
4410 __asm__ __volatile__ (
4427 : "+&a" (cs), "+&a" (ct), "+&da" (count), "=&d" (__res1), "=&d" (__res2)
4435 extern void *memset(void *s, int c, size_t count);
4437 extern void *memcpy(void *d, const void *s, size_t count);
4439 extern int memcmp(const void *, const void *, __kernel_size_t);
4441 extern void *memchr(const void *s, int c, size_t n);
4443 extern void *memmove(void *dest, const void *src, size_t count);
4444 # 22 "include/linux/string.h" 2
4445 # 30 "include/linux/string.h"
4446 size_t strlcpy(char *, const char *, size_t);
4449 extern char * strcat(char *, const char *);
4452 extern char * strncat(char *, const char *, __kernel_size_t);
4455 extern size_t strlcat(char *, const char *, __kernel_size_t);
4456 # 48 "include/linux/string.h"
4457 extern int strnicmp(const char *, const char *, __kernel_size_t);
4460 extern int strcasecmp(const char *s1, const char *s2);
4463 extern int strncasecmp(const char *s1, const char *s2, size_t n);
4466 extern char * strchr(const char *,int);
4469 extern char * strnchr(const char *, size_t, int);
4472 extern char * strrchr(const char *,int);
4474 extern char * __attribute__((warn_unused_result)) strstrip(char *);
4476 extern char * strstr(const char *,const char *);
4479 extern __kernel_size_t strlen(const char *);
4482 extern __kernel_size_t strnlen(const char *,__kernel_size_t);
4485 extern char * strpbrk(const char *,const char *);
4488 extern char * strsep(char **,const char *);
4491 extern __kernel_size_t strspn(const char *,const char *);
4494 extern __kernel_size_t strcspn(const char *,const char *);
4495 # 98 "include/linux/string.h"
4496 extern void * memscan(void *,int,__kernel_size_t);
4497 # 107 "include/linux/string.h"
4498 extern char *kstrdup(const char *s, gfp_t gfp);
4499 extern char *kstrndup(const char *s, size_t len, gfp_t gfp);
4500 extern void *kmemdup(const void *src, size_t len, gfp_t gfp);
4502 extern char **argv_split(gfp_t gfp, const char *str, int *argcp);
4503 extern void argv_free(char **argv);
4505 extern bool sysfs_streq(const char *s1, const char *s2);
4508 int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args);
4509 int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf);
4510 int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __attribute__((format(printf,3,4)));
4513 extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
4514 const void *from, size_t available);
4521 static inline __attribute__((always_inline)) bool strstarts(const char *str, const char *prefix)
4523 return strncmp(str, prefix, strlen(prefix)) == 0;
4525 # 9 "include/linux/bitmap.h" 2
4526 # 87 "include/linux/bitmap.h"
4527 extern int __bitmap_empty(const unsigned long *bitmap, int bits);
4528 extern int __bitmap_full(const unsigned long *bitmap, int bits);
4529 extern int __bitmap_equal(const unsigned long *bitmap1,
4530 const unsigned long *bitmap2, int bits);
4531 extern void __bitmap_complement(unsigned long *dst, const unsigned long *src,
4533 extern void __bitmap_shift_right(unsigned long *dst,
4534 const unsigned long *src, int shift, int bits);
4535 extern void __bitmap_shift_left(unsigned long *dst,
4536 const unsigned long *src, int shift, int bits);
4537 extern int __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
4538 const unsigned long *bitmap2, int bits);
4539 extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
4540 const unsigned long *bitmap2, int bits);
4541 extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
4542 const unsigned long *bitmap2, int bits);
4543 extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
4544 const unsigned long *bitmap2, int bits);
4545 extern int __bitmap_intersects(const unsigned long *bitmap1,
4546 const unsigned long *bitmap2, int bits);
4547 extern int __bitmap_subset(const unsigned long *bitmap1,
4548 const unsigned long *bitmap2, int bits);
4549 extern int __bitmap_weight(const unsigned long *bitmap, int bits);
4551 extern int bitmap_scnprintf(char *buf, unsigned int len,
4552 const unsigned long *src, int nbits);
4553 extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
4554 unsigned long *dst, int nbits);
4555 extern int bitmap_parse_user(const char *ubuf, unsigned int ulen,
4556 unsigned long *dst, int nbits);
4557 extern int bitmap_scnlistprintf(char *buf, unsigned int len,
4558 const unsigned long *src, int nbits);
4559 extern int bitmap_parselist(const char *buf, unsigned long *maskp,
4561 extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
4562 const unsigned long *old, const unsigned long *new, int bits);
4563 extern int bitmap_bitremap(int oldbit,
4564 const unsigned long *old, const unsigned long *new, int bits);
4565 extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
4566 const unsigned long *relmap, int bits);
4567 extern void bitmap_fold(unsigned long *dst, const unsigned long *orig,
4569 extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order);
4570 extern void bitmap_release_region(unsigned long *bitmap, int pos, int order);
4571 extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
4572 extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits);
4573 # 143 "include/linux/bitmap.h"
4574 static inline __attribute__((always_inline)) void bitmap_zero(unsigned long *dst, int nbits)
4576 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4579 int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long);
4580 memset(dst, 0, len);
4584 static inline __attribute__((always_inline)) void bitmap_fill(unsigned long *dst, int nbits)
4586 size_t nlongs = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)));
4587 if (!(__builtin_constant_p(nbits) && (nbits) <= 32)) {
4588 int len = (nlongs - 1) * sizeof(unsigned long);
4589 memset(dst, 0xff, len);
4591 dst[nlongs - 1] = ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
4594 static inline __attribute__((always_inline)) void bitmap_copy(unsigned long *dst, const unsigned long *src,
4597 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4600 int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long);
4601 memcpy(dst, src, len);
4605 static inline __attribute__((always_inline)) int bitmap_and(unsigned long *dst, const unsigned long *src1,
4606 const unsigned long *src2, int nbits)
4608 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4609 return (*dst = *src1 & *src2) != 0;
4610 return __bitmap_and(dst, src1, src2, nbits);
4613 static inline __attribute__((always_inline)) void bitmap_or(unsigned long *dst, const unsigned long *src1,
4614 const unsigned long *src2, int nbits)
4616 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4617 *dst = *src1 | *src2;
4619 __bitmap_or(dst, src1, src2, nbits);
4622 static inline __attribute__((always_inline)) void bitmap_xor(unsigned long *dst, const unsigned long *src1,
4623 const unsigned long *src2, int nbits)
4625 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4626 *dst = *src1 ^ *src2;
4628 __bitmap_xor(dst, src1, src2, nbits);
4631 static inline __attribute__((always_inline)) int bitmap_andnot(unsigned long *dst, const unsigned long *src1,
4632 const unsigned long *src2, int nbits)
4634 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4635 return (*dst = *src1 & ~(*src2)) != 0;
4636 return __bitmap_andnot(dst, src1, src2, nbits);
4639 static inline __attribute__((always_inline)) void bitmap_complement(unsigned long *dst, const unsigned long *src,
4642 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4643 *dst = ~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
4645 __bitmap_complement(dst, src, nbits);
4648 static inline __attribute__((always_inline)) int bitmap_equal(const unsigned long *src1,
4649 const unsigned long *src2, int nbits)
4651 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4652 return ! ((*src1 ^ *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
4654 return __bitmap_equal(src1, src2, nbits);
4657 static inline __attribute__((always_inline)) int bitmap_intersects(const unsigned long *src1,
4658 const unsigned long *src2, int nbits)
4660 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4661 return ((*src1 & *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )) != 0;
4663 return __bitmap_intersects(src1, src2, nbits);
4666 static inline __attribute__((always_inline)) int bitmap_subset(const unsigned long *src1,
4667 const unsigned long *src2, int nbits)
4669 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4670 return ! ((*src1 & ~(*src2)) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
4672 return __bitmap_subset(src1, src2, nbits);
4675 static inline __attribute__((always_inline)) int bitmap_empty(const unsigned long *src, int nbits)
4677 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4678 return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
4680 return __bitmap_empty(src, nbits);
4683 static inline __attribute__((always_inline)) int bitmap_full(const unsigned long *src, int nbits)
4685 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4686 return ! (~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
4688 return __bitmap_full(src, nbits);
4691 static inline __attribute__((always_inline)) int bitmap_weight(const unsigned long *src, int nbits)
4693 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4694 return hweight_long(*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
4695 return __bitmap_weight(src, nbits);
4698 static inline __attribute__((always_inline)) void bitmap_shift_right(unsigned long *dst,
4699 const unsigned long *src, int n, int nbits)
4701 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4704 __bitmap_shift_right(dst, src, n, nbits);
4707 static inline __attribute__((always_inline)) void bitmap_shift_left(unsigned long *dst,
4708 const unsigned long *src, int n, int nbits)
4710 if ((__builtin_constant_p(nbits) && (nbits) <= 32))
4711 *dst = (*src << n) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
4713 __bitmap_shift_left(dst, src, n, nbits);
4716 static inline __attribute__((always_inline)) int bitmap_parse(const char *buf, unsigned int buflen,
4717 unsigned long *maskp, int nmaskbits)
4719 return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits);
4721 # 96 "include/linux/nodemask.h" 2
4724 typedef struct { unsigned long bits[((((1 << 0)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } nodemask_t;
4725 extern nodemask_t _unused_nodemask_arg_;
4728 static inline __attribute__((always_inline)) void __node_set(int node, volatile nodemask_t *dstp)
4730 set_bit(node, dstp->bits);
4734 static inline __attribute__((always_inline)) void __node_clear(int node, volatile nodemask_t *dstp)
4736 clear_bit(node, dstp->bits);
4740 static inline __attribute__((always_inline)) void __nodes_setall(nodemask_t *dstp, int nbits)
4742 bitmap_fill(dstp->bits, nbits);
4746 static inline __attribute__((always_inline)) void __nodes_clear(nodemask_t *dstp, int nbits)
4748 bitmap_zero(dstp->bits, nbits);
4756 static inline __attribute__((always_inline)) int __node_test_and_set(int node, nodemask_t *addr)
4758 return test_and_set_bit(node, addr->bits);
4763 static inline __attribute__((always_inline)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p,
4764 const nodemask_t *src2p, int nbits)
4766 bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
4771 static inline __attribute__((always_inline)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p,
4772 const nodemask_t *src2p, int nbits)
4774 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
4779 static inline __attribute__((always_inline)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p,
4780 const nodemask_t *src2p, int nbits)
4782 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
4787 static inline __attribute__((always_inline)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p,
4788 const nodemask_t *src2p, int nbits)
4790 bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
4795 static inline __attribute__((always_inline)) void __nodes_complement(nodemask_t *dstp,
4796 const nodemask_t *srcp, int nbits)
4798 bitmap_complement(dstp->bits, srcp->bits, nbits);
4803 static inline __attribute__((always_inline)) int __nodes_equal(const nodemask_t *src1p,
4804 const nodemask_t *src2p, int nbits)
4806 return bitmap_equal(src1p->bits, src2p->bits, nbits);
4811 static inline __attribute__((always_inline)) int __nodes_intersects(const nodemask_t *src1p,
4812 const nodemask_t *src2p, int nbits)
4814 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
4819 static inline __attribute__((always_inline)) int __nodes_subset(const nodemask_t *src1p,
4820 const nodemask_t *src2p, int nbits)
4822 return bitmap_subset(src1p->bits, src2p->bits, nbits);
4826 static inline __attribute__((always_inline)) int __nodes_empty(const nodemask_t *srcp, int nbits)
4828 return bitmap_empty(srcp->bits, nbits);
4832 static inline __attribute__((always_inline)) int __nodes_full(const nodemask_t *srcp, int nbits)
4834 return bitmap_full(srcp->bits, nbits);
4838 static inline __attribute__((always_inline)) int __nodes_weight(const nodemask_t *srcp, int nbits)
4840 return bitmap_weight(srcp->bits, nbits);
4845 static inline __attribute__((always_inline)) void __nodes_shift_right(nodemask_t *dstp,
4846 const nodemask_t *srcp, int n, int nbits)
4848 bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
4853 static inline __attribute__((always_inline)) void __nodes_shift_left(nodemask_t *dstp,
4854 const nodemask_t *srcp, int n, int nbits)
4856 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
4863 static inline __attribute__((always_inline)) int __first_node(const nodemask_t *srcp)
4865 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_bit((srcp->bits), ((1 << 0)), 0)); __min1 < __min2 ? __min1: __min2; });
4869 static inline __attribute__((always_inline)) int __next_node(int n, const nodemask_t *srcp)
4871 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_bit(srcp->bits, (1 << 0), n+1)); __min1 < __min2 ? __min1: __min2; });
4873 # 261 "include/linux/nodemask.h"
4874 static inline __attribute__((always_inline)) int __first_unset_node(const nodemask_t *maskp)
4876 return ({ int __min1 = ((1 << 0)); int __min2 = (find_next_zero_bit((maskp->bits), ((1 << 0)), 0)); __min1 < __min2 ? __min1: __min2; });
4879 # 295 "include/linux/nodemask.h"
4880 static inline __attribute__((always_inline)) int __nodemask_scnprintf(char *buf, int len,
4881 const nodemask_t *srcp, int nbits)
4883 return bitmap_scnprintf(buf, len, srcp->bits, nbits);
4888 static inline __attribute__((always_inline)) int __nodemask_parse_user(const char *buf, int len,
4889 nodemask_t *dstp, int nbits)
4891 return bitmap_parse_user(buf, len, dstp->bits, nbits);
4896 static inline __attribute__((always_inline)) int __nodelist_scnprintf(char *buf, int len,
4897 const nodemask_t *srcp, int nbits)
4899 return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
4903 static inline __attribute__((always_inline)) int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits)
4905 return bitmap_parselist(buf, dstp->bits, nbits);
4910 static inline __attribute__((always_inline)) int __node_remap(int oldbit,
4911 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
4913 return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
4918 static inline __attribute__((always_inline)) void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp,
4919 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
4921 bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
4926 static inline __attribute__((always_inline)) void __nodes_onto(nodemask_t *dstp, const nodemask_t *origp,
4927 const nodemask_t *relmapp, int nbits)
4929 bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits);
4934 static inline __attribute__((always_inline)) void __nodes_fold(nodemask_t *dstp, const nodemask_t *origp,
4937 bitmap_fold(dstp->bits, origp->bits, sz, nbits);
4939 # 369 "include/linux/nodemask.h"
4947 N_HIGH_MEMORY = N_NORMAL_MEMORY,
4958 extern nodemask_t node_states[NR_NODE_STATES];
4959 # 432 "include/linux/nodemask.h"
4960 static inline __attribute__((always_inline)) int node_state(int node, enum node_states state)
4965 static inline __attribute__((always_inline)) void node_set_state(int node, enum node_states state)
4969 static inline __attribute__((always_inline)) void node_clear_state(int node, enum node_states state)
4973 static inline __attribute__((always_inline)) int num_node_state(enum node_states state)
4977 # 495 "include/linux/nodemask.h"
4978 struct nodemask_scratch {
4982 # 17 "include/linux/mmzone.h" 2
4983 # 1 "include/linux/pageblock-flags.h" 1
4984 # 29 "include/linux/pageblock-flags.h"
4985 enum pageblock_bits {
4987 PB_migrate_end = PB_migrate + 3 - 1,
4991 # 60 "include/linux/pageblock-flags.h"
4995 unsigned long get_pageblock_flags_group(struct page *page,
4996 int start_bitidx, int end_bitidx);
4997 void set_pageblock_flags_group(struct page *page, unsigned long flags,
4998 int start_bitidx, int end_bitidx);
4999 # 18 "include/linux/mmzone.h" 2
5000 # 1 "include/linux/bounds.h" 1
5001 # 19 "include/linux/mmzone.h" 2
5002 # 50 "include/linux/mmzone.h"
5003 extern int page_group_by_mobility_disabled;
5005 static inline __attribute__((always_inline)) int get_pageblock_migratetype(struct page *page)
5007 return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end);
5011 struct list_head free_list[5];
5012 unsigned long nr_free;
5016 # 79 "include/linux/mmzone.h"
5017 enum zone_stat_item {
5021 NR_INACTIVE_ANON = NR_LRU_BASE,
5033 NR_SLAB_RECLAIMABLE,
5034 NR_SLAB_UNRECLAIMABLE,
5045 # 115 "include/linux/mmzone.h"
5046 NR_VM_ZONE_STAT_ITEMS };
5047 # 130 "include/linux/mmzone.h"
5049 LRU_INACTIVE_ANON = 0,
5050 LRU_ACTIVE_ANON = 0 + 1,
5051 LRU_INACTIVE_FILE = 0 + 2,
5052 LRU_ACTIVE_FILE = 0 + 2 + 1,
5061 static inline __attribute__((always_inline)) int is_file_lru(enum lru_list l)
5063 return (l == LRU_INACTIVE_FILE || l == LRU_ACTIVE_FILE);
5066 static inline __attribute__((always_inline)) int is_active_lru(enum lru_list l)
5068 return (l == LRU_ACTIVE_ANON || l == LRU_ACTIVE_FILE);
5071 static inline __attribute__((always_inline)) int is_unevictable_lru(enum lru_list l)
5073 return (l == LRU_UNEVICTABLE);
5076 enum zone_watermarks {
5087 struct per_cpu_pages {
5093 struct list_head lists[3];
5096 struct per_cpu_pageset {
5097 struct per_cpu_pages pcp;
5106 # 197 "include/linux/mmzone.h"
5108 # 217 "include/linux/mmzone.h"
5110 # 232 "include/linux/mmzone.h"
5112 # 244 "include/linux/mmzone.h"
5116 # 268 "include/linux/mmzone.h"
5117 struct zone_reclaim_stat {
5118 # 277 "include/linux/mmzone.h"
5119 unsigned long recent_rotated[2];
5120 unsigned long recent_scanned[2];
5125 unsigned long nr_saved_scan[NR_LRU_LISTS];
5132 unsigned long watermark[NR_WMARK];
5133 # 300 "include/linux/mmzone.h"
5134 unsigned long lowmem_reserve[3];
5135 # 311 "include/linux/mmzone.h"
5136 struct per_cpu_pageset pageset[1];
5146 struct free_area free_area[14];
5153 unsigned long *pageblock_flags;
5160 spinlock_t lru_lock;
5162 struct list_head list;
5163 } lru[NR_LRU_LISTS];
5165 struct zone_reclaim_stat reclaim_stat;
5167 unsigned long pages_scanned;
5168 unsigned long flags;
5171 atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
5172 # 361 "include/linux/mmzone.h"
5179 unsigned int inactive_ratio;
5183 # 397 "include/linux/mmzone.h"
5184 wait_queue_head_t * wait_table;
5185 unsigned long wait_table_hash_nr_entries;
5186 unsigned long wait_table_bits;
5191 struct pglist_data *zone_pgdat;
5193 unsigned long zone_start_pfn;
5194 # 418 "include/linux/mmzone.h"
5195 unsigned long spanned_pages;
5196 unsigned long present_pages;
5205 ZONE_ALL_UNRECLAIMABLE,
5206 ZONE_RECLAIM_LOCKED,
5210 static inline __attribute__((always_inline)) void zone_set_flag(struct zone *zone, zone_flags_t flag)
5212 set_bit(flag, &zone->flags);
5215 static inline __attribute__((always_inline)) int zone_test_and_set_flag(struct zone *zone, zone_flags_t flag)
5217 return test_and_set_bit(flag, &zone->flags);
5220 static inline __attribute__((always_inline)) void zone_clear_flag(struct zone *zone, zone_flags_t flag)
5222 clear_bit(flag, &zone->flags);
5225 static inline __attribute__((always_inline)) int zone_is_all_unreclaimable(const struct zone *zone)
5227 return test_bit(ZONE_ALL_UNRECLAIMABLE, &zone->flags);
5230 static inline __attribute__((always_inline)) int zone_is_reclaim_locked(const struct zone *zone)
5232 return test_bit(ZONE_RECLAIM_LOCKED, &zone->flags);
5235 static inline __attribute__((always_inline)) int zone_is_oom_locked(const struct zone *zone)
5237 return test_bit(ZONE_OOM_LOCKED, &zone->flags);
5239 # 551 "include/linux/mmzone.h"
5240 struct zonelist_cache;
5251 # 580 "include/linux/mmzone.h"
5253 struct zonelist_cache *zlcache_ptr;
5254 struct zoneref _zonerefs[((1 << 0) * 3) + 1];
5259 # 598 "include/linux/mmzone.h"
5260 extern struct page *mem_map;
5261 # 612 "include/linux/mmzone.h"
5262 struct bootmem_data;
5263 typedef struct pglist_data {
5264 struct zone node_zones[3];
5265 struct zonelist node_zonelists[1];
5268 struct page *node_mem_map;
5273 struct bootmem_data *bdata;
5274 # 634 "include/linux/mmzone.h"
5275 unsigned long node_start_pfn;
5276 unsigned long node_present_pages;
5277 unsigned long node_spanned_pages;
5280 wait_queue_head_t kswapd_wait;
5281 struct task_struct *kswapd;
5282 int kswapd_max_order;
5284 # 653 "include/linux/mmzone.h"
5285 # 1 "include/linux/memory_hotplug.h" 1
5289 # 1 "include/linux/mmzone.h" 1
5290 # 5 "include/linux/memory_hotplug.h" 2
5292 # 1 "include/linux/notifier.h" 1
5293 # 12 "include/linux/notifier.h"
5294 # 1 "include/linux/errno.h" 1
5298 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/errno.h" 1
5299 # 1 "include/asm-generic/errno.h" 1
5303 # 1 "include/asm-generic/errno-base.h" 1
5304 # 5 "include/asm-generic/errno.h" 2
5305 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/errno.h" 2
5306 # 5 "include/linux/errno.h" 2
5307 # 13 "include/linux/notifier.h" 2
5308 # 1 "include/linux/mutex.h" 1
5309 # 48 "include/linux/mutex.h"
5313 spinlock_t wait_lock;
5314 struct list_head wait_list;
5316 struct thread_info *owner;
5323 struct lockdep_map dep_map;
5331 struct mutex_waiter {
5332 struct list_head list;
5333 struct task_struct *task;
5340 # 1 "include/linux/mutex-debug.h" 1
5341 # 21 "include/linux/mutex-debug.h"
5342 extern void mutex_destroy(struct mutex *lock);
5343 # 79 "include/linux/mutex.h" 2
5344 # 107 "include/linux/mutex.h"
5345 extern void __mutex_init(struct mutex *lock, const char *name,
5346 struct lock_class_key *key);
5354 static inline __attribute__((always_inline)) int mutex_is_locked(struct mutex *lock)
5356 return ((&lock->count)->counter) != 1;
5364 extern void mutex_lock_nested(struct mutex *lock, unsigned int subclass);
5365 extern int __attribute__((warn_unused_result)) mutex_lock_interruptible_nested(struct mutex *lock,
5366 unsigned int subclass);
5367 extern int __attribute__((warn_unused_result)) mutex_lock_killable_nested(struct mutex *lock,
5368 unsigned int subclass);
5369 # 151 "include/linux/mutex.h"
5370 extern int mutex_trylock(struct mutex *lock);
5371 extern void mutex_unlock(struct mutex *lock);
5372 extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
5373 # 14 "include/linux/notifier.h" 2
5374 # 1 "include/linux/rwsem.h" 1
5375 # 17 "include/linux/rwsem.h"
5376 struct rw_semaphore;
5379 # 1 "include/linux/rwsem-spinlock.h" 1
5380 # 22 "include/linux/rwsem-spinlock.h"
5381 struct rwsem_waiter;
5382 # 31 "include/linux/rwsem-spinlock.h"
5383 struct rw_semaphore {
5385 spinlock_t wait_lock;
5386 struct list_head wait_list;
5388 struct lockdep_map dep_map;
5391 # 53 "include/linux/rwsem-spinlock.h"
5392 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
5393 struct lock_class_key *key);
5394 # 63 "include/linux/rwsem-spinlock.h"
5395 extern void __down_read(struct rw_semaphore *sem);
5396 extern int __down_read_trylock(struct rw_semaphore *sem);
5397 extern void __down_write(struct rw_semaphore *sem);
5398 extern void __down_write_nested(struct rw_semaphore *sem, int subclass);
5399 extern int __down_write_trylock(struct rw_semaphore *sem);
5400 extern void __up_read(struct rw_semaphore *sem);
5401 extern void __up_write(struct rw_semaphore *sem);
5402 extern void __downgrade_write(struct rw_semaphore *sem);
5404 static inline __attribute__((always_inline)) int rwsem_is_locked(struct rw_semaphore *sem)
5406 return (sem->activity != 0);
5408 # 21 "include/linux/rwsem.h" 2
5416 extern void down_read(struct rw_semaphore *sem);
5421 extern int down_read_trylock(struct rw_semaphore *sem);
5426 extern void down_write(struct rw_semaphore *sem);
5431 extern int down_write_trylock(struct rw_semaphore *sem);
5436 extern void up_read(struct rw_semaphore *sem);
5441 extern void up_write(struct rw_semaphore *sem);
5446 extern void downgrade_write(struct rw_semaphore *sem);
5447 # 74 "include/linux/rwsem.h"
5448 extern void down_read_nested(struct rw_semaphore *sem, int subclass);
5449 extern void down_write_nested(struct rw_semaphore *sem, int subclass);
5456 extern void down_read_non_owner(struct rw_semaphore *sem);
5457 extern void up_read_non_owner(struct rw_semaphore *sem);
5458 # 15 "include/linux/notifier.h" 2
5459 # 1 "include/linux/srcu.h" 1
5460 # 30 "include/linux/srcu.h"
5461 struct srcu_struct_array {
5465 struct srcu_struct {
5467 struct srcu_struct_array *per_cpu_ref;
5477 int init_srcu_struct(struct srcu_struct *sp);
5478 void cleanup_srcu_struct(struct srcu_struct *sp);
5479 int srcu_read_lock(struct srcu_struct *sp) ;
5480 void srcu_read_unlock(struct srcu_struct *sp, int idx) ;
5481 void synchronize_srcu(struct srcu_struct *sp);
5482 long srcu_batches_completed(struct srcu_struct *sp);
5483 # 16 "include/linux/notifier.h" 2
5484 # 50 "include/linux/notifier.h"
5485 struct notifier_block {
5486 int (*notifier_call)(struct notifier_block *, unsigned long, void *);
5487 struct notifier_block *next;
5491 struct atomic_notifier_head {
5493 struct notifier_block *head;
5496 struct blocking_notifier_head {
5497 struct rw_semaphore rwsem;
5498 struct notifier_block *head;
5501 struct raw_notifier_head {
5502 struct notifier_block *head;
5505 struct srcu_notifier_head {
5507 struct srcu_struct srcu;
5508 struct notifier_block *head;
5510 # 89 "include/linux/notifier.h"
5511 extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
5512 # 115 "include/linux/notifier.h"
5513 extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
5514 struct notifier_block *nb);
5515 extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
5516 struct notifier_block *nb);
5517 extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
5518 struct notifier_block *nb);
5519 extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
5520 struct notifier_block *nb);
5522 extern int blocking_notifier_chain_cond_register(
5523 struct blocking_notifier_head *nh,
5524 struct notifier_block *nb);
5526 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
5527 struct notifier_block *nb);
5528 extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
5529 struct notifier_block *nb);
5530 extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
5531 struct notifier_block *nb);
5532 extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
5533 struct notifier_block *nb);
5535 extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
5536 unsigned long val, void *v);
5537 extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
5538 unsigned long val, void *v, int nr_to_call, int *nr_calls);
5539 extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
5540 unsigned long val, void *v);
5541 extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh,
5542 unsigned long val, void *v, int nr_to_call, int *nr_calls);
5543 extern int raw_notifier_call_chain(struct raw_notifier_head *nh,
5544 unsigned long val, void *v);
5545 extern int __raw_notifier_call_chain(struct raw_notifier_head *nh,
5546 unsigned long val, void *v, int nr_to_call, int *nr_calls);
5547 extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
5548 unsigned long val, void *v);
5549 extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh,
5550 unsigned long val, void *v, int nr_to_call, int *nr_calls);
5551 # 165 "include/linux/notifier.h"
5552 static inline __attribute__((always_inline)) int notifier_from_errno(int err)
5554 return 0x8000 | (0x0001 - err);
5558 static inline __attribute__((always_inline)) int notifier_to_errno(int ret)
5561 return ret > 0x0001 ? 0x0001 - ret : 0;
5563 # 261 "include/linux/notifier.h"
5564 extern struct blocking_notifier_head reboot_notifier_list;
5565 # 7 "include/linux/memory_hotplug.h" 2
5571 # 165 "include/linux/memory_hotplug.h"
5572 static inline __attribute__((always_inline)) void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {}
5573 static inline __attribute__((always_inline)) void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {}
5574 static inline __attribute__((always_inline)) void pgdat_resize_init(struct pglist_data *pgdat) {}
5576 static inline __attribute__((always_inline)) unsigned zone_span_seqbegin(struct zone *zone)
5580 static inline __attribute__((always_inline)) int zone_span_seqretry(struct zone *zone, unsigned iv)
5584 static inline __attribute__((always_inline)) void zone_span_writelock(struct zone *zone) {}
5585 static inline __attribute__((always_inline)) void zone_span_writeunlock(struct zone *zone) {}
5586 static inline __attribute__((always_inline)) void zone_seqlock_init(struct zone *zone) {}
5588 static inline __attribute__((always_inline)) int mhp_notimplemented(const char *func)
5590 printk("<4>" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func);
5595 static inline __attribute__((always_inline)) void register_page_bootmem_info_node(struct pglist_data *pgdat)
5598 # 199 "include/linux/memory_hotplug.h"
5599 static inline __attribute__((always_inline)) int is_mem_section_removable(unsigned long pfn,
5600 unsigned long nr_pages)
5606 extern int add_memory(int nid, u64 start, u64 size);
5607 extern int arch_add_memory(int nid, u64 start, u64 size);
5608 extern int remove_memory(u64 start, u64 size);
5609 extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn,
5611 extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms);
5612 extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map,
5613 unsigned long pnum);
5614 # 654 "include/linux/mmzone.h" 2
5616 void get_zone_counts(unsigned long *active, unsigned long *inactive,
5617 unsigned long *free);
5618 void build_all_zonelists(void);
5619 void wakeup_kswapd(struct zone *zone, int order);
5620 int zone_watermark_ok(struct zone *z, int order, unsigned long mark,
5621 int classzone_idx, int alloc_flags);
5622 enum memmap_context {
5626 extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
5628 enum memmap_context context);
5633 static inline __attribute__((always_inline)) void memory_present(int nid, unsigned long start, unsigned long end) {}
5634 # 684 "include/linux/mmzone.h"
5635 static inline __attribute__((always_inline)) int populated_zone(struct zone *zone)
5637 return (!!zone->present_pages);
5640 extern int movable_zone;
5642 static inline __attribute__((always_inline)) int zone_movable_is_highmem(void)
5651 static inline __attribute__((always_inline)) int is_highmem_idx(enum zone_type idx)
5661 static inline __attribute__((always_inline)) int is_normal_idx(enum zone_type idx)
5663 return (idx == ZONE_NORMAL);
5672 static inline __attribute__((always_inline)) int is_highmem(struct zone *zone)
5684 static inline __attribute__((always_inline)) int is_normal(struct zone *zone)
5686 return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL;
5689 static inline __attribute__((always_inline)) int is_dma32(struct zone *zone)
5698 static inline __attribute__((always_inline)) int is_dma(struct zone *zone)
5701 return zone == zone->zone_pgdat->node_zones + ZONE_DMA;
5709 int min_free_kbytes_sysctl_handler(struct ctl_table *, int,
5710 void *, size_t *, loff_t *);
5711 extern int sysctl_lowmem_reserve_ratio[3 -1];
5712 int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int,
5713 void *, size_t *, loff_t *);
5714 int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int,
5715 void *, size_t *, loff_t *);
5716 int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int,
5717 void *, size_t *, loff_t *);
5718 int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int,
5719 void *, size_t *, loff_t *);
5721 extern int numa_zonelist_order_handler(struct ctl_table *, int,
5722 void *, size_t *, loff_t *);
5723 extern char numa_zonelist_order[];
5728 extern struct pglist_data contig_page_data;
5729 # 787 "include/linux/mmzone.h"
5730 extern struct pglist_data *first_online_pgdat(void);
5731 extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
5732 extern struct zone *next_zone(struct zone *zone);
5733 # 819 "include/linux/mmzone.h"
5734 static inline __attribute__((always_inline)) struct zone *zonelist_zone(struct zoneref *zoneref)
5736 return zoneref->zone;
5739 static inline __attribute__((always_inline)) int zonelist_zone_idx(struct zoneref *zoneref)
5741 return zoneref->zone_idx;
5744 static inline __attribute__((always_inline)) int zonelist_node_idx(struct zoneref *zoneref)
5753 # 852 "include/linux/mmzone.h"
5754 struct zoneref *next_zones_zonelist(struct zoneref *z,
5755 enum zone_type highest_zoneidx,
5757 struct zone **zone);
5758 # 869 "include/linux/mmzone.h"
5759 static inline __attribute__((always_inline)) struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
5760 enum zone_type highest_zoneidx,
5764 return next_zones_zonelist(zonelist->_zonerefs, highest_zoneidx, nodes,
5767 # 912 "include/linux/mmzone.h"
5768 static inline __attribute__((always_inline)) unsigned long early_pfn_to_nid(unsigned long pfn)
5772 # 1093 "include/linux/mmzone.h"
5773 void memory_present(int nid, unsigned long start, unsigned long end);
5774 unsigned long __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) node_memmap_size_bytes(int, unsigned long, unsigned long);
5775 # 1127 "include/linux/mmzone.h"
5776 static inline __attribute__((always_inline)) int memmap_valid_within(unsigned long pfn,
5777 struct page *page, struct zone *zone)
5781 # 5 "include/linux/gfp.h" 2
5784 # 1 "include/linux/topology.h" 1
5785 # 30 "include/linux/topology.h"
5786 # 1 "include/linux/cpumask.h" 1
5787 # 13 "include/linux/cpumask.h"
5788 typedef struct cpumask { unsigned long bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t;
5789 # 78 "include/linux/cpumask.h"
5790 extern const struct cpumask *const cpu_possible_mask;
5791 extern const struct cpumask *const cpu_online_mask;
5792 extern const struct cpumask *const cpu_present_mask;
5793 extern const struct cpumask *const cpu_active_mask;
5794 # 102 "include/linux/cpumask.h"
5795 static inline __attribute__((always_inline)) unsigned int cpumask_check(unsigned int cpu)
5805 static inline __attribute__((always_inline)) unsigned int cpumask_first(const struct cpumask *srcp)
5811 static inline __attribute__((always_inline)) unsigned int cpumask_next(int n, const struct cpumask *srcp)
5816 static inline __attribute__((always_inline)) unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
5821 static inline __attribute__((always_inline)) unsigned int cpumask_next_and(int n,
5822 const struct cpumask *srcp,
5823 const struct cpumask *andp)
5829 static inline __attribute__((always_inline)) unsigned int cpumask_any_but(const struct cpumask *mask,
5834 # 238 "include/linux/cpumask.h"
5835 static inline __attribute__((always_inline)) void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
5837 set_bit(cpumask_check(cpu), ((dstp)->bits));
5845 static inline __attribute__((always_inline)) void cpumask_clear_cpu(int cpu, struct cpumask *dstp)
5847 clear_bit(cpumask_check(cpu), ((dstp)->bits));
5849 # 270 "include/linux/cpumask.h"
5850 static inline __attribute__((always_inline)) int cpumask_test_and_set_cpu(int cpu, struct cpumask *cpumask)
5852 return test_and_set_bit(cpumask_check(cpu), ((cpumask)->bits));
5854 # 282 "include/linux/cpumask.h"
5855 static inline __attribute__((always_inline)) int cpumask_test_and_clear_cpu(int cpu, struct cpumask *cpumask)
5857 return test_and_clear_bit(cpumask_check(cpu), ((cpumask)->bits));
5864 static inline __attribute__((always_inline)) void cpumask_setall(struct cpumask *dstp)
5866 bitmap_fill(((dstp)->bits), 1);
5873 static inline __attribute__((always_inline)) void cpumask_clear(struct cpumask *dstp)
5875 bitmap_zero(((dstp)->bits), 1);
5884 static inline __attribute__((always_inline)) int cpumask_and(struct cpumask *dstp,
5885 const struct cpumask *src1p,
5886 const struct cpumask *src2p)
5888 return bitmap_and(((dstp)->bits), ((src1p)->bits),
5889 ((src2p)->bits), 1);
5898 static inline __attribute__((always_inline)) void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p,
5899 const struct cpumask *src2p)
5901 bitmap_or(((dstp)->bits), ((src1p)->bits),
5902 ((src2p)->bits), 1);
5911 static inline __attribute__((always_inline)) void cpumask_xor(struct cpumask *dstp,
5912 const struct cpumask *src1p,
5913 const struct cpumask *src2p)
5915 bitmap_xor(((dstp)->bits), ((src1p)->bits),
5916 ((src2p)->bits), 1);
5925 static inline __attribute__((always_inline)) int cpumask_andnot(struct cpumask *dstp,
5926 const struct cpumask *src1p,
5927 const struct cpumask *src2p)
5929 return bitmap_andnot(((dstp)->bits), ((src1p)->bits),
5930 ((src2p)->bits), 1);
5938 static inline __attribute__((always_inline)) void cpumask_complement(struct cpumask *dstp,
5939 const struct cpumask *srcp)
5941 bitmap_complement(((dstp)->bits), ((srcp)->bits),
5950 static inline __attribute__((always_inline)) bool cpumask_equal(const struct cpumask *src1p,
5951 const struct cpumask *src2p)
5953 return bitmap_equal(((src1p)->bits), ((src2p)->bits),
5962 static inline __attribute__((always_inline)) bool cpumask_intersects(const struct cpumask *src1p,
5963 const struct cpumask *src2p)
5965 return bitmap_intersects(((src1p)->bits), ((src2p)->bits),
5974 static inline __attribute__((always_inline)) int cpumask_subset(const struct cpumask *src1p,
5975 const struct cpumask *src2p)
5977 return bitmap_subset(((src1p)->bits), ((src2p)->bits),
5985 static inline __attribute__((always_inline)) bool cpumask_empty(const struct cpumask *srcp)
5987 return bitmap_empty(((srcp)->bits), 1);
5994 static inline __attribute__((always_inline)) bool cpumask_full(const struct cpumask *srcp)
5996 return bitmap_full(((srcp)->bits), 1);
6003 static inline __attribute__((always_inline)) unsigned int cpumask_weight(const struct cpumask *srcp)
6005 return bitmap_weight(((srcp)->bits), 1);
6014 static inline __attribute__((always_inline)) void cpumask_shift_right(struct cpumask *dstp,
6015 const struct cpumask *srcp, int n)
6017 bitmap_shift_right(((dstp)->bits), ((srcp)->bits), n,
6027 static inline __attribute__((always_inline)) void cpumask_shift_left(struct cpumask *dstp,
6028 const struct cpumask *srcp, int n)
6030 bitmap_shift_left(((dstp)->bits), ((srcp)->bits), n,
6039 static inline __attribute__((always_inline)) void cpumask_copy(struct cpumask *dstp,
6040 const struct cpumask *srcp)
6042 bitmap_copy(((dstp)->bits), ((srcp)->bits), 1);
6044 # 513 "include/linux/cpumask.h"
6045 static inline __attribute__((always_inline)) int cpumask_scnprintf(char *buf, int len,
6046 const struct cpumask *srcp)
6048 return bitmap_scnprintf(buf, len, ((srcp)->bits), 1);
6050 # 527 "include/linux/cpumask.h"
6051 static inline __attribute__((always_inline)) int cpumask_parse_user(const char *buf, int len,
6052 struct cpumask *dstp)
6054 return bitmap_parse_user(buf, len, ((dstp)->bits), 1);
6056 # 542 "include/linux/cpumask.h"
6057 static inline __attribute__((always_inline)) int cpulist_scnprintf(char *buf, int len,
6058 const struct cpumask *srcp)
6060 return bitmap_scnlistprintf(buf, len, ((srcp)->bits),
6063 # 557 "include/linux/cpumask.h"
6064 static inline __attribute__((always_inline)) int cpulist_parse(const char *buf, struct cpumask *dstp)
6066 return bitmap_parselist(buf, ((dstp)->bits), 1);
6074 static inline __attribute__((always_inline)) size_t cpumask_size(void)
6078 return (((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(long);
6080 # 602 "include/linux/cpumask.h"
6081 typedef struct cpumask cpumask_var_t[1];
6083 static inline __attribute__((always_inline)) bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
6088 static inline __attribute__((always_inline)) bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
6094 static inline __attribute__((always_inline)) bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
6096 cpumask_clear(*mask);
6100 static inline __attribute__((always_inline)) bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
6103 cpumask_clear(*mask);
6107 static inline __attribute__((always_inline)) void alloc_bootmem_cpumask_var(cpumask_var_t *mask)
6111 static inline __attribute__((always_inline)) void free_cpumask_var(cpumask_var_t mask)
6115 static inline __attribute__((always_inline)) void free_bootmem_cpumask_var(cpumask_var_t mask)
6122 extern const unsigned long cpu_all_bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
6123 # 654 "include/linux/cpumask.h"
6124 void set_cpu_possible(unsigned int cpu, bool possible);
6125 void set_cpu_present(unsigned int cpu, bool present);
6126 void set_cpu_online(unsigned int cpu, bool online);
6127 void set_cpu_active(unsigned int cpu, bool active);
6128 void init_cpu_present(const struct cpumask *src);
6129 void init_cpu_possible(const struct cpumask *src);
6130 void init_cpu_online(const struct cpumask *src);
6131 # 676 "include/linux/cpumask.h"
6132 static inline __attribute__((always_inline)) int __check_is_bitmap(const unsigned long *bitmap)
6136 # 688 "include/linux/cpumask.h"
6137 extern const unsigned long
6138 cpu_bit_bitmap[32 +1][(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
6140 static inline __attribute__((always_inline)) const struct cpumask *get_cpu_mask(unsigned int cpu)
6142 const unsigned long *p = cpu_bit_bitmap[1 + cpu % 32];
6144 return ((struct cpumask *)(1 ? (p) : (void *)sizeof(__check_is_bitmap(p))));
6146 # 795 "include/linux/cpumask.h"
6147 static inline __attribute__((always_inline)) void __cpu_set(int cpu, volatile cpumask_t *dstp)
6149 set_bit(cpu, dstp->bits);
6153 static inline __attribute__((always_inline)) void __cpu_clear(int cpu, volatile cpumask_t *dstp)
6155 clear_bit(cpu, dstp->bits);
6159 static inline __attribute__((always_inline)) void __cpus_setall(cpumask_t *dstp, int nbits)
6161 bitmap_fill(dstp->bits, nbits);
6165 static inline __attribute__((always_inline)) void __cpus_clear(cpumask_t *dstp, int nbits)
6167 bitmap_zero(dstp->bits, nbits);
6174 static inline __attribute__((always_inline)) int __cpu_test_and_set(int cpu, cpumask_t *addr)
6176 return test_and_set_bit(cpu, addr->bits);
6180 static inline __attribute__((always_inline)) int __cpus_and(cpumask_t *dstp, const cpumask_t *src1p,
6181 const cpumask_t *src2p, int nbits)
6183 return bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
6187 static inline __attribute__((always_inline)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p,
6188 const cpumask_t *src2p, int nbits)
6190 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
6194 static inline __attribute__((always_inline)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p,
6195 const cpumask_t *src2p, int nbits)
6197 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
6202 static inline __attribute__((always_inline)) int __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p,
6203 const cpumask_t *src2p, int nbits)
6205 return bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
6209 static inline __attribute__((always_inline)) int __cpus_equal(const cpumask_t *src1p,
6210 const cpumask_t *src2p, int nbits)
6212 return bitmap_equal(src1p->bits, src2p->bits, nbits);
6216 static inline __attribute__((always_inline)) int __cpus_intersects(const cpumask_t *src1p,
6217 const cpumask_t *src2p, int nbits)
6219 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
6223 static inline __attribute__((always_inline)) int __cpus_subset(const cpumask_t *src1p,
6224 const cpumask_t *src2p, int nbits)
6226 return bitmap_subset(src1p->bits, src2p->bits, nbits);
6230 static inline __attribute__((always_inline)) int __cpus_empty(const cpumask_t *srcp, int nbits)
6232 return bitmap_empty(srcp->bits, nbits);
6236 static inline __attribute__((always_inline)) int __cpus_weight(const cpumask_t *srcp, int nbits)
6238 return bitmap_weight(srcp->bits, nbits);
6243 static inline __attribute__((always_inline)) void __cpus_shift_left(cpumask_t *dstp,
6244 const cpumask_t *srcp, int n, int nbits)
6246 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
6248 # 31 "include/linux/topology.h" 2
6251 # 1 "include/linux/smp.h" 1
6252 # 14 "include/linux/smp.h"
6253 extern void cpu_idle(void);
6255 struct call_single_data {
6256 struct list_head list;
6257 void (*func) (void *info);
6264 extern unsigned int total_cpus;
6266 int smp_call_function_single(int cpuid, void (*func) (void *info), void *info,
6268 # 116 "include/linux/smp.h"
6269 static inline __attribute__((always_inline)) void smp_send_stop(void) { }
6275 static inline __attribute__((always_inline)) int up_smp_call_function(void (*func)(void *), void *info)
6279 # 135 "include/linux/smp.h"
6280 static inline __attribute__((always_inline)) void smp_send_reschedule(int cpu) { }
6285 static inline __attribute__((always_inline)) void init_call_single_data(void)
6288 # 174 "include/linux/smp.h"
6289 extern void arch_disable_smp_support(void);
6291 void smp_setup_processor_id(void);
6292 # 34 "include/linux/topology.h" 2
6293 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/topology.h" 1
6294 # 1 "include/asm-generic/topology.h" 1
6295 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/topology.h" 2
6296 # 35 "include/linux/topology.h" 2
6297 # 48 "include/linux/topology.h"
6298 int arch_update_cpu_topology(void);
6299 # 8 "include/linux/gfp.h" 2
6300 # 1 "include/linux/mmdebug.h" 1
6304 # 1 "include/linux/autoconf.h" 1
6305 # 5 "include/linux/mmdebug.h" 2
6306 # 9 "include/linux/gfp.h" 2
6308 struct vm_area_struct;
6309 # 119 "include/linux/gfp.h"
6310 static inline __attribute__((always_inline)) int allocflags_to_migratetype(gfp_t gfp_flags)
6312 ({ int __ret_warn_on = !!((gfp_flags & ((( gfp_t)0x80000u)|(( gfp_t)0x08u))) == ((( gfp_t)0x80000u)|(( gfp_t)0x08u))); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/gfp.h"), "i"(121), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); });
6314 if (__builtin_expect(!!(page_group_by_mobility_disabled), 0))
6318 return (((gfp_flags & (( gfp_t)0x08u)) != 0) << 1) |
6319 ((gfp_flags & (( gfp_t)0x80000u)) != 0);
6321 # 214 "include/linux/gfp.h"
6322 static inline __attribute__((always_inline)) enum zone_type gfp_zone(gfp_t flags)
6325 int bit = flags & ((( gfp_t)0x01u)|(( gfp_t)0x02u)|(( gfp_t)0x04u)|(( gfp_t)0x08u));
6327 z = (( (ZONE_NORMAL << 0 * 2) | (ZONE_DMA << (( gfp_t)0x01u) * 2) | (ZONE_NORMAL << (( gfp_t)0x02u) * 2) | (ZONE_NORMAL << (( gfp_t)0x04u) * 2) | (ZONE_NORMAL << (( gfp_t)0x08u) * 2) | (ZONE_DMA << ((( gfp_t)0x08u) | (( gfp_t)0x01u)) * 2) | (ZONE_MOVABLE << ((( gfp_t)0x08u) | (( gfp_t)0x02u)) * 2) | (ZONE_NORMAL << ((( gfp_t)0x08u) | (( gfp_t)0x04u)) * 2)) >> (bit * 2)) &
6330 if (__builtin_constant_p(bit))
6331 ((void)sizeof(char[1 - 2 * !!((( 1 << ((( gfp_t)0x01u) | (( gfp_t)0x02u)) | 1 << ((( gfp_t)0x01u) | (( gfp_t)0x04u)) | 1 << ((( gfp_t)0x04u) | (( gfp_t)0x02u)) | 1 << ((( gfp_t)0x01u) | (( gfp_t)0x04u) | (( gfp_t)0x02u)) | 1 << ((( gfp_t)0x08u) | (( gfp_t)0x02u) | (( gfp_t)0x01u)) | 1 << ((( gfp_t)0x08u) | (( gfp_t)0x04u) | (( gfp_t)0x01u)) | 1 << ((( gfp_t)0x08u) | (( gfp_t)0x04u) | (( gfp_t)0x02u)) | 1 << ((( gfp_t)0x08u) | (( gfp_t)0x04u) | (( gfp_t)0x01u) | (( gfp_t)0x02u))) >> bit) & 1)]));
6339 # 239 "include/linux/gfp.h"
6340 static inline __attribute__((always_inline)) int gfp_zonelist(gfp_t flags)
6342 if (0 && __builtin_expect(!!(flags & (( gfp_t)0x40000u)), 0))
6347 # 256 "include/linux/gfp.h"
6348 static inline __attribute__((always_inline)) struct zonelist *node_zonelist(int nid, gfp_t flags)
6350 return (&contig_page_data)->node_zonelists + gfp_zonelist(flags);
6354 static inline __attribute__((always_inline)) void arch_free_page(struct page *page, int order) { }
6357 static inline __attribute__((always_inline)) void arch_alloc_page(struct page *page, int order) { }
6361 __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
6362 struct zonelist *zonelist, nodemask_t *nodemask);
6364 static inline __attribute__((always_inline)) struct page *
6365 __alloc_pages(gfp_t gfp_mask, unsigned int order,
6366 struct zonelist *zonelist)
6368 return __alloc_pages_nodemask(gfp_mask, order, zonelist, ((void *)0));
6371 static inline __attribute__((always_inline)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask,
6376 nid = (((void)(0),0));
6378 return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
6381 static inline __attribute__((always_inline)) struct page *alloc_pages_exact_node(int nid, gfp_t gfp_mask,
6386 return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
6388 # 314 "include/linux/gfp.h"
6389 extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
6390 extern unsigned long get_zeroed_page(gfp_t gfp_mask);
6392 void *alloc_pages_exact(size_t size, gfp_t gfp_mask);
6393 void free_pages_exact(void *virt, size_t size);
6401 extern void __free_pages(struct page *page, unsigned int order);
6402 extern void free_pages(unsigned long addr, unsigned int order);
6403 extern void free_hot_page(struct page *page);
6408 void page_alloc_init(void);
6409 void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
6410 void drain_all_pages(void);
6411 void drain_local_pages(void *dummy);
6413 extern gfp_t gfp_allowed_mask;
6415 static inline __attribute__((always_inline)) void set_gfp_allowed_mask(gfp_t mask)
6417 gfp_allowed_mask = mask;
6419 # 23 "include/linux/kmod.h" 2
6420 # 32 "include/linux/kmod.h"
6421 extern int __request_module(bool wait, const char *name, ...) __attribute__((format(printf, 2, 3)));
6422 # 45 "include/linux/kmod.h"
6425 struct subprocess_info;
6428 struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
6429 char **envp, gfp_t gfp_mask);
6432 void call_usermodehelper_setkeys(struct subprocess_info *info,
6433 struct key *session_keyring);
6434 int call_usermodehelper_stdinpipe(struct subprocess_info *sub_info,
6435 struct file **filp);
6436 void call_usermodehelper_setcleanup(struct subprocess_info *info,
6437 void (*cleanup)(char **argv, char **envp));
6446 int call_usermodehelper_exec(struct subprocess_info *info, enum umh_wait wait);
6450 void call_usermodehelper_freeinfo(struct subprocess_info *info);
6452 static inline __attribute__((always_inline)) int
6453 call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
6455 struct subprocess_info *info;
6456 gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? ((( gfp_t)0x20u)) : ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u));
6458 info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
6459 if (info == ((void *)0))
6461 return call_usermodehelper_exec(info, wait);
6464 static inline __attribute__((always_inline)) int
6465 call_usermodehelper_keys(char *path, char **argv, char **envp,
6466 struct key *session_keyring, enum umh_wait wait)
6468 struct subprocess_info *info;
6469 gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? ((( gfp_t)0x20u)) : ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u));
6471 info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
6472 if (info == ((void *)0))
6475 call_usermodehelper_setkeys(info, session_keyring);
6476 return call_usermodehelper_exec(info, wait);
6479 extern void usermodehelper_init(void);
6482 extern int call_usermodehelper_pipe(char *path, char *argv[], char *envp[],
6483 struct file **filp);
6485 extern int usermodehelper_disable(void);
6486 extern void usermodehelper_enable(void);
6487 # 14 "include/linux/module.h" 2
6488 # 1 "include/linux/elf.h" 1
6493 # 1 "include/linux/elf-em.h" 1
6494 # 6 "include/linux/elf.h" 2
6496 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h" 1
6497 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h"
6498 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/user.h" 1
6499 # 1 "include/asm-generic/user.h" 1
6500 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/user.h" 2
6501 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h" 2
6502 # 25 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h"
6503 typedef unsigned long elf_greg_t;
6506 typedef elf_greg_t elf_gregset_t[40];
6508 typedef struct { } elf_fpregset_t;
6509 # 131 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/elf.h"
6511 struct elf_fdpic_params;
6513 extern int elf_fdpic_plat_process_phdr(struct mm_struct *, struct elf_fdpic_params *,
6514 struct elf32_phdr *, unsigned long *, unsigned long *);
6515 # 8 "include/linux/elf.h" 2
6519 # 20 "include/linux/elf.h"
6520 typedef __u32 Elf32_Addr;
6521 typedef __u16 Elf32_Half;
6522 typedef __u32 Elf32_Off;
6523 typedef __s32 Elf32_Sword;
6524 typedef __u32 Elf32_Word;
6527 typedef __u64 Elf64_Addr;
6528 typedef __u16 Elf64_Half;
6529 typedef __s16 Elf64_SHalf;
6530 typedef __u64 Elf64_Off;
6531 typedef __s32 Elf64_Sword;
6532 typedef __u32 Elf64_Word;
6533 typedef __u64 Elf64_Xword;
6534 typedef __s64 Elf64_Sxword;
6535 # 127 "include/linux/elf.h"
6536 typedef struct dynamic{
6551 # 150 "include/linux/elf.h"
6552 typedef struct elf32_rel {
6553 Elf32_Addr r_offset;
6557 typedef struct elf64_rel {
6558 Elf64_Addr r_offset;
6562 typedef struct elf32_rela{
6563 Elf32_Addr r_offset;
6565 Elf32_Sword r_addend;
6568 typedef struct elf64_rela {
6569 Elf64_Addr r_offset;
6571 Elf64_Sxword r_addend;
6574 typedef struct elf32_sym{
6576 Elf32_Addr st_value;
6578 unsigned char st_info;
6579 unsigned char st_other;
6580 Elf32_Half st_shndx;
6583 typedef struct elf64_sym {
6585 unsigned char st_info;
6586 unsigned char st_other;
6587 Elf64_Half st_shndx;
6588 Elf64_Addr st_value;
6589 Elf64_Xword st_size;
6595 typedef struct elf32_hdr{
6596 unsigned char e_ident[16];
6598 Elf32_Half e_machine;
6599 Elf32_Word e_version;
6604 Elf32_Half e_ehsize;
6605 Elf32_Half e_phentsize;
6607 Elf32_Half e_shentsize;
6609 Elf32_Half e_shstrndx;
6612 typedef struct elf64_hdr {
6613 unsigned char e_ident[16];
6615 Elf64_Half e_machine;
6616 Elf64_Word e_version;
6621 Elf64_Half e_ehsize;
6622 Elf64_Half e_phentsize;
6624 Elf64_Half e_shentsize;
6626 Elf64_Half e_shstrndx;
6635 typedef struct elf32_phdr{
6640 Elf32_Word p_filesz;
6646 typedef struct elf64_phdr {
6652 Elf64_Xword p_filesz;
6653 Elf64_Xword p_memsz;
6654 Elf64_Xword p_align;
6656 # 289 "include/linux/elf.h"
6660 Elf32_Word sh_flags;
6662 Elf32_Off sh_offset;
6666 Elf32_Word sh_addralign;
6667 Elf32_Word sh_entsize;
6670 typedef struct elf64_shdr {
6673 Elf64_Xword sh_flags;
6675 Elf64_Off sh_offset;
6676 Elf64_Xword sh_size;
6679 Elf64_Xword sh_addralign;
6680 Elf64_Xword sh_entsize;
6682 # 368 "include/linux/elf.h"
6683 typedef struct elf32_note {
6684 Elf32_Word n_namesz;
6685 Elf32_Word n_descsz;
6690 typedef struct elf64_note {
6691 Elf64_Word n_namesz;
6692 Elf64_Word n_descsz;
6699 extern Elf32_Dyn _DYNAMIC [];
6700 # 402 "include/linux/elf.h"
6701 static inline __attribute__((always_inline)) int elf_coredump_extra_notes_size(void) { return 0; }
6702 static inline __attribute__((always_inline)) int elf_coredump_extra_notes_write(struct file *file,
6703 loff_t *foffset) { return 0; }
6704 # 15 "include/linux/module.h" 2
6706 # 1 "include/linux/kobject.h" 1
6707 # 21 "include/linux/kobject.h"
6708 # 1 "include/linux/sysfs.h" 1
6709 # 20 "include/linux/sysfs.h"
6720 struct module *owner;
6724 struct attribute_group {
6726 mode_t (*is_visible)(struct kobject *,
6727 struct attribute *, int);
6728 struct attribute **attrs;
6730 # 63 "include/linux/sysfs.h"
6731 struct vm_area_struct;
6733 struct bin_attribute {
6734 struct attribute attr;
6737 ssize_t (*read)(struct kobject *, struct bin_attribute *,
6738 char *, loff_t, size_t);
6739 ssize_t (*write)(struct kobject *, struct bin_attribute *,
6740 char *, loff_t, size_t);
6741 int (*mmap)(struct kobject *, struct bin_attribute *attr,
6742 struct vm_area_struct *vma);
6746 ssize_t (*show)(struct kobject *, struct attribute *,char *);
6747 ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
6750 struct sysfs_dirent;
6754 int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
6755 void *data, struct module *owner);
6757 int __attribute__((warn_unused_result)) sysfs_create_dir(struct kobject *kobj);
6758 void sysfs_remove_dir(struct kobject *kobj);
6759 int __attribute__((warn_unused_result)) sysfs_rename_dir(struct kobject *kobj, const char *new_name);
6760 int __attribute__((warn_unused_result)) sysfs_move_dir(struct kobject *kobj,
6761 struct kobject *new_parent_kobj);
6763 int __attribute__((warn_unused_result)) sysfs_create_file(struct kobject *kobj,
6764 const struct attribute *attr);
6765 int __attribute__((warn_unused_result)) sysfs_chmod_file(struct kobject *kobj, struct attribute *attr,
6767 void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr);
6769 int __attribute__((warn_unused_result)) sysfs_create_bin_file(struct kobject *kobj,
6770 struct bin_attribute *attr);
6771 void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);
6773 int __attribute__((warn_unused_result)) sysfs_create_link(struct kobject *kobj, struct kobject *target,
6775 int __attribute__((warn_unused_result)) sysfs_create_link_nowarn(struct kobject *kobj,
6776 struct kobject *target,
6778 void sysfs_remove_link(struct kobject *kobj, const char *name);
6780 int __attribute__((warn_unused_result)) sysfs_create_group(struct kobject *kobj,
6781 const struct attribute_group *grp);
6782 int sysfs_update_group(struct kobject *kobj,
6783 const struct attribute_group *grp);
6784 void sysfs_remove_group(struct kobject *kobj,
6785 const struct attribute_group *grp);
6786 int sysfs_add_file_to_group(struct kobject *kobj,
6787 const struct attribute *attr, const char *group);
6788 void sysfs_remove_file_from_group(struct kobject *kobj,
6789 const struct attribute *attr, const char *group);
6791 void sysfs_notify(struct kobject *kobj, const char *dir, const char *attr);
6792 void sysfs_notify_dirent(struct sysfs_dirent *sd);
6793 struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
6794 const unsigned char *name);
6795 struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd);
6796 void sysfs_put(struct sysfs_dirent *sd);
6797 void sysfs_printk_last_file(void);
6798 int __attribute__((warn_unused_result)) sysfs_init(void);
6799 # 22 "include/linux/kobject.h" 2
6802 # 1 "include/linux/kref.h" 1
6803 # 20 "include/linux/kref.h"
6808 void kref_set(struct kref *kref, int num);
6809 void kref_init(struct kref *kref);
6810 void kref_get(struct kref *kref);
6811 int kref_put(struct kref *kref, void (*release) (struct kref *kref));
6812 # 25 "include/linux/kobject.h" 2
6813 # 34 "include/linux/kobject.h"
6814 extern char uevent_helper[];
6817 extern u64 uevent_seqnum;
6818 # 49 "include/linux/kobject.h"
6819 enum kobject_action {
6831 struct list_head entry;
6832 struct kobject *parent;
6834 struct kobj_type *ktype;
6835 struct sysfs_dirent *sd;
6837 unsigned int state_initialized:1;
6838 unsigned int state_in_sysfs:1;
6839 unsigned int state_add_uevent_sent:1;
6840 unsigned int state_remove_uevent_sent:1;
6841 unsigned int uevent_suppress:1;
6844 extern int kobject_set_name(struct kobject *kobj, const char *name, ...)
6845 __attribute__((format(printf, 2, 3)));
6846 extern int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
6849 static inline __attribute__((always_inline)) const char *kobject_name(const struct kobject *kobj)
6854 extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype);
6855 extern int __attribute__((warn_unused_result)) kobject_add(struct kobject *kobj,
6856 struct kobject *parent,
6857 const char *fmt, ...);
6858 extern int __attribute__((warn_unused_result)) kobject_init_and_add(struct kobject *kobj,
6859 struct kobj_type *ktype,
6860 struct kobject *parent,
6861 const char *fmt, ...);
6863 extern void kobject_del(struct kobject *kobj);
6865 extern struct kobject * __attribute__((warn_unused_result)) kobject_create(void);
6866 extern struct kobject * __attribute__((warn_unused_result)) kobject_create_and_add(const char *name,
6867 struct kobject *parent);
6869 extern int __attribute__((warn_unused_result)) kobject_rename(struct kobject *, const char *new_name);
6870 extern int __attribute__((warn_unused_result)) kobject_move(struct kobject *, struct kobject *);
6872 extern struct kobject *kobject_get(struct kobject *kobj);
6873 extern void kobject_put(struct kobject *kobj);
6875 extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
6878 void (*release)(struct kobject *kobj);
6879 struct sysfs_ops *sysfs_ops;
6880 struct attribute **default_attrs;
6883 struct kobj_uevent_env {
6890 struct kset_uevent_ops {
6891 int (*filter)(struct kset *kset, struct kobject *kobj);
6892 const char *(*name)(struct kset *kset, struct kobject *kobj);
6893 int (*uevent)(struct kset *kset, struct kobject *kobj,
6894 struct kobj_uevent_env *env);
6897 struct kobj_attribute {
6898 struct attribute attr;
6899 ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
6901 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
6902 const char *buf, size_t count);
6905 extern struct sysfs_ops kobj_sysfs_ops;
6906 # 154 "include/linux/kobject.h"
6908 struct list_head list;
6909 spinlock_t list_lock;
6910 struct kobject kobj;
6911 struct kset_uevent_ops *uevent_ops;
6914 extern void kset_init(struct kset *kset);
6915 extern int __attribute__((warn_unused_result)) kset_register(struct kset *kset);
6916 extern void kset_unregister(struct kset *kset);
6917 extern struct kset * __attribute__((warn_unused_result)) kset_create_and_add(const char *name,
6918 struct kset_uevent_ops *u,
6919 struct kobject *parent_kobj);
6921 static inline __attribute__((always_inline)) struct kset *to_kset(struct kobject *kobj)
6923 return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof(struct kset,kobj) );}) : ((void *)0);
6926 static inline __attribute__((always_inline)) struct kset *kset_get(struct kset *k)
6928 return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0);
6931 static inline __attribute__((always_inline)) void kset_put(struct kset *k)
6933 kobject_put(&k->kobj);
6936 static inline __attribute__((always_inline)) struct kobj_type *get_ktype(struct kobject *kobj)
6941 extern struct kobject *kset_find_obj(struct kset *, const char *);
6944 extern struct kobject *kernel_kobj;
6946 extern struct kobject *mm_kobj;
6948 extern struct kobject *hypervisor_kobj;
6950 extern struct kobject *power_kobj;
6952 extern struct kobject *firmware_kobj;
6953 # 212 "include/linux/kobject.h"
6954 static inline __attribute__((always_inline)) int kobject_uevent(struct kobject *kobj,
6955 enum kobject_action action)
6957 static inline __attribute__((always_inline)) int kobject_uevent_env(struct kobject *kobj,
6958 enum kobject_action action,
6962 static inline __attribute__((always_inline)) int add_uevent_var(struct kobj_uevent_env *env,
6963 const char *format, ...)
6966 static inline __attribute__((always_inline)) int kobject_action_type(const char *buf, size_t count,
6967 enum kobject_action *type)
6969 # 17 "include/linux/module.h" 2
6970 # 1 "include/linux/moduleparam.h" 1
6971 # 32 "include/linux/moduleparam.h"
6972 struct kernel_param;
6975 typedef int (*param_set_fn)(const char *val, struct kernel_param *kp);
6977 typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp);
6982 struct kernel_param {
6990 const struct kparam_string *str;
6991 const struct kparam_array *arr;
6996 struct kparam_string {
6997 unsigned int maxlen;
7008 unsigned int elemsize;
7011 # 143 "include/linux/moduleparam.h"
7012 extern int parse_args(const char *name,
7014 struct kernel_param *params,
7016 int (*unknown)(char *param, char *val));
7020 extern void destroy_params(const struct kernel_param *params, unsigned num);
7021 # 165 "include/linux/moduleparam.h"
7022 extern int param_set_byte(const char *val, struct kernel_param *kp);
7023 extern int param_get_byte(char *buffer, struct kernel_param *kp);
7026 extern int param_set_short(const char *val, struct kernel_param *kp);
7027 extern int param_get_short(char *buffer, struct kernel_param *kp);
7030 extern int param_set_ushort(const char *val, struct kernel_param *kp);
7031 extern int param_get_ushort(char *buffer, struct kernel_param *kp);
7034 extern int param_set_int(const char *val, struct kernel_param *kp);
7035 extern int param_get_int(char *buffer, struct kernel_param *kp);
7038 extern int param_set_uint(const char *val, struct kernel_param *kp);
7039 extern int param_get_uint(char *buffer, struct kernel_param *kp);
7042 extern int param_set_long(const char *val, struct kernel_param *kp);
7043 extern int param_get_long(char *buffer, struct kernel_param *kp);
7046 extern int param_set_ulong(const char *val, struct kernel_param *kp);
7047 extern int param_get_ulong(char *buffer, struct kernel_param *kp);
7050 extern int param_set_charp(const char *val, struct kernel_param *kp);
7051 extern int param_get_charp(char *buffer, struct kernel_param *kp);
7055 extern int param_set_bool(const char *val, struct kernel_param *kp);
7056 extern int param_get_bool(char *buffer, struct kernel_param *kp);
7057 # 208 "include/linux/moduleparam.h"
7058 extern int param_set_invbool(const char *val, struct kernel_param *kp);
7059 extern int param_get_invbool(char *buffer, struct kernel_param *kp);
7060 # 226 "include/linux/moduleparam.h"
7061 extern int param_array_set(const char *val, struct kernel_param *kp);
7062 extern int param_array_get(char *buffer, struct kernel_param *kp);
7064 extern int param_set_copystring(const char *val, struct kernel_param *kp);
7065 extern int param_get_string(char *buffer, struct kernel_param *kp);
7072 extern int module_param_sysfs_setup(struct module *mod,
7073 struct kernel_param *kparam,
7074 unsigned int num_params);
7076 extern void module_param_sysfs_remove(struct module *mod);
7077 # 18 "include/linux/module.h" 2
7078 # 1 "include/linux/tracepoint.h" 1
7079 # 18 "include/linux/tracepoint.h"
7080 # 1 "include/linux/rcupdate.h" 1
7081 # 42 "include/linux/rcupdate.h"
7082 # 1 "include/linux/completion.h" 1
7083 # 25 "include/linux/completion.h"
7086 wait_queue_head_t wait;
7088 # 73 "include/linux/completion.h"
7089 static inline __attribute__((always_inline)) void init_completion(struct completion *x)
7092 do { static struct lock_class_key __key; __init_waitqueue_head((&x->wait), &__key); } while (0);
7095 extern void wait_for_completion(struct completion *);
7096 extern int wait_for_completion_interruptible(struct completion *x);
7097 extern int wait_for_completion_killable(struct completion *x);
7098 extern unsigned long wait_for_completion_timeout(struct completion *x,
7099 unsigned long timeout);
7100 extern unsigned long wait_for_completion_interruptible_timeout(
7101 struct completion *x, unsigned long timeout);
7102 extern bool try_wait_for_completion(struct completion *x);
7103 extern bool completion_done(struct completion *x);
7105 extern void complete(struct completion *);
7106 extern void complete_all(struct completion *);
7107 # 43 "include/linux/rcupdate.h" 2
7115 struct rcu_head *next;
7116 void (*func)(struct rcu_head *head);
7125 extern void synchronize_rcu_bh(void);
7126 extern void synchronize_sched(void);
7127 extern void rcu_barrier(void);
7128 extern void rcu_barrier_bh(void);
7129 extern void rcu_barrier_sched(void);
7130 extern void synchronize_sched_expedited(void);
7131 extern int sched_expedited_torture_stats(char *page);
7134 extern void rcu_init(void);
7135 extern void rcu_scheduler_starting(void);
7136 extern int rcu_needs_cpu(int cpu);
7137 extern int rcu_scheduler_active;
7140 # 1 "include/linux/rcutree.h" 1
7141 # 33 "include/linux/rcutree.h"
7142 struct notifier_block;
7144 extern void rcu_sched_qs(int cpu);
7145 extern void rcu_bh_qs(int cpu);
7146 extern int rcu_cpu_notify(struct notifier_block *self,
7147 unsigned long action, void *hcpu);
7148 extern int rcu_needs_cpu(int cpu);
7149 extern int rcu_expedited_torture_stats(char *page);
7150 # 50 "include/linux/rcutree.h"
7151 static inline __attribute__((always_inline)) void __rcu_read_lock(void)
7156 static inline __attribute__((always_inline)) void __rcu_read_unlock(void)
7163 static inline __attribute__((always_inline)) void exit_rcu(void)
7169 static inline __attribute__((always_inline)) void __rcu_read_lock_bh(void)
7173 static inline __attribute__((always_inline)) void __rcu_read_unlock_bh(void)
7178 extern void call_rcu_sched(struct rcu_head *head,
7179 void (*func)(struct rcu_head *rcu));
7180 extern void synchronize_rcu_expedited(void);
7182 static inline __attribute__((always_inline)) void synchronize_rcu_bh_expedited(void)
7184 synchronize_sched_expedited();
7187 extern void __rcu_init(void);
7188 extern void rcu_check_callbacks(int cpu, int user);
7190 extern long rcu_batches_completed(void);
7191 extern long rcu_batches_completed_bh(void);
7192 extern long rcu_batches_completed_sched(void);
7195 void rcu_enter_nohz(void);
7196 void rcu_exit_nohz(void);
7197 # 106 "include/linux/rcutree.h"
7198 static inline __attribute__((always_inline)) int rcu_blocking_is_gp(void)
7202 # 76 "include/linux/rcupdate.h" 2
7203 # 87 "include/linux/rcupdate.h"
7204 extern struct lockdep_map rcu_lock_map;
7205 # 125 "include/linux/rcupdate.h"
7206 static inline __attribute__((always_inline)) void rcu_read_lock(void)
7210 lock_acquire(&rcu_lock_map, 0, 0, 2, 1, ((void *)0), ({ __label__ __here; __here: (unsigned long)&&__here; }));
7212 # 147 "include/linux/rcupdate.h"
7213 static inline __attribute__((always_inline)) void rcu_read_unlock(void)
7215 lock_release(&rcu_lock_map, 1, ({ __label__ __here; __here: (unsigned long)&&__here; }));
7217 __rcu_read_unlock();
7219 # 165 "include/linux/rcupdate.h"
7220 static inline __attribute__((always_inline)) void rcu_read_lock_bh(void)
7222 __rcu_read_lock_bh();
7224 lock_acquire(&rcu_lock_map, 0, 0, 2, 1, ((void *)0), ({ __label__ __here; __here: (unsigned long)&&__here; }));
7232 static inline __attribute__((always_inline)) void rcu_read_unlock_bh(void)
7234 lock_release(&rcu_lock_map, 1, ({ __label__ __here; __here: (unsigned long)&&__here; }));
7236 __rcu_read_unlock_bh();
7238 # 193 "include/linux/rcupdate.h"
7239 static inline __attribute__((always_inline)) void rcu_read_lock_sched(void)
7243 lock_acquire(&rcu_lock_map, 0, 0, 2, 1, ((void *)0), ({ __label__ __here; __here: (unsigned long)&&__here; }));
7247 static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_lock_sched_notrace(void)
7258 static inline __attribute__((always_inline)) void rcu_read_unlock_sched(void)
7260 lock_release(&rcu_lock_map, 1, ({ __label__ __here; __here: (unsigned long)&&__here; }));
7266 static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_unlock_sched_notrace(void)
7271 # 266 "include/linux/rcupdate.h"
7272 struct rcu_synchronize {
7273 struct rcu_head head;
7274 struct completion completion;
7277 extern void wakeme_after_rcu(struct rcu_head *head);
7278 # 284 "include/linux/rcupdate.h"
7279 extern void call_rcu(struct rcu_head *head,
7280 void (*func)(struct rcu_head *head));
7281 # 305 "include/linux/rcupdate.h"
7282 extern void call_rcu_bh(struct rcu_head *head,
7283 void (*func)(struct rcu_head *head));
7284 # 19 "include/linux/tracepoint.h" 2
7292 void (*regfunc)(void);
7293 void (*unregfunc)(void);
7295 } __attribute__((aligned(32)));
7296 # 99 "include/linux/tracepoint.h"
7297 extern void tracepoint_update_probe_range(struct tracepoint *begin,
7298 struct tracepoint *end);
7299 # 132 "include/linux/tracepoint.h"
7300 extern int tracepoint_probe_register(const char *name, void *probe);
7306 extern int tracepoint_probe_unregister(const char *name, void *probe);
7308 extern int tracepoint_probe_register_noupdate(const char *name, void *probe);
7309 extern int tracepoint_probe_unregister_noupdate(const char *name, void *probe);
7310 extern void tracepoint_probe_update_all(void);
7312 struct tracepoint_iter {
7313 struct module *module;
7314 struct tracepoint *tracepoint;
7317 extern void tracepoint_iter_start(struct tracepoint_iter *iter);
7318 extern void tracepoint_iter_next(struct tracepoint_iter *iter);
7319 extern void tracepoint_iter_stop(struct tracepoint_iter *iter);
7320 extern void tracepoint_iter_reset(struct tracepoint_iter *iter);
7321 extern int tracepoint_get_iter_range(struct tracepoint **tracepoint,
7322 struct tracepoint *begin, struct tracepoint *end);
7329 static inline __attribute__((always_inline)) void tracepoint_synchronize_unregister(void)
7331 synchronize_sched();
7333 # 19 "include/linux/module.h" 2
7335 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/local.h" 1
7336 # 1 "include/asm-generic/local.h" 1
7340 # 1 "include/linux/percpu.h" 1
7345 # 1 "include/linux/slab.h" 1
7346 # 93 "include/linux/slab.h"
7347 void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) kmem_cache_init(void);
7348 int slab_is_available(void);
7350 struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
7353 void kmem_cache_destroy(struct kmem_cache *);
7354 int kmem_cache_shrink(struct kmem_cache *);
7355 void kmem_cache_free(struct kmem_cache *, void *);
7356 unsigned int kmem_cache_size(struct kmem_cache *);
7357 const char *kmem_cache_name(struct kmem_cache *);
7358 int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr);
7359 # 136 "include/linux/slab.h"
7360 void * __attribute__((warn_unused_result)) __krealloc(const void *, size_t, gfp_t);
7361 void * __attribute__((warn_unused_result)) krealloc(const void *, size_t, gfp_t);
7362 void kfree(const void *);
7363 void kzfree(const void *);
7364 size_t ksize(const void *);
7365 # 162 "include/linux/slab.h"
7366 # 1 "include/linux/slub_def.h" 1
7367 # 11 "include/linux/slub_def.h"
7368 # 1 "include/linux/workqueue.h" 1
7376 # 1 "include/linux/timer.h" 1
7381 # 1 "include/linux/ktime.h" 1
7382 # 25 "include/linux/ktime.h"
7383 # 1 "include/linux/jiffies.h" 1
7391 # 1 "include/linux/timex.h" 1
7392 # 64 "include/linux/timex.h"
7405 struct timeval time;
7419 int :32; int :32; int :32; int :32;
7420 int :32; int :32; int :32; int :32;
7421 int :32; int :32; int :32;
7423 # 170 "include/linux/timex.h"
7424 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/timex.h" 1
7425 # 14 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/timex.h"
7426 typedef unsigned long long cycles_t;
7428 static inline __attribute__((always_inline)) cycles_t get_cycles(void)
7430 unsigned long tmp, tmp2;
7431 __asm__ __volatile__("%0 = cycles; %1 = cycles2;" : "=d"(tmp), "=d"(tmp2));
7432 return tmp | ((cycles_t)tmp2 << 32);
7434 # 171 "include/linux/timex.h" 2
7435 # 230 "include/linux/timex.h"
7436 extern unsigned long tick_usec;
7437 extern unsigned long tick_nsec;
7443 extern int time_status;
7444 extern long time_maxerror;
7445 extern long time_esterror;
7447 extern long time_adjust;
7449 extern void ntp_init(void);
7450 extern void ntp_clear(void);
7456 static inline __attribute__((always_inline)) int ntp_synced(void)
7458 return !(time_status & 0x0040);
7460 # 272 "include/linux/timex.h"
7461 extern u64 tick_length;
7463 extern void second_overflow(void);
7464 extern void update_ntp_one_tick(void);
7465 extern int do_adjtimex(struct timex *);
7470 int read_current_timer(unsigned long *timer_val);
7471 # 9 "include/linux/jiffies.h" 2
7472 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/param.h" 1
7473 # 10 "include/linux/jiffies.h" 2
7474 # 81 "include/linux/jiffies.h"
7475 extern u64 __attribute__((section(".data"))) jiffies_64;
7476 extern unsigned long volatile __attribute__((section(".data"))) jiffies;
7479 u64 get_jiffies_64(void);
7480 # 183 "include/linux/jiffies.h"
7481 extern unsigned long preset_lpj;
7482 # 296 "include/linux/jiffies.h"
7483 extern unsigned int jiffies_to_msecs(const unsigned long j);
7484 extern unsigned int jiffies_to_usecs(const unsigned long j);
7485 extern unsigned long msecs_to_jiffies(const unsigned int m);
7486 extern unsigned long usecs_to_jiffies(const unsigned int u);
7487 extern unsigned long timespec_to_jiffies(const struct timespec *value);
7488 extern void jiffies_to_timespec(const unsigned long jiffies,
7489 struct timespec *value);
7490 extern unsigned long timeval_to_jiffies(const struct timeval *value);
7491 extern void jiffies_to_timeval(const unsigned long jiffies,
7492 struct timeval *value);
7493 extern clock_t jiffies_to_clock_t(long x);
7494 extern unsigned long clock_t_to_jiffies(unsigned long x);
7495 extern u64 jiffies_64_to_clock_t(u64 x);
7496 extern u64 nsec_to_clock_t(u64 x);
7497 # 26 "include/linux/ktime.h" 2
7498 # 46 "include/linux/ktime.h"
7512 typedef union ktime ktime_t;
7513 # 151 "include/linux/ktime.h"
7514 static inline __attribute__((always_inline)) ktime_t ktime_set(const long secs, const unsigned long nsecs)
7516 return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } };
7518 # 163 "include/linux/ktime.h"
7519 static inline __attribute__((always_inline)) ktime_t ktime_sub(const ktime_t lhs, const ktime_t rhs)
7523 res.tv64 = lhs.tv64 - rhs.tv64;
7524 if (res.tv.nsec < 0)
7525 res.tv.nsec += 1000000000L;
7529 # 181 "include/linux/ktime.h"
7530 static inline __attribute__((always_inline)) ktime_t ktime_add(const ktime_t add1, const ktime_t add2)
7534 res.tv64 = add1.tv64 + add2.tv64;
7535 # 194 "include/linux/ktime.h"
7536 if (res.tv.nsec >= 1000000000L)
7537 res.tv64 += (u32)-1000000000L;
7541 # 207 "include/linux/ktime.h"
7542 extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec);
7543 # 216 "include/linux/ktime.h"
7544 extern ktime_t ktime_sub_ns(const ktime_t kt, u64 nsec);
7552 static inline __attribute__((always_inline)) ktime_t timespec_to_ktime(const struct timespec ts)
7554 return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec,
7555 .nsec = (s32)ts.tv_nsec } };
7564 static inline __attribute__((always_inline)) ktime_t timeval_to_ktime(const struct timeval tv)
7566 return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec,
7567 .nsec = (s32)tv.tv_usec * 1000 } };
7576 static inline __attribute__((always_inline)) struct timespec ktime_to_timespec(const ktime_t kt)
7578 return (struct timespec) { .tv_sec = (time_t) kt.tv.sec,
7579 .tv_nsec = (long) kt.tv.nsec };
7588 static inline __attribute__((always_inline)) struct timeval ktime_to_timeval(const ktime_t kt)
7590 return (struct timeval) {
7591 .tv_sec = (time_t) kt.tv.sec,
7592 .tv_usec = (suseconds_t) (kt.tv.nsec / 1000L) };
7601 static inline __attribute__((always_inline)) s64 ktime_to_ns(const ktime_t kt)
7603 return (s64) kt.tv.sec * 1000000000L + kt.tv.nsec;
7605 # 287 "include/linux/ktime.h"
7606 static inline __attribute__((always_inline)) int ktime_equal(const ktime_t cmp1, const ktime_t cmp2)
7608 return cmp1.tv64 == cmp2.tv64;
7611 static inline __attribute__((always_inline)) s64 ktime_to_us(const ktime_t kt)
7613 struct timeval tv = ktime_to_timeval(kt);
7614 return (s64) tv.tv_sec * 1000000L + tv.tv_usec;
7617 static inline __attribute__((always_inline)) s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
7619 return ktime_to_us(ktime_sub(later, earlier));
7622 static inline __attribute__((always_inline)) ktime_t ktime_add_us(const ktime_t kt, const u64 usec)
7624 return ktime_add_ns(kt, usec * 1000);
7627 static inline __attribute__((always_inline)) ktime_t ktime_sub_us(const ktime_t kt, const u64 usec)
7629 return ktime_sub_ns(kt, usec * 1000);
7632 extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs);
7633 # 325 "include/linux/ktime.h"
7634 extern void ktime_get_ts(struct timespec *ts);
7639 static inline __attribute__((always_inline)) ktime_t ns_to_ktime(u64 ns)
7641 static const ktime_t ktime_zero = { .tv64 = 0 };
7642 return ktime_add_ns(ktime_zero, ns);
7644 # 6 "include/linux/timer.h" 2
7646 # 1 "include/linux/debugobjects.h" 1
7653 enum debug_obj_state {
7656 ODEBUG_STATE_INACTIVE,
7657 ODEBUG_STATE_ACTIVE,
7658 ODEBUG_STATE_DESTROYED,
7659 ODEBUG_STATE_NOTAVAILABLE,
7663 struct debug_obj_descr;
7664 # 26 "include/linux/debugobjects.h"
7666 struct hlist_node node;
7667 enum debug_obj_state state;
7669 struct debug_obj_descr *descr;
7671 # 45 "include/linux/debugobjects.h"
7672 struct debug_obj_descr {
7675 int (*fixup_init) (void *addr, enum debug_obj_state state);
7676 int (*fixup_activate) (void *addr, enum debug_obj_state state);
7677 int (*fixup_destroy) (void *addr, enum debug_obj_state state);
7678 int (*fixup_free) (void *addr, enum debug_obj_state state);
7682 extern void debug_object_init (void *addr, struct debug_obj_descr *descr);
7684 debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr);
7685 extern void debug_object_activate (void *addr, struct debug_obj_descr *descr);
7686 extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
7687 extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
7688 extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
7690 extern void debug_objects_early_init(void);
7691 extern void debug_objects_mem_init(void);
7692 # 86 "include/linux/debugobjects.h"
7693 static inline __attribute__((always_inline)) void
7694 debug_check_no_obj_freed(const void *address, unsigned long size) { }
7695 # 8 "include/linux/timer.h" 2
7701 struct list_head entry;
7702 unsigned long expires;
7704 void (*function)(unsigned long);
7707 struct tvec_base *base;
7710 char start_comm[16];
7714 struct lockdep_map lockdep_map;
7718 extern struct tvec_base boot_tvec_bases;
7719 # 59 "include/linux/timer.h"
7720 void init_timer_key(struct timer_list *timer,
7722 struct lock_class_key *key);
7723 void init_timer_deferrable_key(struct timer_list *timer,
7725 struct lock_class_key *key);
7726 # 111 "include/linux/timer.h"
7727 extern void init_timer_on_stack_key(struct timer_list *timer,
7729 struct lock_class_key *key);
7730 extern void destroy_timer_on_stack(struct timer_list *timer);
7731 # 125 "include/linux/timer.h"
7732 static inline __attribute__((always_inline)) void setup_timer_key(struct timer_list * timer,
7734 struct lock_class_key *key,
7735 void (*function)(unsigned long),
7738 timer->function = function;
7740 init_timer_key(timer, name, key);
7743 static inline __attribute__((always_inline)) void setup_timer_on_stack_key(struct timer_list *timer,
7745 struct lock_class_key *key,
7746 void (*function)(unsigned long),
7749 timer->function = function;
7751 init_timer_on_stack_key(timer, name, key);
7753 # 157 "include/linux/timer.h"
7754 static inline __attribute__((always_inline)) int timer_pending(const struct timer_list * timer)
7756 return timer->entry.next != ((void *)0);
7759 extern void add_timer_on(struct timer_list *timer, int cpu);
7760 extern int del_timer(struct timer_list * timer);
7761 extern int mod_timer(struct timer_list *timer, unsigned long expires);
7762 extern int mod_timer_pending(struct timer_list *timer, unsigned long expires);
7763 extern int mod_timer_pinned(struct timer_list *timer, unsigned long expires);
7764 # 181 "include/linux/timer.h"
7765 extern unsigned long get_next_timer_interrupt(unsigned long now);
7772 extern int timer_stats_active;
7776 extern void init_timer_stats(void);
7778 extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
7779 void *timerf, char *comm,
7780 unsigned int timer_flag);
7782 extern void __timer_stats_timer_set_start_info(struct timer_list *timer,
7785 static inline __attribute__((always_inline)) void timer_stats_timer_set_start_info(struct timer_list *timer)
7787 if (__builtin_expect(!!(!timer_stats_active), 1))
7789 __timer_stats_timer_set_start_info(timer, __builtin_return_address(0));
7792 static inline __attribute__((always_inline)) void timer_stats_timer_clear_start_info(struct timer_list *timer)
7794 timer->start_site = ((void *)0);
7796 # 226 "include/linux/timer.h"
7797 extern void add_timer(struct timer_list *timer);
7798 # 238 "include/linux/timer.h"
7799 extern void init_timers(void);
7800 extern void run_local_timers(void);
7802 extern enum hrtimer_restart it_real_fn(struct hrtimer *);
7804 unsigned long __round_jiffies(unsigned long j, int cpu);
7805 unsigned long __round_jiffies_relative(unsigned long j, int cpu);
7806 unsigned long round_jiffies(unsigned long j);
7807 unsigned long round_jiffies_relative(unsigned long j);
7809 unsigned long __round_jiffies_up(unsigned long j, int cpu);
7810 unsigned long __round_jiffies_up_relative(unsigned long j, int cpu);
7811 unsigned long round_jiffies_up(unsigned long j);
7812 unsigned long round_jiffies_up_relative(unsigned long j);
7813 # 9 "include/linux/workqueue.h" 2
7819 struct workqueue_struct;
7822 typedef void (*work_func_t)(struct work_struct *work);
7830 struct work_struct {
7835 struct list_head entry;
7838 struct lockdep_map lockdep_map;
7844 struct delayed_work {
7845 struct work_struct work;
7846 struct timer_list timer;
7849 static inline __attribute__((always_inline)) struct delayed_work *to_delayed_work(struct work_struct *work)
7851 return ({ const typeof( ((struct delayed_work *)0)->work ) *__mptr = (work); (struct delayed_work *)( (char *)__mptr - __builtin_offsetof(struct delayed_work,work) );});
7854 struct execute_work {
7855 struct work_struct work;
7857 # 167 "include/linux/workqueue.h"
7858 extern struct workqueue_struct *
7859 __create_workqueue_key(const char *name, int singlethread,
7860 int freezeable, int rt, struct lock_class_key *key,
7861 const char *lock_name);
7862 # 198 "include/linux/workqueue.h"
7863 extern void destroy_workqueue(struct workqueue_struct *wq);
7865 extern int queue_work(struct workqueue_struct *wq, struct work_struct *work);
7866 extern int queue_work_on(int cpu, struct workqueue_struct *wq,
7867 struct work_struct *work);
7868 extern int queue_delayed_work(struct workqueue_struct *wq,
7869 struct delayed_work *work, unsigned long delay);
7870 extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
7871 struct delayed_work *work, unsigned long delay);
7873 extern void flush_workqueue(struct workqueue_struct *wq);
7874 extern void flush_scheduled_work(void);
7875 extern void flush_delayed_work(struct delayed_work *work);
7877 extern int schedule_work(struct work_struct *work);
7878 extern int schedule_work_on(int cpu, struct work_struct *work);
7879 extern int schedule_delayed_work(struct delayed_work *work, unsigned long delay);
7880 extern int schedule_delayed_work_on(int cpu, struct delayed_work *work,
7881 unsigned long delay);
7882 extern int schedule_on_each_cpu(work_func_t func);
7883 extern int current_is_keventd(void);
7884 extern int keventd_up(void);
7886 extern void init_workqueues(void);
7887 int execute_in_process_context(work_func_t fn, struct execute_work *);
7889 extern int flush_work(struct work_struct *work);
7891 extern int cancel_work_sync(struct work_struct *work);
7899 static inline __attribute__((always_inline)) int cancel_delayed_work(struct delayed_work *work)
7903 ret = del_timer(&work->timer);
7905 clear_bit(0, ((unsigned long *)(&(&work->work)->data)));
7914 static inline __attribute__((always_inline)) int __cancel_delayed_work(struct delayed_work *work)
7918 ret = del_timer(&work->timer);
7920 clear_bit(0, ((unsigned long *)(&(&work->work)->data)));
7924 extern int cancel_delayed_work_sync(struct delayed_work *work);
7927 static inline __attribute__((always_inline))
7928 void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq,
7929 struct delayed_work *work)
7931 cancel_delayed_work_sync(work);
7935 static inline __attribute__((always_inline))
7936 void cancel_rearming_delayed_work(struct delayed_work *work)
7938 cancel_delayed_work_sync(work);
7942 static inline __attribute__((always_inline)) long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)
7946 # 12 "include/linux/slub_def.h" 2
7948 # 1 "include/linux/kmemtrace.h" 1
7949 # 12 "include/linux/kmemtrace.h"
7950 # 1 "include/trace/events/kmem.h" 1
7958 # 1 "include/linux/tracepoint.h" 1
7959 # 9 "include/trace/events/kmem.h" 2
7960 # 47 "include/trace/events/kmem.h"
7961 extern struct tracepoint __tracepoint_kmalloc; static inline __attribute__((always_inline)) void trace_kmalloc(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags) { if (__builtin_expect(!!(__tracepoint_kmalloc.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kmalloc)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kmalloc)->funcs) *)&((&__tracepoint_kmalloc)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags))(*it_func))(call_site, ptr, bytes_req, bytes_alloc, gfp_flags); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kmalloc(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags)) { return tracepoint_probe_register("kmalloc", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kmalloc(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags)) { return tracepoint_probe_unregister("kmalloc", (void *)probe); };
7962 # 81 "include/trace/events/kmem.h"
7963 extern struct tracepoint __tracepoint_kmem_cache_alloc; static inline __attribute__((always_inline)) void trace_kmem_cache_alloc(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags) { if (__builtin_expect(!!(__tracepoint_kmem_cache_alloc.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kmem_cache_alloc)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kmem_cache_alloc)->funcs) *)&((&__tracepoint_kmem_cache_alloc)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags))(*it_func))(call_site, ptr, bytes_req, bytes_alloc, gfp_flags); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kmem_cache_alloc(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags)) { return tracepoint_probe_register("kmem_cache_alloc", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kmem_cache_alloc(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags)) { return tracepoint_probe_unregister("kmem_cache_alloc", (void *)probe); };
7964 # 115 "include/trace/events/kmem.h"
7965 extern struct tracepoint __tracepoint_kmalloc_node; static inline __attribute__((always_inline)) void trace_kmalloc_node(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node) { if (__builtin_expect(!!(__tracepoint_kmalloc_node.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kmalloc_node)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kmalloc_node)->funcs) *)&((&__tracepoint_kmalloc_node)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node))(*it_func))(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kmalloc_node(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node)) { return tracepoint_probe_register("kmalloc_node", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kmalloc_node(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node)) { return tracepoint_probe_unregister("kmalloc_node", (void *)probe); };
7966 # 153 "include/trace/events/kmem.h"
7967 extern struct tracepoint __tracepoint_kmem_cache_alloc_node; static inline __attribute__((always_inline)) void trace_kmem_cache_alloc_node(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node) { if (__builtin_expect(!!(__tracepoint_kmem_cache_alloc_node.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kmem_cache_alloc_node)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kmem_cache_alloc_node)->funcs) *)&((&__tracepoint_kmem_cache_alloc_node)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node))(*it_func))(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kmem_cache_alloc_node(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node)) { return tracepoint_probe_register("kmem_cache_alloc_node", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kmem_cache_alloc_node(void (*probe)(unsigned long call_site, const void *ptr, size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags, int node)) { return tracepoint_probe_unregister("kmem_cache_alloc_node", (void *)probe); };
7968 # 191 "include/trace/events/kmem.h"
7969 extern struct tracepoint __tracepoint_kfree; static inline __attribute__((always_inline)) void trace_kfree(unsigned long call_site, const void *ptr) { if (__builtin_expect(!!(__tracepoint_kfree.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kfree)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kfree)->funcs) *)&((&__tracepoint_kfree)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr))(*it_func))(call_site, ptr); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kfree(void (*probe)(unsigned long call_site, const void *ptr)) { return tracepoint_probe_register("kfree", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kfree(void (*probe)(unsigned long call_site, const void *ptr)) { return tracepoint_probe_unregister("kfree", (void *)probe); };
7970 # 210 "include/trace/events/kmem.h"
7971 extern struct tracepoint __tracepoint_kmem_cache_free; static inline __attribute__((always_inline)) void trace_kmem_cache_free(unsigned long call_site, const void *ptr) { if (__builtin_expect(!!(__tracepoint_kmem_cache_free.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_kmem_cache_free)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_kmem_cache_free)->funcs) *)&((&__tracepoint_kmem_cache_free)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(unsigned long call_site, const void *ptr))(*it_func))(call_site, ptr); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_kmem_cache_free(void (*probe)(unsigned long call_site, const void *ptr)) { return tracepoint_probe_register("kmem_cache_free", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_kmem_cache_free(void (*probe)(unsigned long call_site, const void *ptr)) { return tracepoint_probe_unregister("kmem_cache_free", (void *)probe); };
7972 # 229 "include/trace/events/kmem.h"
7973 extern struct tracepoint __tracepoint_mm_page_free_direct; static inline __attribute__((always_inline)) void trace_mm_page_free_direct(struct page *page, unsigned int order) { if (__builtin_expect(!!(__tracepoint_mm_page_free_direct.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_page_free_direct)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_page_free_direct)->funcs) *)&((&__tracepoint_mm_page_free_direct)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, unsigned int order))(*it_func))(page, order); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_page_free_direct(void (*probe)(struct page *page, unsigned int order)) { return tracepoint_probe_register("mm_page_free_direct", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_page_free_direct(void (*probe)(struct page *page, unsigned int order)) { return tracepoint_probe_unregister("mm_page_free_direct", (void *)probe); };
7974 # 251 "include/trace/events/kmem.h"
7975 extern struct tracepoint __tracepoint_mm_pagevec_free; static inline __attribute__((always_inline)) void trace_mm_pagevec_free(struct page *page, int cold) { if (__builtin_expect(!!(__tracepoint_mm_pagevec_free.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_pagevec_free)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_pagevec_free)->funcs) *)&((&__tracepoint_mm_pagevec_free)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, int cold))(*it_func))(page, cold); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_pagevec_free(void (*probe)(struct page *page, int cold)) { return tracepoint_probe_register("mm_pagevec_free", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_pagevec_free(void (*probe)(struct page *page, int cold)) { return tracepoint_probe_unregister("mm_pagevec_free", (void *)probe); };
7976 # 273 "include/trace/events/kmem.h"
7977 extern struct tracepoint __tracepoint_mm_page_alloc; static inline __attribute__((always_inline)) void trace_mm_page_alloc(struct page *page, unsigned int order, gfp_t gfp_flags, int migratetype) { if (__builtin_expect(!!(__tracepoint_mm_page_alloc.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_page_alloc)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_page_alloc)->funcs) *)&((&__tracepoint_mm_page_alloc)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, unsigned int order, gfp_t gfp_flags, int migratetype))(*it_func))(page, order, gfp_flags, migratetype); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_page_alloc(void (*probe)(struct page *page, unsigned int order, gfp_t gfp_flags, int migratetype)) { return tracepoint_probe_register("mm_page_alloc", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_page_alloc(void (*probe)(struct page *page, unsigned int order, gfp_t gfp_flags, int migratetype)) { return tracepoint_probe_unregister("mm_page_alloc", (void *)probe); };
7978 # 302 "include/trace/events/kmem.h"
7979 extern struct tracepoint __tracepoint_mm_page_alloc_zone_locked; static inline __attribute__((always_inline)) void trace_mm_page_alloc_zone_locked(struct page *page, unsigned int order, int migratetype) { if (__builtin_expect(!!(__tracepoint_mm_page_alloc_zone_locked.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_page_alloc_zone_locked)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_page_alloc_zone_locked)->funcs) *)&((&__tracepoint_mm_page_alloc_zone_locked)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, unsigned int order, int migratetype))(*it_func))(page, order, migratetype); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_page_alloc_zone_locked(void (*probe)(struct page *page, unsigned int order, int migratetype)) { return tracepoint_probe_register("mm_page_alloc_zone_locked", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_page_alloc_zone_locked(void (*probe)(struct page *page, unsigned int order, int migratetype)) { return tracepoint_probe_unregister("mm_page_alloc_zone_locked", (void *)probe); };
7980 # 328 "include/trace/events/kmem.h"
7981 extern struct tracepoint __tracepoint_mm_page_pcpu_drain; static inline __attribute__((always_inline)) void trace_mm_page_pcpu_drain(struct page *page, int order, int migratetype) { if (__builtin_expect(!!(__tracepoint_mm_page_pcpu_drain.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_page_pcpu_drain)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_page_pcpu_drain)->funcs) *)&((&__tracepoint_mm_page_pcpu_drain)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, int order, int migratetype))(*it_func))(page, order, migratetype); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_page_pcpu_drain(void (*probe)(struct page *page, int order, int migratetype)) { return tracepoint_probe_register("mm_page_pcpu_drain", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_page_pcpu_drain(void (*probe)(struct page *page, int order, int migratetype)) { return tracepoint_probe_unregister("mm_page_pcpu_drain", (void *)probe); };
7982 # 353 "include/trace/events/kmem.h"
7983 extern struct tracepoint __tracepoint_mm_page_alloc_extfrag; static inline __attribute__((always_inline)) void trace_mm_page_alloc_extfrag(struct page *page, int alloc_order, int fallback_order, int alloc_migratetype, int fallback_migratetype) { if (__builtin_expect(!!(__tracepoint_mm_page_alloc_extfrag.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_mm_page_alloc_extfrag)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_mm_page_alloc_extfrag)->funcs) *)&((&__tracepoint_mm_page_alloc_extfrag)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct page *page, int alloc_order, int fallback_order, int alloc_migratetype, int fallback_migratetype))(*it_func))(page, alloc_order, fallback_order, alloc_migratetype, fallback_migratetype); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_mm_page_alloc_extfrag(void (*probe)(struct page *page, int alloc_order, int fallback_order, int alloc_migratetype, int fallback_migratetype)) { return tracepoint_probe_register("mm_page_alloc_extfrag", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_mm_page_alloc_extfrag(void (*probe)(struct page *page, int alloc_order, int fallback_order, int alloc_migratetype, int fallback_migratetype)) { return tracepoint_probe_unregister("mm_page_alloc_extfrag", (void *)probe); };
7984 # 394 "include/trace/events/kmem.h"
7985 # 1 "include/trace/define_trace.h" 1
7986 # 394 "include/trace/events/kmem.h" 2
7987 # 13 "include/linux/kmemtrace.h" 2
7992 static inline __attribute__((always_inline)) void kmemtrace_init(void)
7995 # 14 "include/linux/slub_def.h" 2
7996 # 1 "include/linux/kmemleak.h" 1
7997 # 60 "include/linux/kmemleak.h"
7998 static inline __attribute__((always_inline)) void kmemleak_init(void)
8001 static inline __attribute__((always_inline)) void kmemleak_alloc(const void *ptr, size_t size, int min_count,
8005 static inline __attribute__((always_inline)) void kmemleak_alloc_recursive(const void *ptr, size_t size,
8006 int min_count, unsigned long flags,
8010 static inline __attribute__((always_inline)) void kmemleak_free(const void *ptr)
8013 static inline __attribute__((always_inline)) void kmemleak_free_part(const void *ptr, size_t size)
8016 static inline __attribute__((always_inline)) void kmemleak_free_recursive(const void *ptr, unsigned long flags)
8019 static inline __attribute__((always_inline)) void kmemleak_not_leak(const void *ptr)
8022 static inline __attribute__((always_inline)) void kmemleak_ignore(const void *ptr)
8025 static inline __attribute__((always_inline)) void kmemleak_scan_area(const void *ptr, unsigned long offset,
8026 size_t length, gfp_t gfp)
8029 static inline __attribute__((always_inline)) void kmemleak_erase(void **ptr)
8032 static inline __attribute__((always_inline)) void kmemleak_no_scan(const void *ptr)
8035 # 15 "include/linux/slub_def.h" 2
8044 FREE_REMOVE_PARTIAL,
8054 DEACTIVATE_REMOTE_FREES,
8056 NR_SLUB_STAT_ITEMS };
8058 struct kmem_cache_cpu {
8062 unsigned int offset;
8063 unsigned int objsize;
8065 unsigned stat[NR_SLUB_STAT_ITEMS];
8069 struct kmem_cache_node {
8070 spinlock_t list_lock;
8071 unsigned long nr_partial;
8072 struct list_head partial;
8074 atomic_long_t nr_slabs;
8075 atomic_long_t total_objects;
8076 struct list_head full;
8085 struct kmem_cache_order_objects {
8094 unsigned long flags;
8098 struct kmem_cache_order_objects oo;
8104 struct kmem_cache_node local_node;
8107 struct kmem_cache_order_objects max;
8108 struct kmem_cache_order_objects min;
8111 void (*ctor)(void *);
8114 unsigned long min_partial;
8116 struct list_head list;
8118 struct kobject kobj;
8119 # 110 "include/linux/slub_def.h"
8120 struct kmem_cache_cpu cpu_slab;
8123 # 142 "include/linux/slub_def.h"
8124 extern struct kmem_cache kmalloc_caches[(12 + 2)];
8130 static inline __attribute__((always_inline)) __attribute__((always_inline)) int kmalloc_index(size_t size)
8136 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) );
8138 if (8 <= 32 && size > 64 && size <= 96)
8140 if (8 <= 64 && size > 128 && size <= 192)
8142 if (size <= 8) return 3;
8143 if (size <= 16) return 4;
8144 if (size <= 32) return 5;
8145 if (size <= 64) return 6;
8146 if (size <= 128) return 7;
8147 if (size <= 256) return 8;
8148 if (size <= 512) return 9;
8149 if (size <= 1024) return 10;
8150 if (size <= 2 * 1024) return 11;
8151 if (size <= 4 * 1024) return 12;
8156 if (size <= 8 * 1024) return 13;
8157 if (size <= 16 * 1024) return 14;
8158 if (size <= 32 * 1024) return 15;
8159 if (size <= 64 * 1024) return 16;
8160 if (size <= 128 * 1024) return 17;
8161 if (size <= 256 * 1024) return 18;
8162 if (size <= 512 * 1024) return 19;
8163 if (size <= 1024 * 1024) return 20;
8164 if (size <= 2 * 1024 * 1024) return 21;
8166 # 192 "include/linux/slub_def.h"
8175 static inline __attribute__((always_inline)) __attribute__((always_inline)) struct kmem_cache *kmalloc_slab(size_t size)
8177 int index = kmalloc_index(size);
8182 return &kmalloc_caches[index];
8184 # 217 "include/linux/slub_def.h"
8185 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
8186 void *__kmalloc(size_t size, gfp_t flags);
8191 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *
8192 kmem_cache_alloc_notrace(struct kmem_cache *s, gfp_t gfpflags)
8194 return kmem_cache_alloc(s, gfpflags);
8198 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *kmalloc_large(size_t size, gfp_t flags)
8200 unsigned int order = get_order(size);
8201 void *ret = (void *) __get_free_pages(flags | (( gfp_t)0x4000u), order);
8203 kmemleak_alloc(ret, size, 1, flags);
8204 trace_kmalloc(({ __label__ __here; __here: (unsigned long)&&__here; }), ret, size, (1UL << 12) << order, flags);
8209 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *kmalloc(size_t size, gfp_t flags)
8213 if (__builtin_constant_p(size)) {
8214 if (size > (2 * (1UL << 12)))
8215 return kmalloc_large(size, flags);
8217 if (!(flags & (( gfp_t)0x01u))) {
8218 struct kmem_cache *s = kmalloc_slab(size);
8221 return ((void *)16);
8223 ret = kmem_cache_alloc_notrace(s, flags);
8225 trace_kmalloc(({ __label__ __here; __here: (unsigned long)&&__here; }), ret, size, s->size, flags);
8230 return __kmalloc(size, flags);
8232 # 163 "include/linux/slab.h" 2
8233 # 220 "include/linux/slab.h"
8234 static inline __attribute__((always_inline)) void *kcalloc(size_t n, size_t size, gfp_t flags)
8236 if (size != 0 && n > (~0UL) / size)
8238 return __kmalloc(n * size, flags | (( gfp_t)0x8000u));
8240 # 238 "include/linux/slab.h"
8241 static inline __attribute__((always_inline)) void *kmalloc_node(size_t size, gfp_t flags, int node)
8243 return kmalloc(size, flags);
8246 static inline __attribute__((always_inline)) void *__kmalloc_node(size_t size, gfp_t flags, int node)
8248 return __kmalloc(size, flags);
8251 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
8253 static inline __attribute__((always_inline)) void *kmem_cache_alloc_node(struct kmem_cache *cachep,
8254 gfp_t flags, int node)
8256 return kmem_cache_alloc(cachep, flags);
8258 # 266 "include/linux/slab.h"
8259 extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long);
8260 # 303 "include/linux/slab.h"
8261 static inline __attribute__((always_inline)) void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)
8263 return kmem_cache_alloc(k, flags | (( gfp_t)0x8000u));
8271 static inline __attribute__((always_inline)) void *kzalloc(size_t size, gfp_t flags)
8273 return kmalloc(size, flags | (( gfp_t)0x8000u));
8282 static inline __attribute__((always_inline)) void *kzalloc_node(size_t size, gfp_t flags, int node)
8284 return kmalloc_node(size, flags | (( gfp_t)0x8000u), node);
8287 void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) kmem_cache_init_late(void);
8288 # 6 "include/linux/percpu.h" 2
8291 # 1 "include/linux/pfn.h" 1
8292 # 9 "include/linux/percpu.h" 2
8294 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/percpu.h" 1
8295 # 1 "include/asm-generic/percpu.h" 1
8301 # 1 "include/linux/percpu-defs.h" 1
8302 # 7 "include/asm-generic/percpu.h" 2
8303 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/percpu.h" 2
8304 # 11 "include/linux/percpu.h" 2
8305 # 166 "include/linux/percpu.h"
8306 static inline __attribute__((always_inline)) void *__alloc_percpu(size_t size, size_t align)
8313 ({ static int __warned; int __ret_warn_once = !!(align > (1 << 5)); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/percpu.h"), "i"(173), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = 1; __builtin_expect(!!(__ret_warn_once), 0); });
8314 return kzalloc(size, ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
8317 static inline __attribute__((always_inline)) void free_percpu(void *p)
8322 static inline __attribute__((always_inline)) void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) setup_per_cpu_areas(void) { }
8324 static inline __attribute__((always_inline)) void *pcpu_lpage_remapped(void *kaddr)
8328 # 5 "include/asm-generic/local.h" 2
8330 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
8331 # 7 "include/asm-generic/local.h" 2
8332 # 21 "include/asm-generic/local.h"
8337 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/local.h" 2
8338 # 21 "include/linux/module.h" 2
8339 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/module.h" 1
8340 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/module.h"
8341 struct mod_arch_specific {
8342 Elf32_Shdr *text_l1;
8343 Elf32_Shdr *data_a_l1;
8344 Elf32_Shdr *bss_a_l1;
8345 Elf32_Shdr *data_b_l1;
8346 Elf32_Shdr *bss_b_l1;
8347 Elf32_Shdr *text_l2;
8348 Elf32_Shdr *data_l2;
8351 # 22 "include/linux/module.h" 2
8353 # 1 "include/trace/events/module.h" 1
8360 # 1 "include/linux/tracepoint.h" 1
8361 # 8 "include/trace/events/module.h" 2
8372 extern struct tracepoint __tracepoint_module_load; static inline __attribute__((always_inline)) void trace_module_load(struct module *mod) { if (__builtin_expect(!!(__tracepoint_module_load.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_module_load)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_module_load)->funcs) *)&((&__tracepoint_module_load)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct module *mod))(*it_func))(mod); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_module_load(void (*probe)(struct module *mod)) { return tracepoint_probe_register("module_load", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_module_load(void (*probe)(struct module *mod)) { return tracepoint_probe_unregister("module_load", (void *)probe); };
8373 # 37 "include/trace/events/module.h"
8374 extern struct tracepoint __tracepoint_module_free; static inline __attribute__((always_inline)) void trace_module_free(struct module *mod) { if (__builtin_expect(!!(__tracepoint_module_free.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_module_free)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_module_free)->funcs) *)&((&__tracepoint_module_free)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct module *mod))(*it_func))(mod); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_module_free(void (*probe)(struct module *mod)) { return tracepoint_probe_register("module_free", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_module_free(void (*probe)(struct module *mod)) { return tracepoint_probe_unregister("module_free", (void *)probe); };
8375 # 54 "include/trace/events/module.h"
8376 extern struct tracepoint __tracepoint_module_get; static inline __attribute__((always_inline)) void trace_module_get(struct module *mod, unsigned long ip, int refcnt) { if (__builtin_expect(!!(__tracepoint_module_get.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_module_get)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_module_get)->funcs) *)&((&__tracepoint_module_get)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct module *mod, unsigned long ip, int refcnt))(*it_func))(mod, ip, refcnt); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_module_get(void (*probe)(struct module *mod, unsigned long ip, int refcnt)) { return tracepoint_probe_register("module_get", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_module_get(void (*probe)(struct module *mod, unsigned long ip, int refcnt)) { return tracepoint_probe_unregister("module_get", (void *)probe); };
8377 # 76 "include/trace/events/module.h"
8378 extern struct tracepoint __tracepoint_module_put; static inline __attribute__((always_inline)) void trace_module_put(struct module *mod, unsigned long ip, int refcnt) { if (__builtin_expect(!!(__tracepoint_module_put.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_module_put)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_module_put)->funcs) *)&((&__tracepoint_module_put)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(struct module *mod, unsigned long ip, int refcnt))(*it_func))(mod, ip, refcnt); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_module_put(void (*probe)(struct module *mod, unsigned long ip, int refcnt)) { return tracepoint_probe_register("module_put", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_module_put(void (*probe)(struct module *mod, unsigned long ip, int refcnt)) { return tracepoint_probe_unregister("module_put", (void *)probe); };
8379 # 98 "include/trace/events/module.h"
8380 extern struct tracepoint __tracepoint_module_request; static inline __attribute__((always_inline)) void trace_module_request(char *name, bool wait, unsigned long ip) { if (__builtin_expect(!!(__tracepoint_module_request.state), 0)) do { void **it_func; rcu_read_lock_sched_notrace(); it_func = ({ typeof((&__tracepoint_module_request)->funcs) _________p1 = (*(volatile typeof((&__tracepoint_module_request)->funcs) *)&((&__tracepoint_module_request)->funcs)); do { } while(0); (_________p1); }); if (it_func) { do { ((void(*)(char *name, bool wait, unsigned long ip))(*it_func))(name, wait, ip); } while (*(++it_func)); } rcu_read_unlock_sched_notrace(); } while (0); } static inline __attribute__((always_inline)) int register_trace_module_request(void (*probe)(char *name, bool wait, unsigned long ip)) { return tracepoint_probe_register("module_request", (void *)probe); } static inline __attribute__((always_inline)) int unregister_trace_module_request(void (*probe)(char *name, bool wait, unsigned long ip)) { return tracepoint_probe_unregister("module_request", (void *)probe); };
8381 # 125 "include/trace/events/module.h"
8382 # 1 "include/trace/define_trace.h" 1
8383 # 126 "include/trace/events/module.h" 2
8384 # 24 "include/linux/module.h" 2
8385 # 35 "include/linux/module.h"
8386 struct kernel_symbol
8388 unsigned long value;
8392 struct modversion_info
8395 char name[(64 - sizeof(unsigned long))];
8400 struct module_attribute {
8401 struct attribute attr;
8402 ssize_t (*show)(struct module_attribute *, struct module *, char *);
8403 ssize_t (*store)(struct module_attribute *, struct module *,
8404 const char *, size_t count);
8405 void (*setup)(struct module *, const char *);
8406 int (*test)(struct module *);
8407 void (*free)(struct module *);
8410 struct module_kobject
8412 struct kobject kobj;
8414 struct kobject *drivers_dir;
8415 struct module_param_attrs *mp;
8419 extern int init_module(void);
8420 extern void cleanup_module(void);
8423 struct exception_table_entry;
8425 const struct exception_table_entry *
8426 search_extable(const struct exception_table_entry *first,
8427 const struct exception_table_entry *last,
8428 unsigned long value);
8429 void sort_extable(struct exception_table_entry *start,
8430 struct exception_table_entry *finish);
8431 void sort_main_extable(void);
8432 void trim_init_extable(struct module *m);
8439 extern struct module __this_module;
8440 # 170 "include/linux/module.h"
8441 const struct exception_table_entry *search_exception_tables(unsigned long add);
8443 struct notifier_block;
8448 void *__symbol_get(const char *symbol);
8449 void *__symbol_get_gpl(const char *symbol);
8450 # 227 "include/linux/module.h"
8454 MODULE_STATE_COMING,
8460 enum module_state state;
8463 struct list_head list;
8466 char name[(64 - sizeof(unsigned long))];
8469 struct module_kobject mkobj;
8470 struct module_attribute *modinfo_attrs;
8471 const char *version;
8472 const char *srcversion;
8473 struct kobject *holders_dir;
8476 const struct kernel_symbol *syms;
8477 const unsigned long *crcs;
8478 unsigned int num_syms;
8481 struct kernel_param *kp;
8482 unsigned int num_kp;
8485 unsigned int num_gpl_syms;
8486 const struct kernel_symbol *gpl_syms;
8487 const unsigned long *gpl_crcs;
8491 const struct kernel_symbol *unused_syms;
8492 const unsigned long *unused_crcs;
8493 unsigned int num_unused_syms;
8496 unsigned int num_unused_gpl_syms;
8497 const struct kernel_symbol *unused_gpl_syms;
8498 const unsigned long *unused_gpl_crcs;
8502 const struct kernel_symbol *gpl_future_syms;
8503 const unsigned long *gpl_future_crcs;
8504 unsigned int num_gpl_future_syms;
8507 unsigned int num_exentries;
8508 struct exception_table_entry *extable;
8520 unsigned int init_size, core_size;
8523 unsigned int init_text_size, core_text_size;
8526 struct mod_arch_specific arch;
8528 unsigned int taints;
8533 struct list_head bug_list;
8534 struct bug_entry *bug_table;
8535 # 319 "include/linux/module.h"
8536 Elf32_Sym *symtab, *core_symtab;
8537 unsigned int num_symtab, core_num_syms;
8538 char *strtab, *core_strtab;
8541 struct module_sect_attrs *sect_attrs;
8544 struct module_notes_attrs *notes_attrs;
8554 struct tracepoint *tracepoints;
8555 unsigned int num_tracepoints;
8559 const char **trace_bprintk_fmt_start;
8560 unsigned int num_trace_bprintk_fmt;
8563 struct ftrace_event_call *trace_events;
8564 unsigned int num_trace_events;
8565 # 356 "include/linux/module.h"
8566 struct list_head modules_which_use_me;
8569 struct task_struct *waiter;
8584 unsigned int num_ctors;
8591 extern struct mutex module_mutex;
8596 static inline __attribute__((always_inline)) int module_is_live(struct module *mod)
8598 return mod->state != MODULE_STATE_GOING;
8601 struct module *__module_text_address(unsigned long addr);
8602 struct module *__module_address(unsigned long addr);
8603 bool is_module_address(unsigned long addr);
8604 bool is_module_text_address(unsigned long addr);
8606 static inline __attribute__((always_inline)) int within_module_core(unsigned long addr, struct module *mod)
8608 return (unsigned long)mod->module_core <= addr &&
8609 addr < (unsigned long)mod->module_core + mod->core_size;
8612 static inline __attribute__((always_inline)) int within_module_init(unsigned long addr, struct module *mod)
8614 return (unsigned long)mod->module_init <= addr &&
8615 addr < (unsigned long)mod->module_init + mod->init_size;
8619 struct module *find_module(const char *name);
8622 const struct kernel_symbol *start, *stop;
8623 const unsigned long *crcs;
8633 const struct kernel_symbol *find_symbol(const char *name,
8634 struct module **owner,
8635 const unsigned long **crc,
8640 bool each_symbol(bool (*fn)(const struct symsearch *arr, struct module *owner,
8641 unsigned int symnum, void *data), void *data);
8645 int module_get_kallsym(unsigned int symnum, unsigned long *value, char *type,
8646 char *name, char *module_name, int *exported);
8649 unsigned long module_kallsyms_lookup_name(const char *name);
8651 int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *,
8652 struct module *, unsigned long),
8655 extern void __module_put_and_exit(struct module *mod, long code)
8656 __attribute__((noreturn));
8660 unsigned int module_refcount(struct module *mod);
8661 void __symbol_put(const char *symbol);
8663 void symbol_put_addr(void *addr);
8665 static inline __attribute__((always_inline)) local_t *__module_ref_addr(struct module *mod, int cpu)
8676 static inline __attribute__((always_inline)) void __module_get(struct module *module)
8679 unsigned int cpu = ({ do { } while (0); 0; });
8680 atomic_long_inc(&(__module_ref_addr(module, cpu))->a);
8681 trace_module_get(module, ({ __label__ __here; __here: (unsigned long)&&__here; }),
8682 atomic_long_read(&(__module_ref_addr(module, cpu))->a));
8687 static inline __attribute__((always_inline)) int try_module_get(struct module *module)
8692 unsigned int cpu = ({ do { } while (0); 0; });
8693 if (__builtin_expect(!!(module_is_live(module)), 1)) {
8694 atomic_long_inc(&(__module_ref_addr(module, cpu))->a);
8695 trace_module_get(module, ({ __label__ __here; __here: (unsigned long)&&__here; }),
8696 atomic_long_read(&(__module_ref_addr(module, cpu))->a));
8705 extern void module_put(struct module *module);
8706 # 512 "include/linux/module.h"
8707 int use_module(struct module *a, struct module *b);
8708 # 524 "include/linux/module.h"
8709 const char *module_address_lookup(unsigned long addr,
8710 unsigned long *symbolsize,
8711 unsigned long *offset,
8714 int lookup_module_symbol_name(unsigned long addr, char *symname);
8715 int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name);
8718 const struct exception_table_entry *search_module_extables(unsigned long addr);
8720 int register_module_notifier(struct notifier_block * nb);
8721 int unregister_module_notifier(struct notifier_block * nb);
8723 extern void print_modules(void);
8725 extern void module_update_tracepoints(void);
8726 extern int module_get_iter_tracepoints(struct tracepoint_iter *iter);
8727 # 665 "include/linux/module.h"
8728 struct device_driver;
8732 extern struct kset *module_kset;
8733 extern struct kobj_type module_ktype;
8734 extern int module_sysfs_initialized;
8736 int mod_sysfs_init(struct module *mod);
8737 int mod_sysfs_setup(struct module *mod,
8738 struct kernel_param *kparam,
8739 unsigned int num_params);
8740 int module_add_modinfo_attrs(struct module *mod);
8741 void module_remove_modinfo_attrs(struct module *mod);
8742 # 712 "include/linux/module.h"
8743 int module_bug_finalize(const Elf32_Ehdr *, const Elf32_Shdr *,
8745 void module_bug_cleanup(struct module *);
8746 # 24 "fs/sysv/super.c" 2
8749 # 1 "include/linux/buffer_head.h" 1
8750 # 11 "include/linux/buffer_head.h"
8751 # 1 "include/linux/fs.h" 1
8752 # 9 "include/linux/fs.h"
8753 # 1 "include/linux/limits.h" 1
8754 # 10 "include/linux/fs.h" 2
8755 # 1 "include/linux/ioctl.h" 1
8759 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ioctl.h" 1
8760 # 1 "include/asm-generic/ioctl.h" 1
8761 # 73 "include/asm-generic/ioctl.h"
8762 extern unsigned int __invalid_size_argument_for_IOC;
8763 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ioctl.h" 2
8764 # 5 "include/linux/ioctl.h" 2
8765 # 11 "include/linux/fs.h" 2
8766 # 35 "include/linux/fs.h"
8767 struct files_stat_struct {
8773 struct inodes_stat_t {
8778 # 365 "include/linux/fs.h"
8779 # 1 "include/linux/kdev_t.h" 1
8780 # 21 "include/linux/kdev_t.h"
8781 static inline __attribute__((always_inline)) int old_valid_dev(dev_t dev)
8783 return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256;
8786 static inline __attribute__((always_inline)) u16 old_encode_dev(dev_t dev)
8788 return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1)));
8791 static inline __attribute__((always_inline)) dev_t old_decode_dev(u16 val)
8793 return ((((val >> 8) & 255) << 20) | (val & 255));
8796 static inline __attribute__((always_inline)) int new_valid_dev(dev_t dev)
8801 static inline __attribute__((always_inline)) u32 new_encode_dev(dev_t dev)
8803 unsigned major = ((unsigned int) ((dev) >> 20));
8804 unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1)));
8805 return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12);
8808 static inline __attribute__((always_inline)) dev_t new_decode_dev(u32 dev)
8810 unsigned major = (dev & 0xfff00) >> 8;
8811 unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00);
8812 return (((major) << 20) | (minor));
8815 static inline __attribute__((always_inline)) int huge_valid_dev(dev_t dev)
8820 static inline __attribute__((always_inline)) u64 huge_encode_dev(dev_t dev)
8822 return new_encode_dev(dev);
8825 static inline __attribute__((always_inline)) dev_t huge_decode_dev(u64 dev)
8827 return new_decode_dev(dev);
8830 static inline __attribute__((always_inline)) int sysv_valid_dev(dev_t dev)
8832 return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18);
8835 static inline __attribute__((always_inline)) u32 sysv_encode_dev(dev_t dev)
8837 return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18);
8840 static inline __attribute__((always_inline)) unsigned sysv_major(u32 dev)
8842 return (dev >> 18) & 0x3fff;
8845 static inline __attribute__((always_inline)) unsigned sysv_minor(u32 dev)
8847 return dev & 0x3ffff;
8849 # 366 "include/linux/fs.h" 2
8850 # 1 "include/linux/dcache.h" 1
8856 # 1 "include/linux/rculist.h" 1
8857 # 18 "include/linux/rculist.h"
8858 static inline __attribute__((always_inline)) void __list_add_rcu(struct list_head *new,
8859 struct list_head *prev, struct list_head *next)
8863 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (prev->next) = (new); });
8866 # 43 "include/linux/rculist.h"
8867 static inline __attribute__((always_inline)) void list_add_rcu(struct list_head *new, struct list_head *head)
8869 __list_add_rcu(new, head, head->next);
8871 # 64 "include/linux/rculist.h"
8872 static inline __attribute__((always_inline)) void list_add_tail_rcu(struct list_head *new,
8873 struct list_head *head)
8875 __list_add_rcu(new, head->prev, head);
8877 # 94 "include/linux/rculist.h"
8878 static inline __attribute__((always_inline)) void list_del_rcu(struct list_head *entry)
8880 __list_del(entry->prev, entry->next);
8881 entry->prev = ((void *) 0x00200200);
8883 # 120 "include/linux/rculist.h"
8884 static inline __attribute__((always_inline)) void hlist_del_init_rcu(struct hlist_node *n)
8886 if (!hlist_unhashed(n)) {
8888 n->pprev = ((void *)0);
8891 # 136 "include/linux/rculist.h"
8892 static inline __attribute__((always_inline)) void list_replace_rcu(struct list_head *old,
8893 struct list_head *new)
8895 new->next = old->next;
8896 new->prev = old->prev;
8897 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (new->prev->next) = (new); });
8898 new->next->prev = new;
8899 old->prev = ((void *) 0x00200200);
8901 # 163 "include/linux/rculist.h"
8902 static inline __attribute__((always_inline)) void list_splice_init_rcu(struct list_head *list,
8903 struct list_head *head,
8906 struct list_head *first = list->next;
8907 struct list_head *last = list->prev;
8908 struct list_head *at = head->next;
8910 if (list_empty(head))
8915 INIT_LIST_HEAD(list);
8916 # 185 "include/linux/rculist.h"
8918 # 195 "include/linux/rculist.h"
8920 ({ if (!__builtin_constant_p(first) || ((first) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (head->next) = (first); });
8924 # 283 "include/linux/rculist.h"
8925 static inline __attribute__((always_inline)) void hlist_del_rcu(struct hlist_node *n)
8928 n->pprev = ((void *) 0x00200200);
8930 # 296 "include/linux/rculist.h"
8931 static inline __attribute__((always_inline)) void hlist_replace_rcu(struct hlist_node *old,
8932 struct hlist_node *new)
8934 struct hlist_node *next = old->next;
8937 new->pprev = old->pprev;
8938 ({ if (!__builtin_constant_p(new) || ((new) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*new->pprev) = (new); });
8940 new->next->pprev = &new->next;
8941 old->pprev = ((void *) 0x00200200);
8943 # 328 "include/linux/rculist.h"
8944 static inline __attribute__((always_inline)) void hlist_add_head_rcu(struct hlist_node *n,
8945 struct hlist_head *h)
8947 struct hlist_node *first = h->first;
8950 n->pprev = &h->first;
8951 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (h->first) = (n); });
8953 first->pprev = &n->next;
8955 # 358 "include/linux/rculist.h"
8956 static inline __attribute__((always_inline)) void hlist_add_before_rcu(struct hlist_node *n,
8957 struct hlist_node *next)
8959 n->pprev = next->pprev;
8961 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*(n->pprev)) = (n); });
8962 next->pprev = &n->next;
8964 # 385 "include/linux/rculist.h"
8965 static inline __attribute__((always_inline)) void hlist_add_after_rcu(struct hlist_node *prev,
8966 struct hlist_node *n)
8968 n->next = prev->next;
8969 n->pprev = &prev->next;
8970 ({ if (!__builtin_constant_p(n) || ((n) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (prev->next) = (n); });
8972 n->next->pprev = &n->next;
8974 # 7 "include/linux/dcache.h" 2
8982 # 33 "include/linux/dcache.h"
8986 const unsigned char *name;
8989 struct dentry_stat_t {
8996 extern struct dentry_stat_t dentry_stat;
9003 static inline __attribute__((always_inline)) unsigned long
9004 partial_name_hash(unsigned long c, unsigned long prevhash)
9006 return (prevhash + (c << 4) + (c >> 4)) * 11;
9013 static inline __attribute__((always_inline)) unsigned long end_name_hash(unsigned long hash)
9015 return (unsigned int) hash;
9019 static inline __attribute__((always_inline)) unsigned int
9020 full_name_hash(const unsigned char *name, unsigned int len)
9022 unsigned long hash = 0;
9024 hash = partial_name_hash(*name++, hash);
9025 return end_name_hash(hash);
9027 # 89 "include/linux/dcache.h"
9030 unsigned int d_flags;
9033 struct inode *d_inode;
9039 struct hlist_node d_hash;
9040 struct dentry *d_parent;
9043 struct list_head d_lru;
9048 struct list_head d_child;
9049 struct rcu_head d_rcu;
9051 struct list_head d_subdirs;
9052 struct list_head d_alias;
9053 unsigned long d_time;
9054 const struct dentry_operations *d_op;
9055 struct super_block *d_sb;
9058 unsigned char d_iname[40];
9067 enum dentry_d_lock_class
9069 DENTRY_D_LOCK_NORMAL,
9070 DENTRY_D_LOCK_NESTED
9073 struct dentry_operations {
9074 int (*d_revalidate)(struct dentry *, struct nameidata *);
9075 int (*d_hash) (struct dentry *, struct qstr *);
9076 int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
9077 int (*d_delete)(struct dentry *);
9078 void (*d_release)(struct dentry *);
9079 void (*d_iput)(struct dentry *, struct inode *);
9080 char *(*d_dname)(struct dentry *, char *, int);
9082 # 189 "include/linux/dcache.h"
9083 extern spinlock_t dcache_lock;
9084 extern seqlock_t rename_lock;
9085 # 208 "include/linux/dcache.h"
9086 static inline __attribute__((always_inline)) void __d_drop(struct dentry *dentry)
9088 if (!(dentry->d_flags & 0x0010)) {
9089 dentry->d_flags |= 0x0010;
9090 hlist_del_rcu(&dentry->d_hash);
9094 static inline __attribute__((always_inline)) void d_drop(struct dentry *dentry)
9096 _spin_lock(&dcache_lock);
9097 _spin_lock(&dentry->d_lock);
9099 _spin_unlock(&dentry->d_lock);
9100 _spin_unlock(&dcache_lock);
9103 static inline __attribute__((always_inline)) int dname_external(struct dentry *dentry)
9105 return dentry->d_name.name != dentry->d_iname;
9111 extern void d_instantiate(struct dentry *, struct inode *);
9112 extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *);
9113 extern struct dentry * d_materialise_unique(struct dentry *, struct inode *);
9114 extern void d_delete(struct dentry *);
9117 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
9118 extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
9119 extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
9120 extern struct dentry * d_obtain_alias(struct inode *);
9121 extern void shrink_dcache_sb(struct super_block *);
9122 extern void shrink_dcache_parent(struct dentry *);
9123 extern void shrink_dcache_for_umount(struct super_block *);
9124 extern int d_invalidate(struct dentry *);
9127 extern struct dentry * d_alloc_root(struct inode *);
9130 extern void d_genocide(struct dentry *);
9132 extern struct dentry *d_find_alias(struct inode *);
9133 extern void d_prune_aliases(struct inode *);
9136 extern int have_submounts(struct dentry *);
9141 extern void d_rehash(struct dentry *);
9142 # 274 "include/linux/dcache.h"
9143 static inline __attribute__((always_inline)) void d_add(struct dentry *entry, struct inode *inode)
9145 d_instantiate(entry, inode);
9148 # 288 "include/linux/dcache.h"
9149 static inline __attribute__((always_inline)) struct dentry *d_add_unique(struct dentry *entry, struct inode *inode)
9153 res = d_instantiate_unique(entry, inode);
9154 d_rehash(res != ((void *)0) ? res : entry);
9159 extern void d_move(struct dentry *, struct dentry *);
9160 extern struct dentry *d_ancestor(struct dentry *, struct dentry *);
9163 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
9164 extern struct dentry * __d_lookup(struct dentry *, struct qstr *);
9165 extern struct dentry * d_hash_and_lookup(struct dentry *, struct qstr *);
9168 extern int d_validate(struct dentry *, struct dentry *);
9173 extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
9175 extern char *__d_path(const struct path *path, struct path *root, char *, int);
9176 extern char *d_path(const struct path *, char *, int);
9177 extern char *dentry_path(struct dentry *, char *, int);
9178 # 333 "include/linux/dcache.h"
9179 static inline __attribute__((always_inline)) struct dentry *dget(struct dentry *dentry)
9182 do { if (__builtin_expect(!!(!((&dentry->d_count)->counter)), 0)) do { asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/dcache.h"), "i"(336), "i"(0), "i"(sizeof(struct bug_entry))); for (;;); } while (0); } while(0);
9183 atomic_inc(&dentry->d_count);
9188 extern struct dentry * dget_locked(struct dentry *);
9189 # 351 "include/linux/dcache.h"
9190 static inline __attribute__((always_inline)) int d_unhashed(struct dentry *dentry)
9192 return (dentry->d_flags & 0x0010);
9195 static inline __attribute__((always_inline)) int d_unlinked(struct dentry *dentry)
9197 return d_unhashed(dentry) && !((dentry) == (dentry)->d_parent);
9200 static inline __attribute__((always_inline)) struct dentry *dget_parent(struct dentry *dentry)
9204 _spin_lock(&dentry->d_lock);
9205 ret = dget(dentry->d_parent);
9206 _spin_unlock(&dentry->d_lock);
9210 extern void dput(struct dentry *);
9212 static inline __attribute__((always_inline)) int d_mountpoint(struct dentry *dentry)
9214 return dentry->d_mounted;
9217 extern struct vfsmount *lookup_mnt(struct path *);
9218 extern struct dentry *lookup_create(struct nameidata *nd, int is_dir);
9220 extern int sysctl_vfs_cache_pressure;
9221 # 367 "include/linux/fs.h" 2
9222 # 1 "include/linux/path.h" 1
9230 struct vfsmount *mnt;
9231 struct dentry *dentry;
9234 extern void path_get(struct path *);
9235 extern void path_put(struct path *);
9236 # 368 "include/linux/fs.h" 2
9241 # 1 "include/linux/radix-tree.h" 1
9242 # 41 "include/linux/radix-tree.h"
9243 static inline __attribute__((always_inline)) void *radix_tree_ptr_to_indirect(void *ptr)
9245 return (void *)((unsigned long)ptr | 1);
9248 static inline __attribute__((always_inline)) void *radix_tree_indirect_to_ptr(void *ptr)
9250 return (void *)((unsigned long)ptr & ~1);
9253 static inline __attribute__((always_inline)) int radix_tree_is_indirect_ptr(void *ptr)
9255 return (int)((unsigned long)ptr & 1);
9263 struct radix_tree_root {
9264 unsigned int height;
9266 struct radix_tree_node *rnode;
9268 # 137 "include/linux/radix-tree.h"
9269 static inline __attribute__((always_inline)) void *radix_tree_deref_slot(void **pslot)
9271 void *ret = ({ typeof(*pslot) _________p1 = (*(volatile typeof(*pslot) *)&(*pslot)); do { } while(0); (_________p1); });
9272 if (__builtin_expect(!!(radix_tree_is_indirect_ptr(ret)), 0))
9273 ret = ((void *)-1UL);
9276 # 152 "include/linux/radix-tree.h"
9277 static inline __attribute__((always_inline)) void radix_tree_replace_slot(void **pslot, void *item)
9279 do { if (__builtin_expect(!!(radix_tree_is_indirect_ptr(item)), 0)) do { asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/radix-tree.h"), "i"(154), "i"(0), "i"(sizeof(struct bug_entry))); for (;;); } while (0); } while(0);
9280 ({ if (!__builtin_constant_p(item) || ((item) != ((void *)0))) __asm__ __volatile__("": : :"memory"); (*pslot) = (item); });
9283 int radix_tree_insert(struct radix_tree_root *, unsigned long, void *);
9284 void *radix_tree_lookup(struct radix_tree_root *, unsigned long);
9285 void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long);
9286 void *radix_tree_delete(struct radix_tree_root *, unsigned long);
9288 radix_tree_gang_lookup(struct radix_tree_root *root, void **results,
9289 unsigned long first_index, unsigned int max_items);
9291 radix_tree_gang_lookup_slot(struct radix_tree_root *root, void ***results,
9292 unsigned long first_index, unsigned int max_items);
9293 unsigned long radix_tree_next_hole(struct radix_tree_root *root,
9294 unsigned long index, unsigned long max_scan);
9295 unsigned long radix_tree_prev_hole(struct radix_tree_root *root,
9296 unsigned long index, unsigned long max_scan);
9297 int radix_tree_preload(gfp_t gfp_mask);
9298 void radix_tree_init(void);
9299 void *radix_tree_tag_set(struct radix_tree_root *root,
9300 unsigned long index, unsigned int tag);
9301 void *radix_tree_tag_clear(struct radix_tree_root *root,
9302 unsigned long index, unsigned int tag);
9303 int radix_tree_tag_get(struct radix_tree_root *root,
9304 unsigned long index, unsigned int tag);
9306 radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results,
9307 unsigned long first_index, unsigned int max_items,
9310 radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results,
9311 unsigned long first_index, unsigned int max_items,
9313 int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
9315 static inline __attribute__((always_inline)) void radix_tree_preload_end(void)
9319 # 373 "include/linux/fs.h" 2
9320 # 1 "include/linux/prio_tree.h" 1
9321 # 14 "include/linux/prio_tree.h"
9322 struct raw_prio_tree_node {
9323 struct prio_tree_node *left;
9324 struct prio_tree_node *right;
9325 struct prio_tree_node *parent;
9328 struct prio_tree_node {
9329 struct prio_tree_node *left;
9330 struct prio_tree_node *right;
9331 struct prio_tree_node *parent;
9332 unsigned long start;
9336 struct prio_tree_root {
9337 struct prio_tree_node *prio_tree_node;
9338 unsigned short index_bits;
9346 struct prio_tree_iter {
9347 struct prio_tree_node *cur;
9349 unsigned long value;
9352 struct prio_tree_root *root;
9353 unsigned long r_index;
9354 unsigned long h_index;
9357 static inline __attribute__((always_inline)) void prio_tree_iter_init(struct prio_tree_iter *iter,
9358 struct prio_tree_root *root, unsigned long r_index, unsigned long h_index)
9361 iter->r_index = r_index;
9362 iter->h_index = h_index;
9363 iter->cur = ((void *)0);
9365 # 84 "include/linux/prio_tree.h"
9366 static inline __attribute__((always_inline)) int prio_tree_empty(const struct prio_tree_root *root)
9368 return root->prio_tree_node == ((void *)0);
9371 static inline __attribute__((always_inline)) int prio_tree_root(const struct prio_tree_node *node)
9373 return node->parent == node;
9376 static inline __attribute__((always_inline)) int prio_tree_left_empty(const struct prio_tree_node *node)
9378 return node->left == node;
9381 static inline __attribute__((always_inline)) int prio_tree_right_empty(const struct prio_tree_node *node)
9383 return node->right == node;
9387 struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root,
9388 struct prio_tree_node *old, struct prio_tree_node *node);
9389 struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root,
9390 struct prio_tree_node *node);
9391 void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node);
9392 struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter);
9393 # 374 "include/linux/fs.h" 2
9395 # 1 "include/linux/pid.h" 1
9408 # 50 "include/linux/pid.h"
9412 struct pid_namespace *ns;
9413 struct hlist_node pid_chain;
9421 struct hlist_head tasks[PIDTYPE_MAX];
9422 struct rcu_head rcu;
9423 struct upid numbers[1];
9426 extern struct pid init_struct_pid;
9430 struct hlist_node node;
9434 static inline __attribute__((always_inline)) struct pid *get_pid(struct pid *pid)
9437 atomic_inc(&pid->count);
9441 extern void put_pid(struct pid *pid);
9442 extern struct task_struct *pid_task(struct pid *pid, enum pid_type);
9443 extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type);
9445 extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type);
9451 extern void attach_pid(struct task_struct *task, enum pid_type type,
9453 extern void detach_pid(struct task_struct *task, enum pid_type);
9454 extern void change_pid(struct task_struct *task, enum pid_type,
9456 extern void transfer_pid(struct task_struct *old, struct task_struct *new,
9459 struct pid_namespace;
9460 extern struct pid_namespace init_pid_ns;
9461 # 112 "include/linux/pid.h"
9462 extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns);
9463 extern struct pid *find_vpid(int nr);
9468 extern struct pid *find_get_pid(int nr);
9469 extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
9470 int next_pidmap(struct pid_namespace *pid_ns, int last);
9472 extern struct pid *alloc_pid(struct pid_namespace *ns);
9473 extern void free_pid(struct pid *pid);
9474 # 135 "include/linux/pid.h"
9475 static inline __attribute__((always_inline)) struct pid_namespace *ns_of_pid(struct pid *pid)
9477 struct pid_namespace *ns = ((void *)0);
9479 ns = pid->numbers[pid->level].ns;
9482 # 154 "include/linux/pid.h"
9483 static inline __attribute__((always_inline)) pid_t pid_nr(struct pid *pid)
9487 nr = pid->numbers[0].nr;
9491 pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
9492 pid_t pid_vnr(struct pid *pid);
9493 # 376 "include/linux/fs.h" 2
9495 # 1 "include/linux/capability.h" 1
9496 # 18 "include/linux/capability.h"
9498 # 40 "include/linux/capability.h"
9499 typedef struct __user_cap_header_struct {
9502 } *cap_user_header_t;
9504 typedef struct __user_cap_data_struct {
9509 # 72 "include/linux/capability.h"
9510 struct vfs_cap_data {
9517 # 96 "include/linux/capability.h"
9518 extern int file_caps_enabled;
9521 typedef struct kernel_cap_struct {
9526 struct cpu_vfs_cap_data {
9528 kernel_cap_t permitted;
9529 kernel_cap_t inheritable;
9531 # 444 "include/linux/capability.h"
9532 static inline __attribute__((always_inline)) kernel_cap_t cap_combine(const kernel_cap_t a,
9533 const kernel_cap_t b)
9536 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] | b.cap[__capi]; } } while (0);
9540 static inline __attribute__((always_inline)) kernel_cap_t cap_intersect(const kernel_cap_t a,
9541 const kernel_cap_t b)
9544 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] & b.cap[__capi]; } } while (0);
9548 static inline __attribute__((always_inline)) kernel_cap_t cap_drop(const kernel_cap_t a,
9549 const kernel_cap_t drop)
9552 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] &~ drop.cap[__capi]; } } while (0);
9556 static inline __attribute__((always_inline)) kernel_cap_t cap_invert(const kernel_cap_t c)
9559 do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = ~ c.cap[__capi]; } } while (0);
9563 static inline __attribute__((always_inline)) int cap_isclear(const kernel_cap_t a)
9566 for (__capi = 0; __capi < 2; ++__capi) {
9567 if (a.cap[__capi] != 0)
9572 # 492 "include/linux/capability.h"
9573 static inline __attribute__((always_inline)) int cap_issubset(const kernel_cap_t a, const kernel_cap_t set)
9576 dest = cap_drop(a, set);
9577 return cap_isclear(dest);
9582 static inline __attribute__((always_inline)) int cap_is_fs_cap(int cap)
9584 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((27) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))) | (1 << ((9) & 31)), ((1 << ((32) & 31))) } });
9585 return !!((1 << ((cap) & 31)) & __cap_fs_set.cap[((cap) >> 5)]);
9588 static inline __attribute__((always_inline)) kernel_cap_t cap_drop_fs_set(const kernel_cap_t a)
9590 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((27) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))) | (1 << ((9) & 31)), ((1 << ((32) & 31))) } });
9591 return cap_drop(a, __cap_fs_set);
9594 static inline __attribute__((always_inline)) kernel_cap_t cap_raise_fs_set(const kernel_cap_t a,
9595 const kernel_cap_t permitted)
9597 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((27) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))) | (1 << ((9) & 31)), ((1 << ((32) & 31))) } });
9598 return cap_combine(a,
9599 cap_intersect(permitted, __cap_fs_set));
9602 static inline __attribute__((always_inline)) kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a)
9604 const kernel_cap_t __cap_fs_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((27) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))) | (1 << ((24) & 31)), ((1 << ((32) & 31))) } });
9605 return cap_drop(a, __cap_fs_set);
9608 static inline __attribute__((always_inline)) kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a,
9609 const kernel_cap_t permitted)
9611 const kernel_cap_t __cap_nfsd_set = ((kernel_cap_t){{ ((1 << ((0) & 31)) | (1 << ((27) & 31)) | (1 << ((1) & 31)) | (1 << ((2) & 31)) | (1 << ((3) & 31)) | (1 << ((4) & 31))) | (1 << ((24) & 31)), ((1 << ((32) & 31))) } });
9612 return cap_combine(a,
9613 cap_intersect(permitted, __cap_nfsd_set));
9616 extern const kernel_cap_t __cap_empty_set;
9617 extern const kernel_cap_t __cap_full_set;
9618 extern const kernel_cap_t __cap_init_eff_set;
9619 # 565 "include/linux/capability.h"
9620 extern int capable(int cap);
9624 extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
9625 # 378 "include/linux/fs.h" 2
9626 # 1 "include/linux/semaphore.h" 1
9627 # 16 "include/linux/semaphore.h"
9631 struct list_head wait_list;
9633 # 32 "include/linux/semaphore.h"
9634 static inline __attribute__((always_inline)) void sema_init(struct semaphore *sem, int val)
9636 static struct lock_class_key __key;
9637 *sem = (struct semaphore) { .lock = (spinlock_t) { .raw_lock = { 1 }, .magic = 0xdead4ead, .owner = ((void *)-1L), .owner_cpu = -1, .dep_map = { .name = "(*sem).lock" } }, .count = val, .wait_list = { &((*sem).wait_list), &((*sem).wait_list) }, };
9638 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0);
9644 extern void down(struct semaphore *sem);
9645 extern int __attribute__((warn_unused_result)) down_interruptible(struct semaphore *sem);
9646 extern int __attribute__((warn_unused_result)) down_killable(struct semaphore *sem);
9647 extern int __attribute__((warn_unused_result)) down_trylock(struct semaphore *sem);
9648 extern int __attribute__((warn_unused_result)) down_timeout(struct semaphore *sem, long jiffies);
9649 extern void up(struct semaphore *sem);
9650 # 379 "include/linux/fs.h" 2
9651 # 1 "include/linux/fiemap.h" 1
9652 # 16 "include/linux/fiemap.h"
9653 struct fiemap_extent {
9659 __u64 fe_reserved64[2];
9661 __u32 fe_reserved[3];
9670 __u32 fm_mapped_extents;
9671 __u32 fm_extent_count;
9673 struct fiemap_extent fm_extents[0];
9675 # 380 "include/linux/fs.h" 2
9678 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 1
9679 # 383 "include/linux/fs.h" 2
9681 struct export_operations;
9686 struct pipe_inode_info;
9687 struct poll_table_struct;
9689 struct vm_area_struct;
9693 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init(void);
9694 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init_early(void);
9695 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) files_init(unsigned long);
9697 extern struct files_stat_struct files_stat;
9698 extern int get_max_files(void);
9699 extern int sysctl_nr_open;
9700 extern struct inodes_stat_t inodes_stat;
9701 extern int leases_enable, lease_break_time;
9703 extern int dir_notify_enable;
9707 typedef int (get_block_t)(struct inode *inode, sector_t iblock,
9708 struct buffer_head *bh_result, int create);
9709 typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
9710 ssize_t bytes, void *private);
9711 # 446 "include/linux/fs.h"
9713 unsigned int ia_valid;
9718 struct timespec ia_atime;
9719 struct timespec ia_mtime;
9720 struct timespec ia_ctime;
9727 struct file *ia_file;
9733 # 1 "include/linux/quota.h" 1
9734 # 86 "include/linux/quota.h"
9743 # 106 "include/linux/quota.h"
9745 __u64 dqb_bhardlimit;
9746 __u64 dqb_bsoftlimit;
9748 __u64 dqb_ihardlimit;
9749 __u64 dqb_isoftlimit;
9750 __u64 dqb_curinodes;
9755 # 127 "include/linux/quota.h"
9762 # 149 "include/linux/quota.h"
9773 QUOTA_NL_A_EXCESS_ID,
9775 QUOTA_NL_A_DEV_MAJOR,
9776 QUOTA_NL_A_DEV_MINOR,
9777 QUOTA_NL_A_CAUSED_ID,
9780 # 176 "include/linux/quota.h"
9781 # 1 "include/linux/dqblk_xfs.h" 1
9782 # 50 "include/linux/dqblk_xfs.h"
9783 typedef struct fs_disk_quota {
9788 __u64 d_blk_hardlimit;
9789 __u64 d_blk_softlimit;
9790 __u64 d_ino_hardlimit;
9791 __u64 d_ino_softlimit;
9800 __u64 d_rtb_hardlimit;
9801 __u64 d_rtb_softlimit;
9808 # 137 "include/linux/dqblk_xfs.h"
9809 typedef struct fs_qfilestat {
9815 typedef struct fs_quota_stat {
9819 fs_qfilestat_t qs_uquota;
9820 fs_qfilestat_t qs_gquota;
9822 __s32 qs_btimelimit;
9823 __s32 qs_itimelimit;
9824 __s32 qs_rtbtimelimit;
9825 __u16 qs_bwarnlimit;
9826 __u16 qs_iwarnlimit;
9828 # 177 "include/linux/quota.h" 2
9829 # 1 "include/linux/dqblk_v1.h" 1
9830 # 178 "include/linux/quota.h" 2
9831 # 1 "include/linux/dqblk_v2.h" 1
9839 # 1 "include/linux/dqblk_qtree.h" 1
9840 # 17 "include/linux/dqblk_qtree.h"
9844 struct qtree_fmt_operations {
9845 void (*mem2disk_dqblk)(void *disk, struct dquot *dquot);
9846 void (*disk2mem_dqblk)(struct dquot *dquot, void *disk);
9847 int (*is_id)(void *disk, struct dquot *dquot);
9851 struct qtree_mem_dqinfo {
9852 struct super_block *dqi_sb;
9854 unsigned int dqi_blocks;
9855 unsigned int dqi_free_blk;
9856 unsigned int dqi_free_entry;
9857 unsigned int dqi_blocksize_bits;
9858 unsigned int dqi_entry_size;
9859 unsigned int dqi_usable_bs;
9860 unsigned int dqi_qtree_depth;
9861 struct qtree_fmt_operations *dqi_ops;
9864 int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
9865 int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
9866 int qtree_delete_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
9867 int qtree_release_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
9868 int qtree_entry_unused(struct qtree_mem_dqinfo *info, char *disk);
9869 static inline __attribute__((always_inline)) int qtree_depth(struct qtree_mem_dqinfo *info)
9871 unsigned int epb = info->dqi_usable_bs >> 2;
9872 unsigned long long entries = epb;
9875 for (i = 1; entries < (1ULL << 32); i++)
9879 # 9 "include/linux/dqblk_v2.h" 2
9880 # 179 "include/linux/quota.h" 2
9884 typedef __kernel_uid32_t qid_t;
9885 typedef long long qsize_t;
9887 extern spinlock_t dq_data_lock;
9888 # 197 "include/linux/quota.h"
9890 qsize_t dqb_bhardlimit;
9891 qsize_t dqb_bsoftlimit;
9892 qsize_t dqb_curspace;
9893 qsize_t dqb_rsvspace;
9894 qsize_t dqb_ihardlimit;
9895 qsize_t dqb_isoftlimit;
9896 qsize_t dqb_curinodes;
9904 struct quota_format_type;
9907 struct quota_format_type *dqi_format;
9910 struct list_head dqi_dirty_list;
9911 unsigned long dqi_flags;
9912 unsigned int dqi_bgrace;
9913 unsigned int dqi_igrace;
9914 qsize_t dqi_maxblimit;
9915 qsize_t dqi_maxilimit;
9925 extern void mark_info_dirty(struct super_block *sb, int type);
9926 static inline __attribute__((always_inline)) int info_dirty(struct mem_dqinfo *info)
9928 return test_bit(16, &info->dqi_flags);
9937 int allocated_dquots;
9942 extern struct dqstats dqstats;
9943 # 264 "include/linux/quota.h"
9945 struct hlist_node dq_hash;
9946 struct list_head dq_inuse;
9947 struct list_head dq_free;
9948 struct list_head dq_dirty;
9949 struct mutex dq_lock;
9951 wait_queue_head_t dq_wait_unused;
9952 struct super_block *dq_sb;
9955 unsigned long dq_flags;
9957 struct mem_dqblk dq_dqb;
9964 struct quota_format_ops {
9965 int (*check_quota_file)(struct super_block *sb, int type);
9966 int (*read_file_info)(struct super_block *sb, int type);
9967 int (*write_file_info)(struct super_block *sb, int type);
9968 int (*free_file_info)(struct super_block *sb, int type);
9969 int (*read_dqblk)(struct dquot *dquot);
9970 int (*commit_dqblk)(struct dquot *dquot);
9971 int (*release_dqblk)(struct dquot *dquot);
9975 struct dquot_operations {
9976 int (*initialize) (struct inode *, int);
9977 int (*drop) (struct inode *);
9978 int (*alloc_space) (struct inode *, qsize_t, int);
9979 int (*alloc_inode) (const struct inode *, qsize_t);
9980 int (*free_space) (struct inode *, qsize_t);
9981 int (*free_inode) (const struct inode *, qsize_t);
9982 int (*transfer) (struct inode *, struct iattr *);
9983 int (*write_dquot) (struct dquot *);
9984 struct dquot *(*alloc_dquot)(struct super_block *, int);
9985 void (*destroy_dquot)(struct dquot *);
9986 int (*acquire_dquot) (struct dquot *);
9987 int (*release_dquot) (struct dquot *);
9988 int (*mark_dirty) (struct dquot *);
9989 int (*write_info) (struct super_block *, int);
9991 int (*reserve_space) (struct inode *, qsize_t, int);
9993 int (*claim_space) (struct inode *, qsize_t);
9995 void (*release_rsv) (struct inode *, qsize_t);
9997 qsize_t (*get_reserved_space) (struct inode *);
10001 struct quotactl_ops {
10002 int (*quota_on)(struct super_block *, int, int, char *, int);
10003 int (*quota_off)(struct super_block *, int, int);
10004 int (*quota_sync)(struct super_block *, int);
10005 int (*get_info)(struct super_block *, int, struct if_dqinfo *);
10006 int (*set_info)(struct super_block *, int, struct if_dqinfo *);
10007 int (*get_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
10008 int (*set_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
10009 int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
10010 int (*set_xstate)(struct super_block *, unsigned int, int);
10011 int (*get_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
10012 int (*set_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
10015 struct quota_format_type {
10017 struct quota_format_ops *qf_ops;
10018 struct module *qf_owner;
10019 struct quota_format_type *qf_next;
10024 _DQUOT_USAGE_ENABLED = 0,
10025 _DQUOT_LIMITS_ENABLED,
10031 # 365 "include/linux/quota.h"
10032 static inline __attribute__((always_inline)) unsigned int dquot_state_flag(unsigned int flags, int type)
10036 return flags << _DQUOT_STATE_FLAGS;
10039 static inline __attribute__((always_inline)) unsigned int dquot_generic_flag(unsigned int flags, int type)
10043 return flags >> _DQUOT_STATE_FLAGS;
10046 struct quota_info {
10047 unsigned int flags;
10048 struct mutex dqio_mutex;
10049 struct mutex dqonoff_mutex;
10050 struct rw_semaphore dqptr_sem;
10051 struct inode *files[2];
10052 struct mem_dqinfo info[2];
10053 struct quota_format_ops *ops[2];
10056 int register_quota_format(struct quota_format_type *fmt);
10057 void unregister_quota_format(struct quota_format_type *fmt);
10059 struct quota_module_name {
10063 # 468 "include/linux/fs.h" 2
10064 # 495 "include/linux/fs.h"
10065 enum positive_aop_returns {
10066 AOP_WRITEPAGE_ACTIVATE = 0x80000,
10067 AOP_TRUNCATED_PAGE = 0x80001,
10069 # 509 "include/linux/fs.h"
10071 struct address_space;
10072 struct writeback_control;
10075 const struct iovec *iov;
10076 unsigned long nr_segs;
10081 size_t iov_iter_copy_from_user_atomic(struct page *page,
10082 struct iov_iter *i, unsigned long offset, size_t bytes);
10083 size_t iov_iter_copy_from_user(struct page *page,
10084 struct iov_iter *i, unsigned long offset, size_t bytes);
10085 void iov_iter_advance(struct iov_iter *i, size_t bytes);
10086 int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes);
10087 size_t iov_iter_single_seg_count(struct iov_iter *i);
10089 static inline __attribute__((always_inline)) void iov_iter_init(struct iov_iter *i,
10090 const struct iovec *iov, unsigned long nr_segs,
10091 size_t count, size_t written)
10094 i->nr_segs = nr_segs;
10096 i->count = count + written;
10098 iov_iter_advance(i, written);
10101 static inline __attribute__((always_inline)) size_t iov_iter_count(struct iov_iter *i)
10105 # 554 "include/linux/fs.h"
10114 } read_descriptor_t;
10116 typedef int (*read_actor_t)(read_descriptor_t *, struct page *,
10117 unsigned long, unsigned long);
10119 struct address_space_operations {
10120 int (*writepage)(struct page *page, struct writeback_control *wbc);
10121 int (*readpage)(struct file *, struct page *);
10122 void (*sync_page)(struct page *);
10125 int (*writepages)(struct address_space *, struct writeback_control *);
10128 int (*set_page_dirty)(struct page *page);
10130 int (*readpages)(struct file *filp, struct address_space *mapping,
10131 struct list_head *pages, unsigned nr_pages);
10133 int (*write_begin)(struct file *, struct address_space *mapping,
10134 loff_t pos, unsigned len, unsigned flags,
10135 struct page **pagep, void **fsdata);
10136 int (*write_end)(struct file *, struct address_space *mapping,
10137 loff_t pos, unsigned len, unsigned copied,
10138 struct page *page, void *fsdata);
10141 sector_t (*bmap)(struct address_space *, sector_t);
10142 void (*invalidatepage) (struct page *, unsigned long);
10143 int (*releasepage) (struct page *, gfp_t);
10144 ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
10145 loff_t offset, unsigned long nr_segs);
10146 int (*get_xip_mem)(struct address_space *, unsigned long, int,
10147 void **, unsigned long *);
10149 int (*migratepage) (struct address_space *,
10150 struct page *, struct page *);
10151 int (*launder_page) (struct page *);
10152 int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
10154 int (*error_remove_page)(struct address_space *, struct page *);
10161 int pagecache_write_begin(struct file *, struct address_space *mapping,
10162 loff_t pos, unsigned len, unsigned flags,
10163 struct page **pagep, void **fsdata);
10165 int pagecache_write_end(struct file *, struct address_space *mapping,
10166 loff_t pos, unsigned len, unsigned copied,
10167 struct page *page, void *fsdata);
10169 struct backing_dev_info;
10170 struct address_space {
10171 struct inode *host;
10172 struct radix_tree_root page_tree;
10173 spinlock_t tree_lock;
10174 unsigned int i_mmap_writable;
10175 struct prio_tree_root i_mmap;
10176 struct list_head i_mmap_nonlinear;
10177 spinlock_t i_mmap_lock;
10178 unsigned int truncate_count;
10179 unsigned long nrpages;
10180 unsigned long writeback_index;
10181 const struct address_space_operations *a_ops;
10182 unsigned long flags;
10183 struct backing_dev_info *backing_dev_info;
10184 spinlock_t private_lock;
10185 struct list_head private_list;
10186 struct address_space *assoc_mapping;
10187 } __attribute__((aligned(sizeof(long))));
10194 struct block_device {
10196 struct inode * bd_inode;
10197 struct super_block * bd_super;
10199 struct mutex bd_mutex;
10200 struct list_head bd_inodes;
10204 struct list_head bd_holder_list;
10206 struct block_device * bd_contains;
10207 unsigned bd_block_size;
10208 struct hd_struct * bd_part;
10210 unsigned bd_part_count;
10211 int bd_invalidated;
10212 struct gendisk * bd_disk;
10213 struct list_head bd_list;
10220 unsigned long bd_private;
10223 int bd_fsfreeze_count;
10225 struct mutex bd_fsfreeze_mutex;
10227 # 683 "include/linux/fs.h"
10228 int mapping_tagged(struct address_space *mapping, int tag);
10233 static inline __attribute__((always_inline)) int mapping_mapped(struct address_space *mapping)
10235 return !prio_tree_empty(&mapping->i_mmap) ||
10236 !list_empty(&mapping->i_mmap_nonlinear);
10245 static inline __attribute__((always_inline)) int mapping_writably_mapped(struct address_space *mapping)
10247 return mapping->i_mmap_writable != 0;
10249 # 716 "include/linux/fs.h"
10254 struct hlist_node i_hash;
10255 struct list_head i_list;
10256 struct list_head i_sb_list;
10257 struct list_head i_dentry;
10258 unsigned long i_ino;
10260 unsigned int i_nlink;
10269 struct timespec i_atime;
10270 struct timespec i_mtime;
10271 struct timespec i_ctime;
10273 unsigned int i_blkbits;
10274 unsigned short i_bytes;
10277 struct mutex i_mutex;
10278 struct rw_semaphore i_alloc_sem;
10279 const struct inode_operations *i_op;
10280 const struct file_operations *i_fop;
10281 struct super_block *i_sb;
10282 struct file_lock *i_flock;
10283 struct address_space *i_mapping;
10284 struct address_space i_data;
10286 struct dquot *i_dquot[2];
10288 struct list_head i_devices;
10290 struct pipe_inode_info *i_pipe;
10291 struct block_device *i_bdev;
10292 struct cdev *i_cdev;
10295 __u32 i_generation;
10298 __u32 i_fsnotify_mask;
10299 struct hlist_head i_fsnotify_mark_entries;
10303 struct list_head inotify_watches;
10304 struct mutex inotify_mutex;
10307 unsigned long i_state;
10308 unsigned long dirtied_when;
10310 unsigned int i_flags;
10312 atomic_t i_writecount;
10317 struct posix_acl *i_acl;
10318 struct posix_acl *i_default_acl;
10322 # 800 "include/linux/fs.h"
10323 enum inode_i_mutex_lock_class
10331 # 819 "include/linux/fs.h"
10332 static inline __attribute__((always_inline)) loff_t i_size_read(const struct inode *inode)
10334 # 838 "include/linux/fs.h"
10335 return inode->i_size;
10344 static inline __attribute__((always_inline)) void i_size_write(struct inode *inode, loff_t i_size)
10346 # 858 "include/linux/fs.h"
10347 inode->i_size = i_size;
10351 static inline __attribute__((always_inline)) unsigned iminor(const struct inode *inode)
10353 return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1)));
10356 static inline __attribute__((always_inline)) unsigned imajor(const struct inode *inode)
10358 return ((unsigned int) ((inode->i_rdev) >> 20));
10361 extern struct block_device *I_BDEV(struct inode *inode);
10363 struct fown_struct {
10366 enum pid_type pid_type;
10374 struct file_ra_state {
10375 unsigned long start;
10377 unsigned int async_size;
10380 unsigned int ra_pages;
10381 unsigned int mmap_miss;
10388 static inline __attribute__((always_inline)) int ra_has_index(struct file_ra_state *ra, unsigned long index)
10390 return (index >= ra->start &&
10391 index < ra->start + ra->size);
10403 struct list_head fu_list;
10404 struct rcu_head fu_rcuhead;
10406 struct path f_path;
10409 const struct file_operations *f_op;
10411 atomic_long_t f_count;
10412 unsigned int f_flags;
10415 struct fown_struct f_owner;
10416 const struct cred *f_cred;
10417 struct file_ra_state f_ra;
10424 void *private_data;
10428 struct list_head f_ep_links;
10430 struct address_space *f_mapping;
10432 unsigned long f_mnt_write_state;
10435 extern spinlock_t files_lock;
10443 static inline __attribute__((always_inline)) void file_take_write(struct file *f)
10445 ({ int __ret_warn_on = !!(f->f_mnt_write_state != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/fs.h"), "i"(956), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); });
10446 f->f_mnt_write_state = 1;
10448 static inline __attribute__((always_inline)) void file_release_write(struct file *f)
10450 f->f_mnt_write_state |= 2;
10452 static inline __attribute__((always_inline)) void file_reset_write(struct file *f)
10454 f->f_mnt_write_state = 0;
10456 static inline __attribute__((always_inline)) void file_check_state(struct file *f)
10462 ({ int __ret_warn_on = !!(f->f_mnt_write_state == 1); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/fs.h"), "i"(973), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); });
10463 ({ int __ret_warn_on = !!(f->f_mnt_write_state == 2); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/fs.h"), "i"(974), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); });
10465 static inline __attribute__((always_inline)) int file_check_writeable(struct file *f)
10467 if (f->f_mnt_write_state == 1)
10469 printk("<4>" "writeable file with no "
10470 "mnt_want_write()\n");
10471 ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/fs.h"), "i"(982), "i"((1<<0)), "i"(sizeof(struct bug_entry))); __builtin_expect(!!(__ret_warn_on), 0); });
10474 # 1027 "include/linux/fs.h"
10475 typedef struct files_struct *fl_owner_t;
10477 struct file_lock_operations {
10478 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
10479 void (*fl_release_private)(struct file_lock *);
10482 struct lock_manager_operations {
10483 int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
10484 void (*fl_notify)(struct file_lock *);
10485 int (*fl_grant)(struct file_lock *, struct file_lock *, int);
10486 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
10487 void (*fl_release_private)(struct file_lock *);
10488 void (*fl_break)(struct file_lock *);
10489 int (*fl_mylease)(struct file_lock *, struct file_lock *);
10490 int (*fl_change)(struct file_lock **, int);
10493 struct lock_manager {
10494 struct list_head list;
10497 void locks_start_grace(struct lock_manager *);
10498 void locks_end_grace(struct lock_manager *);
10499 int locks_in_grace(void);
10502 # 1 "include/linux/nfs_fs_i.h" 1
10506 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/types.h" 1
10507 # 5 "include/linux/nfs_fs_i.h" 2
10509 # 1 "include/linux/nfs.h" 1
10510 # 40 "include/linux/nfs.h"
10517 NFSERR_EAGAIN = 11,
10522 NFSERR_NOTDIR = 20,
10529 NFSERR_OPNOTSUPP = 45,
10530 NFSERR_NAMETOOLONG = 63,
10531 NFSERR_NOTEMPTY = 66,
10534 NFSERR_REMOTE = 71,
10535 NFSERR_WFLUSH = 99,
10536 NFSERR_BADHANDLE = 10001,
10537 NFSERR_NOT_SYNC = 10002,
10538 NFSERR_BAD_COOKIE = 10003,
10539 NFSERR_NOTSUPP = 10004,
10540 NFSERR_TOOSMALL = 10005,
10541 NFSERR_SERVERFAULT = 10006,
10542 NFSERR_BADTYPE = 10007,
10543 NFSERR_JUKEBOX = 10008,
10544 NFSERR_SAME = 10009,
10545 NFSERR_DENIED = 10010,
10546 NFSERR_EXPIRED = 10011,
10547 NFSERR_LOCKED = 10012,
10548 NFSERR_GRACE = 10013,
10549 NFSERR_FHEXPIRED = 10014,
10550 NFSERR_SHARE_DENIED = 10015,
10551 NFSERR_WRONGSEC = 10016,
10552 NFSERR_CLID_INUSE = 10017,
10553 NFSERR_RESOURCE = 10018,
10554 NFSERR_MOVED = 10019,
10555 NFSERR_NOFILEHANDLE = 10020,
10556 NFSERR_MINOR_VERS_MISMATCH = 10021,
10557 NFSERR_STALE_CLIENTID = 10022,
10558 NFSERR_STALE_STATEID = 10023,
10559 NFSERR_OLD_STATEID = 10024,
10560 NFSERR_BAD_STATEID = 10025,
10561 NFSERR_BAD_SEQID = 10026,
10562 NFSERR_NOT_SAME = 10027,
10563 NFSERR_LOCK_RANGE = 10028,
10564 NFSERR_SYMLINK = 10029,
10565 NFSERR_RESTOREFH = 10030,
10566 NFSERR_LEASE_MOVED = 10031,
10567 NFSERR_ATTRNOTSUPP = 10032,
10568 NFSERR_NO_GRACE = 10033,
10569 NFSERR_RECLAIM_BAD = 10034,
10570 NFSERR_RECLAIM_CONFLICT = 10035,
10571 NFSERR_BAD_XDR = 10036,
10572 NFSERR_LOCKS_HELD = 10037,
10573 NFSERR_OPENMODE = 10038,
10574 NFSERR_BADOWNER = 10039,
10575 NFSERR_BADCHAR = 10040,
10576 NFSERR_BADNAME = 10041,
10577 NFSERR_BAD_RANGE = 10042,
10578 NFSERR_LOCK_NOTSUPP = 10043,
10579 NFSERR_OP_ILLEGAL = 10044,
10580 NFSERR_DEADLOCK = 10045,
10581 NFSERR_FILE_OPEN = 10046,
10582 NFSERR_ADMIN_REVOKED = 10047,
10583 NFSERR_CB_PATH_DOWN = 10048,
10601 # 1 "include/linux/sunrpc/msg_prot.h" 1
10602 # 18 "include/linux/sunrpc/msg_prot.h"
10603 typedef u32 rpc_authflavor_t;
10605 enum rpc_auth_flavors {
10608 RPC_AUTH_SHORT = 2,
10612 RPC_AUTH_MAXFLAVOR = 8,
10614 RPC_AUTH_GSS_KRB5 = 390003,
10615 RPC_AUTH_GSS_KRB5I = 390004,
10616 RPC_AUTH_GSS_KRB5P = 390005,
10617 RPC_AUTH_GSS_LKEY = 390006,
10618 RPC_AUTH_GSS_LKEYI = 390007,
10619 RPC_AUTH_GSS_LKEYP = 390008,
10620 RPC_AUTH_GSS_SPKM = 390009,
10621 RPC_AUTH_GSS_SPKMI = 390010,
10622 RPC_AUTH_GSS_SPKMP = 390011,
10628 enum rpc_msg_type {
10633 enum rpc_reply_stat {
10634 RPC_MSG_ACCEPTED = 0,
10638 enum rpc_accept_stat {
10640 RPC_PROG_UNAVAIL = 1,
10641 RPC_PROG_MISMATCH = 2,
10642 RPC_PROC_UNAVAIL = 3,
10643 RPC_GARBAGE_ARGS = 4,
10644 RPC_SYSTEM_ERR = 5,
10646 RPC_DROP_REPLY = 60000,
10649 enum rpc_reject_stat {
10654 enum rpc_auth_stat {
10656 RPC_AUTH_BADCRED = 1,
10657 RPC_AUTH_REJECTEDCRED = 2,
10658 RPC_AUTH_BADVERF = 3,
10659 RPC_AUTH_REJECTEDVERF = 4,
10660 RPC_AUTH_TOOWEAK = 5,
10662 RPCSEC_GSS_CREDPROBLEM = 13,
10663 RPCSEC_GSS_CTXPROBLEM = 14
10665 # 102 "include/linux/sunrpc/msg_prot.h"
10666 typedef __be32 rpc_fraghdr;
10667 # 193 "include/linux/sunrpc/msg_prot.h"
10668 # 1 "include/linux/inet.h" 1
10669 # 54 "include/linux/inet.h"
10670 extern __be32 in_aton(const char *str);
10671 extern int in4_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
10672 extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
10673 # 194 "include/linux/sunrpc/msg_prot.h" 2
10674 # 131 "include/linux/nfs.h" 2
10682 unsigned short size;
10683 unsigned char data[128];
10690 static inline __attribute__((always_inline)) int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
10692 return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
10695 static inline __attribute__((always_inline)) void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
10697 target->size = source->size;
10698 memcpy(target->data, source->data, source->size);
10700 # 165 "include/linux/nfs.h"
10701 enum nfs3_stable_how {
10706 # 7 "include/linux/nfs_fs_i.h" 2
10708 struct nlm_lockowner;
10713 struct nfs_lock_info {
10715 struct nlm_lockowner *owner;
10716 struct list_head list;
10719 struct nfs4_lock_state;
10720 struct nfs4_lock_info {
10721 struct nfs4_lock_state *owner;
10723 # 1055 "include/linux/fs.h" 2
10726 struct file_lock *fl_next;
10727 struct list_head fl_link;
10728 struct list_head fl_block;
10729 fl_owner_t fl_owner;
10730 unsigned char fl_flags;
10731 unsigned char fl_type;
10732 unsigned int fl_pid;
10733 struct pid *fl_nspid;
10734 wait_queue_head_t fl_wait;
10735 struct file *fl_file;
10739 struct fasync_struct * fl_fasync;
10740 unsigned long fl_break_time;
10742 const struct file_lock_operations *fl_ops;
10743 const struct lock_manager_operations *fl_lmops;
10745 struct nfs_lock_info nfs_fl;
10746 struct nfs4_lock_info nfs4_fl;
10748 struct list_head link;
10753 # 1092 "include/linux/fs.h"
10754 # 1 "include/linux/fcntl.h" 1
10758 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h" 1
10759 # 17 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h"
10760 # 1 "include/asm-generic/fcntl.h" 1
10761 # 94 "include/asm-generic/fcntl.h"
10762 struct f_owner_ex {
10766 # 139 "include/asm-generic/fcntl.h"
10770 __kernel_off_t l_start;
10771 __kernel_off_t l_len;
10772 __kernel_pid_t l_pid;
10775 # 156 "include/asm-generic/fcntl.h"
10779 __kernel_loff_t l_start;
10780 __kernel_loff_t l_len;
10781 __kernel_pid_t l_pid;
10784 # 18 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/fcntl.h" 2
10785 # 5 "include/linux/fcntl.h" 2
10786 # 1093 "include/linux/fs.h" 2
10788 extern void send_sigio(struct fown_struct *fown, int fd, int band);
10791 extern int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
10792 loff_t endbyte, unsigned int flags);
10795 extern int fcntl_getlk(struct file *, struct flock *);
10796 extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
10800 extern int fcntl_getlk64(struct file *, struct flock64 *);
10801 extern int fcntl_setlk64(unsigned int, struct file *, unsigned int,
10805 extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
10806 extern int fcntl_getlease(struct file *filp);
10809 extern void locks_init_lock(struct file_lock *);
10810 extern void locks_copy_lock(struct file_lock *, struct file_lock *);
10811 extern void __locks_copy_lock(struct file_lock *, const struct file_lock *);
10812 extern void locks_remove_posix(struct file *, fl_owner_t);
10813 extern void locks_remove_flock(struct file *);
10814 extern void locks_release_private(struct file_lock *);
10815 extern void posix_test_lock(struct file *, struct file_lock *);
10816 extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *);
10817 extern int posix_lock_file_wait(struct file *, struct file_lock *);
10818 extern int posix_unblock_lock(struct file *, struct file_lock *);
10819 extern int vfs_test_lock(struct file *, struct file_lock *);
10820 extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *);
10821 extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl);
10822 extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl);
10823 extern int __break_lease(struct inode *inode, unsigned int flags);
10824 extern void lease_get_mtime(struct inode *, struct timespec *time);
10825 extern int generic_setlease(struct file *, long, struct file_lock **);
10826 extern int vfs_setlease(struct file *, long, struct file_lock **);
10827 extern int lease_modify(struct file_lock **, int);
10828 extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
10829 extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
10830 # 1281 "include/linux/fs.h"
10831 struct fasync_struct {
10834 struct fasync_struct *fa_next;
10835 struct file *fa_file;
10841 extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
10843 extern void kill_fasync(struct fasync_struct **, int, int);
10845 extern void __kill_fasync(struct fasync_struct *, int, int);
10847 extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
10848 extern int f_setown(struct file *filp, unsigned long arg, int force);
10849 extern void f_delown(struct file *filp);
10850 extern pid_t f_getown(struct file *filp);
10851 extern int send_sigurg(struct fown_struct *fown);
10852 # 1311 "include/linux/fs.h"
10853 extern struct list_head super_blocks;
10854 extern spinlock_t sb_lock;
10858 struct super_block {
10859 struct list_head s_list;
10861 unsigned long s_blocksize;
10862 unsigned char s_blocksize_bits;
10863 unsigned char s_dirt;
10865 struct file_system_type *s_type;
10866 const struct super_operations *s_op;
10867 const struct dquot_operations *dq_op;
10868 const struct quotactl_ops *s_qcop;
10869 const struct export_operations *s_export_op;
10870 unsigned long s_flags;
10871 unsigned long s_magic;
10872 struct dentry *s_root;
10873 struct rw_semaphore s_umount;
10874 struct mutex s_lock;
10881 struct xattr_handler **s_xattr;
10883 struct list_head s_inodes;
10884 struct hlist_head s_anon;
10885 struct list_head s_files;
10887 struct list_head s_dentry_lru;
10888 int s_nr_dentry_unused;
10890 struct block_device *s_bdev;
10891 struct backing_dev_info *s_bdi;
10892 struct mtd_info *s_mtd;
10893 struct list_head s_instances;
10894 struct quota_info s_dquot;
10897 wait_queue_head_t s_wait_unfrozen;
10908 struct mutex s_vfs_rename_mutex;
10927 extern struct timespec current_fs_time(struct super_block *sb);
10934 SB_FREEZE_WRITE = 1,
10935 SB_FREEZE_TRANS = 2,
10937 # 1407 "include/linux/fs.h"
10938 extern void lock_super(struct super_block *);
10939 extern void unlock_super(struct super_block *);
10944 extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
10945 extern int vfs_mkdir(struct inode *, struct dentry *, int);
10946 extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
10947 extern int vfs_symlink(struct inode *, struct dentry *, const char *);
10948 extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
10949 extern int vfs_rmdir(struct inode *, struct dentry *);
10950 extern int vfs_unlink(struct inode *, struct dentry *);
10951 extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
10956 extern void dentry_unhash(struct dentry *dentry);
10961 extern int file_permission(struct file *, int);
10966 struct fiemap_extent_info {
10967 unsigned int fi_flags;
10968 unsigned int fi_extents_mapped;
10969 unsigned int fi_extents_max;
10970 struct fiemap_extent *fi_extents_start;
10973 int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical,
10974 u64 phys, u64 len, u32 flags);
10975 int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags);
10976 # 1468 "include/linux/fs.h"
10977 typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned);
10978 struct block_device_operations;
10979 # 1482 "include/linux/fs.h"
10980 struct file_operations {
10981 struct module *owner;
10982 loff_t (*llseek) (struct file *, loff_t, int);
10983 ssize_t (*read) (struct file *, char *, size_t, loff_t *);
10984 ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
10985 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
10986 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
10987 int (*readdir) (struct file *, void *, filldir_t);
10988 unsigned int (*poll) (struct file *, struct poll_table_struct *);
10989 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
10990 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
10991 long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
10992 int (*mmap) (struct file *, struct vm_area_struct *);
10993 int (*open) (struct inode *, struct file *);
10994 int (*flush) (struct file *, fl_owner_t id);
10995 int (*release) (struct inode *, struct file *);
10996 int (*fsync) (struct file *, struct dentry *, int datasync);
10997 int (*aio_fsync) (struct kiocb *, int datasync);
10998 int (*fasync) (int, struct file *, int);
10999 int (*lock) (struct file *, int, struct file_lock *);
11000 ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
11001 unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
11002 int (*check_flags)(int);
11003 int (*flock) (struct file *, int, struct file_lock *);
11004 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
11005 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
11006 int (*setlease)(struct file *, long, struct file_lock **);
11009 struct inode_operations {
11010 int (*create) (struct inode *,struct dentry *,int, struct nameidata *);
11011 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
11012 int (*link) (struct dentry *,struct inode *,struct dentry *);
11013 int (*unlink) (struct inode *,struct dentry *);
11014 int (*symlink) (struct inode *,struct dentry *,const char *);
11015 int (*mkdir) (struct inode *,struct dentry *,int);
11016 int (*rmdir) (struct inode *,struct dentry *);
11017 int (*mknod) (struct inode *,struct dentry *,int,dev_t);
11018 int (*rename) (struct inode *, struct dentry *,
11019 struct inode *, struct dentry *);
11020 int (*readlink) (struct dentry *, char *,int);
11021 void * (*follow_link) (struct dentry *, struct nameidata *);
11022 void (*put_link) (struct dentry *, struct nameidata *, void *);
11023 void (*truncate) (struct inode *);
11024 int (*permission) (struct inode *, int);
11025 int (*check_acl)(struct inode *, int);
11026 int (*setattr) (struct dentry *, struct iattr *);
11027 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
11028 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
11029 ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
11030 ssize_t (*listxattr) (struct dentry *, char *, size_t);
11031 int (*removexattr) (struct dentry *, const char *);
11032 void (*truncate_range)(struct inode *, loff_t, loff_t);
11033 long (*fallocate)(struct inode *inode, int mode, loff_t offset,
11035 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
11041 ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector,
11042 unsigned long nr_segs, unsigned long fast_segs,
11043 struct iovec *fast_pointer,
11044 struct iovec **ret_pointer);
11046 extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *);
11047 extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *);
11048 extern ssize_t vfs_readv(struct file *, const struct iovec *,
11049 unsigned long, loff_t *);
11050 extern ssize_t vfs_writev(struct file *, const struct iovec *,
11051 unsigned long, loff_t *);
11053 struct super_operations {
11054 struct inode *(*alloc_inode)(struct super_block *sb);
11055 void (*destroy_inode)(struct inode *);
11057 void (*dirty_inode) (struct inode *);
11058 int (*write_inode) (struct inode *, int);
11059 void (*drop_inode) (struct inode *);
11060 void (*delete_inode) (struct inode *);
11061 void (*put_super) (struct super_block *);
11062 void (*write_super) (struct super_block *);
11063 int (*sync_fs)(struct super_block *sb, int wait);
11064 int (*freeze_fs) (struct super_block *);
11065 int (*unfreeze_fs) (struct super_block *);
11066 int (*statfs) (struct dentry *, struct kstatfs *);
11067 int (*remount_fs) (struct super_block *, int *, char *);
11068 void (*clear_inode) (struct inode *);
11069 void (*umount_begin) (struct super_block *);
11071 int (*show_options)(struct seq_file *, struct vfsmount *);
11072 int (*show_stats)(struct seq_file *, struct vfsmount *);
11074 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
11075 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
11077 int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
11079 # 1649 "include/linux/fs.h"
11080 extern void __mark_inode_dirty(struct inode *, int);
11081 static inline __attribute__((always_inline)) void mark_inode_dirty(struct inode *inode)
11083 __mark_inode_dirty(inode, (1 | 2 | 4));
11086 static inline __attribute__((always_inline)) void mark_inode_dirty_sync(struct inode *inode)
11088 __mark_inode_dirty(inode, 1);
11090 # 1668 "include/linux/fs.h"
11091 static inline __attribute__((always_inline)) void inc_nlink(struct inode *inode)
11096 static inline __attribute__((always_inline)) void inode_inc_link_count(struct inode *inode)
11099 mark_inode_dirty(inode);
11101 # 1690 "include/linux/fs.h"
11102 static inline __attribute__((always_inline)) void drop_nlink(struct inode *inode)
11106 # 1703 "include/linux/fs.h"
11107 static inline __attribute__((always_inline)) void clear_nlink(struct inode *inode)
11109 inode->i_nlink = 0;
11112 static inline __attribute__((always_inline)) void inode_dec_link_count(struct inode *inode)
11115 mark_inode_dirty(inode);
11117 # 1722 "include/linux/fs.h"
11118 static inline __attribute__((always_inline)) void inode_inc_iversion(struct inode *inode)
11120 _spin_lock(&inode->i_lock);
11121 inode->i_version++;
11122 _spin_unlock(&inode->i_lock);
11125 extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry);
11126 static inline __attribute__((always_inline)) void file_accessed(struct file *file)
11128 if (!(file->f_flags & 01000000))
11129 touch_atime(file->f_path.mnt, file->f_path.dentry);
11132 int sync_inode(struct inode *inode, struct writeback_control *wbc);
11134 struct file_system_type {
11137 int (*get_sb) (struct file_system_type *, int,
11138 const char *, void *, struct vfsmount *);
11139 void (*kill_sb) (struct super_block *);
11140 struct module *owner;
11141 struct file_system_type * next;
11142 struct list_head fs_supers;
11144 struct lock_class_key s_lock_key;
11145 struct lock_class_key s_umount_key;
11147 struct lock_class_key i_lock_key;
11148 struct lock_class_key i_mutex_key;
11149 struct lock_class_key i_mutex_dir_key;
11150 struct lock_class_key i_alloc_sem_key;
11153 extern int get_sb_ns(struct file_system_type *fs_type, int flags, void *data,
11154 int (*fill_super)(struct super_block *, void *, int),
11155 struct vfsmount *mnt);
11156 extern int get_sb_bdev(struct file_system_type *fs_type,
11157 int flags, const char *dev_name, void *data,
11158 int (*fill_super)(struct super_block *, void *, int),
11159 struct vfsmount *mnt);
11160 extern int get_sb_single(struct file_system_type *fs_type,
11161 int flags, void *data,
11162 int (*fill_super)(struct super_block *, void *, int),
11163 struct vfsmount *mnt);
11164 extern int get_sb_nodev(struct file_system_type *fs_type,
11165 int flags, void *data,
11166 int (*fill_super)(struct super_block *, void *, int),
11167 struct vfsmount *mnt);
11168 void generic_shutdown_super(struct super_block *sb);
11169 void kill_block_super(struct super_block *sb);
11170 void kill_anon_super(struct super_block *sb);
11171 void kill_litter_super(struct super_block *sb);
11172 void deactivate_super(struct super_block *sb);
11173 void deactivate_locked_super(struct super_block *sb);
11174 int set_anon_super(struct super_block *s, void *data);
11175 struct super_block *sget(struct file_system_type *type,
11176 int (*test)(struct super_block *,void *),
11177 int (*set)(struct super_block *,void *),
11179 extern int get_sb_pseudo(struct file_system_type *, char *,
11180 const struct super_operations *ops, unsigned long,
11181 struct vfsmount *mnt);
11182 extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
11183 int __put_super_and_need_restart(struct super_block *sb);
11184 void put_super(struct super_block *sb);
11192 extern int register_filesystem(struct file_system_type *);
11193 extern int unregister_filesystem(struct file_system_type *);
11194 extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data);
11196 extern int may_umount_tree(struct vfsmount *);
11197 extern int may_umount(struct vfsmount *);
11198 extern long do_mount(char *, char *, char *, unsigned long, void *);
11199 extern struct vfsmount *collect_mounts(struct path *);
11200 extern void drop_collected_mounts(struct vfsmount *);
11202 extern int vfs_statfs(struct dentry *, struct kstatfs *);
11204 extern int current_umask(void);
11207 extern struct kobject *fs_kobj;
11209 extern int rw_verify_area(int, struct file *, loff_t *, size_t);
11215 extern int locks_mandatory_locked(struct inode *);
11216 extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
11223 static inline __attribute__((always_inline)) int __mandatory_lock(struct inode *ino)
11225 return (ino->i_mode & (0002000 | 00010)) == 0002000;
11233 static inline __attribute__((always_inline)) int mandatory_lock(struct inode *ino)
11235 return ((ino)->i_sb->s_flags & (64)) && __mandatory_lock(ino);
11238 static inline __attribute__((always_inline)) int locks_verify_locked(struct inode *inode)
11240 if (mandatory_lock(inode))
11241 return locks_mandatory_locked(inode);
11245 static inline __attribute__((always_inline)) int locks_verify_truncate(struct inode *inode,
11249 if (inode->i_flock && mandatory_lock(inode))
11250 return locks_mandatory_area(
11252 size < inode->i_size ? size : inode->i_size,
11253 (size < inode->i_size ? inode->i_size - size
11254 : size - inode->i_size)
11259 static inline __attribute__((always_inline)) int break_lease(struct inode *inode, unsigned int mode)
11261 if (inode->i_flock)
11262 return __break_lease(inode, mode);
11265 # 1912 "include/linux/fs.h"
11266 extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs,
11267 struct file *filp);
11268 extern int do_fallocate(struct file *file, int mode, loff_t offset,
11270 extern long do_sys_open(int dfd, const char *filename, int flags,
11272 extern struct file *filp_open(const char *, int, int);
11273 extern struct file * dentry_open(struct dentry *, struct vfsmount *, int,
11274 const struct cred *);
11275 extern int filp_close(struct file *, fl_owner_t id);
11276 extern char * getname(const char *);
11280 extern int ioctl_preallocate(struct file *filp, void *argp);
11283 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init_early(void);
11284 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init(unsigned long);
11286 extern struct kmem_cache *names_cachep;
11287 # 1944 "include/linux/fs.h"
11288 extern int register_blkdev(unsigned int, const char *);
11289 extern void unregister_blkdev(unsigned int, const char *);
11290 extern struct block_device *bdget(dev_t);
11291 extern struct block_device *bdgrab(struct block_device *bdev);
11292 extern void bd_set_size(struct block_device *, loff_t size);
11293 extern void bd_forget(struct inode *inode);
11294 extern void bdput(struct block_device *);
11295 extern struct block_device *open_by_devnum(dev_t, fmode_t);
11296 extern void invalidate_bdev(struct block_device *);
11297 extern int sync_blockdev(struct block_device *bdev);
11298 extern struct super_block *freeze_bdev(struct block_device *);
11299 extern void emergency_thaw_all(void);
11300 extern int thaw_bdev(struct block_device *bdev, struct super_block *sb);
11301 extern int fsync_bdev(struct block_device *);
11302 # 1973 "include/linux/fs.h"
11303 extern int sync_filesystem(struct super_block *);
11304 extern const struct file_operations def_blk_fops;
11305 extern const struct file_operations def_chr_fops;
11306 extern const struct file_operations bad_sock_fops;
11307 extern const struct file_operations def_fifo_fops;
11309 extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);
11310 extern int blkdev_ioctl(struct block_device *, fmode_t, unsigned, unsigned long);
11311 extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long);
11312 extern int blkdev_get(struct block_device *, fmode_t);
11313 extern int blkdev_put(struct block_device *, fmode_t);
11314 extern int bd_claim(struct block_device *, void *);
11315 extern void bd_release(struct block_device *);
11317 extern int bd_claim_by_disk(struct block_device *, void *, struct gendisk *);
11318 extern void bd_release_from_disk(struct block_device *, struct gendisk *);
11319 # 1997 "include/linux/fs.h"
11320 extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
11321 extern int register_chrdev_region(dev_t, unsigned, const char *);
11322 extern int __register_chrdev(unsigned int major, unsigned int baseminor,
11323 unsigned int count, const char *name,
11324 const struct file_operations *fops);
11325 extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
11326 unsigned int count, const char *name);
11327 extern void unregister_chrdev_region(dev_t, unsigned);
11328 extern void chrdev_show(struct seq_file *,off_t);
11330 static inline __attribute__((always_inline)) int register_chrdev(unsigned int major, const char *name,
11331 const struct file_operations *fops)
11333 return __register_chrdev(major, 0, 256, name, fops);
11336 static inline __attribute__((always_inline)) void unregister_chrdev(unsigned int major, const char *name)
11338 __unregister_chrdev(major, 0, 256, name);
11347 extern const char *__bdevname(dev_t, char *buffer);
11348 extern const char *bdevname(struct block_device *bdev, char *buffer);
11349 extern struct block_device *lookup_bdev(const char *);
11350 extern struct block_device *open_bdev_exclusive(const char *, fmode_t, void *);
11351 extern void close_bdev_exclusive(struct block_device *, fmode_t);
11352 extern void blkdev_show(struct seq_file *,off_t);
11358 extern void init_special_inode(struct inode *, umode_t, dev_t);
11361 extern void make_bad_inode(struct inode *);
11362 extern int is_bad_inode(struct inode *);
11364 extern const struct file_operations read_pipefifo_fops;
11365 extern const struct file_operations write_pipefifo_fops;
11366 extern const struct file_operations rdwr_pipefifo_fops;
11368 extern int fs_may_remount_ro(struct super_block *);
11369 # 2058 "include/linux/fs.h"
11370 extern void check_disk_size_change(struct gendisk *disk,
11371 struct block_device *bdev);
11372 extern int revalidate_disk(struct gendisk *);
11373 extern int check_disk_change(struct block_device *);
11374 extern int __invalidate_device(struct block_device *);
11375 extern int invalidate_partition(struct gendisk *, int);
11377 extern int invalidate_inodes(struct super_block *);
11378 unsigned long invalidate_mapping_pages(struct address_space *mapping,
11379 unsigned long start, unsigned long end);
11381 static inline __attribute__((always_inline)) unsigned long
11382 invalidate_inode_pages(struct address_space *mapping)
11384 return invalidate_mapping_pages(mapping, 0, ~0UL);
11387 static inline __attribute__((always_inline)) void invalidate_remote_inode(struct inode *inode)
11389 if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) ||
11390 (((inode->i_mode) & 00170000) == 0120000))
11391 invalidate_mapping_pages(inode->i_mapping, 0, -1);
11393 extern int invalidate_inode_pages2(struct address_space *mapping);
11394 extern int invalidate_inode_pages2_range(struct address_space *mapping,
11395 unsigned long start, unsigned long end);
11396 extern int write_inode_now(struct inode *, int);
11397 extern int filemap_fdatawrite(struct address_space *);
11398 extern int filemap_flush(struct address_space *);
11399 extern int filemap_fdatawait(struct address_space *);
11400 extern int filemap_fdatawait_range(struct address_space *, loff_t lstart,
11402 extern int filemap_write_and_wait(struct address_space *mapping);
11403 extern int filemap_write_and_wait_range(struct address_space *mapping,
11404 loff_t lstart, loff_t lend);
11405 extern int wait_on_page_writeback_range(struct address_space *mapping,
11406 unsigned long start, unsigned long end);
11407 extern int __filemap_fdatawrite_range(struct address_space *mapping,
11408 loff_t start, loff_t end, int sync_mode);
11409 extern int filemap_fdatawrite_range(struct address_space *mapping,
11410 loff_t start, loff_t end);
11412 extern int vfs_fsync_range(struct file *file, struct dentry *dentry,
11413 loff_t start, loff_t end, int datasync);
11414 extern int vfs_fsync(struct file *file, struct dentry *dentry, int datasync);
11415 extern int generic_write_sync(struct file *file, loff_t pos, loff_t count);
11416 extern void sync_supers(void);
11417 extern void emergency_sync(void);
11418 extern void emergency_remount(void);
11420 extern sector_t bmap(struct inode *, sector_t);
11422 extern int notify_change(struct dentry *, struct iattr *);
11423 extern int inode_permission(struct inode *, int);
11424 extern int generic_permission(struct inode *, int,
11425 int (*check_acl)(struct inode *, int));
11427 static inline __attribute__((always_inline)) bool execute_ok(struct inode *inode)
11429 return (inode->i_mode & (00100|00010|00001)) || (((inode->i_mode) & 00170000) == 0040000);
11432 extern int get_write_access(struct inode *);
11433 extern int deny_write_access(struct file *);
11434 static inline __attribute__((always_inline)) void put_write_access(struct inode * inode)
11436 atomic_dec(&inode->i_writecount);
11438 static inline __attribute__((always_inline)) void allow_write_access(struct file *file)
11441 atomic_inc(&file->f_path.dentry->d_inode->i_writecount);
11443 extern int do_pipe_flags(int *, int);
11444 extern struct file *create_read_pipe(struct file *f, int flags);
11445 extern struct file *create_write_pipe(int flags);
11446 extern void free_write_pipe(struct file *);
11448 extern struct file *do_filp_open(int dfd, const char *pathname,
11449 int open_flag, int mode, int acc_mode);
11450 extern int may_open(struct path *, int, int);
11452 extern int kernel_read(struct file *, loff_t, char *, unsigned long);
11453 extern struct file * open_exec(const char *);
11456 extern int is_subdir(struct dentry *, struct dentry *);
11457 extern ino_t find_inode_number(struct dentry *, struct qstr *);
11459 # 1 "include/linux/err.h" 1
11465 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/errno.h" 1
11466 # 7 "include/linux/err.h" 2
11467 # 22 "include/linux/err.h"
11468 static inline __attribute__((always_inline)) void *ERR_PTR(long error)
11470 return (void *) error;
11473 static inline __attribute__((always_inline)) long PTR_ERR(const void *ptr)
11478 static inline __attribute__((always_inline)) long IS_ERR(const void *ptr)
11480 return __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0);
11482 # 44 "include/linux/err.h"
11483 static inline __attribute__((always_inline)) void *ERR_CAST(const void *ptr)
11486 return (void *) ptr;
11488 # 2148 "include/linux/fs.h" 2
11491 extern loff_t default_llseek(struct file *file, loff_t offset, int origin);
11493 extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin);
11495 extern int inode_init_always(struct super_block *, struct inode *);
11496 extern void inode_init_once(struct inode *);
11497 extern void inode_add_to_lists(struct super_block *, struct inode *);
11498 extern void iput(struct inode *);
11499 extern struct inode * igrab(struct inode *);
11500 extern ino_t iunique(struct super_block *, ino_t);
11501 extern int inode_needs_sync(struct inode *inode);
11502 extern void generic_delete_inode(struct inode *inode);
11503 extern void generic_drop_inode(struct inode *inode);
11504 extern int generic_detach_inode(struct inode *inode);
11506 extern struct inode *ilookup5_nowait(struct super_block *sb,
11507 unsigned long hashval, int (*test)(struct inode *, void *),
11509 extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
11510 int (*test)(struct inode *, void *), void *data);
11511 extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
11513 extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *);
11514 extern struct inode * iget_locked(struct super_block *, unsigned long);
11515 extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *);
11516 extern int insert_inode_locked(struct inode *);
11517 extern void unlock_new_inode(struct inode *);
11519 extern void __iget(struct inode * inode);
11520 extern void iget_failed(struct inode *);
11521 extern void clear_inode(struct inode *);
11522 extern void destroy_inode(struct inode *);
11523 extern void __destroy_inode(struct inode *);
11524 extern struct inode *new_inode(struct super_block *);
11525 extern int should_remove_suid(struct dentry *);
11526 extern int file_remove_suid(struct file *);
11528 extern void __insert_inode_hash(struct inode *, unsigned long hashval);
11529 extern void remove_inode_hash(struct inode *);
11530 static inline __attribute__((always_inline)) void insert_inode_hash(struct inode *inode) {
11531 __insert_inode_hash(inode, inode->i_ino);
11534 extern struct file * get_empty_filp(void);
11535 extern void file_move(struct file *f, struct list_head *list);
11536 extern void file_kill(struct file *f);
11539 extern void submit_bio(int, struct bio *);
11540 extern int bdev_read_only(struct block_device *);
11542 extern int set_blocksize(struct block_device *, int);
11543 extern int sb_set_blocksize(struct super_block *, int);
11544 extern int sb_min_blocksize(struct super_block *, int);
11546 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
11547 extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
11548 extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
11549 int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk);
11550 extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t);
11551 extern ssize_t __generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long,
11553 extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t);
11554 extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *,
11555 unsigned long *, loff_t, loff_t *, size_t, size_t);
11556 extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *,
11557 unsigned long, loff_t, loff_t *, size_t, ssize_t);
11558 extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos);
11559 extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos);
11560 extern int generic_segment_checks(const struct iovec *iov,
11561 unsigned long *nr_segs, size_t *count, int access_flags);
11564 extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
11565 unsigned long nr_segs, loff_t pos);
11568 extern ssize_t generic_file_splice_read(struct file *, loff_t *,
11569 struct pipe_inode_info *, size_t, unsigned int);
11570 extern ssize_t default_file_splice_read(struct file *, loff_t *,
11571 struct pipe_inode_info *, size_t, unsigned int);
11572 extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
11573 struct file *, loff_t *, size_t, unsigned int);
11574 extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
11575 struct file *out, loff_t *, size_t len, unsigned int flags);
11576 extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
11577 size_t len, unsigned int flags);
11580 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
11581 extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
11582 extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin);
11583 extern loff_t generic_file_llseek_unlocked(struct file *file, loff_t offset,
11585 extern int generic_file_open(struct inode * inode, struct file * filp);
11586 extern int nonseekable_open(struct inode * inode, struct file * filp);
11587 # 2255 "include/linux/fs.h"
11588 static inline __attribute__((always_inline)) int xip_truncate_page(struct address_space *mapping, loff_t from)
11595 ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
11596 struct block_device *bdev, const struct iovec *iov, loff_t offset,
11597 unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io,
11606 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb,
11607 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
11608 loff_t offset, unsigned long nr_segs, get_block_t get_block,
11609 dio_iodone_t end_io)
11611 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
11612 nr_segs, get_block, end_io, DIO_LOCKING);
11615 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb,
11616 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
11617 loff_t offset, unsigned long nr_segs, get_block_t get_block,
11618 dio_iodone_t end_io)
11620 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
11621 nr_segs, get_block, end_io, DIO_NO_LOCKING);
11624 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_own_locking(int rw, struct kiocb *iocb,
11625 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
11626 loff_t offset, unsigned long nr_segs, get_block_t get_block,
11627 dio_iodone_t end_io)
11629 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
11630 nr_segs, get_block, end_io, DIO_OWN_LOCKING);
11634 extern const struct file_operations generic_ro_fops;
11638 extern int vfs_readlink(struct dentry *, char *, int, const char *);
11639 extern int vfs_follow_link(struct nameidata *, const char *);
11640 extern int page_readlink(struct dentry *, char *, int);
11641 extern void *page_follow_link_light(struct dentry *, struct nameidata *);
11642 extern void page_put_link(struct dentry *, struct nameidata *, void *);
11643 extern int __page_symlink(struct inode *inode, const char *symname, int len,
11645 extern int page_symlink(struct inode *inode, const char *symname, int len);
11646 extern const struct inode_operations page_symlink_inode_operations;
11647 extern int generic_readlink(struct dentry *, char *, int);
11648 extern void generic_fillattr(struct inode *, struct kstat *);
11649 extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
11650 void inode_add_bytes(struct inode *inode, loff_t bytes);
11651 void inode_sub_bytes(struct inode *inode, loff_t bytes);
11652 loff_t inode_get_bytes(struct inode *inode);
11653 void inode_set_bytes(struct inode *inode, loff_t bytes);
11655 extern int vfs_readdir(struct file *, filldir_t, void *);
11657 extern int vfs_stat(char *, struct kstat *);
11658 extern int vfs_lstat(char *, struct kstat *);
11659 extern int vfs_fstat(unsigned int, struct kstat *);
11660 extern int vfs_fstatat(int , char *, struct kstat *, int);
11662 extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
11663 unsigned long arg);
11664 extern int __generic_block_fiemap(struct inode *inode,
11665 struct fiemap_extent_info *fieinfo, u64 start,
11666 u64 len, get_block_t *get_block);
11667 extern int generic_block_fiemap(struct inode *inode,
11668 struct fiemap_extent_info *fieinfo, u64 start,
11669 u64 len, get_block_t *get_block);
11671 extern void get_filesystem(struct file_system_type *fs);
11672 extern void put_filesystem(struct file_system_type *fs);
11673 extern struct file_system_type *get_fs_type(const char *name);
11674 extern struct super_block *get_super(struct block_device *);
11675 extern struct super_block *get_active_super(struct block_device *bdev);
11676 extern struct super_block *user_get_super(dev_t);
11677 extern void drop_super(struct super_block *sb);
11679 extern int dcache_dir_open(struct inode *, struct file *);
11680 extern int dcache_dir_close(struct inode *, struct file *);
11681 extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
11682 extern int dcache_readdir(struct file *, void *, filldir_t);
11683 extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
11684 extern int simple_statfs(struct dentry *, struct kstatfs *);
11685 extern int simple_link(struct dentry *, struct inode *, struct dentry *);
11686 extern int simple_unlink(struct inode *, struct dentry *);
11687 extern int simple_rmdir(struct inode *, struct dentry *);
11688 extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
11689 extern int simple_sync_file(struct file *, struct dentry *, int);
11690 extern int simple_empty(struct dentry *);
11691 extern int simple_readpage(struct file *file, struct page *page);
11692 extern int simple_prepare_write(struct file *file, struct page *page,
11693 unsigned offset, unsigned to);
11694 extern int simple_write_begin(struct file *file, struct address_space *mapping,
11695 loff_t pos, unsigned len, unsigned flags,
11696 struct page **pagep, void **fsdata);
11697 extern int simple_write_end(struct file *file, struct address_space *mapping,
11698 loff_t pos, unsigned len, unsigned copied,
11699 struct page *page, void *fsdata);
11701 extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *);
11702 extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *);
11703 extern const struct file_operations simple_dir_operations;
11704 extern const struct inode_operations simple_dir_inode_operations;
11705 struct tree_descr { char *name; const struct file_operations *ops; int mode; };
11706 struct dentry *d_alloc_name(struct dentry *, const char *);
11707 extern int simple_fill_super(struct super_block *, int, struct tree_descr *);
11708 extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count);
11709 extern void simple_release_fs(struct vfsmount **mount, int *count);
11711 extern ssize_t simple_read_from_buffer(void *to, size_t count,
11712 loff_t *ppos, const void *from, size_t available);
11714 extern int simple_fsync(struct file *, struct dentry *, int);
11715 # 2390 "include/linux/fs.h"
11716 extern int inode_change_ok(const struct inode *, struct iattr *);
11717 extern int inode_newsize_ok(const struct inode *, loff_t offset);
11718 extern int __attribute__((warn_unused_result)) inode_setattr(struct inode *, struct iattr *);
11720 extern void file_update_time(struct file *file);
11722 extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt);
11723 extern void save_mount_options(struct super_block *sb, char *options);
11724 extern void replace_mount_options(struct super_block *sb, char *options);
11726 static inline __attribute__((always_inline)) ino_t parent_ino(struct dentry *dentry)
11730 _spin_lock(&dentry->d_lock);
11731 res = dentry->d_parent->d_inode->i_ino;
11732 _spin_unlock(&dentry->d_lock);
11742 struct simple_transaction_argresp {
11749 char *simple_transaction_get(struct file *file, const char *buf,
11751 ssize_t simple_transaction_read(struct file *file, char *buf,
11752 size_t size, loff_t *pos);
11753 int simple_transaction_release(struct inode *inode, struct file *file);
11755 void simple_transaction_set(struct file *file, size_t n);
11756 # 2461 "include/linux/fs.h"
11757 static inline __attribute__((always_inline)) void __attribute__((format(printf, 1, 2)))
11758 __simple_attr_check_format(const char *fmt, ...)
11763 int simple_attr_open(struct inode *inode, struct file *file,
11764 int (*get)(void *, u64 *), int (*set)(void *, u64),
11766 int simple_attr_release(struct inode *inode, struct file *file);
11767 ssize_t simple_attr_read(struct file *file, char *buf,
11768 size_t len, loff_t *ppos);
11769 ssize_t simple_attr_write(struct file *file, const char *buf,
11770 size_t len, loff_t *ppos);
11773 int proc_nr_files(struct ctl_table *table, int write,
11774 void *buffer, size_t *lenp, loff_t *ppos);
11776 int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) get_filesystem_list(char *buf);
11777 # 12 "include/linux/buffer_head.h" 2
11779 # 1 "include/linux/pagemap.h" 1
11786 # 1 "include/linux/mm.h" 1
11787 # 11 "include/linux/mm.h"
11788 # 1 "include/linux/rbtree.h" 1
11789 # 100 "include/linux/rbtree.h"
11792 unsigned long rb_parent_color;
11795 struct rb_node *rb_right;
11796 struct rb_node *rb_left;
11797 } __attribute__((aligned(sizeof(long))));
11802 struct rb_node *rb_node;
11804 # 123 "include/linux/rbtree.h"
11805 static inline __attribute__((always_inline)) void rb_set_parent(struct rb_node *rb, struct rb_node *p)
11807 rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p;
11809 static inline __attribute__((always_inline)) void rb_set_color(struct rb_node *rb, int color)
11811 rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;
11813 # 139 "include/linux/rbtree.h"
11814 extern void rb_insert_color(struct rb_node *, struct rb_root *);
11815 extern void rb_erase(struct rb_node *, struct rb_root *);
11818 extern struct rb_node *rb_next(const struct rb_node *);
11819 extern struct rb_node *rb_prev(const struct rb_node *);
11820 extern struct rb_node *rb_first(const struct rb_root *);
11821 extern struct rb_node *rb_last(const struct rb_root *);
11824 extern void rb_replace_node(struct rb_node *victim, struct rb_node *new,
11825 struct rb_root *root);
11827 static inline __attribute__((always_inline)) void rb_link_node(struct rb_node * node, struct rb_node * parent,
11828 struct rb_node ** rb_link)
11830 node->rb_parent_color = (unsigned long )parent;
11831 node->rb_left = node->rb_right = ((void *)0);
11835 # 12 "include/linux/mm.h" 2
11838 # 1 "include/linux/mm_types.h" 1
11842 # 1 "include/linux/auxvec.h" 1
11846 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/auxvec.h" 1
11847 # 1 "include/asm-generic/auxvec.h" 1
11848 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/auxvec.h" 2
11849 # 5 "include/linux/auxvec.h" 2
11850 # 5 "include/linux/mm_types.h" 2
11851 # 14 "include/linux/mm_types.h"
11852 # 1 "include/linux/page-debug-flags.h" 1
11853 # 14 "include/linux/page-debug-flags.h"
11854 enum page_debug_flags {
11855 PAGE_DEBUG_FLAG_POISON,
11857 # 15 "include/linux/mm_types.h" 2
11859 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mmu.h" 1
11860 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/mmu.h"
11861 struct sram_list_struct {
11862 struct sram_list_struct *next;
11868 unsigned long end_brk;
11869 unsigned long stack_start;
11873 void *l1_stack_save;
11875 struct sram_list_struct *sram_list;
11878 unsigned long exec_fdpic_loadmap;
11879 unsigned long interp_fdpic_loadmap;
11885 # 17 "include/linux/mm_types.h" 2
11892 struct address_space;
11899 typedef unsigned long mm_counter_t;
11900 # 40 "include/linux/mm_types.h"
11902 unsigned long flags;
11906 atomic_t _mapcount;
11917 unsigned long private;
11924 struct address_space *mapping;
11935 struct kmem_cache *slab;
11936 struct page *first_page;
11939 unsigned long index;
11942 struct list_head lru;
11943 # 99 "include/linux/mm_types.h"
11944 unsigned long debug_flags;
11945 # 109 "include/linux/mm_types.h"
11954 struct rb_node vm_rb;
11955 unsigned long vm_flags;
11956 unsigned long vm_start;
11957 unsigned long vm_end;
11958 unsigned long vm_top;
11959 unsigned long vm_pgoff;
11960 struct file *vm_file;
11971 struct vm_area_struct {
11972 struct mm_struct * vm_mm;
11973 unsigned long vm_start;
11974 unsigned long vm_end;
11978 struct vm_area_struct *vm_next;
11980 pgprot_t vm_page_prot;
11981 unsigned long vm_flags;
11983 struct rb_node vm_rb;
11993 struct list_head list;
11995 struct vm_area_struct *head;
11998 struct raw_prio_tree_node prio_tree_node;
12007 struct list_head anon_vma_node;
12008 struct anon_vma *anon_vma;
12011 const struct vm_operations_struct *vm_ops;
12014 unsigned long vm_pgoff;
12016 struct file * vm_file;
12017 void * vm_private_data;
12018 unsigned long vm_truncate_count;
12021 struct vm_region *vm_region;
12028 struct core_thread {
12029 struct task_struct *task;
12030 struct core_thread *next;
12033 struct core_state {
12034 atomic_t nr_threads;
12035 struct core_thread dumper;
12036 struct completion startup;
12040 struct vm_area_struct * mmap;
12041 struct rb_root mm_rb;
12042 struct vm_area_struct * mmap_cache;
12043 unsigned long (*get_unmapped_area) (struct file *filp,
12044 unsigned long addr, unsigned long len,
12045 unsigned long pgoff, unsigned long flags);
12046 void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
12047 unsigned long mmap_base;
12048 unsigned long task_size;
12049 unsigned long cached_hole_size;
12050 unsigned long free_area_cache;
12055 struct rw_semaphore mmap_sem;
12056 spinlock_t page_table_lock;
12058 struct list_head mmlist;
12066 mm_counter_t _file_rss;
12067 mm_counter_t _anon_rss;
12069 unsigned long hiwater_rss;
12070 unsigned long hiwater_vm;
12072 unsigned long total_vm, locked_vm, shared_vm, exec_vm;
12073 unsigned long stack_vm, reserved_vm, def_flags, nr_ptes;
12074 unsigned long start_code, end_code, start_data, end_data;
12075 unsigned long start_brk, brk, start_stack;
12076 unsigned long arg_start, arg_end, env_start, env_end;
12078 unsigned long saved_auxv[(2*(0 + 19 + 1))];
12080 struct linux_binfmt *binfmt;
12082 cpumask_t cpu_vm_mask;
12085 mm_context_t context;
12086 # 257 "include/linux/mm_types.h"
12087 unsigned int faultstamp;
12088 unsigned int token_priority;
12089 unsigned int last_interval;
12091 unsigned long flags;
12093 struct core_state *core_state;
12095 spinlock_t ioctx_lock;
12096 struct hlist_head ioctx_list;
12097 # 284 "include/linux/mm_types.h"
12098 struct file *exe_file;
12099 unsigned long num_exe_file_vmas;
12105 # 15 "include/linux/mm.h" 2
12109 struct file_ra_state;
12110 struct user_struct;
12111 struct writeback_control;
12115 extern unsigned long max_mapnr;
12118 extern unsigned long num_physpages;
12119 extern unsigned long totalram_pages;
12120 extern void * high_memory;
12121 extern int page_cluster;
12124 extern int sysctl_legacy_va_layout;
12130 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 1
12131 # 10 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
12132 # 1 "include/asm-generic/4level-fixup.h" 1
12133 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 2
12138 typedef pte_t *pte_addr_t;
12139 # 40 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
12140 extern void paging_init(void);
12148 static inline __attribute__((always_inline)) int pte_file(pte_t pte)
12152 # 68 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
12153 static inline __attribute__((always_inline)) pte_t pte_rdprotect(pte_t _pte) { _pte.pte &= ~(0x00000004); return _pte; };
12154 static inline __attribute__((always_inline)) pte_t pte_mkread(pte_t _pte) { _pte.pte |= (0x00000004); return _pte; };
12155 static inline __attribute__((always_inline)) pte_t pte_wrprotect(pte_t _pte) { _pte.pte &= ~(0x00000008); return _pte; };
12156 static inline __attribute__((always_inline)) pte_t pte_mkwrite(pte_t _pte) { _pte.pte |= (0x00000008); return _pte; };
12157 static inline __attribute__((always_inline)) pte_t pte_exprotect(pte_t _pte) { _pte.pte &= ~(0x00000004 | 0x00000008); return _pte; };
12158 static inline __attribute__((always_inline)) pte_t pte_mkexec(pte_t _pte) { _pte.pte |= (0x00000004 | 0x00000008); return _pte; };
12159 static inline __attribute__((always_inline)) pte_t pte_mkclean(pte_t _pte) { _pte.pte &= ~(0x00000080); return _pte; };
12160 static inline __attribute__((always_inline)) pte_t pte_mkdirty(pte_t _pte) { _pte.pte |= (0x00000080); return _pte; };
12161 static inline __attribute__((always_inline)) pte_t pte_mkold(pte_t _pte) { _pte.pte &= ~0x00000010 | 0x00000004 | 0x00000008; return _pte; };
12162 static inline __attribute__((always_inline)) pte_t pte_mkyoung(pte_t _pte) { _pte.pte |= 0x00000010 | 0x00000004 | 0x00000008; return _pte; };
12169 extern char empty_zero_page[];
12171 extern unsigned int kobjsize(const void *objp);
12172 # 103 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h"
12173 extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long,
12174 unsigned long, unsigned long,
12178 # 1 "include/asm-generic/pgtable.h" 1
12179 # 309 "include/asm-generic/pgtable.h"
12180 static inline __attribute__((always_inline)) int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
12181 unsigned long pfn, unsigned long size)
12185 # 322 "include/asm-generic/pgtable.h"
12186 static inline __attribute__((always_inline)) int track_pfn_vma_copy(struct vm_area_struct *vma)
12190 # 335 "include/asm-generic/pgtable.h"
12191 static inline __attribute__((always_inline)) void untrack_pfn_vma(struct vm_area_struct *vma,
12192 unsigned long pfn, unsigned long size)
12195 # 109 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/pgtable.h" 2
12196 # 40 "include/linux/mm.h" 2
12197 # 56 "include/linux/mm.h"
12198 extern struct kmem_cache *vm_area_cachep;
12201 extern struct rb_root nommu_region_tree;
12202 extern struct rw_semaphore nommu_region_sem;
12204 extern unsigned int kobjsize(const void *objp);
12205 # 134 "include/linux/mm.h"
12206 extern pgprot_t protection_map[16];
12207 # 148 "include/linux/mm.h"
12208 static inline __attribute__((always_inline)) int is_linear_pfn_mapping(struct vm_area_struct *vma)
12210 return (vma->vm_flags & 0x40000000);
12213 static inline __attribute__((always_inline)) int is_pfn_mapping(struct vm_area_struct *vma)
12215 return (vma->vm_flags & 0x00000400);
12217 # 167 "include/linux/mm.h"
12219 unsigned int flags;
12220 unsigned long pgoff;
12221 void *virtual_address;
12235 struct vm_operations_struct {
12236 void (*open)(struct vm_area_struct * area);
12237 void (*close)(struct vm_area_struct * area);
12238 int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
12242 int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf);
12247 int (*access)(struct vm_area_struct *vma, unsigned long addr,
12248 void *buf, int len, int write);
12249 # 223 "include/linux/mm.h"
12254 # 235 "include/linux/mm.h"
12255 # 1 "include/linux/page-flags.h" 1
12256 # 75 "include/linux/page-flags.h"
12284 # 111 "include/linux/page-flags.h"
12288 PG_checked = PG_owner_priv_1,
12294 PG_fscache = PG_private_2,
12297 PG_pinned = PG_owner_priv_1,
12298 PG_savepinned = PG_dirty,
12301 PG_slob_free = PG_private,
12304 PG_slub_frozen = PG_active,
12305 PG_slub_debug = PG_error,
12307 # 199 "include/linux/page-flags.h"
12310 static inline __attribute__((always_inline)) int PageLocked(struct page *page) { return test_bit(PG_locked, &page->flags); } static inline __attribute__((always_inline)) int TestSetPageLocked(struct page *page) { return test_and_set_bit(PG_locked, &page->flags); }
12311 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); }
12312 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); }
12313 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); }
12314 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); }
12315 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); }
12316 static inline __attribute__((always_inline)) int TestClearPageActive(struct page *page) { return test_and_clear_bit(PG_active, &page->flags); }
12317 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); }
12318 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); }
12319 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); }
12320 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); };
12321 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); }
12322 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); }
12324 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); }
12326 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); }
12327 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); }
12334 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 __SetPagePrivate(struct page *page) { __set_bit(PG_private, &page->flags); }
12335 static inline __attribute__((always_inline)) void __ClearPagePrivate(struct page *page) { __clear_bit(PG_private, &page->flags); }
12336 static inline __attribute__((always_inline)) int PagePrivate2(struct page *page) { return test_bit(PG_private_2, &page->flags); } static inline __attribute__((always_inline)) void SetPagePrivate2(struct page *page) { set_bit(PG_private_2, &page->flags); } static inline __attribute__((always_inline)) void ClearPagePrivate2(struct page *page) { clear_bit(PG_private_2, &page->flags); } static inline __attribute__((always_inline)) int TestSetPagePrivate2(struct page *page) { return test_and_set_bit(PG_private_2, &page->flags); } static inline __attribute__((always_inline)) int TestClearPagePrivate2(struct page *page) { return test_and_clear_bit(PG_private_2, &page->flags); }
12337 static inline __attribute__((always_inline)) int PageOwnerPriv1(struct page *page) { return test_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__((always_inline)) void SetPageOwnerPriv1(struct page *page) { set_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__((always_inline)) void ClearPageOwnerPriv1(struct page *page) { clear_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__((always_inline)) int TestClearPageOwnerPriv1(struct page *page) { return test_and_clear_bit(PG_owner_priv_1, &page->flags); }
12343 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); }
12344 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); }
12345 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); }
12348 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); }
12349 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); }
12350 # 249 "include/linux/page-flags.h"
12351 static inline __attribute__((always_inline)) int PageHighMem(struct page *page) { return 0; }
12357 static inline __attribute__((always_inline)) int PageSwapCache(struct page *page) { return 0; }
12358 static inline __attribute__((always_inline)) void SetPageSwapCache(struct page *page) { } static inline __attribute__((always_inline)) void ClearPageSwapCache(struct page *page) { }
12361 static inline __attribute__((always_inline)) int PageUnevictable(struct page *page) { return test_bit(PG_unevictable, &page->flags); } static inline __attribute__((always_inline)) void SetPageUnevictable(struct page *page) { set_bit(PG_unevictable, &page->flags); } static inline __attribute__((always_inline)) void ClearPageUnevictable(struct page *page) { clear_bit(PG_unevictable, &page->flags); } static inline __attribute__((always_inline)) void __ClearPageUnevictable(struct page *page) { __clear_bit(PG_unevictable, &page->flags); }
12362 static inline __attribute__((always_inline)) int TestClearPageUnevictable(struct page *page) { return test_and_clear_bit(PG_unevictable, &page->flags); }
12370 static inline __attribute__((always_inline)) int PageMlocked(struct page *page) { return 0; } static inline __attribute__((always_inline)) void SetPageMlocked(struct page *page) { }
12371 static inline __attribute__((always_inline)) int TestClearPageMlocked(struct page *page) { return 0; } static inline __attribute__((always_inline)) int __TestClearPageMlocked(struct page *page) { return 0; }
12377 static inline __attribute__((always_inline)) int PageUncached(struct page *page) { return 0; }
12385 static inline __attribute__((always_inline)) int PageHWPoison(struct page *page) { return 0; }
12389 static inline __attribute__((always_inline)) int PageUptodate(struct page *page)
12391 int ret = test_bit(PG_uptodate, &(page)->flags);
12392 # 299 "include/linux/page-flags.h"
12394 __asm__ __volatile__("": : :"memory");
12399 static inline __attribute__((always_inline)) void __SetPageUptodate(struct page *page)
12401 __asm__ __volatile__("": : :"memory");
12402 __set_bit(PG_uptodate, &(page)->flags);
12405 static inline __attribute__((always_inline)) void SetPageUptodate(struct page *page)
12407 # 325 "include/linux/page-flags.h"
12408 __asm__ __volatile__("": : :"memory");
12409 set_bit(PG_uptodate, &(page)->flags);
12413 static inline __attribute__((always_inline)) void ClearPageUptodate(struct page *page) { clear_bit(PG_uptodate, &page->flags); }
12415 extern void cancel_dirty_page(struct page *page, unsigned int account_size);
12417 int test_clear_page_writeback(struct page *page);
12418 int test_set_page_writeback(struct page *page);
12420 static inline __attribute__((always_inline)) void set_page_writeback(struct page *page)
12422 test_set_page_writeback(page);
12424 # 349 "include/linux/page-flags.h"
12425 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); }
12426 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); }
12428 static inline __attribute__((always_inline)) int PageCompound(struct page *page)
12430 return page->flags & ((1L << PG_head) | (1L << PG_tail));
12433 # 429 "include/linux/page-flags.h"
12434 static inline __attribute__((always_inline)) int page_has_private(struct page *page)
12436 return !!(page->flags & (1 << PG_private | 1 << PG_private_2));
12438 # 236 "include/linux/mm.h" 2
12439 # 253 "include/linux/mm.h"
12440 static inline __attribute__((always_inline)) int put_page_testzero(struct page *page)
12443 return (atomic_sub_return(1, (&page->_count)) == 0);
12450 static inline __attribute__((always_inline)) int get_page_unless_zero(struct page *page)
12452 return ({ int c, old; c = (((&page->_count))->counter); while (c != (0) && (old = (((__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); });
12456 struct page *vmalloc_to_page(const void *addr);
12457 unsigned long vmalloc_to_pfn(const void *addr);
12465 static inline __attribute__((always_inline)) int is_vmalloc_addr(const void *x)
12478 static inline __attribute__((always_inline)) int is_vmalloc_or_module_addr(const void *x)
12484 static inline __attribute__((always_inline)) struct page *compound_head(struct page *page)
12486 if (__builtin_expect(!!(PageTail(page)), 0))
12487 return page->first_page;
12491 static inline __attribute__((always_inline)) int page_count(struct page *page)
12493 return ((&compound_head(page)->_count)->counter);
12496 static inline __attribute__((always_inline)) void get_page(struct page *page)
12498 page = compound_head(page);
12500 atomic_inc(&page->_count);
12503 static inline __attribute__((always_inline)) struct page *virt_to_head_page(const void *x)
12505 struct page *page = (mem_map + (((unsigned long)(x)-(0)) >> 12));
12506 return compound_head(page);
12513 static inline __attribute__((always_inline)) void init_page_count(struct page *page)
12515 (((&page->_count)->counter) = (1));
12518 void put_page(struct page *page);
12519 void put_pages_list(struct list_head *pages);
12521 void split_page(struct page *page, unsigned int order);
12528 typedef void compound_page_dtor(struct page *);
12530 static inline __attribute__((always_inline)) void set_compound_page_dtor(struct page *page,
12531 compound_page_dtor *dtor)
12533 page[1].lru.next = (void *)dtor;
12536 static inline __attribute__((always_inline)) compound_page_dtor *get_compound_page_dtor(struct page *page)
12538 return (compound_page_dtor *)page[1].lru.next;
12541 static inline __attribute__((always_inline)) int compound_order(struct page *page)
12543 if (!PageHead(page))
12545 return (unsigned long)page[1].lru.prev;
12548 static inline __attribute__((always_inline)) void set_compound_order(struct page *page, unsigned long order)
12550 page[1].lru.prev = (void *)order;
12552 # 511 "include/linux/mm.h"
12553 static inline __attribute__((always_inline)) enum zone_type page_zonenum(struct page *page)
12555 return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0))) & ((1UL << 2) - 1);
12557 # 524 "include/linux/mm.h"
12558 static inline __attribute__((always_inline)) int page_zone_id(struct page *page)
12560 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);
12563 static inline __attribute__((always_inline)) int zone_to_nid(struct zone *zone)
12575 static inline __attribute__((always_inline)) int page_to_nid(struct page *page)
12577 return (page->flags >> ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))) & ((1UL << 0) - 1);
12581 static inline __attribute__((always_inline)) struct zone *page_zone(struct page *page)
12583 return &(&contig_page_data)->node_zones[page_zonenum(page)];
12585 # 559 "include/linux/mm.h"
12586 static inline __attribute__((always_inline)) void set_page_zone(struct page *page, enum zone_type zone)
12588 page->flags &= ~(((1UL << 2) - 1) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0)));
12589 page->flags |= (zone & ((1UL << 2) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0));
12592 static inline __attribute__((always_inline)) void set_page_node(struct page *page, unsigned long node)
12594 page->flags &= ~(((1UL << 0) - 1) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0)));
12595 page->flags |= (node & ((1UL << 0) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0));
12598 static inline __attribute__((always_inline)) void set_page_section(struct page *page, unsigned long section)
12600 page->flags &= ~(((1UL << 0) - 1) << (((sizeof(unsigned long)*8) - 0) * (0 != 0)));
12601 page->flags |= (section & ((1UL << 0) - 1)) << (((sizeof(unsigned long)*8) - 0) * (0 != 0));
12604 static inline __attribute__((always_inline)) void set_page_links(struct page *page, enum zone_type zone,
12605 unsigned long node, unsigned long pfn)
12607 set_page_zone(page, zone);
12608 set_page_node(page, node);
12609 set_page_section(page, ((pfn) >> 0));
12615 # 1 "include/linux/vmstat.h" 1
12621 # 1 "include/linux/mm.h" 1
12622 # 7 "include/linux/vmstat.h" 2
12623 # 31 "include/linux/vmstat.h"
12624 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
12625 PGALLOC_DMA, PGALLOC_NORMAL , PGALLOC_MOVABLE,
12626 PGFREE, PGACTIVATE, PGDEACTIVATE,
12627 PGFAULT, PGMAJFAULT,
12628 PGREFILL_DMA, PGREFILL_NORMAL , PGREFILL_MOVABLE,
12629 PGSTEAL_DMA, PGSTEAL_NORMAL , PGSTEAL_MOVABLE,
12630 PGSCAN_KSWAPD_DMA, PGSCAN_KSWAPD_NORMAL , PGSCAN_KSWAPD_MOVABLE,
12631 PGSCAN_DIRECT_DMA, PGSCAN_DIRECT_NORMAL , PGSCAN_DIRECT_MOVABLE,
12635 PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
12636 PAGEOUTRUN, ALLOCSTALL, PGROTATED,
12640 UNEVICTABLE_PGCULLED,
12641 UNEVICTABLE_PGSCANNED,
12642 UNEVICTABLE_PGRESCUED,
12643 UNEVICTABLE_PGMLOCKED,
12644 UNEVICTABLE_PGMUNLOCKED,
12645 UNEVICTABLE_PGCLEARED,
12646 UNEVICTABLE_PGSTRANDED,
12647 UNEVICTABLE_MLOCKFREED,
12651 extern int sysctl_stat_interval;
12652 # 71 "include/linux/vmstat.h"
12653 struct vm_event_state {
12654 unsigned long event[NR_VM_EVENT_ITEMS];
12657 extern __attribute__((section(".discard"), unused)) char __pcpu_scope_vm_event_states; extern __attribute__((section(".data" ""))) __typeof__(struct vm_event_state) per_cpu__vm_event_states;
12659 static inline __attribute__((always_inline)) void __count_vm_event(enum vm_event_item item)
12661 per_cpu__vm_event_states.event[item]++;
12664 static inline __attribute__((always_inline)) void count_vm_event(enum vm_event_item item)
12666 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item]++;
12670 static inline __attribute__((always_inline)) void __count_vm_events(enum vm_event_item item, long delta)
12672 per_cpu__vm_event_states.event[item] += delta;
12675 static inline __attribute__((always_inline)) void count_vm_events(enum vm_event_item item, long delta)
12677 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item] += delta;
12681 extern void all_vm_events(unsigned long *);
12685 static inline __attribute__((always_inline)) void vm_events_fold_cpu(int cpu)
12688 # 139 "include/linux/vmstat.h"
12689 extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
12691 static inline __attribute__((always_inline)) void zone_page_state_add(long x, struct zone *zone,
12692 enum zone_stat_item item)
12694 atomic_long_add(x, &zone->vm_stat[item]);
12695 atomic_long_add(x, &vm_stat[item]);
12698 static inline __attribute__((always_inline)) unsigned long global_page_state(enum zone_stat_item item)
12700 long x = atomic_long_read(&vm_stat[item]);
12708 static inline __attribute__((always_inline)) unsigned long zone_page_state(struct zone *zone,
12709 enum zone_stat_item item)
12711 long x = atomic_long_read(&zone->vm_stat[item]);
12719 extern unsigned long global_reclaimable_pages(void);
12720 extern unsigned long zone_reclaimable_pages(struct zone *zone);
12721 # 209 "include/linux/vmstat.h"
12722 static inline __attribute__((always_inline)) void zap_zone_vm_stats(struct zone *zone)
12724 memset(zone->vm_stat, 0, sizeof(zone->vm_stat));
12727 extern void inc_zone_state(struct zone *, enum zone_stat_item);
12728 # 237 "include/linux/vmstat.h"
12729 static inline __attribute__((always_inline)) void __mod_zone_page_state(struct zone *zone,
12730 enum zone_stat_item item, int delta)
12732 zone_page_state_add(delta, zone, item);
12735 static inline __attribute__((always_inline)) void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
12737 atomic_long_inc(&zone->vm_stat[item]);
12738 atomic_long_inc(&vm_stat[item]);
12741 static inline __attribute__((always_inline)) void __inc_zone_page_state(struct page *page,
12742 enum zone_stat_item item)
12744 __inc_zone_state(page_zone(page), item);
12747 static inline __attribute__((always_inline)) void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
12749 atomic_long_dec(&zone->vm_stat[item]);
12750 atomic_long_dec(&vm_stat[item]);
12753 static inline __attribute__((always_inline)) void __dec_zone_page_state(struct page *page,
12754 enum zone_stat_item item)
12756 __dec_zone_state(page_zone(page), item);
12758 # 275 "include/linux/vmstat.h"
12759 static inline __attribute__((always_inline)) void refresh_cpu_vm_stats(int cpu) { }
12760 # 589 "include/linux/mm.h" 2
12762 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *lowmem_page_address(struct page *page)
12764 return ((void *)((unsigned long)(((unsigned long)((page) - mem_map) + (0UL)) << 12) + (0)));
12766 # 631 "include/linux/mm.h"
12767 extern struct address_space swapper_space;
12768 static inline __attribute__((always_inline)) struct address_space *page_mapping(struct page *page)
12770 struct address_space *mapping = page->mapping;
12778 if (__builtin_expect(!!((unsigned long)mapping & 1), 0))
12779 mapping = ((void *)0);
12783 static inline __attribute__((always_inline)) int PageAnon(struct page *page)
12785 return ((unsigned long)page->mapping & 1) != 0;
12792 static inline __attribute__((always_inline)) unsigned long page_index(struct page *page)
12794 if (__builtin_expect(!!(PageSwapCache(page)), 0))
12795 return ((page)->private);
12796 return page->index;
12804 static inline __attribute__((always_inline)) void reset_page_mapcount(struct page *page)
12806 (((&(page)->_mapcount)->counter) = (-1));
12809 static inline __attribute__((always_inline)) int page_mapcount(struct page *page)
12811 return ((&(page)->_mapcount)->counter) + 1;
12817 static inline __attribute__((always_inline)) int page_mapped(struct page *page)
12819 return ((&(page)->_mapcount)->counter) >= 0;
12821 # 708 "include/linux/mm.h"
12822 extern void pagefault_out_of_memory(void);
12826 extern void show_free_areas(void);
12828 int shmem_lock(struct file *file, int lock, struct user_struct *user);
12829 struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
12830 int shmem_zero_setup(struct vm_area_struct *);
12833 extern unsigned long shmem_get_unmapped_area(struct file *file,
12834 unsigned long addr,
12836 unsigned long pgoff,
12837 unsigned long flags);
12840 extern int can_do_mlock(void);
12841 extern int user_shm_lock(size_t, struct user_struct *);
12842 extern void user_shm_unlock(size_t, struct user_struct *);
12847 struct zap_details {
12848 struct vm_area_struct *nonlinear_vma;
12849 struct address_space *check_mapping;
12850 unsigned long first_index;
12851 unsigned long last_index;
12852 spinlock_t *i_mmap_lock;
12853 unsigned long truncate_count;
12856 struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
12859 int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
12860 unsigned long size);
12861 unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address,
12862 unsigned long size, struct zap_details *);
12863 unsigned long unmap_vmas(struct mmu_gather **tlb,
12864 struct vm_area_struct *start_vma, unsigned long start_addr,
12865 unsigned long end_addr, unsigned long *nr_accounted,
12866 struct zap_details *);
12867 # 764 "include/linux/mm.h"
12869 int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
12870 int (*pud_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
12871 int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
12872 int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
12873 int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *);
12874 struct mm_struct *mm;
12878 int walk_page_range(unsigned long addr, unsigned long end,
12879 struct mm_walk *walk);
12880 void free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
12881 unsigned long end, unsigned long floor, unsigned long ceiling);
12882 int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
12883 struct vm_area_struct *vma);
12884 void unmap_mapping_range(struct address_space *mapping,
12885 loff_t const holebegin, loff_t const holelen, int even_cows);
12886 int follow_pfn(struct vm_area_struct *vma, unsigned long address,
12887 unsigned long *pfn);
12888 int follow_phys(struct vm_area_struct *vma, unsigned long address,
12889 unsigned int flags, unsigned long *prot, resource_size_t *phys);
12890 int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
12891 void *buf, int len, int write);
12893 static inline __attribute__((always_inline)) void unmap_shared_mapping_range(struct address_space *mapping,
12894 loff_t const holebegin, loff_t const holelen)
12896 unmap_mapping_range(mapping, holebegin, holelen, 0);
12899 extern void truncate_pagecache(struct inode *inode, loff_t old, loff_t new);
12900 extern int vmtruncate(struct inode *inode, loff_t offset);
12901 extern int vmtruncate_range(struct inode *inode, loff_t offset, loff_t end);
12903 int truncate_inode_page(struct address_space *mapping, struct page *page);
12904 int generic_error_remove_page(struct address_space *mapping, struct page *page);
12906 int invalidate_inode_page(struct page *page);
12912 static inline __attribute__((always_inline)) int handle_mm_fault(struct mm_struct *mm,
12913 struct vm_area_struct *vma, unsigned long address,
12914 unsigned int flags)
12917 do { asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/mm.h"), "i"(813), "i"(0), "i"(sizeof(struct bug_entry))); for (;;); } while (0);
12922 extern int make_pages_present(unsigned long addr, unsigned long end);
12923 extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
12925 int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
12926 unsigned long start, int nr_pages, int write, int force,
12927 struct page **pages, struct vm_area_struct **vmas);
12928 int get_user_pages_fast(unsigned long start, int nr_pages, int write,
12929 struct page **pages);
12930 struct page *get_dump_page(unsigned long addr);
12932 extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
12933 extern void do_invalidatepage(struct page *page, unsigned long offset);
12935 int __set_page_dirty_nobuffers(struct page *page);
12936 int __set_page_dirty_no_writeback(struct page *page);
12937 int redirty_page_for_writepage(struct writeback_control *wbc,
12938 struct page *page);
12939 void account_page_dirtied(struct page *page, struct address_space *mapping);
12940 int set_page_dirty(struct page *page);
12941 int set_page_dirty_lock(struct page *page);
12942 int clear_page_dirty_for_io(struct page *page);
12944 extern unsigned long move_page_tables(struct vm_area_struct *vma,
12945 unsigned long old_addr, struct vm_area_struct *new_vma,
12946 unsigned long new_addr, unsigned long len);
12947 extern unsigned long do_mremap(unsigned long addr,
12948 unsigned long old_len, unsigned long new_len,
12949 unsigned long flags, unsigned long new_addr);
12950 extern int mprotect_fixup(struct vm_area_struct *vma,
12951 struct vm_area_struct **pprev, unsigned long start,
12952 unsigned long end, unsigned long newflags);
12957 int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
12958 struct page **pages);
12959 # 871 "include/linux/mm.h"
12961 int (*shrink)(int nr_to_scan, gfp_t gfp_mask);
12965 struct list_head list;
12969 extern void register_shrinker(struct shrinker *);
12970 extern void unregister_shrinker(struct shrinker *);
12972 int vma_wants_writenotify(struct vm_area_struct *vma);
12974 extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl);
12977 static inline __attribute__((always_inline)) int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
12978 unsigned long address)
12982 # 904 "include/linux/mm.h"
12983 int __pmd_alloc(struct mm_struct *mm, pgd_t *pud, unsigned long address);
12986 int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
12987 int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
12988 # 950 "include/linux/mm.h"
12989 static inline __attribute__((always_inline)) void pgtable_page_ctor(struct page *page)
12992 __inc_zone_page_state(page, NR_PAGETABLE);
12995 static inline __attribute__((always_inline)) void pgtable_page_dtor(struct page *page)
12998 __dec_zone_page_state(page, NR_PAGETABLE);
13000 # 988 "include/linux/mm.h"
13001 extern void free_area_init(unsigned long * zones_size);
13002 extern void free_area_init_node(int nid, unsigned long * zones_size,
13003 unsigned long zone_start_pfn, unsigned long *zholes_size);
13004 # 1039 "include/linux/mm.h"
13005 static inline __attribute__((always_inline)) int __early_pfn_to_nid(unsigned long pfn)
13009 # 1052 "include/linux/mm.h"
13010 extern void set_dma_reserve(unsigned long new_dma_reserve);
13011 extern void memmap_init_zone(unsigned long, int, unsigned long,
13012 unsigned long, enum memmap_context);
13013 extern void setup_per_zone_wmarks(void);
13014 extern void calculate_zone_inactive_ratio(struct zone *zone);
13015 extern void mem_init(void);
13016 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) mmap_init(void);
13017 extern void show_mem(void);
13018 extern void si_meminfo(struct sysinfo * val);
13019 extern void si_meminfo_node(struct sysinfo *val, int nid);
13020 extern int after_bootmem;
13025 static inline __attribute__((always_inline)) void setup_per_cpu_pageset(void) {}
13028 extern void zone_pcp_update(struct zone *zone);
13031 extern atomic_long_t mmap_pages_allocated;
13034 void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old);
13035 void vma_prio_tree_insert(struct vm_area_struct *, struct prio_tree_root *);
13036 void vma_prio_tree_remove(struct vm_area_struct *, struct prio_tree_root *);
13037 struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma,
13038 struct prio_tree_iter *iter);
13044 static inline __attribute__((always_inline)) void vma_nonlinear_insert(struct vm_area_struct *vma,
13045 struct list_head *list)
13047 vma->shared.vm_set.parent = ((void *)0);
13048 list_add_tail(&vma->shared.vm_set.list, list);
13052 extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin);
13053 extern void vma_adjust(struct vm_area_struct *vma, unsigned long start,
13054 unsigned long end, unsigned long pgoff, struct vm_area_struct *insert);
13055 extern struct vm_area_struct *vma_merge(struct mm_struct *,
13056 struct vm_area_struct *prev, unsigned long addr, unsigned long end,
13057 unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long,
13058 struct mempolicy *);
13059 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
13060 extern int split_vma(struct mm_struct *,
13061 struct vm_area_struct *, unsigned long addr, int new_below);
13062 extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
13063 extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
13064 struct rb_node **, struct rb_node *);
13065 extern void unlink_file_vma(struct vm_area_struct *);
13066 extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
13067 unsigned long addr, unsigned long len, unsigned long pgoff);
13068 extern void exit_mmap(struct mm_struct *);
13070 extern int mm_take_all_locks(struct mm_struct *mm);
13071 extern void mm_drop_all_locks(struct mm_struct *mm);
13075 extern void added_exe_file_vma(struct mm_struct *mm);
13076 extern void removed_exe_file_vma(struct mm_struct *mm);
13077 # 1127 "include/linux/mm.h"
13078 extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
13079 extern int install_special_mapping(struct mm_struct *mm,
13080 unsigned long addr, unsigned long len,
13081 unsigned long flags, struct page **pages);
13083 extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
13085 extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
13086 unsigned long len, unsigned long prot,
13087 unsigned long flag, unsigned long pgoff);
13088 extern unsigned long mmap_region(struct file *file, unsigned long addr,
13089 unsigned long len, unsigned long flags,
13090 unsigned int vm_flags, unsigned long pgoff);
13092 static inline __attribute__((always_inline)) unsigned long do_mmap(struct file *file, unsigned long addr,
13093 unsigned long len, unsigned long prot,
13094 unsigned long flag, unsigned long offset)
13096 unsigned long ret = -22;
13097 if ((offset + (((len)+((typeof(len))((1UL << 12))-1))&~((typeof(len))((1UL << 12))-1))) < offset)
13099 if (!(offset & ~(~((1UL << 12)-1))))
13100 ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> 12);
13105 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
13107 extern unsigned long do_brk(unsigned long, unsigned long);
13110 extern unsigned long page_unuse(struct page *);
13111 extern void truncate_inode_pages(struct address_space *, loff_t);
13112 extern void truncate_inode_pages_range(struct address_space *,
13113 loff_t lstart, loff_t lend);
13116 extern int filemap_fault(struct vm_area_struct *, struct vm_fault *);
13119 int write_one_page(struct page *page, int wait);
13120 void task_dirty_inc(struct task_struct *tsk);
13126 int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
13127 unsigned long offset, unsigned long nr_to_read);
13129 void page_cache_sync_readahead(struct address_space *mapping,
13130 struct file_ra_state *ra,
13132 unsigned long offset,
13133 unsigned long size);
13135 void page_cache_async_readahead(struct address_space *mapping,
13136 struct file_ra_state *ra,
13139 unsigned long offset,
13140 unsigned long size);
13142 unsigned long max_sane_readahead(unsigned long nr);
13143 unsigned long ra_submit(struct file_ra_state *ra,
13144 struct address_space *mapping,
13145 struct file *filp);
13148 extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
13152 extern int expand_stack_downwards(struct vm_area_struct *vma,
13153 unsigned long address);
13156 extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
13157 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
13158 struct vm_area_struct **pprev);
13162 static inline __attribute__((always_inline)) struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
13164 struct vm_area_struct * vma = find_vma(mm,start_addr);
13166 if (vma && end_addr <= vma->vm_start)
13171 static inline __attribute__((always_inline)) unsigned long vma_pages(struct vm_area_struct *vma)
13173 return (vma->vm_end - vma->vm_start) >> 12;
13176 pgprot_t vm_get_page_prot(unsigned long vm_flags);
13177 struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
13178 int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
13179 unsigned long pfn, unsigned long size, pgprot_t);
13180 int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
13181 int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
13182 unsigned long pfn);
13183 int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
13184 unsigned long pfn);
13186 struct page *follow_page(struct vm_area_struct *, unsigned long address,
13187 unsigned int foll_flags);
13194 typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
13196 extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
13197 unsigned long size, pte_fn_t fn, void *data);
13200 void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
13201 # 1258 "include/linux/mm.h"
13202 extern int debug_pagealloc_enabled;
13204 extern void kernel_map_pages(struct page *page, int numpages, int enable);
13206 static inline __attribute__((always_inline)) void enable_debug_pagealloc(void)
13208 debug_pagealloc_enabled = 1;
13210 # 1280 "include/linux/mm.h"
13211 extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk);
13216 int in_gate_area_no_task(unsigned long addr);
13220 int drop_caches_sysctl_handler(struct ctl_table *, int,
13221 void *, size_t *, loff_t *);
13222 unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
13223 unsigned long lru_pages);
13224 void drop_pagecache(void);
13232 const char * arch_vma_name(struct vm_area_struct *vma);
13233 void print_vma_addr(char *prefix, unsigned long rip);
13235 struct page *sparse_mem_map_populate(unsigned long pnum, int nid);
13236 pgd_t *vmemmap_pgd_populate(unsigned long addr, int node);
13237 pgd_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node);
13238 pmd_t *vmemmap_pmd_populate(pgd_t *pud, unsigned long addr, int node);
13239 pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node);
13240 void *vmemmap_alloc_block(unsigned long size, int node);
13241 void vmemmap_verify(pte_t *, int, unsigned long, unsigned long);
13242 int vmemmap_populate_basepages(struct page *start_page,
13243 unsigned long pages, int node);
13244 int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
13245 void vmemmap_populate_print_last(void);
13247 extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim,
13249 extern void refund_locked_memory(struct mm_struct *mm, size_t size);
13251 extern void memory_failure(unsigned long pfn, int trapno);
13252 extern int __memory_failure(unsigned long pfn, int trapno, int ref);
13253 extern int sysctl_memory_failure_early_kill;
13254 extern int sysctl_memory_failure_recovery;
13255 extern atomic_long_t mce_bad_pages;
13256 # 8 "include/linux/pagemap.h" 2
13259 # 1 "include/linux/highmem.h" 1
13265 # 1 "include/linux/uaccess.h" 1
13270 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 1
13271 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
13272 # 1 "include/linux/sched.h" 1
13273 # 46 "include/linux/sched.h"
13274 struct sched_param {
13275 int sched_priority;
13278 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/param.h" 1
13279 # 51 "include/linux/sched.h" 2
13280 # 68 "include/linux/sched.h"
13281 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cputime.h" 1
13282 # 1 "include/asm-generic/cputime.h" 1
13289 typedef unsigned long cputime_t;
13290 # 25 "include/asm-generic/cputime.h"
13291 typedef u64 cputime64_t;
13292 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cputime.h" 2
13293 # 69 "include/linux/sched.h" 2
13296 # 1 "include/linux/sem.h" 1
13300 # 1 "include/linux/ipc.h" 1
13301 # 9 "include/linux/ipc.h"
13304 __kernel_key_t key;
13305 __kernel_uid_t uid;
13306 __kernel_gid_t gid;
13307 __kernel_uid_t cuid;
13308 __kernel_gid_t cgid;
13309 __kernel_mode_t mode;
13310 unsigned short seq;
13314 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ipcbuf.h" 1
13315 # 1 "include/asm-generic/ipcbuf.h" 1
13316 # 19 "include/asm-generic/ipcbuf.h"
13317 struct ipc64_perm {
13318 __kernel_key_t key;
13319 __kernel_uid32_t uid;
13320 __kernel_gid32_t gid;
13321 __kernel_uid32_t cuid;
13322 __kernel_gid32_t cgid;
13323 __kernel_mode_t mode;
13325 unsigned char __pad1[4 - sizeof(__kernel_mode_t)];
13326 unsigned short seq;
13327 unsigned short __pad2;
13328 unsigned long __unused1;
13329 unsigned long __unused2;
13331 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/ipcbuf.h" 2
13332 # 22 "include/linux/ipc.h" 2
13333 # 57 "include/linux/ipc.h"
13334 struct ipc_kludge {
13335 struct msgbuf *msgp;
13338 # 86 "include/linux/ipc.h"
13339 struct kern_ipc_perm
13353 # 5 "include/linux/sem.h" 2
13354 # 23 "include/linux/sem.h"
13356 struct ipc_perm sem_perm;
13357 __kernel_time_t sem_otime;
13358 __kernel_time_t sem_ctime;
13359 struct sem *sem_base;
13360 struct sem_queue *sem_pending;
13361 struct sem_queue **sem_pending_last;
13362 struct sem_undo *undo;
13363 unsigned short sem_nsems;
13367 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sembuf.h" 1
13368 # 1 "include/asm-generic/sembuf.h" 1
13372 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/bitsperlong.h" 1
13373 # 5 "include/asm-generic/sembuf.h" 2
13374 # 23 "include/asm-generic/sembuf.h"
13375 struct semid64_ds {
13376 struct ipc64_perm sem_perm;
13377 __kernel_time_t sem_otime;
13379 unsigned long __unused1;
13381 __kernel_time_t sem_ctime;
13383 unsigned long __unused2;
13385 unsigned long sem_nsems;
13386 unsigned long __unused3;
13387 unsigned long __unused4;
13389 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sembuf.h" 2
13390 # 36 "include/linux/sem.h" 2
13394 unsigned short sem_num;
13402 struct semid_ds *buf;
13403 unsigned short *array;
13404 struct seminfo *__buf;
13420 # 83 "include/linux/sem.h"
13421 struct task_struct;
13431 struct kern_ipc_perm sem_perm;
13434 struct sem *sem_base;
13435 struct list_head sem_pending;
13436 struct list_head list_id;
13437 unsigned long sem_nsems;
13442 struct list_head list;
13443 struct task_struct *sleeper;
13444 struct sem_undo *undo;
13447 struct sembuf *sops;
13456 struct list_head list_proc;
13458 struct rcu_head rcu;
13459 struct sem_undo_list *ulp;
13460 struct list_head list_id;
13468 struct sem_undo_list {
13471 struct list_head list_proc;
13475 struct sem_undo_list *undo_list;
13484 static inline __attribute__((always_inline)) int copy_semundo(unsigned long clone_flags, struct task_struct *tsk)
13489 static inline __attribute__((always_inline)) void exit_sem(struct task_struct *tsk)
13493 # 72 "include/linux/sched.h" 2
13494 # 1 "include/linux/signal.h" 1
13498 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h" 1
13503 # 1 "include/asm-generic/signal.h" 1
13504 # 93 "include/asm-generic/signal.h"
13506 unsigned long sig[(64 / 32)];
13510 typedef unsigned long old_sigset_t;
13512 # 1 "include/asm-generic/signal-defs.h" 1
13513 # 17 "include/asm-generic/signal-defs.h"
13514 typedef void __signalfn_t(int);
13515 typedef __signalfn_t *__sighandler_t;
13517 typedef void __restorefn_t(void);
13518 typedef __restorefn_t *__sigrestore_t;
13519 # 101 "include/asm-generic/signal.h" 2
13522 __sighandler_t sa_handler;
13523 unsigned long sa_flags;
13525 __sigrestore_t sa_restorer;
13530 struct k_sigaction {
13531 struct sigaction sa;
13534 typedef struct sigaltstack {
13542 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sigcontext.h" 1
13543 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sigcontext.h"
13544 struct sigcontext {
13545 unsigned long sc_r0;
13546 unsigned long sc_r1;
13547 unsigned long sc_r2;
13548 unsigned long sc_r3;
13549 unsigned long sc_r4;
13550 unsigned long sc_r5;
13551 unsigned long sc_r6;
13552 unsigned long sc_r7;
13553 unsigned long sc_p0;
13554 unsigned long sc_p1;
13555 unsigned long sc_p2;
13556 unsigned long sc_p3;
13557 unsigned long sc_p4;
13558 unsigned long sc_p5;
13559 unsigned long sc_usp;
13560 unsigned long sc_a0w;
13561 unsigned long sc_a1w;
13562 unsigned long sc_a0x;
13563 unsigned long sc_a1x;
13564 unsigned long sc_astat;
13565 unsigned long sc_rets;
13566 unsigned long sc_pc;
13567 unsigned long sc_retx;
13568 unsigned long sc_fp;
13569 unsigned long sc_i0;
13570 unsigned long sc_i1;
13571 unsigned long sc_i2;
13572 unsigned long sc_i3;
13573 unsigned long sc_m0;
13574 unsigned long sc_m1;
13575 unsigned long sc_m2;
13576 unsigned long sc_m3;
13577 unsigned long sc_l0;
13578 unsigned long sc_l1;
13579 unsigned long sc_l2;
13580 unsigned long sc_l3;
13581 unsigned long sc_b0;
13582 unsigned long sc_b1;
13583 unsigned long sc_b2;
13584 unsigned long sc_b3;
13585 unsigned long sc_lc0;
13586 unsigned long sc_lc1;
13587 unsigned long sc_lt0;
13588 unsigned long sc_lt1;
13589 unsigned long sc_lb0;
13590 unsigned long sc_lb1;
13591 unsigned long sc_seqstat;
13593 # 124 "include/asm-generic/signal.h" 2
13594 # 6 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/signal.h" 2
13595 # 5 "include/linux/signal.h" 2
13596 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/siginfo.h" 1
13597 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/siginfo.h"
13598 # 1 "include/asm-generic/siginfo.h" 1
13605 typedef union sigval {
13609 # 40 "include/asm-generic/siginfo.h"
13610 typedef struct siginfo {
13616 int _pad[((128 - (3 * sizeof(int))) / sizeof(int))];
13620 __kernel_pid_t _pid;
13621 __kernel_uid32_t _uid;
13626 __kernel_timer_t _tid;
13628 char _pad[sizeof( __kernel_uid32_t) - sizeof(int)];
13635 __kernel_pid_t _pid;
13636 __kernel_uid32_t _uid;
13642 __kernel_pid_t _pid;
13643 __kernel_uid32_t _uid;
13645 __kernel_clock_t _utime;
13646 __kernel_clock_t _stime;
13665 # 259 "include/asm-generic/siginfo.h"
13666 typedef struct sigevent {
13667 sigval_t sigev_value;
13671 int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))];
13675 void (*_function)(sigval_t);
13688 void do_schedule_next_timer(struct siginfo *info);
13694 static inline __attribute__((always_inline)) void copy_siginfo(struct siginfo *to, struct siginfo *from)
13696 if (from->si_code < 0)
13697 memcpy(to, from, sizeof(*to));
13700 memcpy(to, from, (3 * sizeof(int)) + sizeof(from->_sifields._sigchld));
13705 extern int copy_siginfo_to_user(struct siginfo *to, struct siginfo *from);
13706 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/siginfo.h" 2
13707 # 6 "include/linux/signal.h" 2
13708 # 14 "include/linux/signal.h"
13710 struct list_head list;
13713 struct user_struct *user;
13719 struct sigpending {
13720 struct list_head list;
13723 # 38 "include/linux/signal.h"
13724 static inline __attribute__((always_inline)) void sigaddset(sigset_t *set, int _sig)
13726 unsigned long sig = _sig - 1;
13727 if ((64 / 32) == 1)
13728 set->sig[0] |= 1UL << sig;
13730 set->sig[sig / 32] |= 1UL << (sig % 32);
13733 static inline __attribute__((always_inline)) void sigdelset(sigset_t *set, int _sig)
13735 unsigned long sig = _sig - 1;
13736 if ((64 / 32) == 1)
13737 set->sig[0] &= ~(1UL << sig);
13739 set->sig[sig / 32] &= ~(1UL << (sig % 32));
13742 static inline __attribute__((always_inline)) int sigismember(sigset_t *set, int _sig)
13744 unsigned long sig = _sig - 1;
13745 if ((64 / 32) == 1)
13746 return 1 & (set->sig[0] >> sig);
13748 return 1 & (set->sig[sig / 32] >> (sig % 32));
13751 static inline __attribute__((always_inline)) int sigfindinword(unsigned long word)
13753 return __ffs(~(~word));
13758 static inline __attribute__((always_inline)) int sigisemptyset(sigset_t *set)
13760 extern void _NSIG_WORDS_is_unsupported_size(void);
13761 switch ((64 / 32)) {
13763 return (set->sig[3] | set->sig[2] |
13764 set->sig[1] | set->sig[0]) == 0;
13766 return (set->sig[1] | set->sig[0]) == 0;
13768 return set->sig[0] == 0;
13770 _NSIG_WORDS_is_unsupported_size();
13774 # 119 "include/linux/signal.h"
13775 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(); } }
13778 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(); } }
13781 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(); } }
13782 # 149 "include/linux/signal.h"
13783 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(); } }
13788 static inline __attribute__((always_inline)) void sigemptyset(sigset_t *set)
13790 switch ((64 / 32)) {
13792 memset(set, 0, sizeof(sigset_t));
13794 case 2: set->sig[1] = 0;
13795 case 1: set->sig[0] = 0;
13800 static inline __attribute__((always_inline)) void sigfillset(sigset_t *set)
13802 switch ((64 / 32)) {
13804 memset(set, -1, sizeof(sigset_t));
13806 case 2: set->sig[1] = -1;
13807 case 1: set->sig[0] = -1;
13814 static inline __attribute__((always_inline)) void sigaddsetmask(sigset_t *set, unsigned long mask)
13816 set->sig[0] |= mask;
13819 static inline __attribute__((always_inline)) void sigdelsetmask(sigset_t *set, unsigned long mask)
13821 set->sig[0] &= ~mask;
13824 static inline __attribute__((always_inline)) int sigtestsetmask(sigset_t *set, unsigned long mask)
13826 return (set->sig[0] & mask) != 0;
13829 static inline __attribute__((always_inline)) void siginitset(sigset_t *set, unsigned long mask)
13831 set->sig[0] = mask;
13832 switch ((64 / 32)) {
13834 memset(&set->sig[1], 0, sizeof(long)*((64 / 32)-1));
13836 case 2: set->sig[1] = 0;
13841 static inline __attribute__((always_inline)) void siginitsetinv(sigset_t *set, unsigned long mask)
13843 set->sig[0] = ~mask;
13844 switch ((64 / 32)) {
13846 memset(&set->sig[1], -1, sizeof(long)*((64 / 32)-1));
13848 case 2: set->sig[1] = -1;
13855 static inline __attribute__((always_inline)) void init_sigpending(struct sigpending *sig)
13857 sigemptyset(&sig->signal);
13858 INIT_LIST_HEAD(&sig->list);
13861 extern void flush_sigqueue(struct sigpending *queue);
13864 static inline __attribute__((always_inline)) int valid_signal(unsigned long sig)
13866 return sig <= 64 ? 1 : 0;
13869 extern int next_signal(struct sigpending *pending, sigset_t *mask);
13870 extern int do_send_sig_info(int sig, struct siginfo *info,
13871 struct task_struct *p, bool group);
13872 extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p);
13873 extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *);
13874 extern long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig,
13876 extern long do_sigpending(void *, unsigned long);
13877 extern int sigprocmask(int, sigset_t *, sigset_t *);
13878 extern int show_unhandled_signals;
13881 extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
13882 extern void exit_signals(struct task_struct *tsk);
13884 extern struct kmem_cache *sighand_cachep;
13886 int unhandled_signal(struct task_struct *tsk, int sig);
13887 # 377 "include/linux/signal.h"
13888 void signals_init(void);
13889 # 73 "include/linux/sched.h" 2
13896 # 1 "include/linux/proportions.h" 1
13897 # 12 "include/linux/proportions.h"
13898 # 1 "include/linux/percpu_counter.h" 1
13899 # 82 "include/linux/percpu_counter.h"
13900 struct percpu_counter {
13904 static inline __attribute__((always_inline)) int percpu_counter_init(struct percpu_counter *fbc, s64 amount)
13906 fbc->count = amount;
13910 static inline __attribute__((always_inline)) void percpu_counter_destroy(struct percpu_counter *fbc)
13914 static inline __attribute__((always_inline)) void percpu_counter_set(struct percpu_counter *fbc, s64 amount)
13916 fbc->count = amount;
13922 static inline __attribute__((always_inline)) void
13923 percpu_counter_add(struct percpu_counter *fbc, s64 amount)
13926 fbc->count += amount;
13930 static inline __attribute__((always_inline)) s64 percpu_counter_read(struct percpu_counter *fbc)
13935 static inline __attribute__((always_inline)) s64 percpu_counter_read_positive(struct percpu_counter *fbc)
13940 static inline __attribute__((always_inline)) s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
13942 return percpu_counter_read_positive(fbc);
13945 static inline __attribute__((always_inline)) s64 percpu_counter_sum(struct percpu_counter *fbc)
13947 return percpu_counter_read(fbc);
13952 static inline __attribute__((always_inline)) void percpu_counter_inc(struct percpu_counter *fbc)
13954 percpu_counter_add(fbc, 1);
13957 static inline __attribute__((always_inline)) void percpu_counter_dec(struct percpu_counter *fbc)
13959 percpu_counter_add(fbc, -1);
13962 static inline __attribute__((always_inline)) void percpu_counter_sub(struct percpu_counter *fbc, s64 amount)
13964 percpu_counter_add(fbc, -amount);
13966 # 13 "include/linux/proportions.h" 2
13970 struct prop_global {
13983 struct percpu_counter events;
13991 struct prop_descriptor {
13993 struct prop_global pg[2];
13994 struct mutex mutex;
13997 int prop_descriptor_init(struct prop_descriptor *pd, int shift);
13998 void prop_change_shift(struct prop_descriptor *pd, int new_shift);
14004 struct prop_local_percpu {
14008 struct percpu_counter events;
14014 unsigned long period;
14018 int prop_local_init_percpu(struct prop_local_percpu *pl);
14019 void prop_local_destroy_percpu(struct prop_local_percpu *pl);
14020 void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl);
14021 void prop_fraction_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl,
14022 long *numerator, long *denominator);
14024 static inline __attribute__((always_inline))
14025 void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl)
14027 unsigned long flags;
14029 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
14030 __prop_inc_percpu(pd, pl);
14031 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
14033 # 89 "include/linux/proportions.h"
14034 void __prop_inc_percpu_max(struct prop_descriptor *pd,
14035 struct prop_local_percpu *pl, long frac);
14042 struct prop_local_single {
14046 unsigned long events;
14052 unsigned long period;
14061 int prop_local_init_single(struct prop_local_single *pl);
14062 void prop_local_destroy_single(struct prop_local_single *pl);
14063 void __prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl);
14064 void prop_fraction_single(struct prop_descriptor *pd, struct prop_local_single *pl,
14065 long *numerator, long *denominator);
14067 static inline __attribute__((always_inline))
14068 void prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl)
14070 unsigned long flags;
14072 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); do { (flags) = __raw_local_irq_save(); } while (0); do { } while (0); } while (0);
14073 __prop_inc_single(pd, pl);
14074 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); if ((((flags) & ~0x3f) == 0)) { raw_local_irq_restore(flags); do { } while (0); } else { do { } while (0); raw_local_irq_restore(flags); } } while (0);
14076 # 80 "include/linux/sched.h" 2
14077 # 1 "include/linux/seccomp.h" 1
14078 # 26 "include/linux/seccomp.h"
14079 typedef struct { } seccomp_t;
14083 static inline __attribute__((always_inline)) long prctl_get_seccomp(void)
14088 static inline __attribute__((always_inline)) long prctl_set_seccomp(unsigned long arg2)
14092 # 81 "include/linux/sched.h" 2
14095 # 1 "include/linux/rtmutex.h" 1
14096 # 16 "include/linux/rtmutex.h"
14097 # 1 "include/linux/plist.h" 1
14098 # 80 "include/linux/plist.h"
14099 struct plist_head {
14100 struct list_head prio_list;
14101 struct list_head node_list;
14107 struct plist_node {
14109 struct plist_head plist;
14111 # 130 "include/linux/plist.h"
14112 static inline __attribute__((always_inline)) void
14113 plist_head_init(struct plist_head *head, spinlock_t *lock)
14115 INIT_LIST_HEAD(&head->prio_list);
14116 INIT_LIST_HEAD(&head->node_list);
14127 static inline __attribute__((always_inline)) void plist_node_init(struct plist_node *node, int prio)
14130 plist_head_init(&node->plist, ((void *)0));
14133 extern void plist_add(struct plist_node *node, struct plist_head *head);
14134 extern void plist_del(struct plist_node *node, struct plist_head *head);
14135 # 198 "include/linux/plist.h"
14136 static inline __attribute__((always_inline)) int plist_head_empty(const struct plist_head *head)
14138 return list_empty(&head->node_list);
14145 static inline __attribute__((always_inline)) int plist_node_empty(const struct plist_node *node)
14147 return plist_head_empty(&node->plist);
14149 # 237 "include/linux/plist.h"
14150 static inline __attribute__((always_inline)) struct plist_node* plist_first(const struct plist_head *head)
14152 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) );});
14155 # 17 "include/linux/rtmutex.h" 2
14156 # 26 "include/linux/rtmutex.h"
14158 spinlock_t wait_lock;
14159 struct plist_head wait_list;
14160 struct task_struct *owner;
14169 struct rt_mutex_waiter;
14170 struct hrtimer_sleeper;
14177 static inline __attribute__((always_inline)) int rt_mutex_debug_check_no_locks_freed(const void *from,
14182 # 80 "include/linux/rtmutex.h"
14183 static inline __attribute__((always_inline)) int rt_mutex_is_locked(struct rt_mutex *lock)
14185 return lock->owner != ((void *)0);
14188 extern void __rt_mutex_init(struct rt_mutex *lock, const char *name);
14189 extern void rt_mutex_destroy(struct rt_mutex *lock);
14191 extern void rt_mutex_lock(struct rt_mutex *lock);
14192 extern int rt_mutex_lock_interruptible(struct rt_mutex *lock,
14193 int detect_deadlock);
14194 extern int rt_mutex_timed_lock(struct rt_mutex *lock,
14195 struct hrtimer_sleeper *timeout,
14196 int detect_deadlock);
14198 extern int rt_mutex_trylock(struct rt_mutex *lock);
14200 extern void rt_mutex_unlock(struct rt_mutex *lock);
14201 # 84 "include/linux/sched.h" 2
14205 # 1 "include/linux/resource.h" 1
14211 struct task_struct;
14212 # 24 "include/linux/resource.h"
14214 struct timeval ru_utime;
14215 struct timeval ru_stime;
14233 unsigned long rlim_cur;
14234 unsigned long rlim_max;
14236 # 71 "include/linux/resource.h"
14237 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/resource.h" 1
14238 # 1 "include/asm-generic/resource.h" 1
14239 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/resource.h" 2
14240 # 72 "include/linux/resource.h" 2
14242 int getrusage(struct task_struct *p, int who, struct rusage *ru);
14243 # 88 "include/linux/sched.h" 2
14245 # 1 "include/linux/hrtimer.h" 1
14246 # 27 "include/linux/hrtimer.h"
14247 struct hrtimer_clock_base;
14248 struct hrtimer_cpu_base;
14253 enum hrtimer_mode {
14254 HRTIMER_MODE_ABS = 0x0,
14255 HRTIMER_MODE_REL = 0x1,
14256 HRTIMER_MODE_PINNED = 0x02,
14257 HRTIMER_MODE_ABS_PINNED = 0x02,
14258 HRTIMER_MODE_REL_PINNED = 0x03,
14264 enum hrtimer_restart {
14268 # 103 "include/linux/hrtimer.h"
14270 struct rb_node node;
14272 ktime_t _softexpires;
14273 enum hrtimer_restart (*function)(struct hrtimer *);
14274 struct hrtimer_clock_base *base;
14275 unsigned long state;
14279 char start_comm[16];
14282 # 124 "include/linux/hrtimer.h"
14283 struct hrtimer_sleeper {
14284 struct hrtimer timer;
14285 struct task_struct *task;
14287 # 141 "include/linux/hrtimer.h"
14288 struct hrtimer_clock_base {
14289 struct hrtimer_cpu_base *cpu_base;
14291 struct rb_root active;
14292 struct rb_node *first;
14293 ktime_t resolution;
14294 ktime_t (*get_time)(void);
14295 ktime_t softirq_time;
14300 # 170 "include/linux/hrtimer.h"
14301 struct hrtimer_cpu_base {
14303 struct hrtimer_clock_base clock_base[2];
14305 ktime_t expires_next;
14307 unsigned long nr_events;
14311 static inline __attribute__((always_inline)) void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)
14313 timer->_expires = time;
14314 timer->_softexpires = time;
14317 static inline __attribute__((always_inline)) void hrtimer_set_expires_range(struct hrtimer *timer, ktime_t time, ktime_t delta)
14319 timer->_softexpires = time;
14320 timer->_expires = ktime_add_safe(time, delta);
14323 static inline __attribute__((always_inline)) void hrtimer_set_expires_range_ns(struct hrtimer *timer, ktime_t time, unsigned long delta)
14325 timer->_softexpires = time;
14326 timer->_expires = ktime_add_safe(time, ns_to_ktime(delta));
14329 static inline __attribute__((always_inline)) void hrtimer_set_expires_tv64(struct hrtimer *timer, s64 tv64)
14331 timer->_expires.tv64 = tv64;
14332 timer->_softexpires.tv64 = tv64;
14335 static inline __attribute__((always_inline)) void hrtimer_add_expires(struct hrtimer *timer, ktime_t time)
14337 timer->_expires = ktime_add_safe(timer->_expires, time);
14338 timer->_softexpires = ktime_add_safe(timer->_softexpires, time);
14341 static inline __attribute__((always_inline)) void hrtimer_add_expires_ns(struct hrtimer *timer, u64 ns)
14343 timer->_expires = ktime_add_ns(timer->_expires, ns);
14344 timer->_softexpires = ktime_add_ns(timer->_softexpires, ns);
14347 static inline __attribute__((always_inline)) ktime_t hrtimer_get_expires(const struct hrtimer *timer)
14349 return timer->_expires;
14352 static inline __attribute__((always_inline)) ktime_t hrtimer_get_softexpires(const struct hrtimer *timer)
14354 return timer->_softexpires;
14357 static inline __attribute__((always_inline)) s64 hrtimer_get_expires_tv64(const struct hrtimer *timer)
14359 return timer->_expires.tv64;
14361 static inline __attribute__((always_inline)) s64 hrtimer_get_softexpires_tv64(const struct hrtimer *timer)
14363 return timer->_softexpires.tv64;
14366 static inline __attribute__((always_inline)) s64 hrtimer_get_expires_ns(const struct hrtimer *timer)
14368 return ktime_to_ns(timer->_expires);
14371 static inline __attribute__((always_inline)) ktime_t hrtimer_expires_remaining(const struct hrtimer *timer)
14373 return ktime_sub(timer->_expires, timer->base->get_time());
14377 struct clock_event_device;
14379 extern void clock_was_set(void);
14380 extern void hres_timers_resume(void);
14381 extern void hrtimer_interrupt(struct clock_event_device *dev);
14386 static inline __attribute__((always_inline)) ktime_t hrtimer_cb_get_time(struct hrtimer *timer)
14388 return timer->base->get_time();
14391 static inline __attribute__((always_inline)) int hrtimer_is_hres_active(struct hrtimer *timer)
14393 return timer->base->cpu_base->hres_active;
14396 extern void hrtimer_peek_ahead_timers(void);
14397 # 308 "include/linux/hrtimer.h"
14398 extern ktime_t ktime_get(void);
14399 extern ktime_t ktime_get_real(void);
14402 extern __attribute__((section(".discard"), unused)) char __pcpu_scope_tick_cpu_device; extern __attribute__((section(".data" ""))) __typeof__(struct tick_device) per_cpu__tick_cpu_device;
14408 extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
14409 enum hrtimer_mode mode);
14412 extern void hrtimer_init_on_stack(struct hrtimer *timer, clockid_t which_clock,
14413 enum hrtimer_mode mode);
14415 extern void destroy_hrtimer_on_stack(struct hrtimer *timer);
14416 # 337 "include/linux/hrtimer.h"
14417 extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
14418 const enum hrtimer_mode mode);
14419 extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
14420 unsigned long range_ns, const enum hrtimer_mode mode);
14422 __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
14423 unsigned long delta_ns,
14424 const enum hrtimer_mode mode, int wakeup);
14426 extern int hrtimer_cancel(struct hrtimer *timer);
14427 extern int hrtimer_try_to_cancel(struct hrtimer *timer);
14429 static inline __attribute__((always_inline)) int hrtimer_start_expires(struct hrtimer *timer,
14430 enum hrtimer_mode mode)
14432 unsigned long delta;
14433 ktime_t soft, hard;
14434 soft = hrtimer_get_softexpires(timer);
14435 hard = hrtimer_get_expires(timer);
14436 delta = ktime_to_ns(ktime_sub(hard, soft));
14437 return hrtimer_start_range_ns(timer, soft, delta, mode);
14440 static inline __attribute__((always_inline)) int hrtimer_restart(struct hrtimer *timer)
14442 return hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
14446 extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
14447 extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
14449 extern ktime_t hrtimer_get_next_event(void);
14455 static inline __attribute__((always_inline)) int hrtimer_active(const struct hrtimer *timer)
14457 return timer->state != 0x00;
14463 static inline __attribute__((always_inline)) int hrtimer_is_queued(struct hrtimer *timer)
14465 return timer->state & 0x01;
14472 static inline __attribute__((always_inline)) int hrtimer_callback_running(struct hrtimer *timer)
14474 return timer->state & 0x02;
14479 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval);
14482 static inline __attribute__((always_inline)) u64 hrtimer_forward_now(struct hrtimer *timer,
14485 return hrtimer_forward(timer, timer->base->get_time(), interval);
14489 extern long hrtimer_nanosleep(struct timespec *rqtp,
14490 struct timespec *rmtp,
14491 const enum hrtimer_mode mode,
14492 const clockid_t clockid);
14493 extern long hrtimer_nanosleep_restart(struct restart_block *restart_block);
14495 extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
14496 struct task_struct *tsk);
14498 extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta,
14499 const enum hrtimer_mode mode);
14500 extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode);
14503 extern void hrtimer_run_queues(void);
14504 extern void hrtimer_run_pending(void);
14507 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) hrtimers_init(void);
14510 extern u64 ktime_divns(const ktime_t kt, s64 div);
14516 extern void sysrq_timer_list_show(void);
14523 extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
14524 void *timerf, char *comm,
14525 unsigned int timer_flag);
14527 static inline __attribute__((always_inline)) void timer_stats_account_hrtimer(struct hrtimer *timer)
14529 if (__builtin_expect(!!(!timer->start_site), 1))
14531 timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
14532 timer->function, timer->start_comm, 0);
14535 extern void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer,
14538 static inline __attribute__((always_inline)) void timer_stats_hrtimer_set_start_info(struct hrtimer *timer)
14540 if (__builtin_expect(!!(!timer_stats_active), 1))
14542 __timer_stats_hrtimer_set_start_info(timer, __builtin_return_address(0));
14545 static inline __attribute__((always_inline)) void timer_stats_hrtimer_clear_start_info(struct hrtimer *timer)
14547 timer->start_site = ((void *)0);
14549 # 90 "include/linux/sched.h" 2
14550 # 1 "include/linux/task_io_accounting.h" 1
14551 # 11 "include/linux/task_io_accounting.h"
14552 struct task_io_accounting {
14553 # 45 "include/linux/task_io_accounting.h"
14555 # 91 "include/linux/sched.h" 2
14557 # 1 "include/linux/latencytop.h" 1
14558 # 41 "include/linux/latencytop.h"
14559 static inline __attribute__((always_inline)) void
14560 account_scheduler_latency(struct task_struct *task, int usecs, int inter)
14564 static inline __attribute__((always_inline)) void clear_all_latency_tracing(struct task_struct *p)
14567 # 93 "include/linux/sched.h" 2
14568 # 1 "include/linux/cred.h" 1
14569 # 17 "include/linux/cred.h"
14570 # 1 "include/linux/key.h" 1
14571 # 22 "include/linux/key.h"
14572 # 1 "include/linux/sysctl.h" 1
14573 # 32 "include/linux/sysctl.h"
14581 struct __sysctl_args {
14588 unsigned long __unused[4];
14590 # 59 "include/linux/sysctl.h"
14619 INOTIFY_MAX_USER_INSTANCES=1,
14620 INOTIFY_MAX_USER_WATCHES=2,
14621 INOTIFY_MAX_QUEUED_EVENTS=3
14637 KERN_REALROOTDEV=16,
14639 KERN_SPARC_REBOOT=21,
14643 KERN_PPC_HTABRECLAIM=25,
14644 KERN_PPC_ZEROPAGED=26,
14645 KERN_PPC_POWERSAVE_NAP=27,
14647 KERN_SG_BIG_BUFF=29,
14659 KERN_MAX_THREADS=39,
14664 KERN_SPARC_STOP_A=44,
14666 KERN_OVERFLOWUID=46,
14667 KERN_OVERFLOWGID=47,
14670 KERN_IEEE_EMULATION_WARNINGS=50,
14671 KERN_S390_USER_DEBUG_LOGGING=51,
14672 KERN_CORE_USES_PID=52,
14676 KERN_CORE_PATTERN=56,
14677 KERN_PANIC_ON_OOPS=57,
14678 KERN_HPPA_PWRSW=58,
14679 KERN_HPPA_UNALIGNED=59,
14680 KERN_PRINTK_RATELIMIT=60,
14681 KERN_PRINTK_RATELIMIT_BURST=61,
14683 KERN_NGROUPS_MAX=63,
14684 KERN_SPARC_SCONS_PWROFF=64,
14686 KERN_UNKNOWN_NMI_PANIC=66,
14687 KERN_BOOTLOADER_TYPE=67,
14689 KERN_SETUID_DUMPABLE=69,
14690 KERN_SPIN_RETRY=70,
14691 KERN_ACPI_VIDEO_FLAGS=71,
14692 KERN_IA64_UNALIGNED=72,
14693 KERN_COMPAT_LOG=73,
14694 KERN_MAX_LOCK_DEPTH=74,
14695 KERN_NMI_WATCHDOG=75,
14696 KERN_PANIC_ON_NMI=76,
14708 VM_OVERCOMMIT_MEMORY=5,
14713 VM_PAGE_CLUSTER=10,
14714 VM_DIRTY_BACKGROUND=11,
14717 VM_DIRTY_EXPIRE_CS=14,
14718 VM_NR_PDFLUSH_THREADS=15,
14719 VM_OVERCOMMIT_RATIO=16,
14721 VM_HUGETLB_PAGES=18,
14723 VM_LOWMEM_RESERVE_RATIO=20,
14724 VM_MIN_FREE_KBYTES=21,
14725 VM_MAX_MAP_COUNT=22,
14728 VM_HUGETLB_GROUP=25,
14729 VM_VFS_CACHE_PRESSURE=26,
14730 VM_LEGACY_VA_LAYOUT=27,
14731 VM_SWAP_TOKEN_TIMEOUT=28,
14732 VM_DROP_PAGECACHE=29,
14733 VM_PERCPU_PAGELIST_FRACTION=30,
14734 VM_ZONE_RECLAIM_MODE=31,
14735 VM_MIN_UNMAPPED=32,
14736 VM_PANIC_ON_OOM=33,
14737 VM_VDSO_ENABLED=34,
14772 RANDOM_ENTROPY_COUNT=2,
14773 RANDOM_READ_THRESH=3,
14774 RANDOM_WRITE_THRESH=4,
14789 BUS_ISA_MEM_BASE=1,
14790 BUS_ISA_PORT_BASE=2,
14791 BUS_ISA_PORT_SHIFT=3
14797 NET_CORE_WMEM_MAX=1,
14798 NET_CORE_RMEM_MAX=2,
14799 NET_CORE_WMEM_DEFAULT=3,
14800 NET_CORE_RMEM_DEFAULT=4,
14802 NET_CORE_MAX_BACKLOG=6,
14803 NET_CORE_FASTROUTE=7,
14804 NET_CORE_MSG_COST=8,
14805 NET_CORE_MSG_BURST=9,
14806 NET_CORE_OPTMEM_MAX=10,
14807 NET_CORE_HOT_LIST_LENGTH=11,
14808 NET_CORE_DIVERT_VERSION=12,
14809 NET_CORE_NO_CONG_THRESH=13,
14810 NET_CORE_NO_CONG=14,
14811 NET_CORE_LO_CONG=15,
14812 NET_CORE_MOD_CONG=16,
14813 NET_CORE_DEV_WEIGHT=17,
14814 NET_CORE_SOMAXCONN=18,
14815 NET_CORE_BUDGET=19,
14816 NET_CORE_AEVENT_ETIME=20,
14817 NET_CORE_AEVENT_RSEQTH=21,
14818 NET_CORE_WARNINGS=22,
14829 NET_UNIX_DESTROY_DELAY=1,
14830 NET_UNIX_DELETE_DELAY=2,
14831 NET_UNIX_MAX_DGRAM_QLEN=3,
14837 NET_NF_CONNTRACK_MAX=1,
14838 NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
14839 NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
14840 NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
14841 NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
14842 NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
14843 NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
14844 NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
14845 NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
14846 NET_NF_CONNTRACK_UDP_TIMEOUT=10,
14847 NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
14848 NET_NF_CONNTRACK_ICMP_TIMEOUT=12,
14849 NET_NF_CONNTRACK_GENERIC_TIMEOUT=13,
14850 NET_NF_CONNTRACK_BUCKETS=14,
14851 NET_NF_CONNTRACK_LOG_INVALID=15,
14852 NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
14853 NET_NF_CONNTRACK_TCP_LOOSE=17,
14854 NET_NF_CONNTRACK_TCP_BE_LIBERAL=18,
14855 NET_NF_CONNTRACK_TCP_MAX_RETRANS=19,
14856 NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
14857 NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
14858 NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
14859 NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
14860 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
14861 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
14862 NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
14863 NET_NF_CONNTRACK_COUNT=27,
14864 NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28,
14865 NET_NF_CONNTRACK_FRAG6_TIMEOUT=29,
14866 NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30,
14867 NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31,
14868 NET_NF_CONNTRACK_CHECKSUM=32,
14875 NET_IPV4_FORWARD=8,
14876 NET_IPV4_DYNADDR=9,
14881 NET_IPV4_FIB_HASH=19,
14882 NET_IPV4_NETFILTER=20,
14884 NET_IPV4_TCP_TIMESTAMPS=33,
14885 NET_IPV4_TCP_WINDOW_SCALING=34,
14886 NET_IPV4_TCP_SACK=35,
14887 NET_IPV4_TCP_RETRANS_COLLAPSE=36,
14888 NET_IPV4_DEFAULT_TTL=37,
14889 NET_IPV4_AUTOCONFIG=38,
14890 NET_IPV4_NO_PMTU_DISC=39,
14891 NET_IPV4_TCP_SYN_RETRIES=40,
14892 NET_IPV4_IPFRAG_HIGH_THRESH=41,
14893 NET_IPV4_IPFRAG_LOW_THRESH=42,
14894 NET_IPV4_IPFRAG_TIME=43,
14895 NET_IPV4_TCP_MAX_KA_PROBES=44,
14896 NET_IPV4_TCP_KEEPALIVE_TIME=45,
14897 NET_IPV4_TCP_KEEPALIVE_PROBES=46,
14898 NET_IPV4_TCP_RETRIES1=47,
14899 NET_IPV4_TCP_RETRIES2=48,
14900 NET_IPV4_TCP_FIN_TIMEOUT=49,
14901 NET_IPV4_IP_MASQ_DEBUG=50,
14902 NET_TCP_SYNCOOKIES=51,
14904 NET_TCP_RFC1337=53,
14905 NET_TCP_SYN_TAILDROP=54,
14906 NET_TCP_MAX_SYN_BACKLOG=55,
14907 NET_IPV4_LOCAL_PORT_RANGE=56,
14908 NET_IPV4_ICMP_ECHO_IGNORE_ALL=57,
14909 NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58,
14910 NET_IPV4_ICMP_SOURCEQUENCH_RATE=59,
14911 NET_IPV4_ICMP_DESTUNREACH_RATE=60,
14912 NET_IPV4_ICMP_TIMEEXCEED_RATE=61,
14913 NET_IPV4_ICMP_PARAMPROB_RATE=62,
14914 NET_IPV4_ICMP_ECHOREPLY_RATE=63,
14915 NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64,
14916 NET_IPV4_IGMP_MAX_MEMBERSHIPS=65,
14917 NET_TCP_TW_RECYCLE=66,
14918 NET_IPV4_ALWAYS_DEFRAG=67,
14919 NET_IPV4_TCP_KEEPALIVE_INTVL=68,
14920 NET_IPV4_INET_PEER_THRESHOLD=69,
14921 NET_IPV4_INET_PEER_MINTTL=70,
14922 NET_IPV4_INET_PEER_MAXTTL=71,
14923 NET_IPV4_INET_PEER_GC_MINTIME=72,
14924 NET_IPV4_INET_PEER_GC_MAXTIME=73,
14925 NET_TCP_ORPHAN_RETRIES=74,
14926 NET_TCP_ABORT_ON_OVERFLOW=75,
14927 NET_TCP_SYNACK_RETRIES=76,
14928 NET_TCP_MAX_ORPHANS=77,
14929 NET_TCP_MAX_TW_BUCKETS=78,
14931 NET_TCP_REORDERING=80,
14937 NET_TCP_APP_WIN=86,
14938 NET_TCP_ADV_WIN_SCALE=87,
14939 NET_IPV4_NONLOCAL_BIND=88,
14940 NET_IPV4_ICMP_RATELIMIT=89,
14941 NET_IPV4_ICMP_RATEMASK=90,
14942 NET_TCP_TW_REUSE=91,
14944 NET_TCP_LOW_LATENCY=93,
14945 NET_IPV4_IPFRAG_SECRET_INTERVAL=94,
14946 NET_IPV4_IGMP_MAX_MSF=96,
14947 NET_TCP_NO_METRICS_SAVE=97,
14948 NET_TCP_DEFAULT_WIN_SCALE=105,
14949 NET_TCP_MODERATE_RCVBUF=106,
14950 NET_TCP_TSO_WIN_DIVISOR=107,
14951 NET_TCP_BIC_BETA=108,
14952 NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109,
14953 NET_TCP_CONG_CONTROL=110,
14955 NET_IPV4_IPFRAG_MAX_DIST=112,
14956 NET_TCP_MTU_PROBING=113,
14957 NET_TCP_BASE_MSS=114,
14958 NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115,
14959 NET_TCP_DMA_COPYBREAK=116,
14960 NET_TCP_SLOW_START_AFTER_IDLE=117,
14961 NET_CIPSOV4_CACHE_ENABLE=118,
14962 NET_CIPSOV4_CACHE_BUCKET_SIZE=119,
14963 NET_CIPSOV4_RBM_OPTFMT=120,
14964 NET_CIPSOV4_RBM_STRICTVALID=121,
14965 NET_TCP_AVAIL_CONG_CONTROL=122,
14966 NET_TCP_ALLOWED_CONG_CONTROL=123,
14967 NET_TCP_MAX_SSTHRESH=124,
14968 NET_TCP_FRTO_RESPONSE=125,
14972 NET_IPV4_ROUTE_FLUSH=1,
14973 NET_IPV4_ROUTE_MIN_DELAY=2,
14974 NET_IPV4_ROUTE_MAX_DELAY=3,
14975 NET_IPV4_ROUTE_GC_THRESH=4,
14976 NET_IPV4_ROUTE_MAX_SIZE=5,
14977 NET_IPV4_ROUTE_GC_MIN_INTERVAL=6,
14978 NET_IPV4_ROUTE_GC_TIMEOUT=7,
14979 NET_IPV4_ROUTE_GC_INTERVAL=8,
14980 NET_IPV4_ROUTE_REDIRECT_LOAD=9,
14981 NET_IPV4_ROUTE_REDIRECT_NUMBER=10,
14982 NET_IPV4_ROUTE_REDIRECT_SILENCE=11,
14983 NET_IPV4_ROUTE_ERROR_COST=12,
14984 NET_IPV4_ROUTE_ERROR_BURST=13,
14985 NET_IPV4_ROUTE_GC_ELASTICITY=14,
14986 NET_IPV4_ROUTE_MTU_EXPIRES=15,
14987 NET_IPV4_ROUTE_MIN_PMTU=16,
14988 NET_IPV4_ROUTE_MIN_ADVMSS=17,
14989 NET_IPV4_ROUTE_SECRET_INTERVAL=18,
14990 NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19,
14995 NET_PROTO_CONF_ALL=-2,
14996 NET_PROTO_CONF_DEFAULT=-3
15003 NET_IPV4_CONF_FORWARDING=1,
15004 NET_IPV4_CONF_MC_FORWARDING=2,
15005 NET_IPV4_CONF_PROXY_ARP=3,
15006 NET_IPV4_CONF_ACCEPT_REDIRECTS=4,
15007 NET_IPV4_CONF_SECURE_REDIRECTS=5,
15008 NET_IPV4_CONF_SEND_REDIRECTS=6,
15009 NET_IPV4_CONF_SHARED_MEDIA=7,
15010 NET_IPV4_CONF_RP_FILTER=8,
15011 NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9,
15012 NET_IPV4_CONF_BOOTP_RELAY=10,
15013 NET_IPV4_CONF_LOG_MARTIANS=11,
15014 NET_IPV4_CONF_TAG=12,
15015 NET_IPV4_CONF_ARPFILTER=13,
15016 NET_IPV4_CONF_MEDIUM_ID=14,
15017 NET_IPV4_CONF_NOXFRM=15,
15018 NET_IPV4_CONF_NOPOLICY=16,
15019 NET_IPV4_CONF_FORCE_IGMP_VERSION=17,
15020 NET_IPV4_CONF_ARP_ANNOUNCE=18,
15021 NET_IPV4_CONF_ARP_IGNORE=19,
15022 NET_IPV4_CONF_PROMOTE_SECONDARIES=20,
15023 NET_IPV4_CONF_ARP_ACCEPT=21,
15024 NET_IPV4_CONF_ARP_NOTIFY=22,
15025 __NET_IPV4_CONF_MAX
15031 NET_IPV4_NF_CONNTRACK_MAX=1,
15032 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
15033 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
15034 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
15035 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
15036 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
15037 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
15038 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
15039 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
15040 NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10,
15041 NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
15042 NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12,
15043 NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13,
15044 NET_IPV4_NF_CONNTRACK_BUCKETS=14,
15045 NET_IPV4_NF_CONNTRACK_LOG_INVALID=15,
15046 NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
15047 NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17,
15048 NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18,
15049 NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19,
15050 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
15051 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
15052 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
15053 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
15054 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
15055 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
15056 NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
15057 NET_IPV4_NF_CONNTRACK_COUNT=27,
15058 NET_IPV4_NF_CONNTRACK_CHECKSUM=28,
15067 NET_IPV6_BINDV6ONLY=20,
15068 NET_IPV6_IP6FRAG_HIGH_THRESH=21,
15069 NET_IPV6_IP6FRAG_LOW_THRESH=22,
15070 NET_IPV6_IP6FRAG_TIME=23,
15071 NET_IPV6_IP6FRAG_SECRET_INTERVAL=24,
15072 NET_IPV6_MLD_MAX_MSF=25,
15076 NET_IPV6_ROUTE_FLUSH=1,
15077 NET_IPV6_ROUTE_GC_THRESH=2,
15078 NET_IPV6_ROUTE_MAX_SIZE=3,
15079 NET_IPV6_ROUTE_GC_MIN_INTERVAL=4,
15080 NET_IPV6_ROUTE_GC_TIMEOUT=5,
15081 NET_IPV6_ROUTE_GC_INTERVAL=6,
15082 NET_IPV6_ROUTE_GC_ELASTICITY=7,
15083 NET_IPV6_ROUTE_MTU_EXPIRES=8,
15084 NET_IPV6_ROUTE_MIN_ADVMSS=9,
15085 NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10
15089 NET_IPV6_FORWARDING=1,
15090 NET_IPV6_HOP_LIMIT=2,
15092 NET_IPV6_ACCEPT_RA=4,
15093 NET_IPV6_ACCEPT_REDIRECTS=5,
15094 NET_IPV6_AUTOCONF=6,
15095 NET_IPV6_DAD_TRANSMITS=7,
15096 NET_IPV6_RTR_SOLICITS=8,
15097 NET_IPV6_RTR_SOLICIT_INTERVAL=9,
15098 NET_IPV6_RTR_SOLICIT_DELAY=10,
15099 NET_IPV6_USE_TEMPADDR=11,
15100 NET_IPV6_TEMP_VALID_LFT=12,
15101 NET_IPV6_TEMP_PREFERED_LFT=13,
15102 NET_IPV6_REGEN_MAX_RETRY=14,
15103 NET_IPV6_MAX_DESYNC_FACTOR=15,
15104 NET_IPV6_MAX_ADDRESSES=16,
15105 NET_IPV6_FORCE_MLD_VERSION=17,
15106 NET_IPV6_ACCEPT_RA_DEFRTR=18,
15107 NET_IPV6_ACCEPT_RA_PINFO=19,
15108 NET_IPV6_ACCEPT_RA_RTR_PREF=20,
15109 NET_IPV6_RTR_PROBE_INTERVAL=21,
15110 NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22,
15111 NET_IPV6_PROXY_NDP=23,
15112 NET_IPV6_ACCEPT_SOURCE_ROUTE=25,
15118 NET_IPV6_ICMP_RATELIMIT=1
15123 NET_NEIGH_MCAST_SOLICIT=1,
15124 NET_NEIGH_UCAST_SOLICIT=2,
15125 NET_NEIGH_APP_SOLICIT=3,
15126 NET_NEIGH_RETRANS_TIME=4,
15127 NET_NEIGH_REACHABLE_TIME=5,
15128 NET_NEIGH_DELAY_PROBE_TIME=6,
15129 NET_NEIGH_GC_STALE_TIME=7,
15130 NET_NEIGH_UNRES_QLEN=8,
15131 NET_NEIGH_PROXY_QLEN=9,
15132 NET_NEIGH_ANYCAST_DELAY=10,
15133 NET_NEIGH_PROXY_DELAY=11,
15134 NET_NEIGH_LOCKTIME=12,
15135 NET_NEIGH_GC_INTERVAL=13,
15136 NET_NEIGH_GC_THRESH1=14,
15137 NET_NEIGH_GC_THRESH2=15,
15138 NET_NEIGH_GC_THRESH3=16,
15139 NET_NEIGH_RETRANS_TIME_MS=17,
15140 NET_NEIGH_REACHABLE_TIME_MS=18,
15146 NET_DCCP_DEFAULT=1,
15151 NET_IPX_PPROP_BROADCASTING=1,
15152 NET_IPX_FORWARDING=2
15163 NET_LLC2_TIMEOUT=1,
15168 NET_LLC_STATION_ACK_TIMEOUT=1,
15173 NET_LLC2_ACK_TIMEOUT=1,
15174 NET_LLC2_P_TIMEOUT=2,
15175 NET_LLC2_REJ_TIMEOUT=3,
15176 NET_LLC2_BUSY_TIMEOUT=4,
15181 NET_ATALK_AARP_EXPIRY_TIME=1,
15182 NET_ATALK_AARP_TICK_TIME=2,
15183 NET_ATALK_AARP_RETRANSMIT_LIMIT=3,
15184 NET_ATALK_AARP_RESOLVE_TIME=4
15190 NET_NETROM_DEFAULT_PATH_QUALITY=1,
15191 NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2,
15192 NET_NETROM_NETWORK_TTL_INITIALISER=3,
15193 NET_NETROM_TRANSPORT_TIMEOUT=4,
15194 NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5,
15195 NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6,
15196 NET_NETROM_TRANSPORT_BUSY_DELAY=7,
15197 NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8,
15198 NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9,
15199 NET_NETROM_ROUTING_CONTROL=10,
15200 NET_NETROM_LINK_FAILS_COUNT=11,
15201 NET_NETROM_RESET=12
15206 NET_AX25_IP_DEFAULT_MODE=1,
15207 NET_AX25_DEFAULT_MODE=2,
15208 NET_AX25_BACKOFF_TYPE=3,
15209 NET_AX25_CONNECT_MODE=4,
15210 NET_AX25_STANDARD_WINDOW=5,
15211 NET_AX25_EXTENDED_WINDOW=6,
15212 NET_AX25_T1_TIMEOUT=7,
15213 NET_AX25_T2_TIMEOUT=8,
15214 NET_AX25_T3_TIMEOUT=9,
15215 NET_AX25_IDLE_TIMEOUT=10,
15217 NET_AX25_PACLEN=12,
15218 NET_AX25_PROTOCOL=13,
15219 NET_AX25_DAMA_SLAVE_TIMEOUT=14
15224 NET_ROSE_RESTART_REQUEST_TIMEOUT=1,
15225 NET_ROSE_CALL_REQUEST_TIMEOUT=2,
15226 NET_ROSE_RESET_REQUEST_TIMEOUT=3,
15227 NET_ROSE_CLEAR_REQUEST_TIMEOUT=4,
15228 NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5,
15229 NET_ROSE_ROUTING_CONTROL=6,
15230 NET_ROSE_LINK_FAIL_TIMEOUT=7,
15231 NET_ROSE_MAX_VCS=8,
15232 NET_ROSE_WINDOW_SIZE=9,
15233 NET_ROSE_NO_ACTIVITY_TIMEOUT=10
15238 NET_X25_RESTART_REQUEST_TIMEOUT=1,
15239 NET_X25_CALL_REQUEST_TIMEOUT=2,
15240 NET_X25_RESET_REQUEST_TIMEOUT=3,
15241 NET_X25_CLEAR_REQUEST_TIMEOUT=4,
15242 NET_X25_ACK_HOLD_BACK_TIMEOUT=5,
15249 NET_TR_RIF_TIMEOUT=1
15254 NET_DECNET_NODE_TYPE = 1,
15255 NET_DECNET_NODE_ADDRESS = 2,
15256 NET_DECNET_NODE_NAME = 3,
15257 NET_DECNET_DEFAULT_DEVICE = 4,
15258 NET_DECNET_TIME_WAIT = 5,
15259 NET_DECNET_DN_COUNT = 6,
15260 NET_DECNET_DI_COUNT = 7,
15261 NET_DECNET_DR_COUNT = 8,
15262 NET_DECNET_DST_GC_INTERVAL = 9,
15263 NET_DECNET_CONF = 10,
15264 NET_DECNET_NO_FC_MAX_CWND = 11,
15265 NET_DECNET_MEM = 12,
15266 NET_DECNET_RMEM = 13,
15267 NET_DECNET_WMEM = 14,
15268 NET_DECNET_DEBUG_LEVEL = 255
15273 NET_DECNET_CONF_LOOPBACK = -2,
15274 NET_DECNET_CONF_DDCMP = -3,
15275 NET_DECNET_CONF_PPP = -4,
15276 NET_DECNET_CONF_X25 = -5,
15277 NET_DECNET_CONF_GRE = -6,
15278 NET_DECNET_CONF_ETHER = -7
15285 NET_DECNET_CONF_DEV_PRIORITY = 1,
15286 NET_DECNET_CONF_DEV_T1 = 2,
15287 NET_DECNET_CONF_DEV_T2 = 3,
15288 NET_DECNET_CONF_DEV_T3 = 4,
15289 NET_DECNET_CONF_DEV_FORWARDING = 5,
15290 NET_DECNET_CONF_DEV_BLKSIZE = 6,
15291 NET_DECNET_CONF_DEV_STATE = 7
15296 NET_SCTP_RTO_INITIAL = 1,
15297 NET_SCTP_RTO_MIN = 2,
15298 NET_SCTP_RTO_MAX = 3,
15299 NET_SCTP_RTO_ALPHA = 4,
15300 NET_SCTP_RTO_BETA = 5,
15301 NET_SCTP_VALID_COOKIE_LIFE = 6,
15302 NET_SCTP_ASSOCIATION_MAX_RETRANS = 7,
15303 NET_SCTP_PATH_MAX_RETRANS = 8,
15304 NET_SCTP_MAX_INIT_RETRANSMITS = 9,
15305 NET_SCTP_HB_INTERVAL = 10,
15306 NET_SCTP_PRESERVE_ENABLE = 11,
15307 NET_SCTP_MAX_BURST = 12,
15308 NET_SCTP_ADDIP_ENABLE = 13,
15309 NET_SCTP_PRSCTP_ENABLE = 14,
15310 NET_SCTP_SNDBUF_POLICY = 15,
15311 NET_SCTP_SACK_TIMEOUT = 16,
15312 NET_SCTP_RCVBUF_POLICY = 17,
15317 NET_BRIDGE_NF_CALL_ARPTABLES = 1,
15318 NET_BRIDGE_NF_CALL_IPTABLES = 2,
15319 NET_BRIDGE_NF_CALL_IP6TABLES = 3,
15320 NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4,
15321 NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
15326 NET_IRDA_DISCOVERY=1,
15327 NET_IRDA_DEVNAME=2,
15329 NET_IRDA_FAST_POLL=4,
15330 NET_IRDA_DISCOVERY_SLOTS=5,
15331 NET_IRDA_DISCOVERY_TIMEOUT=6,
15332 NET_IRDA_SLOT_TIMEOUT=7,
15333 NET_IRDA_MAX_BAUD_RATE=8,
15334 NET_IRDA_MIN_TX_TURN_TIME=9,
15335 NET_IRDA_MAX_TX_DATA_SIZE=10,
15336 NET_IRDA_MAX_TX_WINDOW=11,
15337 NET_IRDA_MAX_NOREPLY_TIME=12,
15338 NET_IRDA_WARN_NOREPLY_TIME=13,
15339 NET_IRDA_LAP_KEEPALIVE_TIME=14,
15375 FS_DQ_CACHE_HITS = 5,
15376 FS_DQ_ALLOCATED = 6,
15379 FS_DQ_WARNINGS = 9,
15398 DEV_CDROM_AUTOCLOSE=2,
15399 DEV_CDROM_AUTOEJECT=3,
15402 DEV_CDROM_CHECK_MEDIA=6
15407 DEV_PARPORT_DEFAULT=-3
15412 DEV_RAID_SPEED_LIMIT_MIN=1,
15413 DEV_RAID_SPEED_LIMIT_MAX=2
15418 DEV_PARPORT_DEFAULT_TIMESLICE=1,
15419 DEV_PARPORT_DEFAULT_SPINTIME=2
15424 DEV_PARPORT_SPINTIME=1,
15425 DEV_PARPORT_BASE_ADDR=2,
15428 DEV_PARPORT_MODES=5,
15429 DEV_PARPORT_DEVICES=6,
15430 DEV_PARPORT_AUTOPROBE=16
15435 DEV_PARPORT_DEVICES_ACTIVE=-3,
15440 DEV_PARPORT_DEVICE_TIMESLICE=1,
15445 DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1,
15446 DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2,
15447 DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3,
15448 DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4,
15449 DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5,
15450 DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6
15455 DEV_SCSI_LOGGING_LEVEL=1,
15460 DEV_IPMI_POWEROFF_POWERCYCLE=1,
15466 ABI_DEFHANDLER_COFF=1,
15467 ABI_DEFHANDLER_ELF=2,
15468 ABI_DEFHANDLER_LCALL7=3,
15469 ABI_DEFHANDLER_LIBCSO=4,
15471 ABI_FAKE_UTSNAME=6,
15480 struct ctl_table_root;
15482 struct ctl_table_set {
15483 struct list_head list;
15484 struct ctl_table_set *parent;
15485 int (*is_seen)(struct ctl_table_set *);
15488 extern void setup_sysctl_set(struct ctl_table_set *p,
15489 struct ctl_table_set *parent,
15490 int (*is_seen)(struct ctl_table_set *));
15492 struct ctl_table_header;
15494 extern void sysctl_head_get(struct ctl_table_header *);
15495 extern void sysctl_head_put(struct ctl_table_header *);
15496 extern int sysctl_is_seen(struct ctl_table_header *);
15497 extern struct ctl_table_header *sysctl_head_grab(struct ctl_table_header *);
15498 extern struct ctl_table_header *sysctl_head_next(struct ctl_table_header *prev);
15499 extern struct ctl_table_header *__sysctl_head_next(struct nsproxy *namespaces,
15500 struct ctl_table_header *prev);
15501 extern void sysctl_head_finish(struct ctl_table_header *prev);
15502 extern int sysctl_perm(struct ctl_table_root *root,
15503 struct ctl_table *table, int op);
15505 typedef struct ctl_table ctl_table;
15507 typedef int ctl_handler (struct ctl_table *table,
15508 void *oldval, size_t *oldlenp,
15509 void *newval, size_t newlen);
15511 typedef int proc_handler (struct ctl_table *ctl, int write,
15512 void *buffer, size_t *lenp, loff_t *ppos);
15514 extern int proc_dostring(struct ctl_table *, int,
15515 void *, size_t *, loff_t *);
15516 extern int proc_dointvec(struct ctl_table *, int,
15517 void *, size_t *, loff_t *);
15518 extern int proc_dointvec_minmax(struct ctl_table *, int,
15519 void *, size_t *, loff_t *);
15520 extern int proc_dointvec_jiffies(struct ctl_table *, int,
15521 void *, size_t *, loff_t *);
15522 extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
15523 void *, size_t *, loff_t *);
15524 extern int proc_dointvec_ms_jiffies(struct ctl_table *, int,
15525 void *, size_t *, loff_t *);
15526 extern int proc_doulongvec_minmax(struct ctl_table *, int,
15527 void *, size_t *, loff_t *);
15528 extern int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int,
15529 void *, size_t *, loff_t *);
15531 extern int do_sysctl (int *name, int nlen,
15532 void *oldval, size_t *oldlenp,
15533 void *newval, size_t newlen);
15535 extern ctl_handler sysctl_data;
15536 extern ctl_handler sysctl_string;
15537 extern ctl_handler sysctl_intvec;
15538 extern ctl_handler sysctl_jiffies;
15539 extern ctl_handler sysctl_ms_jiffies;
15540 # 1051 "include/linux/sysctl.h"
15544 const char *procname;
15548 struct ctl_table *child;
15549 struct ctl_table *parent;
15550 proc_handler *proc_handler;
15551 ctl_handler *strategy;
15556 struct ctl_table_root {
15557 struct list_head root_list;
15558 struct ctl_table_set default_set;
15559 struct ctl_table_set *(*lookup)(struct ctl_table_root *root,
15560 struct nsproxy *namespaces);
15561 int (*permissions)(struct ctl_table_root *root,
15562 struct nsproxy *namespaces, struct ctl_table *table);
15567 struct ctl_table_header
15569 struct ctl_table *ctl_table;
15570 struct list_head ctl_entry;
15573 struct completion *unregistering;
15574 struct ctl_table *ctl_table_arg;
15575 struct ctl_table_root *root;
15576 struct ctl_table_set *set;
15577 struct ctl_table *attached_by;
15578 struct ctl_table *attached_to;
15579 struct ctl_table_header *parent;
15584 const char *procname;
15588 void register_sysctl_root(struct ctl_table_root *root);
15589 struct ctl_table_header *__register_sysctl_paths(
15590 struct ctl_table_root *root, struct nsproxy *namespaces,
15591 const struct ctl_path *path, struct ctl_table *table);
15592 struct ctl_table_header *register_sysctl_table(struct ctl_table * table);
15593 struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
15594 struct ctl_table *table);
15596 void unregister_sysctl_table(struct ctl_table_header * table);
15597 int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table);
15598 # 23 "include/linux/key.h" 2
15605 typedef int32_t key_serial_t;
15608 typedef uint32_t key_perm_t;
15611 # 74 "include/linux/key.h"
15613 struct user_struct;
15614 struct signal_struct;
15619 struct keyring_list;
15620 struct keyring_name;
15621 # 98 "include/linux/key.h"
15622 typedef struct __key_reference_with_attributes *key_ref_t;
15624 static inline __attribute__((always_inline)) key_ref_t make_key_ref(const struct key *key,
15625 unsigned long possession)
15627 return (key_ref_t) ((unsigned long) key | possession);
15630 static inline __attribute__((always_inline)) struct key *key_ref_to_ptr(const key_ref_t key_ref)
15632 return (struct key *) ((unsigned long) key_ref & ~1UL);
15635 static inline __attribute__((always_inline)) unsigned long is_key_possessed(const key_ref_t key_ref)
15637 return (unsigned long) key_ref & 1UL;
15639 # 124 "include/linux/key.h"
15642 key_serial_t serial;
15643 struct rb_node serial_node;
15644 struct key_type *type;
15645 struct rw_semaphore sem;
15646 struct key_user *user;
15655 unsigned short quotalen;
15656 unsigned short datalen;
15657 # 151 "include/linux/key.h"
15658 unsigned long flags;
15659 # 164 "include/linux/key.h"
15666 struct list_head link;
15667 unsigned long x[2];
15676 unsigned long value;
15678 struct keyring_list *subscriptions;
15682 extern struct key *key_alloc(struct key_type *type,
15684 uid_t uid, gid_t gid,
15685 const struct cred *cred,
15687 unsigned long flags);
15694 extern void key_revoke(struct key *key);
15695 extern void key_put(struct key *key);
15697 static inline __attribute__((always_inline)) struct key *key_get(struct key *key)
15700 atomic_inc(&key->usage);
15704 static inline __attribute__((always_inline)) void key_ref_put(key_ref_t key_ref)
15706 key_put(key_ref_to_ptr(key_ref));
15709 extern struct key *request_key(struct key_type *type,
15710 const char *description,
15711 const char *callout_info);
15713 extern struct key *request_key_with_auxdata(struct key_type *type,
15714 const char *description,
15715 const void *callout_info,
15716 size_t callout_len,
15719 extern struct key *request_key_async(struct key_type *type,
15720 const char *description,
15721 const void *callout_info,
15722 size_t callout_len);
15724 extern struct key *request_key_async_with_auxdata(struct key_type *type,
15725 const char *description,
15726 const void *callout_info,
15727 size_t callout_len,
15730 extern int wait_for_key_construction(struct key *key, bool intr);
15732 extern int key_validate(struct key *key);
15734 extern key_ref_t key_create_or_update(key_ref_t keyring,
15736 const char *description,
15737 const void *payload,
15740 unsigned long flags);
15742 extern int key_update(key_ref_t key,
15743 const void *payload,
15746 extern int key_link(struct key *keyring,
15749 extern int key_unlink(struct key *keyring,
15752 extern struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid,
15753 const struct cred *cred,
15754 unsigned long flags,
15757 extern int keyring_clear(struct key *keyring);
15759 extern key_ref_t keyring_search(key_ref_t keyring,
15760 struct key_type *type,
15761 const char *description);
15763 extern int keyring_add_key(struct key *keyring,
15766 extern struct key *key_lookup(key_serial_t id);
15768 static inline __attribute__((always_inline)) key_serial_t key_serial(struct key *key)
15770 return key ? key->serial : 0;
15774 extern ctl_table key_sysctls[];
15777 extern void key_replace_session_keyring(void);
15782 extern int install_thread_keyring_to_cred(struct cred *cred);
15783 extern void key_fsuid_changed(struct task_struct *tsk);
15784 extern void key_fsgid_changed(struct task_struct *tsk);
15785 extern void key_init(void);
15786 # 18 "include/linux/cred.h" 2
15787 # 1 "include/linux/selinux.h" 1
15788 # 17 "include/linux/selinux.h"
15789 struct selinux_audit_rule;
15790 struct audit_context;
15791 struct kern_ipc_perm;
15792 # 71 "include/linux/selinux.h"
15793 static inline __attribute__((always_inline)) int selinux_string_to_sid(const char *str, u32 *sid)
15799 static inline __attribute__((always_inline)) int selinux_secmark_relabel_packet_permission(u32 sid)
15804 static inline __attribute__((always_inline)) void selinux_secmark_refcount_inc(void)
15809 static inline __attribute__((always_inline)) void selinux_secmark_refcount_dec(void)
15814 static inline __attribute__((always_inline)) bool selinux_is_enabled(void)
15818 # 19 "include/linux/cred.h" 2
15821 struct user_struct;
15831 struct group_info {
15835 gid_t small_block[32];
15838 # 48 "include/linux/cred.h"
15839 static inline __attribute__((always_inline)) struct group_info *get_group_info(struct group_info *gi)
15841 atomic_inc(&gi->usage);
15844 # 64 "include/linux/cred.h"
15845 extern struct group_info *groups_alloc(int);
15846 extern struct group_info init_groups;
15847 extern void groups_free(struct group_info *);
15848 extern int set_current_groups(struct group_info *);
15849 extern int set_groups(struct cred *, struct group_info *);
15850 extern int groups_search(const struct group_info *, gid_t);
15856 extern int in_group_p(gid_t);
15857 extern int in_egroup_p(gid_t);
15864 struct thread_group_cred {
15868 struct key *session_keyring;
15869 struct key *process_keyring;
15870 struct rcu_head rcu;
15872 # 116 "include/linux/cred.h"
15876 atomic_t subscribers;
15890 unsigned securebits;
15891 kernel_cap_t cap_inheritable;
15892 kernel_cap_t cap_permitted;
15893 kernel_cap_t cap_effective;
15894 kernel_cap_t cap_bset;
15896 unsigned char jit_keyring;
15898 struct key *thread_keyring;
15899 struct key *request_key_auth;
15900 struct thread_group_cred *tgcred;
15905 struct user_struct *user;
15906 struct group_info *group_info;
15907 struct rcu_head rcu;
15910 extern void __put_cred(struct cred *);
15911 extern void exit_creds(struct task_struct *);
15912 extern int copy_creds(struct task_struct *, unsigned long);
15913 extern struct cred *cred_alloc_blank(void);
15914 extern struct cred *prepare_creds(void);
15915 extern struct cred *prepare_exec_creds(void);
15916 extern struct cred *prepare_usermodehelper_creds(void);
15917 extern int commit_creds(struct cred *);
15918 extern void abort_creds(struct cred *);
15919 extern const struct cred *override_creds(const struct cred *);
15920 extern void revert_creds(const struct cred *);
15921 extern struct cred *prepare_kernel_cred(struct task_struct *);
15922 extern int change_create_files_as(struct cred *, struct inode *);
15923 extern int set_security_override(struct cred *, u32);
15924 extern int set_security_override_from_ctx(struct cred *, const char *);
15925 extern int set_create_files_as(struct cred *, struct inode *);
15926 extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) cred_init(void);
15932 extern void __invalid_creds(const struct cred *, const char *, unsigned);
15933 extern void __validate_process_creds(struct task_struct *,
15934 const char *, unsigned);
15936 extern bool creds_are_invalid(const struct cred *cred);
15938 static inline __attribute__((always_inline)) void __validate_creds(const struct cred *cred,
15939 const char *file, unsigned line)
15941 if (__builtin_expect(!!(creds_are_invalid(cred)), 0))
15942 __invalid_creds(cred, file, line);
15944 # 198 "include/linux/cred.h"
15945 extern void validate_creds_for_do_exit(struct task_struct *);
15946 # 218 "include/linux/cred.h"
15947 static inline __attribute__((always_inline)) struct cred *get_new_cred(struct cred *cred)
15949 atomic_inc(&cred->usage);
15952 # 237 "include/linux/cred.h"
15953 static inline __attribute__((always_inline)) const struct cred *get_cred(const struct cred *cred)
15955 struct cred *nonconst_cred = (struct cred *) cred;
15956 do { __validate_creds((cred), "include/linux/cred.h", 240); } while(0);
15957 return get_new_cred(nonconst_cred);
15959 # 255 "include/linux/cred.h"
15960 static inline __attribute__((always_inline)) void put_cred(const struct cred *_cred)
15962 struct cred *cred = (struct cred *) _cred;
15964 do { __validate_creds((cred), "include/linux/cred.h", 259); } while(0);
15965 if ((atomic_sub_return(1, (&(cred)->usage)) == 0))
15968 # 94 "include/linux/sched.h" 2
15972 struct exec_domain;
15973 struct futex_pi_state;
15974 struct robust_list_head;
15977 struct bts_context;
15978 struct perf_event_context;
15979 # 121 "include/linux/sched.h"
15980 extern unsigned long avenrun[];
15981 extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift);
15982 # 136 "include/linux/sched.h"
15983 extern unsigned long total_forks;
15984 extern int nr_threads;
15985 extern __attribute__((section(".discard"), unused)) char __pcpu_scope_process_counts; extern __attribute__((section(".data" ""))) __typeof__(unsigned long) per_cpu__process_counts;
15986 extern int nr_processes(void);
15987 extern unsigned long nr_running(void);
15988 extern unsigned long nr_uninterruptible(void);
15989 extern unsigned long nr_iowait(void);
15990 extern unsigned long nr_iowait_cpu(void);
15991 extern unsigned long this_cpu_load(void);
15994 extern void calc_global_load(void);
15995 extern u64 cpu_nr_migrations(int cpu);
15997 extern unsigned long get_parent_ip(unsigned long addr);
16008 static inline __attribute__((always_inline)) void
16009 proc_sched_show_task(struct task_struct *p, struct seq_file *m)
16012 static inline __attribute__((always_inline)) void proc_sched_set_task(struct task_struct *p)
16015 static inline __attribute__((always_inline)) void
16016 print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
16021 extern unsigned long long time_sync_thresh;
16022 # 253 "include/linux/sched.h"
16023 extern rwlock_t tasklist_lock;
16024 extern spinlock_t mmlist_lock;
16026 struct task_struct;
16028 extern void sched_init(void);
16029 extern void sched_init_smp(void);
16030 extern void schedule_tail(struct task_struct *prev);
16031 extern void init_idle(struct task_struct *idle, int cpu);
16032 extern void init_idle_bootup_task(struct task_struct *idle);
16034 extern int runqueue_is_locked(int cpu);
16035 extern void task_rq_unlock_wait(struct task_struct *p);
16037 extern cpumask_var_t nohz_cpu_mask;
16042 static inline __attribute__((always_inline)) int select_nohz_load_balancer(int cpu)
16051 extern void show_state_filter(unsigned long state_filter);
16053 static inline __attribute__((always_inline)) void show_state(void)
16055 show_state_filter(0);
16058 extern void show_regs(struct pt_regs *);
16065 extern void show_stack(struct task_struct *task, unsigned long *sp);
16067 void io_schedule(void);
16068 long io_schedule_timeout(long timeout);
16070 extern void cpu_init (void);
16071 extern void trap_init(void);
16072 extern void update_process_times(int user);
16073 extern void scheduler_tick(void);
16075 extern void sched_show_task(struct task_struct *p);
16076 # 317 "include/linux/sched.h"
16077 static inline __attribute__((always_inline)) void softlockup_tick(void)
16080 static inline __attribute__((always_inline)) void touch_softlockup_watchdog(void)
16083 static inline __attribute__((always_inline)) void touch_all_softlockup_watchdogs(void)
16089 extern unsigned int sysctl_hung_task_panic;
16090 extern unsigned long sysctl_hung_task_check_count;
16091 extern unsigned long sysctl_hung_task_timeout_secs;
16092 extern unsigned long sysctl_hung_task_warnings;
16093 extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
16095 size_t *lenp, loff_t *ppos);
16102 extern char __sched_text_start[], __sched_text_end[];
16105 extern int in_sched_functions(unsigned long addr);
16108 extern signed long schedule_timeout(signed long timeout);
16109 extern signed long schedule_timeout_interruptible(signed long timeout);
16110 extern signed long schedule_timeout_killable(signed long timeout);
16111 extern signed long schedule_timeout_uninterruptible(signed long timeout);
16112 void __schedule(void);
16113 void schedule(void);
16114 extern int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner);
16117 struct user_namespace;
16118 # 374 "include/linux/sched.h"
16119 extern int sysctl_max_map_count;
16121 # 1 "include/linux/aio.h" 1
16127 # 1 "include/linux/aio_abi.h" 1
16128 # 31 "include/linux/aio_abi.h"
16129 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/byteorder.h" 1
16130 # 32 "include/linux/aio_abi.h" 2
16132 typedef unsigned long aio_context_t;
16135 IOCB_CMD_PREAD = 0,
16136 IOCB_CMD_PWRITE = 1,
16137 IOCB_CMD_FSYNC = 2,
16138 IOCB_CMD_FDSYNC = 3,
16144 IOCB_CMD_PREADV = 7,
16145 IOCB_CMD_PWRITEV = 8,
16147 # 58 "include/linux/aio_abi.h"
16154 # 79 "include/linux/aio_abi.h"
16158 __u32 aio_key, aio_reserved1;
16162 __u16 aio_lio_opcode;
16171 __u64 aio_reserved2;
16182 # 7 "include/linux/aio.h" 2
16183 # 1 "include/linux/uio.h" 1
16184 # 16 "include/linux/uio.h"
16188 __kernel_size_t iov_len;
16190 # 31 "include/linux/uio.h"
16195 # 43 "include/linux/uio.h"
16196 static inline __attribute__((always_inline)) size_t iov_length(const struct iovec *iov, unsigned long nr_segs)
16201 for (seg = 0; seg < nr_segs; seg++)
16202 ret += iov[seg].iov_len;
16206 unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to);
16207 # 8 "include/linux/aio.h" 2
16216 # 87 "include/linux/aio.h"
16218 struct list_head ki_run_list;
16219 unsigned long ki_flags;
16223 struct file *ki_filp;
16224 struct kioctx *ki_ctx;
16225 int (*ki_cancel)(struct kiocb *, struct io_event *);
16226 ssize_t (*ki_retry)(struct kiocb *);
16227 void (*ki_dtor)(struct kiocb *);
16231 struct task_struct *tsk;
16234 __u64 ki_user_data;
16235 wait_queue_t ki_wait;
16240 unsigned short ki_opcode;
16244 struct iovec ki_inline_vec;
16245 struct iovec *ki_iovec;
16246 unsigned long ki_nr_segs;
16247 unsigned long ki_cur_seg;
16249 struct list_head ki_list;
16256 struct eventfd_ctx *ki_eventfd;
16258 # 149 "include/linux/aio.h"
16266 unsigned compat_features;
16267 unsigned incompat_features;
16268 unsigned header_length;
16271 struct io_event io_events[0];
16277 struct aio_ring_info {
16278 unsigned long mmap_base;
16279 unsigned long mmap_size;
16281 struct page **ring_pages;
16282 spinlock_t ring_lock;
16287 struct page *internal_pages[8];
16293 struct mm_struct *mm;
16296 unsigned long user_id;
16297 struct hlist_node list;
16299 wait_queue_head_t wait;
16301 spinlock_t ctx_lock;
16304 struct list_head active_reqs;
16305 struct list_head run_list;
16310 struct aio_ring_info ring_info;
16312 struct delayed_work wq;
16314 struct rcu_head rcu_head;
16318 extern unsigned aio_max_size;
16321 extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb);
16322 extern int aio_put_req(struct kiocb *iocb);
16323 extern void kick_iocb(struct kiocb *iocb);
16324 extern int aio_complete(struct kiocb *iocb, long res, long res2);
16326 extern void exit_aio(struct mm_struct *mm);
16327 # 228 "include/linux/aio.h"
16328 static inline __attribute__((always_inline)) struct kiocb *list_kiocb(struct list_head *h)
16330 return ({ const typeof( ((struct kiocb *)0)->ki_list ) *__mptr = (h); (struct kiocb *)( (char *)__mptr - __builtin_offsetof(struct kiocb,ki_list) );});
16334 extern unsigned long aio_nr;
16335 extern unsigned long aio_max_nr;
16336 # 377 "include/linux/sched.h" 2
16338 extern unsigned long
16339 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
16340 unsigned long, unsigned long);
16341 extern unsigned long
16342 arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
16343 unsigned long len, unsigned long pgoff,
16344 unsigned long flags);
16345 extern void arch_unmap_area(struct mm_struct *, unsigned long);
16346 extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long);
16347 # 424 "include/linux/sched.h"
16348 static inline __attribute__((always_inline)) unsigned long get_mm_hiwater_rss(struct mm_struct *mm)
16350 return ({ typeof(mm->hiwater_rss) _max1 = (mm->hiwater_rss); typeof((((mm)->_file_rss) + ((mm)->_anon_rss))) _max2 = ((((mm)->_file_rss) + ((mm)->_anon_rss))); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; });
16353 static inline __attribute__((always_inline)) void setmax_mm_hiwater_rss(unsigned long *maxrss,
16354 struct mm_struct *mm)
16356 unsigned long hiwater_rss = get_mm_hiwater_rss(mm);
16358 if (*maxrss < hiwater_rss)
16359 *maxrss = hiwater_rss;
16362 static inline __attribute__((always_inline)) unsigned long get_mm_hiwater_vm(struct mm_struct *mm)
16364 return ({ typeof(mm->hiwater_vm) _max1 = (mm->hiwater_vm); typeof(mm->total_vm) _max2 = (mm->total_vm); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; });
16367 extern void set_dumpable(struct mm_struct *mm, int value);
16368 extern int get_dumpable(struct mm_struct *mm);
16369 # 481 "include/linux/sched.h"
16370 struct sighand_struct {
16372 struct k_sigaction action[64];
16373 spinlock_t siglock;
16374 wait_queue_head_t signalfd_wqh;
16377 struct pacct_struct {
16380 unsigned long ac_mem;
16381 cputime_t ac_utime, ac_stime;
16382 unsigned long ac_minflt, ac_majflt;
16385 struct cpu_itimer {
16391 # 514 "include/linux/sched.h"
16392 struct task_cputime {
16395 unsigned long long sum_exec_runtime;
16397 # 550 "include/linux/sched.h"
16398 struct thread_group_cputimer {
16399 struct task_cputime cputime;
16403 # 563 "include/linux/sched.h"
16404 struct signal_struct {
16408 wait_queue_head_t wait_chldexit;
16411 struct task_struct *curr_target;
16414 struct sigpending shared_pending;
16417 int group_exit_code;
16424 struct task_struct *group_exit_task;
16427 int group_stop_count;
16428 unsigned int flags;
16431 struct list_head posix_timers;
16434 struct hrtimer real_timer;
16435 struct pid *leader_pid;
16436 ktime_t it_real_incr;
16443 struct cpu_itimer it[2];
16449 struct thread_group_cputimer cputimer;
16452 struct task_cputime cputime_expires;
16454 struct list_head cpu_timers[3];
16456 struct pid *tty_old_pgrp;
16461 struct tty_struct *tty;
16469 cputime_t utime, stime, cutime, cstime;
16472 unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
16473 unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
16474 unsigned long inblock, oublock, cinblock, coublock;
16475 unsigned long maxrss, cmaxrss;
16476 struct task_io_accounting ioac;
16484 unsigned long long sum_sched_runtime;
16485 # 654 "include/linux/sched.h"
16486 struct rlimit rlim[16];
16487 # 663 "include/linux/sched.h"
16488 unsigned audit_tty;
16489 struct tty_audit_buf *tty_audit_buf;
16494 # 692 "include/linux/sched.h"
16495 static inline __attribute__((always_inline)) int signal_group_exit(const struct signal_struct *sig)
16497 return (sig->flags & 0x00000008) ||
16498 (sig->group_exit_task != ((void *)0));
16504 struct user_struct {
16506 atomic_t processes;
16508 atomic_t sigpending;
16510 atomic_t inotify_watches;
16511 atomic_t inotify_devs;
16514 atomic_t epoll_watches;
16518 unsigned long mq_bytes;
16520 unsigned long locked_shm;
16523 struct key *uid_keyring;
16524 struct key *session_keyring;
16528 struct hlist_node uidhash_node;
16530 struct user_namespace *user_ns;
16533 struct task_group *tg;
16535 struct kobject kobj;
16536 struct delayed_work work;
16545 extern int uids_sysfs_init(void);
16547 extern struct user_struct *find_user(uid_t);
16549 extern struct user_struct root_user;
16553 struct backing_dev_info;
16554 struct reclaim_state;
16557 struct sched_info {
16559 unsigned long pcount;
16560 unsigned long long run_delay;
16563 unsigned long long last_arrival,
16567 unsigned int bkl_count;
16570 # 803 "include/linux/sched.h"
16571 static inline __attribute__((always_inline)) int sched_info_on(void)
16583 enum cpu_idle_type {
16589 # 1033 "include/linux/sched.h"
16590 struct sched_domain_attr;
16592 static inline __attribute__((always_inline)) void
16593 partition_sched_domains(int ndoms_new, struct cpumask *doms_new,
16594 struct sched_domain_attr *dattr_new)
16606 static inline __attribute__((always_inline)) void prefetch_stack(struct task_struct *t) { }
16609 struct audit_context;
16611 struct pipe_inode_info;
16612 struct uts_namespace;
16615 struct sched_domain;
16623 struct sched_class {
16624 const struct sched_class *next;
16626 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup);
16627 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep);
16628 void (*yield_task) (struct rq *rq);
16630 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags);
16632 struct task_struct * (*pick_next_task) (struct rq *rq);
16633 void (*put_prev_task) (struct rq *rq, struct task_struct *p);
16634 # 1100 "include/linux/sched.h"
16635 void (*set_curr_task) (struct rq *rq);
16636 void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
16637 void (*task_new) (struct rq *rq, struct task_struct *p);
16639 void (*switched_from) (struct rq *this_rq, struct task_struct *task,
16641 void (*switched_to) (struct rq *this_rq, struct task_struct *task,
16643 void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
16644 int oldprio, int running);
16646 unsigned int (*get_rr_interval) (struct task_struct *task);
16649 void (*moved_group) (struct task_struct *p);
16653 struct load_weight {
16654 unsigned long weight, inv_weight;
16656 # 1132 "include/linux/sched.h"
16657 struct sched_entity {
16658 struct load_weight load;
16659 struct rb_node run_node;
16660 struct list_head group_node;
16661 unsigned int on_rq;
16664 u64 sum_exec_runtime;
16666 u64 prev_sum_exec_runtime;
16688 s64 sum_sleep_runtime;
16695 u64 nr_migrations_cold;
16696 u64 nr_failed_migrations_affine;
16697 u64 nr_failed_migrations_running;
16698 u64 nr_failed_migrations_hot;
16699 u64 nr_forced_migrations;
16700 u64 nr_forced2_migrations;
16703 u64 nr_wakeups_sync;
16704 u64 nr_wakeups_migrate;
16705 u64 nr_wakeups_local;
16706 u64 nr_wakeups_remote;
16707 u64 nr_wakeups_affine;
16708 u64 nr_wakeups_affine_attempts;
16709 u64 nr_wakeups_passive;
16710 u64 nr_wakeups_idle;
16714 struct sched_entity *parent;
16716 struct cfs_rq *cfs_rq;
16718 struct cfs_rq *my_q;
16722 struct sched_rt_entity {
16723 struct list_head run_list;
16724 unsigned long timeout;
16725 unsigned int time_slice;
16726 int nr_cpus_allowed;
16728 struct sched_rt_entity *back;
16740 struct task_struct {
16741 volatile long state;
16744 unsigned int flags;
16745 unsigned int ptrace;
16755 int prio, static_prio, normal_prio;
16756 unsigned int rt_priority;
16757 const struct sched_class *sched_class;
16758 struct sched_entity se;
16759 struct sched_rt_entity rt;
16760 # 1249 "include/linux/sched.h"
16761 unsigned char fpu_counter;
16766 unsigned int policy;
16767 cpumask_t cpus_allowed;
16768 # 1265 "include/linux/sched.h"
16769 struct sched_info sched_info;
16772 struct list_head tasks;
16773 struct plist_node pushable_tasks;
16775 struct mm_struct *mm, *active_mm;
16779 int exit_code, exit_signal;
16782 unsigned int personality;
16783 unsigned did_exec:1;
16784 unsigned in_execve:1;
16786 unsigned in_iowait:1;
16790 unsigned sched_reset_on_fork:1;
16794 # 1301 "include/linux/sched.h"
16795 struct task_struct *real_parent;
16796 struct task_struct *parent;
16800 struct list_head children;
16801 struct list_head sibling;
16802 struct task_struct *group_leader;
16809 struct list_head ptraced;
16810 struct list_head ptrace_entry;
16816 struct bts_context *bts;
16819 struct pid_link pids[PIDTYPE_MAX];
16820 struct list_head thread_group;
16822 struct completion *vfork_done;
16823 int *set_child_tid;
16824 int *clear_child_tid;
16826 cputime_t utime, stime, utimescaled, stimescaled;
16828 cputime_t prev_utime, prev_stime;
16829 unsigned long nvcsw, nivcsw;
16830 struct timespec start_time;
16831 struct timespec real_start_time;
16833 unsigned long min_flt, maj_flt;
16835 struct task_cputime cputime_expires;
16836 struct list_head cpu_timers[3];
16839 const struct cred *real_cred;
16841 const struct cred *cred;
16843 struct mutex cred_guard_mutex;
16846 struct cred *replacement_session_keyring;
16853 int link_count, total_link_count;
16860 unsigned long last_switch_count;
16863 struct thread_struct thread;
16865 struct fs_struct *fs;
16867 struct files_struct *files;
16869 struct nsproxy *nsproxy;
16871 struct signal_struct *signal;
16872 struct sighand_struct *sighand;
16874 sigset_t blocked, real_blocked;
16875 sigset_t saved_sigmask;
16876 struct sigpending pending;
16878 unsigned long sas_ss_sp;
16879 size_t sas_ss_size;
16880 int (*notifier)(void *priv);
16881 void *notifier_data;
16882 sigset_t *notifier_mask;
16883 struct audit_context *audit_context;
16891 u32 parent_exec_id;
16895 spinlock_t alloc_lock;
16899 struct irqaction *irqaction;
16903 spinlock_t pi_lock;
16907 struct plist_head pi_waiters;
16909 struct rt_mutex_waiter *pi_blocked_on;
16914 struct mutex_waiter *blocked_on;
16915 # 1439 "include/linux/sched.h"
16916 u64 curr_chain_key;
16918 unsigned int lockdep_recursion;
16919 struct held_lock held_locks[48UL];
16920 gfp_t lockdep_reclaim_gfp;
16924 void *journal_info;
16927 struct bio *bio_list, **bio_tail;
16930 struct reclaim_state *reclaim_state;
16932 struct backing_dev_info *backing_dev_info;
16934 struct io_context *io_context;
16936 unsigned long ptrace_message;
16937 siginfo_t *last_siginfo;
16938 struct task_io_accounting ioac;
16939 # 1478 "include/linux/sched.h"
16940 struct robust_list_head *robust_list;
16944 struct list_head pi_state_list;
16945 struct futex_pi_state *pi_state_cache;
16946 # 1494 "include/linux/sched.h"
16948 struct rcu_head rcu;
16953 struct pipe_inode_info *splice_pipe;
16960 struct prop_local_single dirties;
16961 # 1516 "include/linux/sched.h"
16962 unsigned long timer_slack_ns;
16963 unsigned long default_timer_slack_ns;
16965 struct list_head *scm_work_list;
16966 # 1537 "include/linux/sched.h"
16967 unsigned long trace;
16969 unsigned long trace_recursion;
16971 unsigned long stack_start;
16973 # 1566 "include/linux/sched.h"
16974 static inline __attribute__((always_inline)) int rt_prio(int prio)
16976 if (__builtin_expect(!!(prio < 100), 0))
16981 static inline __attribute__((always_inline)) int rt_task(struct task_struct *p)
16983 return rt_prio(p->prio);
16986 static inline __attribute__((always_inline)) struct pid *task_pid(struct task_struct *task)
16988 return task->pids[PIDTYPE_PID].pid;
16991 static inline __attribute__((always_inline)) struct pid *task_tgid(struct task_struct *task)
16993 return task->group_leader->pids[PIDTYPE_PID].pid;
17001 static inline __attribute__((always_inline)) struct pid *task_pgrp(struct task_struct *task)
17003 return task->group_leader->pids[PIDTYPE_PGID].pid;
17006 static inline __attribute__((always_inline)) struct pid *task_session(struct task_struct *task)
17008 return task->group_leader->pids[PIDTYPE_SID].pid;
17011 struct pid_namespace;
17012 # 1618 "include/linux/sched.h"
17013 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
17014 struct pid_namespace *ns);
17016 static inline __attribute__((always_inline)) pid_t task_pid_nr(struct task_struct *tsk)
17021 static inline __attribute__((always_inline)) pid_t task_pid_nr_ns(struct task_struct *tsk,
17022 struct pid_namespace *ns)
17024 return __task_pid_nr_ns(tsk, PIDTYPE_PID, ns);
17027 static inline __attribute__((always_inline)) pid_t task_pid_vnr(struct task_struct *tsk)
17029 return __task_pid_nr_ns(tsk, PIDTYPE_PID, ((void *)0));
17033 static inline __attribute__((always_inline)) pid_t task_tgid_nr(struct task_struct *tsk)
17038 pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
17040 static inline __attribute__((always_inline)) pid_t task_tgid_vnr(struct task_struct *tsk)
17042 return pid_vnr(task_tgid(tsk));
17046 static inline __attribute__((always_inline)) pid_t task_pgrp_nr_ns(struct task_struct *tsk,
17047 struct pid_namespace *ns)
17049 return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns);
17052 static inline __attribute__((always_inline)) pid_t task_pgrp_vnr(struct task_struct *tsk)
17054 return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ((void *)0));
17058 static inline __attribute__((always_inline)) pid_t task_session_nr_ns(struct task_struct *tsk,
17059 struct pid_namespace *ns)
17061 return __task_pid_nr_ns(tsk, PIDTYPE_SID, ns);
17064 static inline __attribute__((always_inline)) pid_t task_session_vnr(struct task_struct *tsk)
17066 return __task_pid_nr_ns(tsk, PIDTYPE_SID, ((void *)0));
17070 static inline __attribute__((always_inline)) pid_t task_pgrp_nr(struct task_struct *tsk)
17072 return task_pgrp_nr_ns(tsk, &init_pid_ns);
17074 # 1688 "include/linux/sched.h"
17075 static inline __attribute__((always_inline)) int pid_alive(struct task_struct *p)
17077 return p->pids[PIDTYPE_PID].pid != ((void *)0);
17086 static inline __attribute__((always_inline)) int is_global_init(struct task_struct *tsk)
17088 return tsk->pid == 1;
17095 extern int is_container_init(struct task_struct *tsk);
17097 extern struct pid *cad_pid;
17099 extern void free_task(struct task_struct *tsk);
17102 extern void __put_task_struct(struct task_struct *t);
17104 static inline __attribute__((always_inline)) void put_task_struct(struct task_struct *t)
17106 if ((atomic_sub_return(1, (&t->usage)) == 0))
17107 __put_task_struct(t);
17110 extern cputime_t task_utime(struct task_struct *p);
17111 extern cputime_t task_stime(struct task_struct *p);
17112 extern cputime_t task_gtime(struct task_struct *p);
17113 # 1803 "include/linux/sched.h"
17114 static inline __attribute__((always_inline)) void rcu_copy_process(struct task_struct *p)
17124 static inline __attribute__((always_inline)) int set_cpus_allowed_ptr(struct task_struct *p,
17125 const struct cpumask *new_mask)
17127 if (!test_bit(cpumask_check(0), (((new_mask))->bits)))
17134 static inline __attribute__((always_inline)) int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
17136 return set_cpus_allowed_ptr(p, &new_mask);
17138 # 1839 "include/linux/sched.h"
17139 extern unsigned long long sched_clock(void);
17141 extern void sched_clock_init(void);
17142 extern u64 sched_clock_cpu(int cpu);
17145 static inline __attribute__((always_inline)) void sched_clock_tick(void)
17149 static inline __attribute__((always_inline)) void sched_clock_idle_sleep_event(void)
17153 static inline __attribute__((always_inline)) void sched_clock_idle_wakeup_event(u64 delta_ns)
17156 # 1866 "include/linux/sched.h"
17157 extern unsigned long long cpu_clock(int cpu);
17159 extern unsigned long long
17160 task_sched_runtime(struct task_struct *task);
17161 extern unsigned long long thread_group_sched_runtime(struct task_struct *task);
17162 # 1879 "include/linux/sched.h"
17163 extern void sched_clock_idle_sleep_event(void);
17164 extern void sched_clock_idle_wakeup_event(u64 delta_ns);
17169 static inline __attribute__((always_inline)) void idle_task_exit(void) {}
17172 extern void sched_idle_next(void);
17177 static inline __attribute__((always_inline)) void wake_up_idle_cpu(int cpu) { }
17180 extern unsigned int sysctl_sched_latency;
17181 extern unsigned int sysctl_sched_min_granularity;
17182 extern unsigned int sysctl_sched_wakeup_granularity;
17183 extern unsigned int sysctl_sched_shares_ratelimit;
17184 extern unsigned int sysctl_sched_shares_thresh;
17185 extern unsigned int sysctl_sched_child_runs_first;
17186 # 1919 "include/linux/sched.h"
17187 static inline __attribute__((always_inline)) unsigned int get_sysctl_timer_migration(void)
17192 extern unsigned int sysctl_sched_rt_period;
17193 extern int sysctl_sched_rt_runtime;
17195 int sched_rt_handler(struct ctl_table *table, int write,
17196 void *buffer, size_t *lenp,
17199 extern unsigned int sysctl_sched_compat_yield;
17202 extern int rt_mutex_getprio(struct task_struct *p);
17203 extern void rt_mutex_setprio(struct task_struct *p, int prio);
17204 extern void rt_mutex_adjust_pi(struct task_struct *p);
17205 # 1945 "include/linux/sched.h"
17206 extern void set_user_nice(struct task_struct *p, long nice);
17207 extern int task_prio(const struct task_struct *p);
17208 extern int task_nice(const struct task_struct *p);
17209 extern int can_nice(const struct task_struct *p, const int nice);
17210 extern int task_curr(const struct task_struct *p);
17211 extern int idle_cpu(int cpu);
17212 extern int sched_setscheduler(struct task_struct *, int, struct sched_param *);
17213 extern int sched_setscheduler_nocheck(struct task_struct *, int,
17214 struct sched_param *);
17215 extern struct task_struct *idle_task(int cpu);
17216 extern struct task_struct *curr_task(int cpu);
17217 extern void set_curr_task(int cpu, struct task_struct *p);
17224 extern struct exec_domain default_exec_domain;
17226 union thread_union {
17227 struct thread_info thread_info;
17228 unsigned long stack[8192/sizeof(long)];
17232 static inline __attribute__((always_inline)) int kstack_end(void *addr)
17237 return !(((unsigned long)addr+sizeof(void*)-1) & (8192 -sizeof(void*)));
17241 extern union thread_union init_thread_union;
17242 extern struct task_struct init_task;
17244 extern struct mm_struct init_mm;
17246 extern struct pid_namespace init_pid_ns;
17247 # 1998 "include/linux/sched.h"
17248 extern struct task_struct *find_task_by_vpid(pid_t nr);
17249 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
17250 struct pid_namespace *ns);
17252 extern void __set_special_pids(struct pid *pid);
17255 extern struct user_struct * alloc_uid(struct user_namespace *, uid_t);
17256 static inline __attribute__((always_inline)) struct user_struct *get_uid(struct user_struct *u)
17258 atomic_inc(&u->__count);
17261 extern void free_uid(struct user_struct *);
17262 extern void release_uids(struct user_namespace *ns);
17264 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/current.h" 1
17265 # 2015 "include/linux/sched.h" 2
17267 extern void do_timer(unsigned long ticks);
17269 extern int wake_up_state(struct task_struct *tsk, unsigned int state);
17270 extern int wake_up_process(struct task_struct *tsk);
17271 extern void wake_up_new_task(struct task_struct *tsk,
17272 unsigned long clone_flags);
17276 static inline __attribute__((always_inline)) void kick_process(struct task_struct *tsk) { }
17278 extern void sched_fork(struct task_struct *p, int clone_flags);
17279 extern void sched_dead(struct task_struct *p);
17281 extern void proc_caches_init(void);
17282 extern void flush_signals(struct task_struct *);
17283 extern void __flush_signals(struct task_struct *);
17284 extern void ignore_signals(struct task_struct *);
17285 extern void flush_signal_handlers(struct task_struct *, int force_default);
17286 extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
17288 static inline __attribute__((always_inline)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
17290 unsigned long flags;
17293 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _spin_lock_irqsave(&tsk->sighand->siglock); } while (0);
17294 ret = dequeue_signal(tsk, mask, info);
17295 do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&tsk->sighand->siglock, flags); } while (0);
17300 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
17302 extern void unblock_all_signals(void);
17303 extern void release_task(struct task_struct * p);
17304 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
17305 extern int force_sigsegv(int, struct task_struct *);
17306 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
17307 extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
17308 extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
17309 extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32);
17310 extern int kill_pgrp(struct pid *pid, int sig, int priv);
17311 extern int kill_pid(struct pid *pid, int sig, int priv);
17312 extern int kill_proc_info(int, struct siginfo *, pid_t);
17313 extern int do_notify_parent(struct task_struct *, int);
17314 extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent);
17315 extern void force_sig(int, struct task_struct *);
17316 extern void force_sig_specific(int, struct task_struct *);
17317 extern int send_sig(int, struct task_struct *, int);
17318 extern void zap_other_threads(struct task_struct *p);
17319 extern struct sigqueue *sigqueue_alloc(void);
17320 extern void sigqueue_free(struct sigqueue *);
17321 extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group);
17322 extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
17323 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
17325 static inline __attribute__((always_inline)) int kill_cad_pid(int sig, int priv)
17327 return kill_pid(cad_pid, sig, priv);
17335 static inline __attribute__((always_inline)) int is_si_special(const struct siginfo *info)
17337 return info <= ((struct siginfo *) 2);
17342 static inline __attribute__((always_inline)) int on_sig_stack(unsigned long sp)
17344 return (sp - (current_thread_info()->task)->sas_ss_sp < (current_thread_info()->task)->sas_ss_size);
17347 static inline __attribute__((always_inline)) int sas_ss_flags(unsigned long sp)
17349 return ((current_thread_info()->task)->sas_ss_size == 0 ? 2
17350 : on_sig_stack(sp) ? 1 : 0);
17356 extern struct mm_struct * mm_alloc(void);
17359 extern void __mmdrop(struct mm_struct *);
17360 static inline __attribute__((always_inline)) void mmdrop(struct mm_struct * mm)
17362 if (__builtin_expect(!!((atomic_sub_return(1, (&mm->mm_count)) == 0)), 0))
17367 extern void mmput(struct mm_struct *);
17369 extern struct mm_struct *get_task_mm(struct task_struct *task);
17371 extern void mm_release(struct task_struct *, struct mm_struct *);
17373 extern struct mm_struct *dup_mm(struct task_struct *tsk);
17375 extern int copy_thread(unsigned long, unsigned long, unsigned long,
17376 struct task_struct *, struct pt_regs *);
17377 extern void flush_thread(void);
17378 extern void exit_thread(void);
17380 extern void exit_files(struct task_struct *);
17381 extern void __cleanup_signal(struct signal_struct *);
17382 extern void __cleanup_sighand(struct sighand_struct *);
17384 extern void exit_itimers(struct signal_struct *);
17385 extern void flush_itimer_signals(void);
17387 extern void do_group_exit(int);
17389 extern void daemonize(const char *, ...);
17390 extern int allow_signal(int);
17391 extern int disallow_signal(int);
17393 extern int do_execve(char *, char * *, char * *, struct pt_regs *);
17394 extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int *, int *);
17395 struct task_struct *fork_idle(int);
17397 extern void set_task_comm(struct task_struct *tsk, char *from);
17398 extern char *get_task_comm(char *to, struct task_struct *tsk);
17404 static inline __attribute__((always_inline)) void wait_task_context_switch(struct task_struct *p) {}
17405 static inline __attribute__((always_inline)) unsigned long wait_task_inactive(struct task_struct *p,
17410 # 2167 "include/linux/sched.h"
17411 extern bool current_is_single_threaded(void);
17412 # 2188 "include/linux/sched.h"
17413 static inline __attribute__((always_inline)) int has_group_leader_pid(struct task_struct *p)
17415 return p->pid == p->tgid;
17418 static inline __attribute__((always_inline))
17419 int same_thread_group(struct task_struct *p1, struct task_struct *p2)
17421 return p1->tgid == p2->tgid;
17424 static inline __attribute__((always_inline)) struct task_struct *next_thread(const struct task_struct *p)
17426 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) );});
17430 static inline __attribute__((always_inline)) int thread_group_empty(struct task_struct *p)
17432 return list_empty(&p->thread_group);
17438 static inline __attribute__((always_inline)) int task_detached(struct task_struct *p)
17440 return p->exit_signal == -1;
17442 # 2228 "include/linux/sched.h"
17443 static inline __attribute__((always_inline)) void task_lock(struct task_struct *p)
17445 _spin_lock(&p->alloc_lock);
17448 static inline __attribute__((always_inline)) void task_unlock(struct task_struct *p)
17450 _spin_unlock(&p->alloc_lock);
17453 extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
17454 unsigned long *flags);
17456 static inline __attribute__((always_inline)) void unlock_task_sighand(struct task_struct *tsk,
17457 unsigned long *flags)
17459 do { ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _spin_unlock_irqrestore(&tsk->sighand->siglock, *flags); } while (0);
17467 static inline __attribute__((always_inline)) void setup_thread_stack(struct task_struct *p, struct task_struct *org)
17469 *((struct thread_info *)(p)->stack) = *((struct thread_info *)(org)->stack);
17470 ((struct thread_info *)(p)->stack)->task = p;
17473 static inline __attribute__((always_inline)) unsigned long *end_of_stack(struct task_struct *p)
17475 return (unsigned long *)(((struct thread_info *)(p)->stack) + 1);
17480 static inline __attribute__((always_inline)) int object_is_on_stack(void *obj)
17482 void *stack = (((current_thread_info()->task))->stack);
17484 return (obj >= stack) && (obj < (stack + 8192));
17487 extern void thread_info_cache_init(void);
17490 static inline __attribute__((always_inline)) unsigned long stack_not_used(struct task_struct *p)
17492 unsigned long *n = end_of_stack(p);
17498 return (unsigned long)n - (unsigned long)end_of_stack(p);
17505 static inline __attribute__((always_inline)) void set_tsk_thread_flag(struct task_struct *tsk, int flag)
17507 set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
17510 static inline __attribute__((always_inline)) void clear_tsk_thread_flag(struct task_struct *tsk, int flag)
17512 clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
17515 static inline __attribute__((always_inline)) int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag)
17517 return test_and_set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
17520 static inline __attribute__((always_inline)) int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag)
17522 return test_and_clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
17525 static inline __attribute__((always_inline)) int test_tsk_thread_flag(struct task_struct *tsk, int flag)
17527 return test_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag);
17530 static inline __attribute__((always_inline)) void set_tsk_need_resched(struct task_struct *tsk)
17532 set_tsk_thread_flag(tsk,2);
17535 static inline __attribute__((always_inline)) void clear_tsk_need_resched(struct task_struct *tsk)
17537 clear_tsk_thread_flag(tsk,2);
17540 static inline __attribute__((always_inline)) int test_tsk_need_resched(struct task_struct *tsk)
17542 return __builtin_expect(!!(test_tsk_thread_flag(tsk,2)), 0);
17545 static inline __attribute__((always_inline)) int restart_syscall(void)
17547 set_tsk_thread_flag((current_thread_info()->task), 1);
17551 static inline __attribute__((always_inline)) int signal_pending(struct task_struct *p)
17553 return __builtin_expect(!!(test_tsk_thread_flag(p,1)), 0);
17556 static inline __attribute__((always_inline)) int __fatal_signal_pending(struct task_struct *p)
17558 return __builtin_expect(!!(sigismember(&p->pending.signal, 9)), 0);
17561 static inline __attribute__((always_inline)) int fatal_signal_pending(struct task_struct *p)
17563 return signal_pending(p) && __fatal_signal_pending(p);
17566 static inline __attribute__((always_inline)) int signal_pending_state(long state, struct task_struct *p)
17568 if (!(state & (1 | 128)))
17570 if (!signal_pending(p))
17573 return (state & 1) || __fatal_signal_pending(p);
17576 static inline __attribute__((always_inline)) int need_resched(void)
17578 return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 2)), 0);
17580 # 2373 "include/linux/sched.h"
17581 extern int _cond_resched(void);
17588 extern int __cond_resched_lock(spinlock_t *lock);
17589 # 2393 "include/linux/sched.h"
17590 extern int __cond_resched_softirq(void);
17591 # 2405 "include/linux/sched.h"
17592 static inline __attribute__((always_inline)) int spin_needbreak(spinlock_t *lock)
17604 void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times);
17605 void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times);
17607 static inline __attribute__((always_inline)) void thread_group_cputime_init(struct signal_struct *sig)
17609 sig->cputimer.cputime = (struct task_cputime) { .utime = (0UL), .stime = (0UL), .sum_exec_runtime = 0, };
17610 do { static struct lock_class_key __key; __spin_lock_init((&sig->cputimer.lock), "&sig->cputimer.lock", &__key); } while (0);
17611 sig->cputimer.running = 0;
17614 static inline __attribute__((always_inline)) void thread_group_cputime_free(struct signal_struct *sig)
17624 extern void recalc_sigpending_and_wake(struct task_struct *t);
17625 extern void recalc_sigpending(void);
17627 extern void signal_wake_up(struct task_struct *t, int resume_stopped);
17628 # 2456 "include/linux/sched.h"
17629 static inline __attribute__((always_inline)) unsigned int task_cpu(const struct task_struct *p)
17634 static inline __attribute__((always_inline)) void set_task_cpu(struct task_struct *p, unsigned int cpu)
17640 extern void arch_pick_mmap_layout(struct mm_struct *mm);
17644 __trace_special(void *__tr, void *__data,
17645 unsigned long arg1, unsigned long arg2, unsigned long arg3);
17646 # 2481 "include/linux/sched.h"
17647 extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
17648 extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
17650 extern void normalize_rt_tasks(void);
17654 extern struct task_group init_task_group;
17656 extern struct task_group root_task_group;
17657 extern void set_tg_uid(struct user_struct *user);
17660 extern struct task_group *sched_create_group(struct task_group *parent);
17661 extern void sched_destroy_group(struct task_group *tg);
17662 extern void sched_move_task(struct task_struct *tsk);
17664 extern int sched_group_set_shares(struct task_group *tg, unsigned long shares);
17665 extern unsigned long sched_group_shares(struct task_group *tg);
17666 # 2512 "include/linux/sched.h"
17667 extern int task_can_switch_user(struct user_struct *up,
17668 struct task_struct *tsk);
17669 # 2536 "include/linux/sched.h"
17670 static inline __attribute__((always_inline)) void add_rchar(struct task_struct *tsk, ssize_t amt)
17674 static inline __attribute__((always_inline)) void add_wchar(struct task_struct *tsk, ssize_t amt)
17678 static inline __attribute__((always_inline)) void inc_syscr(struct task_struct *tsk)
17682 static inline __attribute__((always_inline)) void inc_syscw(struct task_struct *tsk)
17685 # 2560 "include/linux/sched.h"
17686 extern void task_oncpu_function_call(struct task_struct *p,
17687 void (*func) (void *info), void *info);
17694 static inline __attribute__((always_inline)) void mm_update_next_owner(struct mm_struct *mm)
17698 static inline __attribute__((always_inline)) void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
17701 # 16 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 2
17705 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/segment.h" 1
17706 # 20 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 2
17707 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sections.h" 1
17708 # 11 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sections.h"
17709 extern unsigned long memory_mtd_start, memory_mtd_end, mtd_size;
17711 extern unsigned long _ramstart, _ramend, _rambase;
17712 extern unsigned long memory_start, memory_end, physical_mem_end;
17719 extern char _stext_l1[], _etext_l1[], _text_l1_lma[], __attribute__((weak)) _text_l1_len[];
17720 extern char _sdata_l1[], _edata_l1[], _sbss_l1[], _ebss_l1[],
17721 _data_l1_lma[], __attribute__((weak)) _data_l1_len[];
17722 extern char _sdata_b_l1[], _edata_b_l1[], _sbss_b_l1[], _ebss_b_l1[],
17723 _data_b_l1_lma[], __attribute__((weak)) _data_b_l1_len[];
17724 extern char _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[],
17725 _sbss_l2[], _ebss_l2[], _l2_lma[], __attribute__((weak)) _l2_len[];
17730 static inline __attribute__((always_inline)) int arch_is_kernel_text(unsigned long addr)
17733 ((0x14000 - 0x4000) &&
17734 addr >= (unsigned long)_stext_l1 &&
17735 addr < (unsigned long)_etext_l1)
17738 addr >= (unsigned long)_stext_l2 &&
17739 addr < (unsigned long)_etext_l2);
17743 static inline __attribute__((always_inline)) int arch_is_kernel_data(unsigned long addr)
17746 ((0x8000 - 0x4000) &&
17747 addr >= (unsigned long)_sdata_l1 &&
17748 addr < (unsigned long)_ebss_l1)
17751 addr >= (unsigned long)_sdata_b_l1 &&
17752 addr < (unsigned long)_ebss_b_l1)
17755 addr >= (unsigned long)_sdata_l2 &&
17756 addr < (unsigned long)_ebss_l2);
17760 # 1 "include/asm-generic/sections.h" 1
17766 extern char _text[], _stext[], _etext[];
17767 extern char _data[], _sdata[], _edata[];
17768 extern char __bss_start[], __bss_stop[];
17769 extern char __init_begin[], __init_end[];
17770 extern char _sinittext[], _einittext[];
17771 extern char _end[];
17772 extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
17773 extern char __kprobes_text_start[], __kprobes_text_end[];
17774 extern char __initdata_begin[], __initdata_end[];
17775 extern char __start_rodata[], __end_rodata[];
17778 extern char __ctors_start[], __ctors_end[];
17779 # 63 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/sections.h" 2
17780 # 21 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h" 2
17785 static inline __attribute__((always_inline)) void set_fs(mm_segment_t fs)
17787 current_thread_info()->addr_limit = fs;
17789 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17790 static inline __attribute__((always_inline)) int is_in_rom(unsigned long addr)
17792 # 47 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17793 if ((addr < _ramstart) || (addr >= _ramend))
17799 # 63 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17800 extern int _access_ok(unsigned long addr, unsigned long size);
17801 # 79 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17802 struct exception_table_entry {
17803 unsigned long insn, fixup;
17805 # 123 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17806 static inline __attribute__((always_inline)) int bad_user_access_length(void)
17808 panic("bad_user_access_length");
17811 # 194 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17812 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
17813 copy_from_user(void *to, const void *from, unsigned long n)
17815 if (_access_ok((unsigned long)(from), (n)))
17816 memcpy(to, from, n);
17822 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
17823 copy_to_user(void *to, const void *from, unsigned long n)
17825 if (_access_ok((unsigned long)(to), (n)))
17826 memcpy(to, from, n);
17836 static inline __attribute__((always_inline)) long __attribute__((warn_unused_result))
17837 strncpy_from_user(char *dst, const char *src, long count)
17840 if (!_access_ok((unsigned long)(src), (1)))
17842 strncpy(dst, src, count);
17843 for (tmp = dst; *tmp && count > 0; tmp++, count--) ;
17844 return (tmp - dst);
17846 # 240 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17847 static inline __attribute__((always_inline)) long __attribute__((warn_unused_result)) strnlen_user(const char *src, long n)
17849 if (!_access_ok((unsigned long)(src), (1)))
17851 return strnlen(src, n) + 1;
17854 static inline __attribute__((always_inline)) long __attribute__((warn_unused_result)) strlen_user(const char *src)
17856 if (!_access_ok((unsigned long)(src), (1)))
17858 return strlen(src) + 1;
17865 static inline __attribute__((always_inline)) unsigned long __attribute__((warn_unused_result))
17866 __clear_user(void *to, unsigned long n)
17868 if (!_access_ok((unsigned long)(to), (n)))
17873 # 276 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/uaccess.h"
17875 BFIN_MEM_ACCESS_CORE = 0,
17876 BFIN_MEM_ACCESS_CORE_ONLY,
17877 BFIN_MEM_ACCESS_DMA,
17878 BFIN_MEM_ACCESS_IDMA,
17879 BFIN_MEM_ACCESS_ITEST,
17887 int bfin_mem_access_type(unsigned long addr, unsigned long size);
17888 # 6 "include/linux/uaccess.h" 2
17889 # 16 "include/linux/uaccess.h"
17890 static inline __attribute__((always_inline)) void pagefault_disable(void)
17892 do { (current_thread_info()->preempt_count) += (1); } while (0);
17897 __asm__ __volatile__("": : :"memory");
17900 static inline __attribute__((always_inline)) void pagefault_enable(void)
17906 __asm__ __volatile__("": : :"memory");
17907 do { (current_thread_info()->preempt_count) -= (1); } while (0);
17911 __asm__ __volatile__("": : :"memory");
17917 static inline __attribute__((always_inline)) unsigned long __copy_from_user_inatomic_nocache(void *to,
17918 const void *from, unsigned long n)
17920 return copy_from_user(to, from, n);
17923 static inline __attribute__((always_inline)) unsigned long __copy_from_user_nocache(void *to,
17924 const void *from, unsigned long n)
17926 return copy_from_user(to, from, n);
17928 # 96 "include/linux/uaccess.h"
17929 extern long probe_kernel_read(void *dst, void *src, size_t size);
17930 # 107 "include/linux/uaccess.h"
17931 extern long probe_kernel_write(void *dst, void *src, size_t size);
17932 # 7 "include/linux/highmem.h" 2
17934 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h" 1
17935 # 15 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
17936 extern void blackfin_icache_flush_range(unsigned long start_address, unsigned long end_address);
17937 extern void blackfin_dcache_flush_range(unsigned long start_address, unsigned long end_address);
17938 extern void blackfin_dcache_invalidate_range(unsigned long start_address, unsigned long end_address);
17939 extern void blackfin_dflush_page(void *page);
17940 extern void blackfin_invalidate_entire_dcache(void);
17941 extern void blackfin_invalidate_entire_icache(void);
17942 # 37 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
17943 static inline __attribute__((always_inline)) void flush_icache_range(unsigned start, unsigned end)
17945 # 56 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
17948 if (end <= physical_mem_end) {
17949 blackfin_icache_flush_range(start, end);
17960 # 91 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/cacheflush.h"
17961 extern unsigned long reserved_mem_dcache_on;
17962 extern unsigned long reserved_mem_icache_on;
17964 static inline __attribute__((always_inline)) int bfin_addr_dcacheable(unsigned long addr)
17967 if (addr < (_ramend - (1024 * 1024)))
17971 if (reserved_mem_dcache_on &&
17972 addr >= _ramend && addr < physical_mem_end)
17982 # 9 "include/linux/highmem.h" 2
17985 static inline __attribute__((always_inline)) void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr)
17991 static inline __attribute__((always_inline)) void flush_kernel_dcache_page(struct page *page)
17996 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/kmap_types.h" 1
17997 # 1 "include/asm-generic/kmap_types.h" 1
17998 # 10 "include/asm-generic/kmap_types.h"
18001 KM_SKB_SUNRPC_DATA,
18002 KM_SKB_DATA_SOFTIRQ,
18022 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/kmap_types.h" 2
18023 # 23 "include/linux/highmem.h" 2
18031 static inline __attribute__((always_inline)) void debug_kmap_atomic(enum km_type type)
18034 # 47 "include/linux/highmem.h"
18035 static inline __attribute__((always_inline)) unsigned int nr_free_highpages(void) { return 0; }
18040 static inline __attribute__((always_inline)) void *kmap(struct page *page)
18042 do { __might_sleep("include/linux/highmem.h", 54, 0); _cond_resched(); } while (0);
18043 return lowmem_page_address(page);
18046 static inline __attribute__((always_inline)) void kunmap(struct page *page)
18050 static inline __attribute__((always_inline)) void *kmap_atomic(struct page *page, enum km_type idx)
18052 pagefault_disable();
18053 return lowmem_page_address(page);
18055 # 80 "include/linux/highmem.h"
18056 static inline __attribute__((always_inline)) void clear_user_highpage(struct page *page, unsigned long vaddr)
18058 void *addr = kmap_atomic(page, KM_USER0);
18059 memset((addr), 0, (1UL << 12));
18060 do { pagefault_enable(); } while (0);
18062 # 103 "include/linux/highmem.h"
18063 static inline __attribute__((always_inline)) struct page *
18064 __alloc_zeroed_user_highpage(gfp_t movableflags,
18065 struct vm_area_struct *vma,
18066 unsigned long vaddr)
18068 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);
18072 clear_user_highpage(page, vaddr);
18076 # 126 "include/linux/highmem.h"
18077 static inline __attribute__((always_inline)) struct page *
18078 alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
18079 unsigned long vaddr)
18081 return __alloc_zeroed_user_highpage((( gfp_t)0x08u), vma, vaddr);
18084 static inline __attribute__((always_inline)) void clear_highpage(struct page *page)
18086 void *kaddr = kmap_atomic(page, KM_USER0);
18087 memset((kaddr), 0, (1UL << 12));
18088 do { pagefault_enable(); } while (0);
18091 static inline __attribute__((always_inline)) void zero_user_segments(struct page *page,
18092 unsigned start1, unsigned end1,
18093 unsigned start2, unsigned end2)
18095 void *kaddr = kmap_atomic(page, KM_USER0);
18097 do { if (__builtin_expect(!!(end1 > (1UL << 12) || end2 > (1UL << 12)), 0)) do { asm volatile( "1: .hword %0\n" " .section __bug_table,\"a\",@progbits\n" "2: .long 1b\n" " .long %1\n" " .short %2\n" " .short %3\n" " .org 2b + %4\n" " .previous" : : "i"(0xefcd), "i"("include/linux/highmem.h"), "i"(146), "i"(0), "i"(sizeof(struct bug_entry))); for (;;); } while (0); } while(0);
18100 memset(kaddr + start1, 0, end1 - start1);
18103 memset(kaddr + start2, 0, end2 - start2);
18105 do { pagefault_enable(); } while (0);
18109 static inline __attribute__((always_inline)) void zero_user_segment(struct page *page,
18110 unsigned start, unsigned end)
18112 zero_user_segments(page, start, end, 0, 0);
18115 static inline __attribute__((always_inline)) void zero_user(struct page *page,
18116 unsigned start, unsigned size)
18118 zero_user_segments(page, start, start + size, 0, 0);
18121 static inline __attribute__((always_inline)) void memclear_highpage_flush(struct page *page,
18122 unsigned int offset, unsigned int size)
18124 zero_user(page, offset, size);
18129 static inline __attribute__((always_inline)) void copy_user_highpage(struct page *to, struct page *from,
18130 unsigned long vaddr, struct vm_area_struct *vma)
18134 vfrom = kmap_atomic(from, KM_USER0);
18135 vto = kmap_atomic(to, KM_USER1);
18136 memcpy((vto), (vfrom), (1UL << 12));
18137 do { pagefault_enable(); } while (0);
18138 do { pagefault_enable(); } while (0);
18143 static inline __attribute__((always_inline)) void copy_highpage(struct page *to, struct page *from)
18147 vfrom = kmap_atomic(from, KM_USER0);
18148 vto = kmap_atomic(to, KM_USER1);
18149 memcpy((vto), (vfrom), (1UL << 12));
18150 do { pagefault_enable(); } while (0);
18151 do { pagefault_enable(); } while (0);
18153 # 11 "include/linux/pagemap.h" 2
18158 # 1 "include/linux/hardirq.h" 1
18159 # 9 "include/linux/hardirq.h"
18160 # 1 "include/linux/ftrace_irq.h" 1
18161 # 9 "include/linux/ftrace_irq.h"
18162 static inline __attribute__((always_inline)) void ftrace_nmi_enter(void) { }
18163 static inline __attribute__((always_inline)) void ftrace_nmi_exit(void) { }
18164 # 10 "include/linux/hardirq.h" 2
18165 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h" 1
18166 # 12 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h"
18167 extern void ack_bad_irq(unsigned int irq);
18173 # 1 "include/asm-generic/hardirq.h" 1
18179 # 1 "include/linux/irq.h" 1
18180 # 21 "include/linux/irq.h"
18181 # 1 "include/linux/irqreturn.h" 1
18182 # 10 "include/linux/irqreturn.h"
18189 typedef enum irqreturn irqreturn_t;
18190 # 22 "include/linux/irq.h" 2
18191 # 1 "include/linux/irqnr.h" 1
18192 # 26 "include/linux/irqnr.h"
18193 extern int nr_irqs;
18194 extern struct irq_desc *irq_to_desc(unsigned int irq);
18195 # 23 "include/linux/irq.h" 2
18202 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq_regs.h" 1
18203 # 1 "include/asm-generic/irq_regs.h" 1
18204 # 21 "include/asm-generic/irq_regs.h"
18205 extern __attribute__((section(".discard"), unused)) char __pcpu_scope___irq_regs; extern __attribute__((section(".data" ""))) __typeof__(struct pt_regs *) per_cpu____irq_regs;
18207 static inline __attribute__((always_inline)) struct pt_regs *get_irq_regs(void)
18209 return per_cpu____irq_regs;
18212 static inline __attribute__((always_inline)) struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
18214 struct pt_regs *old_regs, **pp_regs = &per_cpu____irq_regs;
18216 old_regs = *pp_regs;
18217 *pp_regs = new_regs;
18220 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/irq_regs.h" 2
18221 # 30 "include/linux/irq.h" 2
18224 typedef void (*irq_flow_handler_t)(unsigned int irq,
18225 struct irq_desc *desc);
18226 # 83 "include/linux/irq.h"
18227 struct proc_dir_entry;
18229 # 111 "include/linux/irq.h"
18232 unsigned int (*startup)(unsigned int irq);
18233 void (*shutdown)(unsigned int irq);
18234 void (*enable)(unsigned int irq);
18235 void (*disable)(unsigned int irq);
18237 void (*ack)(unsigned int irq);
18238 void (*mask)(unsigned int irq);
18239 void (*mask_ack)(unsigned int irq);
18240 void (*unmask)(unsigned int irq);
18241 void (*eoi)(unsigned int irq);
18243 void (*end)(unsigned int irq);
18244 int (*set_affinity)(unsigned int irq,
18245 const struct cpumask *dest);
18246 int (*retrigger)(unsigned int irq);
18247 int (*set_type)(unsigned int irq, unsigned int flow_type);
18248 int (*set_wake)(unsigned int irq, unsigned int on);
18250 void (*bus_lock)(unsigned int irq);
18251 void (*bus_sync_unlock)(unsigned int irq);
18252 # 142 "include/linux/irq.h"
18253 const char *typename;
18256 struct timer_rand_state;
18257 struct irq_2_iommu;
18258 # 175 "include/linux/irq.h"
18261 struct timer_rand_state *timer_rand_state;
18262 unsigned int *kstat_irqs;
18266 irq_flow_handler_t handle_irq;
18267 struct irq_chip *chip;
18268 struct msi_desc *msi_desc;
18269 void *handler_data;
18271 struct irqaction *action;
18272 unsigned int status;
18274 unsigned int depth;
18275 unsigned int wake_depth;
18276 unsigned int irq_count;
18277 unsigned long last_unhandled;
18278 unsigned int irqs_unhandled;
18287 atomic_t threads_active;
18288 wait_queue_head_t wait_for_threads;
18290 struct proc_dir_entry *dir;
18295 extern void arch_init_copy_chip_data(struct irq_desc *old_desc,
18296 struct irq_desc *desc, int node);
18297 extern void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc);
18300 extern struct irq_desc irq_desc[(48 +1)];
18306 static inline __attribute__((always_inline)) struct irq_desc *move_irq_desc(struct irq_desc *desc, int node)
18312 extern struct irq_desc *irq_to_desc_alloc_node(unsigned int irq, int node);
18317 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hw_irq.h" 1
18318 # 1 "include/asm-generic/hw_irq.h" 1
18319 # 1 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hw_irq.h" 2
18320 # 234 "include/linux/irq.h" 2
18322 extern int setup_irq(unsigned int irq, struct irqaction *new);
18323 extern void remove_irq(unsigned int irq, struct irqaction *act);
18324 # 270 "include/linux/irq.h"
18325 extern int no_irq_affinity;
18327 static inline __attribute__((always_inline)) int irq_balancing_disabled(unsigned int irq)
18329 struct irq_desc *desc;
18331 desc = irq_to_desc(irq);
18332 return desc->status & 0x00400000;
18336 extern irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action);
18342 extern void handle_level_irq(unsigned int irq, struct irq_desc *desc);
18343 extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
18344 extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc);
18345 extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc);
18346 extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
18347 extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc);
18348 extern void handle_nested_irq(unsigned int irq);
18349 # 308 "include/linux/irq.h"
18350 static inline __attribute__((always_inline)) void generic_handle_irq_desc(unsigned int irq, struct irq_desc *desc)
18353 desc->handle_irq(irq, desc);
18362 static inline __attribute__((always_inline)) void generic_handle_irq(unsigned int irq)
18364 generic_handle_irq_desc(irq, irq_to_desc(irq));
18368 extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
18369 irqreturn_t action_ret);
18372 void check_irq_resend(struct irq_desc *desc, unsigned int irq);
18375 extern int noirqdebug_setup(char *str);
18378 extern int can_request_irq(unsigned int irq, unsigned long irqflags);
18381 extern struct irq_chip no_irq_chip;
18382 extern struct irq_chip dummy_irq_chip;
18385 set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
18386 irq_flow_handler_t handle);
18388 set_irq_chip_and_handler_name(unsigned int irq, struct irq_chip *chip,
18389 irq_flow_handler_t handle, const char *name);
18392 __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
18396 static inline __attribute__((always_inline)) void __set_irq_handler_unlocked(int irq,
18397 irq_flow_handler_t handler)
18399 struct irq_desc *desc;
18401 desc = irq_to_desc(irq);
18402 desc->handle_irq = handler;
18408 static inline __attribute__((always_inline)) void
18409 set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
18411 __set_irq_handler(irq, handle, 0, ((void *)0));
18419 static inline __attribute__((always_inline)) void
18420 set_irq_chained_handler(unsigned int irq,
18421 irq_flow_handler_t handle)
18423 __set_irq_handler(irq, handle, 1, ((void *)0));
18426 extern void set_irq_nested_thread(unsigned int irq, int nest);
18428 extern void set_irq_noprobe(unsigned int irq);
18429 extern void set_irq_probe(unsigned int irq);
18432 extern unsigned int create_irq_nr(unsigned int irq_want, int node);
18433 extern int create_irq(void);
18434 extern void destroy_irq(unsigned int irq);
18437 static inline __attribute__((always_inline)) int irq_has_action(unsigned int irq)
18439 struct irq_desc *desc = irq_to_desc(irq);
18440 return desc->action != ((void *)0);
18444 extern void dynamic_irq_init(unsigned int irq);
18445 extern void dynamic_irq_cleanup(unsigned int irq);
18448 extern int set_irq_chip(unsigned int irq, struct irq_chip *chip);
18449 extern int set_irq_data(unsigned int irq, void *data);
18450 extern int set_irq_chip_data(unsigned int irq, void *data);
18451 extern int set_irq_type(unsigned int irq, unsigned int type);
18452 extern int set_irq_msi(unsigned int irq, struct msi_desc *entry);
18453 # 500 "include/linux/irq.h"
18454 static inline __attribute__((always_inline)) bool alloc_desc_masks(struct irq_desc *desc, int node,
18460 static inline __attribute__((always_inline)) void init_desc_masks(struct irq_desc *desc)
18464 static inline __attribute__((always_inline)) void init_copy_desc_masks(struct irq_desc *old_desc,
18465 struct irq_desc *new_desc)
18469 static inline __attribute__((always_inline)) void free_desc_masks(struct irq_desc *old_desc,
18470 struct irq_desc *new_desc)
18473 # 7 "include/asm-generic/hardirq.h" 2
18476 unsigned int __softirq_pending;
18479 # 1 "include/linux/irq_cpustat.h" 1
18480 # 20 "include/linux/irq_cpustat.h"
18481 extern irq_cpustat_t irq_stat[];
18482 # 13 "include/asm-generic/hardirq.h" 2
18483 # 19 "/usr/local/src/blackfin/git/linux-kernel/arch/blackfin/include/asm/hardirq.h" 2
18484 # 11 "include/linux/hardirq.h" 2
18485 # 128 "include/linux/hardirq.h"
18486 extern void synchronize_irq(unsigned int irq);
18491 struct task_struct;
18494 static inline __attribute__((always_inline)) void account_system_vtime(struct task_struct *tsk)
18500 extern void rcu_irq_enter(void);
18501 extern void rcu_irq_exit(void);
18502 extern void rcu_nmi_enter(void);
18503 extern void rcu_nmi_exit(void);
18504 # 169 "include/linux/hardirq.h"
18505 extern void irq_enter(void);
18506 # 184 "include/linux/hardirq.h"
18507 extern void irq_exit(void);
18508 # 16 "include/linux/pagemap.h" 2
18514 enum mapping_flags {
18516 AS_ENOSPC = 22 + 1,
18517 AS_MM_ALL_LOCKS = 22 + 2,
18518 AS_UNEVICTABLE = 22 + 3,
18521 static inline __attribute__((always_inline)) void mapping_set_error(struct address_space *mapping, int error)
18523 if (__builtin_expect(!!(error), 0)) {
18525 set_bit(AS_ENOSPC, &mapping->flags);
18527 set_bit(AS_EIO, &mapping->flags);
18531 static inline __attribute__((always_inline)) void mapping_set_unevictable(struct address_space *mapping)
18533 set_bit(AS_UNEVICTABLE, &mapping->flags);
18536 static inline __attribute__((always_inline)) void mapping_clear_unevictable(struct address_space *mapping)
18538 clear_bit(AS_UNEVICTABLE, &mapping->flags);
18541 static inline __attribute__((always_inline)) int mapping_unevictable(struct address_space *mapping)
18543 if (__builtin_expect(!!(mapping), 1))
18544 return test_bit(AS_UNEVICTABLE, &mapping->flags);
18548 static inline __attribute__((always_inline)) gfp_t mapping_gfp_mask(struct address_space * mapping)
18550 return ( gfp_t)mapping->flags & (( gfp_t)((1 << 22) - 1));
18557 static inline __attribute__((always_inline)) void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
18559 m->flags = (m->flags & ~( unsigned long)(( gfp_t)((1 << 22) - 1))) |
18560 ( unsigned long)mask;
18562 # 85 "include/linux/pagemap.h"
18563 void release_pages(struct page **pages, int nr, int cold);
18564 # 131 "include/linux/pagemap.h"
18565 static inline __attribute__((always_inline)) int page_cache_get_speculative(struct page *page)
18568 # 148 "include/linux/pagemap.h"
18570 atomic_inc(&page->_count);
18571 # 161 "include/linux/pagemap.h"
18580 static inline __attribute__((always_inline)) int page_cache_add_speculative(struct page *page, int count)
18589 atomic_add(count, &page->_count);
18600 static inline __attribute__((always_inline)) int page_freeze_refs(struct page *page, int count)
18602 return __builtin_expect(!!((((__typeof__(*((&((&page->_count)->counter)))))__cmpxchg_local_generic(((&((&page->_count)->counter))), (unsigned long)(((count))), (unsigned long)(((0))), sizeof(*((&((&page->_count)->counter))))))) == count), 1);
18605 static inline __attribute__((always_inline)) void page_unfreeze_refs(struct page *page, int count)
18610 (((&page->_count)->counter) = (count));
18616 static inline __attribute__((always_inline)) struct page *__page_cache_alloc(gfp_t gfp)
18618 return alloc_pages_node((((void)(0),0)), gfp, 0);
18622 static inline __attribute__((always_inline)) struct page *page_cache_alloc(struct address_space *x)
18624 return __page_cache_alloc(mapping_gfp_mask(x));
18627 static inline __attribute__((always_inline)) struct page *page_cache_alloc_cold(struct address_space *x)
18629 return __page_cache_alloc(mapping_gfp_mask(x)|(( gfp_t)0x100u));
18632 typedef int filler_t(void *, struct page *);
18634 extern struct page * find_get_page(struct address_space *mapping,
18635 unsigned long index);
18636 extern struct page * find_lock_page(struct address_space *mapping,
18637 unsigned long index);
18638 extern struct page * find_or_create_page(struct address_space *mapping,
18639 unsigned long index, gfp_t gfp_mask);
18640 unsigned find_get_pages(struct address_space *mapping, unsigned long start,
18641 unsigned int nr_pages, struct page **pages);
18642 unsigned find_get_pages_contig(struct address_space *mapping, unsigned long start,
18643 unsigned int nr_pages, struct page **pages);
18644 unsigned find_get_pages_tag(struct address_space *mapping, unsigned long *index,
18645 int tag, unsigned int nr_pages, struct page **pages);
18647 struct page *grab_cache_page_write_begin(struct address_space *mapping,
18648 unsigned long index, unsigned flags);
18653 static inline __attribute__((always_inline)) struct page *grab_cache_page(struct address_space *mapping,
18654 unsigned long index)
18656 return find_or_create_page(mapping, index, mapping_gfp_mask(mapping));
18659 extern struct page * grab_cache_page_nowait(struct address_space *mapping,
18660 unsigned long index);
18661 extern struct page * read_cache_page_async(struct address_space *mapping,
18662 unsigned long index, filler_t *filler,
18664 extern struct page * read_cache_page(struct address_space *mapping,
18665 unsigned long index, filler_t *filler,
18667 extern int read_cache_pages(struct address_space *mapping,
18668 struct list_head *pages, filler_t *filler, void *data);
18670 static inline __attribute__((always_inline)) struct page *read_mapping_page_async(
18671 struct address_space *mapping,
18672 unsigned long index, void *data)
18674 filler_t *filler = (filler_t *)mapping->a_ops->readpage;
18675 return read_cache_page_async(mapping, index, filler, data);
18678 static inline __attribute__((always_inline)) struct page *read_mapping_page(struct address_space *mapping,
18679 unsigned long index, void *data)
18681 filler_t *filler = (filler_t *)mapping->a_ops->readpage;
18682 return read_cache_page(mapping, index, filler, data);
18688 static inline __attribute__((always_inline)) loff_t page_offset(struct page *page)
18690 return ((loff_t)page->index) << 12;
18693 static inline __attribute__((always_inline)) unsigned long linear_page_index(struct vm_area_struct *vma,
18694 unsigned long address)
18696 unsigned long pgoff = (address - vma->vm_start) >> 12;
18697 pgoff += vma->vm_pgoff;
18698 return pgoff >> (12 - 12);
18701 extern void __lock_page(struct page *page);
18702 extern int __lock_page_killable(struct page *page);
18703 extern void __lock_page_nosync(struct page *page);
18704 extern void unlock_page(struct page *page);
18706 static inline __attribute__((always_inline)) void __set_page_locked(struct page *page)
18708 __set_bit(PG_locked, &page->flags);
18711 static inline __attribute__((always_inline)) void __clear_page_locked(struct page *page)
18713 __clear_bit(PG_locked, &page->flags);
18716 static inline __attribute__((always_inline)) int trylock_page(struct page *page)
18718 return (__builtin_expect(!!(!test_and_set_bit(PG_locked, &page->flags)), 1));
18724 static inline __attribute__((always_inline)) void lock_page(struct page *page)
18726 do { __might_sleep("include/linux/pagemap.h", 315, 0); _cond_resched(); } while (0);
18727 if (!trylock_page(page))
18736 static inline __attribute__((always_inline)) int lock_page_killable(struct page *page)
18738 do { __might_sleep("include/linux/pagemap.h", 327, 0); _cond_resched(); } while (0);
18739 if (!trylock_page(page))
18740 return __lock_page_killable(page);
18748 static inline __attribute__((always_inline)) void lock_page_nosync(struct page *page)
18750 do { __might_sleep("include/linux/pagemap.h", 339, 0); _cond_resched(); } while (0);
18751 if (!trylock_page(page))
18752 __lock_page_nosync(page);
18759 extern void wait_on_page_bit(struct page *page, int bit_nr);
18760 # 357 "include/linux/pagemap.h"
18761 static inline __attribute__((always_inline)) void wait_on_page_locked(struct page *page)
18763 if (PageLocked(page))
18764 wait_on_page_bit(page, PG_locked);
18770 static inline __attribute__((always_inline)) void wait_on_page_writeback(struct page *page)
18772 if (PageWriteback(page))
18773 wait_on_page_bit(page, PG_writeback);
18776 extern void end_page_writeback(struct page *page);
18781 extern void add_page_wait_queue(struct page *page, wait_queue_t *waiter);
18789 static inline __attribute__((always_inline)) int fault_in_pages_writeable(char *uaddr, int size)
18793 if (__builtin_expect(!!(size == 0), 0))
18800 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", 396, __func__), bad_user_access_length(), (-14)); break; } } _err; });
18802 char *end = uaddr + size - 1;
18808 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
18809 ((unsigned long)end & (~((1UL << 12)-1))))
18810 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", 406, __func__), bad_user_access_length(), (-14)); break; } } _err; });
18815 static inline __attribute__((always_inline)) int fault_in_pages_readable(const char *uaddr, int size)
18820 if (__builtin_expect(!!(size == 0), 0))
18823 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(struct { int:-!!(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; });
18825 const char *end = uaddr + size - 1;
18827 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
18828 ((unsigned long)end & (~((1UL << 12)-1))))
18829 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(struct { int:-!!(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; });
18834 int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
18835 unsigned long index, gfp_t gfp_mask);
18836 int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
18837 unsigned long index, gfp_t gfp_mask);
18838 extern void remove_from_page_cache(struct page *page);
18839 extern void __remove_from_page_cache(struct page *page);
18845 static inline __attribute__((always_inline)) int add_to_page_cache(struct page *page,
18846 struct address_space *mapping, unsigned long offset, gfp_t gfp_mask)
18850 __set_page_locked(page);
18851 error = add_to_page_cache_locked(page, mapping, offset, gfp_mask);
18852 if (__builtin_expect(!!(error), 0))
18853 __clear_page_locked(page);
18856 # 14 "include/linux/buffer_head.h" 2
18862 enum bh_state_bits {
18891 struct buffer_head;
18892 struct address_space;
18893 typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
18894 # 61 "include/linux/buffer_head.h"
18895 struct buffer_head {
18896 unsigned long b_state;
18897 struct buffer_head *b_this_page;
18898 struct page *b_page;
18900 sector_t b_blocknr;
18904 struct block_device *b_bdev;
18905 bh_end_io_t *b_end_io;
18907 struct list_head b_assoc_buffers;
18908 struct address_space *b_assoc_map;
18912 # 115 "include/linux/buffer_head.h"
18913 static inline __attribute__((always_inline)) void set_buffer_uptodate(struct buffer_head *bh) { set_bit(BH_Uptodate, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_uptodate(struct buffer_head *bh) { clear_bit(BH_Uptodate, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_uptodate(const struct buffer_head *bh) { return test_bit(BH_Uptodate, &(bh)->b_state); }
18914 static inline __attribute__((always_inline)) void set_buffer_dirty(struct buffer_head *bh) { set_bit(BH_Dirty, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_dirty(struct buffer_head *bh) { clear_bit(BH_Dirty, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_dirty(const struct buffer_head *bh) { return test_bit(BH_Dirty, &(bh)->b_state); }
18915 static inline __attribute__((always_inline)) int test_set_buffer_dirty(struct buffer_head *bh) { return test_and_set_bit(BH_Dirty, &(bh)->b_state); } static inline __attribute__((always_inline)) int test_clear_buffer_dirty(struct buffer_head *bh) { return test_and_clear_bit(BH_Dirty, &(bh)->b_state); }
18916 static inline __attribute__((always_inline)) void set_buffer_locked(struct buffer_head *bh) { set_bit(BH_Lock, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_locked(struct buffer_head *bh) { clear_bit(BH_Lock, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_locked(const struct buffer_head *bh) { return test_bit(BH_Lock, &(bh)->b_state); }
18917 static inline __attribute__((always_inline)) void set_buffer_req(struct buffer_head *bh) { set_bit(BH_Req, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_req(struct buffer_head *bh) { clear_bit(BH_Req, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_req(const struct buffer_head *bh) { return test_bit(BH_Req, &(bh)->b_state); }
18918 static inline __attribute__((always_inline)) int test_set_buffer_req(struct buffer_head *bh) { return test_and_set_bit(BH_Req, &(bh)->b_state); } static inline __attribute__((always_inline)) int test_clear_buffer_req(struct buffer_head *bh) { return test_and_clear_bit(BH_Req, &(bh)->b_state); }
18919 static inline __attribute__((always_inline)) void set_buffer_mapped(struct buffer_head *bh) { set_bit(BH_Mapped, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_mapped(struct buffer_head *bh) { clear_bit(BH_Mapped, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_mapped(const struct buffer_head *bh) { return test_bit(BH_Mapped, &(bh)->b_state); }
18920 static inline __attribute__((always_inline)) void set_buffer_new(struct buffer_head *bh) { set_bit(BH_New, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_new(struct buffer_head *bh) { clear_bit(BH_New, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_new(const struct buffer_head *bh) { return test_bit(BH_New, &(bh)->b_state); }
18921 static inline __attribute__((always_inline)) void set_buffer_async_read(struct buffer_head *bh) { set_bit(BH_Async_Read, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_async_read(struct buffer_head *bh) { clear_bit(BH_Async_Read, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_async_read(const struct buffer_head *bh) { return test_bit(BH_Async_Read, &(bh)->b_state); }
18922 static inline __attribute__((always_inline)) void set_buffer_async_write(struct buffer_head *bh) { set_bit(BH_Async_Write, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_async_write(struct buffer_head *bh) { clear_bit(BH_Async_Write, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_async_write(const struct buffer_head *bh) { return test_bit(BH_Async_Write, &(bh)->b_state); }
18923 static inline __attribute__((always_inline)) void set_buffer_delay(struct buffer_head *bh) { set_bit(BH_Delay, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_delay(struct buffer_head *bh) { clear_bit(BH_Delay, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_delay(const struct buffer_head *bh) { return test_bit(BH_Delay, &(bh)->b_state); }
18924 static inline __attribute__((always_inline)) void set_buffer_boundary(struct buffer_head *bh) { set_bit(BH_Boundary, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_boundary(struct buffer_head *bh) { clear_bit(BH_Boundary, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_boundary(const struct buffer_head *bh) { return test_bit(BH_Boundary, &(bh)->b_state); }
18925 static inline __attribute__((always_inline)) void set_buffer_write_io_error(struct buffer_head *bh) { set_bit(BH_Write_EIO, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_write_io_error(struct buffer_head *bh) { clear_bit(BH_Write_EIO, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_write_io_error(const struct buffer_head *bh) { return test_bit(BH_Write_EIO, &(bh)->b_state); }
18926 static inline __attribute__((always_inline)) void set_buffer_ordered(struct buffer_head *bh) { set_bit(BH_Ordered, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_ordered(struct buffer_head *bh) { clear_bit(BH_Ordered, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_ordered(const struct buffer_head *bh) { return test_bit(BH_Ordered, &(bh)->b_state); }
18927 static inline __attribute__((always_inline)) void set_buffer_eopnotsupp(struct buffer_head *bh) { set_bit(BH_Eopnotsupp, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_eopnotsupp(struct buffer_head *bh) { clear_bit(BH_Eopnotsupp, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_eopnotsupp(const struct buffer_head *bh) { return test_bit(BH_Eopnotsupp, &(bh)->b_state); }
18928 static inline __attribute__((always_inline)) void set_buffer_unwritten(struct buffer_head *bh) { set_bit(BH_Unwritten, &(bh)->b_state); } static inline __attribute__((always_inline)) void clear_buffer_unwritten(struct buffer_head *bh) { clear_bit(BH_Unwritten, &(bh)->b_state); } static inline __attribute__((always_inline)) int buffer_unwritten(const struct buffer_head *bh) { return test_bit(BH_Unwritten, &(bh)->b_state); }
18929 # 147 "include/linux/buffer_head.h"
18930 void mark_buffer_dirty(struct buffer_head *bh);
18931 void init_buffer(struct buffer_head *, bh_end_io_t *, void *);
18932 void set_bh_page(struct buffer_head *bh,
18933 struct page *page, unsigned long offset);
18934 int try_to_free_buffers(struct page *);
18935 struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size,
18937 void create_empty_buffers(struct page *, unsigned long,
18938 unsigned long b_state);
18939 void end_buffer_read_sync(struct buffer_head *bh, int uptodate);
18940 void end_buffer_write_sync(struct buffer_head *bh, int uptodate);
18941 void end_buffer_async_write(struct buffer_head *bh, int uptodate);
18944 void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode);
18945 int inode_has_buffers(struct inode *);
18946 void invalidate_inode_buffers(struct inode *);
18947 int remove_inode_buffers(struct inode *inode);
18948 int sync_mapping_buffers(struct address_space *mapping);
18949 void unmap_underlying_metadata(struct block_device *bdev, sector_t block);
18951 void mark_buffer_async_write(struct buffer_head *bh);
18952 void __wait_on_buffer(struct buffer_head *);
18953 wait_queue_head_t *bh_waitq_head(struct buffer_head *bh);
18954 struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block,
18956 struct buffer_head *__getblk(struct block_device *bdev, sector_t block,
18958 void __brelse(struct buffer_head *);
18959 void __bforget(struct buffer_head *);
18960 void __breadahead(struct block_device *, sector_t block, unsigned int size);
18961 struct buffer_head *__bread(struct block_device *, sector_t block, unsigned size);
18962 void invalidate_bh_lrus(void);
18963 struct buffer_head *alloc_buffer_head(gfp_t gfp_flags);
18964 void free_buffer_head(struct buffer_head * bh);
18965 void unlock_buffer(struct buffer_head *bh);
18966 void __lock_buffer(struct buffer_head *bh);
18967 void ll_rw_block(int, int, struct buffer_head * bh[]);
18968 int sync_dirty_buffer(struct buffer_head *bh);
18969 int submit_bh(int, struct buffer_head *);
18970 void write_boundary_block(struct block_device *bdev,
18971 sector_t bblock, unsigned blocksize);
18972 int bh_uptodate_or_lock(struct buffer_head *bh);
18973 int bh_submit_read(struct buffer_head *bh);
18975 extern int buffer_heads_over_limit;
18981 void block_invalidatepage(struct page *page, unsigned long offset);
18982 int block_write_full_page(struct page *page, get_block_t *get_block,
18983 struct writeback_control *wbc);
18984 int block_write_full_page_endio(struct page *page, get_block_t *get_block,
18985 struct writeback_control *wbc, bh_end_io_t *handler);
18986 int block_read_full_page(struct page*, get_block_t*);
18987 int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc,
18988 unsigned long from);
18989 int block_write_begin(struct file *, struct address_space *,
18990 loff_t, unsigned, unsigned,
18991 struct page **, void **, get_block_t*);
18992 int block_write_end(struct file *, struct address_space *,
18993 loff_t, unsigned, unsigned,
18994 struct page *, void *);
18995 int generic_write_end(struct file *, struct address_space *,
18996 loff_t, unsigned, unsigned,
18997 struct page *, void *);
18998 void page_zero_new_buffers(struct page *page, unsigned from, unsigned to);
18999 int block_prepare_write(struct page*, unsigned, unsigned, get_block_t*);
19000 int cont_write_begin(struct file *, struct address_space *, loff_t,
19001 unsigned, unsigned, struct page **, void **,
19002 get_block_t *, loff_t *);
19003 int generic_cont_expand_simple(struct inode *inode, loff_t size);
19004 int block_commit_write(struct page *page, unsigned from, unsigned to);
19005 int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
19006 get_block_t get_block);
19007 void block_sync_page(struct page *);
19008 sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *);
19009 int block_truncate_page(struct address_space *, loff_t, get_block_t *);
19010 int file_fsync(struct file *, struct dentry *, int);
19011 int nobh_write_begin(struct file *, struct address_space *,
19012 loff_t, unsigned, unsigned,
19013 struct page **, void **, get_block_t*);
19014 int nobh_write_end(struct file *, struct address_space *,
19015 loff_t, unsigned, unsigned,
19016 struct page *, void *);
19017 int nobh_truncate_page(struct address_space *, loff_t, get_block_t *);
19018 int nobh_writepage(struct page *page, get_block_t *get_block,
19019 struct writeback_control *wbc);
19021 void buffer_init(void);
19027 static inline __attribute__((always_inline)) void attach_page_buffers(struct page *page,
19028 struct buffer_head *head)
19031 SetPagePrivate(page);
19032 ((page)->private = ((unsigned long)head));
19035 static inline __attribute__((always_inline)) void get_bh(struct buffer_head *bh)
19037 atomic_inc(&bh->b_count);
19040 static inline __attribute__((always_inline)) void put_bh(struct buffer_head *bh)
19042 __asm__ __volatile__("": : :"memory");
19043 atomic_dec(&bh->b_count);
19046 static inline __attribute__((always_inline)) void brelse(struct buffer_head *bh)
19052 static inline __attribute__((always_inline)) void bforget(struct buffer_head *bh)
19058 static inline __attribute__((always_inline)) struct buffer_head *
19059 sb_bread(struct super_block *sb, sector_t block)
19061 return __bread(sb->s_bdev, block, sb->s_blocksize);
19064 static inline __attribute__((always_inline)) void
19065 sb_breadahead(struct super_block *sb, sector_t block)
19067 __breadahead(sb->s_bdev, block, sb->s_blocksize);
19070 static inline __attribute__((always_inline)) struct buffer_head *
19071 sb_getblk(struct super_block *sb, sector_t block)
19073 return __getblk(sb->s_bdev, block, sb->s_blocksize);
19076 static inline __attribute__((always_inline)) struct buffer_head *
19077 sb_find_get_block(struct super_block *sb, sector_t block)
19079 return __find_get_block(sb->s_bdev, block, sb->s_blocksize);
19082 static inline __attribute__((always_inline)) void
19083 map_bh(struct buffer_head *bh, struct super_block *sb, sector_t block)
19085 set_buffer_mapped(bh);
19086 bh->b_bdev = sb->s_bdev;
19087 bh->b_blocknr = block;
19088 bh->b_size = sb->s_blocksize;
19096 static inline __attribute__((always_inline)) void wait_on_buffer(struct buffer_head *bh)
19098 do { __might_sleep("include/linux/buffer_head.h", 315, 0); _cond_resched(); } while (0);
19099 if (buffer_locked(bh) || ((&bh->b_count)->counter) == 0)
19100 __wait_on_buffer(bh);
19103 static inline __attribute__((always_inline)) int trylock_buffer(struct buffer_head *bh)
19105 return __builtin_expect(!!(!test_and_set_bit(BH_Lock, &bh->b_state)), 1);
19108 static inline __attribute__((always_inline)) void lock_buffer(struct buffer_head *bh)
19110 do { __might_sleep("include/linux/buffer_head.h", 327, 0); _cond_resched(); } while (0);
19111 if (!trylock_buffer(bh))
19115 extern int __set_page_dirty_buffers(struct page *page);
19116 # 27 "fs/sysv/super.c" 2
19117 # 1 "fs/sysv/sysv.h" 1
19123 typedef __u16 __fs16;
19124 typedef __u32 __fs32;
19126 # 1 "include/linux/sysv_fs.h" 1
19127 # 13 "include/linux/sysv_fs.h"
19128 typedef __fs16 sysv_ino_t;
19133 typedef __fs32 sysv_zone_t;
19134 # 28 "include/linux/sysv_fs.h"
19135 struct xenix_super_block {
19137 __fs32 s_fsize __attribute__((packed, aligned(2)));
19140 sysv_zone_t s_free[100];
19143 sysv_ino_t s_inode[100];
19149 __fs32 s_time __attribute__((packed, aligned(2)));
19150 __fs32 s_tfree __attribute__((packed, aligned(2)));
19163 # 66 "include/linux/sysv_fs.h"
19164 struct sysv4_super_block {
19171 sysv_zone_t s_free[50];
19175 sysv_ino_t s_inode[100];
19196 struct sysv2_super_block {
19198 __fs32 s_fsize __attribute__((packed, aligned(2)));
19201 sysv_zone_t s_free[50];
19204 sysv_ino_t s_inode[100];
19210 __fs32 s_time __attribute__((packed, aligned(2)));
19212 __fs32 s_tfree __attribute__((packed, aligned(2)));
19226 struct v7_super_block {
19228 __fs32 s_fsize __attribute__((packed, aligned(2)));
19231 sysv_zone_t s_free[50];
19234 sysv_ino_t s_inode[100];
19240 __fs32 s_time __attribute__((packed, aligned(2)));
19242 __fs32 s_tfree __attribute__((packed, aligned(2)));
19253 struct coh_super_block {
19255 __fs32 s_fsize __attribute__((packed, aligned(2)));
19258 sysv_zone_t s_free[64] __attribute__((packed, aligned(2)));
19261 sysv_ino_t s_inode[100];
19267 __fs32 s_time __attribute__((packed, aligned(2)));
19268 __fs32 s_tfree __attribute__((packed, aligned(2)));
19270 __fs16 s_interleave_m;
19271 __fs16 s_interleave_n;
19278 struct sysv_inode {
19284 u8 i_data[3*(10+1+1+1)];
19293 struct sysv_dir_entry {
19297 # 10 "fs/sysv/sysv.h" 2
19298 # 21 "fs/sysv/sysv.h"
19299 struct sysv_sb_info {
19300 struct super_block *s_sb;
19305 nlink_t s_link_max;
19306 unsigned int s_inodes_per_block;
19307 unsigned int s_inodes_per_block_1;
19308 unsigned int s_inodes_per_block_bits;
19309 unsigned int s_ind_per_block;
19310 unsigned int s_ind_per_block_bits;
19311 unsigned int s_ind_per_block_2;
19312 unsigned int s_toobig_block;
19313 unsigned int s_block_base;
19314 unsigned short s_fic_size;
19315 unsigned short s_flc_size;
19317 struct buffer_head *s_bh1;
19318 struct buffer_head *s_bh2;
19323 __fs16 *s_sb_fic_count;
19324 sysv_ino_t *s_sb_fic_inodes;
19325 __fs16 *s_sb_total_free_inodes;
19326 __fs16 *s_bcache_count;
19327 sysv_zone_t *s_bcache;
19328 __fs32 *s_free_blocks;
19330 __fs32 *s_sb_state;
19333 u32 s_firstinodezone;
19334 u32 s_firstdatazone;
19345 struct sysv_inode_info {
19347 u32 i_dir_start_lookup;
19348 struct inode vfs_inode;
19352 static inline __attribute__((always_inline)) struct sysv_inode_info *SYSV_I(struct inode *inode)
19354 return ({ const typeof( ((struct sysv_inode_info *)0)->vfs_inode ) *__mptr = (inode); (struct sysv_inode_info *)( (char *)__mptr - __builtin_offsetof(struct sysv_inode_info,vfs_inode) );});
19357 static inline __attribute__((always_inline)) struct sysv_sb_info *SYSV_SB(struct super_block *sb)
19359 return sb->s_fs_info;
19374 # 106 "fs/sysv/sysv.h"
19376 XENIX_LINK_MAX = 126,
19377 SYSV_LINK_MAX = 126,
19379 COH_LINK_MAX = 10000,
19383 static inline __attribute__((always_inline)) void dirty_sb(struct super_block *sb)
19385 struct sysv_sb_info *sbi = SYSV_SB(sb);
19387 mark_buffer_dirty(sbi->s_bh1);
19388 if (sbi->s_bh1 != sbi->s_bh2)
19389 mark_buffer_dirty(sbi->s_bh2);
19395 extern struct sysv_inode *sysv_raw_inode(struct super_block *, unsigned,
19396 struct buffer_head **);
19397 extern struct inode * sysv_new_inode(const struct inode *, mode_t);
19398 extern void sysv_free_inode(struct inode *);
19399 extern unsigned long sysv_count_free_inodes(struct super_block *);
19402 extern sysv_zone_t sysv_new_block(struct super_block *);
19403 extern void sysv_free_block(struct super_block *, sysv_zone_t);
19404 extern unsigned long sysv_count_free_blocks(struct super_block *);
19407 extern void sysv_truncate(struct inode *);
19408 extern int __sysv_write_begin(struct file *file, struct address_space *mapping,
19409 loff_t pos, unsigned len, unsigned flags,
19410 struct page **pagep, void **fsdata);
19413 extern struct inode *sysv_iget(struct super_block *, unsigned int);
19414 extern int sysv_write_inode(struct inode *, int);
19415 extern int sysv_sync_inode(struct inode *);
19416 extern void sysv_set_inode(struct inode *, dev_t);
19417 extern int sysv_getattr(struct vfsmount *, struct dentry *, struct kstat *);
19418 extern int sysv_init_icache(void);
19419 extern void sysv_destroy_icache(void);
19423 extern struct sysv_dir_entry *sysv_find_entry(struct dentry *, struct page **);
19424 extern int sysv_add_link(struct dentry *, struct inode *);
19425 extern int sysv_delete_entry(struct sysv_dir_entry *, struct page *);
19426 extern int sysv_make_empty(struct inode *, struct inode *);
19427 extern int sysv_empty_dir(struct inode *);
19428 extern void sysv_set_link(struct sysv_dir_entry *, struct page *,
19430 extern struct sysv_dir_entry *sysv_dotdot(struct inode *, struct page **);
19431 extern ino_t sysv_inode_by_name(struct dentry *);
19434 extern const struct inode_operations sysv_file_inode_operations;
19435 extern const struct inode_operations sysv_dir_inode_operations;
19436 extern const struct inode_operations sysv_fast_symlink_inode_operations;
19437 extern const struct file_operations sysv_file_operations;
19438 extern const struct file_operations sysv_dir_operations;
19439 extern const struct address_space_operations sysv_aops;
19440 extern const struct super_operations sysv_sops;
19441 extern const struct dentry_operations sysv_dentry_operations;
19450 static inline __attribute__((always_inline)) u32 PDP_swab(u32 x)
19453 return ((x & 0xffff) << 16) | ((x & 0xffff0000) >> 16);
19463 static inline __attribute__((always_inline)) __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
19465 if (sbi->s_bytesex == BYTESEX_PDP)
19466 return PDP_swab(( __u32)n);
19467 else if (sbi->s_bytesex == BYTESEX_LE)
19468 return (( __u32)(__le32)(( __le32)n));
19470 return (__builtin_constant_p((__u32)(( __u32)(__be32)(( __be32)n))) ? ((__u32)( (((__u32)(( __u32)(__be32)(( __be32)n)) & (__u32)0x000000ffUL) << 24) | (((__u32)(( __u32)(__be32)(( __be32)n)) & (__u32)0x0000ff00UL) << 8) | (((__u32)(( __u32)(__be32)(( __be32)n)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(( __u32)(__be32)(( __be32)n)) & (__u32)0xff000000UL) >> 24))) : __fswab32(( __u32)(__be32)(( __be32)n)));
19473 static inline __attribute__((always_inline)) __fs32 cpu_to_fs32(struct sysv_sb_info *sbi, __u32 n)
19475 if (sbi->s_bytesex == BYTESEX_PDP)
19476 return ( __fs32)PDP_swab(n);
19477 else if (sbi->s_bytesex == BYTESEX_LE)
19478 return ( __fs32)(( __le32)(__u32)(n));
19480 return ( __fs32)(( __be32)(__builtin_constant_p((__u32)((n))) ? ((__u32)( (((__u32)((n)) & (__u32)0x000000ffUL) << 24) | (((__u32)((n)) & (__u32)0x0000ff00UL) << 8) | (((__u32)((n)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((n)) & (__u32)0xff000000UL) >> 24))) : __fswab32((n))));
19483 static inline __attribute__((always_inline)) __fs32 fs32_add(struct sysv_sb_info *sbi, __fs32 *n, int d)
19485 if (sbi->s_bytesex == BYTESEX_PDP)
19486 *(__u32*)n = PDP_swab(PDP_swab(*(__u32*)n)+d);
19487 else if (sbi->s_bytesex == BYTESEX_LE)
19488 le32_add_cpu((__le32 *)n, d);
19490 be32_add_cpu((__be32 *)n, d);
19494 static inline __attribute__((always_inline)) __u16 fs16_to_cpu(struct sysv_sb_info *sbi, __fs16 n)
19496 if (sbi->s_bytesex != BYTESEX_BE)
19497 return (( __u16)(__le16)(( __le16)n));
19499 return (__builtin_constant_p((__u16)(( __u16)(__be16)(( __be16)n))) ? ((__u16)( (((__u16)(( __u16)(__be16)(( __be16)n)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(( __be16)n)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(( __be16)n)));
19502 static inline __attribute__((always_inline)) __fs16 cpu_to_fs16(struct sysv_sb_info *sbi, __u16 n)
19504 if (sbi->s_bytesex != BYTESEX_BE)
19505 return ( __fs16)(( __le16)(__u16)(n));
19507 return ( __fs16)(( __be16)(__builtin_constant_p((__u16)((n))) ? ((__u16)( (((__u16)((n)) & (__u16)0x00ffU) << 8) | (((__u16)((n)) & (__u16)0xff00U) >> 8))) : __fswab16((n))));
19510 static inline __attribute__((always_inline)) __fs16 fs16_add(struct sysv_sb_info *sbi, __fs16 *n, int d)
19512 if (sbi->s_bytesex != BYTESEX_BE)
19513 le16_add_cpu((__le16 *)n, d);
19515 be16_add_cpu((__be16 *)n, d);
19518 # 28 "fs/sysv/super.c" 2
19519 # 43 "fs/sysv/super.c"
19521 JAN_1_1980 = (10*365 + 2) * 24 * 60 * 60
19524 static void detected_xenix(struct sysv_sb_info *sbi)
19526 struct buffer_head *bh1 = sbi->s_bh1;
19527 struct buffer_head *bh2 = sbi->s_bh2;
19528 struct xenix_super_block * sbd1;
19529 struct xenix_super_block * sbd2;
19532 sbd1 = sbd2 = (struct xenix_super_block *) bh1->b_data;
19535 sbd1 = (struct xenix_super_block *) bh1->b_data;
19536 sbd2 = (struct xenix_super_block *) (bh2->b_data - 512);
19539 sbi->s_link_max = XENIX_LINK_MAX;
19540 sbi->s_fic_size = 100;
19541 sbi->s_flc_size = 100;
19542 sbi->s_sbd1 = (char *)sbd1;
19543 sbi->s_sbd2 = (char *)sbd2;
19544 sbi->s_sb_fic_count = &sbd1->s_ninode;
19545 sbi->s_sb_fic_inodes = &sbd1->s_inode[0];
19546 sbi->s_sb_total_free_inodes = &sbd2->s_tinode;
19547 sbi->s_bcache_count = &sbd1->s_nfree;
19548 sbi->s_bcache = &sbd1->s_free[0];
19549 sbi->s_free_blocks = &sbd2->s_tfree;
19550 sbi->s_sb_time = &sbd2->s_time;
19551 sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd1->s_isize);
19552 sbi->s_nzones = fs32_to_cpu(sbi, sbd1->s_fsize);
19555 static void detected_sysv4(struct sysv_sb_info *sbi)
19557 struct sysv4_super_block * sbd;
19558 struct buffer_head *bh1 = sbi->s_bh1;
19559 struct buffer_head *bh2 = sbi->s_bh2;
19562 sbd = (struct sysv4_super_block *) (bh1->b_data + (1<<10)/2);
19564 sbd = (struct sysv4_super_block *) bh2->b_data;
19566 sbi->s_link_max = SYSV_LINK_MAX;
19567 sbi->s_fic_size = 100;
19568 sbi->s_flc_size = 50;
19569 sbi->s_sbd1 = (char *)sbd;
19570 sbi->s_sbd2 = (char *)sbd;
19571 sbi->s_sb_fic_count = &sbd->s_ninode;
19572 sbi->s_sb_fic_inodes = &sbd->s_inode[0];
19573 sbi->s_sb_total_free_inodes = &sbd->s_tinode;
19574 sbi->s_bcache_count = &sbd->s_nfree;
19575 sbi->s_bcache = &sbd->s_free[0];
19576 sbi->s_free_blocks = &sbd->s_tfree;
19577 sbi->s_sb_time = &sbd->s_time;
19578 sbi->s_sb_state = &sbd->s_state;
19579 sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
19580 sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
19583 static void detected_sysv2(struct sysv_sb_info *sbi)
19585 struct sysv2_super_block *sbd;
19586 struct buffer_head *bh1 = sbi->s_bh1;
19587 struct buffer_head *bh2 = sbi->s_bh2;
19590 sbd = (struct sysv2_super_block *) (bh1->b_data + (1<<10)/2);
19592 sbd = (struct sysv2_super_block *) bh2->b_data;
19594 sbi->s_link_max = SYSV_LINK_MAX;
19595 sbi->s_fic_size = 100;
19596 sbi->s_flc_size = 50;
19597 sbi->s_sbd1 = (char *)sbd;
19598 sbi->s_sbd2 = (char *)sbd;
19599 sbi->s_sb_fic_count = &sbd->s_ninode;
19600 sbi->s_sb_fic_inodes = &sbd->s_inode[0];
19601 sbi->s_sb_total_free_inodes = &sbd->s_tinode;
19602 sbi->s_bcache_count = &sbd->s_nfree;
19603 sbi->s_bcache = &sbd->s_free[0];
19604 sbi->s_free_blocks = &sbd->s_tfree;
19605 sbi->s_sb_time = &sbd->s_time;
19606 sbi->s_sb_state = &sbd->s_state;
19607 sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
19608 sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
19611 static void detected_coherent(struct sysv_sb_info *sbi)
19613 struct coh_super_block * sbd;
19614 struct buffer_head *bh1 = sbi->s_bh1;
19616 sbd = (struct coh_super_block *) bh1->b_data;
19618 sbi->s_link_max = COH_LINK_MAX;
19619 sbi->s_fic_size = 100;
19620 sbi->s_flc_size = 64;
19621 sbi->s_sbd1 = (char *)sbd;
19622 sbi->s_sbd2 = (char *)sbd;
19623 sbi->s_sb_fic_count = &sbd->s_ninode;
19624 sbi->s_sb_fic_inodes = &sbd->s_inode[0];
19625 sbi->s_sb_total_free_inodes = &sbd->s_tinode;
19626 sbi->s_bcache_count = &sbd->s_nfree;
19627 sbi->s_bcache = &sbd->s_free[0];
19628 sbi->s_free_blocks = &sbd->s_tfree;
19629 sbi->s_sb_time = &sbd->s_time;
19630 sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
19631 sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
19634 static void detected_v7(struct sysv_sb_info *sbi)
19636 struct buffer_head *bh2 = sbi->s_bh2;
19637 struct v7_super_block *sbd = (struct v7_super_block *)bh2->b_data;
19639 sbi->s_link_max = V7_LINK_MAX;
19640 sbi->s_fic_size = 100;
19641 sbi->s_flc_size = 50;
19642 sbi->s_sbd1 = (char *)sbd;
19643 sbi->s_sbd2 = (char *)sbd;
19644 sbi->s_sb_fic_count = &sbd->s_ninode;
19645 sbi->s_sb_fic_inodes = &sbd->s_inode[0];
19646 sbi->s_sb_total_free_inodes = &sbd->s_tinode;
19647 sbi->s_bcache_count = &sbd->s_nfree;
19648 sbi->s_bcache = &sbd->s_free[0];
19649 sbi->s_free_blocks = &sbd->s_tfree;
19650 sbi->s_sb_time = &sbd->s_time;
19651 sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
19652 sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
19655 static int detect_xenix(struct sysv_sb_info *sbi, struct buffer_head *bh)
19657 struct xenix_super_block *sbd = (struct xenix_super_block *)bh->b_data;
19658 if (*(__le32 *)&sbd->s_magic == (( __le32)(__u32)(0x2b5544)))
19659 sbi->s_bytesex = BYTESEX_LE;
19660 else if (*(__be32 *)&sbd->s_magic == (( __be32)(__builtin_constant_p((__u32)((0x2b5544))) ? ((__u32)( (((__u32)((0x2b5544)) & (__u32)0x000000ffUL) << 24) | (((__u32)((0x2b5544)) & (__u32)0x0000ff00UL) << 8) | (((__u32)((0x2b5544)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((0x2b5544)) & (__u32)0xff000000UL) >> 24))) : __fswab32((0x2b5544)))))
19661 sbi->s_bytesex = BYTESEX_BE;
19664 switch (fs32_to_cpu(sbi, sbd->s_type)) {
19666 sbi->s_type = FSTYPE_XENIX;
19669 sbi->s_type = FSTYPE_XENIX;
19676 static int detect_sysv(struct sysv_sb_info *sbi, struct buffer_head *bh)
19678 struct super_block *sb = sbi->s_sb;
19680 struct sysv4_super_block * sbd;
19683 sbd = (struct sysv4_super_block *) (bh->b_data + (1<<10)/2);
19684 if (*(__le32 *)&sbd->s_magic == (( __le32)(__u32)(0xfd187e20)))
19685 sbi->s_bytesex = BYTESEX_LE;
19686 else if (*(__be32 *)&sbd->s_magic == (( __be32)(__builtin_constant_p((__u32)((0xfd187e20))) ? ((__u32)( (((__u32)((0xfd187e20)) & (__u32)0x000000ffUL) << 24) | (((__u32)((0xfd187e20)) & (__u32)0x0000ff00UL) << 8) | (((__u32)((0xfd187e20)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((0xfd187e20)) & (__u32)0xff000000UL) >> 24))) : __fswab32((0xfd187e20)))))
19687 sbi->s_bytesex = BYTESEX_BE;
19691 type = fs32_to_cpu(sbi, sbd->s_type);
19693 if (fs16_to_cpu(sbi, sbd->s_nfree) == 0xffff) {
19694 sbi->s_type = FSTYPE_AFS;
19695 sbi->s_forced_ro = 1;
19696 if (!(sb->s_flags & 1)) {
19697 printk("SysV FS: SCO EAFS on %s detected, "
19698 "forcing read-only mode.\n",
19704 if (fs32_to_cpu(sbi, sbd->s_time) < JAN_1_1980) {
19706 if (type > 3 || type < 1)
19708 sbi->s_type = FSTYPE_SYSV2;
19711 if ((type > 3 || type < 1) && (type > 0x30 || type < 0x10))
19719 if (type >= 0x10) {
19720 printk("SysV FS: can't handle long file names on %s, "
19721 "forcing read-only mode.\n", sb->s_id);
19722 sbi->s_forced_ro = 1;
19725 sbi->s_type = FSTYPE_SYSV4;
19726 return type >= 0x10 ? type >> 4 : type;
19729 static int detect_coherent(struct sysv_sb_info *sbi, struct buffer_head *bh)
19731 struct coh_super_block * sbd;
19733 sbd = (struct coh_super_block *) (bh->b_data + (1<<10)/2);
19734 if ((memcmp(sbd->s_fname,"noname",6) && memcmp(sbd->s_fname,"xxxxx ",6))
19735 || (memcmp(sbd->s_fpack,"nopack",6) && memcmp(sbd->s_fpack,"xxxxx\n",6)))
19737 sbi->s_bytesex = BYTESEX_PDP;
19738 sbi->s_type = FSTYPE_COH;
19742 static int detect_sysv_odd(struct sysv_sb_info *sbi, struct buffer_head *bh)
19744 int size = detect_sysv(sbi, bh);
19746 return size>2 ? 0 : size;
19751 int (*test)(struct sysv_sb_info *, struct buffer_head *);
19755 {0, detect_coherent},
19756 {9, detect_sysv_odd},
19757 {15,detect_sysv_odd},
19761 static char *flavour_names[] = {
19762 [FSTYPE_XENIX] = "Xenix",
19763 [FSTYPE_SYSV4] = "SystemV",
19764 [FSTYPE_SYSV2] = "SystemV Release 2",
19765 [FSTYPE_COH] = "Coherent",
19766 [FSTYPE_V7] = "V7",
19767 [FSTYPE_AFS] = "AFS",
19770 static void (*flavour_setup[])(struct sysv_sb_info *) = {
19771 [FSTYPE_XENIX] = detected_xenix,
19772 [FSTYPE_SYSV4] = detected_sysv4,
19773 [FSTYPE_SYSV2] = detected_sysv2,
19774 [FSTYPE_COH] = detected_coherent,
19775 [FSTYPE_V7] = detected_v7,
19776 [FSTYPE_AFS] = detected_sysv4,
19779 static int complete_read_super(struct super_block *sb, int silent, int size)
19781 struct sysv_sb_info *sbi = SYSV_SB(sb);
19782 struct inode *root_inode;
19783 char *found = flavour_names[sbi->s_type];
19784 u_char n_bits = size+8;
19785 int bsize = 1 << n_bits;
19786 int bsize_4 = bsize >> 2;
19788 sbi->s_firstinodezone = 2;
19790 flavour_setup[sbi->s_type](sbi);
19792 sbi->s_truncate = 1;
19793 sbi->s_ndatazones = sbi->s_nzones - sbi->s_firstdatazone;
19794 sbi->s_inodes_per_block = bsize >> 6;
19795 sbi->s_inodes_per_block_1 = (bsize >> 6)-1;
19796 sbi->s_inodes_per_block_bits = n_bits-6;
19797 sbi->s_ind_per_block = bsize_4;
19798 sbi->s_ind_per_block_2 = bsize_4*bsize_4;
19799 sbi->s_toobig_block = 10 + bsize_4 * (1 + bsize_4 * (1 + bsize_4));
19800 sbi->s_ind_per_block_bits = n_bits-2;
19802 sbi->s_ninodes = (sbi->s_firstdatazone - sbi->s_firstinodezone)
19803 << sbi->s_inodes_per_block_bits;
19806 printk("VFS: Found a %s FS (block size = %ld) on device %s\n",
19807 found, sb->s_blocksize, sb->s_id);
19809 sb->s_magic = 0x012FF7B3 + sbi->s_type;
19811 sb->s_op = &sysv_sops;
19812 root_inode = sysv_iget(sb, 2);
19813 if (IS_ERR(root_inode)) {
19814 printk("SysV FS: get root inode failed\n");
19817 sb->s_root = d_alloc_root(root_inode);
19820 printk("SysV FS: get root dentry failed\n");
19823 if (sbi->s_forced_ro)
19825 if (sbi->s_truncate)
19826 sb->s_root->d_op = &sysv_dentry_operations;
19831 static int sysv_fill_super(struct super_block *sb, void *data, int silent)
19833 struct buffer_head *bh1, *bh = ((void *)0);
19834 struct sysv_sb_info *sbi;
19835 unsigned long blocknr;
19838 ((void)(sizeof(struct { int:-!!(1024 != sizeof (struct xenix_super_block)); })));
19839 ((void)(sizeof(struct { int:-!!(512 != sizeof (struct sysv4_super_block)); })));
19840 ((void)(sizeof(struct { int:-!!(512 != sizeof (struct sysv2_super_block)); })));
19841 ((void)(sizeof(struct { int:-!!(500 != sizeof (struct coh_super_block)); })));
19842 ((void)(sizeof(struct { int:-!!(64 != sizeof (struct sysv_inode)); })));
19844 sbi = kzalloc(sizeof(struct sysv_sb_info), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
19849 sbi->s_block_base = 0;
19850 sb->s_fs_info = sbi;
19852 sb_set_blocksize(sb, (1<<10));
19854 for (i = 0; i < (sizeof(flavours) / sizeof((flavours)[0]) + (sizeof(struct { int:-!!(__builtin_types_compatible_p(typeof(flavours), typeof(&flavours[0]))); }))) && !size; i++) {
19856 bh = sb_bread(sb, flavours[i].block);
19859 size = flavours[i].test(SYSV_SB(sb), bh);
19867 blocknr = bh->b_blocknr << 1;
19869 sb_set_blocksize(sb, 512);
19870 bh1 = sb_bread(sb, blocknr);
19871 bh = sb_bread(sb, blocknr + 1);
19877 blocknr = bh->b_blocknr >> 1;
19879 sb_set_blocksize(sb, 2048);
19880 bh1 = bh = sb_bread(sb, blocknr);
19889 if (complete_read_super(sb, silent, size))
19895 sb_set_blocksize(sb, (1<<10));
19896 printk("oldfs: cannot read superblock\n");
19904 printk("VFS: unable to find oldfs superblock on device %s\n",
19910 printk("VFS: oldfs: unsupported block size (%dKb)\n",
19915 static int v7_fill_super(struct super_block *sb, void *data, int silent)
19917 struct sysv_sb_info *sbi;
19918 struct buffer_head *bh, *bh2 = ((void *)0);
19919 struct v7_super_block *v7sb;
19920 struct sysv_inode *v7i;
19922 if (440 != sizeof (struct v7_super_block))
19923 panic("V7 FS: bad super-block size");
19924 if (64 != sizeof (struct sysv_inode))
19925 panic("sysv fs: bad i-node size");
19927 sbi = kzalloc(sizeof(struct sysv_sb_info), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
19932 sbi->s_block_base = 0;
19933 sbi->s_type = FSTYPE_V7;
19934 sbi->s_bytesex = BYTESEX_PDP;
19935 sb->s_fs_info = sbi;
19937 sb_set_blocksize(sb, 512);
19939 if ((bh = sb_bread(sb, 1)) == ((void *)0)) {
19941 printk("VFS: unable to read V7 FS superblock on "
19942 "device %s.\n", sb->s_id);
19947 v7sb = (struct v7_super_block *) bh->b_data;
19948 if (fs16_to_cpu(sbi, v7sb->s_nfree) > 50 ||
19949 fs16_to_cpu(sbi, v7sb->s_ninode) > 100 ||
19950 fs32_to_cpu(sbi, v7sb->s_time) == 0)
19955 if ((bh2 = sb_bread(sb, 2)) == ((void *)0))
19957 v7i = (struct sysv_inode *)(bh2->b_data + 64);
19958 if ((fs16_to_cpu(sbi, v7i->i_mode) & ~0777) != 0040000 ||
19959 (fs32_to_cpu(sbi, v7i->i_size) == 0) ||
19960 (fs32_to_cpu(sbi, v7i->i_size) & 017) != 0)
19967 if (complete_read_super(sb, silent, 1))
19979 static int sysv_get_sb(struct file_system_type *fs_type,
19980 int flags, const char *dev_name, void *data, struct vfsmount *mnt)
19982 return get_sb_bdev(fs_type, flags, dev_name, data, sysv_fill_super,
19986 static int v7_get_sb(struct file_system_type *fs_type,
19987 int flags, const char *dev_name, void *data, struct vfsmount *mnt)
19989 return get_sb_bdev(fs_type, flags, dev_name, data, v7_fill_super, mnt);
19992 static struct file_system_type sysv_fs_type = {
19993 .owner = (&__this_module),
19995 .get_sb = sysv_get_sb,
19996 .kill_sb = kill_block_super,
20000 static struct file_system_type v7_fs_type = {
20001 .owner = (&__this_module),
20003 .get_sb = v7_get_sb,
20004 .kill_sb = kill_block_super,
20008 static int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) init_sysv_fs(void)
20012 error = sysv_init_icache();
20015 error = register_filesystem(&sysv_fs_type);
20017 goto destroy_icache;
20018 error = register_filesystem(&v7_fs_type);
20024 unregister_filesystem(&sysv_fs_type);
20026 sysv_destroy_icache();
20031 static void __attribute__ ((__section__(".exit.text"))) __attribute__((__cold__)) exit_sysv_fs(void)
20033 unregister_filesystem(&sysv_fs_type);
20034 unregister_filesystem(&v7_fs_type);
20035 sysv_destroy_icache();
20038 static inline __attribute__((always_inline)) initcall_t __inittest(void) { return init_sysv_fs; } int init_module(void) __attribute__((alias("init_sysv_fs")));
20039 static inline __attribute__((always_inline)) exitcall_t __exittest(void) { return exit_sysv_fs; } void cleanup_module(void) __attribute__((alias("exit_sysv_fs")));
20040 static const char __mod_license563[] __attribute__((__used__)) __attribute__((section(".modinfo"),unused)) = "license" "=" "GPL";