Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 699677 Details for
Bug 912857
ICE when building arm kernel with gcc 4.8
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
output from failed build
cc3VApwE.out (text/plain), 1.05 MB, created by
Peter Robinson
on 2013-02-19 21:38:34 UTC
(
hide
)
Description:
output from failed build
Filename:
MIME Type:
Creator:
Peter Robinson
Created:
2013-02-19 21:38:34 UTC
Size:
1.05 MB
patch
obsolete
>// /usr/libexec/gcc/armv7hl-redhat-linux-gnueabi/4.8.0/cc1 -quiet -nostdinc -I /builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include -I arch/arm/include/generated -I include -I /builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi -I arch/arm/include/generated/uapi -I /builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi -I include/generated/uapi -I arch/arm/mach-tegra/include -D __KERNEL__ -D __LINUX_ARM_ARCH__=7 -U arm -D CC_HAVE_ASM_GOTO -D MODULE -D KBUILD_STR(s)=#s -D KBUILD_BASENAME=KBUILD_STR(pata_optidma) -D KBUILD_MODNAME=KBUILD_STR(pata_optidma) -isystem /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.8.0/include -include /builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/linux/kconfig.h -MD drivers/ata/.pata_optidma.o.d drivers/ata/pata_optidma.c -quiet -dumpbase pata_optidma.c -mlittle-endian -mabi=aapcs-linux -mno-thumb-interwork -marm -march=armv7-a -mfloat-abi=soft -mtune=cortex-a8 -mfpu=vfpv3-d16 -mtls-dialect=gnu -auxbase-strip drivers/ata/pata_optidma.o -g -Os -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -Werror=implicit-function-declaration -Wno-format-security -Wframe-larger-than=1024 -Wno-unused-but-set-variable -Wdeclaration-after-statement -Wno-pointer-sign -p -fno-strict-aliasing -fno-common -fno-delete-null-pointer-checks -fno-dwarf2-cfi-asm -fstack-protector -funwind-tables -fno-strict-overflow -fconserve-stack -o - -frandom-seed=0 ># 1 "drivers/ata/pata_optidma.c" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl//" ># 1 "<command-line>" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/linux/kconfig.h" 1 > > > ># 1 "include/generated/autoconf.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/linux/kconfig.h" 2 ># 1 "<command-line>" 2 ># 1 "drivers/ata/pata_optidma.c" ># 25 "drivers/ata/pata_optidma.c" ># 1 "include/linux/kernel.h" 1 > > > > ># 1 "/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.8.0/include/stdarg.h" 1 3 4 ># 40 "/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.8.0/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 98 "/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.8.0/include/stdarg.h" 3 4 >typedef __gnuc_va_list va_list; ># 6 "include/linux/kernel.h" 2 ># 1 "include/linux/linkage.h" 1 > > > ># 1 "include/linux/compiler.h" 1 ># 54 "include/linux/compiler.h" ># 1 "include/linux/compiler-gcc.h" 1 ># 100 "include/linux/compiler-gcc.h" ># 1 "include/linux/compiler-gcc4.h" 1 ># 101 "include/linux/compiler-gcc.h" 2 ># 55 "include/linux/compiler.h" 2 ># 72 "include/linux/compiler.h" >struct ftrace_branch_data { > const char *func; > const char *file; > unsigned line; > union { > struct { > unsigned long correct; > unsigned long incorrect; > }; > struct { > unsigned long miss; > unsigned long hit; > }; > unsigned long miss_hit[2]; > }; >}; ># 5 "include/linux/linkage.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/linkage.h" 1 ># 6 "include/linux/linkage.h" 2 ># 7 "include/linux/kernel.h" 2 ># 1 "include/linux/stddef.h" 1 > > > ># 1 "include/uapi/linux/stddef.h" 1 ># 5 "include/linux/stddef.h" 2 > > > > > >enum { > false = 0, > true = 1 >}; ># 8 "include/linux/kernel.h" 2 ># 1 "include/linux/types.h" 1 > > > > ># 1 "include/uapi/linux/types.h" 1 > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/types.h" 1 > > > > > > ># 1 "include/asm-generic/int-ll64.h" 1 ># 10 "include/asm-generic/int-ll64.h" ># 1 "include/uapi/asm-generic/int-ll64.h" 1 ># 11 "include/uapi/asm-generic/int-ll64.h" ># 1 "arch/arm/include/generated/asm/bitsperlong.h" 1 ># 1 "include/asm-generic/bitsperlong.h" 1 > > > ># 1 "include/uapi/asm-generic/bitsperlong.h" 1 ># 5 "include/asm-generic/bitsperlong.h" 2 ># 1 "arch/arm/include/generated/asm/bitsperlong.h" 2 ># 12 "include/uapi/asm-generic/int-ll64.h" 2 > > > > > > > >typedef __signed__ char __s8; >typedef unsigned char __u8; > >typedef __signed__ short __s16; >typedef unsigned short __u16; > >typedef __signed__ int __s32; >typedef unsigned int __u32; > > >__extension__ typedef __signed__ long long __s64; >__extension__ typedef unsigned long long __u64; ># 11 "include/asm-generic/int-ll64.h" 2 > > > > >typedef signed char s8; >typedef unsigned char u8; > >typedef signed short s16; >typedef unsigned short u16; > >typedef signed int s32; >typedef unsigned int u32; > >typedef signed long long s64; >typedef unsigned long long u64; ># 8 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/types.h" 2 ># 1 "arch/arm/include/generated/asm/types.h" 2 ># 5 "include/uapi/linux/types.h" 2 ># 13 "include/uapi/linux/types.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/posix_types.h" 1 ># 24 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/posix_types.h" >typedef struct { > unsigned long fds_bits[1024 / (8 * sizeof(long))]; >} __kernel_fd_set; > > >typedef void (*__kernel_sighandler_t)(int); > > >typedef int __kernel_key_t; >typedef int __kernel_mqd_t; > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/posix_types.h" 1 ># 22 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/posix_types.h" >typedef unsigned short __kernel_mode_t; > > >typedef unsigned short __kernel_ipc_pid_t; > > >typedef unsigned short __kernel_uid_t; >typedef unsigned short __kernel_gid_t; > > >typedef unsigned short __kernel_old_dev_t; > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" 1 > > > ># 1 "arch/arm/include/generated/asm/bitsperlong.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" 2 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" >typedef long __kernel_long_t; >typedef unsigned long __kernel_ulong_t; > > > >typedef __kernel_ulong_t __kernel_ino_t; > > > > > > > >typedef int __kernel_pid_t; ># 40 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" >typedef __kernel_long_t __kernel_suseconds_t; > > > >typedef int __kernel_daddr_t; > > > >typedef unsigned int __kernel_uid32_t; >typedef unsigned int __kernel_gid32_t; > > > >typedef __kernel_uid_t __kernel_old_uid_t; >typedef __kernel_gid_t __kernel_old_gid_t; ># 67 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" >typedef unsigned int __kernel_size_t; >typedef int __kernel_ssize_t; >typedef int __kernel_ptrdiff_t; ># 78 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/posix_types.h" >typedef struct { > int val[2]; >} __kernel_fsid_t; > > > > > >typedef __kernel_long_t __kernel_off_t; >typedef long long __kernel_loff_t; >typedef __kernel_long_t __kernel_time_t; >typedef __kernel_long_t __kernel_clock_t; >typedef int __kernel_timer_t; >typedef int __kernel_clockid_t; >typedef char * __kernel_caddr_t; >typedef unsigned short __kernel_uid16_t; >typedef unsigned short __kernel_gid16_t; ># 36 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/posix_types.h" 2 ># 36 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/posix_types.h" 2 ># 14 "include/uapi/linux/types.h" 2 ># 32 "include/uapi/linux/types.h" >typedef __u16 __le16; >typedef __u16 __be16; >typedef __u32 __le32; >typedef __u32 __be32; >typedef __u64 __le64; >typedef __u64 __be64; > >typedef __u16 __sum16; >typedef __u32 __wsum; ># 6 "include/linux/types.h" 2 > > > > > > >typedef __u32 __kernel_dev_t; > >typedef __kernel_fd_set fd_set; >typedef __kernel_dev_t dev_t; >typedef __kernel_ino_t ino_t; >typedef __kernel_mode_t mode_t; >typedef unsigned short umode_t; >typedef __u32 nlink_t; >typedef __kernel_off_t off_t; >typedef __kernel_pid_t pid_t; >typedef __kernel_daddr_t daddr_t; >typedef __kernel_key_t key_t; >typedef __kernel_suseconds_t suseconds_t; >typedef __kernel_timer_t timer_t; >typedef __kernel_clockid_t clockid_t; >typedef __kernel_mqd_t mqd_t; > >typedef _Bool bool; > >typedef __kernel_uid32_t uid_t; >typedef __kernel_gid32_t gid_t; >typedef __kernel_uid16_t uid16_t; >typedef __kernel_gid16_t gid16_t; > >typedef unsigned long uintptr_t; > > > >typedef __kernel_old_uid_t old_uid_t; >typedef __kernel_old_gid_t old_gid_t; > > > >typedef __kernel_loff_t loff_t; ># 54 "include/linux/types.h" >typedef __kernel_size_t size_t; > > > > >typedef __kernel_ssize_t ssize_t; > > > > >typedef __kernel_ptrdiff_t ptrdiff_t; > > > > >typedef __kernel_time_t time_t; > > > > >typedef __kernel_clock_t clock_t; > > > > >typedef __kernel_caddr_t caddr_t; > > > >typedef unsigned char u_char; >typedef unsigned short u_short; >typedef unsigned int u_int; >typedef unsigned long u_long; > > >typedef unsigned char unchar; >typedef unsigned short ushort; >typedef unsigned int uint; >typedef unsigned long ulong; > > > > >typedef __u8 u_int8_t; >typedef __s8 int8_t; >typedef __u16 u_int16_t; >typedef __s16 int16_t; >typedef __u32 u_int32_t; >typedef __s32 int32_t; > > > >typedef __u8 uint8_t; >typedef __u16 uint16_t; >typedef __u32 uint32_t; > > >typedef __u64 uint64_t; >typedef __u64 u_int64_t; >typedef __s64 int64_t; ># 130 "include/linux/types.h" >typedef u64 sector_t; >typedef u64 blkcnt_t; ># 148 "include/linux/types.h" >typedef u32 dma_addr_t; ># 157 "include/linux/types.h" >typedef unsigned gfp_t; >typedef unsigned fmode_t; >typedef unsigned oom_flags_t; > > > > >typedef u32 phys_addr_t; > > >typedef phys_addr_t resource_size_t; > > > > > >typedef unsigned long irq_hw_number_t; > >typedef struct { > int counter; >} atomic_t; > > > > > > > >struct list_head { > struct list_head *next, *prev; >}; > >struct hlist_head { > struct hlist_node *first; >}; > >struct hlist_node { > struct hlist_node *next, **pprev; >}; > >struct ustat { > __kernel_daddr_t f_tfree; > __kernel_ino_t f_tinode; > char f_fname[6]; > char f_fpack[6]; >}; > > > > > > >struct callback_head { > struct callback_head *next; > void (*func)(struct callback_head *head); >}; ># 9 "include/linux/kernel.h" 2 > ># 1 "include/linux/bitops.h" 1 > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 4 "include/linux/bitops.h" 2 ># 13 "include/linux/bitops.h" >extern unsigned int __sw_hweight8(unsigned int w); >extern unsigned int __sw_hweight16(unsigned int w); >extern unsigned int __sw_hweight32(unsigned int w); >extern unsigned long __sw_hweight64(__u64 w); > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 1 ># 27 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" ># 1 "include/linux/irqflags.h" 1 ># 14 "include/linux/irqflags.h" ># 1 "include/linux/typecheck.h" 1 ># 15 "include/linux/irqflags.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/irqflags.h" 1 > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" 1 ># 13 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/ptrace.h" 1 ># 13 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/ptrace.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hwcap.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/hwcap.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hwcap.h" 2 > > > > > > > >extern unsigned int elf_hwcap; ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/ptrace.h" 2 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" 2 > > >struct pt_regs { > unsigned long uregs[18]; >}; ># 46 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int valid_user_regs(struct pt_regs *regs) >{ > unsigned long mode = regs->uregs[16] & 0x0000001f; > > > > > regs->uregs[16] &= ~(0x00000040 | 0x00000100); > > if ((regs->uregs[16] & 0x00000080) == 0) { > if (mode == 0x00000010) > return 1; > if (elf_hwcap & (1 << 3) && mode == 0x00000000) > return 1; > } > > > > > regs->uregs[16] &= 0xff000000 | 0x00ff0000 | 0x0000ff00 | 0x00000020 | 0x00000010; > if (!(elf_hwcap & (1 << 3))) > regs->uregs[16] |= 0x00000010; > > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long regs_return_value(struct pt_regs *regs) >{ > return regs->uregs[0]; >} > > > > >extern unsigned long profile_pc(struct pt_regs *regs); ># 103 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" >extern int regs_query_register_offset(const char *name); >extern const char *regs_query_register_name(unsigned int offset); >extern bool regs_within_kernel_stack(struct pt_regs *regs, unsigned long addr); >extern unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs, > unsigned int n); ># 118 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/ptrace.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long regs_get_register(struct pt_regs *regs, > unsigned int offset) >{ > if (__builtin_expect(!!(offset > (__builtin_offsetof(struct pt_regs,uregs[17]))), 0)) > return 0; > return *(unsigned long *)((unsigned long)regs + offset); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long kernel_stack_pointer(struct pt_regs *regs) >{ > return regs->uregs[13]; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long user_stack_pointer(struct pt_regs *regs) >{ > return regs->uregs[13]; >} ># 7 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/irqflags.h" 2 > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long arch_local_irq_save(void) >{ > unsigned long flags; > > asm volatile( > " mrs %0, cpsr @ arch_local_irq_save\n" > " cpsid i" > : "=r" (flags) : : "memory", "cc"); > return flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_local_irq_enable(void) >{ > asm volatile( > " cpsie i @ arch_local_irq_enable" > : > : > : "memory", "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_local_irq_disable(void) >{ > asm volatile( > " cpsid i @ arch_local_irq_disable" > : > : > : "memory", "cc"); >} ># 128 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/irqflags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long arch_local_save_flags(void) >{ > unsigned long flags; > asm volatile( > " mrs %0, cpsr @ local_save_flags" > : "=r" (flags) : : "memory", "cc"); > return flags; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_local_irq_restore(unsigned long flags) >{ > asm volatile( > " msr cpsr_c, %0 @ local_irq_restore" > : > : "r" (flags) > : "memory", "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_irqs_disabled_flags(unsigned long flags) >{ > return flags & 0x00000080; >} ># 16 "include/linux/irqflags.h" 2 ># 28 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 37 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ____atomic_set_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > *p |= mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ____atomic_clear_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > *p &= ~mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ____atomic_change_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > *p ^= mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >____atomic_test_and_set_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned int res; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > res = *p; > *p = res | mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); > > return (res & mask) != 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >____atomic_test_and_clear_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned int res; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > res = *p; > *p = res & ~mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); > > return (res & mask) != 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >____atomic_test_and_change_bit(unsigned int bit, volatile unsigned long *p) >{ > unsigned long flags; > unsigned int res; > unsigned long mask = 1UL << (bit & 31); > > p += bit >> 5; > > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); > res = *p; > *p = res ^ mask; > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); > > return (res & mask) != 0; >} > ># 1 "include/asm-generic/bitops/non-atomic.h" 1 > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 5 "include/asm-generic/bitops/non-atomic.h" 2 ># 15 "include/asm-generic/bitops/non-atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __set_bit(int nr, volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > > *p |= mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __clear_bit(int nr, volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > > *p &= ~mask; >} ># 40 "include/asm-generic/bitops/non-atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __change_bit(int nr, volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > > *p ^= mask; >} ># 57 "include/asm-generic/bitops/non-atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __test_and_set_bit(int nr, volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > unsigned long old = *p; > > *p = old | mask; > return (old & mask) != 0; >} ># 76 "include/asm-generic/bitops/non-atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __test_and_clear_bit(int nr, volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > unsigned long old = *p; > > *p = old & ~mask; > return (old & mask) != 0; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __test_and_change_bit(int nr, > volatile unsigned long *addr) >{ > unsigned long mask = (1UL << ((nr) % 32)); > unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); > unsigned long old = *p; > > *p = old ^ mask; > return (old & mask) != 0; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_bit(int nr, const volatile unsigned long *addr) >{ > return 1UL & (addr[((nr) / 32)] >> (nr & (32 -1))); >} ># 125 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 154 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" >extern void _set_bit(int nr, volatile unsigned long * p); >extern void _clear_bit(int nr, volatile unsigned long * p); >extern void _change_bit(int nr, volatile unsigned long * p); >extern int _test_and_set_bit(int nr, volatile unsigned long * p); >extern int _test_and_clear_bit(int nr, volatile unsigned long * p); >extern int _test_and_change_bit(int nr, volatile unsigned long * p); > > > > >extern int _find_first_zero_bit_le(const void * p, unsigned size); >extern int _find_next_zero_bit_le(const void * p, int size, int offset); >extern int _find_first_bit_le(const unsigned long *p, unsigned size); >extern int _find_next_bit_le(const unsigned long *p, int size, int offset); > > > > >extern int _find_first_zero_bit_be(const void * p, unsigned size); >extern int _find_next_zero_bit_be(const void * p, int size, int offset); >extern int _find_first_bit_be(const unsigned long *p, unsigned size); >extern int _find_next_bit_be(const unsigned long *p, int size, int offset); ># 227 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int constant_fls(int x) >{ > int r = 32; > > if (!x) > return 0; > if (!(x & 0xffff0000u)) { > x <<= 16; > r -= 16; > } > if (!(x & 0xff000000u)) { > x <<= 8; > r -= 8; > } > if (!(x & 0xf0000000u)) { > x <<= 4; > r -= 4; > } > if (!(x & 0xc0000000u)) { > x <<= 2; > r -= 2; > } > if (!(x & 0x80000000u)) { > x <<= 1; > r -= 1; > } > return r; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fls(int x) >{ > int ret; > > if (__builtin_constant_p(x)) > return constant_fls(x); > > asm("clz\t%0, %1" : "=r" (ret) : "r" (x)); > ret = 32 - ret; > return ret; >} ># 280 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" ># 1 "include/asm-generic/bitops/fls64.h" 1 > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 5 "include/asm-generic/bitops/fls64.h" 2 ># 18 "include/asm-generic/bitops/fls64.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) int fls64(__u64 x) >{ > __u32 h = x >> 32; > if (h) > return fls(h) + 32; > return fls(x); >} ># 281 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 > ># 1 "include/asm-generic/bitops/sched.h" 1 > > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 6 "include/asm-generic/bitops/sched.h" 2 > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sched_find_first_bit(const unsigned long *b) >{ > > > > > > if (b[0]) > return (({ unsigned long __t = (b[0]); fls(__t & -__t); }) - 1); > if (b[1]) > return (({ unsigned long __t = (b[1]); fls(__t & -__t); }) - 1) + 32; > if (b[2]) > return (({ unsigned long __t = (b[2]); fls(__t & -__t); }) - 1) + 64; > return (({ unsigned long __t = (b[3]); fls(__t & -__t); }) - 1) + 96; > > > >} ># 283 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 1 "include/asm-generic/bitops/hweight.h" 1 > > > ># 1 "include/asm-generic/bitops/arch_hweight.h" 1 > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 5 "include/asm-generic/bitops/arch_hweight.h" 2 > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int __arch_hweight32(unsigned int w) >{ > return __sw_hweight32(w); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int __arch_hweight16(unsigned int w) >{ > return __sw_hweight16(w); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int __arch_hweight8(unsigned int w) >{ > return __sw_hweight8(w); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __arch_hweight64(__u64 w) >{ > return __sw_hweight64(w); >} ># 5 "include/asm-generic/bitops/hweight.h" 2 ># 1 "include/asm-generic/bitops/const_hweight.h" 1 ># 6 "include/asm-generic/bitops/hweight.h" 2 ># 284 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 1 "include/asm-generic/bitops/lock.h" 1 ># 285 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 308 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" ># 1 "include/asm-generic/bitops/le.h" 1 > > > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 5 "include/asm-generic/bitops/le.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/byteorder.h" 1 ># 21 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/byteorder.h" ># 1 "include/linux/byteorder/little_endian.h" 1 > > > ># 1 "include/uapi/linux/byteorder/little_endian.h" 1 ># 12 "include/uapi/linux/byteorder/little_endian.h" ># 1 "include/linux/swab.h" 1 > > > ># 1 "include/uapi/linux/swab.h" 1 > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/swab.h" 1 ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/swab.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/swab.h" 1 ># 19 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/swab.h" 2 > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __arch_swahb32(__u32 x) >{ > __asm__ ("rev16 %0, %1" : "=r" (x) : "r" (x)); > return x; >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __arch_swab32(__u32 x) >{ > __asm__ ("rev %0, %1" : "=r" (x) : "r" (x)); > return x; >} ># 7 "include/uapi/linux/swab.h" 2 ># 46 "include/uapi/linux/swab.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u16 __fswab16(__u16 val) >{ > > > > return ((__u16)__arch_swahb32(val)); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswab32(__u32 val) >{ > > > > return __arch_swab32(val); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u64 __fswab64(__u64 val) >{ > > > > > > __u32 h = val >> 32; > __u32 l = val & ((1ULL << 32) - 1); > return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h))); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswahw32(__u32 val) >{ > > > > return ((__u32)( (((__u32)(val) & (__u32)0x0000ffffUL) << 16) | (((__u32)(val) & (__u32)0xffff0000UL) >> 16))); > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswahb32(__u32 val) >{ > > return __arch_swahb32(val); > > > >} ># 154 "include/uapi/linux/swab.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u16 __swab16p(const __u16 *p) >{ > > > > return (__builtin_constant_p((__u16)(*p)) ? ((__u16)( (((__u16)(*p) & (__u16)0x00ffU) << 8) | (((__u16)(*p) & (__u16)0xff00U) >> 8))) : __fswab16(*p)); > >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 __swab32p(const __u32 *p) >{ > > > > 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)); > >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u64 __swab64p(const __u64 *p) >{ > > > > 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)); > >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 __swahw32p(const __u32 *p) >{ > > > > return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x0000ffffUL) << 16) | (((__u32)(*p) & (__u32)0xffff0000UL) >> 16))) : __fswahw32(*p)); > >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 __swahb32p(const __u32 *p) >{ > > > > return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(*p) & (__u32)0xff00ff00UL) >> 8))) : __fswahb32(*p)); > >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __swab16s(__u16 *p) >{ > > > > *p = __swab16p(p); > >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __swab32s(__u32 *p) >{ > > > > *p = __swab32p(p); > >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __swab64s(__u64 *p) >{ > > > > *p = __swab64p(p); > >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __swahw32s(__u32 *p) >{ > > > > *p = __swahw32p(p); > >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __swahb32s(__u32 *p) >{ > > > > *p = __swahb32p(p); > >} ># 5 "include/linux/swab.h" 2 ># 13 "include/uapi/linux/byteorder/little_endian.h" 2 ># 43 "include/uapi/linux/byteorder/little_endian.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __le64 __cpu_to_le64p(const __u64 *p) >{ > return ( __le64)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u64 __le64_to_cpup(const __le64 *p) >{ > return ( __u64)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __le32 __cpu_to_le32p(const __u32 *p) >{ > return ( __le32)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 __le32_to_cpup(const __le32 *p) >{ > return ( __u32)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __le16 __cpu_to_le16p(const __u16 *p) >{ > return ( __le16)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u16 __le16_to_cpup(const __le16 *p) >{ > return ( __u16)*p; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __be64 __cpu_to_be64p(const __u64 *p) >{ > return ( __be64)__swab64p(p); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u64 __be64_to_cpup(const __be64 *p) >{ > return __swab64p((__u64 *)p); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __be32 __cpu_to_be32p(const __u32 *p) >{ > return ( __be32)__swab32p(p); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 __be32_to_cpup(const __be32 *p) >{ > return __swab32p((__u32 *)p); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __be16 __cpu_to_be16p(const __u16 *p) >{ > return ( __be16)__swab16p(p); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u16 __be16_to_cpup(const __be16 *p) >{ > return __swab16p((__u16 *)p); >} ># 5 "include/linux/byteorder/little_endian.h" 2 > ># 1 "include/linux/byteorder/generic.h" 1 ># 143 "include/linux/byteorder/generic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void le16_add_cpu(__le16 *var, u16 val) >{ > *var = (( __le16)(__u16)((( __u16)(__le16)(*var)) + val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void le32_add_cpu(__le32 *var, u32 val) >{ > *var = (( __le32)(__u32)((( __u32)(__le32)(*var)) + val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void le64_add_cpu(__le64 *var, u64 val) >{ > *var = (( __le64)(__u64)((( __u64)(__le64)(*var)) + val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void be16_add_cpu(__be16 *var, u16 val) >{ > *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)))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void be32_add_cpu(__be32 *var, u32 val) >{ > *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)))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void be64_add_cpu(__be64 *var, u64 val) >{ > *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)))); >} ># 7 "include/linux/byteorder/little_endian.h" 2 ># 22 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/byteorder.h" 2 ># 6 "include/asm-generic/bitops/le.h" 2 > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long find_next_zero_bit_le(const void *addr, > unsigned long size, unsigned long offset) >{ > return _find_next_zero_bit_le(addr,size,offset); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long find_next_bit_le(const void *addr, > unsigned long size, unsigned long offset) >{ > return _find_next_bit_le(addr,size,offset); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long find_first_zero_bit_le(const void *addr, > unsigned long size) >{ > return _find_first_zero_bit_le(addr,size); >} ># 52 "include/asm-generic/bitops/le.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_bit_le(int nr, const void *addr) >{ > return test_bit(nr ^ 0, addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_bit_le(int nr, void *addr) >{ > _set_bit(nr ^ 0,addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_bit_le(int nr, void *addr) >{ > _clear_bit(nr ^ 0,addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __set_bit_le(int nr, void *addr) >{ > __set_bit(nr ^ 0, addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __clear_bit_le(int nr, void *addr) >{ > __clear_bit(nr ^ 0, addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_set_bit_le(int nr, void *addr) >{ > return _test_and_set_bit(nr ^ 0,addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_clear_bit_le(int nr, void *addr) >{ > return _test_and_clear_bit(nr ^ 0,addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __test_and_set_bit_le(int nr, void *addr) >{ > return __test_and_set_bit(nr ^ 0, addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __test_and_clear_bit_le(int nr, void *addr) >{ > return __test_and_clear_bit(nr ^ 0, addr); >} ># 309 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 > > > > ># 1 "include/asm-generic/bitops/ext2-atomic-setbit.h" 1 ># 314 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bitops.h" 2 ># 23 "include/linux/bitops.h" 2 ># 46 "include/linux/bitops.h" >static __inline__ __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_bitmask_order(unsigned int count) >{ > int order; > > order = fls(count); > return order; >} > >static __inline__ __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_count_order(unsigned int count) >{ > int order; > > order = fls(count) - 1; > if (count & (count - 1)) > order++; > return order; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long hweight_long(unsigned long w) >{ > return sizeof(w) == 4 ? (__builtin_constant_p(w) ? ((( (!!((w) & (1ULL << 0))) + (!!((w) & (1ULL << 1))) + (!!((w) & (1ULL << 2))) + (!!((w) & (1ULL << 3))) + (!!((w) & (1ULL << 4))) + (!!((w) & (1ULL << 5))) + (!!((w) & (1ULL << 6))) + (!!((w) & (1ULL << 7))) ) + ( (!!(((w) >> 8) & (1ULL << 0))) + (!!(((w) >> 8) & (1ULL << 1))) + (!!(((w) >> 8) & (1ULL << 2))) + (!!(((w) >> 8) & (1ULL << 3))) + (!!(((w) >> 8) & (1ULL << 4))) + (!!(((w) >> 8) & (1ULL << 5))) + (!!(((w) >> 8) & (1ULL << 6))) + (!!(((w) >> 8) & (1ULL << 7))) )) + (( (!!(((w) >> 16) & (1ULL << 0))) + (!!(((w) >> 16) & (1ULL << 1))) + (!!(((w) >> 16) & (1ULL << 2))) + (!!(((w) >> 16) & (1ULL << 3))) + (!!(((w) >> 16) & (1ULL << 4))) + (!!(((w) >> 16) & (1ULL << 5))) + (!!(((w) >> 16) & (1ULL << 6))) + (!!(((w) >> 16) & (1ULL << 7))) ) + ( (!!((((w) >> 16) >> 8) & (1ULL << 0))) + (!!((((w) >> 16) >> 8) & (1ULL << 1))) + (!!((((w) >> 16) >> 8) & (1ULL << 2))) + (!!((((w) >> 16) >> 8) & (1ULL << 3))) + (!!((((w) >> 16) >> 8) & (1ULL << 4))) + (!!((((w) >> 16) >> 8) & (1ULL << 5))) + (!!((((w) >> 16) >> 8) & (1ULL << 6))) + (!!((((w) >> 16) >> 8) & (1ULL << 7))) ))) : __arch_hweight32(w)) : (__builtin_constant_p(w) ? (((( (!!((w) & (1ULL << 0))) + (!!((w) & (1ULL << 1))) + (!!((w) & (1ULL << 2))) + (!!((w) & (1ULL << 3))) + (!!((w) & (1ULL << 4))) + (!!((w) & (1ULL << 5))) + (!!((w) & (1ULL << 6))) + (!!((w) & (1ULL << 7))) ) + ( (!!(((w) >> 8) & (1ULL << 0))) + (!!(((w) >> 8) & (1ULL << 1))) + (!!(((w) >> 8) & (1ULL << 2))) + (!!(((w) >> 8) & (1ULL << 3))) + (!!(((w) >> 8) & (1ULL << 4))) + (!!(((w) >> 8) & (1ULL << 5))) + (!!(((w) >> 8) & (1ULL << 6))) + (!!(((w) >> 8) & (1ULL << 7))) )) + (( (!!(((w) >> 16) & (1ULL << 0))) + (!!(((w) >> 16) & (1ULL << 1))) + (!!(((w) >> 16) & (1ULL << 2))) + (!!(((w) >> 16) & (1ULL << 3))) + (!!(((w) >> 16) & (1ULL << 4))) + (!!(((w) >> 16) & (1ULL << 5))) + (!!(((w) >> 16) & (1ULL << 6))) + (!!(((w) >> 16) & (1ULL << 7))) ) + ( (!!((((w) >> 16) >> 8) & (1ULL << 0))) + (!!((((w) >> 16) >> 8) & (1ULL << 1))) + (!!((((w) >> 16) >> 8) & (1ULL << 2))) + (!!((((w) >> 16) >> 8) & (1ULL << 3))) + (!!((((w) >> 16) >> 8) & (1ULL << 4))) + (!!((((w) >> 16) >> 8) & (1ULL << 5))) + (!!((((w) >> 16) >> 8) & (1ULL << 6))) + (!!((((w) >> 16) >> 8) & (1ULL << 7))) ))) + ((( (!!(((w) >> 32) & (1ULL << 0))) + (!!(((w) >> 32) & (1ULL << 1))) + (!!(((w) >> 32) & (1ULL << 2))) + (!!(((w) >> 32) & (1ULL << 3))) + (!!(((w) >> 32) & (1ULL << 4))) + (!!(((w) >> 32) & (1ULL << 5))) + (!!(((w) >> 32) & (1ULL << 6))) + (!!(((w) >> 32) & (1ULL << 7))) ) + ( (!!((((w) >> 32) >> 8) & (1ULL << 0))) + (!!((((w) >> 32) >> 8) & (1ULL << 1))) + (!!((((w) >> 32) >> 8) & (1ULL << 2))) + (!!((((w) >> 32) >> 8) & (1ULL << 3))) + (!!((((w) >> 32) >> 8) & (1ULL << 4))) + (!!((((w) >> 32) >> 8) & (1ULL << 5))) + (!!((((w) >> 32) >> 8) & (1ULL << 6))) + (!!((((w) >> 32) >> 8) & (1ULL << 7))) )) + (( (!!((((w) >> 32) >> 16) & (1ULL << 0))) + (!!((((w) >> 32) >> 16) & (1ULL << 1))) + (!!((((w) >> 32) >> 16) & (1ULL << 2))) + (!!((((w) >> 32) >> 16) & (1ULL << 3))) + (!!((((w) >> 32) >> 16) & (1ULL << 4))) + (!!((((w) >> 32) >> 16) & (1ULL << 5))) + (!!((((w) >> 32) >> 16) & (1ULL << 6))) + (!!((((w) >> 32) >> 16) & (1ULL << 7))) ) + ( (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 0))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 1))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 2))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 3))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 4))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 5))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 6))) + (!!(((((w) >> 32) >> 16) >> 8) & (1ULL << 7))) )))) : __arch_hweight64(w)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u64 rol64(__u64 word, unsigned int shift) >{ > return (word << shift) | (word >> (64 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u64 ror64(__u64 word, unsigned int shift) >{ > return (word >> shift) | (word << (64 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 rol32(__u32 word, unsigned int shift) >{ > return (word << shift) | (word >> (32 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 ror32(__u32 word, unsigned int shift) >{ > return (word >> shift) | (word << (32 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u16 rol16(__u16 word, unsigned int shift) >{ > return (word << shift) | (word >> (16 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u16 ror16(__u16 word, unsigned int shift) >{ > return (word >> shift) | (word << (16 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u8 rol8(__u8 word, unsigned int shift) >{ > return (word << shift) | (word >> (8 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u8 ror8(__u8 word, unsigned int shift) >{ > return (word >> shift) | (word << (8 - shift)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __s32 sign_extend32(__u32 value, int index) >{ > __u8 shift = 31 - index; > return (__s32)(value << shift) >> shift; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned fls_long(unsigned long l) >{ > if (sizeof(l) == 4) > return fls(l); > return fls64(l); >} ># 175 "include/linux/bitops.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __ffs64(u64 word) >{ > > if (((u32)word) == 0UL) > return (({ unsigned long __t = ((u32)(word >> 32)); fls(__t & -__t); }) - 1) + 32; > > > > return (({ unsigned long __t = ((unsigned long)word); fls(__t & -__t); }) - 1); >} ># 196 "include/linux/bitops.h" >extern unsigned long find_last_bit(const unsigned long *addr, > unsigned long size); ># 11 "include/linux/kernel.h" 2 ># 1 "include/linux/log2.h" 1 ># 21 "include/linux/log2.h" >extern __attribute__((const, noreturn)) >int ____ilog2_NaN(void); ># 31 "include/linux/log2.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((const)) >int __ilog2_u32(u32 n) >{ > return fls(n) - 1; >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((const)) >int __ilog2_u64(u64 n) >{ > return fls64(n) - 1; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((const)) >bool is_power_of_2(unsigned long n) >{ > return (n != 0 && ((n & (n - 1)) == 0)); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((const)) >unsigned long __roundup_pow_of_two(unsigned long n) >{ > return 1UL << fls_long(n - 1); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((const)) >unsigned long __rounddown_pow_of_two(unsigned long n) >{ > return 1UL << (fls_long(n) - 1); >} ># 12 "include/linux/kernel.h" 2 > ># 1 "include/linux/printk.h" 1 > > > ># 1 "include/linux/init.h" 1 ># 138 "include/linux/init.h" >typedef int (*initcall_t)(void); >typedef void (*exitcall_t)(void); > >extern initcall_t __con_initcall_start[], __con_initcall_end[]; >extern initcall_t __security_initcall_start[], __security_initcall_end[]; > > >typedef void (*ctor_fn_t)(void); > > >extern int do_one_initcall(initcall_t fn); >extern char __attribute__ ((__section__(".init.data"))) boot_command_line[]; >extern char *saved_command_line; >extern unsigned int reset_devices; > > >void setup_arch(char **); >void prepare_namespace(void); > >extern void (*late_time_init)(void); > >extern bool initcall_debug; ># 5 "include/linux/printk.h" 2 ># 1 "include/linux/kern_levels.h" 1 ># 6 "include/linux/printk.h" 2 > >extern const char linux_banner[]; >extern const char linux_proc_banner[]; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int printk_get_level(const char *buffer) >{ > if (buffer[0] == '\001' && buffer[1]) { > switch (buffer[1]) { > case '0' ... '7': > case 'd': > return buffer[1]; > } > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *printk_skip_level(const char *buffer) >{ > if (printk_get_level(buffer)) { > switch (buffer[1]) { > case '0' ... '7': > case 'd': > return buffer + 2; > } > } > return buffer; >} > >extern int console_printk[]; > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void console_silent(void) >{ > (console_printk[0]) = 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void console_verbose(void) >{ > if ((console_printk[0])) > (console_printk[0]) = 15; >} > >struct va_format { > const char *fmt; > va_list *va; >}; ># 92 "include/linux/printk.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) >int no_printk(const char *fmt, ...) >{ > return 0; >} > >extern __attribute__((format(printf, 1, 2))) >void early_printk(const char *fmt, ...); > >extern int printk_needs_cpu(int cpu); >extern void printk_tick(void); > > > __attribute__((format(printf, 5, 0))) >int vprintk_emit(int facility, int level, > const char *dict, size_t dictlen, > const char *fmt, va_list args); > > __attribute__((format(printf, 1, 0))) >int vprintk(const char *fmt, va_list args); > > __attribute__((format(printf, 5, 6))) __attribute__((__cold__)) > int printk_emit(int facility, int level, > const char *dict, size_t dictlen, > const char *fmt, ...); > > __attribute__((format(printf, 1, 2))) __attribute__((__cold__)) >int printk(const char *fmt, ...); > > > > >__attribute__((format(printf, 1, 2))) __attribute__((__cold__)) int printk_sched(const char *fmt, ...); > > > > > > >extern int __printk_ratelimit(const char *func); > >extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, > unsigned int interval_msec); > >extern int printk_delay_msec; >extern int dmesg_restrict; >extern int kptr_restrict; > >void log_buf_kexec_setup(void); >void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) setup_log_buf(int early); ># 177 "include/linux/printk.h" >extern void dump_stack(void) __attribute__((__cold__)); ># 310 "include/linux/printk.h" >extern const struct file_operations kmsg_fops; > >enum { > DUMP_PREFIX_NONE, > DUMP_PREFIX_ADDRESS, > DUMP_PREFIX_OFFSET >}; >extern void hex_dump_to_buffer(const void *buf, size_t len, > int rowsize, int groupsize, > char *linebuf, size_t linebuflen, bool ascii); > >extern void print_hex_dump(const char *level, const char *prefix_str, > int prefix_type, int rowsize, int groupsize, > const void *buf, size_t len, bool ascii); >extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, > const void *buf, size_t len); ># 14 "include/linux/kernel.h" 2 ># 1 "include/linux/dynamic_debug.h" 1 ># 9 "include/linux/dynamic_debug.h" >struct _ddebug { > > > > > const char *modname; > const char *function; > const char *filename; > const char *format; > unsigned int lineno:18; ># 35 "include/linux/dynamic_debug.h" > unsigned int flags:8; >} __attribute__((aligned(8))); > > >int ddebug_add_module(struct _ddebug *tab, unsigned int n, > const char *modname); > > >extern int ddebug_remove_module(const char *mod_name); >extern __attribute__((format(printf, 2, 3))) >int __dynamic_pr_debug(struct _ddebug *descriptor, const char *fmt, ...); > >extern int ddebug_dyndbg_module_param_cb(char *param, char *val, > const char *modname); > >struct device; > >extern __attribute__((format(printf, 3, 4))) >int __dynamic_dev_dbg(struct _ddebug *descriptor, const struct device *dev, > const char *fmt, ...); > >struct net_device; > >extern __attribute__((format(printf, 3, 4))) >int __dynamic_netdev_dbg(struct _ddebug *descriptor, > const struct net_device *dev, > const char *fmt, ...); ># 15 "include/linux/kernel.h" 2 > ># 1 "include/uapi/linux/kernel.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/sysinfo.h" 1 > > > > > > >struct sysinfo { > __kernel_long_t uptime; > __kernel_ulong_t loads[3]; > __kernel_ulong_t totalram; > __kernel_ulong_t freeram; > __kernel_ulong_t sharedram; > __kernel_ulong_t bufferram; > __kernel_ulong_t totalswap; > __kernel_ulong_t freeswap; > __u16 procs; > __u16 pad; > __kernel_ulong_t totalhigh; > __kernel_ulong_t freehigh; > __u32 mem_unit; > char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; >}; ># 5 "include/uapi/linux/kernel.h" 2 ># 17 "include/linux/kernel.h" 2 ># 111 "include/linux/kernel.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/div64.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/compiler.h" 1 ># 6 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/div64.h" 2 ># 63 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/div64.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bug.h" 1 ># 59 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bug.h" ># 1 "include/asm-generic/bug.h" 1 ># 13 "include/asm-generic/bug.h" ># 1 "include/linux/kernel.h" 1 ># 14 "include/asm-generic/bug.h" 2 > > > > >struct bug_entry { > > unsigned long bug_addr; > > > > > > const char *file; > > > > unsigned short line; > > unsigned short flags; >}; ># 65 "include/asm-generic/bug.h" >extern __attribute__((format(printf, 3, 4))) >void warn_slowpath_fmt(const char *file, const int line, > const char *fmt, ...); >extern __attribute__((format(printf, 4, 5))) >void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint, > const char *fmt, ...); >extern void warn_slowpath_null(const char *file, const int line); ># 60 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bug.h" 2 > >struct pt_regs; >void die(const char *msg, struct pt_regs *regs, int err); > >struct siginfo; >void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info, > unsigned long err, unsigned long trap); ># 76 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/bug.h" >void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int, > struct pt_regs *), > int sig, int code, const char *name); > >void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, > struct pt_regs *), > int sig, int code, const char *name); > >extern void c_backtrace(unsigned long fp, int pmode); > >struct mm_struct; >extern void show_pte(struct mm_struct *mm, unsigned long addr); >extern void __show_regs(struct pt_regs *); ># 64 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/div64.h" 2 ># 112 "include/linux/kernel.h" 2 ># 140 "include/linux/kernel.h" >struct completion; >struct pt_regs; >struct user; > > >extern int _cond_resched(void); ># 166 "include/linux/kernel.h" > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __might_sleep(const char *file, int line, > int preempt_offset) { } ># 199 "include/linux/kernel.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void might_fault(void) >{ > do { _cond_resched(); } while (0); >} > > >extern struct atomic_notifier_head panic_notifier_list; >extern long (*panic_blink)(int state); >__attribute__((format(printf, 1, 2))) >void panic(const char *fmt, ...) > __attribute__((noreturn)) __attribute__((__cold__)); >extern void oops_enter(void); >extern void oops_exit(void); >void print_oops_end_marker(void); >extern int oops_may_print(void); >void do_exit(long error_code) > __attribute__((noreturn)); >void complete_and_exit(struct completion *, long) > __attribute__((noreturn)); > > >int __attribute__((warn_unused_result)) _kstrtoul(const char *s, unsigned int base, unsigned long *res); >int __attribute__((warn_unused_result)) _kstrtol(const char *s, unsigned int base, long *res); > >int __attribute__((warn_unused_result)) kstrtoull(const char *s, unsigned int base, unsigned long long *res); >int __attribute__((warn_unused_result)) kstrtoll(const char *s, unsigned int base, long long *res); ># 242 "include/linux/kernel.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtoul(const char *s, unsigned int base, unsigned long *res) >{ > > > > > if (sizeof(unsigned long) == sizeof(unsigned long long) && > __alignof__(unsigned long) == __alignof__(unsigned long long)) > return kstrtoull(s, base, (unsigned long long *)res); > else > return _kstrtoul(s, base, res); >} ># 271 "include/linux/kernel.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtol(const char *s, unsigned int base, long *res) >{ > > > > > if (sizeof(long) == sizeof(long long) && > __alignof__(long) == __alignof__(long long)) > return kstrtoll(s, base, (long long *)res); > else > return _kstrtol(s, base, res); >} > >int __attribute__((warn_unused_result)) kstrtouint(const char *s, unsigned int base, unsigned int *res); >int __attribute__((warn_unused_result)) kstrtoint(const char *s, unsigned int base, int *res); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtou64(const char *s, unsigned int base, u64 *res) >{ > return kstrtoull(s, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtos64(const char *s, unsigned int base, s64 *res) >{ > return kstrtoll(s, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtou32(const char *s, unsigned int base, u32 *res) >{ > return kstrtouint(s, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtos32(const char *s, unsigned int base, s32 *res) >{ > return kstrtoint(s, base, res); >} > >int __attribute__((warn_unused_result)) kstrtou16(const char *s, unsigned int base, u16 *res); >int __attribute__((warn_unused_result)) kstrtos16(const char *s, unsigned int base, s16 *res); >int __attribute__((warn_unused_result)) kstrtou8(const char *s, unsigned int base, u8 *res); >int __attribute__((warn_unused_result)) kstrtos8(const char *s, unsigned int base, s8 *res); > >int __attribute__((warn_unused_result)) kstrtoull_from_user(const char *s, size_t count, unsigned int base, unsigned long long *res); >int __attribute__((warn_unused_result)) kstrtoll_from_user(const char *s, size_t count, unsigned int base, long long *res); >int __attribute__((warn_unused_result)) kstrtoul_from_user(const char *s, size_t count, unsigned int base, unsigned long *res); >int __attribute__((warn_unused_result)) kstrtol_from_user(const char *s, size_t count, unsigned int base, long *res); >int __attribute__((warn_unused_result)) kstrtouint_from_user(const char *s, size_t count, unsigned int base, unsigned int *res); >int __attribute__((warn_unused_result)) kstrtoint_from_user(const char *s, size_t count, unsigned int base, int *res); >int __attribute__((warn_unused_result)) kstrtou16_from_user(const char *s, size_t count, unsigned int base, u16 *res); >int __attribute__((warn_unused_result)) kstrtos16_from_user(const char *s, size_t count, unsigned int base, s16 *res); >int __attribute__((warn_unused_result)) kstrtou8_from_user(const char *s, size_t count, unsigned int base, u8 *res); >int __attribute__((warn_unused_result)) kstrtos8_from_user(const char *s, size_t count, unsigned int base, s8 *res); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtou64_from_user(const char *s, size_t count, unsigned int base, u64 *res) >{ > return kstrtoull_from_user(s, count, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtos64_from_user(const char *s, size_t count, unsigned int base, s64 *res) >{ > return kstrtoll_from_user(s, count, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtou32_from_user(const char *s, size_t count, unsigned int base, u32 *res) >{ > return kstrtouint_from_user(s, count, base, res); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kstrtos32_from_user(const char *s, size_t count, unsigned int base, s32 *res) >{ > return kstrtoint_from_user(s, count, base, res); >} > > > >extern unsigned long simple_strtoul(const char *,char **,unsigned int); >extern long simple_strtol(const char *,char **,unsigned int); >extern unsigned long long simple_strtoull(const char *,char **,unsigned int); >extern long long simple_strtoll(const char *,char **,unsigned int); > > > > > >extern int num_to_str(char *buf, int size, unsigned long long num); > > > >extern __attribute__((format(printf, 2, 3))) int sprintf(char *buf, const char * fmt, ...); >extern __attribute__((format(printf, 2, 0))) int vsprintf(char *buf, const char *, va_list); >extern __attribute__((format(printf, 3, 4))) >int snprintf(char *buf, size_t size, const char *fmt, ...); >extern __attribute__((format(printf, 3, 0))) >int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); >extern __attribute__((format(printf, 3, 4))) >int scnprintf(char *buf, size_t size, const char *fmt, ...); >extern __attribute__((format(printf, 3, 0))) >int vscnprintf(char *buf, size_t size, const char *fmt, va_list args); >extern __attribute__((format(printf, 2, 3))) >char *kasprintf(gfp_t gfp, const char *fmt, ...); >extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args); > >extern __attribute__((format(scanf, 2, 3))) >int sscanf(const char *, const char *, ...); >extern __attribute__((format(scanf, 2, 0))) >int vsscanf(const char *, const char *, va_list); > >extern int get_option(char **str, int *pint); >extern char *get_options(const char *str, int nints, int *ints); >extern unsigned long long memparse(const char *ptr, char **retptr); > >extern int core_kernel_text(unsigned long addr); >extern int core_kernel_data(unsigned long addr); >extern int __kernel_text_address(unsigned long addr); >extern int kernel_text_address(unsigned long addr); >extern int func_ptr_is_kernel_text(void *ptr); > >struct pid; >extern struct pid *session_of_pgrp(struct pid *pgrp); > >unsigned long int_sqrt(unsigned long); > >extern void bust_spinlocks(int yes); >extern void wake_up_klogd(void); >extern int oops_in_progress; >extern int panic_timeout; >extern int panic_on_oops; >extern int panic_on_unrecovered_nmi; >extern int panic_on_io_nmi; >extern int sysctl_panic_on_stackoverflow; >extern const char *print_tainted(void); >extern void add_taint(unsigned flag); >extern int test_taint(unsigned flag); >extern unsigned long get_taint(void); >extern int root_mountflags; > >extern bool early_boot_irqs_disabled; > > >extern enum system_states { > SYSTEM_BOOTING, > SYSTEM_RUNNING, > SYSTEM_HALT, > SYSTEM_POWER_OFF, > SYSTEM_RESTART, >} system_state; ># 431 "include/linux/kernel.h" >extern const char hex_asc[]; > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) char *hex_byte_pack(char *buf, u8 byte) >{ > *buf++ = hex_asc[((byte) & 0xf0) >> 4]; > *buf++ = hex_asc[((byte) & 0x0f)]; > return buf; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) char * pack_hex_byte(char *buf, u8 byte) >{ > return hex_byte_pack(buf, byte); >} > >extern int hex_to_bin(char ch); >extern int __attribute__((warn_unused_result)) hex2bin(u8 *dst, const char *src, size_t count); ># 471 "include/linux/kernel.h" >void tracing_off_permanent(void); > > > > >enum ftrace_dump_mode { > DUMP_NONE, > DUMP_ALL, > DUMP_ORIG, >}; > > >void tracing_on(void); >void tracing_off(void); >int tracing_is_on(void); > >extern void tracing_start(void); >extern void tracing_stop(void); >extern void ftrace_off_permanent(void); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) >void ____trace_printk_check_format(const char *fmt, ...) >{ >} ># 532 "include/linux/kernel.h" >extern __attribute__((format(printf, 2, 3))) >int __trace_bprintk(unsigned long ip, const char *fmt, ...); > >extern __attribute__((format(printf, 2, 3))) >int __trace_printk(unsigned long ip, const char *fmt, ...); > >extern void trace_dump_stack(void); ># 557 "include/linux/kernel.h" >extern int >__ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap); > >extern int >__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap); > >extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode); ># 734 "include/linux/kernel.h" >extern int do_sysinfo(struct sysinfo *info); ># 26 "drivers/ata/pata_optidma.c" 2 ># 1 "include/linux/module.h" 1 ># 9 "include/linux/module.h" ># 1 "include/linux/list.h" 1 > > > > > ># 1 "include/linux/poison.h" 1 ># 7 "include/linux/list.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/const.h" 1 ># 8 "include/linux/list.h" 2 ># 24 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void INIT_LIST_HEAD(struct list_head *list) >{ > list->next = list; > list->prev = list; >} ># 47 "include/linux/list.h" >extern void __list_add(struct list_head *new, > struct list_head *prev, > struct list_head *next); ># 60 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_add(struct list_head *new, struct list_head *head) >{ > __list_add(new, head, head->next); >} ># 74 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_add_tail(struct list_head *new, struct list_head *head) >{ > __list_add(new, head->prev, head); >} ># 86 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __list_del(struct list_head * prev, struct list_head * next) >{ > next->prev = prev; > prev->next = next; >} ># 111 "include/linux/list.h" >extern void __list_del_entry(struct list_head *entry); >extern void list_del(struct list_head *entry); ># 122 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_replace(struct list_head *old, > struct list_head *new) >{ > new->next = old->next; > new->next->prev = new; > new->prev = old->prev; > new->prev->next = new; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_replace_init(struct list_head *old, > struct list_head *new) >{ > list_replace(old, new); > INIT_LIST_HEAD(old); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_del_init(struct list_head *entry) >{ > __list_del_entry(entry); > INIT_LIST_HEAD(entry); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_move(struct list_head *list, struct list_head *head) >{ > __list_del_entry(list); > list_add(list, head); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_move_tail(struct list_head *list, > struct list_head *head) >{ > __list_del_entry(list); > list_add_tail(list, head); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int list_is_last(const struct list_head *list, > const struct list_head *head) >{ > return list->next == head; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int list_empty(const struct list_head *head) >{ > return head->next == head; >} ># 204 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int list_empty_careful(const struct list_head *head) >{ > struct list_head *next = head->next; > return (next == head) && (next == head->prev); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_rotate_left(struct list_head *head) >{ > struct list_head *first; > > if (!list_empty(head)) { > first = head->next; > list_move_tail(first, head); > } >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int list_is_singular(const struct list_head *head) >{ > return !list_empty(head) && (head->next == head->prev); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __list_cut_position(struct list_head *list, > struct list_head *head, struct list_head *entry) >{ > struct list_head *new_first = entry->next; > list->next = head->next; > list->next->prev = list; > list->prev = entry; > entry->next = list; > head->next = new_first; > new_first->prev = head; >} ># 259 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_cut_position(struct list_head *list, > struct list_head *head, struct list_head *entry) >{ > if (list_empty(head)) > return; > if (list_is_singular(head) && > (head->next != entry && head != entry)) > return; > if (entry == head) > INIT_LIST_HEAD(list); > else > __list_cut_position(list, head, entry); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __list_splice(const struct list_head *list, > struct list_head *prev, > struct list_head *next) >{ > struct list_head *first = list->next; > struct list_head *last = list->prev; > > first->prev = prev; > prev->next = first; > > last->next = next; > next->prev = last; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_splice(const struct list_head *list, > struct list_head *head) >{ > if (!list_empty(list)) > __list_splice(list, head, head->next); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_splice_tail(struct list_head *list, > struct list_head *head) >{ > if (!list_empty(list)) > __list_splice(list, head->prev, head); >} ># 318 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_splice_init(struct list_head *list, > struct list_head *head) >{ > if (!list_empty(list)) { > __list_splice(list, head, head->next); > INIT_LIST_HEAD(list); > } >} ># 335 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_splice_tail_init(struct list_head *list, > struct list_head *head) >{ > if (!list_empty(list)) { > __list_splice(list, head->prev, head); > INIT_LIST_HEAD(list); > } >} ># 570 "include/linux/list.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void INIT_HLIST_NODE(struct hlist_node *h) >{ > h->next = ((void *)0); > h->pprev = ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hlist_unhashed(const struct hlist_node *h) >{ > return !h->pprev; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hlist_empty(const struct hlist_head *h) >{ > return !h->first; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __hlist_del(struct hlist_node *n) >{ > struct hlist_node *next = n->next; > struct hlist_node **pprev = n->pprev; > *pprev = next; > if (next) > next->pprev = pprev; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_del(struct hlist_node *n) >{ > __hlist_del(n); > n->next = ((void *) 0x00100100 + 0); > n->pprev = ((void *) 0x00200200 + 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_del_init(struct hlist_node *n) >{ > if (!hlist_unhashed(n)) { > __hlist_del(n); > INIT_HLIST_NODE(n); > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h) >{ > struct hlist_node *first = h->first; > n->next = first; > if (first) > first->pprev = &n->next; > h->first = n; > n->pprev = &h->first; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_before(struct hlist_node *n, > struct hlist_node *next) >{ > n->pprev = next->pprev; > n->next = next; > next->pprev = &n->next; > *(n->pprev) = n; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_after(struct hlist_node *n, > struct hlist_node *next) >{ > next->next = n->next; > n->next = next; > next->pprev = &n->next; > > if(next->next) > next->next->pprev = &next->next; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_fake(struct hlist_node *n) >{ > n->pprev = &n->next; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_move_list(struct hlist_head *old, > struct hlist_head *new) >{ > new->first = old->first; > if (new->first) > new->first->pprev = &new->first; > old->first = ((void *)0); >} ># 10 "include/linux/module.h" 2 ># 1 "include/linux/stat.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/stat.h" 1 > > > >struct __old_kernel_stat { > unsigned short st_dev; > unsigned short st_ino; > unsigned short st_mode; > unsigned short st_nlink; > unsigned short st_uid; > unsigned short st_gid; > unsigned short st_rdev; > unsigned long st_size; > unsigned long st_atime; > unsigned long st_mtime; > unsigned long st_ctime; >}; > > > >struct stat { > > > > > unsigned long st_dev; > > unsigned long st_ino; > unsigned short st_mode; > unsigned short st_nlink; > unsigned short st_uid; > unsigned short st_gid; > > > > > unsigned long st_rdev; > > unsigned long st_size; > unsigned long st_blksize; > unsigned long st_blocks; > unsigned long st_atime; > unsigned long st_atime_nsec; > unsigned long st_mtime; > unsigned long st_mtime_nsec; > unsigned long st_ctime; > unsigned long st_ctime_nsec; > unsigned long __unused4; > unsigned long __unused5; >}; > > > > > > >struct stat64 { > unsigned long long st_dev; > unsigned char __pad0[4]; > > > unsigned long __st_ino; > unsigned int st_mode; > unsigned int st_nlink; > > unsigned long st_uid; > unsigned long st_gid; > > unsigned long long st_rdev; > unsigned char __pad3[4]; > > long long st_size; > unsigned long st_blksize; > unsigned long long st_blocks; > > unsigned long st_atime; > unsigned long st_atime_nsec; > > unsigned long st_mtime; > unsigned long st_mtime_nsec; > > unsigned long st_ctime; > unsigned long st_ctime_nsec; > > unsigned long long st_ino; >}; ># 6 "include/linux/stat.h" 2 ># 1 "include/uapi/linux/stat.h" 1 ># 7 "include/linux/stat.h" 2 ># 18 "include/linux/stat.h" ># 1 "include/linux/time.h" 1 > > > ># 1 "include/linux/cache.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cache.h" 1 ># 6 "include/linux/cache.h" 2 ># 5 "include/linux/time.h" 2 ># 1 "include/linux/seqlock.h" 1 ># 29 "include/linux/seqlock.h" ># 1 "include/linux/spinlock.h" 1 ># 50 "include/linux/spinlock.h" ># 1 "include/linux/preempt.h" 1 ># 9 "include/linux/preempt.h" ># 1 "include/linux/thread_info.h" 1 ># 11 "include/linux/thread_info.h" ># 1 "include/linux/bug.h" 1 > > > > > >enum bug_trap_type { > BUG_TRAP_TYPE_NONE = 0, > BUG_TRAP_TYPE_WARN = 1, > BUG_TRAP_TYPE_BUG = 2, >}; > >struct pt_regs; ># 59 "include/linux/bug.h" >extern int __build_bug_on_failed; ># 86 "include/linux/bug.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_warning_bug(const struct bug_entry *bug) >{ > return bug->flags & (1 << 0); >} > >const struct bug_entry *find_bug(unsigned long bugaddr); > >enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs); > > >int is_valid_bugaddr(unsigned long addr); ># 12 "include/linux/thread_info.h" 2 > >struct timespec; >struct compat_timespec; > > > > >struct restart_block { > long (*fn)(struct restart_block *); > union { > > struct { > u32 *uaddr; > u32 val; > u32 flags; > u32 bitset; > u64 time; > u32 *uaddr2; > } futex; > > struct { > clockid_t clockid; > struct timespec *rmtp; > > > > u64 expires; > } nanosleep; > > struct { > struct pollfd *ufds; > int nfds; > int has_timeout; > unsigned long tv_sec; > unsigned long tv_nsec; > } poll; > }; >}; > >extern long do_no_restart_syscall(struct restart_block *parm); > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/fpstate.h" 1 ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/fpstate.h" >struct vfp_hard_struct { > > __u64 fpregs[32]; > > > > > > > __u32 fpexc; > __u32 fpscr; > > > > __u32 fpinst; > __u32 fpinst2; > > > __u32 cpu; > >}; > >union vfp_state { > struct vfp_hard_struct hard; >}; > >extern void vfp_flush_thread(union vfp_state *); >extern void vfp_release_thread(union vfp_state *); > > > >struct fp_hard_struct { > unsigned int save[35]; >}; > > > >struct fp_soft_struct { > unsigned int save[35]; >}; > > > >struct iwmmxt_struct { > unsigned int save[0x98 / sizeof(unsigned int)]; >}; > >union fp_state { > struct fp_hard_struct hard; > struct fp_soft_struct soft; > > > >}; > > > >struct crunch_state { > unsigned int mvdx[16][2]; > unsigned int mvax[4][3]; > unsigned int dspsc[2]; >}; ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" 2 > > > > > > > >struct task_struct; >struct exec_domain; > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 28 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/domain.h" 1 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/domain.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/barrier.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/outercache.h" 1 ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/outercache.h" >struct outer_cache_fns { > void (*inv_range)(unsigned long, unsigned long); > void (*clean_range)(unsigned long, unsigned long); > void (*flush_range)(unsigned long, unsigned long); > void (*flush_all)(void); > void (*inv_all)(void); > void (*disable)(void); > > void (*sync)(void); > > void (*set_debug)(unsigned long); > void (*resume)(void); >}; > > > >extern struct outer_cache_fns outer_cache; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_inv_range(phys_addr_t start, phys_addr_t end) >{ > if (outer_cache.inv_range) > outer_cache.inv_range(start, end); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_clean_range(phys_addr_t start, phys_addr_t end) >{ > if (outer_cache.clean_range) > outer_cache.clean_range(start, end); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_flush_range(phys_addr_t start, phys_addr_t end) >{ > if (outer_cache.flush_range) > outer_cache.flush_range(start, end); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_flush_all(void) >{ > if (outer_cache.flush_all) > outer_cache.flush_all(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_inv_all(void) >{ > if (outer_cache.inv_all) > outer_cache.inv_all(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_disable(void) >{ > if (outer_cache.disable) > outer_cache.disable(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_resume(void) >{ > if (outer_cache.resume) > outer_cache.resume(); >} ># 99 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/outercache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void outer_sync(void) >{ > if (outer_cache.sync) > outer_cache.sync(); >} ># 6 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/barrier.h" 2 ># 15 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/domain.h" 2 ># 81 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/domain.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_domain(unsigned val) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void modify_domain(unsigned dom, unsigned type) { } ># 29 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" 2 > >typedef unsigned long mm_segment_t; > >struct cpu_context_save { > __u32 r4; > __u32 r5; > __u32 r6; > __u32 r7; > __u32 r8; > __u32 r9; > __u32 sl; > __u32 fp; > __u32 sp; > __u32 pc; > __u32 extra[2]; >}; > > > > > >struct thread_info { > unsigned long flags; > int preempt_count; > mm_segment_t addr_limit; > struct task_struct *task; > struct exec_domain *exec_domain; > __u32 cpu; > __u32 cpu_domain; > struct cpu_context_save cpu_context; > __u32 syscall; > __u8 used_cp[16]; > unsigned long tp_value; > > > > union fp_state fpstate __attribute__((aligned(8))); > union vfp_state vfpstate; > > unsigned long thumbee_state; > > struct restart_block restart_block; >}; ># 94 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct thread_info *current_thread_info(void) __attribute__((__const__)); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct thread_info *current_thread_info(void) >{ > register unsigned long sp asm ("sp"); > return (struct thread_info *)(sp & ~(8192 - 1)); >} ># 109 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/thread_info.h" >extern void crunch_task_disable(struct thread_info *); >extern void crunch_task_copy(struct thread_info *, void *); >extern void crunch_task_restore(struct thread_info *, void *); >extern void crunch_task_release(struct thread_info *); > >extern void iwmmxt_task_disable(struct thread_info *); >extern void iwmmxt_task_copy(struct thread_info *, void *); >extern void iwmmxt_task_restore(struct thread_info *, void *); >extern void iwmmxt_task_release(struct thread_info *); >extern void iwmmxt_task_switch(struct thread_info *); > >extern void vfp_sync_hwstate(struct thread_info *); >extern void vfp_flush_hwstate(struct thread_info *); > >struct user_vfp; >struct user_vfp_exc; > >extern int vfp_preserve_user_clear_hwstate(struct user_vfp *, > struct user_vfp_exc *); >extern int vfp_restore_user_hwstate(struct user_vfp *, > struct user_vfp_exc *); ># 55 "include/linux/thread_info.h" 2 ># 71 "include/linux/thread_info.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_ti_thread_flag(struct thread_info *ti, int flag) >{ > _set_bit(flag,(unsigned long *)&ti->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_ti_thread_flag(struct thread_info *ti, int flag) >{ > _clear_bit(flag,(unsigned long *)&ti->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) >{ > return _test_and_set_bit(flag,(unsigned long *)&ti->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) >{ > return _test_and_clear_bit(flag,(unsigned long *)&ti->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_ti_thread_flag(struct thread_info *ti, int flag) >{ > return test_bit(flag, (unsigned long *)&ti->flags); >} ># 128 "include/linux/thread_info.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_restore_sigmask(void) >{ > set_ti_thread_flag(current_thread_info(), 20); > ({ int __ret_warn_on = !!(!test_ti_thread_flag(current_thread_info(), 0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/thread_info.h", 131); __builtin_expect(!!(__ret_warn_on), 0); }); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_restore_sigmask(void) >{ > clear_ti_thread_flag(current_thread_info(), 20); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool test_restore_sigmask(void) >{ > return test_ti_thread_flag(current_thread_info(), 20); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool test_and_clear_restore_sigmask(void) >{ > return test_and_clear_ti_thread_flag(current_thread_info(), 20); >} ># 10 "include/linux/preempt.h" 2 ># 51 "include/linux/spinlock.h" 2 > > > > > ># 1 "include/linux/stringify.h" 1 ># 57 "include/linux/spinlock.h" 2 ># 1 "include/linux/bottom_half.h" 1 > > > >extern void local_bh_disable(void); >extern void _local_bh_enable(void); >extern void local_bh_enable(void); >extern void local_bh_enable_ip(unsigned long ip); ># 58 "include/linux/spinlock.h" 2 ># 81 "include/linux/spinlock.h" ># 1 "include/linux/spinlock_types.h" 1 ># 13 "include/linux/spinlock_types.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock_types.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock_types.h" >typedef struct { > union { > u32 slock; > struct __raw_tickets { > > > > > u16 owner; > u16 next; > > } tickets; > }; >} arch_spinlock_t; > > > >typedef struct { > volatile unsigned int lock; >} arch_rwlock_t; ># 14 "include/linux/spinlock_types.h" 2 > > > > ># 1 "include/linux/lockdep.h" 1 ># 12 "include/linux/lockdep.h" >struct task_struct; >struct lockdep_map; > > >extern int prove_locking; >extern int lock_stat; ># 368 "include/linux/lockdep.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lockdep_off(void) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lockdep_on(void) >{ >} ># 409 "include/linux/lockdep.h" >struct lock_class_key { }; ># 463 "include/linux/lockdep.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void print_irqtrace_events(struct task_struct *curr) >{ >} ># 19 "include/linux/spinlock_types.h" 2 > >typedef struct raw_spinlock { > arch_spinlock_t raw_lock; ># 32 "include/linux/spinlock_types.h" >} raw_spinlock_t; ># 64 "include/linux/spinlock_types.h" >typedef struct spinlock { > union { > struct raw_spinlock rlock; ># 75 "include/linux/spinlock_types.h" > }; >} spinlock_t; ># 86 "include/linux/spinlock_types.h" ># 1 "include/linux/rwlock_types.h" 1 ># 11 "include/linux/rwlock_types.h" >typedef struct { > arch_rwlock_t raw_lock; ># 23 "include/linux/rwlock_types.h" >} rwlock_t; ># 87 "include/linux/spinlock_types.h" 2 ># 82 "include/linux/spinlock.h" 2 > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" 1 > > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" 1 ># 22 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hw_breakpoint.h" 1 > > > > > >struct task_struct; > > > >struct arch_hw_breakpoint_ctrl { > u32 __reserved : 9, > mismatch : 1, > : 9, > len : 8, > type : 2, > privilege : 2, > enabled : 1; >}; > >struct arch_hw_breakpoint { > u32 address; > u32 trigger; > struct arch_hw_breakpoint_ctrl step_ctrl; > struct arch_hw_breakpoint_ctrl ctrl; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 encode_ctrl_reg(struct arch_hw_breakpoint_ctrl ctrl) >{ > return (ctrl.mismatch << 22) | (ctrl.len << 5) | (ctrl.type << 3) | > (ctrl.privilege << 1) | ctrl.enabled; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void decode_ctrl_reg(u32 reg, > struct arch_hw_breakpoint_ctrl *ctrl) >{ > ctrl->enabled = reg & 0x1; > reg >>= 1; > ctrl->privilege = reg & 0x3; > reg >>= 2; > ctrl->type = reg & 0x3; > reg >>= 2; > ctrl->len = reg & 0xff; > reg >>= 17; > ctrl->mismatch = reg & 0x1; >} ># 109 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hw_breakpoint.h" >struct notifier_block; >struct perf_event; >struct pmu; > >extern struct pmu perf_ops_bp; >extern int arch_bp_generic_fields(struct arch_hw_breakpoint_ctrl ctrl, > int *gen_len, int *gen_type); >extern int arch_check_bp_in_kernelspace(struct perf_event *bp); >extern int arch_validate_hwbkpt_settings(struct perf_event *bp); >extern int hw_breakpoint_exceptions_notify(struct notifier_block *unused, > unsigned long val, void *data); > >extern u8 arch_get_debug_arch(void); >extern u8 arch_get_max_wp_len(void); >extern void clear_ptrace_hw_breakpoint(struct task_struct *tsk); > >int arch_install_hw_breakpoint(struct perf_event *bp); >void arch_uninstall_hw_breakpoint(struct perf_event *bp); >void hw_breakpoint_pmu_read(struct perf_event *bp); >int hw_breakpoint_slots(int type); ># 23 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" 2 > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 25 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" 2 > > > > > > > >struct debug_info { > > struct perf_event *hbp[(16 + 16)]; > >}; > >struct thread_struct { > > unsigned long address; > unsigned long trap_no; > unsigned long error_code; > > struct debug_info debug; >}; ># 75 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" >struct task_struct; > > >extern void release_thread(struct task_struct *); > >unsigned long get_wchan(struct task_struct *p); ># 100 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/processor.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void prefetch(const void *ptr) >{ > __asm__ __volatile__( > "pld\t%a0" > : > : "p" (ptr) > : "cc"); >} ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" 2 ># 45 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dsb_sev(void) >{ > > __asm__ __volatile__ ( > "dsb\n" > "9998: " "sev" "\n" " .pushsection \".alt.smp.init\", \"a\"\n" " .long 9998b\n" " " "nop" "\n" " .popsection\n" > ); > > > > > > > >} ># 74 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_spin_lock(arch_spinlock_t *lock) >{ > unsigned long tmp; > u32 newval; > arch_spinlock_t lockval; > > __asm__ __volatile__( >"1: ldrex %0, [%3]\n" >" add %1, %0, %4\n" >" strex %2, %1, [%3]\n" >" teq %2, #0\n" >" bne 1b" > : "=&r" (lockval), "=&r" (newval), "=&r" (tmp) > : "r" (&lock->slock), "I" (1 << 16) > : "cc"); > > while (lockval.tickets.next != lockval.tickets.owner) { > __asm__ __volatile__ ("wfe" : : : "memory"); > lockval.tickets.owner = (*(volatile typeof(lock->tickets.owner) *)&(lock->tickets.owner)); > } > > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_spin_trylock(arch_spinlock_t *lock) >{ > unsigned long tmp; > u32 slock; > > __asm__ __volatile__( >" ldrex %0, [%2]\n" >" subs %1, %0, %0, ror #16\n" >" addeq %0, %0, %3\n" >" strexeq %1, %0, [%2]" > : "=&r" (slock), "=&r" (tmp) > : "r" (&lock->slock), "I" (1 << 16) > : "cc"); > > if (tmp == 0) { > __asm__ __volatile__ ("dmb" : : : "memory"); > return 1; > } else { > return 0; > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_spin_unlock(arch_spinlock_t *lock) >{ > unsigned long tmp; > u32 slock; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__( >" mov %1, #1\n" >"1: ldrex %0, [%2]\n" >" uadd16 %0, %0, %1\n" >" strex %1, %0, [%2]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (slock), "=&r" (tmp) > : "r" (&lock->slock) > : "cc"); > > dsb_sev(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_spin_is_locked(arch_spinlock_t *lock) >{ > struct __raw_tickets tickets = (*(volatile typeof(lock->tickets) *)&(lock->tickets)); > return tickets.owner != tickets.next; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_spin_is_contended(arch_spinlock_t *lock) >{ > struct __raw_tickets tickets = (*(volatile typeof(lock->tickets) *)&(lock->tickets)); > return (tickets.next - tickets.owner) > 1; >} ># 162 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_write_lock(arch_rwlock_t *rw) >{ > unsigned long tmp; > > __asm__ __volatile__( >"1: ldrex %0, [%1]\n" >" teq %0, #0\n" > "9998: " "wfe" "ne" "\n" " .pushsection \".alt.smp.init\", \"a\"\n" " .long 9998b\n" " " "nop" "\n" " .popsection\n" >" strexeq %0, %2, [%1]\n" >" teq %0, #0\n" >" bne 1b" > : "=&r" (tmp) > : "r" (&rw->lock), "r" (0x80000000) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_write_trylock(arch_rwlock_t *rw) >{ > unsigned long tmp; > > __asm__ __volatile__( >" ldrex %0, [%1]\n" >" teq %0, #0\n" >" strexeq %0, %2, [%1]" > : "=&r" (tmp) > : "r" (&rw->lock), "r" (0x80000000) > : "cc"); > > if (tmp == 0) { > __asm__ __volatile__ ("dmb" : : : "memory"); > return 1; > } else { > return 0; > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_write_unlock(arch_rwlock_t *rw) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__( > "str %1, [%0]\n" > : > : "r" (&rw->lock), "r" (0) > : "cc"); > > dsb_sev(); >} ># 228 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_read_lock(arch_rwlock_t *rw) >{ > unsigned long tmp, tmp2; > > __asm__ __volatile__( >"1: ldrex %0, [%2]\n" >" adds %0, %0, #1\n" >" strexpl %1, %0, [%2]\n" > "9998: " "wfe" "mi" "\n" " .pushsection \".alt.smp.init\", \"a\"\n" " .long 9998b\n" " " "nop" "\n" " .popsection\n" >" rsbpls %0, %1, #0\n" >" bmi 1b" > : "=&r" (tmp), "=&r" (tmp2) > : "r" (&rw->lock) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_read_unlock(arch_rwlock_t *rw) >{ > unsigned long tmp, tmp2; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__( >"1: ldrex %0, [%2]\n" >" sub %0, %0, #1\n" >" strex %1, %0, [%2]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (tmp), "=&r" (tmp2) > : "r" (&rw->lock) > : "cc"); > > if (tmp == 0) > dsb_sev(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int arch_read_trylock(arch_rwlock_t *rw) >{ > unsigned long tmp, tmp2 = 1; > > __asm__ __volatile__( >" ldrex %0, [%2]\n" >" adds %0, %0, #1\n" >" strexpl %1, %0, [%2]\n" > : "=&r" (tmp), "+r" (tmp2) > : "r" (&rw->lock) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > return tmp2 == 0; >} ># 88 "include/linux/spinlock.h" 2 ># 122 "include/linux/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void smp_mb__after_lock(void) { __asm__ __volatile__ ("dmb" : : : "memory"); } ># 137 "include/linux/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void do_raw_spin_lock(raw_spinlock_t *lock) >{ > (void)0; > arch_spin_lock(&lock->raw_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) >{ > (void)0; > arch_spin_lock(&lock->raw_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int do_raw_spin_trylock(raw_spinlock_t *lock) >{ > return arch_spin_trylock(&(lock)->raw_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void do_raw_spin_unlock(raw_spinlock_t *lock) >{ > arch_spin_unlock(&lock->raw_lock); > (void)0; >} ># 257 "include/linux/spinlock.h" ># 1 "include/linux/rwlock.h" 1 ># 258 "include/linux/spinlock.h" 2 > > > > > ># 1 "include/linux/spinlock_api_smp.h" 1 ># 18 "include/linux/spinlock_api_smp.h" >int in_lock_functions(unsigned long addr); > > > >void __attribute__((section(".spinlock.text"))) _raw_spin_lock(raw_spinlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) > ; >void __attribute__((section(".spinlock.text"))) >_raw_spin_lock_nest_lock(raw_spinlock_t *lock, struct lockdep_map *map) > ; >void __attribute__((section(".spinlock.text"))) _raw_spin_lock_bh(raw_spinlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_spin_lock_irq(raw_spinlock_t *lock) > ; > >unsigned long __attribute__((section(".spinlock.text"))) _raw_spin_lock_irqsave(raw_spinlock_t *lock) > ; >unsigned long __attribute__((section(".spinlock.text"))) >_raw_spin_lock_irqsave_nested(raw_spinlock_t *lock, int subclass) > ; >int __attribute__((section(".spinlock.text"))) _raw_spin_trylock(raw_spinlock_t *lock); >int __attribute__((section(".spinlock.text"))) _raw_spin_trylock_bh(raw_spinlock_t *lock); >void __attribute__((section(".spinlock.text"))) _raw_spin_unlock(raw_spinlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_spin_unlock_bh(raw_spinlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_spin_unlock_irq(raw_spinlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) >_raw_spin_unlock_irqrestore(raw_spinlock_t *lock, unsigned long flags) > ; ># 86 "include/linux/spinlock_api_smp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __raw_spin_trylock(raw_spinlock_t *lock) >{ > do { } while (0); > if (do_raw_spin_trylock(lock)) { > do { } while (0); > return 1; > } > do { } while (0); > return 0; >} ># 104 "include/linux/spinlock_api_smp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __raw_spin_lock_irqsave(raw_spinlock_t *lock) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > do { } while (0); > do { } while (0); ># 119 "include/linux/spinlock_api_smp.h" > do_raw_spin_lock_flags(lock, &flags); > > return flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_lock_irq(raw_spinlock_t *lock) >{ > do { arch_local_irq_disable(); do { } while (0); } while (0); > do { } while (0); > do { } while (0); > do_raw_spin_lock(lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_lock_bh(raw_spinlock_t *lock) >{ > local_bh_disable(); > do { } while (0); > do { } while (0); > do_raw_spin_lock(lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_lock(raw_spinlock_t *lock) >{ > do { } while (0); > do { } while (0); > do_raw_spin_lock(lock); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_unlock(raw_spinlock_t *lock) >{ > do { } while (0); > do_raw_spin_unlock(lock); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_unlock_irqrestore(raw_spinlock_t *lock, > unsigned long flags) >{ > do { } while (0); > do_raw_spin_unlock(lock); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_unlock_irq(raw_spinlock_t *lock) >{ > do { } while (0); > do_raw_spin_unlock(lock); > do { do { } while (0); arch_local_irq_enable(); } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_spin_unlock_bh(raw_spinlock_t *lock) >{ > do { } while (0); > do_raw_spin_unlock(lock); > do { } while (0); > local_bh_enable_ip((unsigned long)__builtin_return_address(0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __raw_spin_trylock_bh(raw_spinlock_t *lock) >{ > local_bh_disable(); > do { } while (0); > if (do_raw_spin_trylock(lock)) { > do { } while (0); > return 1; > } > do { } while (0); > local_bh_enable_ip((unsigned long)__builtin_return_address(0)); > return 0; >} > ># 1 "include/linux/rwlock_api_smp.h" 1 ># 18 "include/linux/rwlock_api_smp.h" >void __attribute__((section(".spinlock.text"))) _raw_read_lock(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_lock(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_read_lock_bh(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_lock_bh(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_read_lock_irq(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_lock_irq(rwlock_t *lock) ; >unsigned long __attribute__((section(".spinlock.text"))) _raw_read_lock_irqsave(rwlock_t *lock) > ; >unsigned long __attribute__((section(".spinlock.text"))) _raw_write_lock_irqsave(rwlock_t *lock) > ; >int __attribute__((section(".spinlock.text"))) _raw_read_trylock(rwlock_t *lock); >int __attribute__((section(".spinlock.text"))) _raw_write_trylock(rwlock_t *lock); >void __attribute__((section(".spinlock.text"))) _raw_read_unlock(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_unlock(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_read_unlock_bh(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_unlock_bh(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_read_unlock_irq(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) _raw_write_unlock_irq(rwlock_t *lock) ; >void __attribute__((section(".spinlock.text"))) >_raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) > ; >void __attribute__((section(".spinlock.text"))) >_raw_write_unlock_irqrestore(rwlock_t *lock, unsigned long flags) > ; ># 117 "include/linux/rwlock_api_smp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __raw_read_trylock(rwlock_t *lock) >{ > do { } while (0); > if (arch_read_trylock(&(lock)->raw_lock)) { > do { } while (0); > return 1; > } > do { } while (0); > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __raw_write_trylock(rwlock_t *lock) >{ > do { } while (0); > if (arch_write_trylock(&(lock)->raw_lock)) { > do { } while (0); > return 1; > } > do { } while (0); > return 0; >} ># 146 "include/linux/rwlock_api_smp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_lock(rwlock_t *lock) >{ > do { } while (0); > do { } while (0); > do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __raw_read_lock_irqsave(rwlock_t *lock) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > do { } while (0); > do { } while (0); > do {(void)0; arch_read_lock(&((lock))->raw_lock); } while (0) > ; > return flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_lock_irq(rwlock_t *lock) >{ > do { arch_local_irq_disable(); do { } while (0); } while (0); > do { } while (0); > do { } while (0); > do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_lock_bh(rwlock_t *lock) >{ > local_bh_disable(); > do { } while (0); > do { } while (0); > do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __raw_write_lock_irqsave(rwlock_t *lock) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > do { } while (0); > do { } while (0); > do {(void)0; arch_write_lock(&((lock))->raw_lock); } while (0) > ; > return flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_lock_irq(rwlock_t *lock) >{ > do { arch_local_irq_disable(); do { } while (0); } while (0); > do { } while (0); > do { } while (0); > do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_lock_bh(rwlock_t *lock) >{ > local_bh_disable(); > do { } while (0); > do { } while (0); > do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_lock(rwlock_t *lock) >{ > do { } while (0); > do { } while (0); > do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_unlock(rwlock_t *lock) >{ > do { } while (0); > do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_unlock(rwlock_t *lock) >{ > do { } while (0); > do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >__raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) >{ > do { } while (0); > do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_unlock_irq(rwlock_t *lock) >{ > do { } while (0); > do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { do { } while (0); arch_local_irq_enable(); } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_read_unlock_bh(rwlock_t *lock) >{ > do { } while (0); > do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { } while (0); > local_bh_enable_ip((unsigned long)__builtin_return_address(0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_unlock_irqrestore(rwlock_t *lock, > unsigned long flags) >{ > do { } while (0); > do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_unlock_irq(rwlock_t *lock) >{ > do { } while (0); > do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { do { } while (0); arch_local_irq_enable(); } while (0); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_write_unlock_bh(rwlock_t *lock) >{ > do { } while (0); > do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); > do { } while (0); > local_bh_enable_ip((unsigned long)__builtin_return_address(0)); >} ># 195 "include/linux/spinlock_api_smp.h" 2 ># 264 "include/linux/spinlock.h" 2 ># 272 "include/linux/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) raw_spinlock_t *spinlock_check(spinlock_t *lock) >{ > return &lock->rlock; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_lock(spinlock_t *lock) >{ > _raw_spin_lock(&lock->rlock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_lock_bh(spinlock_t *lock) >{ > _raw_spin_lock_bh(&lock->rlock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_trylock(spinlock_t *lock) >{ > return (_raw_spin_trylock(&lock->rlock)); >} ># 308 "include/linux/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_lock_irq(spinlock_t *lock) >{ > _raw_spin_lock_irq(&lock->rlock); >} ># 323 "include/linux/spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_unlock(spinlock_t *lock) >{ > __raw_spin_unlock(&lock->rlock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_unlock_bh(spinlock_t *lock) >{ > _raw_spin_unlock_bh(&lock->rlock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_unlock_irq(spinlock_t *lock) >{ > __raw_spin_unlock_irq(&lock->rlock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) >{ > do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _raw_spin_unlock_irqrestore(&lock->rlock, flags); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_trylock_bh(spinlock_t *lock) >{ > return (_raw_spin_trylock_bh(&lock->rlock)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_trylock_irq(spinlock_t *lock) >{ > return ({ do { arch_local_irq_disable(); do { } while (0); } while (0); (_raw_spin_trylock(&lock->rlock)) ? 1 : ({ do { do { } while (0); arch_local_irq_enable(); } while (0); 0; }); }); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void spin_unlock_wait(spinlock_t *lock) >{ > do { while (arch_spin_is_locked(&(&lock->rlock)->raw_lock)) __asm__ __volatile__ ("dmb" : : : "memory"); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_is_locked(spinlock_t *lock) >{ > return arch_spin_is_locked(&(&lock->rlock)->raw_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_is_contended(spinlock_t *lock) >{ > return arch_spin_is_contended(&(&lock->rlock)->raw_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_can_lock(spinlock_t *lock) >{ > return (!arch_spin_is_locked(&(&lock->rlock)->raw_lock)); >} > > > > > > > ># 1 "include/linux/atomic.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" 1 ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cmpxchg.h" 1 ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cmpxchg.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __xchg(unsigned long x, volatile void *ptr, int size) >{ > extern void __bad_xchg(volatile void *, int); > unsigned long ret; > > > > > unsigned int tmp; > > > __asm__ __volatile__ ("dmb" : : : "memory"); > > switch (size) { > > case 1: > asm volatile("@ __xchg1\n" > "1: ldrexb %0, [%3]\n" > " strexb %1, %2, [%3]\n" > " teq %1, #0\n" > " bne 1b" > : "=&r" (ret), "=&r" (tmp) > : "r" (x), "r" (ptr) > : "memory", "cc"); > break; > case 4: > asm volatile("@ __xchg4\n" > "1: ldrex %0, [%3]\n" > " strex %1, %2, [%3]\n" > " teq %1, #0\n" > " bne 1b" > : "=&r" (ret), "=&r" (tmp) > : "r" (x), "r" (ptr) > : "memory", "cc"); > break; ># 94 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cmpxchg.h" > default: > __bad_xchg(ptr, size), ret = 0; > break; > } > __asm__ __volatile__ ("dmb" : : : "memory"); > > return ret; >} > > > > ># 1 "include/asm-generic/cmpxchg-local.h" 1 > > > > > > >extern unsigned long wrong_size_cmpxchg(volatile void *ptr); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __cmpxchg_local_generic(volatile void *ptr, > unsigned long old, unsigned long new, int size) >{ > unsigned long flags, prev; > > > > > if (size == 8 && sizeof(unsigned long) != 8) > wrong_size_cmpxchg(ptr); > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > switch (size) { > case 1: prev = *(u8 *)ptr; > if (prev == old) > *(u8 *)ptr = (u8)new; > break; > case 2: prev = *(u16 *)ptr; > if (prev == old) > *(u16 *)ptr = (u16)new; > break; > case 4: prev = *(u32 *)ptr; > if (prev == old) > *(u32 *)ptr = (u32)new; > break; > case 8: prev = *(u64 *)ptr; > if (prev == old) > *(u64 *)ptr = (u64)new; > break; > default: > wrong_size_cmpxchg(ptr); > } > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > return prev; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 __cmpxchg64_local_generic(volatile void *ptr, > u64 old, u64 new) >{ > u64 prev; > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > prev = *(u64 *)ptr; > if (prev == old) > *(u64 *)ptr = new; > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > return prev; >} ># 107 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cmpxchg.h" 2 ># 130 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cmpxchg.h" >extern void __bad_cmpxchg(volatile void *ptr, int size); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __cmpxchg(volatile void *ptr, unsigned long old, > unsigned long new, int size) >{ > unsigned long oldval, res; > > switch (size) { > > case 1: > do { > asm volatile("@ __cmpxchg1\n" > " ldrexb %1, [%2]\n" > " mov %0, #0\n" > " teq %1, %3\n" > " strexbeq %0, %4, [%2]\n" > : "=&r" (res), "=&r" (oldval) > : "r" (ptr), "Ir" (old), "r" (new) > : "memory", "cc"); > } while (res); > break; > case 2: > do { > asm volatile("@ __cmpxchg1\n" > " ldrexh %1, [%2]\n" > " mov %0, #0\n" > " teq %1, %3\n" > " strexheq %0, %4, [%2]\n" > : "=&r" (res), "=&r" (oldval) > : "r" (ptr), "Ir" (old), "r" (new) > : "memory", "cc"); > } while (res); > break; > > case 4: > do { > asm volatile("@ __cmpxchg4\n" > " ldrex %1, [%2]\n" > " mov %0, #0\n" > " teq %1, %3\n" > " strexeq %0, %4, [%2]\n" > : "=&r" (res), "=&r" (oldval) > : "r" (ptr), "Ir" (old), "r" (new) > : "memory", "cc"); > } while (res); > break; > default: > __bad_cmpxchg(ptr, size); > oldval = 0; > } > > return oldval; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old, > unsigned long new, int size) >{ > unsigned long ret; > > __asm__ __volatile__ ("dmb" : : : "memory"); > ret = __cmpxchg(ptr, old, new, size); > __asm__ __volatile__ ("dmb" : : : "memory"); > > return ret; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __cmpxchg_local(volatile void *ptr, > unsigned long old, > unsigned long new, int size) >{ > unsigned long ret; > > switch (size) { > > > > > > > default: > ret = __cmpxchg(ptr, old, new, size); > } > > return ret; >} ># 19 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" 2 ># 39 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_add(int i, atomic_t *v) >{ > unsigned long tmp; > int result; > > __asm__ __volatile__("@ atomic_add\n" >"1: ldrex %0, [%3]\n" >" add %0, %0, %4\n" >" strex %1, %0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "Ir" (i) > : "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_add_return(int i, atomic_t *v) >{ > unsigned long tmp; > int result; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic_add_return\n" >"1: ldrex %0, [%3]\n" >" add %0, %0, %4\n" >" strex %1, %0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "Ir" (i) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_sub(int i, atomic_t *v) >{ > unsigned long tmp; > int result; > > __asm__ __volatile__("@ atomic_sub\n" >"1: ldrex %0, [%3]\n" >" sub %0, %0, %4\n" >" strex %1, %0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "Ir" (i) > : "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_sub_return(int i, atomic_t *v) >{ > unsigned long tmp; > int result; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic_sub_return\n" >"1: ldrex %0, [%3]\n" >" sub %0, %0, %4\n" >" strex %1, %0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "Ir" (i) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_cmpxchg(atomic_t *ptr, int old, int new) >{ > unsigned long oldval, res; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > do { > __asm__ __volatile__("@ atomic_cmpxchg\n" > "ldrex %1, [%3]\n" > "mov %0, #0\n" > "teq %1, %4\n" > "strexeq %0, %5, [%3]\n" > : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) > : "r" (&ptr->counter), "Ir" (old), "r" (new) > : "cc"); > } while (res); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return oldval; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_clear_mask(unsigned long mask, unsigned long *addr) >{ > unsigned long tmp, tmp2; > > __asm__ __volatile__("@ atomic_clear_mask\n" >"1: ldrex %0, [%3]\n" >" bic %0, %0, %4\n" >" strex %1, %0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (tmp), "=&r" (tmp2), "+Qo" (*addr) > : "r" (addr), "Ir" (mask) > : "cc"); >} ># 213 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __atomic_add_unless(atomic_t *v, int a, int u) >{ > int c, old; > > c = (*(volatile int *)&(v)->counter); > while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c) > c = old; > return c; >} ># 240 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/atomic.h" >typedef struct { > u64 __attribute__((aligned(8))) counter; >} atomic64_t; > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_read(const atomic64_t *v) >{ > u64 result; > > __asm__ __volatile__("@ atomic64_read\n" >" ldrexd %0, %H0, [%1]" > : "=&r" (result) > : "r" (&v->counter), "Qo" (v->counter) > ); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic64_set(atomic64_t *v, u64 i) >{ > u64 tmp; > > __asm__ __volatile__("@ atomic64_set\n" >"1: ldrexd %0, %H0, [%2]\n" >" strexd %0, %3, %H3, [%2]\n" >" teq %0, #0\n" >" bne 1b" > : "=&r" (tmp), "=Qo" (v->counter) > : "r" (&v->counter), "r" (i) > : "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic64_add(u64 i, atomic64_t *v) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__("@ atomic64_add\n" >"1: ldrexd %0, %H0, [%3]\n" >" adds %0, %0, %4\n" >" adc %H0, %H0, %H4\n" >" strexd %1, %0, %H0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "r" (i) > : "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_add_return(u64 i, atomic64_t *v) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic64_add_return\n" >"1: ldrexd %0, %H0, [%3]\n" >" adds %0, %0, %4\n" >" adc %H0, %H0, %H4\n" >" strexd %1, %0, %H0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "r" (i) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic64_sub(u64 i, atomic64_t *v) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__("@ atomic64_sub\n" >"1: ldrexd %0, %H0, [%3]\n" >" subs %0, %0, %4\n" >" sbc %H0, %H0, %H4\n" >" strexd %1, %0, %H0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "r" (i) > : "cc"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_sub_return(u64 i, atomic64_t *v) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic64_sub_return\n" >"1: ldrexd %0, %H0, [%3]\n" >" subs %0, %0, %4\n" >" sbc %H0, %H0, %H4\n" >" strexd %1, %0, %H0, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "r" (i) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new) >{ > u64 oldval; > unsigned long res; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > do { > __asm__ __volatile__("@ atomic64_cmpxchg\n" > "ldrexd %1, %H1, [%3]\n" > "mov %0, #0\n" > "teq %1, %4\n" > "teqeq %H1, %H4\n" > "strexdeq %0, %5, %H5, [%3]" > : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) > : "r" (&ptr->counter), "r" (old), "r" (new) > : "cc"); > } while (res); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return oldval; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_xchg(atomic64_t *ptr, u64 new) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic64_xchg\n" >"1: ldrexd %0, %H0, [%3]\n" >" strexd %1, %4, %H4, [%3]\n" >" teq %1, #0\n" >" bne 1b" > : "=&r" (result), "=&r" (tmp), "+Qo" (ptr->counter) > : "r" (&ptr->counter), "r" (new) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 atomic64_dec_if_positive(atomic64_t *v) >{ > u64 result; > unsigned long tmp; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic64_dec_if_positive\n" >"1: ldrexd %0, %H0, [%3]\n" >" subs %0, %0, #1\n" >" sbc %H0, %H0, #0\n" >" teq %H0, #0\n" >" bmi 2f\n" >" strexd %1, %0, %H0, [%3]\n" >" teq %1, #0\n" >" bne 1b\n" >"2:" > : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter) > : "cc"); > > __asm__ __volatile__ ("dmb" : : : "memory"); > > return result; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) >{ > u64 val; > unsigned long tmp; > int ret = 1; > > __asm__ __volatile__ ("dmb" : : : "memory"); > > __asm__ __volatile__("@ atomic64_add_unless\n" >"1: ldrexd %0, %H0, [%4]\n" >" teq %0, %5\n" >" teqeq %H0, %H5\n" >" moveq %1, #0\n" >" beq 2f\n" >" adds %0, %0, %6\n" >" adc %H0, %H0, %H6\n" >" strexd %2, %0, %H0, [%4]\n" >" teq %2, #0\n" >" bne 1b\n" >"2:" > : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) > : "r" (&v->counter), "r" (u), "r" (a) > : "cc"); > > if (ret) > __asm__ __volatile__ ("dmb" : : : "memory"); > > return ret; >} ># 5 "include/linux/atomic.h" 2 ># 15 "include/linux/atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_add_unless(atomic_t *v, int a, int u) >{ > return __atomic_add_unless(v, a, u) != u; >} ># 44 "include/linux/atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_inc_not_zero_hint(atomic_t *v, int hint) >{ > int val, c = hint; > > > if (!hint) > return atomic_add_unless((v), 1, 0); > > do { > val = atomic_cmpxchg(v, c, c + 1); > if (val == c) > return 1; > c = val; > } while (c); > > return 0; >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_inc_unless_negative(atomic_t *p) >{ > int v, v1; > for (v = 0; v >= 0; v = v1) { > v1 = atomic_cmpxchg(p, v, v + 1); > if (__builtin_expect(!!(v1 == v), 1)) > return 1; > } > return 0; >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_dec_unless_positive(atomic_t *p) >{ > int v, v1; > for (v = 0; v <= 0; v = v1) { > v1 = atomic_cmpxchg(p, v, v - 1); > if (__builtin_expect(!!(v1 == v), 1)) > return 1; > } > return 0; >} ># 97 "include/linux/atomic.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_dec_if_positive(atomic_t *v) >{ > int c, old, dec; > c = (*(volatile int *)&(v)->counter); > for (;;) { > dec = c - 1; > if (__builtin_expect(!!(dec < 0), 0)) > break; > old = atomic_cmpxchg((v), c, dec); > if (__builtin_expect(!!(old == c), 1)) > break; > c = old; > } > return dec; >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_or(int i, atomic_t *v) >{ > int old; > int new; > > do { > old = (*(volatile int *)&(v)->counter); > new = old | i; > } while (atomic_cmpxchg(v, old, new) != old); >} > > ># 1 "include/asm-generic/atomic-long.h" 1 ># 11 "include/asm-generic/atomic-long.h" ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 12 "include/asm-generic/atomic-long.h" 2 ># 141 "include/asm-generic/atomic-long.h" >typedef atomic_t atomic_long_t; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_read(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (long)(*(volatile int *)&(v)->counter); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_long_set(atomic_long_t *l, long i) >{ > atomic_t *v = (atomic_t *)l; > > (((v)->counter) = (i)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_long_inc(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > atomic_add(1, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_long_dec(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > atomic_sub(1, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_long_add(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > atomic_add(i, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void atomic_long_sub(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > atomic_sub(i, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_long_sub_and_test(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (atomic_sub_return(i, v) == 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_long_dec_and_test(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (atomic_sub_return(1, v) == 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_long_inc_and_test(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (atomic_add_return(1, v) == 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atomic_long_add_negative(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (atomic_add_return(i, v) < 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_add_return(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (long)atomic_add_return(i, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_sub_return(long i, atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (long)atomic_sub_return(i, v); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_inc_return(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (long)(atomic_add_return(1, v)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_dec_return(atomic_long_t *l) >{ > atomic_t *v = (atomic_t *)l; > > return (long)(atomic_sub_return(1, v)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long atomic_long_add_unless(atomic_long_t *l, long a, long u) >{ > atomic_t *v = (atomic_t *)l; > > return (long)atomic_add_unless(v, a, u); >} ># 128 "include/linux/atomic.h" 2 ># 385 "include/linux/spinlock.h" 2 ># 393 "include/linux/spinlock.h" >extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock); ># 30 "include/linux/seqlock.h" 2 > > > >typedef struct { > unsigned sequence; > spinlock_t lock; >} seqlock_t; ># 58 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void write_seqlock(seqlock_t *sl) >{ > spin_lock(&sl->lock); > ++sl->sequence; > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void write_sequnlock(seqlock_t *sl) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > sl->sequence++; > spin_unlock(&sl->lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int write_tryseqlock(seqlock_t *sl) >{ > int ret = spin_trylock(&sl->lock); > > if (ret) { > ++sl->sequence; > __asm__ __volatile__ ("dmb" : : : "memory"); > } > return ret; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned read_seqbegin(const seqlock_t *sl) >{ > unsigned ret; > >repeat: > ret = (*(volatile typeof(sl->sequence) *)&(sl->sequence)); > if (__builtin_expect(!!(ret & 1), 0)) { > __asm__ __volatile__ ("dmb" : : : "memory"); > goto repeat; > } > __asm__ __volatile__ ("dmb" : : : "memory"); > > return ret; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) int read_seqretry(const seqlock_t *sl, unsigned start) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > > return __builtin_expect(!!(sl->sequence != start), 0); >} ># 119 "include/linux/seqlock.h" >typedef struct seqcount { > unsigned sequence; >} seqcount_t; ># 139 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned __read_seqcount_begin(const seqcount_t *s) >{ > unsigned ret; > >repeat: > ret = (*(volatile typeof(s->sequence) *)&(s->sequence)); > if (__builtin_expect(!!(ret & 1), 0)) { > __asm__ __volatile__ ("dmb" : : : "memory"); > goto repeat; > } > return ret; >} ># 161 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned read_seqcount_begin(const seqcount_t *s) >{ > unsigned ret = __read_seqcount_begin(s); > __asm__ __volatile__ ("dmb" : : : "memory"); > return ret; >} ># 182 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned raw_seqcount_begin(const seqcount_t *s) >{ > unsigned ret = (*(volatile typeof(s->sequence) *)&(s->sequence)); > __asm__ __volatile__ ("dmb" : : : "memory"); > return ret & ~1; >} ># 203 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __read_seqcount_retry(const seqcount_t *s, unsigned start) >{ > return __builtin_expect(!!(s->sequence != start), 0); >} ># 218 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int read_seqcount_retry(const seqcount_t *s, unsigned start) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > > return __read_seqcount_retry(s, start); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void write_seqcount_begin(seqcount_t *s) >{ > s->sequence++; > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void write_seqcount_end(seqcount_t *s) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > s->sequence++; >} ># 249 "include/linux/seqlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void write_seqcount_barrier(seqcount_t *s) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > s->sequence+=2; >} ># 6 "include/linux/time.h" 2 ># 1 "include/linux/math64.h" 1 ># 53 "include/linux/math64.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) >{ > *remainder = ({ unsigned int __r, __b = (divisor); if (!__builtin_constant_p(__b) || __b == 0 || (7 < 4 && (__b & (__b - 1)) != 0)) { __r = ({ register unsigned int __base asm("r4") = __b; register unsigned long long __n asm("r0") = dividend; register unsigned long long __res asm("r2"); register unsigned int __rem asm("r1"); asm( ".ifnc " "%0" "," "r1" " ; .err ; .endif\n\t" ".ifnc " "%1" "," "r2" " ; .err ; .endif\n\t" ".ifnc " "%2" "," "r0" " ; .err ; .endif\n\t" ".ifnc " "%3" "," "r4" " ; .err ; .endif\n\t" "bl __do_div64" : "=r" (__rem), "=r" (__res) : "r" (__n), "r" (__base) : "ip", "lr", "cc"); dividend = __res; __rem; }); } else if ((__b & (__b - 1)) == 0) { __r = dividend; __r &= (__b - 1); dividend /= __b; } else { unsigned long long __res, __x, __t, __m, __n = dividend; unsigned int __c, __p, __z = 0; __r = __n; __p = 1 << ({ unsigned int __left = (__b), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); __m = (~0ULL / __b) * __p; __m += (((~0ULL % __b + 1) * __p) + __b - 1) / __b; __x = ~0ULL / __b * __b - 1; __res = (__m & 0xffffffff) * (__x & 0xffffffff); __res >>= 32; __res += (__m & 0xffffffff) * (__x >> 32); __t = __res; __res += (__x & 0xffffffff) * (__m >> 32); __t = (__res < __t) ? (1ULL << 32) : 0; __res = (__res >> 32) + __t; __res += (__m >> 32) * (__x >> 32); __res /= __p; if (~0ULL % (__b / (__b & -__b)) == 0) { __n /= (__b & -__b); __m = ~0ULL / (__b / (__b & -__b)); __p = 1; __c = 1; } else if (__res != __x / __b) { __c = 1; __m = (~0ULL / __b) * __p; __m += ((~0ULL % __b + 1) * __p) / __b; } else { unsigned int __bits = -(__m & -__m); __bits |= __m >> 32; __bits = (~__bits) << 1; if (!__bits) { __p /= (__m & -__m); __m /= (__m & -__m); } else { __p >>= ({ unsigned int __left = (__bits), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); __m >>= ({ unsigned int __left = (__bits), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); } __c = 0; } if (!__c) { asm ( "umull %Q0, %R0, %1, %Q2\n\t" "mov %Q0, #0" : "=&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else if (!(__m & ((1ULL << 63) | (1ULL << 31)))) { __res = __m; asm ( "umlal %Q0, %R0, %Q1, %Q2\n\t" "mov %Q0, #0" : "+&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else { asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" "cmn %Q0, %Q1\n\t" "adcs %R0, %R0, %R1\n\t" "adc %Q0, %3, #0" : "=&r" (__res) : "r" (__m), "r" (__n), "r" (__z) : "cc" ); } if (!(__m & ((1ULL << 63) | (1ULL << 31)))) { asm ( "umlal %R0, %Q0, %R1, %Q2\n\t" "umlal %R0, %Q0, %Q1, %R2\n\t" "mov %R0, #0\n\t" "umlal %Q0, %R0, %R1, %R2" : "+&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else { asm ( "umlal %R0, %Q0, %R2, %Q3\n\t" "umlal %R0, %1, %Q2, %R3\n\t" "mov %R0, #0\n\t" "adds %Q0, %1, %Q0\n\t" "adc %R0, %R0, #0\n\t" "umlal %Q0, %R0, %R2, %R3" : "+&r" (__res), "+&r" (__z) : "r" (__m), "r" (__n) : "cc" ); } __res /= __p; { unsigned int __res0 = __res; unsigned int __b0 = __b; __r -= __res0 * __b0; } dividend = __res; } __r; }); > return dividend; >} > > > >extern s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder); > > > >extern u64 div64_u64(u64 dividend, u64 divisor); > > > >extern s64 div64_s64(s64 dividend, s64 divisor); ># 82 "include/linux/math64.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 div_u64(u64 dividend, u32 divisor) >{ > u32 remainder; > return div_u64_rem(dividend, divisor, &remainder); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 div_s64(s64 dividend, s32 divisor) >{ > s32 remainder; > return div_s64_rem(dividend, divisor, &remainder); >} > > >u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) u32 >__iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder) >{ > u32 ret = 0; > > while (dividend >= divisor) { > > > asm("" : "+rm"(dividend)); > > dividend -= divisor; > ret++; > } > > *remainder = dividend; > > return ret; >} ># 7 "include/linux/time.h" 2 ># 1 "include/uapi/linux/time.h" 1 ># 9 "include/uapi/linux/time.h" >struct timespec { > __kernel_time_t tv_sec; > long tv_nsec; >}; > > >struct timeval { > __kernel_time_t tv_sec; > __kernel_suseconds_t tv_usec; >}; > >struct timezone { > int tz_minuteswest; > int tz_dsttime; >}; ># 34 "include/uapi/linux/time.h" >struct itimerspec { > struct timespec it_interval; > struct timespec it_value; >}; > >struct itimerval { > struct timeval it_interval; > struct timeval it_value; >}; ># 8 "include/linux/time.h" 2 > >extern struct timezone sys_tz; ># 22 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int timespec_equal(const struct timespec *a, > const struct timespec *b) >{ > return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int timespec_compare(const struct timespec *lhs, const struct timespec *rhs) >{ > if (lhs->tv_sec < rhs->tv_sec) > return -1; > if (lhs->tv_sec > rhs->tv_sec) > return 1; > return lhs->tv_nsec - rhs->tv_nsec; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int timeval_compare(const struct timeval *lhs, const struct timeval *rhs) >{ > if (lhs->tv_sec < rhs->tv_sec) > return -1; > if (lhs->tv_sec > rhs->tv_sec) > return 1; > return lhs->tv_usec - rhs->tv_usec; >} > >extern unsigned long mktime(const unsigned int year, const unsigned int mon, > const unsigned int day, const unsigned int hour, > const unsigned int min, const unsigned int sec); > >extern void set_normalized_timespec(struct timespec *ts, time_t sec, s64 nsec); > > > > > > >extern struct timespec timespec_add_safe(const struct timespec lhs, > const struct timespec rhs); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct timespec timespec_add(struct timespec lhs, > struct timespec rhs) >{ > struct timespec ts_delta; > set_normalized_timespec(&ts_delta, lhs.tv_sec + rhs.tv_sec, > lhs.tv_nsec + rhs.tv_nsec); > return ts_delta; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct timespec timespec_sub(struct timespec lhs, > struct timespec rhs) >{ > struct timespec ts_delta; > set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec, > lhs.tv_nsec - rhs.tv_nsec); > return ts_delta; >} ># 97 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool timespec_valid(const struct timespec *ts) >{ > > if (ts->tv_sec < 0) > return false; > > if ((unsigned long)ts->tv_nsec >= 1000000000L) > return false; > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool timespec_valid_strict(const struct timespec *ts) >{ > if (!timespec_valid(ts)) > return false; > > if ((unsigned long long)ts->tv_sec >= ((long)(~0UL>>1))) > return false; > return true; >} > >extern void read_persistent_clock(struct timespec *ts); >extern void read_boot_clock(struct timespec *ts); >extern int update_persistent_clock(struct timespec now); >void timekeeping_init(void); >extern int timekeeping_suspended; > >unsigned long get_seconds(void); >struct timespec current_kernel_time(void); >struct timespec __current_kernel_time(void); >struct timespec get_monotonic_coarse(void); >void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim, > struct timespec *wtom, struct timespec *sleep); >void timekeeping_inject_sleeptime(struct timespec *delta); ># 147 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 arch_gettimeoffset(void) { return 0; } > > >extern void do_gettimeofday(struct timeval *tv); >extern int do_settimeofday(const struct timespec *tv); >extern int do_sys_settimeofday(const struct timespec *tv, > const struct timezone *tz); > >extern long do_utimes(int dfd, const char *filename, struct timespec *times, int flags); >struct itimerval; >extern int do_setitimer(int which, struct itimerval *value, > struct itimerval *ovalue); >extern unsigned int alarm_setitimer(unsigned int seconds); >extern int do_getitimer(int which, struct itimerval *value); >extern void getnstimeofday(struct timespec *tv); >extern void getrawmonotonic(struct timespec *ts); >extern void getnstime_raw_and_real(struct timespec *ts_raw, > struct timespec *ts_real); >extern void getboottime(struct timespec *ts); >extern void monotonic_to_bootbased(struct timespec *ts); >extern void get_monotonic_boottime(struct timespec *ts); > >extern struct timespec timespec_trunc(struct timespec t, unsigned gran); >extern int timekeeping_valid_for_hres(void); >extern u64 timekeeping_max_deferment(void); >extern int timekeeping_inject_offset(struct timespec *ts); > >struct tms; >extern void do_sys_times(struct tms *); > > > > > >struct tm { > > > > > int tm_sec; > > int tm_min; > > int tm_hour; > > int tm_mday; > > int tm_mon; > > long tm_year; > > int tm_wday; > > int tm_yday; >}; > >void time_to_tm(time_t totalsecs, int offset, struct tm *result); ># 212 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 timespec_to_ns(const struct timespec *ts) >{ > return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec; >} ># 224 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 timeval_to_ns(const struct timeval *tv) >{ > return ((s64) tv->tv_sec * 1000000000L) + > tv->tv_usec * 1000L; >} > > > > > > > >extern struct timespec ns_to_timespec(const s64 nsec); > > > > > > > >extern struct timeval ns_to_timeval(const s64 nsec); ># 254 "include/linux/time.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void timespec_add_ns(struct timespec *a, u64 ns) >{ > a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, 1000000000L, &ns); > a->tv_nsec = ns; >} ># 19 "include/linux/stat.h" 2 ># 1 "include/linux/uidgid.h" 1 ># 15 "include/linux/uidgid.h" ># 1 "include/linux/highuid.h" 1 ># 34 "include/linux/highuid.h" >extern int overflowuid; >extern int overflowgid; > >extern void __bad_uid(void); >extern void __bad_gid(void); ># 81 "include/linux/highuid.h" >extern int fs_overflowuid; >extern int fs_overflowgid; ># 16 "include/linux/uidgid.h" 2 > >struct user_namespace; >extern struct user_namespace init_user_ns; ># 46 "include/linux/uidgid.h" >typedef uid_t kuid_t; >typedef gid_t kgid_t; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uid_t __kuid_val(kuid_t uid) >{ > return uid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) gid_t __kgid_val(kgid_t gid) >{ > return gid; >} ># 70 "include/linux/uidgid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_eq(kuid_t left, kuid_t right) >{ > return __kuid_val(left) == __kuid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_eq(kgid_t left, kgid_t right) >{ > return __kgid_val(left) == __kgid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_gt(kuid_t left, kuid_t right) >{ > return __kuid_val(left) > __kuid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_gt(kgid_t left, kgid_t right) >{ > return __kgid_val(left) > __kgid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_gte(kuid_t left, kuid_t right) >{ > return __kuid_val(left) >= __kuid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_gte(kgid_t left, kgid_t right) >{ > return __kgid_val(left) >= __kgid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_lt(kuid_t left, kuid_t right) >{ > return __kuid_val(left) < __kuid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_lt(kgid_t left, kgid_t right) >{ > return __kgid_val(left) < __kgid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_lte(kuid_t left, kuid_t right) >{ > return __kuid_val(left) <= __kuid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_lte(kgid_t left, kgid_t right) >{ > return __kgid_val(left) <= __kgid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uid_valid(kuid_t uid) >{ > return !uid_eq(uid, ((kuid_t) -1 )); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool gid_valid(kgid_t gid) >{ > return !gid_eq(gid, ((kgid_t) -1 )); >} ># 152 "include/linux/uidgid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kuid_t make_kuid(struct user_namespace *from, uid_t uid) >{ > return ((kuid_t) uid ); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kgid_t make_kgid(struct user_namespace *from, gid_t gid) >{ > return ((kgid_t) gid ); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uid_t from_kuid(struct user_namespace *to, kuid_t kuid) >{ > return __kuid_val(kuid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) gid_t from_kgid(struct user_namespace *to, kgid_t kgid) >{ > return __kgid_val(kgid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uid_t from_kuid_munged(struct user_namespace *to, kuid_t kuid) >{ > uid_t uid = from_kuid(to, kuid); > if (uid == (uid_t)-1) > uid = overflowuid; > return uid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) gid_t from_kgid_munged(struct user_namespace *to, kgid_t kgid) >{ > gid_t gid = from_kgid(to, kgid); > if (gid == (gid_t)-1) > gid = overflowgid; > return gid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool kuid_has_mapping(struct user_namespace *ns, kuid_t uid) >{ > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid) >{ > return true; >} ># 20 "include/linux/stat.h" 2 > >struct kstat { > u64 ino; > dev_t dev; > umode_t mode; > unsigned int nlink; > kuid_t uid; > kgid_t gid; > dev_t rdev; > loff_t size; > struct timespec atime; > struct timespec mtime; > struct timespec ctime; > unsigned long blksize; > unsigned long long blocks; >}; ># 11 "include/linux/module.h" 2 > > ># 1 "include/linux/kmod.h" 1 ># 22 "include/linux/kmod.h" ># 1 "include/linux/gfp.h" 1 > > > ># 1 "include/linux/mmzone.h" 1 ># 9 "include/linux/mmzone.h" ># 1 "include/linux/wait.h" 1 > > > > > > > ># 1 "arch/arm/include/generated/asm/current.h" 1 ># 1 "include/asm-generic/current.h" 1 ># 1 "arch/arm/include/generated/asm/current.h" 2 ># 9 "include/linux/wait.h" 2 ># 1 "include/uapi/linux/wait.h" 1 ># 10 "include/linux/wait.h" 2 > >typedef struct __wait_queue wait_queue_t; >typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key); >int default_wake_function(wait_queue_t *wait, unsigned mode, int flags, void *key); > >struct __wait_queue { > unsigned int flags; > > void *private; > wait_queue_func_t func; > struct list_head task_list; >}; > >struct wait_bit_key { > void *flags; > int bit_nr; >}; > >struct wait_bit_queue { > struct wait_bit_key key; > wait_queue_t wait; >}; > >struct __wait_queue_head { > spinlock_t lock; > struct list_head task_list; >}; >typedef struct __wait_queue_head wait_queue_head_t; > >struct task_struct; ># 63 "include/linux/wait.h" >extern void __init_waitqueue_head(wait_queue_head_t *q, const char *name, struct lock_class_key *); ># 81 "include/linux/wait.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p) >{ > q->flags = 0; > q->private = p; > q->func = default_wake_function; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_waitqueue_func_entry(wait_queue_t *q, > wait_queue_func_t func) >{ > q->flags = 0; > q->private = ((void *)0); > q->func = func; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int waitqueue_active(wait_queue_head_t *q) >{ > return !list_empty(&q->task_list); >} > >extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); >extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait); >extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) >{ > list_add(&new->task_list, &head->task_list); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __add_wait_queue_exclusive(wait_queue_head_t *q, > wait_queue_t *wait) >{ > wait->flags |= 0x01; > __add_wait_queue(q, wait); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __add_wait_queue_tail(wait_queue_head_t *head, > wait_queue_t *new) >{ > list_add_tail(&new->task_list, &head->task_list); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __add_wait_queue_tail_exclusive(wait_queue_head_t *q, > wait_queue_t *wait) >{ > wait->flags |= 0x01; > __add_wait_queue_tail(q, wait); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __remove_wait_queue(wait_queue_head_t *head, > wait_queue_t *old) >{ > list_del(&old->task_list); >} > >void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key); >void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key); >void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode, int nr, > void *key); >void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr); >void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr); >void __wake_up_bit(wait_queue_head_t *, void *, int); >int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); >int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); >void wake_up_bit(void *, int); >int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned); >int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned); >wait_queue_head_t *bit_waitqueue(void *, int); ># 722 "include/linux/wait.h" >extern void sleep_on(wait_queue_head_t *q); >extern long sleep_on_timeout(wait_queue_head_t *q, > signed long timeout); >extern void interruptible_sleep_on(wait_queue_head_t *q); >extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, > signed long timeout); > > > > >void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state); >void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state); >void finish_wait(wait_queue_head_t *q, wait_queue_t *wait); >void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait, > unsigned int mode, void *key); >int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); >int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); ># 782 "include/linux/wait.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int wait_on_bit(void *word, int bit, > int (*action)(void *), unsigned mode) >{ > if (!test_bit(bit, word)) > return 0; > return out_of_line_wait_on_bit(word, bit, action, mode); >} ># 806 "include/linux/wait.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int wait_on_bit_lock(void *word, int bit, > int (*action)(void *), unsigned mode) >{ > if (!_test_and_set_bit(bit,word)) > return 0; > return out_of_line_wait_on_bit_lock(word, bit, action, mode); >} ># 10 "include/linux/mmzone.h" 2 > > ># 1 "include/linux/threads.h" 1 ># 13 "include/linux/mmzone.h" 2 ># 1 "include/linux/numa.h" 1 ># 14 "include/linux/mmzone.h" 2 > > ># 1 "include/linux/nodemask.h" 1 ># 95 "include/linux/nodemask.h" ># 1 "include/linux/bitmap.h" 1 > > > > > > > ># 1 "include/linux/string.h" 1 ># 9 "include/linux/string.h" ># 1 "include/uapi/linux/string.h" 1 ># 10 "include/linux/string.h" 2 > >extern char *strndup_user(const char *, long); >extern void *memdup_user(const void *, size_t); > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/string.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/string.h" >extern char * strrchr(const char * s, int c); > > >extern char * strchr(const char * s, int c); > > >extern void * memcpy(void *, const void *, __kernel_size_t); > > >extern void * memmove(void *, const void *, __kernel_size_t); > > >extern void * memchr(const void *, int, __kernel_size_t); > > >extern void * memset(void *, int, __kernel_size_t); > >extern void __memzero(void *ptr, __kernel_size_t n); ># 18 "include/linux/string.h" 2 > > >extern char * strcpy(char *,const char *); > > >extern char * strncpy(char *,const char *, __kernel_size_t); > > >size_t strlcpy(char *, const char *, size_t); > > >extern char * strcat(char *, const char *); > > >extern char * strncat(char *, const char *, __kernel_size_t); > > >extern size_t strlcat(char *, const char *, __kernel_size_t); > > >extern int strcmp(const char *,const char *); > > >extern int strncmp(const char *,const char *,__kernel_size_t); > > >extern int strnicmp(const char *, const char *, __kernel_size_t); > > >extern int strcasecmp(const char *s1, const char *s2); > > >extern int strncasecmp(const char *s1, const char *s2, size_t n); > > > > > >extern char * strnchr(const char *, size_t, int); > > > > >extern char * __attribute__((warn_unused_result)) skip_spaces(const char *); > >extern char *strim(char *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((warn_unused_result)) char *strstrip(char *str) >{ > return strim(str); >} > > >extern char * strstr(const char *, const char *); > > >extern char * strnstr(const char *, const char *, size_t); > > >extern __kernel_size_t strlen(const char *); > > >extern __kernel_size_t strnlen(const char *,__kernel_size_t); > > >extern char * strpbrk(const char *,const char *); > > >extern char * strsep(char **,const char *); > > >extern __kernel_size_t strspn(const char *,const char *); > > >extern __kernel_size_t strcspn(const char *,const char *); ># 105 "include/linux/string.h" >extern void * memscan(void *,int,__kernel_size_t); > > >extern int memcmp(const void *,const void *,__kernel_size_t); > > > > >void *memchr_inv(const void *s, int c, size_t n); > >extern char *kstrdup(const char *s, gfp_t gfp); >extern char *kstrndup(const char *s, size_t len, gfp_t gfp); >extern void *kmemdup(const void *src, size_t len, gfp_t gfp); > >extern char **argv_split(gfp_t gfp, const char *str, int *argcp); >extern void argv_free(char **argv); > >extern bool sysfs_streq(const char *s1, const char *s2); >extern int strtobool(const char *s, bool *res); > > >int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args); >int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf); >int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __attribute__((format(printf, 3, 4))); > > >extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, > const void *from, size_t available); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool strstarts(const char *str, const char *prefix) >{ > return strncmp(str, prefix, strlen(prefix)) == 0; >} > >extern size_t memweight(const void *ptr, size_t bytes); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *kbasename(const char *path) >{ > const char *tail = strrchr(path, '/'); > return tail ? tail + 1 : path; >} ># 9 "include/linux/bitmap.h" 2 ># 91 "include/linux/bitmap.h" >extern int __bitmap_empty(const unsigned long *bitmap, int bits); >extern int __bitmap_full(const unsigned long *bitmap, int bits); >extern int __bitmap_equal(const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern void __bitmap_complement(unsigned long *dst, const unsigned long *src, > int bits); >extern void __bitmap_shift_right(unsigned long *dst, > const unsigned long *src, int shift, int bits); >extern void __bitmap_shift_left(unsigned long *dst, > const unsigned long *src, int shift, int bits); >extern int __bitmap_and(unsigned long *dst, const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern int __bitmap_intersects(const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern int __bitmap_subset(const unsigned long *bitmap1, > const unsigned long *bitmap2, int bits); >extern int __bitmap_weight(const unsigned long *bitmap, int bits); > >extern void bitmap_set(unsigned long *map, int i, int len); >extern void bitmap_clear(unsigned long *map, int start, int nr); >extern unsigned long bitmap_find_next_zero_area(unsigned long *map, > unsigned long size, > unsigned long start, > unsigned int nr, > unsigned long align_mask); > >extern int bitmap_scnprintf(char *buf, unsigned int len, > const unsigned long *src, int nbits); >extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user, > unsigned long *dst, int nbits); >extern int bitmap_parse_user(const char *ubuf, unsigned int ulen, > unsigned long *dst, int nbits); >extern int bitmap_scnlistprintf(char *buf, unsigned int len, > const unsigned long *src, int nbits); >extern int bitmap_parselist(const char *buf, unsigned long *maskp, > int nmaskbits); >extern int bitmap_parselist_user(const char *ubuf, unsigned int ulen, > unsigned long *dst, int nbits); >extern void bitmap_remap(unsigned long *dst, const unsigned long *src, > const unsigned long *old, const unsigned long *new, int bits); >extern int bitmap_bitremap(int oldbit, > const unsigned long *old, const unsigned long *new, int bits); >extern void bitmap_onto(unsigned long *dst, const unsigned long *orig, > const unsigned long *relmap, int bits); >extern void bitmap_fold(unsigned long *dst, const unsigned long *orig, > int sz, int bits); >extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); >extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); >extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); >extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits); >extern int bitmap_ord_to_pos(const unsigned long *bitmap, int n, int bits); ># 159 "include/linux/bitmap.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_zero(unsigned long *dst, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = 0UL; > else { > int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long); > ({ void *__p = (dst); size_t __n = len; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_fill(unsigned long *dst, int nbits) >{ > size_t nlongs = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))); > if (!(__builtin_constant_p(nbits) && (nbits) <= 32)) { > int len = (nlongs - 1) * sizeof(unsigned long); > ({ void *__p = (dst); size_t __n = len; if ((__n) != 0) { if (__builtin_constant_p((0xff)) && (0xff) == 0) __memzero((__p),(__n)); else memset((__p),(0xff),(__n)); } (__p); }); > } > dst[nlongs - 1] = ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_copy(unsigned long *dst, const unsigned long *src, > int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = *src; > else { > int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long); > memcpy(dst, src, len); > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_and(unsigned long *dst, const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return (*dst = *src1 & *src2) != 0; > return __bitmap_and(dst, src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_or(unsigned long *dst, const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = *src1 | *src2; > else > __bitmap_or(dst, src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_xor(unsigned long *dst, const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = *src1 ^ *src2; > else > __bitmap_xor(dst, src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_andnot(unsigned long *dst, const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return (*dst = *src1 & ~(*src2)) != 0; > return __bitmap_andnot(dst, src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_complement(unsigned long *dst, const unsigned long *src, > int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = ~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); > else > __bitmap_complement(dst, src, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_equal(const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return ! ((*src1 ^ *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); > else > return __bitmap_equal(src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_intersects(const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return ((*src1 & *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )) != 0; > else > return __bitmap_intersects(src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_subset(const unsigned long *src1, > const unsigned long *src2, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return ! ((*src1 & ~(*src2)) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); > else > return __bitmap_subset(src1, src2, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_empty(const unsigned long *src, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); > else > return __bitmap_empty(src, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_full(const unsigned long *src, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return ! (~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); > else > return __bitmap_full(src, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_weight(const unsigned long *src, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > return hweight_long(*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); > return __bitmap_weight(src, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_shift_right(unsigned long *dst, > const unsigned long *src, int n, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = *src >> n; > else > __bitmap_shift_right(dst, src, n, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bitmap_shift_left(unsigned long *dst, > const unsigned long *src, int n, int nbits) >{ > if ((__builtin_constant_p(nbits) && (nbits) <= 32)) > *dst = (*src << n) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); > else > __bitmap_shift_left(dst, src, n, nbits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bitmap_parse(const char *buf, unsigned int buflen, > unsigned long *maskp, int nmaskbits) >{ > return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits); >} ># 96 "include/linux/nodemask.h" 2 > > >typedef struct { unsigned long bits[((((1 << 0)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } nodemask_t; >extern nodemask_t _unused_nodemask_arg_; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __node_set(int node, volatile nodemask_t *dstp) >{ > _set_bit(node,dstp->bits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __node_clear(int node, volatile nodemask_t *dstp) >{ > _clear_bit(node,dstp->bits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_setall(nodemask_t *dstp, int nbits) >{ > bitmap_fill(dstp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_clear(nodemask_t *dstp, int nbits) >{ > bitmap_zero(dstp->bits, nbits); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __node_test_and_set(int node, nodemask_t *addr) >{ > return _test_and_set_bit(node,addr->bits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_complement(nodemask_t *dstp, > const nodemask_t *srcp, int nbits) >{ > bitmap_complement(dstp->bits, srcp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_equal(const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > return bitmap_equal(src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_intersects(const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > return bitmap_intersects(src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_subset(const nodemask_t *src1p, > const nodemask_t *src2p, int nbits) >{ > return bitmap_subset(src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_empty(const nodemask_t *srcp, int nbits) >{ > return bitmap_empty(srcp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_full(const nodemask_t *srcp, int nbits) >{ > return bitmap_full(srcp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodes_weight(const nodemask_t *srcp, int nbits) >{ > return bitmap_weight(srcp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_shift_right(nodemask_t *dstp, > const nodemask_t *srcp, int n, int nbits) >{ > bitmap_shift_right(dstp->bits, srcp->bits, n, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_shift_left(nodemask_t *dstp, > const nodemask_t *srcp, int n, int nbits) >{ > bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __first_node(const nodemask_t *srcp) >{ > return ({ int __min1 = ((1 << 0)); int __min2 = (_find_first_bit_le(srcp->bits,(1 << 0))); __min1 < __min2 ? __min1: __min2; }); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __next_node(int n, const nodemask_t *srcp) >{ > return ({ int __min1 = ((1 << 0)); int __min2 = (_find_next_bit_le(srcp->bits,(1 << 0),n+1)); __min1 < __min2 ? __min1: __min2; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_nodemask_of_node(nodemask_t *mask, int node) >{ > __nodes_clear(&(*mask), (1 << 0)); > __node_set((node), &(*mask)); >} ># 266 "include/linux/nodemask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __first_unset_node(const nodemask_t *maskp) >{ > return ({ int __min1 = ((1 << 0)); int __min2 = (_find_first_zero_bit_le(maskp->bits,(1 << 0))); __min1 < __min2 ? __min1: __min2; }) > ; >} ># 300 "include/linux/nodemask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodemask_scnprintf(char *buf, int len, > const nodemask_t *srcp, int nbits) >{ > return bitmap_scnprintf(buf, len, srcp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodemask_parse_user(const char *buf, int len, > nodemask_t *dstp, int nbits) >{ > return bitmap_parse_user(buf, len, dstp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodelist_scnprintf(char *buf, int len, > const nodemask_t *srcp, int nbits) >{ > return bitmap_scnlistprintf(buf, len, srcp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits) >{ > return bitmap_parselist(buf, dstp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __node_remap(int oldbit, > const nodemask_t *oldp, const nodemask_t *newp, int nbits) >{ > return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp, > const nodemask_t *oldp, const nodemask_t *newp, int nbits) >{ > bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_onto(nodemask_t *dstp, const nodemask_t *origp, > const nodemask_t *relmapp, int nbits) >{ > bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __nodes_fold(nodemask_t *dstp, const nodemask_t *origp, > int sz, int nbits) >{ > bitmap_fold(dstp->bits, origp->bits, sz, nbits); >} ># 374 "include/linux/nodemask.h" >enum node_states { > N_POSSIBLE, > N_ONLINE, > N_NORMAL_MEMORY, > > N_HIGH_MEMORY, > > > > > > > N_MEMORY = N_HIGH_MEMORY, > > N_CPU, > NR_NODE_STATES >}; > > > > > > >extern nodemask_t node_states[NR_NODE_STATES]; ># 443 "include/linux/nodemask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int node_state(int node, enum node_states state) >{ > return node == 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void node_set_state(int node, enum node_states state) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void node_clear_state(int node, enum node_states state) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int num_node_state(enum node_states state) >{ > return 1; >} ># 477 "include/linux/nodemask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int node_random(const nodemask_t *mask) >{ > return 0; >} ># 509 "include/linux/nodemask.h" >struct nodemask_scratch { > nodemask_t mask1; > nodemask_t mask2; >}; ># 17 "include/linux/mmzone.h" 2 ># 1 "include/linux/pageblock-flags.h" 1 ># 29 "include/linux/pageblock-flags.h" >enum pageblock_bits { > PB_migrate, > PB_migrate_end = PB_migrate + 3 - 1, > > > PB_migrate_skip, > > NR_PAGEBLOCK_BITS >}; ># 63 "include/linux/pageblock-flags.h" >struct page; > > >unsigned long get_pageblock_flags_group(struct page *page, > int start_bitidx, int end_bitidx); >void set_pageblock_flags_group(struct page *page, unsigned long flags, > int start_bitidx, int end_bitidx); ># 18 "include/linux/mmzone.h" 2 ># 1 "include/generated/bounds.h" 1 ># 19 "include/linux/mmzone.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" 1 ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue.h" 1 ># 27 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" 2 ># 110 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" >struct page; >struct vm_area_struct; > >struct cpu_user_fns { > void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr); > void (*cpu_copy_user_highpage)(struct page *to, struct page *from, > unsigned long vaddr, struct vm_area_struct *vma); >}; > > >extern struct cpu_user_fns cpu_user; ># 143 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" >extern void copy_page(void *to, const void *from); > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level-types.h" 1 ># 22 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level-types.h" ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 23 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level-types.h" 2 > >typedef u32 pteval_t; >typedef u32 pmdval_t; ># 51 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level-types.h" >typedef pteval_t pte_t; >typedef pmdval_t pmd_t; >typedef pmdval_t pgd_t[2]; >typedef pteval_t pgprot_t; ># 151 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" 2 > > > > >typedef struct page *pgtable_t; > > >extern int pfn_valid(unsigned long); > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" 1 ># 19 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" ># 1 "include/linux/sizes.h" 1 ># 20 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" 2 ># 160 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" >extern unsigned long __pv_phys_offset; ># 172 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __virt_to_phys(unsigned long x) >{ > unsigned long t; > __asm__("@ __pv_stub\n" "1: " "add" " %0, %1, %2\n" " .pushsection .pv_table,\"a\"\n" " .long 1b\n" " .popsection\n" : "=r" (t) : "r" (x), "I" (0x81000000)); > return t; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __phys_to_virt(unsigned long x) >{ > unsigned long t; > __asm__("@ __pv_stub\n" "1: " "sub" " %0, %1, %2\n" " .pushsection .pv_table,\"a\"\n" " .long 1b\n" " .popsection\n" : "=r" (t) : "r" (x), "I" (0x81000000)); > return t; >} ># 218 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) phys_addr_t virt_to_phys(const volatile void *x) >{ > return __virt_to_phys((unsigned long)(x)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *phys_to_virt(phys_addr_t x) >{ > return (void *)(__phys_to_virt((unsigned long)(x))); >} ># 248 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long virt_to_bus(void *x) >{ > return __virt_to_phys((unsigned long)x); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *bus_to_virt(unsigned long x) >{ > return (void *)__phys_to_virt(x); >} ># 280 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" ># 1 "include/asm-generic/memory_model.h" 1 ># 281 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/memory.h" 2 ># 162 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" 2 > > > > > > > ># 1 "include/asm-generic/getorder.h" 1 ># 12 "include/asm-generic/getorder.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((__const__)) >int __get_order(unsigned long size) >{ > int order; > > size--; > size >>= 12; > > order = fls(size); > > > > return order; >} ># 170 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/page.h" 2 ># 21 "include/linux/mmzone.h" 2 ># 38 "include/linux/mmzone.h" >enum { > MIGRATE_UNMOVABLE, > MIGRATE_RECLAIMABLE, > MIGRATE_MOVABLE, > MIGRATE_PCPTYPES, > MIGRATE_RESERVE = MIGRATE_PCPTYPES, ># 60 "include/linux/mmzone.h" > MIGRATE_ISOLATE, > MIGRATE_TYPES >}; ># 74 "include/linux/mmzone.h" >extern int page_group_by_mobility_disabled; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_pageblock_migratetype(struct page *page) >{ > return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end); >} > >struct free_area { > struct list_head free_list[MIGRATE_TYPES]; > unsigned long nr_free; >}; > >struct pglist_data; ># 95 "include/linux/mmzone.h" >struct zone_padding { > char x[0]; >} __attribute__((__aligned__(1 << (6)))); > > > > > >enum zone_stat_item { > > NR_FREE_PAGES, > NR_LRU_BASE, > NR_INACTIVE_ANON = NR_LRU_BASE, > NR_ACTIVE_ANON, > NR_INACTIVE_FILE, > NR_ACTIVE_FILE, > NR_UNEVICTABLE, > NR_MLOCK, > NR_ANON_PAGES, > NR_FILE_MAPPED, > > NR_FILE_PAGES, > NR_FILE_DIRTY, > NR_WRITEBACK, > NR_SLAB_RECLAIMABLE, > NR_SLAB_UNRECLAIMABLE, > NR_PAGETABLE, > NR_KERNEL_STACK, > > NR_UNSTABLE_NFS, > NR_BOUNCE, > NR_VMSCAN_WRITE, > NR_VMSCAN_IMMEDIATE, > NR_WRITEBACK_TEMP, > NR_ISOLATED_ANON, > NR_ISOLATED_FILE, > NR_SHMEM, > NR_DIRTIED, > NR_WRITTEN, ># 142 "include/linux/mmzone.h" > NR_ANON_TRANSPARENT_HUGEPAGES, > NR_FREE_CMA_PAGES, > NR_VM_ZONE_STAT_ITEMS }; ># 159 "include/linux/mmzone.h" >enum lru_list { > LRU_INACTIVE_ANON = 0, > LRU_ACTIVE_ANON = 0 + 1, > LRU_INACTIVE_FILE = 0 + 2, > LRU_ACTIVE_FILE = 0 + 2 + 1, > LRU_UNEVICTABLE, > NR_LRU_LISTS >}; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_file_lru(enum lru_list lru) >{ > return (lru == LRU_INACTIVE_FILE || lru == LRU_ACTIVE_FILE); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_active_lru(enum lru_list lru) >{ > return (lru == LRU_ACTIVE_ANON || lru == LRU_ACTIVE_FILE); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_unevictable_lru(enum lru_list lru) >{ > return (lru == LRU_UNEVICTABLE); >} > >struct zone_reclaim_stat { ># 196 "include/linux/mmzone.h" > unsigned long recent_rotated[2]; > unsigned long recent_scanned[2]; >}; > >struct lruvec { > struct list_head lists[NR_LRU_LISTS]; > struct zone_reclaim_stat reclaim_stat; > > struct zone *zone; > >}; ># 223 "include/linux/mmzone.h" >typedef unsigned isolate_mode_t; > >enum zone_watermarks { > WMARK_MIN, > WMARK_LOW, > WMARK_HIGH, > NR_WMARK >}; > > > > > >struct per_cpu_pages { > int count; > int high; > int batch; > > > struct list_head lists[MIGRATE_PCPTYPES]; >}; > >struct per_cpu_pageset { > struct per_cpu_pages pcp; > > > > > s8 stat_threshold; > s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS]; > >}; > > > >enum zone_type { ># 293 "include/linux/mmzone.h" > ZONE_NORMAL, ># 303 "include/linux/mmzone.h" > ZONE_HIGHMEM, > > ZONE_MOVABLE, > __MAX_NR_ZONES >}; ># 329 "include/linux/mmzone.h" >struct zone { > > > > unsigned long watermark[NR_WMARK]; > > > > > > > unsigned long percpu_drift_mark; ># 350 "include/linux/mmzone.h" > unsigned long lowmem_reserve[3]; > > > > > > unsigned long dirty_balance_reserve; ># 366 "include/linux/mmzone.h" > struct per_cpu_pageset *pageset; > > > > spinlock_t lock; > int all_unreclaimable; > > > bool compact_blockskip_flush; > > > unsigned long compact_cached_free_pfn; > unsigned long compact_cached_migrate_pfn; > > > > > > struct free_area free_area[11]; > > > > > > > unsigned long *pageblock_flags; ># 400 "include/linux/mmzone.h" > unsigned int compact_considered; > unsigned int compact_defer_shift; > int compact_order_failed; > > > struct zone_padding _pad1_; > > > spinlock_t lru_lock; > struct lruvec lruvec; > > unsigned long pages_scanned; > unsigned long flags; > > > atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; > > > > > > unsigned int inactive_ratio; > > > struct zone_padding _pad2_; ># 451 "include/linux/mmzone.h" > wait_queue_head_t * wait_table; > unsigned long wait_table_hash_nr_entries; > unsigned long wait_table_bits; > > > > > struct pglist_data *zone_pgdat; > > unsigned long zone_start_pfn; ># 498 "include/linux/mmzone.h" > unsigned long spanned_pages; > unsigned long present_pages; > unsigned long managed_pages; > > > > > const char *name; >} __attribute__((__aligned__(1 << (6)))); > >typedef enum { > ZONE_RECLAIM_LOCKED, > ZONE_OOM_LOCKED, > ZONE_CONGESTED, > > >} zone_flags_t; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_set_flag(struct zone *zone, zone_flags_t flag) >{ > _set_bit(flag,&zone->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_test_and_set_flag(struct zone *zone, zone_flags_t flag) >{ > return _test_and_set_bit(flag,&zone->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_clear_flag(struct zone *zone, zone_flags_t flag) >{ > _clear_bit(flag,&zone->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_is_reclaim_congested(const struct zone *zone) >{ > return test_bit(ZONE_CONGESTED, &zone->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_is_reclaim_locked(const struct zone *zone) >{ > return test_bit(ZONE_RECLAIM_LOCKED, &zone->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_is_oom_locked(const struct zone *zone) >{ > return test_bit(ZONE_OOM_LOCKED, &zone->flags); >} ># 634 "include/linux/mmzone.h" >struct zonelist_cache; > > > > > > >struct zoneref { > struct zone *zone; > int zone_idx; >}; ># 663 "include/linux/mmzone.h" >struct zonelist { > struct zonelist_cache *zlcache_ptr; > struct zoneref _zonerefs[((1 << 0) * 3) + 1]; > > > >}; ># 681 "include/linux/mmzone.h" >extern struct page *mem_map; ># 695 "include/linux/mmzone.h" >struct bootmem_data; >typedef struct pglist_data { > struct zone node_zones[3]; > struct zonelist node_zonelists[1]; > int nr_zones; > > struct page *node_mem_map; > > struct page_cgroup *node_page_cgroup; > > > > struct bootmem_data *bdata; ># 719 "include/linux/mmzone.h" > unsigned long node_start_pfn; > unsigned long node_present_pages; > unsigned long node_spanned_pages; > > int node_id; > nodemask_t reclaim_nodes; > wait_queue_head_t kswapd_wait; > wait_queue_head_t pfmemalloc_wait; > struct task_struct *kswapd; > int kswapd_max_order; > enum zone_type classzone_idx; ># 743 "include/linux/mmzone.h" >} pg_data_t; ># 761 "include/linux/mmzone.h" ># 1 "include/linux/memory_hotplug.h" 1 > > > ># 1 "include/linux/mmzone.h" 1 ># 5 "include/linux/memory_hotplug.h" 2 > ># 1 "include/linux/notifier.h" 1 ># 12 "include/linux/notifier.h" ># 1 "include/linux/errno.h" 1 > > > ># 1 "include/uapi/linux/errno.h" 1 ># 1 "arch/arm/include/generated/asm/errno.h" 1 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/errno.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/errno-base.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/errno.h" 2 ># 1 "arch/arm/include/generated/asm/errno.h" 2 ># 1 "include/uapi/linux/errno.h" 2 ># 5 "include/linux/errno.h" 2 ># 13 "include/linux/notifier.h" 2 ># 1 "include/linux/mutex.h" 1 ># 48 "include/linux/mutex.h" >struct mutex { > > atomic_t count; > spinlock_t wait_lock; > struct list_head wait_list; > > struct task_struct *owner; ># 63 "include/linux/mutex.h" >}; > > > > > >struct mutex_waiter { > struct list_head list; > struct task_struct *task; > > > >}; ># 95 "include/linux/mutex.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mutex_destroy(struct mutex *lock) {} ># 115 "include/linux/mutex.h" >extern void __mutex_init(struct mutex *lock, const char *name, > struct lock_class_key *key); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mutex_is_locked(struct mutex *lock) >{ > return (*(volatile int *)&(&lock->count)->counter) != 1; >} ># 152 "include/linux/mutex.h" >extern void mutex_lock(struct mutex *lock); >extern int __attribute__((warn_unused_result)) mutex_lock_interruptible(struct mutex *lock); >extern int __attribute__((warn_unused_result)) mutex_lock_killable(struct mutex *lock); ># 168 "include/linux/mutex.h" >extern int mutex_trylock(struct mutex *lock); >extern void mutex_unlock(struct mutex *lock); >extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock); ># 14 "include/linux/notifier.h" 2 ># 1 "include/linux/rwsem.h" 1 ># 19 "include/linux/rwsem.h" >struct rw_semaphore; > > ># 1 "include/linux/rwsem-spinlock.h" 1 ># 23 "include/linux/rwsem-spinlock.h" >struct rw_semaphore { > __s32 activity; > raw_spinlock_t wait_lock; > struct list_head wait_list; > > > >}; > > > >extern void __down_read(struct rw_semaphore *sem); >extern int __down_read_trylock(struct rw_semaphore *sem); >extern void __down_write(struct rw_semaphore *sem); >extern void __down_write_nested(struct rw_semaphore *sem, int subclass); >extern int __down_write_trylock(struct rw_semaphore *sem); >extern void __up_read(struct rw_semaphore *sem); >extern void __up_write(struct rw_semaphore *sem); >extern void __downgrade_write(struct rw_semaphore *sem); >extern int rwsem_is_locked(struct rw_semaphore *sem); ># 23 "include/linux/rwsem.h" 2 ># 67 "include/linux/rwsem.h" >extern void __init_rwsem(struct rw_semaphore *sem, const char *name, > struct lock_class_key *key); ># 80 "include/linux/rwsem.h" >extern void down_read(struct rw_semaphore *sem); > > > > >extern int down_read_trylock(struct rw_semaphore *sem); > > > > >extern void down_write(struct rw_semaphore *sem); > > > > >extern int down_write_trylock(struct rw_semaphore *sem); > > > > >extern void up_read(struct rw_semaphore *sem); > > > > >extern void up_write(struct rw_semaphore *sem); > > > > >extern void downgrade_write(struct rw_semaphore *sem); ># 15 "include/linux/notifier.h" 2 ># 1 "include/linux/srcu.h" 1 ># 33 "include/linux/srcu.h" ># 1 "include/linux/rcupdate.h" 1 ># 40 "include/linux/rcupdate.h" ># 1 "include/linux/cpumask.h" 1 ># 14 "include/linux/cpumask.h" >typedef struct cpumask { unsigned long bits[(((4) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t; ># 28 "include/linux/cpumask.h" >extern int nr_cpu_ids; ># 79 "include/linux/cpumask.h" >extern const struct cpumask *const cpu_possible_mask; >extern const struct cpumask *const cpu_online_mask; >extern const struct cpumask *const cpu_present_mask; >extern const struct cpumask *const cpu_active_mask; ># 105 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int cpumask_check(unsigned int cpu) >{ > > > > return cpu; >} ># 158 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int cpumask_first(const struct cpumask *srcp) >{ > return _find_first_bit_le(((srcp)->bits),4); >} ># 170 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int cpumask_next(int n, const struct cpumask *srcp) >{ > > if (n != -1) > cpumask_check(n); > return _find_next_bit_le(((srcp)->bits),4,n+1); >} ># 185 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int cpumask_next_zero(int n, const struct cpumask *srcp) >{ > > if (n != -1) > cpumask_check(n); > return _find_next_zero_bit_le(((srcp)->bits),4,n+1); >} > >int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *); >int cpumask_any_but(const struct cpumask *mask, unsigned int cpu); ># 255 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp) >{ > _set_bit(cpumask_check(cpu),((dstp)->bits)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_clear_cpu(int cpu, struct cpumask *dstp) >{ > _clear_bit(cpumask_check(cpu),((dstp)->bits)); >} ># 291 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_test_and_set_cpu(int cpu, struct cpumask *cpumask) >{ > return _test_and_set_bit(cpumask_check(cpu),((cpumask)->bits)); >} ># 305 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_test_and_clear_cpu(int cpu, struct cpumask *cpumask) >{ > return _test_and_clear_bit(cpumask_check(cpu),((cpumask)->bits)); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_setall(struct cpumask *dstp) >{ > bitmap_fill(((dstp)->bits), 4); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_clear(struct cpumask *dstp) >{ > bitmap_zero(((dstp)->bits), 4); >} ># 336 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_and(struct cpumask *dstp, > const struct cpumask *src1p, > const struct cpumask *src2p) >{ > return bitmap_and(((dstp)->bits), ((src1p)->bits), > ((src2p)->bits), 4); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p, > const struct cpumask *src2p) >{ > bitmap_or(((dstp)->bits), ((src1p)->bits), > ((src2p)->bits), 4); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_xor(struct cpumask *dstp, > const struct cpumask *src1p, > const struct cpumask *src2p) >{ > bitmap_xor(((dstp)->bits), ((src1p)->bits), > ((src2p)->bits), 4); >} ># 379 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_andnot(struct cpumask *dstp, > const struct cpumask *src1p, > const struct cpumask *src2p) >{ > return bitmap_andnot(((dstp)->bits), ((src1p)->bits), > ((src2p)->bits), 4); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_complement(struct cpumask *dstp, > const struct cpumask *srcp) >{ > bitmap_complement(((dstp)->bits), ((srcp)->bits), > 4); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool cpumask_equal(const struct cpumask *src1p, > const struct cpumask *src2p) >{ > return bitmap_equal(((src1p)->bits), ((src2p)->bits), > 4); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool cpumask_intersects(const struct cpumask *src1p, > const struct cpumask *src2p) >{ > return bitmap_intersects(((src1p)->bits), ((src2p)->bits), > 4); >} ># 430 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_subset(const struct cpumask *src1p, > const struct cpumask *src2p) >{ > return bitmap_subset(((src1p)->bits), ((src2p)->bits), > 4); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool cpumask_empty(const struct cpumask *srcp) >{ > return bitmap_empty(((srcp)->bits), 4); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool cpumask_full(const struct cpumask *srcp) >{ > return bitmap_full(((srcp)->bits), 4); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int cpumask_weight(const struct cpumask *srcp) >{ > return bitmap_weight(((srcp)->bits), 4); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_shift_right(struct cpumask *dstp, > const struct cpumask *srcp, int n) >{ > bitmap_shift_right(((dstp)->bits), ((srcp)->bits), n, > 4); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_shift_left(struct cpumask *dstp, > const struct cpumask *srcp, int n) >{ > bitmap_shift_left(((dstp)->bits), ((srcp)->bits), n, > 4); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void cpumask_copy(struct cpumask *dstp, > const struct cpumask *srcp) >{ > bitmap_copy(((dstp)->bits), ((srcp)->bits), 4); >} ># 542 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_scnprintf(char *buf, int len, > const struct cpumask *srcp) >{ > return bitmap_scnprintf(buf, len, ((srcp)->bits), 4); >} ># 556 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_parse_user(const char *buf, int len, > struct cpumask *dstp) >{ > return bitmap_parse_user(buf, len, ((dstp)->bits), 4); >} ># 570 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpumask_parselist_user(const char *buf, int len, > struct cpumask *dstp) >{ > return bitmap_parselist_user(buf, len, ((dstp)->bits), > 4); >} ># 586 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpulist_scnprintf(char *buf, int len, > const struct cpumask *srcp) >{ > return bitmap_scnlistprintf(buf, len, ((srcp)->bits), > 4); >} ># 600 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cpulist_parse(const char *buf, struct cpumask *dstp) >{ > return bitmap_parselist(buf, ((dstp)->bits), 4); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) size_t cpumask_size(void) >{ > > > return (((4) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(long); >} ># 659 "include/linux/cpumask.h" >typedef struct cpumask cpumask_var_t[1]; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) >{ > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, > int node) >{ > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) >{ > cpumask_clear(*mask); > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, > int node) >{ > cpumask_clear(*mask); > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void alloc_bootmem_cpumask_var(cpumask_var_t *mask) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void free_cpumask_var(cpumask_var_t mask) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void free_bootmem_cpumask_var(cpumask_var_t mask) >{ >} > > > > >extern const unsigned long cpu_all_bits[(((4) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ># 711 "include/linux/cpumask.h" >void set_cpu_possible(unsigned int cpu, bool possible); >void set_cpu_present(unsigned int cpu, bool present); >void set_cpu_online(unsigned int cpu, bool online); >void set_cpu_active(unsigned int cpu, bool active); >void init_cpu_present(const struct cpumask *src); >void init_cpu_possible(const struct cpumask *src); >void init_cpu_online(const struct cpumask *src); ># 733 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __check_is_bitmap(const unsigned long *bitmap) >{ > return 1; >} ># 745 "include/linux/cpumask.h" >extern const unsigned long > cpu_bit_bitmap[32 +1][(((4) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const struct cpumask *get_cpu_mask(unsigned int cpu) >{ > const unsigned long *p = cpu_bit_bitmap[1 + cpu % 32]; > p -= cpu / 32; > return ((struct cpumask *)(1 ? (p) : (void *)sizeof(__check_is_bitmap(p)))); >} ># 816 "include/linux/cpumask.h" >int __first_cpu(const cpumask_t *srcp); >int __next_cpu(int n, const cpumask_t *srcp); ># 845 "include/linux/cpumask.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpu_set(int cpu, volatile cpumask_t *dstp) >{ > _set_bit(cpu,dstp->bits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpu_clear(int cpu, volatile cpumask_t *dstp) >{ > _clear_bit(cpu,dstp->bits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpus_setall(cpumask_t *dstp, int nbits) >{ > bitmap_fill(dstp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpus_clear(cpumask_t *dstp, int nbits) >{ > bitmap_zero(dstp->bits, nbits); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpu_test_and_set(int cpu, cpumask_t *addr) >{ > return _test_and_set_bit(cpu,addr->bits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_and(cpumask_t *dstp, const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > return bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > return bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_equal(const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > return bitmap_equal(src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_intersects(const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > return bitmap_intersects(src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_subset(const cpumask_t *src1p, > const cpumask_t *src2p, int nbits) >{ > return bitmap_subset(src1p->bits, src2p->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_empty(const cpumask_t *srcp, int nbits) >{ > return bitmap_empty(srcp->bits, nbits); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __cpus_weight(const cpumask_t *srcp, int nbits) >{ > return bitmap_weight(srcp->bits, nbits); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __cpus_shift_left(cpumask_t *dstp, > const cpumask_t *srcp, int n, int nbits) >{ > bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); >} ># 41 "include/linux/rcupdate.h" 2 > > ># 1 "include/linux/completion.h" 1 ># 25 "include/linux/completion.h" >struct completion { > unsigned int done; > wait_queue_head_t wait; >}; ># 73 "include/linux/completion.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_completion(struct completion *x) >{ > x->done = 0; > do { static struct lock_class_key __key; __init_waitqueue_head((&x->wait), "&x->wait", &__key); } while (0); >} > >extern void wait_for_completion(struct completion *); >extern int wait_for_completion_interruptible(struct completion *x); >extern int wait_for_completion_killable(struct completion *x); >extern unsigned long wait_for_completion_timeout(struct completion *x, > unsigned long timeout); >extern long wait_for_completion_interruptible_timeout( > struct completion *x, unsigned long timeout); >extern long wait_for_completion_killable_timeout( > struct completion *x, unsigned long timeout); >extern bool try_wait_for_completion(struct completion *x); >extern bool completion_done(struct completion *x); > >extern void complete(struct completion *); >extern void complete_all(struct completion *); ># 44 "include/linux/rcupdate.h" 2 ># 1 "include/linux/debugobjects.h" 1 > > > > > > >enum debug_obj_state { > ODEBUG_STATE_NONE, > ODEBUG_STATE_INIT, > ODEBUG_STATE_INACTIVE, > ODEBUG_STATE_ACTIVE, > ODEBUG_STATE_DESTROYED, > ODEBUG_STATE_NOTAVAILABLE, > ODEBUG_STATE_MAX, >}; > >struct debug_obj_descr; ># 27 "include/linux/debugobjects.h" >struct debug_obj { > struct hlist_node node; > enum debug_obj_state state; > unsigned int astate; > void *object; > struct debug_obj_descr *descr; >}; ># 52 "include/linux/debugobjects.h" >struct debug_obj_descr { > const char *name; > void *(*debug_hint) (void *addr); > int (*fixup_init) (void *addr, enum debug_obj_state state); > int (*fixup_activate) (void *addr, enum debug_obj_state state); > int (*fixup_destroy) (void *addr, enum debug_obj_state state); > int (*fixup_free) (void *addr, enum debug_obj_state state); > int (*fixup_assert_init)(void *addr, enum debug_obj_state state); >}; ># 84 "include/linux/debugobjects.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_init (void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_activate (void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_deactivate(void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_destroy (void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_free (void *addr, struct debug_obj_descr *descr) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_object_assert_init(void *addr, struct debug_obj_descr *descr) { } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_objects_early_init(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_objects_mem_init(void) { } > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_check_no_obj_freed(const void *address, unsigned long size) { } ># 45 "include/linux/rcupdate.h" 2 ># 53 "include/linux/rcupdate.h" >extern void rcutorture_record_test_transition(void); >extern void rcutorture_record_progress(unsigned long vernum); >extern void do_trace_rcu_torture_read(char *rcutorturename, > struct callback_head *rhp); ># 144 "include/linux/rcupdate.h" >extern void call_rcu_bh(struct callback_head *head, > void (*func)(struct callback_head *head)); ># 166 "include/linux/rcupdate.h" >extern void call_rcu_sched(struct callback_head *head, > void (*func)(struct callback_head *rcu)); > >extern void synchronize_sched(void); ># 188 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __rcu_read_lock(void) >{ > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __rcu_read_unlock(void) >{ > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void synchronize_rcu(void) >{ > synchronize_sched(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rcu_preempt_depth(void) >{ > return 0; >} > > > > >extern void rcu_sched_qs(int cpu); >extern void rcu_bh_qs(int cpu); >extern void rcu_check_callbacks(int cpu, int user); >struct notifier_block; >extern void rcu_idle_enter(void); >extern void rcu_idle_exit(void); >extern void rcu_irq_enter(void); >extern void rcu_irq_exit(void); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_user_enter(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_user_exit(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_user_enter_after_irq(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_user_exit_after_irq(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_user_hooks_switch(struct task_struct *prev, > struct task_struct *next) { } > > >extern void exit_rcu(void); ># 266 "include/linux/rcupdate.h" >typedef void call_rcu_func_t(struct callback_head *head, > void (*func)(struct callback_head *head)); >void wait_rcu_gp(call_rcu_func_t crf); > > ># 1 "include/linux/rcutree.h" 1 ># 33 "include/linux/rcutree.h" >extern void rcu_init(void); >extern void rcu_note_context_switch(int cpu); >extern int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies); >extern void rcu_cpu_stall_reset(void); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_virt_note_context_switch(int cpu) >{ > rcu_note_context_switch(cpu); >} > >extern void synchronize_rcu_bh(void); >extern void synchronize_sched_expedited(void); >extern void synchronize_rcu_expedited(void); > >void kfree_call_rcu(struct callback_head *head, void (*func)(struct callback_head *rcu)); ># 70 "include/linux/rcutree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void synchronize_rcu_bh_expedited(void) >{ > synchronize_sched_expedited(); >} > >extern void rcu_barrier(void); >extern void rcu_barrier_bh(void); >extern void rcu_barrier_sched(void); > >extern unsigned long rcutorture_testseq; >extern unsigned long rcutorture_vernum; >extern long rcu_batches_completed(void); >extern long rcu_batches_completed_bh(void); >extern long rcu_batches_completed_sched(void); > >extern void rcu_force_quiescent_state(void); >extern void rcu_bh_force_quiescent_state(void); >extern void rcu_sched_force_quiescent_state(void); > >extern void rcu_scheduler_starting(void); >extern int rcu_scheduler_active __attribute__((__section__(".data..read_mostly"))); ># 272 "include/linux/rcupdate.h" 2 ># 288 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_rcu_head_on_stack(struct callback_head *head) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void destroy_rcu_head_on_stack(struct callback_head *head) >{ >} > > > >extern int rcu_is_cpu_idle(void); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool rcu_lockdep_current_cpu_online(void) >{ > return 1; >} ># 422 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rcu_read_lock_held(void) >{ > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rcu_read_lock_bh_held(void) >{ > return 1; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rcu_read_lock_sched_held(void) >{ > return 1; >} ># 757 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_lock(void) >{ > __rcu_read_lock(); > (void)0; > do { } while (0); > do { } while (0) > ; >} ># 781 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_unlock(void) >{ > do { } while (0) > ; > do { } while (0); > (void)0; > __rcu_read_unlock(); >} ># 807 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_lock_bh(void) >{ > local_bh_disable(); > (void)0; > do { } while (0); > do { } while (0) > ; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_unlock_bh(void) >{ > do { } while (0) > ; > do { } while (0); > (void)0; > local_bh_enable(); >} ># 843 "include/linux/rcupdate.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_lock_sched(void) >{ > do { } while (0); > (void)0; > do { } while (0); > do { } while (0) > ; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void rcu_read_lock_sched_notrace(void) >{ > do { } while (0); > (void)0; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_read_unlock_sched(void) >{ > do { } while (0) > ; > do { } while (0); > (void)0; > do { } while (0); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void rcu_read_unlock_sched_notrace(void) >{ > (void)0; > do { } while (0); >} ># 34 "include/linux/srcu.h" 2 ># 1 "include/linux/workqueue.h" 1 > > > > > > > ># 1 "include/linux/timer.h" 1 > > > > ># 1 "include/linux/ktime.h" 1 ># 25 "include/linux/ktime.h" ># 1 "include/linux/jiffies.h" 1 > > > > > > > ># 1 "include/linux/timex.h" 1 ># 56 "include/linux/timex.h" ># 1 "include/uapi/linux/timex.h" 1 ># 64 "include/uapi/linux/timex.h" >struct timex { > unsigned int modes; > long offset; > long freq; > long maxerror; > long esterror; > int status; > long constant; > long precision; > long tolerance; > > > struct timeval time; > long tick; > > long ppsfreq; > long jitter; > int shift; > long stabil; > long jitcnt; > long calcnt; > long errcnt; > long stbcnt; > > int tai; > > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; >}; ># 57 "include/linux/timex.h" 2 > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/param.h" 1 > > > ># 1 "arch/arm/include/generated/asm/param.h" 1 ># 1 "include/asm-generic/param.h" 1 > > > ># 1 "include/uapi/asm-generic/param.h" 1 ># 5 "include/asm-generic/param.h" 2 ># 1 "arch/arm/include/generated/asm/param.h" 2 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/param.h" 2 ># 64 "include/linux/timex.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/timex.h" 1 ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/timex.h" ># 1 "arch/arm/mach-tegra/include/mach/timex.h" 1 ># 19 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/timex.h" 2 > > >typedef unsigned long cycles_t; ># 66 "include/linux/timex.h" 2 ># 125 "include/linux/timex.h" >extern unsigned long tick_usec; >extern unsigned long tick_nsec; > >extern void ntp_init(void); >extern void ntp_clear(void); ># 144 "include/linux/timex.h" >extern u64 ntp_tick_length(void); > >extern int second_overflow(unsigned long secs); >extern int do_adjtimex(struct timex *); >extern void hardpps(const struct timespec *, const struct timespec *); > >int read_current_timer(unsigned long *timer_val); ># 9 "include/linux/jiffies.h" 2 ># 1 "arch/arm/include/generated/asm/param.h" 1 ># 10 "include/linux/jiffies.h" 2 ># 57 "include/linux/jiffies.h" >extern int register_refined_jiffies(long clock_tick_rate); ># 76 "include/linux/jiffies.h" >extern u64 __attribute__((section(".data"))) jiffies_64; >extern unsigned long volatile __attribute__((section(".data"))) jiffies; >extern seqlock_t jiffies_lock; > > >u64 get_jiffies_64(void); ># 179 "include/linux/jiffies.h" >extern unsigned long preset_lpj; ># 292 "include/linux/jiffies.h" >extern unsigned int jiffies_to_msecs(const unsigned long j); >extern unsigned int jiffies_to_usecs(const unsigned long j); >extern unsigned long msecs_to_jiffies(const unsigned int m); >extern unsigned long usecs_to_jiffies(const unsigned int u); >extern unsigned long timespec_to_jiffies(const struct timespec *value); >extern void jiffies_to_timespec(const unsigned long jiffies, > struct timespec *value); >extern unsigned long timeval_to_jiffies(const struct timeval *value); >extern void jiffies_to_timeval(const unsigned long jiffies, > struct timeval *value); > >extern clock_t jiffies_to_clock_t(unsigned long x); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) clock_t jiffies_delta_to_clock_t(long delta) >{ > return jiffies_to_clock_t(({ typeof(0L) _max1 = (0L); typeof(delta) _max2 = (delta); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; })); >} > >extern unsigned long clock_t_to_jiffies(unsigned long x); >extern u64 jiffies_64_to_clock_t(u64 x); >extern u64 nsec_to_clock_t(u64 x); >extern u64 nsecs_to_jiffies64(u64 n); >extern unsigned long nsecs_to_jiffies(u64 n); ># 26 "include/linux/ktime.h" 2 ># 46 "include/linux/ktime.h" >union ktime { > s64 tv64; ># 57 "include/linux/ktime.h" >}; > >typedef union ktime ktime_t; ># 74 "include/linux/ktime.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t ktime_set(const long secs, const unsigned long nsecs) >{ > > > > > return (ktime_t) { .tv64 = (s64)secs * 1000000000L + (s64)nsecs }; >} ># 106 "include/linux/ktime.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t timespec_to_ktime(struct timespec ts) >{ > return ktime_set(ts.tv_sec, ts.tv_nsec); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t timeval_to_ktime(struct timeval tv) >{ > return ktime_set(tv.tv_sec, tv.tv_usec * 1000L); >} ># 280 "include/linux/ktime.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ktime_equal(const ktime_t cmp1, const ktime_t cmp2) >{ > return cmp1.tv64 == cmp2.tv64; >} ># 295 "include/linux/ktime.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ktime_compare(const ktime_t cmp1, const ktime_t cmp2) >{ > if (cmp1.tv64 < cmp2.tv64) > return -1; > if (cmp1.tv64 > cmp2.tv64) > return 1; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 ktime_to_us(const ktime_t kt) >{ > struct timeval tv = ns_to_timeval((kt).tv64); > return (s64) tv.tv_sec * 1000000L + tv.tv_usec; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 ktime_to_ms(const ktime_t kt) >{ > struct timeval tv = ns_to_timeval((kt).tv64); > return (s64) tv.tv_sec * 1000L + tv.tv_usec / 1000L; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 ktime_us_delta(const ktime_t later, const ktime_t earlier) >{ > return ktime_to_us(({ (ktime_t){ .tv64 = (later).tv64 - (earlier).tv64 }; })); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t ktime_add_us(const ktime_t kt, const u64 usec) >{ > return ({ (ktime_t){ .tv64 = (kt).tv64 + (usec * 1000) }; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t ktime_sub_us(const ktime_t kt, const u64 usec) >{ > return ({ (ktime_t){ .tv64 = (kt).tv64 - (usec * 1000) }; }); >} > >extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs); ># 343 "include/linux/ktime.h" >extern void ktime_get_ts(struct timespec *ts); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t ns_to_ktime(u64 ns) >{ > static const ktime_t ktime_zero = { .tv64 = 0 }; > return ({ (ktime_t){ .tv64 = (ktime_zero).tv64 + (ns) }; }); >} ># 6 "include/linux/timer.h" 2 > > > > >struct tvec_base; > >struct timer_list { > > > > > struct list_head entry; > unsigned long expires; > struct tvec_base *base; > > void (*function)(unsigned long); > unsigned long data; > > int slack; > > > int start_pid; > void *start_site; > char start_comm[16]; > > > > >}; > >extern struct tvec_base boot_tvec_bases; ># 94 "include/linux/timer.h" >void init_timer_key(struct timer_list *timer, unsigned int flags, > const char *name, struct lock_class_key *key); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void destroy_timer_on_stack(struct timer_list *timer) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_timer_on_stack_key(struct timer_list *timer, > unsigned int flags, const char *name, > struct lock_class_key *key) >{ > init_timer_key(timer, flags, name, key); >} ># 169 "include/linux/timer.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int timer_pending(const struct timer_list * timer) >{ > return timer->entry.next != ((void *)0); >} > >extern void add_timer_on(struct timer_list *timer, int cpu); >extern int del_timer(struct timer_list * timer); >extern int mod_timer(struct timer_list *timer, unsigned long expires); >extern int mod_timer_pending(struct timer_list *timer, unsigned long expires); >extern int mod_timer_pinned(struct timer_list *timer, unsigned long expires); > >extern void set_timer_slack(struct timer_list *time, int slack_hz); ># 195 "include/linux/timer.h" >extern unsigned long get_next_timer_interrupt(unsigned long now); > > > > > > >extern int timer_stats_active; > > > >extern void init_timer_stats(void); > >extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf, > void *timerf, char *comm, > unsigned int timer_flag); > >extern void __timer_stats_timer_set_start_info(struct timer_list *timer, > void *addr); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void timer_stats_timer_set_start_info(struct timer_list *timer) >{ > if (__builtin_expect(!!(!timer_stats_active), 1)) > return; > __timer_stats_timer_set_start_info(timer, __builtin_return_address(0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void timer_stats_timer_clear_start_info(struct timer_list *timer) >{ > timer->start_site = ((void *)0); >} ># 240 "include/linux/timer.h" >extern void add_timer(struct timer_list *timer); > >extern int try_to_del_timer_sync(struct timer_list *timer); > > > extern int del_timer_sync(struct timer_list *timer); > > > > > > >extern void init_timers(void); >extern void run_local_timers(void); >struct hrtimer; >extern enum hrtimer_restart it_real_fn(struct hrtimer *); > >unsigned long __round_jiffies(unsigned long j, int cpu); >unsigned long __round_jiffies_relative(unsigned long j, int cpu); >unsigned long round_jiffies(unsigned long j); >unsigned long round_jiffies_relative(unsigned long j); > >unsigned long __round_jiffies_up(unsigned long j, int cpu); >unsigned long __round_jiffies_up_relative(unsigned long j, int cpu); >unsigned long round_jiffies_up(unsigned long j); >unsigned long round_jiffies_up_relative(unsigned long j); ># 9 "include/linux/workqueue.h" 2 > > > > > > >struct workqueue_struct; > >struct work_struct; >typedef void (*work_func_t)(struct work_struct *work); >void delayed_work_timer_fn(unsigned long __data); > > > > > > > >enum { > WORK_STRUCT_PENDING_BIT = 0, > WORK_STRUCT_DELAYED_BIT = 1, > WORK_STRUCT_CWQ_BIT = 2, > WORK_STRUCT_LINKED_BIT = 3, > > > > > WORK_STRUCT_COLOR_SHIFT = 4, > > > WORK_STRUCT_COLOR_BITS = 4, > > WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT, > WORK_STRUCT_DELAYED = 1 << WORK_STRUCT_DELAYED_BIT, > WORK_STRUCT_CWQ = 1 << WORK_STRUCT_CWQ_BIT, > WORK_STRUCT_LINKED = 1 << WORK_STRUCT_LINKED_BIT, > > > > WORK_STRUCT_STATIC = 0, > > > > > > > WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1, > WORK_NO_COLOR = WORK_NR_COLORS, > > > WORK_CPU_UNBOUND = 4, > WORK_CPU_NONE = 4 + 1, > WORK_CPU_LAST = WORK_CPU_NONE, > > > > > > > WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT + > WORK_STRUCT_COLOR_BITS, > > > WORK_OFFQ_FLAG_BASE = WORK_STRUCT_FLAG_BITS, > > WORK_OFFQ_CANCELING = (1 << WORK_OFFQ_FLAG_BASE), > > WORK_OFFQ_FLAG_BITS = 1, > WORK_OFFQ_CPU_SHIFT = WORK_OFFQ_FLAG_BASE + WORK_OFFQ_FLAG_BITS, > > > WORK_STRUCT_FLAG_MASK = (1UL << WORK_STRUCT_FLAG_BITS) - 1, > WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK, > WORK_STRUCT_NO_CPU = (unsigned long)WORK_CPU_NONE << WORK_OFFQ_CPU_SHIFT, > > > WORK_BUSY_PENDING = 1 << 0, > WORK_BUSY_RUNNING = 1 << 1, >}; > >struct work_struct { > atomic_long_t data; > struct list_head entry; > work_func_t func; > > > >}; > > > > > >struct delayed_work { > struct work_struct work; > struct timer_list timer; > int cpu; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct delayed_work *to_delayed_work(struct work_struct *work) >{ > return ({ const typeof( ((struct delayed_work *)0)->work ) *__mptr = (work); (struct delayed_work *)( (char *)__mptr - __builtin_offsetof(struct delayed_work,work) );}); >} > >struct execute_work { > struct work_struct work; >}; ># 171 "include/linux/workqueue.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __init_work(struct work_struct *work, int onstack) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void destroy_work_on_stack(struct work_struct *work) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int work_static(struct work_struct *work) { return 0; } ># 269 "include/linux/workqueue.h" >enum { > WQ_NON_REENTRANT = 1 << 0, > WQ_UNBOUND = 1 << 1, > WQ_FREEZABLE = 1 << 2, > WQ_MEM_RECLAIM = 1 << 3, > WQ_HIGHPRI = 1 << 4, > WQ_CPU_INTENSIVE = 1 << 5, > > WQ_DRAINING = 1 << 6, > WQ_RESCUER = 1 << 7, > > WQ_MAX_ACTIVE = 512, > WQ_MAX_UNBOUND_PER_CPU = 4, > WQ_DFL_ACTIVE = WQ_MAX_ACTIVE / 2, >}; ># 308 "include/linux/workqueue.h" >extern struct workqueue_struct *system_wq; >extern struct workqueue_struct *system_long_wq; >extern struct workqueue_struct *system_unbound_wq; >extern struct workqueue_struct *system_freezable_wq; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct workqueue_struct * __system_nrt_wq(void) >{ > return system_wq; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct workqueue_struct * __system_nrt_freezable_wq(void) >{ > return system_freezable_wq; >} > > > > > >extern struct workqueue_struct * >__alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active, > struct lock_class_key *key, const char *lock_name, ...) __attribute__((format(printf, 1, 6))); ># 390 "include/linux/workqueue.h" >extern void destroy_workqueue(struct workqueue_struct *wq); > >extern bool queue_work_on(int cpu, struct workqueue_struct *wq, > struct work_struct *work); >extern bool queue_work(struct workqueue_struct *wq, struct work_struct *work); >extern bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq, > struct delayed_work *work, unsigned long delay); >extern bool queue_delayed_work(struct workqueue_struct *wq, > struct delayed_work *work, unsigned long delay); >extern bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, > struct delayed_work *dwork, unsigned long delay); >extern bool mod_delayed_work(struct workqueue_struct *wq, > struct delayed_work *dwork, unsigned long delay); > >extern void flush_workqueue(struct workqueue_struct *wq); >extern void drain_workqueue(struct workqueue_struct *wq); >extern void flush_scheduled_work(void); > >extern bool schedule_work_on(int cpu, struct work_struct *work); >extern bool schedule_work(struct work_struct *work); >extern bool schedule_delayed_work_on(int cpu, struct delayed_work *work, > unsigned long delay); >extern bool schedule_delayed_work(struct delayed_work *work, > unsigned long delay); >extern int schedule_on_each_cpu(work_func_t func); >extern int keventd_up(void); > >int execute_in_process_context(work_func_t fn, struct execute_work *); > >extern bool flush_work(struct work_struct *work); >extern bool cancel_work_sync(struct work_struct *work); > >extern bool flush_delayed_work(struct delayed_work *dwork); >extern bool cancel_delayed_work(struct delayed_work *dwork); >extern bool cancel_delayed_work_sync(struct delayed_work *dwork); > >extern void workqueue_set_max_active(struct workqueue_struct *wq, > int max_active); >extern bool workqueue_congested(unsigned int cpu, struct workqueue_struct *wq); >extern unsigned int work_cpu(struct work_struct *work); >extern unsigned int work_busy(struct work_struct *work); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool __cancel_delayed_work(struct delayed_work *work) >{ > bool ret; > > ret = del_timer(&work->timer); > if (ret) > _clear_bit(WORK_STRUCT_PENDING_BIT,((unsigned long *)(&(&work->work)->data))); > return ret; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool flush_work_sync(struct work_struct *work) >{ > return flush_work(work); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool flush_delayed_work_sync(struct delayed_work *dwork) >{ > return flush_delayed_work(dwork); >} > > > > > > > >long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg); > > > >extern void freeze_workqueues_begin(void); >extern bool freeze_workqueues_busy(void); >extern void thaw_workqueues(void); ># 35 "include/linux/srcu.h" 2 > >struct srcu_struct_array { > unsigned long c[2]; > unsigned long seq[2]; >}; > >struct rcu_batch { > struct callback_head *head, **tail; >}; > > > >struct srcu_struct { > unsigned completed; > struct srcu_struct_array *per_cpu_ref; > spinlock_t queue_lock; > bool running; > > struct rcu_batch batch_queue; > > struct rcu_batch batch_check0; > > struct rcu_batch batch_check1; > struct rcu_batch batch_done; > struct delayed_work work; > > > >}; ># 80 "include/linux/srcu.h" >int init_srcu_struct(struct srcu_struct *sp); > > > > >void process_srcu(struct work_struct *work); ># 130 "include/linux/srcu.h" >void call_srcu(struct srcu_struct *sp, struct callback_head *head, > void (*func)(struct callback_head *head)); > >void cleanup_srcu_struct(struct srcu_struct *sp); >int __srcu_read_lock(struct srcu_struct *sp) ; >void __srcu_read_unlock(struct srcu_struct *sp, int idx) ; >void synchronize_srcu(struct srcu_struct *sp); >void synchronize_srcu_expedited(struct srcu_struct *sp); >long srcu_batches_completed(struct srcu_struct *sp); >void srcu_barrier(struct srcu_struct *sp); ># 183 "include/linux/srcu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int srcu_read_lock_held(struct srcu_struct *sp) >{ > return 1; >} ># 234 "include/linux/srcu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int srcu_read_lock(struct srcu_struct *sp) >{ > int retval = __srcu_read_lock(sp); > > do { } while (0); > do { } while (0) > ; > return retval; >} ># 251 "include/linux/srcu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void srcu_read_unlock(struct srcu_struct *sp, int idx) > >{ > do { } while (0) > ; > do { } while (0); > __srcu_read_unlock(sp, idx); >} ># 275 "include/linux/srcu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int srcu_read_lock_raw(struct srcu_struct *sp) >{ > unsigned long flags; > int ret; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > ret = __srcu_read_lock(sp); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > return ret; >} ># 294 "include/linux/srcu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void srcu_read_unlock_raw(struct srcu_struct *sp, int idx) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __srcu_read_unlock(sp, idx); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} ># 16 "include/linux/notifier.h" 2 ># 50 "include/linux/notifier.h" >struct notifier_block { > int (*notifier_call)(struct notifier_block *, unsigned long, void *); > struct notifier_block *next; > int priority; >}; > >struct atomic_notifier_head { > spinlock_t lock; > struct notifier_block *head; >}; > >struct blocking_notifier_head { > struct rw_semaphore rwsem; > struct notifier_block *head; >}; > >struct raw_notifier_head { > struct notifier_block *head; >}; > >struct srcu_notifier_head { > struct mutex mutex; > struct srcu_struct srcu; > struct notifier_block *head; >}; ># 89 "include/linux/notifier.h" >extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); ># 115 "include/linux/notifier.h" >extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, > struct notifier_block *nb); >extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh, > struct notifier_block *nb); >extern int raw_notifier_chain_register(struct raw_notifier_head *nh, > struct notifier_block *nb); >extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh, > struct notifier_block *nb); > >extern int blocking_notifier_chain_cond_register( > struct blocking_notifier_head *nh, > struct notifier_block *nb); > >extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, > struct notifier_block *nb); >extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, > struct notifier_block *nb); >extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh, > struct notifier_block *nb); >extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, > struct notifier_block *nb); > >extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh, > unsigned long val, void *v); >extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh, > unsigned long val, void *v, int nr_to_call, int *nr_calls); >extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh, > unsigned long val, void *v); >extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, > unsigned long val, void *v, int nr_to_call, int *nr_calls); >extern int raw_notifier_call_chain(struct raw_notifier_head *nh, > unsigned long val, void *v); >extern int __raw_notifier_call_chain(struct raw_notifier_head *nh, > unsigned long val, void *v, int nr_to_call, int *nr_calls); >extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh, > unsigned long val, void *v); >extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh, > unsigned long val, void *v, int nr_to_call, int *nr_calls); ># 165 "include/linux/notifier.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int notifier_from_errno(int err) >{ > if (err) > return 0x8000 | (0x0001 - err); > > return 0x0001; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int notifier_to_errno(int ret) >{ > ret &= ~0x8000; > return ret > 0x0001 ? 0x0001 - ret : 0; >} ># 209 "include/linux/notifier.h" >extern struct blocking_notifier_head reboot_notifier_list; ># 7 "include/linux/memory_hotplug.h" 2 > > >struct page; >struct zone; >struct pglist_data; >struct mem_section; >struct memory_block; ># 201 "include/linux/memory_hotplug.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgdat_resize_init(struct pglist_data *pgdat) {} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned zone_span_seqbegin(struct zone *zone) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_span_seqretry(struct zone *zone, unsigned iv) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_span_writelock(struct zone *zone) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_span_writeunlock(struct zone *zone) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_seqlock_init(struct zone *zone) {} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mhp_notimplemented(const char *func) >{ > printk("\001" "4" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func); > dump_stack(); > return -38; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void register_page_bootmem_info_node(struct pglist_data *pgdat) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lock_memory_hotplug(void) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void unlock_memory_hotplug(void) {} ># 238 "include/linux/memory_hotplug.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_mem_section_removable(unsigned long pfn, > unsigned long nr_pages) >{ > return 0; >} > > >extern int mem_online_node(int nid); >extern int add_memory(int nid, u64 start, u64 size); >extern int arch_add_memory(int nid, u64 start, u64 size); >extern int offline_pages(unsigned long start_pfn, unsigned long nr_pages); >extern int offline_memory_block(struct memory_block *mem); >extern int remove_memory(u64 start, u64 size); >extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, > int nr_pages); >extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms); >extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map, > unsigned long pnum); ># 762 "include/linux/mmzone.h" 2 > >extern struct mutex zonelists_mutex; >void build_all_zonelists(pg_data_t *pgdat, struct zone *zone); >void wakeup_kswapd(struct zone *zone, int order, enum zone_type classzone_idx); >bool zone_watermark_ok(struct zone *z, int order, unsigned long mark, > int classzone_idx, int alloc_flags); >bool zone_watermark_ok_safe(struct zone *z, int order, unsigned long mark, > int classzone_idx, int alloc_flags); >enum memmap_context { > MEMMAP_EARLY, > MEMMAP_HOTPLUG, >}; >extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn, > unsigned long size, > enum memmap_context context); > >extern void lruvec_init(struct lruvec *lruvec); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct zone *lruvec_zone(struct lruvec *lruvec) >{ > > return lruvec->zone; > > > >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void memory_present(int nid, unsigned long start, unsigned long end) {} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int local_memory_node(int node_id) { return node_id; }; ># 810 "include/linux/mmzone.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int populated_zone(struct zone *zone) >{ > return (!!zone->present_pages); >} > >extern int movable_zone; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_movable_is_highmem(void) >{ > > > > return 0; > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_highmem_idx(enum zone_type idx) >{ > > return (idx == ZONE_HIGHMEM || > (idx == ZONE_MOVABLE && zone_movable_is_highmem())); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_normal_idx(enum zone_type idx) >{ > return (idx == ZONE_NORMAL); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_highmem(struct zone *zone) >{ > > int zone_off = (char *)zone - (char *)zone->zone_pgdat->node_zones; > return zone_off == ZONE_HIGHMEM * sizeof(*zone) || > (zone_off == ZONE_MOVABLE * sizeof(*zone) && > zone_movable_is_highmem()); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_normal(struct zone *zone) >{ > return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_dma32(struct zone *zone) >{ > > > > return 0; > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_dma(struct zone *zone) >{ > > > > return 0; > >} > > >struct ctl_table; >int min_free_kbytes_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int sysctl_lowmem_reserve_ratio[3 -1]; >int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); > >extern int numa_zonelist_order_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern char numa_zonelist_order[]; > > > > >extern struct pglist_data contig_page_data; ># 913 "include/linux/mmzone.h" >extern struct pglist_data *first_online_pgdat(void); >extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat); >extern struct zone *next_zone(struct zone *zone); ># 945 "include/linux/mmzone.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct zone *zonelist_zone(struct zoneref *zoneref) >{ > return zoneref->zone; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zonelist_zone_idx(struct zoneref *zoneref) >{ > return zoneref->zone_idx; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zonelist_node_idx(struct zoneref *zoneref) >{ > > > > > return 0; > >} ># 978 "include/linux/mmzone.h" >struct zoneref *next_zones_zonelist(struct zoneref *z, > enum zone_type highest_zoneidx, > nodemask_t *nodes, > struct zone **zone); ># 995 "include/linux/mmzone.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct zoneref *first_zones_zonelist(struct zonelist *zonelist, > enum zone_type highest_zoneidx, > nodemask_t *nodes, > struct zone **zone) >{ > return next_zones_zonelist(zonelist->_zonerefs, highest_zoneidx, nodes, > zone); >} ># 1038 "include/linux/mmzone.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long early_pfn_to_nid(unsigned long pfn) >{ > return 0; >} ># 1224 "include/linux/mmzone.h" >void memory_present(int nid, unsigned long start, unsigned long end); >unsigned long __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) node_memmap_size_bytes(int, unsigned long, unsigned long); ># 1258 "include/linux/mmzone.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int memmap_valid_within(unsigned long pfn, > struct page *page, struct zone *zone) >{ > return 1; >} ># 5 "include/linux/gfp.h" 2 > > ># 1 "include/linux/topology.h" 1 ># 33 "include/linux/topology.h" ># 1 "include/linux/smp.h" 1 ># 15 "include/linux/smp.h" >extern void cpu_idle(void); > >typedef void (*smp_call_func_t)(void *info); >struct call_single_data { > struct list_head list; > smp_call_func_t func; > void *info; > u16 flags; > u16 priv; >}; > > >extern unsigned int total_cpus; > >int smp_call_function_single(int cpuid, smp_call_func_t func, void *info, > int wait); > > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/smp.h" 1 ># 23 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/smp.h" >struct seq_file; > > > > >extern void show_ipi_list(struct seq_file *, int); > > > > > void do_IPI(int ipinr, struct pt_regs *regs); > > > > >void handle_IPI(int ipinr, struct pt_regs *regs); > > > > >extern void smp_init_cpus(void); > > > > > >extern void set_smp_cross_call(void (*)(const struct cpumask *, unsigned int)); > > > > > >extern int boot_secondary(unsigned int cpu, struct task_struct *); > > > > > > void secondary_start_kernel(void); > > > > > >struct secondary_data { > unsigned long pgdir; > unsigned long swapper_pg_dir; > void *stack; >}; >extern struct secondary_data secondary_data; >extern volatile int pen_release; > >extern int __cpu_disable(void); > >extern void __cpu_die(unsigned int cpu); >extern void cpu_die(void); > >extern void arch_send_call_function_single_ipi(int cpu); >extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); >extern void arch_send_wakeup_ipi_mask(const struct cpumask *mask); > >struct smp_operations { > > > > > void (*smp_init_cpus)(void); > > > > void (*smp_prepare_cpus)(unsigned int max_cpus); > > > > > void (*smp_secondary_init)(unsigned int cpu); > > > > > int (*smp_boot_secondary)(unsigned int cpu, struct task_struct *idle); > > int (*cpu_kill)(unsigned int cpu); > void (*cpu_die)(unsigned int cpu); > int (*cpu_disable)(unsigned int cpu); > > >}; > > > > >extern void smp_set_ops(struct smp_operations *); ># 39 "include/linux/smp.h" 2 ># 48 "include/linux/smp.h" >extern void smp_send_stop(void); > > > > >extern void smp_send_reschedule(int cpu); > > > > > >extern void smp_prepare_cpus(unsigned int max_cpus); > > > > >extern int __cpu_up(unsigned int cpunum, struct task_struct *tidle); > > > > >extern void smp_cpus_done(unsigned int max_cpus); > > > > >int smp_call_function(smp_call_func_t func, void *info, int wait); >void smp_call_function_many(const struct cpumask *mask, > smp_call_func_t func, void *info, bool wait); > >void __smp_call_function_single(int cpuid, struct call_single_data *data, > int wait); > >int smp_call_function_any(const struct cpumask *mask, > smp_call_func_t func, void *info, int wait); > >void kick_all_cpus_sync(void); > > > > > >void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) call_function_init(void); >void generic_smp_call_function_single_interrupt(void); >void generic_smp_call_function_interrupt(void); > > > > > > > >int on_each_cpu(smp_call_func_t func, void *info, int wait); > > > > > >void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func, > void *info, bool wait); > > > > > > >void on_each_cpu_cond(bool (*cond_func)(int cpu, void *info), > smp_call_func_t func, void *info, bool wait, > gfp_t gfp_flags); > > > > > >void smp_prepare_boot_cpu(void); > >extern unsigned int setup_max_cpus; >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) setup_nr_cpu_ids(void); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) smp_init(void); ># 225 "include/linux/smp.h" >extern void arch_disable_smp_support(void); > >void smp_setup_processor_id(void); ># 34 "include/linux/topology.h" 2 ># 1 "include/linux/percpu.h" 1 > > > > > > ># 1 "include/linux/pfn.h" 1 ># 8 "include/linux/percpu.h" 2 > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/percpu.h" 1 ># 24 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/percpu.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_my_cpu_offset(unsigned long off) >{ > > asm volatile("mcr p15, 0, %0, c13, c0, 4" : : "r" (off) : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __my_cpu_offset(void) >{ > unsigned long off; > > asm("mrc p15, 0, %0, c13, c0, 4" : "=r" (off) : : "memory"); > return off; >} > > > > > > ># 1 "include/asm-generic/percpu.h" 1 > > > > > ># 1 "include/linux/percpu-defs.h" 1 ># 7 "include/asm-generic/percpu.h" 2 ># 18 "include/asm-generic/percpu.h" >extern unsigned long __per_cpu_offset[4]; ># 44 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/percpu.h" 2 ># 11 "include/linux/percpu.h" 2 ># 81 "include/linux/percpu.h" >extern void *pcpu_base_addr; >extern const unsigned long *pcpu_unit_offsets; > >struct pcpu_group_info { > int nr_units; > unsigned long base_offset; > unsigned int *cpu_map; > >}; > >struct pcpu_alloc_info { > size_t static_size; > size_t reserved_size; > size_t dyn_size; > size_t unit_size; > size_t atom_size; > size_t alloc_size; > size_t __ai_size; > int nr_groups; > struct pcpu_group_info groups[]; >}; > >enum pcpu_fc { > PCPU_FC_AUTO, > PCPU_FC_EMBED, > PCPU_FC_PAGE, > > PCPU_FC_NR, >}; >extern const char * const pcpu_fc_names[PCPU_FC_NR]; > >extern enum pcpu_fc pcpu_chosen_fc; > >typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size, > size_t align); >typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size); >typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr); >typedef int (pcpu_fc_cpu_distance_fn_t)(unsigned int from, unsigned int to); > >extern struct pcpu_alloc_info * __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) pcpu_alloc_alloc_info(int nr_groups, > int nr_units); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) pcpu_free_alloc_info(struct pcpu_alloc_info *ai); > >extern int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai, > void *base_addr); ># 153 "include/linux/percpu.h" >extern void *__alloc_reserved_percpu(size_t size, size_t align); >extern bool is_kernel_percpu_address(unsigned long addr); > > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) setup_per_cpu_areas(void); > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) percpu_init_late(void); > >extern void *__alloc_percpu(size_t size, size_t align); >extern void free_percpu(void *__pdata); >extern phys_addr_t per_cpu_ptr_to_phys(void *addr); ># 173 "include/linux/percpu.h" >extern void __bad_size_call_parameter(void); ># 35 "include/linux/topology.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/topology.h" 1 > > > > > > > >struct cputopo_arm { > int thread_id; > int core_id; > int socket_id; > cpumask_t thread_sibling; > cpumask_t core_sibling; >}; > >extern struct cputopo_arm cpu_topology[4]; ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/topology.h" >void init_cpu_topology(void); >void store_cpu_topology(unsigned int cpuid); >const struct cpumask *cpu_coregroup_mask(int cpu); ># 37 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/topology.h" ># 1 "include/asm-generic/topology.h" 1 ># 38 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/topology.h" 2 ># 36 "include/linux/topology.h" 2 ># 49 "include/linux/topology.h" >int arch_update_cpu_topology(void); ># 214 "include/linux/topology.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int numa_node_id(void) >{ > return ((void)((current_thread_info()->cpu)),0); >} ># 264 "include/linux/topology.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int numa_mem_id(void) >{ > return numa_node_id(); >} ># 8 "include/linux/gfp.h" 2 ># 1 "include/linux/mmdebug.h" 1 ># 9 "include/linux/gfp.h" 2 > >struct vm_area_struct; ># 157 "include/linux/gfp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int allocflags_to_migratetype(gfp_t gfp_flags) >{ > ({ 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)) warn_slowpath_null("include/linux/gfp.h", 159); __builtin_expect(!!(__ret_warn_on), 0); }); > > if (__builtin_expect(!!(page_group_by_mobility_disabled), 0)) > return MIGRATE_UNMOVABLE; > > > return (((gfp_flags & (( gfp_t)0x08u)) != 0) << 1) | > ((gfp_flags & (( gfp_t)0x80000u)) != 0); >} ># 252 "include/linux/gfp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) enum zone_type gfp_zone(gfp_t flags) >{ > enum zone_type z; > int bit = ( int) (flags & ((( gfp_t)0x01u)|(( gfp_t)0x02u)|(( gfp_t)0x04u)|(( gfp_t)0x08u))); > > z = (( (ZONE_NORMAL << 0 * 2) | (ZONE_NORMAL << 0x01u * 2) | (ZONE_HIGHMEM << 0x02u * 2) | (ZONE_NORMAL << 0x04u * 2) | (ZONE_NORMAL << 0x08u * 2) | (ZONE_NORMAL << (0x08u | 0x01u) * 2) | (ZONE_MOVABLE << (0x08u | 0x02u) * 2) | (ZONE_NORMAL << (0x08u | 0x04u) * 2) ) >> (bit * 2)) & > ((1 << 2) - 1); > ({ int __ret_warn_on = !!((( 1 << (0x01u | 0x02u) | 1 << (0x01u | 0x04u) | 1 << (0x04u | 0x02u) | 1 << (0x01u | 0x04u | 0x02u) | 1 << (0x08u | 0x02u | 0x01u) | 1 << (0x08u | 0x04u | 0x01u) | 1 << (0x08u | 0x04u | 0x02u) | 1 << (0x08u | 0x04u | 0x01u | 0x02u) ) >> bit) & 1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/gfp.h", 259); __builtin_expect(!!(__ret_warn_on), 0); }); > return z; >} ># 270 "include/linux/gfp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int gfp_zonelist(gfp_t flags) >{ > if ((0 || 0) && __builtin_expect(!!(flags & (( gfp_t)0x40000u)), 0)) > return 1; > > return 0; >} ># 287 "include/linux/gfp.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct zonelist *node_zonelist(int nid, gfp_t flags) >{ > return (&contig_page_data)->node_zonelists + gfp_zonelist(flags); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_free_page(struct page *page, int order) { } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void arch_alloc_page(struct page *page, int order) { } > > >struct page * >__alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, > struct zonelist *zonelist, nodemask_t *nodemask); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page * >__alloc_pages(gfp_t gfp_mask, unsigned int order, > struct zonelist *zonelist) >{ > return __alloc_pages_nodemask(gfp_mask, order, zonelist, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask, > unsigned int order) >{ > > if (nid < 0) > nid = numa_node_id(); > > return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *alloc_pages_exact_node(int nid, gfp_t gfp_mask, > unsigned int order) >{ > ({ int __ret_warn_on = !!(nid < 0 || nid >= (1 << 0) || !node_state((nid), N_ONLINE)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/gfp.h", 323); __builtin_expect(!!(__ret_warn_on), 0); }); > > return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask)); >} ># 351 "include/linux/gfp.h" >extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); >extern unsigned long get_zeroed_page(gfp_t gfp_mask); > >void *alloc_pages_exact(size_t size, gfp_t gfp_mask); >void free_pages_exact(void *virt, size_t size); > >void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); > > > > > > > >extern void __free_pages(struct page *page, unsigned int order); >extern void free_pages(unsigned long addr, unsigned int order); >extern void free_hot_cold_page(struct page *page, int cold); >extern void free_hot_cold_page_list(struct list_head *list, int cold); > >extern void __free_memcg_kmem_pages(struct page *page, unsigned int order); >extern void free_memcg_kmem_pages(unsigned long addr, unsigned int order); > > > > >void page_alloc_init(void); >void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp); >void drain_all_pages(void); >void drain_local_pages(void *dummy); ># 388 "include/linux/gfp.h" >extern gfp_t gfp_allowed_mask; > > >bool gfp_pfmemalloc_allowed(gfp_t gfp_mask); > >extern void pm_restrict_gfp_mask(void); >extern void pm_restore_gfp_mask(void); > > >extern bool pm_suspended_storage(void); ># 23 "include/linux/kmod.h" 2 > > > > ># 1 "include/linux/sysctl.h" 1 ># 27 "include/linux/sysctl.h" ># 1 "include/linux/rbtree.h" 1 ># 35 "include/linux/rbtree.h" >struct rb_node { > unsigned long __rb_parent_color; > struct rb_node *rb_right; > struct rb_node *rb_left; >} __attribute__((aligned(sizeof(long)))); > > >struct rb_root { > struct rb_node *rb_node; >}; ># 61 "include/linux/rbtree.h" >extern void rb_insert_color(struct rb_node *, struct rb_root *); >extern void rb_erase(struct rb_node *, struct rb_root *); > > > >extern struct rb_node *rb_next(const struct rb_node *); >extern struct rb_node *rb_prev(const struct rb_node *); >extern struct rb_node *rb_first(const struct rb_root *); >extern struct rb_node *rb_last(const struct rb_root *); > > >extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, > struct rb_root *root); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rb_link_node(struct rb_node * node, struct rb_node * parent, > struct rb_node ** rb_link) >{ > node->__rb_parent_color = (unsigned long)parent; > node->rb_left = node->rb_right = ((void *)0); > > *rb_link = node; >} ># 28 "include/linux/sysctl.h" 2 ># 1 "include/uapi/linux/sysctl.h" 1 ># 29 "include/uapi/linux/sysctl.h" >struct completion; > > > > > > >struct __sysctl_args { > int *name; > int nlen; > void *oldval; > size_t *oldlenp; > void *newval; > size_t newlen; > unsigned long __unused[4]; >}; > > > > > >enum >{ > CTL_KERN=1, > CTL_VM=2, > CTL_NET=3, > CTL_PROC=4, > CTL_FS=5, > CTL_DEBUG=6, > CTL_DEV=7, > CTL_BUS=8, > CTL_ABI=9, > CTL_CPU=10, > CTL_ARLAN=254, > CTL_S390DBF=5677, > CTL_SUNRPC=7249, > CTL_PM=9899, > CTL_FRV=9898, >}; > > >enum >{ > CTL_BUS_ISA=1 >}; > > >enum >{ > INOTIFY_MAX_USER_INSTANCES=1, > INOTIFY_MAX_USER_WATCHES=2, > INOTIFY_MAX_QUEUED_EVENTS=3 >}; > > >enum >{ > KERN_OSTYPE=1, > KERN_OSRELEASE=2, > KERN_OSREV=3, > KERN_VERSION=4, > KERN_SECUREMASK=5, > KERN_PROF=6, > KERN_NODENAME=7, > KERN_DOMAINNAME=8, > > KERN_PANIC=15, > KERN_REALROOTDEV=16, > > KERN_SPARC_REBOOT=21, > KERN_CTLALTDEL=22, > KERN_PRINTK=23, > KERN_NAMETRANS=24, > KERN_PPC_HTABRECLAIM=25, > KERN_PPC_ZEROPAGED=26, > KERN_PPC_POWERSAVE_NAP=27, > KERN_MODPROBE=28, > KERN_SG_BIG_BUFF=29, > KERN_ACCT=30, > KERN_PPC_L2CR=31, > > KERN_RTSIGNR=32, > KERN_RTSIGMAX=33, > > KERN_SHMMAX=34, > KERN_MSGMAX=35, > KERN_MSGMNB=36, > KERN_MSGPOOL=37, > KERN_SYSRQ=38, > KERN_MAX_THREADS=39, > KERN_RANDOM=40, > KERN_SHMALL=41, > KERN_MSGMNI=42, > KERN_SEM=43, > KERN_SPARC_STOP_A=44, > KERN_SHMMNI=45, > KERN_OVERFLOWUID=46, > KERN_OVERFLOWGID=47, > KERN_SHMPATH=48, > KERN_HOTPLUG=49, > KERN_IEEE_EMULATION_WARNINGS=50, > KERN_S390_USER_DEBUG_LOGGING=51, > KERN_CORE_USES_PID=52, > KERN_TAINTED=53, > KERN_CADPID=54, > KERN_PIDMAX=55, > KERN_CORE_PATTERN=56, > KERN_PANIC_ON_OOPS=57, > KERN_HPPA_PWRSW=58, > KERN_HPPA_UNALIGNED=59, > KERN_PRINTK_RATELIMIT=60, > KERN_PRINTK_RATELIMIT_BURST=61, > KERN_PTY=62, > KERN_NGROUPS_MAX=63, > KERN_SPARC_SCONS_PWROFF=64, > KERN_HZ_TIMER=65, > KERN_UNKNOWN_NMI_PANIC=66, > KERN_BOOTLOADER_TYPE=67, > KERN_RANDOMIZE=68, > KERN_SETUID_DUMPABLE=69, > KERN_SPIN_RETRY=70, > KERN_ACPI_VIDEO_FLAGS=71, > KERN_IA64_UNALIGNED=72, > KERN_COMPAT_LOG=73, > KERN_MAX_LOCK_DEPTH=74, > KERN_NMI_WATCHDOG=75, > KERN_PANIC_ON_NMI=76, >}; > > > > >enum >{ > VM_UNUSED1=1, > VM_UNUSED2=2, > VM_UNUSED3=3, > VM_UNUSED4=4, > VM_OVERCOMMIT_MEMORY=5, > VM_UNUSED5=6, > VM_UNUSED7=7, > VM_UNUSED8=8, > VM_UNUSED9=9, > VM_PAGE_CLUSTER=10, > VM_DIRTY_BACKGROUND=11, > VM_DIRTY_RATIO=12, > VM_DIRTY_WB_CS=13, > VM_DIRTY_EXPIRE_CS=14, > VM_NR_PDFLUSH_THREADS=15, > VM_OVERCOMMIT_RATIO=16, > VM_PAGEBUF=17, > VM_HUGETLB_PAGES=18, > VM_SWAPPINESS=19, > VM_LOWMEM_RESERVE_RATIO=20, > VM_MIN_FREE_KBYTES=21, > VM_MAX_MAP_COUNT=22, > VM_LAPTOP_MODE=23, > VM_BLOCK_DUMP=24, > VM_HUGETLB_GROUP=25, > VM_VFS_CACHE_PRESSURE=26, > VM_LEGACY_VA_LAYOUT=27, > VM_SWAP_TOKEN_TIMEOUT=28, > VM_DROP_PAGECACHE=29, > VM_PERCPU_PAGELIST_FRACTION=30, > VM_ZONE_RECLAIM_MODE=31, > VM_MIN_UNMAPPED=32, > VM_PANIC_ON_OOM=33, > VM_VDSO_ENABLED=34, > VM_MIN_SLAB=35, >}; > > > >enum >{ > NET_CORE=1, > NET_ETHER=2, > NET_802=3, > NET_UNIX=4, > NET_IPV4=5, > NET_IPX=6, > NET_ATALK=7, > NET_NETROM=8, > NET_AX25=9, > NET_BRIDGE=10, > NET_ROSE=11, > NET_IPV6=12, > NET_X25=13, > NET_TR=14, > NET_DECNET=15, > NET_ECONET=16, > NET_SCTP=17, > NET_LLC=18, > NET_NETFILTER=19, > NET_DCCP=20, > NET_IRDA=412, >}; > > >enum >{ > RANDOM_POOLSIZE=1, > RANDOM_ENTROPY_COUNT=2, > RANDOM_READ_THRESH=3, > RANDOM_WRITE_THRESH=4, > RANDOM_BOOT_ID=5, > RANDOM_UUID=6 >}; > > >enum >{ > PTY_MAX=1, > PTY_NR=2 >}; > > >enum >{ > BUS_ISA_MEM_BASE=1, > BUS_ISA_PORT_BASE=2, > BUS_ISA_PORT_SHIFT=3 >}; > > >enum >{ > NET_CORE_WMEM_MAX=1, > NET_CORE_RMEM_MAX=2, > NET_CORE_WMEM_DEFAULT=3, > NET_CORE_RMEM_DEFAULT=4, > > NET_CORE_MAX_BACKLOG=6, > NET_CORE_FASTROUTE=7, > NET_CORE_MSG_COST=8, > NET_CORE_MSG_BURST=9, > NET_CORE_OPTMEM_MAX=10, > NET_CORE_HOT_LIST_LENGTH=11, > NET_CORE_DIVERT_VERSION=12, > NET_CORE_NO_CONG_THRESH=13, > NET_CORE_NO_CONG=14, > NET_CORE_LO_CONG=15, > NET_CORE_MOD_CONG=16, > NET_CORE_DEV_WEIGHT=17, > NET_CORE_SOMAXCONN=18, > NET_CORE_BUDGET=19, > NET_CORE_AEVENT_ETIME=20, > NET_CORE_AEVENT_RSEQTH=21, > NET_CORE_WARNINGS=22, >}; > > > > > > > >enum >{ > NET_UNIX_DESTROY_DELAY=1, > NET_UNIX_DELETE_DELAY=2, > NET_UNIX_MAX_DGRAM_QLEN=3, >}; > > >enum >{ > NET_NF_CONNTRACK_MAX=1, > NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, > NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, > NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, > NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, > NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, > NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, > NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, > NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, > NET_NF_CONNTRACK_UDP_TIMEOUT=10, > NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, > NET_NF_CONNTRACK_ICMP_TIMEOUT=12, > NET_NF_CONNTRACK_GENERIC_TIMEOUT=13, > NET_NF_CONNTRACK_BUCKETS=14, > NET_NF_CONNTRACK_LOG_INVALID=15, > NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, > NET_NF_CONNTRACK_TCP_LOOSE=17, > NET_NF_CONNTRACK_TCP_BE_LIBERAL=18, > NET_NF_CONNTRACK_TCP_MAX_RETRANS=19, > NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, > NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, > NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, > NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, > NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, > NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, > NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, > NET_NF_CONNTRACK_COUNT=27, > NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28, > NET_NF_CONNTRACK_FRAG6_TIMEOUT=29, > NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30, > NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31, > NET_NF_CONNTRACK_CHECKSUM=32, >}; > > >enum >{ > > NET_IPV4_FORWARD=8, > NET_IPV4_DYNADDR=9, > > NET_IPV4_CONF=16, > NET_IPV4_NEIGH=17, > NET_IPV4_ROUTE=18, > NET_IPV4_FIB_HASH=19, > NET_IPV4_NETFILTER=20, > > NET_IPV4_TCP_TIMESTAMPS=33, > NET_IPV4_TCP_WINDOW_SCALING=34, > NET_IPV4_TCP_SACK=35, > NET_IPV4_TCP_RETRANS_COLLAPSE=36, > NET_IPV4_DEFAULT_TTL=37, > NET_IPV4_AUTOCONFIG=38, > NET_IPV4_NO_PMTU_DISC=39, > NET_IPV4_TCP_SYN_RETRIES=40, > NET_IPV4_IPFRAG_HIGH_THRESH=41, > NET_IPV4_IPFRAG_LOW_THRESH=42, > NET_IPV4_IPFRAG_TIME=43, > NET_IPV4_TCP_MAX_KA_PROBES=44, > NET_IPV4_TCP_KEEPALIVE_TIME=45, > NET_IPV4_TCP_KEEPALIVE_PROBES=46, > NET_IPV4_TCP_RETRIES1=47, > NET_IPV4_TCP_RETRIES2=48, > NET_IPV4_TCP_FIN_TIMEOUT=49, > NET_IPV4_IP_MASQ_DEBUG=50, > NET_TCP_SYNCOOKIES=51, > NET_TCP_STDURG=52, > NET_TCP_RFC1337=53, > NET_TCP_SYN_TAILDROP=54, > NET_TCP_MAX_SYN_BACKLOG=55, > NET_IPV4_LOCAL_PORT_RANGE=56, > NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, > NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, > NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, > NET_IPV4_ICMP_DESTUNREACH_RATE=60, > NET_IPV4_ICMP_TIMEEXCEED_RATE=61, > NET_IPV4_ICMP_PARAMPROB_RATE=62, > NET_IPV4_ICMP_ECHOREPLY_RATE=63, > NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, > NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, > NET_TCP_TW_RECYCLE=66, > NET_IPV4_ALWAYS_DEFRAG=67, > NET_IPV4_TCP_KEEPALIVE_INTVL=68, > NET_IPV4_INET_PEER_THRESHOLD=69, > NET_IPV4_INET_PEER_MINTTL=70, > NET_IPV4_INET_PEER_MAXTTL=71, > NET_IPV4_INET_PEER_GC_MINTIME=72, > NET_IPV4_INET_PEER_GC_MAXTIME=73, > NET_TCP_ORPHAN_RETRIES=74, > NET_TCP_ABORT_ON_OVERFLOW=75, > NET_TCP_SYNACK_RETRIES=76, > NET_TCP_MAX_ORPHANS=77, > NET_TCP_MAX_TW_BUCKETS=78, > NET_TCP_FACK=79, > NET_TCP_REORDERING=80, > NET_TCP_ECN=81, > NET_TCP_DSACK=82, > NET_TCP_MEM=83, > NET_TCP_WMEM=84, > NET_TCP_RMEM=85, > NET_TCP_APP_WIN=86, > NET_TCP_ADV_WIN_SCALE=87, > NET_IPV4_NONLOCAL_BIND=88, > NET_IPV4_ICMP_RATELIMIT=89, > NET_IPV4_ICMP_RATEMASK=90, > NET_TCP_TW_REUSE=91, > NET_TCP_FRTO=92, > NET_TCP_LOW_LATENCY=93, > NET_IPV4_IPFRAG_SECRET_INTERVAL=94, > NET_IPV4_IGMP_MAX_MSF=96, > NET_TCP_NO_METRICS_SAVE=97, > NET_TCP_DEFAULT_WIN_SCALE=105, > NET_TCP_MODERATE_RCVBUF=106, > NET_TCP_TSO_WIN_DIVISOR=107, > NET_TCP_BIC_BETA=108, > NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, > NET_TCP_CONG_CONTROL=110, > NET_TCP_ABC=111, > NET_IPV4_IPFRAG_MAX_DIST=112, > NET_TCP_MTU_PROBING=113, > NET_TCP_BASE_MSS=114, > NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115, > NET_TCP_DMA_COPYBREAK=116, > NET_TCP_SLOW_START_AFTER_IDLE=117, > NET_CIPSOV4_CACHE_ENABLE=118, > NET_CIPSOV4_CACHE_BUCKET_SIZE=119, > NET_CIPSOV4_RBM_OPTFMT=120, > NET_CIPSOV4_RBM_STRICTVALID=121, > NET_TCP_AVAIL_CONG_CONTROL=122, > NET_TCP_ALLOWED_CONG_CONTROL=123, > NET_TCP_MAX_SSTHRESH=124, > NET_TCP_FRTO_RESPONSE=125, >}; > >enum { > NET_IPV4_ROUTE_FLUSH=1, > NET_IPV4_ROUTE_MIN_DELAY=2, > NET_IPV4_ROUTE_MAX_DELAY=3, > NET_IPV4_ROUTE_GC_THRESH=4, > NET_IPV4_ROUTE_MAX_SIZE=5, > NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, > NET_IPV4_ROUTE_GC_TIMEOUT=7, > NET_IPV4_ROUTE_GC_INTERVAL=8, > NET_IPV4_ROUTE_REDIRECT_LOAD=9, > NET_IPV4_ROUTE_REDIRECT_NUMBER=10, > NET_IPV4_ROUTE_REDIRECT_SILENCE=11, > NET_IPV4_ROUTE_ERROR_COST=12, > NET_IPV4_ROUTE_ERROR_BURST=13, > NET_IPV4_ROUTE_GC_ELASTICITY=14, > NET_IPV4_ROUTE_MTU_EXPIRES=15, > NET_IPV4_ROUTE_MIN_PMTU=16, > NET_IPV4_ROUTE_MIN_ADVMSS=17, > NET_IPV4_ROUTE_SECRET_INTERVAL=18, > NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19, >}; > >enum >{ > NET_PROTO_CONF_ALL=-2, > NET_PROTO_CONF_DEFAULT=-3 > > >}; > >enum >{ > NET_IPV4_CONF_FORWARDING=1, > NET_IPV4_CONF_MC_FORWARDING=2, > NET_IPV4_CONF_PROXY_ARP=3, > NET_IPV4_CONF_ACCEPT_REDIRECTS=4, > NET_IPV4_CONF_SECURE_REDIRECTS=5, > NET_IPV4_CONF_SEND_REDIRECTS=6, > NET_IPV4_CONF_SHARED_MEDIA=7, > NET_IPV4_CONF_RP_FILTER=8, > NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, > NET_IPV4_CONF_BOOTP_RELAY=10, > NET_IPV4_CONF_LOG_MARTIANS=11, > NET_IPV4_CONF_TAG=12, > NET_IPV4_CONF_ARPFILTER=13, > NET_IPV4_CONF_MEDIUM_ID=14, > NET_IPV4_CONF_NOXFRM=15, > NET_IPV4_CONF_NOPOLICY=16, > NET_IPV4_CONF_FORCE_IGMP_VERSION=17, > NET_IPV4_CONF_ARP_ANNOUNCE=18, > NET_IPV4_CONF_ARP_IGNORE=19, > NET_IPV4_CONF_PROMOTE_SECONDARIES=20, > NET_IPV4_CONF_ARP_ACCEPT=21, > NET_IPV4_CONF_ARP_NOTIFY=22, >}; > > >enum >{ > NET_IPV4_NF_CONNTRACK_MAX=1, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, > NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, > NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, > NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, > NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, > NET_IPV4_NF_CONNTRACK_BUCKETS=14, > NET_IPV4_NF_CONNTRACK_LOG_INVALID=15, > NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, > NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17, > NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18, > NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, > NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, > NET_IPV4_NF_CONNTRACK_COUNT=27, > NET_IPV4_NF_CONNTRACK_CHECKSUM=28, >}; > > >enum { > NET_IPV6_CONF=16, > NET_IPV6_NEIGH=17, > NET_IPV6_ROUTE=18, > NET_IPV6_ICMP=19, > NET_IPV6_BINDV6ONLY=20, > NET_IPV6_IP6FRAG_HIGH_THRESH=21, > NET_IPV6_IP6FRAG_LOW_THRESH=22, > NET_IPV6_IP6FRAG_TIME=23, > NET_IPV6_IP6FRAG_SECRET_INTERVAL=24, > NET_IPV6_MLD_MAX_MSF=25, >}; > >enum { > NET_IPV6_ROUTE_FLUSH=1, > NET_IPV6_ROUTE_GC_THRESH=2, > NET_IPV6_ROUTE_MAX_SIZE=3, > NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, > NET_IPV6_ROUTE_GC_TIMEOUT=5, > NET_IPV6_ROUTE_GC_INTERVAL=6, > NET_IPV6_ROUTE_GC_ELASTICITY=7, > NET_IPV6_ROUTE_MTU_EXPIRES=8, > NET_IPV6_ROUTE_MIN_ADVMSS=9, > NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10 >}; > >enum { > NET_IPV6_FORWARDING=1, > NET_IPV6_HOP_LIMIT=2, > NET_IPV6_MTU=3, > NET_IPV6_ACCEPT_RA=4, > NET_IPV6_ACCEPT_REDIRECTS=5, > NET_IPV6_AUTOCONF=6, > NET_IPV6_DAD_TRANSMITS=7, > NET_IPV6_RTR_SOLICITS=8, > NET_IPV6_RTR_SOLICIT_INTERVAL=9, > NET_IPV6_RTR_SOLICIT_DELAY=10, > NET_IPV6_USE_TEMPADDR=11, > NET_IPV6_TEMP_VALID_LFT=12, > NET_IPV6_TEMP_PREFERED_LFT=13, > NET_IPV6_REGEN_MAX_RETRY=14, > NET_IPV6_MAX_DESYNC_FACTOR=15, > NET_IPV6_MAX_ADDRESSES=16, > NET_IPV6_FORCE_MLD_VERSION=17, > NET_IPV6_ACCEPT_RA_DEFRTR=18, > NET_IPV6_ACCEPT_RA_PINFO=19, > NET_IPV6_ACCEPT_RA_RTR_PREF=20, > NET_IPV6_RTR_PROBE_INTERVAL=21, > NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, > NET_IPV6_PROXY_NDP=23, > NET_IPV6_ACCEPT_SOURCE_ROUTE=25, > __NET_IPV6_MAX >}; > > >enum { > NET_IPV6_ICMP_RATELIMIT=1 >}; > > >enum { > NET_NEIGH_MCAST_SOLICIT=1, > NET_NEIGH_UCAST_SOLICIT=2, > NET_NEIGH_APP_SOLICIT=3, > NET_NEIGH_RETRANS_TIME=4, > NET_NEIGH_REACHABLE_TIME=5, > NET_NEIGH_DELAY_PROBE_TIME=6, > NET_NEIGH_GC_STALE_TIME=7, > NET_NEIGH_UNRES_QLEN=8, > NET_NEIGH_PROXY_QLEN=9, > NET_NEIGH_ANYCAST_DELAY=10, > NET_NEIGH_PROXY_DELAY=11, > NET_NEIGH_LOCKTIME=12, > NET_NEIGH_GC_INTERVAL=13, > NET_NEIGH_GC_THRESH1=14, > NET_NEIGH_GC_THRESH2=15, > NET_NEIGH_GC_THRESH3=16, > NET_NEIGH_RETRANS_TIME_MS=17, > NET_NEIGH_REACHABLE_TIME_MS=18, >}; > > >enum { > NET_DCCP_DEFAULT=1, >}; > > >enum { > NET_IPX_PPROP_BROADCASTING=1, > NET_IPX_FORWARDING=2 >}; > > >enum { > NET_LLC2=1, > NET_LLC_STATION=2, >}; > > >enum { > NET_LLC2_TIMEOUT=1, >}; > > >enum { > NET_LLC_STATION_ACK_TIMEOUT=1, >}; > > >enum { > NET_LLC2_ACK_TIMEOUT=1, > NET_LLC2_P_TIMEOUT=2, > NET_LLC2_REJ_TIMEOUT=3, > NET_LLC2_BUSY_TIMEOUT=4, >}; > > >enum { > NET_ATALK_AARP_EXPIRY_TIME=1, > NET_ATALK_AARP_TICK_TIME=2, > NET_ATALK_AARP_RETRANSMIT_LIMIT=3, > NET_ATALK_AARP_RESOLVE_TIME=4 >}; > > > >enum { > NET_NETROM_DEFAULT_PATH_QUALITY=1, > NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, > NET_NETROM_NETWORK_TTL_INITIALISER=3, > NET_NETROM_TRANSPORT_TIMEOUT=4, > NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, > NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, > NET_NETROM_TRANSPORT_BUSY_DELAY=7, > NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, > NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, > NET_NETROM_ROUTING_CONTROL=10, > NET_NETROM_LINK_FAILS_COUNT=11, > NET_NETROM_RESET=12 >}; > > >enum { > NET_AX25_IP_DEFAULT_MODE=1, > NET_AX25_DEFAULT_MODE=2, > NET_AX25_BACKOFF_TYPE=3, > NET_AX25_CONNECT_MODE=4, > NET_AX25_STANDARD_WINDOW=5, > NET_AX25_EXTENDED_WINDOW=6, > NET_AX25_T1_TIMEOUT=7, > NET_AX25_T2_TIMEOUT=8, > NET_AX25_T3_TIMEOUT=9, > NET_AX25_IDLE_TIMEOUT=10, > NET_AX25_N2=11, > NET_AX25_PACLEN=12, > NET_AX25_PROTOCOL=13, > NET_AX25_DAMA_SLAVE_TIMEOUT=14 >}; > > >enum { > NET_ROSE_RESTART_REQUEST_TIMEOUT=1, > NET_ROSE_CALL_REQUEST_TIMEOUT=2, > NET_ROSE_RESET_REQUEST_TIMEOUT=3, > NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, > NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, > NET_ROSE_ROUTING_CONTROL=6, > NET_ROSE_LINK_FAIL_TIMEOUT=7, > NET_ROSE_MAX_VCS=8, > NET_ROSE_WINDOW_SIZE=9, > NET_ROSE_NO_ACTIVITY_TIMEOUT=10 >}; > > >enum { > NET_X25_RESTART_REQUEST_TIMEOUT=1, > NET_X25_CALL_REQUEST_TIMEOUT=2, > NET_X25_RESET_REQUEST_TIMEOUT=3, > NET_X25_CLEAR_REQUEST_TIMEOUT=4, > NET_X25_ACK_HOLD_BACK_TIMEOUT=5, > NET_X25_FORWARD=6 >}; > > >enum >{ > NET_TR_RIF_TIMEOUT=1 >}; > > >enum { > NET_DECNET_NODE_TYPE = 1, > NET_DECNET_NODE_ADDRESS = 2, > NET_DECNET_NODE_NAME = 3, > NET_DECNET_DEFAULT_DEVICE = 4, > NET_DECNET_TIME_WAIT = 5, > NET_DECNET_DN_COUNT = 6, > NET_DECNET_DI_COUNT = 7, > NET_DECNET_DR_COUNT = 8, > NET_DECNET_DST_GC_INTERVAL = 9, > NET_DECNET_CONF = 10, > NET_DECNET_NO_FC_MAX_CWND = 11, > NET_DECNET_MEM = 12, > NET_DECNET_RMEM = 13, > NET_DECNET_WMEM = 14, > NET_DECNET_DEBUG_LEVEL = 255 >}; > > >enum { > NET_DECNET_CONF_LOOPBACK = -2, > NET_DECNET_CONF_DDCMP = -3, > NET_DECNET_CONF_PPP = -4, > NET_DECNET_CONF_X25 = -5, > NET_DECNET_CONF_GRE = -6, > NET_DECNET_CONF_ETHER = -7 > > >}; > > >enum { > NET_DECNET_CONF_DEV_PRIORITY = 1, > NET_DECNET_CONF_DEV_T1 = 2, > NET_DECNET_CONF_DEV_T2 = 3, > NET_DECNET_CONF_DEV_T3 = 4, > NET_DECNET_CONF_DEV_FORWARDING = 5, > NET_DECNET_CONF_DEV_BLKSIZE = 6, > NET_DECNET_CONF_DEV_STATE = 7 >}; > > >enum { > NET_SCTP_RTO_INITIAL = 1, > NET_SCTP_RTO_MIN = 2, > NET_SCTP_RTO_MAX = 3, > NET_SCTP_RTO_ALPHA = 4, > NET_SCTP_RTO_BETA = 5, > NET_SCTP_VALID_COOKIE_LIFE = 6, > NET_SCTP_ASSOCIATION_MAX_RETRANS = 7, > NET_SCTP_PATH_MAX_RETRANS = 8, > NET_SCTP_MAX_INIT_RETRANSMITS = 9, > NET_SCTP_HB_INTERVAL = 10, > NET_SCTP_PRESERVE_ENABLE = 11, > NET_SCTP_MAX_BURST = 12, > NET_SCTP_ADDIP_ENABLE = 13, > NET_SCTP_PRSCTP_ENABLE = 14, > NET_SCTP_SNDBUF_POLICY = 15, > NET_SCTP_SACK_TIMEOUT = 16, > NET_SCTP_RCVBUF_POLICY = 17, >}; > > >enum { > NET_BRIDGE_NF_CALL_ARPTABLES = 1, > NET_BRIDGE_NF_CALL_IPTABLES = 2, > NET_BRIDGE_NF_CALL_IP6TABLES = 3, > NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4, > NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5, >}; > > >enum { > NET_IRDA_DISCOVERY=1, > NET_IRDA_DEVNAME=2, > NET_IRDA_DEBUG=3, > NET_IRDA_FAST_POLL=4, > NET_IRDA_DISCOVERY_SLOTS=5, > NET_IRDA_DISCOVERY_TIMEOUT=6, > NET_IRDA_SLOT_TIMEOUT=7, > NET_IRDA_MAX_BAUD_RATE=8, > NET_IRDA_MIN_TX_TURN_TIME=9, > NET_IRDA_MAX_TX_DATA_SIZE=10, > NET_IRDA_MAX_TX_WINDOW=11, > NET_IRDA_MAX_NOREPLY_TIME=12, > NET_IRDA_WARN_NOREPLY_TIME=13, > NET_IRDA_LAP_KEEPALIVE_TIME=14, >}; > > > >enum >{ > FS_NRINODE=1, > FS_STATINODE=2, > FS_MAXINODE=3, > FS_NRDQUOT=4, > FS_MAXDQUOT=5, > FS_NRFILE=6, > FS_MAXFILE=7, > FS_DENTRY=8, > FS_NRSUPER=9, > FS_MAXSUPER=10, > FS_OVERFLOWUID=11, > FS_OVERFLOWGID=12, > FS_LEASES=13, > FS_DIR_NOTIFY=14, > FS_LEASE_TIME=15, > FS_DQSTATS=16, > FS_XFS=17, > FS_AIO_NR=18, > FS_AIO_MAX_NR=19, > FS_INOTIFY=20, > FS_OCFS2=988, >}; > > >enum { > FS_DQ_LOOKUPS = 1, > FS_DQ_DROPS = 2, > FS_DQ_READS = 3, > FS_DQ_WRITES = 4, > FS_DQ_CACHE_HITS = 5, > FS_DQ_ALLOCATED = 6, > FS_DQ_FREE = 7, > FS_DQ_SYNCS = 8, > FS_DQ_WARNINGS = 9, >}; > > > > >enum { > DEV_CDROM=1, > DEV_HWMON=2, > DEV_PARPORT=3, > DEV_RAID=4, > DEV_MAC_HID=5, > DEV_SCSI=6, > DEV_IPMI=7, >}; > > >enum { > DEV_CDROM_INFO=1, > DEV_CDROM_AUTOCLOSE=2, > DEV_CDROM_AUTOEJECT=3, > DEV_CDROM_DEBUG=4, > DEV_CDROM_LOCK=5, > DEV_CDROM_CHECK_MEDIA=6 >}; > > >enum { > DEV_PARPORT_DEFAULT=-3 >}; > > >enum { > DEV_RAID_SPEED_LIMIT_MIN=1, > DEV_RAID_SPEED_LIMIT_MAX=2 >}; > > >enum { > DEV_PARPORT_DEFAULT_TIMESLICE=1, > DEV_PARPORT_DEFAULT_SPINTIME=2 >}; > > >enum { > DEV_PARPORT_SPINTIME=1, > DEV_PARPORT_BASE_ADDR=2, > DEV_PARPORT_IRQ=3, > DEV_PARPORT_DMA=4, > DEV_PARPORT_MODES=5, > DEV_PARPORT_DEVICES=6, > DEV_PARPORT_AUTOPROBE=16 >}; > > >enum { > DEV_PARPORT_DEVICES_ACTIVE=-3, >}; > > >enum { > DEV_PARPORT_DEVICE_TIMESLICE=1, >}; > > >enum { > DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, > DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, > DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, > DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, > DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, > DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 >}; > > >enum { > DEV_SCSI_LOGGING_LEVEL=1, >}; > > >enum { > DEV_IPMI_POWEROFF_POWERCYCLE=1, >}; > > >enum >{ > ABI_DEFHANDLER_COFF=1, > ABI_DEFHANDLER_ELF=2, > ABI_DEFHANDLER_LCALL7=3, > ABI_DEFHANDLER_LIBCSO=4, > ABI_TRACE=5, > ABI_FAKE_UTSNAME=6, >}; ># 29 "include/linux/sysctl.h" 2 > > >struct ctl_table; >struct nsproxy; >struct ctl_table_root; >struct ctl_table_header; >struct ctl_dir; > >typedef struct ctl_table ctl_table; > >typedef int proc_handler (struct ctl_table *ctl, int write, > void *buffer, size_t *lenp, loff_t *ppos); > >extern int proc_dostring(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_dointvec(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_dointvec_minmax(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_dointvec_jiffies(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_dointvec_ms_jiffies(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_doulongvec_minmax(struct ctl_table *, int, > void *, size_t *, loff_t *); >extern int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int, > void *, size_t *, loff_t *); >extern int proc_do_large_bitmap(struct ctl_table *, int, > void *, size_t *, loff_t *); ># 89 "include/linux/sysctl.h" >struct ctl_table_poll { > atomic_t event; > wait_queue_head_t wait; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *proc_sys_poll_event(struct ctl_table_poll *poll) >{ > return (void *)(unsigned long)(*(volatile int *)&(&poll->event)->counter); >} ># 107 "include/linux/sysctl.h" >struct ctl_table >{ > const char *procname; > void *data; > int maxlen; > umode_t mode; > struct ctl_table *child; > proc_handler *proc_handler; > struct ctl_table_poll *poll; > void *extra1; > void *extra2; >}; > >struct ctl_node { > struct rb_node node; > struct ctl_table_header *header; >}; > > > >struct ctl_table_header >{ > union { > struct { > struct ctl_table *ctl_table; > int used; > int count; > int nreg; > }; > struct callback_head rcu; > }; > struct completion *unregistering; > struct ctl_table *ctl_table_arg; > struct ctl_table_root *root; > struct ctl_table_set *set; > struct ctl_dir *parent; > struct ctl_node *node; >}; > >struct ctl_dir { > > struct ctl_table_header header; > struct rb_root root; >}; > >struct ctl_table_set { > int (*is_seen)(struct ctl_table_set *); > struct ctl_dir dir; >}; > >struct ctl_table_root { > struct ctl_table_set default_set; > struct ctl_table_set *(*lookup)(struct ctl_table_root *root, > struct nsproxy *namespaces); > int (*permissions)(struct ctl_table_header *head, struct ctl_table *table); >}; > > >struct ctl_path { > const char *procname; >}; > > > >void proc_sys_poll_notify(struct ctl_table_poll *poll); > >extern void setup_sysctl_set(struct ctl_table_set *p, > struct ctl_table_root *root, > int (*is_seen)(struct ctl_table_set *)); >extern void retire_sysctl_set(struct ctl_table_set *set); > >void register_sysctl_root(struct ctl_table_root *root); >struct ctl_table_header *__register_sysctl_table( > struct ctl_table_set *set, > const char *path, struct ctl_table *table); >struct ctl_table_header *__register_sysctl_paths( > struct ctl_table_set *set, > const struct ctl_path *path, struct ctl_table *table); >struct ctl_table_header *register_sysctl(const char *path, struct ctl_table *table); >struct ctl_table_header *register_sysctl_table(struct ctl_table * table); >struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path, > struct ctl_table *table); > >void unregister_sysctl_table(struct ctl_table_header * table); > >extern int sysctl_init(void); ># 28 "include/linux/kmod.h" 2 > > > > >extern char modprobe_path[]; > > >extern __attribute__((format(printf, 2, 3))) >int __request_module(bool wait, const char *name, ...); ># 48 "include/linux/kmod.h" >struct cred; >struct file; > > > > > > >struct subprocess_info { > struct work_struct work; > struct completion *complete; > char *path; > char **argv; > char **envp; > int wait; > int retval; > int (*init)(struct subprocess_info *info, struct cred *new); > void (*cleanup)(struct subprocess_info *info); > void *data; >}; > >extern int >call_usermodehelper_fns(char *path, char **argv, char **envp, int wait, > int (*init)(struct subprocess_info *info, struct cred *new), > void (*cleanup)(struct subprocess_info *), void *data); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >call_usermodehelper(char *path, char **argv, char **envp, int wait) >{ > return call_usermodehelper_fns(path, argv, envp, wait, > ((void *)0), ((void *)0), ((void *)0)); >} > >extern struct ctl_table usermodehelper_table[]; > >enum umh_disable_depth { > UMH_ENABLED = 0, > UMH_FREEZING, > UMH_DISABLED, >}; > >extern void usermodehelper_init(void); > >extern int __usermodehelper_disable(enum umh_disable_depth depth); >extern void __usermodehelper_set_disable_depth(enum umh_disable_depth depth); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int usermodehelper_disable(void) >{ > return __usermodehelper_disable(UMH_DISABLED); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void usermodehelper_enable(void) >{ > __usermodehelper_set_disable_depth(UMH_ENABLED); >} > >extern int usermodehelper_read_trylock(void); >extern long usermodehelper_read_lock_wait(long timeout); >extern void usermodehelper_read_unlock(void); ># 14 "include/linux/module.h" 2 ># 1 "include/linux/elf.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/elf.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/elf.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/user.h" 1 ># 33 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/user.h" >struct user_fp { > struct fp_reg { > unsigned int sign1:1; > unsigned int unused:15; > unsigned int sign2:1; > unsigned int exponent:14; > unsigned int j:1; > unsigned int mantissa1:31; > unsigned int mantissa0:32; > } fpregs[8]; > unsigned int fpsr:32; > unsigned int fpcr:32; > unsigned char ftype[8]; > unsigned int init_flag; >}; > > > > >struct user{ > > > struct pt_regs regs; > > int u_fpvalid; > > > unsigned long int u_tsize; > unsigned long int u_dsize; > unsigned long int u_ssize; > unsigned long start_code; > unsigned long start_stack; > > > > long int signal; > int reserved; > unsigned long u_ar0; > > unsigned long magic; > char u_comm[32]; > int u_debugreg[8]; > struct user_fp u_fp; > struct user_fp_struct * u_fp0; > >}; ># 88 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/user.h" >struct user_vfp { > unsigned long long fpregs[32]; > unsigned long fpscr; >}; > > > > > >struct user_vfp_exc { > unsigned long fpexc; > unsigned long fpinst; > unsigned long fpinst2; >}; ># 11 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/elf.h" 2 > >struct task_struct; > >typedef unsigned long elf_greg_t; >typedef unsigned long elf_freg_t[3]; > > >typedef elf_greg_t elf_gregset_t[(sizeof (struct pt_regs) / sizeof(elf_greg_t))]; > >typedef struct user_fp elf_fpregset_t; ># 92 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/elf.h" >extern char elf_platform[]; > >struct elf32_hdr; > > > > >extern int elf_check_arch(const struct elf32_hdr *); > > > > >extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); > > >struct task_struct; >int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); ># 126 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/elf.h" >extern void elf_set_personality(const struct elf32_hdr *); > > >struct mm_struct; >extern unsigned long arch_randomize_brk(struct mm_struct *mm); ># 5 "include/linux/elf.h" 2 ># 1 "include/uapi/linux/elf.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/elf-em.h" 1 ># 6 "include/uapi/linux/elf.h" 2 > > >typedef __u32 Elf32_Addr; >typedef __u16 Elf32_Half; >typedef __u32 Elf32_Off; >typedef __s32 Elf32_Sword; >typedef __u32 Elf32_Word; > > >typedef __u64 Elf64_Addr; >typedef __u16 Elf64_Half; >typedef __s16 Elf64_SHalf; >typedef __u64 Elf64_Off; >typedef __s32 Elf64_Sword; >typedef __u32 Elf64_Word; >typedef __u64 Elf64_Xword; >typedef __s64 Elf64_Sxword; ># 137 "include/uapi/linux/elf.h" >typedef struct dynamic{ > Elf32_Sword d_tag; > union{ > Elf32_Sword d_val; > Elf32_Addr d_ptr; > } d_un; >} Elf32_Dyn; > >typedef struct { > Elf64_Sxword d_tag; > union { > Elf64_Xword d_val; > Elf64_Addr d_ptr; > } d_un; >} Elf64_Dyn; ># 160 "include/uapi/linux/elf.h" >typedef struct elf32_rel { > Elf32_Addr r_offset; > Elf32_Word r_info; >} Elf32_Rel; > >typedef struct elf64_rel { > Elf64_Addr r_offset; > Elf64_Xword r_info; >} Elf64_Rel; > >typedef struct elf32_rela{ > Elf32_Addr r_offset; > Elf32_Word r_info; > Elf32_Sword r_addend; >} Elf32_Rela; > >typedef struct elf64_rela { > Elf64_Addr r_offset; > Elf64_Xword r_info; > Elf64_Sxword r_addend; >} Elf64_Rela; > >typedef struct elf32_sym{ > Elf32_Word st_name; > Elf32_Addr st_value; > Elf32_Word st_size; > unsigned char st_info; > unsigned char st_other; > Elf32_Half st_shndx; >} Elf32_Sym; > >typedef struct elf64_sym { > Elf64_Word st_name; > unsigned char st_info; > unsigned char st_other; > Elf64_Half st_shndx; > Elf64_Addr st_value; > Elf64_Xword st_size; >} Elf64_Sym; > > > > >typedef struct elf32_hdr{ > unsigned char e_ident[16]; > Elf32_Half e_type; > Elf32_Half e_machine; > Elf32_Word e_version; > Elf32_Addr e_entry; > Elf32_Off e_phoff; > Elf32_Off e_shoff; > Elf32_Word e_flags; > Elf32_Half e_ehsize; > Elf32_Half e_phentsize; > Elf32_Half e_phnum; > Elf32_Half e_shentsize; > Elf32_Half e_shnum; > Elf32_Half e_shstrndx; >} Elf32_Ehdr; > >typedef struct elf64_hdr { > unsigned char e_ident[16]; > Elf64_Half e_type; > Elf64_Half e_machine; > Elf64_Word e_version; > Elf64_Addr e_entry; > Elf64_Off e_phoff; > Elf64_Off e_shoff; > Elf64_Word e_flags; > Elf64_Half e_ehsize; > Elf64_Half e_phentsize; > Elf64_Half e_phnum; > Elf64_Half e_shentsize; > Elf64_Half e_shnum; > Elf64_Half e_shstrndx; >} Elf64_Ehdr; > > > > > > > >typedef struct elf32_phdr{ > Elf32_Word p_type; > Elf32_Off p_offset; > Elf32_Addr p_vaddr; > Elf32_Addr p_paddr; > Elf32_Word p_filesz; > Elf32_Word p_memsz; > Elf32_Word p_flags; > Elf32_Word p_align; >} Elf32_Phdr; > >typedef struct elf64_phdr { > Elf64_Word p_type; > Elf64_Word p_flags; > Elf64_Off p_offset; > Elf64_Addr p_vaddr; > Elf64_Addr p_paddr; > Elf64_Xword p_filesz; > Elf64_Xword p_memsz; > Elf64_Xword p_align; >} Elf64_Phdr; ># 299 "include/uapi/linux/elf.h" >typedef struct elf32_shdr { > Elf32_Word sh_name; > Elf32_Word sh_type; > Elf32_Word sh_flags; > Elf32_Addr sh_addr; > Elf32_Off sh_offset; > Elf32_Word sh_size; > Elf32_Word sh_link; > Elf32_Word sh_info; > Elf32_Word sh_addralign; > Elf32_Word sh_entsize; >} Elf32_Shdr; > >typedef struct elf64_shdr { > Elf64_Word sh_name; > Elf64_Word sh_type; > Elf64_Xword sh_flags; > Elf64_Addr sh_addr; > Elf64_Off sh_offset; > Elf64_Xword sh_size; > Elf64_Word sh_link; > Elf64_Word sh_info; > Elf64_Xword sh_addralign; > Elf64_Xword sh_entsize; >} Elf64_Shdr; ># 401 "include/uapi/linux/elf.h" >typedef struct elf32_note { > Elf32_Word n_namesz; > Elf32_Word n_descsz; > Elf32_Word n_type; >} Elf32_Nhdr; > > >typedef struct elf64_note { > Elf64_Word n_namesz; > Elf64_Word n_descsz; > Elf64_Word n_type; >} Elf64_Nhdr; ># 6 "include/linux/elf.h" 2 ># 16 "include/linux/elf.h" >extern Elf32_Dyn _DYNAMIC []; ># 37 "include/linux/elf.h" >struct file; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int elf_coredump_extra_notes_size(void) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int elf_coredump_extra_notes_write(struct file *file, > loff_t *foffset) { return 0; } ># 15 "include/linux/module.h" 2 > ># 1 "include/linux/kobject.h" 1 ># 21 "include/linux/kobject.h" ># 1 "include/linux/sysfs.h" 1 ># 19 "include/linux/sysfs.h" ># 1 "include/linux/kobject_ns.h" 1 ># 20 "include/linux/kobject_ns.h" >struct sock; >struct kobject; > > > > > >enum kobj_ns_type { > KOBJ_NS_TYPE_NONE = 0, > KOBJ_NS_TYPE_NET, > KOBJ_NS_TYPES >}; ># 40 "include/linux/kobject_ns.h" >struct kobj_ns_type_operations { > enum kobj_ns_type type; > void *(*grab_current_ns)(void); > const void *(*netlink_ns)(struct sock *sk); > const void *(*initial_ns)(void); > void (*drop_ns)(void *); >}; > >int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); >int kobj_ns_type_registered(enum kobj_ns_type type); >const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); >const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); > >void *kobj_ns_grab_current(enum kobj_ns_type type); >const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk); >const void *kobj_ns_initial(enum kobj_ns_type type); >void kobj_ns_drop(enum kobj_ns_type type, void *ns); ># 20 "include/linux/sysfs.h" 2 > > >struct kobject; >struct module; >enum kobj_ns_type; > >struct attribute { > const char *name; > umode_t mode; > > > > > >}; ># 57 "include/linux/sysfs.h" >struct attribute_group { > const char *name; > umode_t (*is_visible)(struct kobject *, > struct attribute *, int); > struct attribute **attrs; >}; ># 97 "include/linux/sysfs.h" >struct file; >struct vm_area_struct; > >struct bin_attribute { > struct attribute attr; > size_t size; > void *private; > ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, > char *, loff_t, size_t); > ssize_t (*write)(struct file *,struct kobject *, struct bin_attribute *, > char *, loff_t, size_t); > int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, > struct vm_area_struct *vma); >}; ># 124 "include/linux/sysfs.h" >struct sysfs_ops { > ssize_t (*show)(struct kobject *, struct attribute *,char *); > ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t); > const void *(*namespace)(struct kobject *, const struct attribute *); >}; > >struct sysfs_dirent; > > > >int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *), > void *data, struct module *owner); > >int __attribute__((warn_unused_result)) sysfs_create_dir(struct kobject *kobj); >void sysfs_remove_dir(struct kobject *kobj); >int __attribute__((warn_unused_result)) sysfs_rename_dir(struct kobject *kobj, const char *new_name); >int __attribute__((warn_unused_result)) sysfs_move_dir(struct kobject *kobj, > struct kobject *new_parent_kobj); > >int __attribute__((warn_unused_result)) sysfs_create_file(struct kobject *kobj, > const struct attribute *attr); >int __attribute__((warn_unused_result)) sysfs_create_files(struct kobject *kobj, > const struct attribute **attr); >int __attribute__((warn_unused_result)) sysfs_chmod_file(struct kobject *kobj, > const struct attribute *attr, umode_t mode); >void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr); >void sysfs_remove_files(struct kobject *kobj, const struct attribute **attr); > >int __attribute__((warn_unused_result)) sysfs_create_bin_file(struct kobject *kobj, > const struct bin_attribute *attr); >void sysfs_remove_bin_file(struct kobject *kobj, > const struct bin_attribute *attr); > >int __attribute__((warn_unused_result)) sysfs_create_link(struct kobject *kobj, struct kobject *target, > const char *name); >int __attribute__((warn_unused_result)) sysfs_create_link_nowarn(struct kobject *kobj, > struct kobject *target, > const char *name); >void sysfs_remove_link(struct kobject *kobj, const char *name); > >int sysfs_rename_link(struct kobject *kobj, struct kobject *target, > const char *old_name, const char *new_name); > >void sysfs_delete_link(struct kobject *dir, struct kobject *targ, > const char *name); > >int __attribute__((warn_unused_result)) sysfs_create_group(struct kobject *kobj, > const struct attribute_group *grp); >int sysfs_update_group(struct kobject *kobj, > const struct attribute_group *grp); >void sysfs_remove_group(struct kobject *kobj, > const struct attribute_group *grp); >int sysfs_add_file_to_group(struct kobject *kobj, > const struct attribute *attr, const char *group); >void sysfs_remove_file_from_group(struct kobject *kobj, > const struct attribute *attr, const char *group); >int sysfs_merge_group(struct kobject *kobj, > const struct attribute_group *grp); >void sysfs_unmerge_group(struct kobject *kobj, > const struct attribute_group *grp); > >void sysfs_notify(struct kobject *kobj, const char *dir, const char *attr); >void sysfs_notify_dirent(struct sysfs_dirent *sd); >struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, > const void *ns, > const unsigned char *name); >struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd); >void sysfs_put(struct sysfs_dirent *sd); > >int __attribute__((warn_unused_result)) sysfs_init(void); ># 22 "include/linux/kobject.h" 2 > > ># 1 "include/linux/kref.h" 1 ># 23 "include/linux/kref.h" >struct kref { > atomic_t refcount; >}; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kref_init(struct kref *kref) >{ > (((&kref->refcount)->counter) = (1)); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kref_get(struct kref *kref) >{ > ({ int __ret_warn_on = !!(!(*(volatile int *)&(&kref->refcount)->counter)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/kref.h", 42); __builtin_expect(!!(__ret_warn_on), 0); }); > atomic_add(1, &kref->refcount); >} ># 64 "include/linux/kref.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kref_sub(struct kref *kref, unsigned int count, > void (*release)(struct kref *kref)) >{ > ({ int __ret_warn_on = !!(release == ((void *)0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/kref.h", 67); __builtin_expect(!!(__ret_warn_on), 0); }); > > if ((atomic_sub_return((int) count, &kref->refcount) == 0)) { > release(kref); > return 1; > } > return 0; >} ># 93 "include/linux/kref.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kref_put(struct kref *kref, void (*release)(struct kref *kref)) >{ > return kref_sub(kref, 1, release); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kref_put_mutex(struct kref *kref, > void (*release)(struct kref *kref), > struct mutex *lock) >{ > ({ int __ret_warn_on = !!(release == ((void *)0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/kref.h", 102); __builtin_expect(!!(__ret_warn_on), 0); }); > if (__builtin_expect(!!(!atomic_add_unless(&kref->refcount, -1, 1)), 0)) { > mutex_lock(lock); > if (__builtin_expect(!!(!(atomic_sub_return(1, &kref->refcount) == 0)), 0)) { > mutex_unlock(lock); > return 0; > } > release(kref); > return 1; > } > return 0; >} ># 131 "include/linux/kref.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) kref_get_unless_zero(struct kref *kref) >{ > return atomic_add_unless(&kref->refcount, 1, 0); >} ># 25 "include/linux/kobject.h" 2 ># 35 "include/linux/kobject.h" >extern char uevent_helper[]; > > >extern u64 uevent_seqnum; ># 50 "include/linux/kobject.h" >enum kobject_action { > KOBJ_ADD, > KOBJ_REMOVE, > KOBJ_CHANGE, > KOBJ_MOVE, > KOBJ_ONLINE, > KOBJ_OFFLINE, > KOBJ_MAX >}; > >struct kobject { > const char *name; > struct list_head entry; > struct kobject *parent; > struct kset *kset; > struct kobj_type *ktype; > struct sysfs_dirent *sd; > struct kref kref; > unsigned int state_initialized:1; > unsigned int state_in_sysfs:1; > unsigned int state_add_uevent_sent:1; > unsigned int state_remove_uevent_sent:1; > unsigned int uevent_suppress:1; >}; > >extern __attribute__((format(printf, 2, 3))) >int kobject_set_name(struct kobject *kobj, const char *name, ...); >extern int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, > va_list vargs); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *kobject_name(const struct kobject *kobj) >{ > return kobj->name; >} > >extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype); >extern __attribute__((format(printf, 3, 4))) __attribute__((warn_unused_result)) >int kobject_add(struct kobject *kobj, struct kobject *parent, > const char *fmt, ...); >extern __attribute__((format(printf, 4, 5))) __attribute__((warn_unused_result)) >int kobject_init_and_add(struct kobject *kobj, > struct kobj_type *ktype, struct kobject *parent, > const char *fmt, ...); > >extern void kobject_del(struct kobject *kobj); > >extern struct kobject * __attribute__((warn_unused_result)) kobject_create(void); >extern struct kobject * __attribute__((warn_unused_result)) kobject_create_and_add(const char *name, > struct kobject *parent); > >extern int __attribute__((warn_unused_result)) kobject_rename(struct kobject *, const char *new_name); >extern int __attribute__((warn_unused_result)) kobject_move(struct kobject *, struct kobject *); > >extern struct kobject *kobject_get(struct kobject *kobj); >extern void kobject_put(struct kobject *kobj); > >extern char *kobject_get_path(struct kobject *kobj, gfp_t flag); > >struct kobj_type { > void (*release)(struct kobject *kobj); > const struct sysfs_ops *sysfs_ops; > struct attribute **default_attrs; > const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj); > const void *(*namespace)(struct kobject *kobj); >}; > >struct kobj_uevent_env { > char *envp[32]; > int envp_idx; > char buf[2048]; > int buflen; >}; > >struct kset_uevent_ops { > int (* const filter)(struct kset *kset, struct kobject *kobj); > const char *(* const name)(struct kset *kset, struct kobject *kobj); > int (* const uevent)(struct kset *kset, struct kobject *kobj, > struct kobj_uevent_env *env); >}; > >struct kobj_attribute { > struct attribute attr; > ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr, > char *buf); > ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr, > const char *buf, size_t count); >}; > >extern const struct sysfs_ops kobj_sysfs_ops; > >struct sock; ># 159 "include/linux/kobject.h" >struct kset { > struct list_head list; > spinlock_t list_lock; > struct kobject kobj; > const struct kset_uevent_ops *uevent_ops; >}; > >extern void kset_init(struct kset *kset); >extern int __attribute__((warn_unused_result)) kset_register(struct kset *kset); >extern void kset_unregister(struct kset *kset); >extern struct kset * __attribute__((warn_unused_result)) kset_create_and_add(const char *name, > const struct kset_uevent_ops *u, > struct kobject *parent_kobj); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kset *to_kset(struct kobject *kobj) >{ > return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof(struct kset,kobj) );}) : ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kset *kset_get(struct kset *k) >{ > return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kset_put(struct kset *k) >{ > kobject_put(&k->kobj); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kobj_type *get_ktype(struct kobject *kobj) >{ > return kobj->ktype; >} > >extern struct kobject *kset_find_obj(struct kset *, const char *); > > >extern struct kobject *kernel_kobj; > >extern struct kobject *mm_kobj; > >extern struct kobject *hypervisor_kobj; > >extern struct kobject *power_kobj; > >extern struct kobject *firmware_kobj; > >int kobject_uevent(struct kobject *kobj, enum kobject_action action); >int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, > char *envp[]); > >__attribute__((format(printf, 2, 3))) >int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...); > >int kobject_action_type(const char *buf, size_t count, > enum kobject_action *type); ># 17 "include/linux/module.h" 2 ># 1 "include/linux/moduleparam.h" 1 ># 37 "include/linux/moduleparam.h" >struct kernel_param; > >struct kernel_param_ops { > > int (*set)(const char *val, const struct kernel_param *kp); > > int (*get)(char *buffer, const struct kernel_param *kp); > > void (*free)(void *arg); >}; > >struct kernel_param { > const char *name; > const struct kernel_param_ops *ops; > u16 perm; > s16 level; > union { > void *arg; > const struct kparam_string *str; > const struct kparam_array *arr; > }; >}; > > >struct kparam_string { > unsigned int maxlen; > char *string; >}; > > >struct kparam_array >{ > unsigned int max; > unsigned int elemsize; > unsigned int *num; > const struct kernel_param_ops *ops; > void *elem; >}; ># 196 "include/linux/moduleparam.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >__check_old_set_param(int (*oldset)(const char *, struct kernel_param *)) >{ > return 0; >} ># 247 "include/linux/moduleparam.h" >extern void __kernel_param_lock(void); >extern void __kernel_param_unlock(void); ># 302 "include/linux/moduleparam.h" >extern bool parameq(const char *name1, const char *name2); ># 312 "include/linux/moduleparam.h" >extern bool parameqn(const char *name1, const char *name2, size_t n); > > >extern int parse_args(const char *name, > char *args, > const struct kernel_param *params, > unsigned num, > s16 level_min, > s16 level_max, > int (*unknown)(char *param, char *val, > const char *doing)); > > > >extern void destroy_params(const struct kernel_param *params, unsigned num); ># 340 "include/linux/moduleparam.h" >extern struct kernel_param_ops param_ops_byte; >extern int param_set_byte(const char *val, const struct kernel_param *kp); >extern int param_get_byte(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_short; >extern int param_set_short(const char *val, const struct kernel_param *kp); >extern int param_get_short(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_ushort; >extern int param_set_ushort(const char *val, const struct kernel_param *kp); >extern int param_get_ushort(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_int; >extern int param_set_int(const char *val, const struct kernel_param *kp); >extern int param_get_int(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_uint; >extern int param_set_uint(const char *val, const struct kernel_param *kp); >extern int param_get_uint(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_long; >extern int param_set_long(const char *val, const struct kernel_param *kp); >extern int param_get_long(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_ulong; >extern int param_set_ulong(const char *val, const struct kernel_param *kp); >extern int param_get_ulong(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_charp; >extern int param_set_charp(const char *val, const struct kernel_param *kp); >extern int param_get_charp(char *buffer, const struct kernel_param *kp); > > > >extern struct kernel_param_ops param_ops_bool; >extern int param_set_bool(const char *val, const struct kernel_param *kp); >extern int param_get_bool(char *buffer, const struct kernel_param *kp); > > >extern struct kernel_param_ops param_ops_invbool; >extern int param_set_invbool(const char *val, const struct kernel_param *kp); >extern int param_get_invbool(char *buffer, const struct kernel_param *kp); > > > >extern struct kernel_param_ops param_ops_bint; >extern int param_set_bint(const char *val, const struct kernel_param *kp); ># 436 "include/linux/moduleparam.h" >extern struct kernel_param_ops param_array_ops; > >extern struct kernel_param_ops param_ops_string; >extern int param_set_copystring(const char *val, const struct kernel_param *); >extern int param_get_string(char *buffer, const struct kernel_param *kp); > > > >struct module; > > >extern int module_param_sysfs_setup(struct module *mod, > const struct kernel_param *kparam, > unsigned int num_params); > >extern void module_param_sysfs_remove(struct module *mod); ># 18 "include/linux/module.h" 2 ># 1 "include/linux/tracepoint.h" 1 ># 20 "include/linux/tracepoint.h" ># 1 "include/linux/static_key.h" 1 ># 1 "include/linux/jump_label.h" 1 ># 55 "include/linux/jump_label.h" >struct static_key { > atomic_t enabled; > > struct jump_entry *entries; > > struct static_key_mod *next; > >}; > >struct static_key_deferred { > struct static_key key; > unsigned long timeout; > struct delayed_work work; >}; > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/jump_label.h" 1 > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/switch_to.h" 1 ># 11 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/switch_to.h" >extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); ># 6 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system_info.h" 1 ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system_info.h" >extern unsigned int system_rev; >extern unsigned int system_serial_low; >extern unsigned int system_serial_high; >extern unsigned int mem_fclk_21285; > >extern int __attribute__((pure)) cpu_architecture(void); ># 7 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system_misc.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system_misc.h" >extern void cpu_init(void); > >void soft_restart(unsigned long); >extern void (*arm_pm_restart)(char str, const char *cmd); >extern void (*arm_pm_idle)(void); > > > > > > > >extern unsigned int user_debug; > >extern void disable_hlt(void); >extern void enable_hlt(void); ># 7 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/system.h" 2 ># 8 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/jump_label.h" 2 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/jump_label.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) bool arch_static_branch(struct static_key *key) >{ > asm goto("1:\n\t" > "nop" "\n\t" > ".pushsection __jump_table, \"aw\"\n\t" > ".word 1b, %l[l_yes], %c0\n\t" > ".popsection\n\t" > : : "i" (key) : : l_yes); > > return false; >l_yes: > return true; >} > > > >typedef u32 jump_label_t; > >struct jump_entry { > jump_label_t code; > jump_label_t target; > jump_label_t key; >}; ># 71 "include/linux/jump_label.h" 2 > > > >enum jump_label_type { > JUMP_LABEL_DISABLE = 0, > JUMP_LABEL_ENABLE, >}; > >struct module; > > > > > >static >inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct jump_entry *jump_label_get_entries(struct static_key *key) >{ > return (struct jump_entry *)((unsigned long)key->entries > & ~1UL); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool jump_label_get_branch_default(struct static_key *key) >{ > if ((unsigned long)key->entries & 1UL) > return true; > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) bool static_key_false(struct static_key *key) >{ > return arch_static_branch(key); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) bool static_key_true(struct static_key *key) >{ > return !static_key_false(key); >} > >extern struct jump_entry __start___jump_table[]; >extern struct jump_entry __stop___jump_table[]; > >extern void jump_label_init(void); >extern void jump_label_lock(void); >extern void jump_label_unlock(void); >extern void arch_jump_label_transform(struct jump_entry *entry, > enum jump_label_type type); >extern void arch_jump_label_transform_static(struct jump_entry *entry, > enum jump_label_type type); >extern int jump_label_text_reserved(void *start, void *end); >extern void static_key_slow_inc(struct static_key *key); >extern void static_key_slow_dec(struct static_key *key); >extern void static_key_slow_dec_deferred(struct static_key_deferred *key); >extern void jump_label_apply_nops(struct module *mod); >extern void >jump_label_rate_limit(struct static_key_deferred *key, unsigned long rl); ># 206 "include/linux/jump_label.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool static_key_enabled(struct static_key *key) >{ > return ((*(volatile int *)&(&key->enabled)->counter) > 0); >} ># 1 "include/linux/static_key.h" 2 ># 21 "include/linux/tracepoint.h" 2 > >struct module; >struct tracepoint; > >struct tracepoint_func { > void *func; > void *data; >}; > >struct tracepoint { > const char *name; > struct static_key key; > void (*regfunc)(void); > void (*unregfunc)(void); > struct tracepoint_func *funcs; >}; > > > > > >extern int tracepoint_probe_register(const char *name, void *probe, void *data); > > > > > >extern int >tracepoint_probe_unregister(const char *name, void *probe, void *data); > >extern int tracepoint_probe_register_noupdate(const char *name, void *probe, > void *data); >extern int tracepoint_probe_unregister_noupdate(const char *name, void *probe, > void *data); >extern void tracepoint_probe_update_all(void); > > >struct tp_module { > struct list_head list; > unsigned int num_tracepoints; > struct tracepoint * const *tracepoints_ptrs; >}; > > >struct tracepoint_iter { > > struct tp_module *module; > > struct tracepoint * const *tracepoint; >}; > >extern void tracepoint_iter_start(struct tracepoint_iter *iter); >extern void tracepoint_iter_next(struct tracepoint_iter *iter); >extern void tracepoint_iter_stop(struct tracepoint_iter *iter); >extern void tracepoint_iter_reset(struct tracepoint_iter *iter); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tracepoint_synchronize_unregister(void) >{ > synchronize_sched(); >} ># 19 "include/linux/module.h" 2 ># 1 "include/linux/export.h" 1 ># 19 "include/linux/export.h" >struct kernel_symbol >{ > unsigned long value; > const char *name; >}; > > >extern struct module __this_module; ># 20 "include/linux/module.h" 2 > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/module.h" 1 > > > ># 1 "include/asm-generic/module.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/module.h" 2 > >struct unwind_table; > > >enum { > ARM_SEC_INIT, > ARM_SEC_DEVINIT, > ARM_SEC_CORE, > ARM_SEC_EXIT, > ARM_SEC_DEVEXIT, > ARM_SEC_MAX, >}; > >struct mod_arch_specific { > struct unwind_table *unwind[ARM_SEC_MAX]; >}; ># 23 "include/linux/module.h" 2 ># 32 "include/linux/module.h" >struct modversion_info >{ > unsigned long crc; > char name[(64 - sizeof(unsigned long))]; >}; > >struct module; > >struct module_kobject { > struct kobject kobj; > struct module *mod; > struct kobject *drivers_dir; > struct module_param_attrs *mp; >}; > >struct module_attribute { > struct attribute attr; > ssize_t (*show)(struct module_attribute *, struct module_kobject *, > char *); > ssize_t (*store)(struct module_attribute *, struct module_kobject *, > const char *, size_t count); > void (*setup)(struct module *, const char *); > int (*test)(struct module *); > void (*free)(struct module *); >}; > >struct module_version_attribute { > struct module_attribute mattr; > const char *module_name; > const char *version; >} __attribute__ ((__aligned__(sizeof(void *)))); > >extern ssize_t __modver_version_show(struct module_attribute *, > struct module_kobject *, char *); > >extern struct module_attribute module_uevent; > > >extern int init_module(void); >extern void cleanup_module(void); > > >struct exception_table_entry; > >const struct exception_table_entry * >search_extable(const struct exception_table_entry *first, > const struct exception_table_entry *last, > unsigned long value); >void sort_extable(struct exception_table_entry *start, > struct exception_table_entry *finish); >void sort_main_extable(void); >void trim_init_extable(struct module *m); ># 183 "include/linux/module.h" >const struct exception_table_entry *search_exception_tables(unsigned long add); > >struct notifier_block; > > > >extern int modules_disabled; > >void *__symbol_get(const char *symbol); >void *__symbol_get_gpl(const char *symbol); > > > >struct module_use { > struct list_head source_list; > struct list_head target_list; > struct module *source, *target; >}; > >enum module_state { > MODULE_STATE_LIVE, > MODULE_STATE_COMING, > MODULE_STATE_GOING, > MODULE_STATE_UNFORMED, >}; ># 218 "include/linux/module.h" >struct module_ref { > unsigned long incs; > unsigned long decs; >} __attribute((aligned(2 * sizeof(unsigned long)))); > >struct module >{ > enum module_state state; > > > struct list_head list; > > > char name[(64 - sizeof(unsigned long))]; > > > struct module_kobject mkobj; > struct module_attribute *modinfo_attrs; > const char *version; > const char *srcversion; > struct kobject *holders_dir; > > > const struct kernel_symbol *syms; > const unsigned long *crcs; > unsigned int num_syms; > > > struct kernel_param *kp; > unsigned int num_kp; > > > unsigned int num_gpl_syms; > const struct kernel_symbol *gpl_syms; > const unsigned long *gpl_crcs; > > > > const struct kernel_symbol *unused_syms; > const unsigned long *unused_crcs; > unsigned int num_unused_syms; > > > unsigned int num_unused_gpl_syms; > const struct kernel_symbol *unused_gpl_syms; > const unsigned long *unused_gpl_crcs; ># 272 "include/linux/module.h" > const struct kernel_symbol *gpl_future_syms; > const unsigned long *gpl_future_crcs; > unsigned int num_gpl_future_syms; > > > unsigned int num_exentries; > struct exception_table_entry *extable; > > > int (*init)(void); > > > void *module_init; > > > void *module_core; > > > unsigned int init_size, core_size; > > > unsigned int init_text_size, core_text_size; > > > unsigned int init_ro_size, core_ro_size; > > > struct mod_arch_specific arch; > > unsigned int taints; > > > > unsigned num_bugs; > struct list_head bug_list; > struct bug_entry *bug_table; ># 316 "include/linux/module.h" > Elf32_Sym *symtab, *core_symtab; > unsigned int num_symtab, core_num_syms; > char *strtab, *core_strtab; > > > struct module_sect_attrs *sect_attrs; > > > struct module_notes_attrs *notes_attrs; > > > > > char *args; > > > > void *percpu; > unsigned int percpu_size; > > > > unsigned int num_tracepoints; > struct tracepoint * const *tracepoints_ptrs; > > > struct jump_entry *jump_entries; > unsigned int num_jump_entries; > > > unsigned int num_trace_bprintk_fmt; > const char **trace_bprintk_fmt_start; > > > struct ftrace_event_call **trace_events; > unsigned int num_trace_events; > > > unsigned int num_ftrace_callsites; > unsigned long *ftrace_callsites; > > > > > struct list_head source_list; > > struct list_head target_list; > > > struct task_struct *waiter; > > > void (*exit)(void); > > struct module_ref *refptr; > > > > > > > >}; > > > > >extern struct mutex module_mutex; > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int module_is_live(struct module *mod) >{ > return mod->state != MODULE_STATE_GOING; >} > >struct module *__module_text_address(unsigned long addr); >struct module *__module_address(unsigned long addr); >bool is_module_address(unsigned long addr); >bool is_module_percpu_address(unsigned long addr); >bool is_module_text_address(unsigned long addr); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int within_module_core(unsigned long addr, struct module *mod) >{ > return (unsigned long)mod->module_core <= addr && > addr < (unsigned long)mod->module_core + mod->core_size; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int within_module_init(unsigned long addr, struct module *mod) >{ > return (unsigned long)mod->module_init <= addr && > addr < (unsigned long)mod->module_init + mod->init_size; >} > > >struct module *find_module(const char *name); > >struct symsearch { > const struct kernel_symbol *start, *stop; > const unsigned long *crcs; > enum { > NOT_GPL_ONLY, > GPL_ONLY, > WILL_BE_GPL_ONLY, > } licence; > bool unused; >}; > > >const struct kernel_symbol *find_symbol(const char *name, > struct module **owner, > const unsigned long **crc, > bool gplok, > bool warn); > > >bool each_symbol_section(bool (*fn)(const struct symsearch *arr, > struct module *owner, > void *data), void *data); > > > >int module_get_kallsym(unsigned int symnum, unsigned long *value, char *type, > char *name, char *module_name, int *exported); > > >unsigned long module_kallsyms_lookup_name(const char *name); > >int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, > struct module *, unsigned long), > void *data); > >extern void __module_put_and_exit(struct module *mod, long code) > __attribute__((noreturn)); > > > >unsigned long module_refcount(struct module *mod); >void __symbol_put(const char *symbol); > >void symbol_put_addr(void *addr); > > > >extern void __module_get(struct module *module); > > > >extern bool try_module_get(struct module *module); > >extern void module_put(struct module *module); ># 484 "include/linux/module.h" >int ref_module(struct module *a, struct module *b); ># 496 "include/linux/module.h" >const char *module_address_lookup(unsigned long addr, > unsigned long *symbolsize, > unsigned long *offset, > char **modname, > char *namebuf); >int lookup_module_symbol_name(unsigned long addr, char *symname); >int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name); > > >const struct exception_table_entry *search_module_extables(unsigned long addr); > >int register_module_notifier(struct notifier_block * nb); >int unregister_module_notifier(struct notifier_block * nb); > >extern void print_modules(void); ># 625 "include/linux/module.h" >extern struct kset *module_kset; >extern struct kobj_type module_ktype; >extern int module_sysfs_initialized; ># 640 "include/linux/module.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_all_modules_text_rw(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_all_modules_text_ro(void) { } > > > >void module_bug_finalize(const Elf32_Ehdr *, const Elf32_Shdr *, > struct module *); >void module_bug_cleanup(struct module *); ># 27 "drivers/ata/pata_optidma.c" 2 ># 1 "include/linux/pci.h" 1 ># 20 "include/linux/pci.h" ># 1 "include/linux/mod_devicetable.h" 1 ># 12 "include/linux/mod_devicetable.h" >typedef unsigned long kernel_ulong_t; > > > > >struct pci_device_id { > __u32 vendor, device; > __u32 subvendor, subdevice; > __u32 class, class_mask; > kernel_ulong_t driver_data; >}; > > > > > > > >struct ieee1394_device_id { > __u32 match_flags; > __u32 vendor_id; > __u32 model_id; > __u32 specifier_id; > __u32 version; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; ># 101 "include/linux/mod_devicetable.h" >struct usb_device_id { > > __u16 match_flags; > > > __u16 idVendor; > __u16 idProduct; > __u16 bcdDevice_lo; > __u16 bcdDevice_hi; > > > __u8 bDeviceClass; > __u8 bDeviceSubClass; > __u8 bDeviceProtocol; > > > __u8 bInterfaceClass; > __u8 bInterfaceSubClass; > __u8 bInterfaceProtocol; > > > __u8 bInterfaceNumber; > > > kernel_ulong_t driver_info > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; ># 146 "include/linux/mod_devicetable.h" >struct hid_device_id { > __u16 bus; > __u16 group; > __u32 vendor; > __u32 product; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; > > >struct ccw_device_id { > __u16 match_flags; > > __u16 cu_type; > __u16 dev_type; > __u8 cu_model; > __u8 dev_model; > > kernel_ulong_t driver_info; >}; > > > > > > > >struct ap_device_id { > __u16 match_flags; > __u8 dev_type; > __u8 pad1; > __u32 pad2; > kernel_ulong_t driver_info; >}; > > > > >struct css_device_id { > __u8 match_flags; > __u8 type; > __u16 pad2; > __u32 pad3; > kernel_ulong_t driver_data; >}; > > > > >struct acpi_device_id { > __u8 id[16]; > kernel_ulong_t driver_data; >}; > > > > >struct pnp_device_id { > __u8 id[8]; > kernel_ulong_t driver_data; >}; > >struct pnp_card_device_id { > __u8 id[8]; > kernel_ulong_t driver_data; > struct { > __u8 id[8]; > } devs[8]; >}; > > > > >struct serio_device_id { > __u8 type; > __u8 extra; > __u8 id; > __u8 proto; >}; > > > > >struct of_device_id >{ > char name[32]; > char type[32]; > char compatible[128]; > > const void *data; > > > >}; > > >struct vio_device_id { > char type[32]; > char compat[32]; >}; > > > >struct pcmcia_device_id { > __u16 match_flags; > > __u16 manf_id; > __u16 card_id; > > __u8 func_id; > > > __u8 function; > > > __u8 device_no; > > __u32 prod_id_hash[4] > __attribute__((aligned(sizeof(__u32)))); > > > > const char * prod_id[4]; > > > > > > > kernel_ulong_t driver_info; > > char * cisfile; > > > >}; ># 322 "include/linux/mod_devicetable.h" >struct input_device_id { > > kernel_ulong_t flags; > > __u16 bustype; > __u16 vendor; > __u16 product; > __u16 version; > > kernel_ulong_t evbit[0x1f / 32 + 1]; > kernel_ulong_t keybit[0x2ff / 32 + 1]; > kernel_ulong_t relbit[0x0f / 32 + 1]; > kernel_ulong_t absbit[0x3f / 32 + 1]; > kernel_ulong_t mscbit[0x07 / 32 + 1]; > kernel_ulong_t ledbit[0x0f / 32 + 1]; > kernel_ulong_t sndbit[0x07 / 32 + 1]; > kernel_ulong_t ffbit[0x7f / 32 + 1]; > kernel_ulong_t swbit[0x0f / 32 + 1]; > > kernel_ulong_t driver_info; >}; > > > > > > >struct eisa_device_id { > char sig[8]; > kernel_ulong_t driver_data; >}; > > > >struct parisc_device_id { > __u8 hw_type; > __u8 hversion_rev; > __u16 hversion; > __u32 sversion; >}; ># 372 "include/linux/mod_devicetable.h" >struct sdio_device_id { > __u8 class; > __u16 vendor; > __u16 device; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; > > >struct ssb_device_id { > __u16 vendor; > __u16 coreid; > __u8 revision; >}; ># 396 "include/linux/mod_devicetable.h" >struct bcma_device_id { > __u16 manuf; > __u16 id; > __u8 rev; > __u8 class; >}; ># 412 "include/linux/mod_devicetable.h" >struct virtio_device_id { > __u32 device; > __u32 vendor; >}; > > > > > >struct hv_vmbus_device_id { > __u8 guid[16]; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; > > > > > > >struct rpmsg_device_id { > char name[32]; >}; > > > > > > >struct i2c_device_id { > char name[20]; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; > > > > > > >struct spi_device_id { > char name[32]; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; > > >enum dmi_field { > DMI_NONE, > DMI_BIOS_VENDOR, > DMI_BIOS_VERSION, > DMI_BIOS_DATE, > DMI_SYS_VENDOR, > DMI_PRODUCT_NAME, > DMI_PRODUCT_VERSION, > DMI_PRODUCT_SERIAL, > DMI_PRODUCT_UUID, > DMI_BOARD_VENDOR, > DMI_BOARD_NAME, > DMI_BOARD_VERSION, > DMI_BOARD_SERIAL, > DMI_BOARD_ASSET_TAG, > DMI_CHASSIS_VENDOR, > DMI_CHASSIS_TYPE, > DMI_CHASSIS_VERSION, > DMI_CHASSIS_SERIAL, > DMI_CHASSIS_ASSET_TAG, > DMI_STRING_MAX, >}; > >struct dmi_strmatch { > unsigned char slot; > char substr[79]; >}; ># 496 "include/linux/mod_devicetable.h" >struct dmi_system_id { > int (*callback)(const struct dmi_system_id *); > const char *ident; > struct dmi_strmatch matches[4]; > void *driver_data; >}; ># 516 "include/linux/mod_devicetable.h" >struct platform_device_id { > char name[20]; > kernel_ulong_t driver_data > __attribute__((aligned(sizeof(kernel_ulong_t)))); >}; ># 543 "include/linux/mod_devicetable.h" >struct mdio_device_id { > __u32 phy_id; > __u32 phy_id_mask; >}; > >struct zorro_device_id { > __u32 id; > kernel_ulong_t driver_data; >}; > > > > > > >struct isapnp_device_id { > unsigned short card_vendor, card_device; > unsigned short vendor, function; > kernel_ulong_t driver_data; >}; ># 572 "include/linux/mod_devicetable.h" >struct amba_id { > unsigned int id; > unsigned int mask; > > > > void *data; > >}; > > > > > > >struct x86_cpu_id { > __u16 vendor; > __u16 family; > __u16 model; > __u16 feature; > kernel_ulong_t driver_data; >}; ># 605 "include/linux/mod_devicetable.h" >struct ipack_device_id { > __u8 format; > __u32 vendor; > __u32 device; >}; ># 21 "include/linux/pci.h" 2 > > > ># 1 "include/linux/ioport.h" 1 ># 18 "include/linux/ioport.h" >struct resource { > resource_size_t start; > resource_size_t end; > const char *name; > unsigned long flags; > struct resource *parent, *sibling, *child; >}; ># 138 "include/linux/ioport.h" >extern struct resource ioport_resource; >extern struct resource iomem_resource; > >extern struct resource *request_resource_conflict(struct resource *root, struct resource *new); >extern int request_resource(struct resource *root, struct resource *new); >extern int release_resource(struct resource *new); >void release_child_resources(struct resource *new); >extern void reserve_region_with_split(struct resource *root, > resource_size_t start, resource_size_t end, > const char *name); >extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new); >extern int insert_resource(struct resource *parent, struct resource *new); >extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new); >extern void arch_remove_reservations(struct resource *avail); >extern int allocate_resource(struct resource *root, struct resource *new, > resource_size_t size, resource_size_t min, > resource_size_t max, resource_size_t align, > resource_size_t (*alignf)(void *, > const struct resource *, > resource_size_t, > resource_size_t), > void *alignf_data); >struct resource *lookup_resource(struct resource *root, resource_size_t start); >int adjust_resource(struct resource *res, resource_size_t start, > resource_size_t size); >resource_size_t resource_alignment(struct resource *res); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) resource_size_t resource_size(const struct resource *res) >{ > return res->end - res->start + 1; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long resource_type(const struct resource *res) >{ > return res->flags & 0x00001f00; >} ># 182 "include/linux/ioport.h" >extern struct resource * __request_region(struct resource *, > resource_size_t start, > resource_size_t n, > const char *name, int flags); > > > > > > >extern int __check_region(struct resource *, resource_size_t, resource_size_t); >extern void __release_region(struct resource *, resource_size_t, > resource_size_t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int check_region(resource_size_t s, > resource_size_t n) >{ > return __check_region(&ioport_resource, s, n); >} > > >struct device; > > > > > >extern struct resource * __devm_request_region(struct device *dev, > struct resource *parent, resource_size_t start, > resource_size_t n, const char *name); > > > > > > >extern void __devm_release_region(struct device *dev, struct resource *parent, > resource_size_t start, resource_size_t n); >extern int iomem_map_sanity_check(resource_size_t addr, unsigned long size); >extern int iomem_is_exclusive(u64 addr); > >extern int >walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, > void *arg, int (*func)(unsigned long, unsigned long, void *)); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool resource_overlaps(struct resource *r1, struct resource *r2) >{ > return (r1->start <= r2->end && r1->end >= r2->start); >} ># 25 "include/linux/pci.h" 2 > > > > > ># 1 "include/linux/device.h" 1 ># 18 "include/linux/device.h" ># 1 "include/linux/klist.h" 1 ># 19 "include/linux/klist.h" >struct klist_node; >struct klist { > spinlock_t k_lock; > struct list_head k_list; > void (*get)(struct klist_node *); > void (*put)(struct klist_node *); >} __attribute__ ((aligned (sizeof(void *)))); ># 36 "include/linux/klist.h" >extern void klist_init(struct klist *k, void (*get)(struct klist_node *), > void (*put)(struct klist_node *)); > >struct klist_node { > void *n_klist; > struct list_head n_node; > struct kref n_ref; >}; > >extern void klist_add_tail(struct klist_node *n, struct klist *k); >extern void klist_add_head(struct klist_node *n, struct klist *k); >extern void klist_add_after(struct klist_node *n, struct klist_node *pos); >extern void klist_add_before(struct klist_node *n, struct klist_node *pos); > >extern void klist_del(struct klist_node *n); >extern void klist_remove(struct klist_node *n); > >extern int klist_node_attached(struct klist_node *n); > > >struct klist_iter { > struct klist *i_klist; > struct klist_node *i_cur; >}; > > >extern void klist_iter_init(struct klist *k, struct klist_iter *i); >extern void klist_iter_init_node(struct klist *k, struct klist_iter *i, > struct klist_node *n); >extern void klist_iter_exit(struct klist_iter *i); >extern struct klist_node *klist_next(struct klist_iter *i); ># 19 "include/linux/device.h" 2 > > > > > ># 1 "include/linux/pm.h" 1 ># 34 "include/linux/pm.h" >extern void (*pm_idle)(void); >extern void (*pm_power_off)(void); >extern void (*pm_power_off_prepare)(void); > > > > > >struct device; > > >extern const char power_group_name[]; > > > > >typedef struct pm_message { > int event; >} pm_message_t; ># 264 "include/linux/pm.h" >struct dev_pm_ops { > int (*prepare)(struct device *dev); > void (*complete)(struct device *dev); > int (*suspend)(struct device *dev); > int (*resume)(struct device *dev); > int (*freeze)(struct device *dev); > int (*thaw)(struct device *dev); > int (*poweroff)(struct device *dev); > int (*restore)(struct device *dev); > int (*suspend_late)(struct device *dev); > int (*resume_early)(struct device *dev); > int (*freeze_late)(struct device *dev); > int (*thaw_early)(struct device *dev); > int (*poweroff_late)(struct device *dev); > int (*restore_early)(struct device *dev); > int (*suspend_noirq)(struct device *dev); > int (*resume_noirq)(struct device *dev); > int (*freeze_noirq)(struct device *dev); > int (*thaw_noirq)(struct device *dev); > int (*poweroff_noirq)(struct device *dev); > int (*restore_noirq)(struct device *dev); > int (*runtime_suspend)(struct device *dev); > int (*runtime_resume)(struct device *dev); > int (*runtime_idle)(struct device *dev); >}; ># 458 "include/linux/pm.h" >enum rpm_status { > RPM_ACTIVE = 0, > RPM_RESUMING, > RPM_SUSPENDED, > RPM_SUSPENDING, >}; ># 480 "include/linux/pm.h" >enum rpm_request { > RPM_REQ_NONE = 0, > RPM_REQ_IDLE, > RPM_REQ_SUSPEND, > RPM_REQ_AUTOSUSPEND, > RPM_REQ_RESUME, >}; > >struct wakeup_source; > >struct pm_domain_data { > struct list_head list_node; > struct device *dev; >}; > >struct pm_subsys_data { > spinlock_t lock; > unsigned int refcount; > > struct list_head clock_list; > > > > >}; > >struct dev_pm_info { > pm_message_t power_state; > unsigned int can_wakeup:1; > unsigned int async_suspend:1; > bool is_prepared:1; > bool is_suspended:1; > bool ignore_children:1; > bool early_init:1; > spinlock_t lock; > > struct list_head entry; > struct completion completion; > struct wakeup_source *wakeup; > bool wakeup_path:1; > bool syscore:1; > > > > > struct timer_list suspend_timer; > unsigned long timer_expires; > struct work_struct work; > wait_queue_head_t wait_queue; > atomic_t usage_count; > atomic_t child_count; > unsigned int disable_depth:3; > unsigned int idle_notification:1; > unsigned int request_pending:1; > unsigned int deferred_resume:1; > unsigned int run_wake:1; > unsigned int runtime_auto:1; > unsigned int no_callbacks:1; > unsigned int irq_safe:1; > unsigned int use_autosuspend:1; > unsigned int timer_autosuspends:1; > enum rpm_request request; > enum rpm_status runtime_status; > int runtime_error; > int autosuspend_delay; > unsigned long last_busy; > unsigned long active_jiffies; > unsigned long suspended_jiffies; > unsigned long accounting_timestamp; > > struct pm_subsys_data *subsys_data; > struct dev_pm_qos *qos; >}; > >extern void update_pm_runtime_accounting(struct device *dev); >extern int dev_pm_get_subsys_data(struct device *dev); >extern int dev_pm_put_subsys_data(struct device *dev); > > > > > > >struct dev_pm_domain { > struct dev_pm_ops ops; >}; ># 622 "include/linux/pm.h" >extern void device_pm_lock(void); >extern void dpm_resume_start(pm_message_t state); >extern void dpm_resume_end(pm_message_t state); >extern void dpm_resume(pm_message_t state); >extern void dpm_complete(pm_message_t state); > >extern void device_pm_unlock(void); >extern int dpm_suspend_end(pm_message_t state); >extern int dpm_suspend_start(pm_message_t state); >extern int dpm_suspend(pm_message_t state); >extern int dpm_prepare(pm_message_t state); > >extern void __suspend_report_result(const char *function, void *fn, int ret); > > > > > > >extern int device_pm_wait_for_dev(struct device *sub, struct device *dev); >extern void dpm_for_each_dev(void *data, void (*fn)(struct device *, void *)); > >extern int pm_generic_prepare(struct device *dev); >extern int pm_generic_suspend_late(struct device *dev); >extern int pm_generic_suspend_noirq(struct device *dev); >extern int pm_generic_suspend(struct device *dev); >extern int pm_generic_resume_early(struct device *dev); >extern int pm_generic_resume_noirq(struct device *dev); >extern int pm_generic_resume(struct device *dev); >extern int pm_generic_freeze_noirq(struct device *dev); >extern int pm_generic_freeze_late(struct device *dev); >extern int pm_generic_freeze(struct device *dev); >extern int pm_generic_thaw_noirq(struct device *dev); >extern int pm_generic_thaw_early(struct device *dev); >extern int pm_generic_thaw(struct device *dev); >extern int pm_generic_restore_noirq(struct device *dev); >extern int pm_generic_restore_early(struct device *dev); >extern int pm_generic_restore(struct device *dev); >extern int pm_generic_poweroff_noirq(struct device *dev); >extern int pm_generic_poweroff_late(struct device *dev); >extern int pm_generic_poweroff(struct device *dev); >extern void pm_generic_complete(struct device *dev); ># 697 "include/linux/pm.h" >enum dpm_order { > DPM_ORDER_NONE, > DPM_ORDER_DEV_AFTER_PARENT, > DPM_ORDER_PARENT_BEFORE_DEV, > DPM_ORDER_DEV_LAST, >}; ># 25 "include/linux/device.h" 2 > ># 1 "include/linux/ratelimit.h" 1 ># 10 "include/linux/ratelimit.h" >struct ratelimit_state { > raw_spinlock_t lock; > > int interval; > int burst; > int printed; > int missed; > unsigned long begin; >}; ># 28 "include/linux/ratelimit.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ratelimit_state_init(struct ratelimit_state *rs, > int interval, int burst) >{ > do { *(&rs->lock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while (0); > rs->interval = interval; > rs->burst = burst; > rs->printed = 0; > rs->missed = 0; > rs->begin = 0; >} > >extern struct ratelimit_state printk_ratelimit_state; > >extern int ___ratelimit(struct ratelimit_state *rs, const char *func); ># 27 "include/linux/device.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/device.h" 1 ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/device.h" >struct dev_archdata { > struct dma_map_ops *dma_ops; > > > > > void *iommu; > > > > >}; > >struct omap_device; > >struct pdev_archdata { > > > >}; ># 28 "include/linux/device.h" 2 > >struct device; >struct device_private; >struct device_driver; >struct driver_private; >struct module; >struct class; >struct subsys_private; >struct bus_type; >struct device_node; >struct iommu_ops; >struct iommu_group; > >struct bus_attribute { > struct attribute attr; > ssize_t (*show)(struct bus_type *bus, char *buf); > ssize_t (*store)(struct bus_type *bus, const char *buf, size_t count); >}; > > > > >extern int __attribute__((warn_unused_result)) bus_create_file(struct bus_type *, > struct bus_attribute *); >extern void bus_remove_file(struct bus_type *, struct bus_attribute *); ># 91 "include/linux/device.h" >struct bus_type { > const char *name; > const char *dev_name; > struct device *dev_root; > struct bus_attribute *bus_attrs; > struct device_attribute *dev_attrs; > struct driver_attribute *drv_attrs; > > int (*match)(struct device *dev, struct device_driver *drv); > int (*uevent)(struct device *dev, struct kobj_uevent_env *env); > int (*probe)(struct device *dev); > int (*remove)(struct device *dev); > void (*shutdown)(struct device *dev); > > int (*suspend)(struct device *dev, pm_message_t state); > int (*resume)(struct device *dev); > > const struct dev_pm_ops *pm; > > struct iommu_ops *iommu_ops; > > struct subsys_private *p; >}; ># 122 "include/linux/device.h" >extern int __attribute__((warn_unused_result)) __bus_register(struct bus_type *bus, > struct lock_class_key *key); >extern void bus_unregister(struct bus_type *bus); > >extern int __attribute__((warn_unused_result)) bus_rescan_devices(struct bus_type *bus); > > >struct subsys_dev_iter { > struct klist_iter ki; > const struct device_type *type; >}; >void subsys_dev_iter_init(struct subsys_dev_iter *iter, > struct bus_type *subsys, > struct device *start, > const struct device_type *type); >struct device *subsys_dev_iter_next(struct subsys_dev_iter *iter); >void subsys_dev_iter_exit(struct subsys_dev_iter *iter); > >int bus_for_each_dev(struct bus_type *bus, struct device *start, void *data, > int (*fn)(struct device *dev, void *data)); >struct device *bus_find_device(struct bus_type *bus, struct device *start, > void *data, > int (*match)(struct device *dev, void *data)); >struct device *bus_find_device_by_name(struct bus_type *bus, > struct device *start, > const char *name); >struct device *subsys_find_device_by_id(struct bus_type *bus, unsigned int id, > struct device *hint); >int bus_for_each_drv(struct bus_type *bus, struct device_driver *start, > void *data, int (*fn)(struct device_driver *, void *)); >void bus_sort_breadthfirst(struct bus_type *bus, > int (*compare)(const struct device *a, > const struct device *b)); > > > > > > >struct notifier_block; > >extern int bus_register_notifier(struct bus_type *bus, > struct notifier_block *nb); >extern int bus_unregister_notifier(struct bus_type *bus, > struct notifier_block *nb); ># 182 "include/linux/device.h" >extern struct kset *bus_get_kset(struct bus_type *bus); >extern struct klist *bus_get_device_klist(struct bus_type *bus); ># 217 "include/linux/device.h" >struct device_driver { > const char *name; > struct bus_type *bus; > > struct module *owner; > const char *mod_name; > > bool suppress_bind_attrs; > > const struct of_device_id *of_match_table; > const struct acpi_device_id *acpi_match_table; > > int (*probe) (struct device *dev); > int (*remove) (struct device *dev); > void (*shutdown) (struct device *dev); > int (*suspend) (struct device *dev, pm_message_t state); > int (*resume) (struct device *dev); > const struct attribute_group **groups; > > const struct dev_pm_ops *pm; > > struct driver_private *p; >}; > > >extern int __attribute__((warn_unused_result)) driver_register(struct device_driver *drv); >extern void driver_unregister(struct device_driver *drv); > >extern struct device_driver *driver_find(const char *name, > struct bus_type *bus); >extern int driver_probe_done(void); >extern void wait_for_device_probe(void); > > > > >struct driver_attribute { > struct attribute attr; > ssize_t (*show)(struct device_driver *driver, char *buf); > ssize_t (*store)(struct device_driver *driver, const char *buf, > size_t count); >}; > > > > > >extern int __attribute__((warn_unused_result)) driver_create_file(struct device_driver *driver, > const struct driver_attribute *attr); >extern void driver_remove_file(struct device_driver *driver, > const struct driver_attribute *attr); > >extern int __attribute__((warn_unused_result)) driver_for_each_device(struct device_driver *drv, > struct device *start, > void *data, > int (*fn)(struct device *dev, > void *)); >struct device *driver_find_device(struct device_driver *drv, > struct device *start, void *data, > int (*match)(struct device *dev, void *data)); ># 291 "include/linux/device.h" >struct subsys_interface { > const char *name; > struct bus_type *subsys; > struct list_head node; > int (*add_dev)(struct device *dev, struct subsys_interface *sif); > int (*remove_dev)(struct device *dev, struct subsys_interface *sif); >}; > >int subsys_interface_register(struct subsys_interface *sif); >void subsys_interface_unregister(struct subsys_interface *sif); > >int subsys_system_register(struct bus_type *subsys, > const struct attribute_group **groups); ># 334 "include/linux/device.h" >struct class { > const char *name; > struct module *owner; > > struct class_attribute *class_attrs; > struct device_attribute *dev_attrs; > struct bin_attribute *dev_bin_attrs; > struct kobject *dev_kobj; > > int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env); > char *(*devnode)(struct device *dev, umode_t *mode); > > void (*class_release)(struct class *class); > void (*dev_release)(struct device *dev); > > int (*suspend)(struct device *dev, pm_message_t state); > int (*resume)(struct device *dev); > > const struct kobj_ns_type_operations *ns_type; > const void *(*namespace)(struct device *dev); > > const struct dev_pm_ops *pm; > > struct subsys_private *p; >}; > >struct class_dev_iter { > struct klist_iter ki; > const struct device_type *type; >}; > >extern struct kobject *sysfs_dev_block_kobj; >extern struct kobject *sysfs_dev_char_kobj; >extern int __attribute__((warn_unused_result)) __class_register(struct class *class, > struct lock_class_key *key); >extern void class_unregister(struct class *class); ># 379 "include/linux/device.h" >struct class_compat; >struct class_compat *class_compat_register(const char *name); >void class_compat_unregister(struct class_compat *cls); >int class_compat_create_link(struct class_compat *cls, struct device *dev, > struct device *device_link); >void class_compat_remove_link(struct class_compat *cls, struct device *dev, > struct device *device_link); > >extern void class_dev_iter_init(struct class_dev_iter *iter, > struct class *class, > struct device *start, > const struct device_type *type); >extern struct device *class_dev_iter_next(struct class_dev_iter *iter); >extern void class_dev_iter_exit(struct class_dev_iter *iter); > >extern int class_for_each_device(struct class *class, struct device *start, > void *data, > int (*fn)(struct device *dev, void *data)); >extern struct device *class_find_device(struct class *class, > struct device *start, void *data, > int (*match)(struct device *, void *)); > >struct class_attribute { > struct attribute attr; > ssize_t (*show)(struct class *class, struct class_attribute *attr, > char *buf); > ssize_t (*store)(struct class *class, struct class_attribute *attr, > const char *buf, size_t count); > const void *(*namespace)(struct class *class, > const struct class_attribute *attr); >}; > > > > >extern int __attribute__((warn_unused_result)) class_create_file(struct class *class, > const struct class_attribute *attr); >extern void class_remove_file(struct class *class, > const struct class_attribute *attr); > > > >struct class_attribute_string { > struct class_attribute attr; > char *str; >}; ># 433 "include/linux/device.h" >extern ssize_t show_class_attr_string(struct class *class, struct class_attribute *attr, > char *buf); > >struct class_interface { > struct list_head node; > struct class *class; > > int (*add_dev) (struct device *, struct class_interface *); > void (*remove_dev) (struct device *, struct class_interface *); >}; > >extern int __attribute__((warn_unused_result)) class_interface_register(struct class_interface *); >extern void class_interface_unregister(struct class_interface *); > >extern struct class * __attribute__((warn_unused_result)) __class_create(struct module *owner, > const char *name, > struct lock_class_key *key); >extern void class_destroy(struct class *cls); ># 469 "include/linux/device.h" >struct device_type { > const char *name; > const struct attribute_group **groups; > int (*uevent)(struct device *dev, struct kobj_uevent_env *env); > char *(*devnode)(struct device *dev, umode_t *mode); > void (*release)(struct device *dev); > > const struct dev_pm_ops *pm; >}; > > >struct device_attribute { > struct attribute attr; > ssize_t (*show)(struct device *dev, struct device_attribute *attr, > char *buf); > ssize_t (*store)(struct device *dev, struct device_attribute *attr, > const char *buf, size_t count); >}; > >struct dev_ext_attribute { > struct device_attribute attr; > void *var; >}; > >ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr, > char *buf); >ssize_t device_store_ulong(struct device *dev, struct device_attribute *attr, > const char *buf, size_t count); >ssize_t device_show_int(struct device *dev, struct device_attribute *attr, > char *buf); >ssize_t device_store_int(struct device *dev, struct device_attribute *attr, > const char *buf, size_t count); >ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, > char *buf); >ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, > const char *buf, size_t count); ># 521 "include/linux/device.h" >extern int device_create_file(struct device *device, > const struct device_attribute *entry); >extern void device_remove_file(struct device *dev, > const struct device_attribute *attr); >extern int __attribute__((warn_unused_result)) device_create_bin_file(struct device *dev, > const struct bin_attribute *attr); >extern void device_remove_bin_file(struct device *dev, > const struct bin_attribute *attr); >extern int device_schedule_callback_owner(struct device *dev, > void (*func)(struct device *dev), struct module *owner); > > > > > > >typedef void (*dr_release_t)(struct device *dev, void *res); >typedef int (*dr_match_t)(struct device *dev, void *res, void *match_data); > > >extern void *__devres_alloc(dr_release_t release, size_t size, gfp_t gfp, > const char *name); > > > > > >extern void devres_for_each_res(struct device *dev, dr_release_t release, > dr_match_t match, void *match_data, > void (*fn)(struct device *, void *, void *), > void *data); >extern void devres_free(void *res); >extern void devres_add(struct device *dev, void *res); >extern void *devres_find(struct device *dev, dr_release_t release, > dr_match_t match, void *match_data); >extern void *devres_get(struct device *dev, void *new_res, > dr_match_t match, void *match_data); >extern void *devres_remove(struct device *dev, dr_release_t release, > dr_match_t match, void *match_data); >extern int devres_destroy(struct device *dev, dr_release_t release, > dr_match_t match, void *match_data); >extern int devres_release(struct device *dev, dr_release_t release, > dr_match_t match, void *match_data); > > >extern void * __attribute__((warn_unused_result)) devres_open_group(struct device *dev, void *id, > gfp_t gfp); >extern void devres_close_group(struct device *dev, void *id); >extern void devres_remove_group(struct device *dev, void *id); >extern int devres_release_group(struct device *dev, void *id); > > >extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); >extern void devm_kfree(struct device *dev, void *p); > >void *devm_request_and_ioremap(struct device *dev, > struct resource *res); > >struct device_dma_parameters { > > > > > unsigned int max_segment_size; > unsigned long segment_boundary_mask; >}; > >struct acpi_dev_node { > > > >}; ># 654 "include/linux/device.h" >struct device { > struct device *parent; > > struct device_private *p; > > struct kobject kobj; > const char *init_name; > const struct device_type *type; > > struct mutex mutex; > > > > struct bus_type *bus; > struct device_driver *driver; > > void *platform_data; > > struct dev_pm_info power; > struct dev_pm_domain *pm_domain; > > > > > u64 *dma_mask; > u64 coherent_dma_mask; > > > > > > struct device_dma_parameters *dma_parms; > > struct list_head dma_pools; > > struct dma_coherent_mem *dma_mem; > > > > > > > struct dev_archdata archdata; > > struct device_node *of_node; > struct acpi_dev_node acpi_node; > > dev_t devt; > u32 id; > > spinlock_t devres_lock; > struct list_head devres_head; > > struct klist_node knode_class; > struct class *class; > const struct attribute_group **groups; > > void (*release)(struct device *dev); > struct iommu_group *iommu_group; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct device *kobj_to_dev(struct kobject *kobj) >{ > return ({ const typeof( ((struct device *)0)->kobj ) *__mptr = (kobj); (struct device *)( (char *)__mptr - __builtin_offsetof(struct device,kobj) );}); >} ># 729 "include/linux/device.h" ># 1 "include/linux/pm_wakeup.h" 1 ># 46 "include/linux/pm_wakeup.h" >struct wakeup_source { > const char *name; > struct list_head entry; > spinlock_t lock; > struct timer_list timer; > unsigned long timer_expires; > ktime_t total_time; > ktime_t max_time; > ktime_t last_time; > ktime_t start_prevent_time; > ktime_t prevent_sleep_time; > unsigned long event_count; > unsigned long active_count; > unsigned long relax_count; > unsigned long expire_count; > unsigned long wakeup_count; > bool active:1; > bool autosleep_enabled:1; >}; > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool device_can_wakeup(struct device *dev) >{ > return dev->power.can_wakeup; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool device_may_wakeup(struct device *dev) >{ > return dev->power.can_wakeup && !!dev->power.wakeup; >} > > >extern void wakeup_source_prepare(struct wakeup_source *ws, const char *name); >extern struct wakeup_source *wakeup_source_create(const char *name); >extern void wakeup_source_drop(struct wakeup_source *ws); >extern void wakeup_source_destroy(struct wakeup_source *ws); >extern void wakeup_source_add(struct wakeup_source *ws); >extern void wakeup_source_remove(struct wakeup_source *ws); >extern struct wakeup_source *wakeup_source_register(const char *name); >extern void wakeup_source_unregister(struct wakeup_source *ws); >extern int device_wakeup_enable(struct device *dev); >extern int device_wakeup_disable(struct device *dev); >extern void device_set_wakeup_capable(struct device *dev, bool capable); >extern int device_init_wakeup(struct device *dev, bool val); >extern int device_set_wakeup_enable(struct device *dev, bool enable); >extern void __pm_stay_awake(struct wakeup_source *ws); >extern void pm_stay_awake(struct device *dev); >extern void __pm_relax(struct wakeup_source *ws); >extern void pm_relax(struct device *dev); >extern void __pm_wakeup_event(struct wakeup_source *ws, unsigned int msec); >extern void pm_wakeup_event(struct device *dev, unsigned int msec); ># 182 "include/linux/pm_wakeup.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void wakeup_source_init(struct wakeup_source *ws, > const char *name) >{ > wakeup_source_prepare(ws, name); > wakeup_source_add(ws); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void wakeup_source_trash(struct wakeup_source *ws) >{ > wakeup_source_remove(ws); > wakeup_source_drop(ws); >} ># 730 "include/linux/device.h" 2 > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *dev_name(const struct device *dev) >{ > > if (dev->init_name) > return dev->init_name; > > return kobject_name(&dev->kobj); >} > >extern __attribute__((format(printf, 2, 3))) >int dev_set_name(struct device *dev, const char *name, ...); ># 753 "include/linux/device.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dev_to_node(struct device *dev) >{ > return -1; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_dev_node(struct device *dev, int node) >{ >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pm_subsys_data *dev_to_psd(struct device *dev) >{ > return dev ? dev->power.subsys_data : ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int dev_get_uevent_suppress(const struct device *dev) >{ > return dev->kobj.uevent_suppress; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dev_set_uevent_suppress(struct device *dev, int val) >{ > dev->kobj.uevent_suppress = val; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int device_is_registered(struct device *dev) >{ > return dev->kobj.state_in_sysfs; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void device_enable_async_suspend(struct device *dev) >{ > if (!dev->power.is_prepared) > dev->power.async_suspend = true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void device_disable_async_suspend(struct device *dev) >{ > if (!dev->power.is_prepared) > dev->power.async_suspend = false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool device_async_suspend_enabled(struct device *dev) >{ > return !!dev->power.async_suspend; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pm_suspend_ignore_children(struct device *dev, bool enable) >{ > dev->power.ignore_children = enable; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dev_pm_syscore_device(struct device *dev, bool val) >{ > > dev->power.syscore = val; > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void device_lock(struct device *dev) >{ > mutex_lock(&dev->mutex); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int device_trylock(struct device *dev) >{ > return mutex_trylock(&dev->mutex); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void device_unlock(struct device *dev) >{ > mutex_unlock(&dev->mutex); >} > >void driver_init(void); > > > > >extern int __attribute__((warn_unused_result)) device_register(struct device *dev); >extern void device_unregister(struct device *dev); >extern void device_initialize(struct device *dev); >extern int __attribute__((warn_unused_result)) device_add(struct device *dev); >extern void device_del(struct device *dev); >extern int device_for_each_child(struct device *dev, void *data, > int (*fn)(struct device *dev, void *data)); >extern struct device *device_find_child(struct device *dev, void *data, > int (*match)(struct device *dev, void *data)); >extern int device_rename(struct device *dev, const char *new_name); >extern int device_move(struct device *dev, struct device *new_parent, > enum dpm_order dpm_order); >extern const char *device_get_devnode(struct device *dev, > umode_t *mode, const char **tmp); >extern void *dev_get_drvdata(const struct device *dev); >extern int dev_set_drvdata(struct device *dev, void *data); > > > > >extern struct device *__root_device_register(const char *name, > struct module *owner); ># 861 "include/linux/device.h" >extern void root_device_unregister(struct device *root); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dev_get_platdata(const struct device *dev) >{ > return dev->platform_data; >} > > > > > >extern int __attribute__((warn_unused_result)) device_bind_driver(struct device *dev); >extern void device_release_driver(struct device *dev); >extern int __attribute__((warn_unused_result)) device_attach(struct device *dev); >extern int __attribute__((warn_unused_result)) driver_attach(struct device_driver *drv); >extern int __attribute__((warn_unused_result)) device_reprobe(struct device *dev); > > > > >extern struct device *device_create_vargs(struct class *cls, > struct device *parent, > dev_t devt, > void *drvdata, > const char *fmt, > va_list vargs); >extern __attribute__((format(printf, 5, 6))) >struct device *device_create(struct class *cls, struct device *parent, > dev_t devt, void *drvdata, > const char *fmt, ...); >extern void device_destroy(struct class *cls, dev_t devt); > > > > > > > >extern int (*platform_notify)(struct device *dev); > >extern int (*platform_notify_remove)(struct device *dev); > > > > > > >extern struct device *get_device(struct device *dev); >extern void put_device(struct device *dev); > > >extern int devtmpfs_create_node(struct device *dev); >extern int devtmpfs_delete_node(struct device *dev); >extern int devtmpfs_mount(const char *mntdir); > > > > > > > >extern void device_shutdown(void); > > >extern const char *dev_driver_string(const struct device *dev); > > > > >extern __attribute__((format(printf, 3, 0))) >int dev_vprintk_emit(int level, const struct device *dev, > const char *fmt, va_list args); >extern __attribute__((format(printf, 3, 4))) >int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...); > >extern __attribute__((format(printf, 3, 4))) >int dev_printk(const char *level, const struct device *dev, > const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_emerg(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_alert(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_crit(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_err(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_warn(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int dev_notice(const struct device *dev, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >int _dev_info(const struct device *dev, const char *fmt, ...); ># 31 "include/linux/pci.h" 2 ># 1 "include/linux/io.h" 1 ># 22 "include/linux/io.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" 1 ># 29 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" ># 1 "include/asm-generic/pci_iomap.h" 1 ># 14 "include/asm-generic/pci_iomap.h" >struct pci_dev; > > >extern void *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); ># 30 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" 2 ># 42 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern void __raw_writesb(void *addr, const void *data, int bytelen); >extern void __raw_writesw(void *addr, const void *data, int wordlen); >extern void __raw_writesl(void *addr, const void *data, int longlen); > >extern void __raw_readsb(const void *addr, void *data, int bytelen); >extern void __raw_readsw(const void *addr, void *data, int wordlen); >extern void __raw_readsl(const void *addr, void *data, int longlen); ># 64 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_writew(u16 val, volatile void *addr) >{ > asm volatile("strh %1, %0" > : "+Q" (*(volatile u16 *)addr) > : "r" (val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u16 __raw_readw(const volatile void *addr) >{ > u16 val; > asm volatile("ldrh %1, %0" > : "+Q" (*(volatile u16 *)addr), > "=r" (val)); > return val; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_writeb(u8 val, volatile void *addr) >{ > asm volatile("strb %1, %0" > : "+Qo" (*(volatile u8 *)addr) > : "r" (val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __raw_writel(u32 val, volatile void *addr) >{ > asm volatile("str %1, %0" > : "+Qo" (*(volatile u32 *)addr) > : "r" (val)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 __raw_readb(const volatile void *addr) >{ > u8 val; > asm volatile("ldrb %1, %0" > : "+Qo" (*(volatile u8 *)addr), > "=r" (val)); > return val; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 __raw_readl(const volatile void *addr) >{ > u32 val; > asm volatile("ldr %1, %0" > : "+Qo" (*(volatile u32 *)addr), > "=r" (val)); > return val; >} ># 131 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern void *__arm_ioremap_pfn_caller(unsigned long, unsigned long, > size_t, unsigned int, void *); >extern void *__arm_ioremap_caller(unsigned long, size_t, unsigned int, > void *); > >extern void *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int); >extern void *__arm_ioremap(unsigned long, size_t, unsigned int); >extern void *__arm_ioremap_exec(unsigned long, size_t, bool cached); >extern void __iounmap(volatile void *addr); >extern void __arm_iounmap(volatile void *addr); > >extern void * (*arch_ioremap_caller)(unsigned long, size_t, > unsigned int, void *); >extern void (*arch_iounmap)(volatile void *); > > > > >extern void __readwrite_bug(const char *fn); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *__typesafe_io(unsigned long addr) >{ > return (void *)addr; >} ># 174 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr); ># 272 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern void _memcpy_fromio(void *, const volatile void *, size_t); >extern void _memcpy_toio(volatile void *, const void *, size_t); >extern void _memset_io(volatile void *, int, size_t); ># 360 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern void *ioport_map(unsigned long port, unsigned int nr); >extern void ioport_unmap(void *addr); > > >struct pci_dev; > >extern void pci_iounmap(struct pci_dev *dev, void *addr); ># 377 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern int valid_phys_addr_range(phys_addr_t addr, size_t size); >extern int valid_mmap_phys_addr_range(unsigned long pfn, size_t size); >extern int devmem_is_allowed(unsigned long pfn); ># 397 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/io.h" >extern void register_isa_ports(unsigned int mmio, unsigned int io, > unsigned int io_shift); ># 23 "include/linux/io.h" 2 > > >struct device; > >void __iowrite32_copy(void *to, const void *from, size_t count); >void __iowrite64_copy(void *to, const void *from, size_t count); > > >int ioremap_page_range(unsigned long addr, unsigned long end, > phys_addr_t phys_addr, pgprot_t prot); ># 45 "include/linux/io.h" >void * devm_ioport_map(struct device *dev, unsigned long port, > unsigned int nr); >void devm_ioport_unmap(struct device *dev, void *addr); ># 61 "include/linux/io.h" >void *devm_ioremap(struct device *dev, resource_size_t offset, > unsigned long size); >void *devm_ioremap_nocache(struct device *dev, resource_size_t offset, > unsigned long size); >void devm_iounmap(struct device *dev, void *addr); >int check_signature(const volatile void *io_addr, > const unsigned char *signature, int length); >void devm_ioremap_release(struct device *dev, void *res); ># 32 "include/linux/pci.h" 2 ># 1 "include/linux/irqreturn.h" 1 ># 10 "include/linux/irqreturn.h" >enum irqreturn { > IRQ_NONE = (0 << 0), > IRQ_HANDLED = (1 << 0), > IRQ_WAKE_THREAD = (1 << 1), >}; > >typedef enum irqreturn irqreturn_t; ># 33 "include/linux/pci.h" 2 ># 1 "include/uapi/linux/pci.h" 1 ># 20 "include/uapi/linux/pci.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/pci_regs.h" 1 ># 21 "include/uapi/linux/pci.h" 2 ># 34 "include/linux/pci.h" 2 > > ># 1 "include/linux/pci_ids.h" 1 ># 37 "include/linux/pci.h" 2 > > >struct pci_slot { > struct pci_bus *bus; > struct list_head list; > struct hotplug_slot *hotplug; > unsigned char number; > struct kobject kobj; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *pci_slot_name(const struct pci_slot *slot) >{ > return kobject_name(&slot->kobj); >} > > >enum pci_mmap_state { > pci_mmap_io, > pci_mmap_mem >}; ># 67 "include/linux/pci.h" >enum { > > PCI_STD_RESOURCES, > PCI_STD_RESOURCE_END = 5, > > > PCI_ROM_RESOURCE, > > > > PCI_IOV_RESOURCES, > PCI_IOV_RESOURCE_END = PCI_IOV_RESOURCES + 6 - 1, > > > > > > PCI_BRIDGE_RESOURCES, > PCI_BRIDGE_RESOURCE_END = PCI_BRIDGE_RESOURCES + > 4 - 1, > > > PCI_NUM_RESOURCES, > > > DEVICE_COUNT_RESOURCE = PCI_NUM_RESOURCES, >}; > >typedef int pci_power_t; ># 106 "include/linux/pci.h" >extern const char *pci_power_names[]; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *pci_power_name(pci_power_t state) >{ > return pci_power_names[1 + (int) state]; >} ># 122 "include/linux/pci.h" >typedef unsigned int pci_channel_state_t; > >enum pci_channel_state { > > pci_channel_io_normal = ( pci_channel_state_t) 1, > > > pci_channel_io_frozen = ( pci_channel_state_t) 2, > > > pci_channel_io_perm_failure = ( pci_channel_state_t) 3, >}; > >typedef unsigned int pcie_reset_state_t; > >enum pcie_reset_state { > > pcie_deassert_reset = ( pcie_reset_state_t) 1, > > > pcie_warm_reset = ( pcie_reset_state_t) 2, > > > pcie_hot_reset = ( pcie_reset_state_t) 3 >}; > >typedef unsigned short pci_dev_flags_t; >enum pci_dev_flags { > > > > PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = ( pci_dev_flags_t) 1, > > PCI_DEV_FLAGS_NO_D3 = ( pci_dev_flags_t) 2, > > PCI_DEV_FLAGS_ASSIGNED = ( pci_dev_flags_t) 4, >}; > >enum pci_irq_reroute_variant { > INTEL_IRQ_REROUTE_VARIANT = 1, > MAX_IRQ_REROUTE_VARIANTS = 3 >}; > >typedef unsigned short pci_bus_flags_t; >enum pci_bus_flags { > PCI_BUS_FLAGS_NO_MSI = ( pci_bus_flags_t) 1, > PCI_BUS_FLAGS_NO_MMRBC = ( pci_bus_flags_t) 2, >}; > > >enum pci_bus_speed { > PCI_SPEED_33MHz = 0x00, > PCI_SPEED_66MHz = 0x01, > PCI_SPEED_66MHz_PCIX = 0x02, > PCI_SPEED_100MHz_PCIX = 0x03, > PCI_SPEED_133MHz_PCIX = 0x04, > PCI_SPEED_66MHz_PCIX_ECC = 0x05, > PCI_SPEED_100MHz_PCIX_ECC = 0x06, > PCI_SPEED_133MHz_PCIX_ECC = 0x07, > PCI_SPEED_66MHz_PCIX_266 = 0x09, > PCI_SPEED_100MHz_PCIX_266 = 0x0a, > PCI_SPEED_133MHz_PCIX_266 = 0x0b, > AGP_UNKNOWN = 0x0c, > AGP_1X = 0x0d, > AGP_2X = 0x0e, > AGP_4X = 0x0f, > AGP_8X = 0x10, > PCI_SPEED_66MHz_PCIX_533 = 0x11, > PCI_SPEED_100MHz_PCIX_533 = 0x12, > PCI_SPEED_133MHz_PCIX_533 = 0x13, > PCIE_SPEED_2_5GT = 0x14, > PCIE_SPEED_5_0GT = 0x15, > PCIE_SPEED_8_0GT = 0x16, > PCI_SPEED_UNKNOWN = 0xff, >}; > >struct pci_cap_saved_data { > char cap_nr; > unsigned int size; > u32 data[0]; >}; > >struct pci_cap_saved_state { > struct hlist_node next; > struct pci_cap_saved_data cap; >}; > >struct pcie_link_state; >struct pci_vpd; >struct pci_sriov; >struct pci_ats; > > > > >struct pci_dev { > struct list_head bus_list; > struct pci_bus *bus; > struct pci_bus *subordinate; > > void *sysdata; > struct proc_dir_entry *procent; > struct pci_slot *slot; > > unsigned int devfn; > unsigned short vendor; > unsigned short device; > unsigned short subsystem_vendor; > unsigned short subsystem_device; > unsigned int class; > u8 revision; > u8 hdr_type; > u8 pcie_cap; > u8 pcie_mpss:3; > u8 rom_base_reg; > u8 pin; > u16 pcie_flags_reg; > > struct pci_driver *driver; > u64 dma_mask; > > > > > > struct device_dma_parameters dma_parms; > > pci_power_t current_state; > > > int pm_cap; > > unsigned int pme_support:5; > > unsigned int pme_interrupt:1; > unsigned int pme_poll:1; > unsigned int d1_support:1; > unsigned int d2_support:1; > unsigned int no_d1d2:1; > unsigned int no_d3cold:1; > unsigned int d3cold_allowed:1; > unsigned int mmio_always_on:1; > > unsigned int wakeup_prepared:1; > unsigned int runtime_d3cold:1; > > > > unsigned int d3_delay; > unsigned int d3cold_delay; > > > > > > pci_channel_state_t error_state; > struct device dev; > > int cfg_size; > > > > > > unsigned int irq; > struct resource resource[DEVICE_COUNT_RESOURCE]; > > > unsigned int transparent:1; > unsigned int multifunction:1; > > unsigned int is_added:1; > unsigned int is_busmaster:1; > unsigned int no_msi:1; > unsigned int block_cfg_access:1; > unsigned int broken_parity_status:1; > unsigned int irq_reroute_variant:2; > unsigned int msi_enabled:1; > unsigned int msix_enabled:1; > unsigned int ari_enabled:1; > unsigned int is_managed:1; > unsigned int is_pcie:1; > > unsigned int needs_freset:1; > unsigned int state_saved:1; > unsigned int is_physfn:1; > unsigned int is_virtfn:1; > unsigned int reset_fn:1; > unsigned int is_hotplug_bridge:1; > unsigned int __aer_firmware_first_valid:1; > unsigned int __aer_firmware_first:1; > unsigned int broken_intx_masking:1; > unsigned int io_window_1k:1; > pci_dev_flags_t dev_flags; > atomic_t enable_cnt; > > u32 saved_config_space[16]; > struct hlist_head saved_cap_space; > struct bin_attribute *rom_attr; > int rom_attr_enabled; > struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; > struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; > > > > > struct pci_vpd *vpd; > > union { > struct pci_sriov *sriov; > struct pci_dev *physfn; > }; > struct pci_ats *ats; > > phys_addr_t rom; > size_t romlen; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pci_dev *pci_physfn(struct pci_dev *dev) >{ > > if (dev->is_virtfn) > dev = dev->physfn; > > > return dev; >} > >extern struct pci_dev *alloc_pci_dev(void); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_channel_offline(struct pci_dev *pdev) >{ > return (pdev->error_state != pci_channel_io_normal); >} > >extern struct resource busn_resource; > >struct pci_host_bridge_window { > struct list_head list; > struct resource *res; > resource_size_t offset; >}; > >struct pci_host_bridge { > struct device dev; > struct pci_bus *bus; > struct list_head windows; > void (*release_fn)(struct pci_host_bridge *); > void *release_data; >}; > > >void pci_set_host_bridge_release(struct pci_host_bridge *bridge, > void (*release_fn)(struct pci_host_bridge *), > void *release_data); ># 396 "include/linux/pci.h" >struct pci_bus_resource { > struct list_head list; > struct resource *res; > unsigned int flags; >}; > > > >struct pci_bus { > struct list_head node; > struct pci_bus *parent; > struct list_head children; > struct list_head devices; > struct pci_dev *self; > struct list_head slots; > struct resource *resource[4]; > struct list_head resources; > struct resource busn_res; > > struct pci_ops *ops; > void *sysdata; > struct proc_dir_entry *procdir; > > unsigned char number; > unsigned char primary; > unsigned char max_bus_speed; > unsigned char cur_bus_speed; > > char name[48]; > > unsigned short bridge_ctl; > pci_bus_flags_t bus_flags; > struct device *bridge; > struct device dev; > struct bin_attribute *legacy_io; > struct bin_attribute *legacy_mem; > unsigned int is_added:1; >}; ># 442 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool pci_is_root_bus(struct pci_bus *pbus) >{ > return !(pbus->parent); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool pci_dev_msi_enabled(struct pci_dev *pci_dev) { return false; } ># 470 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcibios_err_to_errno(int err) >{ > if (err <= 0x00) > return err; > > switch (err) { > case 0x81: > return -2; > case 0x83: > return -22; > case 0x86: > return -19; > case 0x87: > return -14; > case 0x88: > return -5; > case 0x89: > return -28; > } > > return -25; >} > > > >struct pci_ops { > int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val); > int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val); >}; > > > > > >extern int raw_pci_read(unsigned int domain, unsigned int bus, > unsigned int devfn, int reg, int len, u32 *val); >extern int raw_pci_write(unsigned int domain, unsigned int bus, > unsigned int devfn, int reg, int len, u32 val); > >struct pci_bus_region { > resource_size_t start; > resource_size_t end; >}; > >struct pci_dynids { > spinlock_t lock; > struct list_head list; >}; ># 526 "include/linux/pci.h" >typedef unsigned int pci_ers_result_t; > >enum pci_ers_result { > > PCI_ERS_RESULT_NONE = ( pci_ers_result_t) 1, > > > PCI_ERS_RESULT_CAN_RECOVER = ( pci_ers_result_t) 2, > > > PCI_ERS_RESULT_NEED_RESET = ( pci_ers_result_t) 3, > > > PCI_ERS_RESULT_DISCONNECT = ( pci_ers_result_t) 4, > > > PCI_ERS_RESULT_RECOVERED = ( pci_ers_result_t) 5, > > > PCI_ERS_RESULT_NO_AER_DRIVER = ( pci_ers_result_t) 6, >}; > > >struct pci_error_handlers { > > pci_ers_result_t (*error_detected)(struct pci_dev *dev, > enum pci_channel_state error); > > > pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev); > > > pci_ers_result_t (*link_reset)(struct pci_dev *dev); > > > pci_ers_result_t (*slot_reset)(struct pci_dev *dev); > > > void (*resume)(struct pci_dev *dev); >}; > > > >struct module; >struct pci_driver { > struct list_head node; > const char *name; > const struct pci_device_id *id_table; > int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); > void (*remove) (struct pci_dev *dev); > int (*suspend) (struct pci_dev *dev, pm_message_t state); > int (*suspend_late) (struct pci_dev *dev, pm_message_t state); > int (*resume_early) (struct pci_dev *dev); > int (*resume) (struct pci_dev *dev); > void (*shutdown) (struct pci_dev *dev); > int (*sriov_configure) (struct pci_dev *dev, int num_vfs); > const struct pci_error_handlers *err_handler; > struct device_driver driver; > struct pci_dynids dynids; >}; ># 658 "include/linux/pci.h" >extern void pcie_bus_configure_settings(struct pci_bus *bus, u8 smpss); > >enum pcie_bus_config_types { > PCIE_BUS_TUNE_OFF, > PCIE_BUS_SAFE, > PCIE_BUS_PERFORMANCE, > PCIE_BUS_PEER2PEER, >}; > >extern enum pcie_bus_config_types pcie_bus_config; > >extern struct bus_type pci_bus_type; > > > >extern struct list_head pci_root_buses; > >extern int no_pci_devices(void); > >void pcibios_fixup_bus(struct pci_bus *); >int __attribute__((warn_unused_result)) pcibios_enable_device(struct pci_dev *, int mask); > >char *pcibios_setup(char *str); > > >resource_size_t pcibios_align_resource(void *, const struct resource *, > resource_size_t, > resource_size_t); >void pcibios_update_irq(struct pci_dev *, int irq); > > >void pci_fixup_cardbus(struct pci_bus *); > > > >void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, > struct resource *res); >void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, > struct pci_bus_region *region); >void pcibios_scan_specific_bus(int busn); >extern struct pci_bus *pci_find_bus(int domain, int busnr); >void pci_bus_add_devices(const struct pci_bus *bus); >struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, > struct pci_ops *ops, void *sysdata); >struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata); >struct pci_bus *pci_create_root_bus(struct device *parent, int bus, > struct pci_ops *ops, void *sysdata, > struct list_head *resources); >int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int busmax); >int pci_bus_update_busn_res_end(struct pci_bus *b, int busmax); >void pci_bus_release_busn_res(struct pci_bus *b); >struct pci_bus *pci_scan_root_bus(struct device *parent, int bus, > struct pci_ops *ops, void *sysdata, > struct list_head *resources); >struct pci_bus *pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev, > int busnr); >void pcie_update_link_speed(struct pci_bus *bus, u16 link_status); >struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr, > const char *name, > struct hotplug_slot *hotplug); >void pci_destroy_slot(struct pci_slot *slot); >void pci_renumber_slot(struct pci_slot *slot, int slot_nr); >int pci_scan_slot(struct pci_bus *bus, int devfn); >struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn); >void pci_device_add(struct pci_dev *dev, struct pci_bus *bus); >unsigned int pci_scan_child_bus(struct pci_bus *bus); >int __attribute__((warn_unused_result)) pci_bus_add_device(struct pci_dev *dev); >void pci_read_bridge_bases(struct pci_bus *child); >struct resource *pci_find_parent_resource(const struct pci_dev *dev, > struct resource *res); >u8 pci_swizzle_interrupt_pin(const struct pci_dev *dev, u8 pin); >int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge); >u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp); >extern struct pci_dev *pci_dev_get(struct pci_dev *dev); >extern void pci_dev_put(struct pci_dev *dev); >extern void pci_remove_bus(struct pci_bus *b); >extern void pci_stop_and_remove_bus_device(struct pci_dev *dev); >void pci_stop_root_bus(struct pci_bus *bus); >void pci_remove_root_bus(struct pci_bus *bus); >void pci_setup_cardbus(struct pci_bus *bus); >extern void pci_sort_breadthfirst(void); > > > > > > >enum pci_lost_interrupt_reason { > PCI_LOST_IRQ_NO_INFORMATION = 0, > PCI_LOST_IRQ_DISABLE_MSI, > PCI_LOST_IRQ_DISABLE_MSIX, > PCI_LOST_IRQ_DISABLE_ACPI, >}; >enum pci_lost_interrupt_reason pci_lost_interrupt(struct pci_dev *dev); >int pci_find_capability(struct pci_dev *dev, int cap); >int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap); >int pci_find_ext_capability(struct pci_dev *dev, int cap); >int pci_find_next_ext_capability(struct pci_dev *dev, int pos, int cap); >int pci_find_ht_capability(struct pci_dev *dev, int ht_cap); >int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap); >struct pci_bus *pci_find_next_bus(const struct pci_bus *from); > >struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, > struct pci_dev *from); >struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device, > unsigned int ss_vendor, unsigned int ss_device, > struct pci_dev *from); >struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn); >struct pci_dev *pci_get_domain_bus_and_slot(int domain, unsigned int bus, > unsigned int devfn); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pci_dev *pci_get_bus_and_slot(unsigned int bus, > unsigned int devfn) >{ > return pci_get_domain_bus_and_slot(0, bus, devfn); >} >struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from); >int pci_dev_present(const struct pci_device_id *ids); > >int pci_bus_read_config_byte(struct pci_bus *bus, unsigned int devfn, > int where, u8 *val); >int pci_bus_read_config_word(struct pci_bus *bus, unsigned int devfn, > int where, u16 *val); >int pci_bus_read_config_dword(struct pci_bus *bus, unsigned int devfn, > int where, u32 *val); >int pci_bus_write_config_byte(struct pci_bus *bus, unsigned int devfn, > int where, u8 val); >int pci_bus_write_config_word(struct pci_bus *bus, unsigned int devfn, > int where, u16 val); >int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn, > int where, u32 val); >struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_read_config_byte(const struct pci_dev *dev, int where, u8 *val) >{ > return pci_bus_read_config_byte(dev->bus, dev->devfn, where, val); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_read_config_word(const struct pci_dev *dev, int where, u16 *val) >{ > return pci_bus_read_config_word(dev->bus, dev->devfn, where, val); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_read_config_dword(const struct pci_dev *dev, int where, > u32 *val) >{ > return pci_bus_read_config_dword(dev->bus, dev->devfn, where, val); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_write_config_byte(const struct pci_dev *dev, int where, u8 val) >{ > return pci_bus_write_config_byte(dev->bus, dev->devfn, where, val); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_write_config_word(const struct pci_dev *dev, int where, u16 val) >{ > return pci_bus_write_config_word(dev->bus, dev->devfn, where, val); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_write_config_dword(const struct pci_dev *dev, int where, > u32 val) >{ > return pci_bus_write_config_dword(dev->bus, dev->devfn, where, val); >} > >int pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val); >int pcie_capability_read_dword(struct pci_dev *dev, int pos, u32 *val); >int pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val); >int pcie_capability_write_dword(struct pci_dev *dev, int pos, u32 val); >int pcie_capability_clear_and_set_word(struct pci_dev *dev, int pos, > u16 clear, u16 set); >int pcie_capability_clear_and_set_dword(struct pci_dev *dev, int pos, > u32 clear, u32 set); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcie_capability_set_word(struct pci_dev *dev, int pos, > u16 set) >{ > return pcie_capability_clear_and_set_word(dev, pos, 0, set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcie_capability_set_dword(struct pci_dev *dev, int pos, > u32 set) >{ > return pcie_capability_clear_and_set_dword(dev, pos, 0, set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcie_capability_clear_word(struct pci_dev *dev, int pos, > u16 clear) >{ > return pcie_capability_clear_and_set_word(dev, pos, clear, 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcie_capability_clear_dword(struct pci_dev *dev, int pos, > u32 clear) >{ > return pcie_capability_clear_and_set_dword(dev, pos, clear, 0); >} > > >int pci_user_read_config_byte(struct pci_dev *dev, int where, u8 *val); >int pci_user_read_config_word(struct pci_dev *dev, int where, u16 *val); >int pci_user_read_config_dword(struct pci_dev *dev, int where, u32 *val); >int pci_user_write_config_byte(struct pci_dev *dev, int where, u8 val); >int pci_user_write_config_word(struct pci_dev *dev, int where, u16 val); >int pci_user_write_config_dword(struct pci_dev *dev, int where, u32 val); > >int __attribute__((warn_unused_result)) pci_enable_device(struct pci_dev *dev); >int __attribute__((warn_unused_result)) pci_enable_device_io(struct pci_dev *dev); >int __attribute__((warn_unused_result)) pci_enable_device_mem(struct pci_dev *dev); >int __attribute__((warn_unused_result)) pci_reenable_device(struct pci_dev *); >int __attribute__((warn_unused_result)) pcim_enable_device(struct pci_dev *pdev); >void pcim_pin_device(struct pci_dev *pdev); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_is_enabled(struct pci_dev *pdev) >{ > return ((*(volatile int *)&(&pdev->enable_cnt)->counter) > 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_is_managed(struct pci_dev *pdev) >{ > return pdev->is_managed; >} > >void pci_disable_device(struct pci_dev *dev); > >extern unsigned int pcibios_max_latency; >void pci_set_master(struct pci_dev *dev); >void pci_clear_master(struct pci_dev *dev); > >int pci_set_pcie_reset_state(struct pci_dev *dev, enum pcie_reset_state state); >int pci_set_cacheline_size(struct pci_dev *dev); > >int __attribute__((warn_unused_result)) pci_set_mwi(struct pci_dev *dev); >int pci_try_set_mwi(struct pci_dev *dev); >void pci_clear_mwi(struct pci_dev *dev); >void pci_intx(struct pci_dev *dev, int enable); >bool pci_intx_mask_supported(struct pci_dev *dev); >bool pci_check_and_mask_intx(struct pci_dev *dev); >bool pci_check_and_unmask_intx(struct pci_dev *dev); >void pci_msi_off(struct pci_dev *dev); >int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size); >int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask); >int pcix_get_max_mmrbc(struct pci_dev *dev); >int pcix_get_mmrbc(struct pci_dev *dev); >int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc); >int pcie_get_readrq(struct pci_dev *dev); >int pcie_set_readrq(struct pci_dev *dev, int rq); >int pcie_get_mps(struct pci_dev *dev); >int pcie_set_mps(struct pci_dev *dev, int mps); >int __pci_reset_function(struct pci_dev *dev); >int __pci_reset_function_locked(struct pci_dev *dev); >int pci_reset_function(struct pci_dev *dev); >void pci_update_resource(struct pci_dev *dev, int resno); >int __attribute__((warn_unused_result)) pci_assign_resource(struct pci_dev *dev, int i); >int __attribute__((warn_unused_result)) pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align); >int pci_select_bars(struct pci_dev *dev, unsigned long flags); > > >int pci_enable_rom(struct pci_dev *pdev); >void pci_disable_rom(struct pci_dev *pdev); >void __attribute__((warn_unused_result)) *pci_map_rom(struct pci_dev *pdev, size_t *size); >void pci_unmap_rom(struct pci_dev *pdev, void *rom); >size_t pci_get_rom_size(struct pci_dev *pdev, void *rom, size_t size); > > >int pci_save_state(struct pci_dev *dev); >void pci_restore_state(struct pci_dev *dev); >struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev); >int pci_load_saved_state(struct pci_dev *dev, struct pci_saved_state *state); >int pci_load_and_free_saved_state(struct pci_dev *dev, > struct pci_saved_state **state); >int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state); >int pci_set_power_state(struct pci_dev *dev, pci_power_t state); >pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state); >bool pci_pme_capable(struct pci_dev *dev, pci_power_t state); >void pci_pme_active(struct pci_dev *dev, bool enable); >int __pci_enable_wake(struct pci_dev *dev, pci_power_t state, > bool runtime, bool enable); >int pci_wake_from_d3(struct pci_dev *dev, bool enable); >pci_power_t pci_target_state(struct pci_dev *dev); >int pci_prepare_to_sleep(struct pci_dev *dev); >int pci_back_from_sleep(struct pci_dev *dev); >bool pci_dev_run_wake(struct pci_dev *dev); >bool pci_check_pme_status(struct pci_dev *dev); >void pci_pme_wakeup_bus(struct pci_bus *bus); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_enable_wake(struct pci_dev *dev, pci_power_t state, > bool enable) >{ > return __pci_enable_wake(dev, state, false, enable); >} > > > >void pci_enable_ido(struct pci_dev *dev, unsigned long type); >void pci_disable_ido(struct pci_dev *dev, unsigned long type); > >enum pci_obff_signal_type { > PCI_EXP_OBFF_SIGNAL_L0 = 0, > PCI_EXP_OBFF_SIGNAL_ALWAYS = 1, >}; >int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type); >void pci_disable_obff(struct pci_dev *dev); > >int pci_enable_ltr(struct pci_dev *dev); >void pci_disable_ltr(struct pci_dev *dev); >int pci_set_ltr(struct pci_dev *dev, int snoop_lat_ns, int nosnoop_lat_ns); > > >void set_pcie_port_type(struct pci_dev *pdev); >void set_pcie_hotplug_bridge(struct pci_dev *pdev); > > >int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap); >unsigned int pci_rescan_bus_bridge_resize(struct pci_dev *bridge); >unsigned int pci_rescan_bus(struct pci_bus *bus); > > >ssize_t pci_read_vpd(struct pci_dev *dev, loff_t pos, size_t count, void *buf); >ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf); >int pci_vpd_truncate(struct pci_dev *dev, size_t size); > > >resource_size_t pcibios_retrieve_fw_addr(struct pci_dev *dev, int idx); >void pci_bus_assign_resources(const struct pci_bus *bus); >void pci_bus_size_bridges(struct pci_bus *bus); >int pci_claim_resource(struct pci_dev *, int); >void pci_assign_unassigned_resources(void); >void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge); >void pci_assign_unassigned_bus_resources(struct pci_bus *bus); >void pdev_enable_device(struct pci_dev *); >int pci_enable_resources(struct pci_dev *, int mask); >void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *), > int (*)(const struct pci_dev *, u8, u8)); > >int __attribute__((warn_unused_result)) pci_request_regions(struct pci_dev *, const char *); >int __attribute__((warn_unused_result)) pci_request_regions_exclusive(struct pci_dev *, const char *); >void pci_release_regions(struct pci_dev *); >int __attribute__((warn_unused_result)) pci_request_region(struct pci_dev *, int, const char *); >int __attribute__((warn_unused_result)) pci_request_region_exclusive(struct pci_dev *, int, const char *); >void pci_release_region(struct pci_dev *, int); >int pci_request_selected_regions(struct pci_dev *, int, const char *); >int pci_request_selected_regions_exclusive(struct pci_dev *, int, const char *); >void pci_release_selected_regions(struct pci_dev *, int); > > >void pci_add_resource(struct list_head *resources, struct resource *res); >void pci_add_resource_offset(struct list_head *resources, struct resource *res, > resource_size_t offset); >void pci_free_resource_list(struct list_head *resources); >void pci_bus_add_resource(struct pci_bus *bus, struct resource *res, unsigned int flags); >struct resource *pci_bus_resource_n(const struct pci_bus *bus, int n); >void pci_bus_remove_resources(struct pci_bus *bus); > > > > > > >int __attribute__((warn_unused_result)) pci_bus_alloc_resource(struct pci_bus *bus, > struct resource *res, resource_size_t size, > resource_size_t align, resource_size_t min, > unsigned int type_mask, > resource_size_t (*alignf)(void *, > const struct resource *, > resource_size_t, > resource_size_t), > void *alignf_data); >void pci_enable_bridges(struct pci_bus *bus); > > >int __attribute__((warn_unused_result)) __pci_register_driver(struct pci_driver *, struct module *, > const char *mod_name); > > > > > > > >void pci_unregister_driver(struct pci_driver *dev); ># 1046 "include/linux/pci.h" >struct pci_driver *pci_dev_driver(const struct pci_dev *dev); >int pci_add_dynid(struct pci_driver *drv, > unsigned int vendor, unsigned int device, > unsigned int subvendor, unsigned int subdevice, > unsigned int class, unsigned int class_mask, > unsigned long driver_data); >const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, > struct pci_dev *dev); >int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, > int pass); > >void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *), > void *userdata); >int pci_cfg_space_size_ext(struct pci_dev *dev); >int pci_cfg_space_size(struct pci_dev *dev); >unsigned char pci_bus_max_busnr(struct pci_bus *bus); >void pci_setup_bridge(struct pci_bus *bus); >resource_size_t pcibios_window_alignment(struct pci_bus *bus, > unsigned long type); > > > > >int pci_set_vga_state(struct pci_dev *pdev, bool decode, > unsigned int command_bits, u32 flags); > > ># 1 "include/linux/pci-dma.h" 1 ># 1074 "include/linux/pci.h" 2 ># 1 "include/linux/dmapool.h" 1 ># 15 "include/linux/dmapool.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/scatterlist.h" 1 ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/scatterlist.h" ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/scatterlist.h" 2 ># 1 "include/asm-generic/scatterlist.h" 1 > > > > > >struct scatterlist { > > > > unsigned long page_link; > unsigned int offset; > unsigned int length; > dma_addr_t dma_address; > > > >}; ># 11 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/scatterlist.h" 2 ># 16 "include/linux/dmapool.h" 2 > >struct dma_pool *dma_pool_create(const char *name, struct device *dev, > size_t size, size_t align, size_t allocation); > >void dma_pool_destroy(struct dma_pool *pool); > >void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, > dma_addr_t *handle); > >void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr); > > > > >struct dma_pool *dmam_pool_create(const char *name, struct device *dev, > size_t size, size_t align, size_t allocation); >void dmam_pool_destroy(struct dma_pool *pool); ># 1075 "include/linux/pci.h" 2 ># 1083 "include/linux/pci.h" >enum pci_dma_burst_strategy { > PCI_DMA_BURST_INFINITY, > > PCI_DMA_BURST_BOUNDARY, > > PCI_DMA_BURST_MULTIPLE, > >}; > >struct msix_entry { > u32 vector; > u16 entry; >}; > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec) >{ > return -1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_msi_shutdown(struct pci_dev *dev) >{ } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_disable_msi(struct pci_dev *dev) >{ } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_msix_table_size(struct pci_dev *dev) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_enable_msix(struct pci_dev *dev, > struct msix_entry *entries, int nvec) >{ > return -1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_msix_shutdown(struct pci_dev *dev) >{ } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_disable_msix(struct pci_dev *dev) >{ } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void msi_remove_pci_irq_vectors(struct pci_dev *dev) >{ } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_restore_msi_state(struct pci_dev *dev) >{ } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_msi_enabled(void) >{ > return 0; >} ># 1156 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcie_aspm_enabled(void) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool pcie_aspm_support_enabled(void) { return false; } ># 1167 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_no_aer(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool pci_aer_available(void) { return false; } > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pcie_set_ecrc_checking(struct pci_dev *dev) >{ > return; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pcie_ecrc_get_policy(char *str) {}; ># 1190 "include/linux/pci.h" >extern void pci_cfg_access_lock(struct pci_dev *dev); >extern bool pci_cfg_access_trylock(struct pci_dev *dev); >extern void pci_cfg_access_unlock(struct pci_dev *dev); ># 1202 "include/linux/pci.h" >enum { pci_domains_supported = 0 }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_domain_nr(struct pci_bus *bus) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_proc_domain(struct pci_bus *bus) >{ > return 0; >} > > > >typedef int (*arch_set_vga_state_t)(struct pci_dev *pdev, bool decode, > unsigned int command_bits, u32 flags); >extern void pci_register_set_vga_state(arch_set_vga_state_t func); ># 1422 "include/linux/pci.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" 1 > > > > ># 1 "include/asm-generic/pci-dma-compat.h" 1 > > > > > > ># 1 "include/linux/dma-mapping.h" 1 > > > > > ># 1 "include/linux/err.h" 1 > > > > > ># 1 "arch/arm/include/generated/asm/errno.h" 1 ># 7 "include/linux/err.h" 2 ># 22 "include/linux/err.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void * __attribute__((warn_unused_result)) ERR_PTR(long error) >{ > return (void *) error; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long __attribute__((warn_unused_result)) PTR_ERR(const void *ptr) >{ > return (long) ptr; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long __attribute__((warn_unused_result)) IS_ERR(const void *ptr) >{ > return __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) long __attribute__((warn_unused_result)) IS_ERR_OR_NULL(const void *ptr) >{ > return !ptr || __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0); >} ># 49 "include/linux/err.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void * __attribute__((warn_unused_result)) ERR_CAST(const void *ptr) >{ > > return (void *) ptr; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) PTR_RET(const void *ptr) >{ > if (IS_ERR(ptr)) > return PTR_ERR(ptr); > else > return 0; >} ># 7 "include/linux/dma-mapping.h" 2 ># 1 "include/linux/dma-attrs.h" 1 ># 13 "include/linux/dma-attrs.h" >enum dma_attr { > DMA_ATTR_WRITE_BARRIER, > DMA_ATTR_WEAK_ORDERING, > DMA_ATTR_WRITE_COMBINE, > DMA_ATTR_NON_CONSISTENT, > DMA_ATTR_NO_KERNEL_MAPPING, > DMA_ATTR_SKIP_CPU_SYNC, > DMA_ATTR_FORCE_CONTIGUOUS, > DMA_ATTR_MAX, >}; > > > > > > > >struct dma_attrs { > unsigned long flags[(((DMA_ATTR_MAX) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; >}; > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_dma_attrs(struct dma_attrs *attrs) >{ > bitmap_zero(attrs->flags, (((DMA_ATTR_MAX) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs) >{ > if (attrs == ((void *)0)) > return; > do { if (__builtin_expect(!!(attr >= DMA_ATTR_MAX), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/dma-attrs.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "54" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > __set_bit(attr, attrs->flags); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_get_attr(enum dma_attr attr, struct dma_attrs *attrs) >{ > if (attrs == ((void *)0)) > return 0; > do { if (__builtin_expect(!!(attr >= DMA_ATTR_MAX), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/dma-attrs.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "67" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > return test_bit(attr, attrs->flags); >} ># 8 "include/linux/dma-mapping.h" 2 ># 1 "include/linux/dma-direction.h" 1 > > > > > > >enum dma_data_direction { > DMA_BIDIRECTIONAL = 0, > DMA_TO_DEVICE = 1, > DMA_FROM_DEVICE = 2, > DMA_NONE = 3, >}; ># 9 "include/linux/dma-mapping.h" 2 ># 1 "include/linux/scatterlist.h" 1 > > > > > ># 1 "include/linux/mm.h" 1 ># 14 "include/linux/mm.h" ># 1 "include/linux/debug_locks.h" 1 > > > > > > > >struct task_struct; > >extern int debug_locks; >extern int debug_locks_silent; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __debug_locks_off(void) >{ > return ((__typeof__(*(&debug_locks)))__xchg((unsigned long)(0),(&debug_locks),sizeof(*(&debug_locks)))); >} > > > > >extern int debug_locks_off(void); ># 48 "include/linux/debug_locks.h" >struct task_struct; > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_show_all_locks(void) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_show_held_locks(struct task_struct *task) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_check_no_locks_freed(const void *from, unsigned long len) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >debug_check_no_locks_held(struct task_struct *task) >{ >} ># 15 "include/linux/mm.h" 2 ># 1 "include/linux/mm_types.h" 1 > > > ># 1 "include/linux/auxvec.h" 1 > > > ># 1 "include/uapi/linux/auxvec.h" 1 > > > ># 1 "arch/arm/include/generated/asm/auxvec.h" 1 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/auxvec.h" 1 ># 1 "arch/arm/include/generated/asm/auxvec.h" 2 ># 5 "include/uapi/linux/auxvec.h" 2 ># 5 "include/linux/auxvec.h" 2 ># 5 "include/linux/mm_types.h" 2 ># 13 "include/linux/mm_types.h" ># 1 "include/linux/page-debug-flags.h" 1 ># 14 "include/linux/page-debug-flags.h" >enum page_debug_flags { > PAGE_DEBUG_FLAG_POISON, > PAGE_DEBUG_FLAG_GUARD, >}; ># 14 "include/linux/mm_types.h" 2 ># 1 "include/linux/uprobes.h" 1 ># 30 "include/linux/uprobes.h" >struct vm_area_struct; >struct mm_struct; >struct inode; > > > > > >struct uprobe_consumer { > int (*handler)(struct uprobe_consumer *self, struct pt_regs *regs); > > > > > bool (*filter)(struct uprobe_consumer *self, struct task_struct *task); > > struct uprobe_consumer *next; >}; ># 113 "include/linux/uprobes.h" >struct uprobes_state { >}; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) >{ > return -38; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int uprobe_mmap(struct vm_area_struct *vma) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_start_dup_mmap(void) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_end_dup_mmap(void) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_notify_resume(struct pt_regs *regs) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool uprobe_deny_signal(void) >{ > return false; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long uprobe_get_swbp_addr(struct pt_regs *regs) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_free_utask(struct task_struct *t) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_copy_process(struct task_struct *t) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void uprobe_clear_state(struct mm_struct *mm) >{ >} ># 15 "include/linux/mm_types.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/mmu.h" 1 > > > > > >typedef struct { > > u64 id; > > unsigned int vmalloc_seq; >} mm_context_t; ># 17 "include/linux/mm_types.h" 2 > > > > > > >struct address_space; ># 40 "include/linux/mm_types.h" >struct page { > > unsigned long flags; > > struct address_space *mapping; > > > > > > > > struct { > union { > unsigned long index; > void *freelist; > bool pfmemalloc; ># 65 "include/linux/mm_types.h" > }; > > union { ># 78 "include/linux/mm_types.h" > unsigned counters; > > > struct { > > union { ># 100 "include/linux/mm_types.h" > atomic_t _mapcount; > > struct { > unsigned inuse:16; > unsigned objects:15; > unsigned frozen:1; > }; > int units; > }; > atomic_t _count; > }; > }; > }; > > > union { > struct list_head lru; > > > struct { > struct page *next; > > > > > short int pages; > short int pobjects; > > }; > > struct list_head list; > struct slab *slab_page; > }; > > > union { > unsigned long private; > > > > > > > > spinlock_t ptl; > > struct kmem_cache *slab_cache; > struct page *first_page; > }; ># 179 "include/linux/mm_types.h" >} > > > > > > > >; > >struct page_frag { > struct page *page; > > > > > __u16 offset; > __u16 size; > >}; > >typedef unsigned long vm_flags_t; > > > > > > >struct vm_region { > struct rb_node vm_rb; > vm_flags_t vm_flags; > unsigned long vm_start; > unsigned long vm_end; > unsigned long vm_top; > unsigned long vm_pgoff; > struct file *vm_file; > > int vm_usage; > bool vm_icache_flushed : 1; > >}; > > > > > > > >struct vm_area_struct { > > > unsigned long vm_start; > unsigned long vm_end; > > > > struct vm_area_struct *vm_next, *vm_prev; > > struct rb_node vm_rb; > > > > > > > > unsigned long rb_subtree_gap; > > > > struct mm_struct *vm_mm; > pgprot_t vm_page_prot; > unsigned long vm_flags; > > > > > > > union { > struct { > struct rb_node rb; > unsigned long rb_subtree_last; > } linear; > struct list_head nonlinear; > } shared; > > > > > > > > struct list_head anon_vma_chain; > > struct anon_vma *anon_vma; > > > const struct vm_operations_struct *vm_ops; > > > unsigned long vm_pgoff; > > struct file * vm_file; > void * vm_private_data; > > > > > > > >}; > >struct core_thread { > struct task_struct *task; > struct core_thread *next; >}; > >struct core_state { > atomic_t nr_threads; > struct core_thread dumper; > struct completion startup; >}; > >enum { > MM_FILEPAGES, > MM_ANONPAGES, > MM_SWAPENTS, > NR_MM_COUNTERS >}; > > > > >struct task_rss_stat { > int events; > int count[NR_MM_COUNTERS]; >}; > > >struct mm_rss_stat { > atomic_long_t count[NR_MM_COUNTERS]; >}; > >struct mm_struct { > struct vm_area_struct * mmap; > struct rb_root mm_rb; > struct vm_area_struct * mmap_cache; > > unsigned long (*get_unmapped_area) (struct file *filp, > unsigned long addr, unsigned long len, > unsigned long pgoff, unsigned long flags); > void (*unmap_area) (struct mm_struct *mm, unsigned long addr); > > unsigned long mmap_base; > unsigned long task_size; > unsigned long cached_hole_size; > unsigned long free_area_cache; > unsigned long highest_vm_end; > pgd_t * pgd; > atomic_t mm_users; > atomic_t mm_count; > int map_count; > > spinlock_t page_table_lock; > struct rw_semaphore mmap_sem; > > struct list_head mmlist; > > > > > > unsigned long hiwater_rss; > unsigned long hiwater_vm; > > unsigned long total_vm; > unsigned long locked_vm; > unsigned long pinned_vm; > unsigned long shared_vm; > unsigned long exec_vm; > unsigned long stack_vm; > unsigned long def_flags; > unsigned long nr_ptes; > unsigned long start_code, end_code, start_data, end_data; > unsigned long start_brk, brk, start_stack; > unsigned long arg_start, arg_end, env_start, env_end; > > unsigned long saved_auxv[(2*(0 + 19 + 1))]; > > > > > > struct mm_rss_stat rss_stat; > > struct linux_binfmt *binfmt; > > cpumask_var_t cpu_vm_mask_var; > > > mm_context_t context; > > unsigned long flags; > > struct core_state *core_state; > > spinlock_t ioctx_lock; > struct hlist_head ioctx_list; ># 401 "include/linux/mm_types.h" > struct task_struct *owner; > > > > struct file *exe_file; ># 438 "include/linux/mm_types.h" > struct uprobes_state uprobes_state; >}; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mm_init_cpumask(struct mm_struct *mm) >{ > > > >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) cpumask_t *mm_cpumask(struct mm_struct *mm) >{ > return mm->cpu_vm_mask_var; >} ># 16 "include/linux/mm.h" 2 ># 1 "include/linux/range.h" 1 > > > >struct range { > u64 start; > u64 end; >}; > >int add_range(struct range *range, int az, int nr_range, > u64 start, u64 end); > > >int add_range_with_merge(struct range *range, int az, int nr_range, > u64 start, u64 end); > >void subtract_range(struct range *range, int az, u64 start, u64 end); > >int clean_sort_range(struct range *range, int az); > >void sort_range(struct range *range, int nr_range); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) resource_size_t cap_resource(u64 val) >{ > if (val > ((resource_size_t)~0)) > return ((resource_size_t)~0); > > return val; >} ># 17 "include/linux/mm.h" 2 > ># 1 "include/linux/bit_spinlock.h" 1 ># 15 "include/linux/bit_spinlock.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bit_spin_lock(int bitnum, unsigned long *addr) >{ > > > > > > > > do { } while (0); > > while (__builtin_expect(!!(_test_and_set_bit(bitnum,addr)), 0)) { > do { } while (0); > do { > __asm__ __volatile__ ("dmb" : : : "memory"); > } while (test_bit(bitnum, addr)); > do { } while (0); > } > > (void)0; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bit_spin_trylock(int bitnum, unsigned long *addr) >{ > do { } while (0); > > if (__builtin_expect(!!(_test_and_set_bit(bitnum,addr)), 0)) { > do { } while (0); > return 0; > } > > (void)0; > return 1; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bit_spin_unlock(int bitnum, unsigned long *addr) >{ > > > > > do { __asm__ __volatile__ ("dmb" : : : "memory"); _clear_bit(bitnum,addr); } while (0); > > do { } while (0); > (void)0; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __bit_spin_unlock(int bitnum, unsigned long *addr) >{ > > > > > do { __asm__ __volatile__ ("dmb" : : : "memory"); __clear_bit(bitnum, addr); } while (0); > > do { } while (0); > (void)0; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bit_spin_is_locked(int bitnum, unsigned long *addr) >{ > > return test_bit(bitnum, addr); > > > > > >} ># 19 "include/linux/mm.h" 2 ># 1 "include/linux/shrinker.h" 1 > > > > > > > >struct shrink_control { > gfp_t gfp_mask; > > > unsigned long nr_to_scan; >}; ># 30 "include/linux/shrinker.h" >struct shrinker { > int (*shrink)(struct shrinker *, struct shrink_control *sc); > int seeks; > long batch; > > > struct list_head list; > atomic_long_t nr_in_batch; >}; > >extern void register_shrinker(struct shrinker *); >extern void unregister_shrinker(struct shrinker *); ># 20 "include/linux/mm.h" 2 > >struct mempolicy; >struct anon_vma; >struct anon_vma_chain; >struct file_ra_state; >struct user_struct; >struct writeback_control; > > >extern unsigned long max_mapnr; > > >extern unsigned long num_physpages; >extern unsigned long totalram_pages; >extern void * high_memory; >extern int page_cluster; > > >extern int sysctl_legacy_va_layout; > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 1 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/proc-fns.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/proc-fns.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-proc.h" 1 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-proc.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue.h" 1 ># 15 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-proc.h" 2 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/proc-fns.h" 2 > > > > >struct mm_struct; > > > > >extern struct processor { > > > > void (*_data_abort)(unsigned long pc); > > > > unsigned long (*_prefetch_abort)(unsigned long lr); > > > > void (*_proc_init)(void); > > > > void (*_proc_fin)(void); > > > > void (*reset)(unsigned long addr) __attribute__((noreturn)); > > > > int (*_do_idle)(void); > > > > > > > > void (*dcache_clean_area)(void *addr, int size); > > > > > void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm); > > > > > > > > void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext); > > > > unsigned int suspend_size; > void (*do_suspend)(void *); > void (*do_resume)(void *); >} processor; > > >extern void cpu_v7_proc_init(void); >extern void cpu_v7_proc_fin(void); >extern int cpu_v7_do_idle(void); >extern void cpu_v7_dcache_clean_area(void *, int); >extern void cpu_v7_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); > > > >extern void cpu_v7_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); > >extern void cpu_v7_reset(unsigned long addr) __attribute__((noreturn)); > > >extern void cpu_v7_do_suspend(void *); >extern void cpu_v7_do_resume(void *); ># 110 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/proc-fns.h" >extern void cpu_resume(void); ># 15 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 2 ># 23 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" ># 1 "include/asm-generic/pgtable-nopud.h" 1 ># 13 "include/asm-generic/pgtable-nopud.h" >typedef struct { pgd_t pgd; } pud_t; ># 25 "include/asm-generic/pgtable-nopud.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pgd_none(pgd_t pgd) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pgd_bad(pgd_t pgd) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pgd_present(pgd_t pgd) { return 1; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgd_clear(pgd_t *pgd) { } ># 38 "include/asm-generic/pgtable-nopud.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pud_t * pud_offset(pgd_t * pgd, unsigned long address) >{ > return (pud_t *)pgd; >} ># 24 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-hwdef.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-hwdef.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level-hwdef.h" 1 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-hwdef.h" 2 ># 26 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 2 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level.h" 1 ># 158 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable-2level.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pmd_t *pmd_offset(pud_t *pud, unsigned long addr) >{ > return (pmd_t *)pud; >} ># 31 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 2 ># 48 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >extern void __pte_error(const char *file, int line, pte_t); >extern void __pmd_error(const char *file, int line, pmd_t); >extern void __pgd_error(const char *file, int line, pgd_t); ># 71 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >extern pgprot_t pgprot_user; >extern pgprot_t pgprot_kernel; ># 110 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >struct file; >extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, > unsigned long size, pgprot_t vma_prot); ># 151 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >extern struct page *empty_zero_page; > > > >extern pgd_t swapper_pg_dir[2048]; ># 168 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t *pmd_page_vaddr(pmd_t pmd) >{ > return ((void *)__phys_to_virt((unsigned long)((pmd) & (~0UL) & (s32)(~(((1UL) << 12)-1))))); >} ># 213 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" >extern void __sync_icache_dcache(pte_t pteval); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_pte_at(struct mm_struct *mm, unsigned long addr, > pte_t *ptep, pte_t pteval) >{ > unsigned long ext = 0; > > if (addr < ((0xC0000000UL) - (0x01000000UL)) && (((pteval) & (((pteval_t)(1)) << 0)) && ((pteval) & (((pteval_t)(1)) << 8)))) { > __sync_icache_dcache(pteval); > ext |= (((pteval_t)(1)) << 11); > } > > cpu_v7_set_pte_ext(ptep,pteval,ext); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_wrprotect(pte_t pte) { (pte) |= (((pteval_t)(1)) << 7); return pte; }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkwrite(pte_t pte) { (pte) &= ~(((pteval_t)(1)) << 7); return pte; }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkclean(pte_t pte) { (pte) &= ~(((pteval_t)(1)) << 6); return pte; }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkdirty(pte_t pte) { (pte) |= (((pteval_t)(1)) << 6); return pte; }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkold(pte_t pte) { (pte) &= ~(((pteval_t)(1)) << 1); return pte; }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkyoung(pte_t pte) { (pte) |= (((pteval_t)(1)) << 1); return pte; }; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mkspecial(pte_t pte) { return pte; } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_modify(pte_t pte, pgprot_t newprot) >{ > const pteval_t mask = (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << 7) | (((pteval_t)(1)) << 8) | (((pteval_t)(1)) << 11); > (pte) = ((pte) & ~mask) | ((newprot) & mask); > return pte; >} ># 296 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" ># 1 "include/asm-generic/pgtable.h" 1 ># 11 "include/asm-generic/pgtable.h" >extern int ptep_set_access_flags(struct vm_area_struct *vma, > unsigned long address, pte_t *ptep, > pte_t entry, int dirty); > > > >extern int pmdp_set_access_flags(struct vm_area_struct *vma, > unsigned long address, pmd_t *pmdp, > pmd_t entry, int dirty); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ptep_test_and_clear_young(struct vm_area_struct *vma, > unsigned long address, > pte_t *ptep) >{ > pte_t pte = *ptep; > int r = 1; > if (!((pte) & (((pteval_t)(1)) << 1))) > r = 0; > else > set_pte_at(vma->vm_mm, address, ptep, pte_mkold(pte)); > return r; >} ># 52 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmdp_test_and_clear_young(struct vm_area_struct *vma, > unsigned long address, > pmd_t *pmdp) >{ > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/pgtable.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "56" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > return 0; >} > > > > >int ptep_clear_flush_young(struct vm_area_struct *vma, > unsigned long address, pte_t *ptep); > > > >int pmdp_clear_flush_young(struct vm_area_struct *vma, > unsigned long address, pmd_t *pmdp); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t ptep_get_and_clear(struct mm_struct *mm, > unsigned long address, > pte_t *ptep) >{ > pte_t pte = *ptep; > cpu_v7_set_pte_ext(ptep,(0),0); > return pte; >} ># 97 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t ptep_get_and_clear_full(struct mm_struct *mm, > unsigned long address, pte_t *ptep, > int full) >{ > pte_t pte; > pte = ptep_get_and_clear(mm, address, ptep); > return pte; >} ># 113 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pte_clear_not_present_full(struct mm_struct *mm, > unsigned long address, > pte_t *ptep, > int full) >{ > cpu_v7_set_pte_ext(ptep,(0),0); >} > > > >extern pte_t ptep_clear_flush(struct vm_area_struct *vma, > unsigned long address, > pte_t *ptep); > > > >extern pmd_t pmdp_clear_flush(struct vm_area_struct *vma, > unsigned long address, > pmd_t *pmdp); > > > >struct mm_struct; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep) >{ > pte_t old_pte = *ptep; > set_pte_at(mm, address, ptep, pte_wrprotect(old_pte)); >} ># 152 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pmdp_set_wrprotect(struct mm_struct *mm, > unsigned long address, pmd_t *pmdp) >{ > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/pgtable.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "155" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); >} > > > > >extern void pmdp_splitting_flush(struct vm_area_struct *vma, > unsigned long address, pmd_t *pmdp); > > > >extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pgtable_t pgtable); > > > >extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm); > > > >extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, > pmd_t *pmdp); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pte_same(pte_t pte_a, pte_t pte_b) >{ > return (pte_a) == (pte_b); >} ># 192 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_same(pmd_t pmd_a, pmd_t pmd_b) >{ > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/pgtable.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "194" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > return 0; >} ># 268 "include/asm-generic/pgtable.h" >void pgd_clear_bad(pgd_t *); >void pud_clear_bad(pud_t *); >void pmd_clear_bad(pmd_t *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pgd_none_or_clear_bad(pgd_t *pgd) >{ > if (pgd_none(*pgd)) > return 1; > if (__builtin_expect(!!(pgd_bad(*pgd)), 0)) { > pgd_clear_bad(pgd); > return 1; > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pud_none_or_clear_bad(pud_t *pud) >{ > if ((0)) > return 1; > if (__builtin_expect(!!((0)), 0)) { > pud_clear_bad(pud); > return 1; > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_none_or_clear_bad(pmd_t *pmd) >{ > if ((!(*pmd))) > return 1; > if (__builtin_expect(!!(((*pmd) & 2)), 0)) { > pmd_clear_bad(pmd); > return 1; > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t __ptep_modify_prot_start(struct mm_struct *mm, > unsigned long addr, > pte_t *ptep) >{ > > > > > > return ptep_get_and_clear(mm, addr, ptep); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ptep_modify_prot_commit(struct mm_struct *mm, > unsigned long addr, > pte_t *ptep, pte_t pte) >{ > > > > > set_pte_at(mm, addr, ptep, pte); >} ># 343 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t ptep_modify_prot_start(struct mm_struct *mm, > unsigned long addr, > pte_t *ptep) >{ > return __ptep_modify_prot_start(mm, addr, ptep); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ptep_modify_prot_commit(struct mm_struct *mm, > unsigned long addr, > pte_t *ptep, pte_t pte) >{ > __ptep_modify_prot_commit(mm, addr, ptep, pte); >} ># 410 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, > unsigned long pfn, unsigned long addr, > unsigned long size) >{ > return 0; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, > unsigned long pfn) >{ > return 0; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int track_pfn_copy(struct vm_area_struct *vma) >{ > return 0; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void untrack_pfn(struct vm_area_struct *vma, > unsigned long pfn, unsigned long size) >{ >} ># 467 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_zero_pfn(unsigned long pfn) >{ > extern unsigned long zero_pfn; > return pfn == zero_pfn; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long my_zero_pfn(unsigned long addr) >{ > extern unsigned long zero_pfn; > return zero_pfn; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_trans_huge(pmd_t pmd) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_trans_splitting(pmd_t pmd) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_write(pmd_t pmd) >{ > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/pgtable.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "494" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > return 0; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pmd_t pmd_read_atomic(pmd_t *pmdp) >{ > > > > > > return *pmdp; >} ># 533 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd) >{ > pmd_t pmdval = pmd_read_atomic(pmd); ># 553 "include/asm-generic/pgtable.h" > if ((!(pmdval))) > return 1; > if (__builtin_expect(!!(((pmdval) & 2)), 0)) { > if (!pmd_trans_huge(pmdval)) > pmd_clear_bad(pmd); > return 1; > } > return 0; >} ># 576 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_trans_unstable(pmd_t *pmd) >{ > > > > return 0; > >} ># 660 "include/asm-generic/pgtable.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_numa(pmd_t pmd) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pte_numa(pte_t pte) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mknonnuma(pte_t pte) >{ > return pte; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pmd_t pmd_mknonnuma(pmd_t pmd) >{ > return pmd; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t pte_mknuma(pte_t pte) >{ > return pte; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pmd_t pmd_mknuma(pmd_t pmd) >{ > return pmd; >} ># 297 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pgtable.h" 2 ># 45 "include/linux/mm.h" 2 ># 61 "include/linux/mm.h" >extern struct kmem_cache *vm_area_cachep; ># 156 "include/linux/mm.h" >extern pgprot_t protection_map[16]; ># 174 "include/linux/mm.h" >struct vm_fault { > unsigned int flags; > unsigned long pgoff; > void *virtual_address; > > struct page *page; > > > > >}; > > > > > > >struct vm_operations_struct { > void (*open)(struct vm_area_struct * area); > void (*close)(struct vm_area_struct * area); > int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf); > > > > int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf); > > > > > int (*access)(struct vm_area_struct *vma, unsigned long addr, > void *buf, int len, int write); ># 231 "include/linux/mm.h" > int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr, > unsigned long size, unsigned long pgoff); >}; > >struct mmu_gather; >struct inode; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_freepage_migratetype(struct page *page, int migratetype) >{ > page->index = migratetype; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_freepage_migratetype(struct page *page) >{ > return page->index; >} > > > > > ># 1 "include/linux/page-flags.h" 1 ># 74 "include/linux/page-flags.h" >enum pageflags { > PG_locked, > PG_error, > PG_referenced, > PG_uptodate, > PG_dirty, > PG_lru, > PG_active, > PG_slab, > PG_owner_priv_1, > PG_arch_1, > PG_reserved, > PG_private, > PG_private_2, > PG_writeback, > > PG_head, > PG_tail, > > > > PG_swapcache, > PG_mappedtodisk, > PG_reclaim, > PG_swapbacked, > PG_unevictable, > > PG_mlocked, ># 112 "include/linux/page-flags.h" > __NR_PAGEFLAGS, > > > PG_checked = PG_owner_priv_1, > > > > > > PG_fscache = PG_private_2, > > > PG_pinned = PG_owner_priv_1, > PG_savepinned = PG_dirty, > > > PG_slob_free = PG_private, >}; ># 196 "include/linux/page-flags.h" >struct page; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageLocked(const struct page *page) { return test_bit(PG_locked, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageError(const struct page *page) { return test_bit(PG_error, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageError(struct page *page) { _set_bit(PG_error,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageError(struct page *page) { _clear_bit(PG_error,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageError(struct page *page) { return _test_and_clear_bit(PG_error,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageReferenced(const struct page *page) { return test_bit(PG_referenced, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageReferenced(struct page *page) { _set_bit(PG_referenced,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageReferenced(struct page *page) { _clear_bit(PG_referenced,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageReferenced(struct page *page) { return _test_and_clear_bit(PG_referenced,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageDirty(const struct page *page) { return test_bit(PG_dirty, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageDirty(struct page *page) { _set_bit(PG_dirty,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageDirty(struct page *page) { _clear_bit(PG_dirty,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestSetPageDirty(struct page *page) { return _test_and_set_bit(PG_dirty,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageDirty(struct page *page) { return _test_and_clear_bit(PG_dirty,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageDirty(struct page *page) { __clear_bit(PG_dirty, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageLRU(const struct page *page) { return test_bit(PG_lru, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageLRU(struct page *page) { _set_bit(PG_lru,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageLRU(struct page *page) { _clear_bit(PG_lru,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageLRU(struct page *page) { __clear_bit(PG_lru, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageActive(const struct page *page) { return test_bit(PG_active, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageActive(struct page *page) { _set_bit(PG_active,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageActive(struct page *page) { _clear_bit(PG_active,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageActive(struct page *page) { __clear_bit(PG_active, &page->flags); } > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageActive(struct page *page) { return _test_and_clear_bit(PG_active,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSlab(const struct page *page) { return test_bit(PG_slab, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageSlab(struct page *page) { __set_bit(PG_slab, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageSlab(struct page *page) { __clear_bit(PG_slab, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageChecked(const struct page *page) { return test_bit(PG_checked, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageChecked(struct page *page) { _set_bit(PG_checked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageChecked(struct page *page) { _clear_bit(PG_checked,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PagePinned(const struct page *page) { return test_bit(PG_pinned, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPagePinned(struct page *page) { _set_bit(PG_pinned,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPagePinned(struct page *page) { _clear_bit(PG_pinned,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestSetPagePinned(struct page *page) { return _test_and_set_bit(PG_pinned,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPagePinned(struct page *page) { return _test_and_clear_bit(PG_pinned,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSavePinned(const struct page *page) { return test_bit(PG_savepinned, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageSavePinned(struct page *page) { _set_bit(PG_savepinned,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageSavePinned(struct page *page) { _clear_bit(PG_savepinned,&page->flags); }; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageReserved(const struct page *page) { return test_bit(PG_reserved, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageReserved(struct page *page) { _set_bit(PG_reserved,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageReserved(struct page *page) { _clear_bit(PG_reserved,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageReserved(struct page *page) { __clear_bit(PG_reserved, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSwapBacked(const struct page *page) { return test_bit(PG_swapbacked, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageSwapBacked(struct page *page) { _set_bit(PG_swapbacked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageSwapBacked(struct page *page) { _clear_bit(PG_swapbacked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageSwapBacked(struct page *page) { __clear_bit(PG_swapbacked, &page->flags); } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSlobFree(const struct page *page) { return test_bit(PG_slob_free, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageSlobFree(struct page *page) { __set_bit(PG_slob_free, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageSlobFree(struct page *page) { __clear_bit(PG_slob_free, &page->flags); } > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PagePrivate(const struct page *page) { return test_bit(PG_private, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPagePrivate(struct page *page) { _set_bit(PG_private,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPagePrivate(struct page *page) { _clear_bit(PG_private,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPagePrivate(struct page *page) { __set_bit(PG_private, &page->flags); } > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPagePrivate(struct page *page) { __clear_bit(PG_private, &page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PagePrivate2(const struct page *page) { return test_bit(PG_private_2, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPagePrivate2(struct page *page) { _set_bit(PG_private_2,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPagePrivate2(struct page *page) { _clear_bit(PG_private_2,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestSetPagePrivate2(struct page *page) { return _test_and_set_bit(PG_private_2,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPagePrivate2(struct page *page) { return _test_and_clear_bit(PG_private_2,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageOwnerPriv1(const struct page *page) { return test_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageOwnerPriv1(struct page *page) { _set_bit(PG_owner_priv_1,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageOwnerPriv1(struct page *page) { _clear_bit(PG_owner_priv_1,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageOwnerPriv1(struct page *page) { return _test_and_clear_bit(PG_owner_priv_1,&page->flags); } > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageWriteback(const struct page *page) { return test_bit(PG_writeback, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestSetPageWriteback(struct page *page) { return _test_and_set_bit(PG_writeback,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageWriteback(struct page *page) { return _test_and_clear_bit(PG_writeback,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageMappedToDisk(const struct page *page) { return test_bit(PG_mappedtodisk, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageMappedToDisk(struct page *page) { _set_bit(PG_mappedtodisk,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageMappedToDisk(struct page *page) { _clear_bit(PG_mappedtodisk,&page->flags); } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageReclaim(const struct page *page) { return test_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageReclaim(struct page *page) { _set_bit(PG_reclaim,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageReclaim(struct page *page) { _clear_bit(PG_reclaim,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageReclaim(struct page *page) { return _test_and_clear_bit(PG_reclaim,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageReadahead(const struct page *page) { return test_bit(PG_reclaim, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageReadahead(struct page *page) { _set_bit(PG_reclaim,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageReadahead(struct page *page) { _clear_bit(PG_reclaim,&page->flags); } ># 246 "include/linux/page-flags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSwapCache(const struct page *page) { return test_bit(PG_swapcache, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageSwapCache(struct page *page) { _set_bit(PG_swapcache,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageSwapCache(struct page *page) { _clear_bit(PG_swapcache,&page->flags); } > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageUnevictable(const struct page *page) { return test_bit(PG_unevictable, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageUnevictable(struct page *page) { _set_bit(PG_unevictable,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageUnevictable(struct page *page) { _clear_bit(PG_unevictable,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageUnevictable(struct page *page) { __clear_bit(PG_unevictable, &page->flags); } > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageUnevictable(struct page *page) { return _test_and_clear_bit(PG_unevictable,&page->flags); } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageMlocked(const struct page *page) { return test_bit(PG_mlocked, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageMlocked(struct page *page) { _set_bit(PG_mlocked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageMlocked(struct page *page) { _clear_bit(PG_mlocked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageMlocked(struct page *page) { __clear_bit(PG_mlocked, &page->flags); } > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestSetPageMlocked(struct page *page) { return _test_and_set_bit(PG_mlocked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int TestClearPageMlocked(struct page *page) { return _test_and_clear_bit(PG_mlocked,&page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __TestClearPageMlocked(struct page *page) { return __test_and_clear_bit(PG_mlocked, &page->flags); } ># 266 "include/linux/page-flags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageUncached(const struct page *page) { return 0; } > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageHWPoison(const struct page *page) { return 0; } > > > >u64 stable_page_flags(struct page *page); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageUptodate(struct page *page) >{ > int ret = test_bit(PG_uptodate, &(page)->flags); ># 292 "include/linux/page-flags.h" > if (ret) > __asm__ __volatile__ ("dmb" : : : "memory"); > > return ret; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageUptodate(struct page *page) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > __set_bit(PG_uptodate, &(page)->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageUptodate(struct page *page) >{ ># 318 "include/linux/page-flags.h" > __asm__ __volatile__ ("dmb" : : : "memory"); > _set_bit(PG_uptodate,&(page)->flags); > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageUptodate(struct page *page) { _clear_bit(PG_uptodate,&page->flags); } > >extern void cancel_dirty_page(struct page *page, unsigned int account_size); > >int test_clear_page_writeback(struct page *page); >int test_set_page_writeback(struct page *page); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_page_writeback(struct page *page) >{ > test_set_page_writeback(page); >} ># 342 "include/linux/page-flags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageHead(const struct page *page) { return test_bit(PG_head, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageHead(struct page *page) { __set_bit(PG_head, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageHead(struct page *page) { __clear_bit(PG_head, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageHead(struct page *page) { _clear_bit(PG_head,&page->flags); } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageTail(const struct page *page) { return test_bit(PG_tail, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageTail(struct page *page) { __set_bit(PG_tail, &page->flags); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageTail(struct page *page) { __clear_bit(PG_tail, &page->flags); } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageCompound(struct page *page) >{ > return page->flags & ((1L << PG_head) | (1L << PG_tail)); > >} ># 447 "include/linux/page-flags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageTransHuge(struct page *page) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageTransCompound(struct page *page) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageTransTail(struct page *page) >{ > return 0; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageSlabPfmemalloc(struct page *page) >{ > ({ int __ret_warn_on = !!(!PageSlab(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/page-flags.h", 469); __builtin_expect(!!(__ret_warn_on), 0); }); > return PageActive(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void SetPageSlabPfmemalloc(struct page *page) >{ > ({ int __ret_warn_on = !!(!PageSlab(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/page-flags.h", 475); __builtin_expect(!!(__ret_warn_on), 0); }); > SetPageActive(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageSlabPfmemalloc(struct page *page) >{ > ({ int __ret_warn_on = !!(!PageSlab(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/page-flags.h", 481); __builtin_expect(!!(__ret_warn_on), 0); }); > __ClearPageActive(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ClearPageSlabPfmemalloc(struct page *page) >{ > ({ int __ret_warn_on = !!(!PageSlab(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/page-flags.h", 487); __builtin_expect(!!(__ret_warn_on), 0); }); > ClearPageActive(page); >} ># 531 "include/linux/page-flags.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_has_private(struct page *page) >{ > return !!(page->flags & (1 << PG_private | 1 << PG_private_2)); >} ># 258 "include/linux/mm.h" 2 ># 1 "include/linux/huge_mm.h" 1 > > > >extern int do_huge_pmd_anonymous_page(struct mm_struct *mm, > struct vm_area_struct *vma, > unsigned long address, pmd_t *pmd, > unsigned int flags); >extern int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, > pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, > struct vm_area_struct *vma); >extern void huge_pmd_set_accessed(struct mm_struct *mm, > struct vm_area_struct *vma, > unsigned long address, pmd_t *pmd, > pmd_t orig_pmd, int dirty); >extern int do_huge_pmd_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, > unsigned long address, pmd_t *pmd, > pmd_t orig_pmd); >extern struct page *follow_trans_huge_pmd(struct vm_area_struct *vma, > unsigned long addr, > pmd_t *pmd, > unsigned int flags); >extern int zap_huge_pmd(struct mmu_gather *tlb, > struct vm_area_struct *vma, > pmd_t *pmd, unsigned long addr); >extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, > unsigned long addr, unsigned long end, > unsigned char *vec); >extern int move_huge_pmd(struct vm_area_struct *vma, > struct vm_area_struct *new_vma, > unsigned long old_addr, > unsigned long new_addr, unsigned long old_end, > pmd_t *old_pmd, pmd_t *new_pmd); >extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, > unsigned long addr, pgprot_t newprot, > int prot_numa); > >enum transparent_hugepage_flag { > TRANSPARENT_HUGEPAGE_FLAG, > TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG, > TRANSPARENT_HUGEPAGE_DEFRAG_FLAG, > TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, > TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG, > TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG, > > TRANSPARENT_HUGEPAGE_DEBUG_COW_FLAG, > >}; > >enum page_check_address_pmd_flag { > PAGE_CHECK_ADDRESS_PMD_FLAG, > PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG, > PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG, >}; >extern pmd_t *page_check_address_pmd(struct page *page, > struct mm_struct *mm, > unsigned long address, > enum page_check_address_pmd_flag flag); ># 189 "include/linux/huge_mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int split_huge_page(struct page *page) >{ > return 0; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hugepage_madvise(struct vm_area_struct *vma, > unsigned long *vm_flags, int advice) >{ > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/huge_mm.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "203" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vma_adjust_trans_huge(struct vm_area_struct *vma, > unsigned long start, > unsigned long end, > long adjust_next) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pmd_trans_huge_lock(pmd_t *pmd, > struct vm_area_struct *vma) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma, > unsigned long addr, pmd_t pmd, pmd_t *pmdp) >{ > return 0; >} ># 259 "include/linux/mm.h" 2 ># 276 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int put_page_testzero(struct page *page) >{ > ({ int __ret_warn_on = !!((*(volatile int *)&(&page->_count)->counter) == 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 278); __builtin_expect(!!(__ret_warn_on), 0); }); > return (atomic_sub_return(1, &page->_count) == 0); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_page_unless_zero(struct page *page) >{ > return atomic_add_unless((&page->_count), 1, 0); >} > >extern int page_is_ram(unsigned long pfn); > > >struct page *vmalloc_to_page(const void *addr); >unsigned long vmalloc_to_pfn(const void *addr); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_vmalloc_addr(const void *x) >{ > > unsigned long addr = (unsigned long)x; > > return addr >= (((unsigned long)high_memory + (8*1024*1024)) & ~((8*1024*1024)-1)) && addr < 0xff000000UL; > > > >} > >extern int is_vmalloc_or_module_addr(const void *x); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void compound_lock(struct page *page) >{ > > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void compound_unlock(struct page *page) >{ > > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long compound_lock_irqsave(struct page *page) >{ > unsigned long flags = flags; > > > > > return flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void compound_unlock_irqrestore(struct page *page, > unsigned long flags) >{ > > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *compound_head(struct page *page) >{ > if (__builtin_expect(!!(PageTail(page)), 0)) > return page->first_page; > return page; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void reset_page_mapcount(struct page *page) >{ > (((&(page)->_mapcount)->counter) = (-1)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_mapcount(struct page *page) >{ > return (*(volatile int *)&(&(page)->_mapcount)->counter) + 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_count(struct page *page) >{ > return (*(volatile int *)&(&compound_head(page)->_count)->counter); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void get_huge_page_tail(struct page *page) >{ > > > > > ({ int __ret_warn_on = !!(page_mapcount(page) < 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 390); __builtin_expect(!!(__ret_warn_on), 0); }); > ({ int __ret_warn_on = !!((*(volatile int *)&(&page->_count)->counter) != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 391); __builtin_expect(!!(__ret_warn_on), 0); }); > atomic_add(1, &page->_mapcount); >} > >extern bool __get_page_tail(struct page *page); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void get_page(struct page *page) >{ > if (__builtin_expect(!!(PageTail(page)), 0)) > if (__builtin_expect(!!(__get_page_tail(page)), 1)) > return; > > > > > ({ int __ret_warn_on = !!((*(volatile int *)&(&page->_count)->counter) <= 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 406); __builtin_expect(!!(__ret_warn_on), 0); }); > atomic_add(1, &page->_count); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *virt_to_head_page(const void *x) >{ > struct page *page = (mem_map + ((__virt_to_phys((unsigned long)(x)) >> 12) - (__pv_phys_offset >> 12))); > return compound_head(page); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_page_count(struct page *page) >{ > (((&page->_count)->counter) = (1)); >} ># 436 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageBuddy(struct page *page) >{ > return (*(volatile int *)&(&page->_mapcount)->counter) == (-128); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __SetPageBuddy(struct page *page) >{ > ({ int __ret_warn_on = !!((*(volatile int *)&(&page->_mapcount)->counter) != -1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 443); __builtin_expect(!!(__ret_warn_on), 0); }); > (((&page->_mapcount)->counter) = ((-128))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __ClearPageBuddy(struct page *page) >{ > ({ int __ret_warn_on = !!(!PageBuddy(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 449); __builtin_expect(!!(__ret_warn_on), 0); }); > (((&page->_mapcount)->counter) = (-1)); >} > >void put_page(struct page *page); >void put_pages_list(struct list_head *pages); > >void split_page(struct page *page, unsigned int order); >int split_free_page(struct page *page); > > > > > > >typedef void compound_page_dtor(struct page *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_compound_page_dtor(struct page *page, > compound_page_dtor *dtor) >{ > page[1].lru.next = (void *)dtor; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) compound_page_dtor *get_compound_page_dtor(struct page *page) >{ > return (compound_page_dtor *)page[1].lru.next; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int compound_order(struct page *page) >{ > if (!PageHead(page)) > return 0; > return (unsigned long)page[1].lru.prev; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int compound_trans_order(struct page *page) >{ > int order; > unsigned long flags; > > if (!PageHead(page)) > return 0; > > flags = compound_lock_irqsave(page); > order = compound_order(page); > compound_unlock_irqrestore(page, flags); > return order; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_compound_order(struct page *page, unsigned long order) >{ > page[1].lru.prev = (void *)order; >} ># 510 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) >{ > if (__builtin_expect(!!(vma->vm_flags & 0x00000002), 1)) > pte = pte_mkwrite(pte); > return pte; >} ># 659 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) enum zone_type page_zonenum(const struct page *page) >{ > return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0))) & ((1UL << 2) - 1); >} ># 672 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_zone_id(struct page *page) >{ > 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); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int zone_to_nid(struct zone *zone) >{ > > > > return 0; > >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_to_nid(const struct page *page) >{ > return (page->flags >> ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))) & ((1UL << 0) - 1); >} ># 710 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_xchg_last_nid(struct page *page, int nid) >{ > return page_to_nid(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_last_nid(struct page *page) >{ > return page_to_nid(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void reset_page_last_nid(struct page *page) >{ >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct zone *page_zone(const struct page *page) >{ > return &(&contig_page_data)->node_zones[page_zonenum(page)]; >} ># 743 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_page_zone(struct page *page, enum zone_type zone) >{ > page->flags &= ~(((1UL << 2) - 1) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0))); > page->flags |= (zone & ((1UL << 2) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 0) - 2) * (2 != 0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_page_node(struct page *page, unsigned long node) >{ > page->flags &= ~(((1UL << 0) - 1) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))); > page->flags |= (node & ((1UL << 0) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_page_links(struct page *page, enum zone_type zone, > unsigned long node, unsigned long pfn) >{ > set_page_zone(page, zone); > set_page_node(page, node); > > > >} > > > > ># 1 "include/linux/vmstat.h" 1 > > > > > ># 1 "include/linux/mm.h" 1 ># 7 "include/linux/vmstat.h" 2 > ># 1 "include/linux/vm_event_item.h" 1 ># 24 "include/linux/vm_event_item.h" >enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, > PGALLOC_NORMAL , PGALLOC_HIGH , PGALLOC_MOVABLE, > PGFREE, PGACTIVATE, PGDEACTIVATE, > PGFAULT, PGMAJFAULT, > PGREFILL_NORMAL , PGREFILL_HIGH , PGREFILL_MOVABLE, > PGSTEAL_KSWAPD_NORMAL , PGSTEAL_KSWAPD_HIGH , PGSTEAL_KSWAPD_MOVABLE, > PGSTEAL_DIRECT_NORMAL , PGSTEAL_DIRECT_HIGH , PGSTEAL_DIRECT_MOVABLE, > PGSCAN_KSWAPD_NORMAL , PGSCAN_KSWAPD_HIGH , PGSCAN_KSWAPD_MOVABLE, > PGSCAN_DIRECT_NORMAL , PGSCAN_DIRECT_HIGH , PGSCAN_DIRECT_MOVABLE, > PGSCAN_DIRECT_THROTTLE, > > > > PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, > KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, > KSWAPD_SKIP_CONGESTION_WAIT, > PAGEOUTRUN, ALLOCSTALL, PGROTATED, > > > > > > > > PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, > > > COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED, > COMPACTISOLATED, > COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, > > > > > UNEVICTABLE_PGCULLED, > UNEVICTABLE_PGSCANNED, > UNEVICTABLE_PGRESCUED, > UNEVICTABLE_PGMLOCKED, > UNEVICTABLE_PGMUNLOCKED, > UNEVICTABLE_PGCLEARED, > UNEVICTABLE_PGSTRANDED, ># 74 "include/linux/vm_event_item.h" > NR_VM_EVENT_ITEMS >}; ># 9 "include/linux/vmstat.h" 2 > > >extern int sysctl_stat_interval; ># 24 "include/linux/vmstat.h" >struct vm_event_state { > unsigned long event[NR_VM_EVENT_ITEMS]; >}; > >extern __attribute__((section(".data..percpu" ""))) __typeof__(struct vm_event_state) vm_event_states; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __count_vm_event(enum vm_event_item item) >{ > do { do { const void *__vpp_verify = (typeof(&(((vm_event_states.event[item])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof(((vm_event_states.event[item])))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void count_vm_event(enum vm_event_item item) >{ > do { do { const void *__vpp_verify = (typeof(&(((vm_event_states.event[item])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof(((vm_event_states.event[item])))) { case 1: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 2: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 4: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 8: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&((((vm_event_states.event[item])))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))); (typeof((typeof(*(&((((vm_event_states.event[item])))))) *)(&((((vm_event_states.event[item]))))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __count_vm_events(enum vm_event_item item, long delta) >{ > do { do { const void *__vpp_verify = (typeof(&((vm_event_states.event[item]))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((vm_event_states.event[item]))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void count_vm_events(enum vm_event_item item, long delta) >{ > do { do { const void *__vpp_verify = (typeof(&((vm_event_states.event[item]))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((vm_event_states.event[item]))) { case 1: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 2: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 4: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; case 8: do { unsigned long flags; do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); *({ do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item]))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))); (typeof((typeof(*(&(((vm_event_states.event[item]))))) *)(&(((vm_event_states.event[item])))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((delta)); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); >} > >extern void all_vm_events(unsigned long *); > >extern void vm_events_fold_cpu(int cpu); ># 98 "include/linux/vmstat.h" >extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zone_page_state_add(long x, struct zone *zone, > enum zone_stat_item item) >{ > atomic_long_add(x, &zone->vm_stat[item]); > atomic_long_add(x, &vm_stat[item]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long global_page_state(enum zone_stat_item item) >{ > long x = atomic_long_read(&vm_stat[item]); > > if (x < 0) > x = 0; > > return x; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long zone_page_state(struct zone *zone, > enum zone_stat_item item) >{ > long x = atomic_long_read(&zone->vm_stat[item]); > > if (x < 0) > x = 0; > > return x; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long zone_page_state_snapshot(struct zone *zone, > enum zone_stat_item item) >{ > long x = atomic_long_read(&zone->vm_stat[item]); > > > int cpu; > for (((cpu)) = -1; ((cpu)) = cpumask_next(((cpu)), (cpu_online_mask)), ((cpu)) < nr_cpu_ids;) > x += ({ do { const void *__vpp_verify = (typeof(((zone->pageset))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*((zone->pageset))) *)((zone->pageset)))); (typeof((typeof(*((zone->pageset))) *)((zone->pageset)))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->vm_stat_diff[item]; > > if (x < 0) > x = 0; > > return x; >} > >extern unsigned long global_reclaimable_pages(void); >extern unsigned long zone_reclaimable_pages(struct zone *zone); ># 190 "include/linux/vmstat.h" >extern void inc_zone_state(struct zone *, enum zone_stat_item); > > >void __mod_zone_page_state(struct zone *, enum zone_stat_item item, int); >void __inc_zone_page_state(struct page *, enum zone_stat_item); >void __dec_zone_page_state(struct page *, enum zone_stat_item); > >void mod_zone_page_state(struct zone *, enum zone_stat_item, int); >void inc_zone_page_state(struct page *, enum zone_stat_item); >void dec_zone_page_state(struct page *, enum zone_stat_item); > >extern void inc_zone_state(struct zone *, enum zone_stat_item); >extern void __inc_zone_state(struct zone *, enum zone_stat_item); >extern void dec_zone_state(struct zone *, enum zone_stat_item); >extern void __dec_zone_state(struct zone *, enum zone_stat_item); > >void refresh_cpu_vm_stats(int); >void refresh_zone_stat_thresholds(void); > >void drain_zonestat(struct zone *zone, struct per_cpu_pageset *); > >int calculate_pressure_threshold(struct zone *zone); >int calculate_normal_threshold(struct zone *zone); >void set_pgdat_percpu_threshold(pg_data_t *pgdat, > int (*calculate_pressure)(struct zone *)); ># 268 "include/linux/vmstat.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __mod_zone_freepage_state(struct zone *zone, int nr_pages, > int migratetype) >{ > __mod_zone_page_state(zone, NR_FREE_PAGES, nr_pages); > if (false) > __mod_zone_page_state(zone, NR_FREE_CMA_PAGES, nr_pages); >} > >extern const char * const vmstat_text[]; ># 769 "include/linux/mm.h" 2 > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void *lowmem_page_address(const struct page *page) >{ > return ((void *)__phys_to_virt((unsigned long)(((phys_addr_t)(((unsigned long)((page) - mem_map) + (__pv_phys_offset >> 12))) << 12)))); >} ># 789 "include/linux/mm.h" >void *page_address(const struct page *page); >void set_page_address(struct page *page, void *virtual); >void page_address_init(void); ># 820 "include/linux/mm.h" >extern struct address_space swapper_space; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct address_space *page_mapping(struct page *page) >{ > struct address_space *mapping = page->mapping; > > ({ int __ret_warn_on = !!(PageSlab(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/mm.h", 825); __builtin_expect(!!(__ret_warn_on), 0); }); > if (__builtin_expect(!!(PageSwapCache(page)), 0)) > mapping = &swapper_space; > else if ((unsigned long)mapping & 1) > mapping = ((void *)0); > return mapping; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *page_rmapping(struct page *page) >{ > return (void *)((unsigned long)page->mapping & ~(1 | 2)); >} > >extern struct address_space *__page_file_mapping(struct page *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >struct address_space *page_file_mapping(struct page *page) >{ > if (__builtin_expect(!!(PageSwapCache(page)), 0)) > return __page_file_mapping(page); > > return page->mapping; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int PageAnon(struct page *page) >{ > return ((unsigned long)page->mapping & 1) != 0; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long page_index(struct page *page) >{ > if (__builtin_expect(!!(PageSwapCache(page)), 0)) > return ((page)->private); > return page->index; >} > >extern unsigned long __page_file_index(struct page *page); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long page_file_index(struct page *page) >{ > if (__builtin_expect(!!(PageSwapCache(page)), 0)) > return __page_file_index(page); > > return page->index; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_mapped(struct page *page) >{ > return (*(volatile int *)&(&(page)->_mapcount)->counter) >= 0; >} ># 919 "include/linux/mm.h" >extern void pagefault_out_of_memory(void); ># 929 "include/linux/mm.h" >extern void show_free_areas(unsigned int flags); >extern bool skip_free_areas_node(unsigned int flags, int nid); > >int shmem_zero_setup(struct vm_area_struct *); > >extern int can_do_mlock(void); >extern int user_shm_lock(size_t, struct user_struct *); >extern void user_shm_unlock(size_t, struct user_struct *); > > > > >struct zap_details { > struct vm_area_struct *nonlinear_vma; > struct address_space *check_mapping; > unsigned long first_index; > unsigned long last_index; >}; > >struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, > pte_t pte); > >int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, > unsigned long size); >void zap_page_range(struct vm_area_struct *vma, unsigned long address, > unsigned long size, struct zap_details *); >void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, > unsigned long start, unsigned long end); ># 974 "include/linux/mm.h" >struct mm_walk { > int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); > int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); > int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); > int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); > int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *); > int (*hugetlb_entry)(pte_t *, unsigned long, > unsigned long, unsigned long, struct mm_walk *); > struct mm_struct *mm; > void *private; >}; > >int walk_page_range(unsigned long addr, unsigned long end, > struct mm_walk *walk); >void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, > unsigned long end, unsigned long floor, unsigned long ceiling); >int copy_page_range(struct mm_struct *dst, struct mm_struct *src, > struct vm_area_struct *vma); >void unmap_mapping_range(struct address_space *mapping, > loff_t const holebegin, loff_t const holelen, int even_cows); >int follow_pfn(struct vm_area_struct *vma, unsigned long address, > unsigned long *pfn); >int follow_phys(struct vm_area_struct *vma, unsigned long address, > unsigned int flags, unsigned long *prot, resource_size_t *phys); >int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, > void *buf, int len, int write); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void unmap_shared_mapping_range(struct address_space *mapping, > loff_t const holebegin, loff_t const holelen) >{ > unmap_mapping_range(mapping, holebegin, holelen, 0); >} > >extern void truncate_pagecache(struct inode *inode, loff_t old, loff_t new); >extern void truncate_setsize(struct inode *inode, loff_t newsize); >void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end); >int truncate_inode_page(struct address_space *mapping, struct page *page); >int generic_error_remove_page(struct address_space *mapping, struct page *page); >int invalidate_inode_page(struct page *page); > > >extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, > unsigned long address, unsigned int flags); >extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, > unsigned long address, unsigned int fault_flags); ># 1038 "include/linux/mm.h" >extern int make_pages_present(unsigned long addr, unsigned long end); >extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write); >extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, > void *buf, int len, int write); > >int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, > unsigned long start, int len, unsigned int foll_flags, > struct page **pages, struct vm_area_struct **vmas, > int *nonblocking); >int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, > unsigned long start, int nr_pages, int write, int force, > struct page **pages, struct vm_area_struct **vmas); >int get_user_pages_fast(unsigned long start, int nr_pages, int write, > struct page **pages); >struct kvec; >int get_kernel_pages(const struct kvec *iov, int nr_pages, int write, > struct page **pages); >int get_kernel_page(unsigned long start, int write, struct page **pages); >struct page *get_dump_page(unsigned long addr); > >extern int try_to_release_page(struct page * page, gfp_t gfp_mask); >extern void do_invalidatepage(struct page *page, unsigned long offset); > >int __set_page_dirty_nobuffers(struct page *page); >int __set_page_dirty_no_writeback(struct page *page); >int redirty_page_for_writepage(struct writeback_control *wbc, > struct page *page); >void account_page_dirtied(struct page *page, struct address_space *mapping); >void account_page_writeback(struct page *page); >int set_page_dirty(struct page *page); >int set_page_dirty_lock(struct page *page); >int clear_page_dirty_for_io(struct page *page); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int vma_growsdown(struct vm_area_struct *vma, unsigned long addr) >{ > return vma && (vma->vm_end == addr) && (vma->vm_flags & 0x00000100); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int stack_guard_page_start(struct vm_area_struct *vma, > unsigned long addr) >{ > return (vma->vm_flags & 0x00000100) && > (vma->vm_start == addr) && > !vma_growsdown(vma->vm_prev, addr); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int vma_growsup(struct vm_area_struct *vma, unsigned long addr) >{ > return vma && (vma->vm_start == addr) && (vma->vm_flags & 0x00000000); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int stack_guard_page_end(struct vm_area_struct *vma, > unsigned long addr) >{ > return (vma->vm_flags & 0x00000000) && > (vma->vm_end == addr) && > !vma_growsup(vma->vm_next, addr); >} > >extern pid_t >vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group); > >extern unsigned long move_page_tables(struct vm_area_struct *vma, > unsigned long old_addr, struct vm_area_struct *new_vma, > unsigned long new_addr, unsigned long len, > bool need_rmap_locks); >extern unsigned long do_mremap(unsigned long addr, > unsigned long old_len, unsigned long new_len, > unsigned long flags, unsigned long new_addr); >extern unsigned long change_protection(struct vm_area_struct *vma, unsigned long start, > unsigned long end, pgprot_t newprot, > int dirty_accountable, int prot_numa); >extern int mprotect_fixup(struct vm_area_struct *vma, > struct vm_area_struct **pprev, unsigned long start, > unsigned long end, unsigned long newflags); > > > > >int __get_user_pages_fast(unsigned long start, int nr_pages, int write, > struct page **pages); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long get_mm_counter(struct mm_struct *mm, int member) >{ > long val = atomic_long_read(&mm->rss_stat.count[member]); > > > > > > > if (val < 0) > val = 0; > > return (unsigned long)val; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void add_mm_counter(struct mm_struct *mm, int member, long value) >{ > atomic_long_add(value, &mm->rss_stat.count[member]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inc_mm_counter(struct mm_struct *mm, int member) >{ > atomic_long_inc(&mm->rss_stat.count[member]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dec_mm_counter(struct mm_struct *mm, int member) >{ > atomic_long_dec(&mm->rss_stat.count[member]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long get_mm_rss(struct mm_struct *mm) >{ > return get_mm_counter(mm, MM_FILEPAGES) + > get_mm_counter(mm, MM_ANONPAGES); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long get_mm_hiwater_rss(struct mm_struct *mm) >{ > return ({ typeof(mm->hiwater_rss) _max1 = (mm->hiwater_rss); typeof(get_mm_rss(mm)) _max2 = (get_mm_rss(mm)); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long get_mm_hiwater_vm(struct mm_struct *mm) >{ > return ({ typeof(mm->hiwater_vm) _max1 = (mm->hiwater_vm); typeof(mm->total_vm) _max2 = (mm->total_vm); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void update_hiwater_rss(struct mm_struct *mm) >{ > unsigned long _rss = get_mm_rss(mm); > > if ((mm)->hiwater_rss < _rss) > (mm)->hiwater_rss = _rss; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void update_hiwater_vm(struct mm_struct *mm) >{ > if (mm->hiwater_vm < mm->total_vm) > mm->hiwater_vm = mm->total_vm; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void setmax_mm_hiwater_rss(unsigned long *maxrss, > struct mm_struct *mm) >{ > unsigned long hiwater_rss = get_mm_hiwater_rss(mm); > > if (*maxrss < hiwater_rss) > *maxrss = hiwater_rss; >} > > >void sync_mm_rss(struct mm_struct *mm); > > > > > > >int vma_wants_writenotify(struct vm_area_struct *vma); > >extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr, > spinlock_t **ptl); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, > spinlock_t **ptl) >{ > pte_t *ptep; > (ptep = __get_locked_pte(mm, addr, ptl)); > return ptep; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, > unsigned long address) >{ > return 0; >} ># 1230 "include/linux/mm.h" >int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); > > >int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, > pmd_t *pmd, unsigned long address); >int __pte_alloc_kernel(pmd_t *pmd, unsigned long address); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) >{ > return (__builtin_expect(!!(pgd_none(*pgd)), 0) && __pud_alloc(mm, pgd, address))? > ((void *)0): pud_offset(pgd, address); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) >{ > return (__builtin_expect(!!((0)), 0) && __pmd_alloc(mm, pud, address))? > ((void *)0): pmd_offset(pud, address); >} ># 1277 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgtable_page_ctor(struct page *page) >{ > do { do { spinlock_check(&((page)->ptl)); do { *(&(&((page)->ptl))->rlock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while (0); } while (0); } while (0); > inc_zone_page_state(page, NR_PAGETABLE); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pgtable_page_dtor(struct page *page) >{ > ((page)->mapping = ((void *)0)); > dec_zone_page_state(page, NR_PAGETABLE); >} ># 1317 "include/linux/mm.h" >extern void free_area_init(unsigned long * zones_size); >extern void free_area_init_node(int nid, unsigned long * zones_size, > unsigned long zone_start_pfn, unsigned long *zholes_size); >extern void free_initmem(void); ># 1366 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __early_pfn_to_nid(unsigned long pfn) >{ > return 0; >} ># 1379 "include/linux/mm.h" >extern void set_dma_reserve(unsigned long new_dma_reserve); >extern void memmap_init_zone(unsigned long, int, unsigned long, > unsigned long, enum memmap_context); >extern void setup_per_zone_wmarks(void); >extern int __attribute__ ((__section__(".meminit.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) init_per_zone_wmark_min(void); >extern void mem_init(void); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) mmap_init(void); >extern void show_mem(unsigned int flags); >extern void si_meminfo(struct sysinfo * val); >extern void si_meminfo_node(struct sysinfo *val, int nid); >extern int after_bootmem; > >extern __attribute__((format(printf, 3, 4))) >void warn_alloc_failed(gfp_t gfp_mask, int order, const char *fmt, ...); > >extern void setup_per_cpu_pageset(void); > >extern void zone_pcp_update(struct zone *zone); >extern void zone_pcp_reset(struct zone *zone); > > >extern atomic_long_t mmap_pages_allocated; >extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t); > > >void vma_interval_tree_insert(struct vm_area_struct *node, > struct rb_root *root); >void vma_interval_tree_insert_after(struct vm_area_struct *node, > struct vm_area_struct *prev, > struct rb_root *root); >void vma_interval_tree_remove(struct vm_area_struct *node, > struct rb_root *root); >struct vm_area_struct *vma_interval_tree_iter_first(struct rb_root *root, > unsigned long start, unsigned long last); >struct vm_area_struct *vma_interval_tree_iter_next(struct vm_area_struct *node, > unsigned long start, unsigned long last); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vma_nonlinear_insert(struct vm_area_struct *vma, > struct list_head *list) >{ > list_add_tail(&vma->shared.nonlinear, list); >} > >void anon_vma_interval_tree_insert(struct anon_vma_chain *node, > struct rb_root *root); >void anon_vma_interval_tree_remove(struct anon_vma_chain *node, > struct rb_root *root); >struct anon_vma_chain *anon_vma_interval_tree_iter_first( > struct rb_root *root, unsigned long start, unsigned long last); >struct anon_vma_chain *anon_vma_interval_tree_iter_next( > struct anon_vma_chain *node, unsigned long start, unsigned long last); ># 1443 "include/linux/mm.h" >extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); >extern int vma_adjust(struct vm_area_struct *vma, unsigned long start, > unsigned long end, unsigned long pgoff, struct vm_area_struct *insert); >extern struct vm_area_struct *vma_merge(struct mm_struct *, > struct vm_area_struct *prev, unsigned long addr, unsigned long end, > unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long, > struct mempolicy *); >extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); >extern int split_vma(struct mm_struct *, > struct vm_area_struct *, unsigned long addr, int new_below); >extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); >extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, > struct rb_node **, struct rb_node *); >extern void unlink_file_vma(struct vm_area_struct *); >extern struct vm_area_struct *copy_vma(struct vm_area_struct **, > unsigned long addr, unsigned long len, unsigned long pgoff, > bool *need_rmap_locks); >extern void exit_mmap(struct mm_struct *); > >extern int mm_take_all_locks(struct mm_struct *mm); >extern void mm_drop_all_locks(struct mm_struct *mm); > >extern void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file); >extern struct file *get_mm_exe_file(struct mm_struct *mm); > >extern int may_expand_vm(struct mm_struct *mm, unsigned long npages); >extern int install_special_mapping(struct mm_struct *mm, > unsigned long addr, unsigned long len, > unsigned long flags, struct page **pages); > >extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); > >extern unsigned long mmap_region(struct file *file, unsigned long addr, > unsigned long len, unsigned long flags, > vm_flags_t vm_flags, unsigned long pgoff); >extern unsigned long do_mmap_pgoff(struct file *, unsigned long, > unsigned long, unsigned long, > unsigned long, unsigned long); >extern int do_munmap(struct mm_struct *, unsigned long, size_t); > > >extern unsigned long vm_brk(unsigned long, unsigned long); >extern int vm_munmap(unsigned long, size_t); >extern unsigned long vm_mmap(struct file *, unsigned long, > unsigned long, unsigned long, > unsigned long, unsigned long); > >struct vm_unmapped_area_info { > > unsigned long flags; > unsigned long length; > unsigned long low_limit; > unsigned long high_limit; > unsigned long align_mask; > unsigned long align_offset; >}; > >extern unsigned long unmapped_area(struct vm_unmapped_area_info *info); >extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info); ># 1512 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long >vm_unmapped_area(struct vm_unmapped_area_info *info) >{ > if (!(info->flags & 1)) > return unmapped_area(info); > else > return unmapped_area_topdown(info); >} > > >extern void truncate_inode_pages(struct address_space *, loff_t); >extern void truncate_inode_pages_range(struct address_space *, > loff_t lstart, loff_t lend); > > >extern int filemap_fault(struct vm_area_struct *, struct vm_fault *); >extern int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); > > >int write_one_page(struct page *page, int wait); >void task_dirty_inc(struct task_struct *tsk); > > > > > >int force_page_cache_readahead(struct address_space *mapping, struct file *filp, > unsigned long offset, unsigned long nr_to_read); > >void page_cache_sync_readahead(struct address_space *mapping, > struct file_ra_state *ra, > struct file *filp, > unsigned long offset, > unsigned long size); > >void page_cache_async_readahead(struct address_space *mapping, > struct file_ra_state *ra, > struct file *filp, > struct page *pg, > unsigned long offset, > unsigned long size); > >unsigned long max_sane_readahead(unsigned long nr); >unsigned long ra_submit(struct file_ra_state *ra, > struct address_space *mapping, > struct file *filp); > > >extern int expand_stack(struct vm_area_struct *vma, unsigned long address); > > >extern int expand_downwards(struct vm_area_struct *vma, > unsigned long address); > > > > > > > >extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); >extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, > struct vm_area_struct **pprev); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) >{ > struct vm_area_struct * vma = find_vma(mm,start_addr); > > if (vma && end_addr <= vma->vm_start) > vma = ((void *)0); > return vma; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long vma_pages(struct vm_area_struct *vma) >{ > return (vma->vm_end - vma->vm_start) >> 12; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct vm_area_struct *find_exact_vma(struct mm_struct *mm, > unsigned long vm_start, unsigned long vm_end) >{ > struct vm_area_struct *vma = find_vma(mm, vm_start); > > if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end)) > vma = ((void *)0); > > return vma; >} > > >pgprot_t vm_get_page_prot(unsigned long vm_flags); ># 1618 "include/linux/mm.h" >struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); >int remap_pfn_range(struct vm_area_struct *, unsigned long addr, > unsigned long pfn, unsigned long size, pgprot_t); >int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); >int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr, > unsigned long pfn); >int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr, > unsigned long pfn); > >struct page *follow_page(struct vm_area_struct *, unsigned long address, > unsigned int foll_flags); ># 1641 "include/linux/mm.h" >typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr, > void *data); >extern int apply_to_page_range(struct mm_struct *mm, unsigned long address, > unsigned long size, pte_fn_t fn, void *data); > > >void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); ># 1662 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >kernel_map_pages(struct page *page, int numpages, int enable) {} > > > > > >extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm); > >int in_gate_area_no_mm(unsigned long addr); >int in_gate_area(struct mm_struct *mm, unsigned long addr); > > > > > >int drop_caches_sysctl_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); >unsigned long shrink_slab(struct shrink_control *shrink, > unsigned long nr_pages_scanned, > unsigned long lru_pages); > > > > >extern int randomize_va_space; > > >const char * arch_vma_name(struct vm_area_struct *vma); >void print_vma_addr(char *prefix, unsigned long rip); > >void sparse_mem_maps_populate_node(struct page **map_map, > unsigned long pnum_begin, > unsigned long pnum_end, > unsigned long map_count, > int nodeid); > >struct page *sparse_mem_map_populate(unsigned long pnum, int nid); >pgd_t *vmemmap_pgd_populate(unsigned long addr, int node); >pud_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node); >pmd_t *vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node); >pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node); >void *vmemmap_alloc_block(unsigned long size, int node); >void *vmemmap_alloc_block_buf(unsigned long size, int node); >void vmemmap_verify(pte_t *, int, unsigned long, unsigned long); >int vmemmap_populate_basepages(struct page *start_page, > unsigned long pages, int node); >int vmemmap_populate(struct page *start_page, unsigned long pages, int node); >void vmemmap_populate_print_last(void); > > >enum mf_flags { > MF_COUNT_INCREASED = 1 << 0, > MF_ACTION_REQUIRED = 1 << 1, > MF_MUST_KILL = 1 << 2, >}; >extern int memory_failure(unsigned long pfn, int trapno, int flags); >extern void memory_failure_queue(unsigned long pfn, int trapno, int flags); >extern int unpoison_memory(unsigned long pfn); >extern int sysctl_memory_failure_early_kill; >extern int sysctl_memory_failure_recovery; >extern void shake_page(struct page *p, int access); >extern atomic_long_t mce_bad_pages; >extern int soft_offline_page(struct page *page, int flags); > >extern void dump_page(struct page *page); ># 1751 "include/linux/mm.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int debug_guardpage_minorder(void) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool page_is_guard(struct page *page) { return false; } ># 7 "include/linux/scatterlist.h" 2 > ># 1 "arch/arm/include/generated/asm/types.h" 1 ># 9 "include/linux/scatterlist.h" 2 > > > >struct sg_table { > struct scatterlist *sgl; > unsigned int nents; > unsigned int orig_nents; >}; ># 57 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sg_assign_page(struct scatterlist *sg, struct page *page) >{ > unsigned long page_link = sg->page_link & 0x3; > > > > > > do { if (__builtin_expect(!!((unsigned long) page & 0x03), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/scatterlist.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "65" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > > > > sg->page_link = page_link | (unsigned long) page; >} ># 87 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sg_set_page(struct scatterlist *sg, struct page *page, > unsigned int len, unsigned int offset) >{ > sg_assign_page(sg, page); > sg->offset = offset; > sg->length = len; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *sg_page(struct scatterlist *sg) >{ > > > > > return (struct page *)((sg)->page_link & ~0x3); >} ># 111 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sg_set_buf(struct scatterlist *sg, const void *buf, > unsigned int buflen) >{ > sg_set_page(sg, (mem_map + ((__virt_to_phys((unsigned long)(buf)) >> 12) - (__pv_phys_offset >> 12))), buflen, ((unsigned long)(buf) & ~(~(((1UL) << 12)-1)))); >} ># 133 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sg_chain(struct scatterlist *prv, unsigned int prv_nents, > struct scatterlist *sgl) >{ > > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/scatterlist.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "137" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > > > > > > prv[prv_nents - 1].offset = 0; > prv[prv_nents - 1].length = 0; > > > > > > prv[prv_nents - 1].page_link = ((unsigned long) sgl | 0x01) & ~0x02; >} ># 162 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sg_mark_end(struct scatterlist *sg) >{ > > > > > > > sg->page_link |= 0x02; > sg->page_link &= ~0x01; >} ># 184 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t sg_phys(struct scatterlist *sg) >{ > return (((phys_addr_t)(((unsigned long)((sg_page(sg)) - mem_map) + (__pv_phys_offset >> 12))) << 12)) + sg->offset; >} ># 199 "include/linux/scatterlist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *sg_virt(struct scatterlist *sg) >{ > return page_address(sg_page(sg)) + sg->offset; >} > >int sg_nents(struct scatterlist *sg); >struct scatterlist *sg_next(struct scatterlist *); >struct scatterlist *sg_last(struct scatterlist *s, unsigned int); >void sg_init_table(struct scatterlist *, unsigned int); >void sg_init_one(struct scatterlist *, const void *, unsigned int); > >typedef struct scatterlist *(sg_alloc_fn)(unsigned int, gfp_t); >typedef void (sg_free_fn)(struct scatterlist *, unsigned int); > >void __sg_free_table(struct sg_table *, unsigned int, sg_free_fn *); >void sg_free_table(struct sg_table *); >int __sg_alloc_table(struct sg_table *, unsigned int, unsigned int, gfp_t, > sg_alloc_fn *); >int sg_alloc_table(struct sg_table *, unsigned int, gfp_t); >int sg_alloc_table_from_pages(struct sg_table *sgt, > struct page **pages, unsigned int n_pages, > unsigned long offset, unsigned long size, > gfp_t gfp_mask); > >size_t sg_copy_from_buffer(struct scatterlist *sgl, unsigned int nents, > void *buf, size_t buflen); >size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents, > void *buf, size_t buflen); ># 255 "include/linux/scatterlist.h" >struct sg_mapping_iter { > > struct page *page; > void *addr; > size_t length; > size_t consumed; > > > struct scatterlist *__sg; > unsigned int __nents; > unsigned int __offset; > unsigned int __flags; >}; > >void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl, > unsigned int nents, unsigned int flags); >bool sg_miter_next(struct sg_mapping_iter *miter); >void sg_miter_stop(struct sg_mapping_iter *miter); ># 10 "include/linux/dma-mapping.h" 2 > >struct dma_map_ops { > void* (*alloc)(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t gfp, > struct dma_attrs *attrs); > void (*free)(struct device *dev, size_t size, > void *vaddr, dma_addr_t dma_handle, > struct dma_attrs *attrs); > int (*mmap)(struct device *, struct vm_area_struct *, > void *, dma_addr_t, size_t, struct dma_attrs *attrs); > > int (*get_sgtable)(struct device *dev, struct sg_table *sgt, void *, > dma_addr_t, size_t, struct dma_attrs *attrs); > > dma_addr_t (*map_page)(struct device *dev, struct page *page, > unsigned long offset, size_t size, > enum dma_data_direction dir, > struct dma_attrs *attrs); > void (*unmap_page)(struct device *dev, dma_addr_t dma_handle, > size_t size, enum dma_data_direction dir, > struct dma_attrs *attrs); > int (*map_sg)(struct device *dev, struct scatterlist *sg, > int nents, enum dma_data_direction dir, > struct dma_attrs *attrs); > void (*unmap_sg)(struct device *dev, > struct scatterlist *sg, int nents, > enum dma_data_direction dir, > struct dma_attrs *attrs); > void (*sync_single_for_cpu)(struct device *dev, > dma_addr_t dma_handle, size_t size, > enum dma_data_direction dir); > void (*sync_single_for_device)(struct device *dev, > dma_addr_t dma_handle, size_t size, > enum dma_data_direction dir); > void (*sync_sg_for_cpu)(struct device *dev, > struct scatterlist *sg, int nents, > enum dma_data_direction dir); > void (*sync_sg_for_device)(struct device *dev, > struct scatterlist *sg, int nents, > enum dma_data_direction dir); > int (*mapping_error)(struct device *dev, dma_addr_t dma_addr); > int (*dma_supported)(struct device *dev, u64 mask); > int (*set_dma_mask)(struct device *dev, u64 mask); > > > > int is_phys; >}; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int valid_dma_direction(int dma_direction) >{ > return ((dma_direction == DMA_BIDIRECTIONAL) || > (dma_direction == DMA_TO_DEVICE) || > (dma_direction == DMA_FROM_DEVICE)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_device_dma_capable(struct device *dev) >{ > return dev->dma_mask != ((void *)0) && *dev->dma_mask != 0x0ULL; >} > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" 1 ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" ># 1 "include/linux/dma-debug.h" 1 ># 25 "include/linux/dma-debug.h" >struct device; >struct scatterlist; >struct bus_type; ># 90 "include/linux/dma-debug.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_debug_add_bus(struct bus_type *bus) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_debug_init(u32 num_entries) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_debug_resize_entries(u32 num_entries) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_map_page(struct device *dev, struct page *page, > size_t offset, size_t size, > int direction, dma_addr_t dma_addr, > bool map_single) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_mapping_error(struct device *dev, > dma_addr_t dma_addr) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, > size_t size, int direction, > bool map_single) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, > int nents, int mapped_ents, int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_unmap_sg(struct device *dev, > struct scatterlist *sglist, > int nelems, int dir) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_alloc_coherent(struct device *dev, size_t size, > dma_addr_t dma_addr, void *virt) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_free_coherent(struct device *dev, size_t size, > void *virt, dma_addr_t addr) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_single_for_cpu(struct device *dev, > dma_addr_t dma_handle, > size_t size, int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_single_for_device(struct device *dev, > dma_addr_t dma_handle, > size_t size, int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_single_range_for_cpu(struct device *dev, > dma_addr_t dma_handle, > unsigned long offset, > size_t size, > int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_single_range_for_device(struct device *dev, > dma_addr_t dma_handle, > unsigned long offset, > size_t size, > int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_sg_for_cpu(struct device *dev, > struct scatterlist *sg, > int nelems, int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_sync_sg_for_device(struct device *dev, > struct scatterlist *sg, > int nelems, int direction) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void debug_dma_dump_mappings(struct device *dev) >{ >} ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" 2 > ># 1 "include/asm-generic/dma-coherent.h" 1 ># 9 "include/asm-generic/dma-coherent.h" >int dma_alloc_from_coherent(struct device *dev, ssize_t size, > dma_addr_t *dma_handle, void **ret); >int dma_release_from_coherent(struct device *dev, int order, void *vaddr); > >int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, > void *cpu_addr, size_t size, int *ret); > > > > >extern int >dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr, > dma_addr_t device_addr, size_t size, int flags); > >extern void >dma_release_declared_memory(struct device *dev); > >extern void * >dma_mark_declared_memory_occupied(struct device *dev, > dma_addr_t device_addr, size_t size); ># 12 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" 2 > > > >extern struct dma_map_ops arm_dma_ops; >extern struct dma_map_ops arm_coherent_dma_ops; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct dma_map_ops *get_dma_ops(struct device *dev) >{ > if (dev && dev->archdata.dma_ops) > return dev->archdata.dma_ops; > return &arm_dma_ops; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_dma_ops(struct device *dev, struct dma_map_ops *ops) >{ > do { if (__builtin_expect(!!(!dev), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "27" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > dev->archdata.dma_ops = ops; >} > ># 1 "include/asm-generic/dma-mapping-common.h" 1 > > > ># 1 "include/linux/kmemcheck.h" 1 ># 92 "include/linux/kmemcheck.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >kmemcheck_free_shadow(struct page *page, int order) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object, > size_t size) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_slab_free(struct kmem_cache *s, void *object, > size_t size) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_pagealloc_alloc(struct page *p, > unsigned int order, gfp_t gfpflags) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool kmemcheck_page_is_tracked(struct page *p) >{ > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_unallocated(void *address, unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_uninitialized(void *address, unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_initialized(void *address, unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_freed(void *address, unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_unallocated_pages(struct page *p, > unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_uninitialized_pages(struct page *p, > unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemcheck_mark_initialized_pages(struct page *p, > unsigned int n) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size) >{ > return true; >} ># 5 "include/asm-generic/dma-mapping-common.h" 2 > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t dma_map_single_attrs(struct device *dev, void *ptr, > size_t size, > enum dma_data_direction dir, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > dma_addr_t addr; > > kmemcheck_mark_initialized(ptr, size); > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "19" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > addr = ops->map_page(dev, (mem_map + ((__virt_to_phys((unsigned long)(ptr)) >> 12) - (__pv_phys_offset >> 12))), > (unsigned long)ptr & ~(~(((1UL) << 12)-1)), size, > dir, attrs); > debug_dma_map_page(dev, (mem_map + ((__virt_to_phys((unsigned long)(ptr)) >> 12) - (__pv_phys_offset >> 12))), > (unsigned long)ptr & ~(~(((1UL) << 12)-1)), size, > dir, addr, true); > return addr; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_unmap_single_attrs(struct device *dev, dma_addr_t addr, > size_t size, > enum dma_data_direction dir, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "36" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->unmap_page) > ops->unmap_page(dev, addr, size, dir, attrs); > debug_dma_unmap_page(dev, addr, size, dir, true); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg, > int nents, enum dma_data_direction dir, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > int i, ents; > struct scatterlist *s; > > for (i = 0, s = (sg); i < (nents); i++, s = sg_next(s)) > kmemcheck_mark_initialized(sg_virt(s), s->length); > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "52" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > ents = ops->map_sg(dev, sg, nents, dir, attrs); > debug_dma_map_sg(dev, sg, nents, ents, dir); > > return ents; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg, > int nents, enum dma_data_direction dir, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "65" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > debug_dma_unmap_sg(dev, sg, nents, dir); > if (ops->unmap_sg) > ops->unmap_sg(dev, sg, nents, dir, attrs); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t dma_map_page(struct device *dev, struct page *page, > size_t offset, size_t size, > enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > dma_addr_t addr; > > kmemcheck_mark_initialized(page_address(page) + offset, size); > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "79" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > addr = ops->map_page(dev, page, offset, size, dir, ((void *)0)); > debug_dma_map_page(dev, page, offset, size, dir, addr, false); > > return addr; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_unmap_page(struct device *dev, dma_addr_t addr, > size_t size, enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "91" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->unmap_page) > ops->unmap_page(dev, addr, size, dir, ((void *)0)); > debug_dma_unmap_page(dev, addr, size, dir, false); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_sync_single_for_cpu(struct device *dev, dma_addr_t addr, > size_t size, > enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "103" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_single_for_cpu) > ops->sync_single_for_cpu(dev, addr, size, dir); > debug_dma_sync_single_for_cpu(dev, addr, size, dir); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_sync_single_for_device(struct device *dev, > dma_addr_t addr, size_t size, > enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "115" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_single_for_device) > ops->sync_single_for_device(dev, addr, size, dir); > debug_dma_sync_single_for_device(dev, addr, size, dir); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_sync_single_range_for_cpu(struct device *dev, > dma_addr_t addr, > unsigned long offset, > size_t size, > enum dma_data_direction dir) >{ > const struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "129" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_single_for_cpu) > ops->sync_single_for_cpu(dev, addr + offset, size, dir); > debug_dma_sync_single_range_for_cpu(dev, addr, offset, size, dir); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_sync_single_range_for_device(struct device *dev, > dma_addr_t addr, > unsigned long offset, > size_t size, > enum dma_data_direction dir) >{ > const struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "143" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_single_for_device) > ops->sync_single_for_device(dev, addr + offset, size, dir); > debug_dma_sync_single_range_for_device(dev, addr, offset, size, dir); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, > int nelems, enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "155" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_sg_for_cpu) > ops->sync_sg_for_cpu(dev, sg, nelems, dir); > debug_dma_sync_sg_for_cpu(dev, sg, nelems, dir); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, > int nelems, enum dma_data_direction dir) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > > do { if (__builtin_expect(!!(!valid_dma_direction(dir)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "167" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->sync_sg_for_device) > ops->sync_sg_for_device(dev, sg, nelems, dir); > debug_dma_sync_sg_for_device(dev, sg, nelems, dir); > >} > > > > > > >extern int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, > void *cpu_addr, dma_addr_t dma_addr, size_t size); ># 195 "include/asm-generic/dma-mapping-common.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >dma_mmap_attrs(struct device *dev, struct vm_area_struct *vma, void *cpu_addr, > dma_addr_t dma_addr, size_t size, struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > do { if (__builtin_expect(!!(!ops), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "200" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->mmap) > return ops->mmap(dev, vma, cpu_addr, dma_addr, size, attrs); > return dma_common_mmap(dev, vma, cpu_addr, dma_addr, size); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma, > void *cpu_addr, dma_addr_t dma_addr, size_t size) >{ > struct dma_attrs attrs = { .flags = { [0 ... (((DMA_ATTR_MAX) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))-1] = 0 }, }; > dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs); > return dma_mmap_attrs(dev, vma, cpu_addr, dma_addr, size, &attrs); >} > >int >dma_common_get_sgtable(struct device *dev, struct sg_table *sgt, > void *cpu_addr, dma_addr_t dma_addr, size_t size); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >dma_get_sgtable_attrs(struct device *dev, struct sg_table *sgt, void *cpu_addr, > dma_addr_t dma_addr, size_t size, struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > do { if (__builtin_expect(!!(!ops), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/asm-generic/dma-mapping-common.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "225" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (ops->get_sgtable) > return ops->get_sgtable(dev, sgt, cpu_addr, dma_addr, size, > attrs); > return dma_common_get_sgtable(dev, sgt, cpu_addr, dma_addr, size); >} ># 32 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" 2 > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_set_mask(struct device *dev, u64 mask) >{ > return get_dma_ops(dev)->set_dma_mask(dev, mask); >} ># 48 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn) >{ > return (dma_addr_t)((phys_addr_t)(pfn) << 12); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long dma_to_pfn(struct device *dev, dma_addr_t addr) >{ > return ((unsigned long)((addr) >> 12)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dma_to_virt(struct device *dev, dma_addr_t addr) >{ > return (void *)__phys_to_virt((unsigned long)addr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t virt_to_dma(struct device *dev, void *addr) >{ > return (dma_addr_t)__virt_to_phys((unsigned long)(addr)); >} ># 92 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) >{ > debug_dma_mapping_error(dev, dma_addr); > return dma_addr == (~0); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dma_alloc_noncoherent(struct device *dev, size_t size, > dma_addr_t *handle, gfp_t gfp) >{ > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_free_noncoherent(struct device *dev, size_t size, > void *cpu_addr, dma_addr_t handle) >{ >} > >extern int dma_supported(struct device *dev, u64 mask); > >extern int arm_dma_set_mask(struct device *dev, u64 dma_mask); ># 128 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >extern void *arm_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, > gfp_t gfp, struct dma_attrs *attrs); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dma_alloc_attrs(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t flag, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > void *cpu_addr; > do { if (__builtin_expect(!!(!ops), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "139" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > cpu_addr = ops->alloc(dev, size, dma_handle, flag, attrs); > debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr); > return cpu_addr; >} ># 160 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >extern void arm_dma_free(struct device *dev, size_t size, void *cpu_addr, > dma_addr_t handle, struct dma_attrs *attrs); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_free_attrs(struct device *dev, size_t size, > void *cpu_addr, dma_addr_t dma_handle, > struct dma_attrs *attrs) >{ > struct dma_map_ops *ops = get_dma_ops(dev); > do { if (__builtin_expect(!!(!ops), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "170" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); > ops->free(dev, size, cpu_addr, dma_handle, attrs); >} ># 189 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >extern int arm_dma_mmap(struct device *dev, struct vm_area_struct *vma, > void *cpu_addr, dma_addr_t dma_addr, size_t size, > struct dma_attrs *attrs); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dma_alloc_writecombine(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t flag) >{ > struct dma_attrs attrs = { .flags = { [0 ... (((DMA_ATTR_MAX) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))-1] = 0 }, }; > dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs); > return dma_alloc_attrs(dev, size, dma_handle, flag, &attrs); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dma_free_writecombine(struct device *dev, size_t size, > void *cpu_addr, dma_addr_t dma_handle) >{ > struct dma_attrs attrs = { .flags = { [0 ... (((DMA_ATTR_MAX) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))-1] = 0 }, }; > dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs); > return dma_free_attrs(dev, size, cpu_addr, dma_handle, &attrs); >} > > > > > > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) init_dma_coherent_pool_size(unsigned long size); ># 240 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >extern int dmabounce_register_dev(struct device *, unsigned long, > unsigned long, int (*)(struct device *, dma_addr_t, size_t)); ># 253 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/dma-mapping.h" >extern void dmabounce_unregister_dev(struct device *); > > > > > > >extern int arm_dma_map_sg(struct device *, struct scatterlist *, int, > enum dma_data_direction, struct dma_attrs *attrs); >extern void arm_dma_unmap_sg(struct device *, struct scatterlist *, int, > enum dma_data_direction, struct dma_attrs *attrs); >extern void arm_dma_sync_sg_for_cpu(struct device *, struct scatterlist *, int, > enum dma_data_direction); >extern void arm_dma_sync_sg_for_device(struct device *, struct scatterlist *, int, > enum dma_data_direction); >extern int arm_dma_get_sgtable(struct device *dev, struct sg_table *sgt, > void *cpu_addr, dma_addr_t dma_addr, size_t size, > struct dma_attrs *attrs); ># 77 "include/linux/dma-mapping.h" 2 > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 dma_get_mask(struct device *dev) >{ > if (dev && dev->dma_mask && *dev->dma_mask) > return *dev->dma_mask; > return (((32) == 64) ? ~0ULL : ((1ULL<<(32))-1)); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_set_coherent_mask(struct device *dev, u64 mask) >{ > if (!dma_supported(dev, mask)) > return -5; > dev->coherent_dma_mask = mask; > return 0; >} > > >extern u64 dma_get_required_mask(struct device *dev); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int dma_get_max_seg_size(struct device *dev) >{ > return dev->dma_parms ? dev->dma_parms->max_segment_size : 65536; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int dma_set_max_seg_size(struct device *dev, > unsigned int size) >{ > if (dev->dma_parms) { > dev->dma_parms->max_segment_size = size; > return 0; > } else > return -5; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long dma_get_seg_boundary(struct device *dev) >{ > return dev->dma_parms ? > dev->dma_parms->segment_boundary_mask : 0xffffffff; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_set_seg_boundary(struct device *dev, unsigned long mask) >{ > if (dev->dma_parms) { > dev->dma_parms->segment_boundary_mask = mask; > return 0; > } else > return -5; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *dma_zalloc_coherent(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t flag) >{ > void *ret = dma_alloc_attrs(dev, size, dma_handle, flag, ((void *)0)); > if (ret) > ({ void *__p = (ret); size_t __n = size; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > return ret; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dma_get_cache_alignment(void) >{ > > return (1 << 6); > > return 1; >} ># 181 "include/linux/dma-mapping.h" >extern void *dmam_alloc_coherent(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t gfp); >extern void dmam_free_coherent(struct device *dev, size_t size, void *vaddr, > dma_addr_t dma_handle); >extern void *dmam_alloc_noncoherent(struct device *dev, size_t size, > dma_addr_t *dma_handle, gfp_t gfp); >extern void dmam_free_noncoherent(struct device *dev, size_t size, void *vaddr, > dma_addr_t dma_handle); > >extern int dmam_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr, > dma_addr_t device_addr, size_t size, > int flags); >extern void dmam_release_declared_memory(struct device *dev); ># 8 "include/asm-generic/pci-dma-compat.h" 2 > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >pci_dma_supported(struct pci_dev *hwdev, u64 mask) >{ > return dma_supported(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, mask); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void * >pci_alloc_consistent(struct pci_dev *hwdev, size_t size, > dma_addr_t *dma_handle) >{ > return dma_alloc_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, size, dma_handle, ((( gfp_t)0x20u)), ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_free_consistent(struct pci_dev *hwdev, size_t size, > void *vaddr, dma_addr_t dma_handle) >{ > dma_free_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, size, vaddr, dma_handle, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t >pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction) >{ > return dma_map_single_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, ptr, size, (enum dma_data_direction)direction, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, > size_t size, int direction) >{ > dma_unmap_single_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, dma_addr, size, (enum dma_data_direction)direction, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dma_addr_t >pci_map_page(struct pci_dev *hwdev, struct page *page, > unsigned long offset, size_t size, int direction) >{ > return dma_map_page(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, page, offset, size, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address, > size_t size, int direction) >{ > dma_unmap_page(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, dma_address, size, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, > int nents, int direction) >{ > return dma_map_sg_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, sg, nents, (enum dma_data_direction)direction, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, > int nents, int direction) >{ > dma_unmap_sg_attrs(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, sg, nents, (enum dma_data_direction)direction, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle, > size_t size, int direction) >{ > dma_sync_single_for_cpu(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle, > size_t size, int direction) >{ > dma_sync_single_for_device(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg, > int nelems, int direction) >{ > dma_sync_sg_for_cpu(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg, > int nelems, int direction) >{ > dma_sync_sg_for_device(hwdev == ((void *)0) ? ((void *)0) : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int >pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr) >{ > return dma_mapping_error(&pdev->dev, dma_addr); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_set_dma_mask(struct pci_dev *dev, u64 mask) >{ > return dma_set_mask(&dev->dev, mask); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) >{ > return dma_set_coherent_mask(&dev->dev, mask); >} ># 6 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" 2 ># 1 "include/asm-generic/pci-bridge.h" 1 ># 12 "include/asm-generic/pci-bridge.h" >enum { > > > > PCI_REASSIGN_ALL_RSRC = 0x00000001, > > > PCI_REASSIGN_ALL_BUS = 0x00000002, > > > PCI_PROBE_ONLY = 0x00000004, > > > > > PCI_CAN_SKIP_ISA_ALIGN = 0x00000008, > > > PCI_ENABLE_PROC_DOMAINS = 0x00000010, > > PCI_COMPAT_DOMAIN_0 = 0x00000020, > > > > > > PCI_SCAN_ALL_PCIE_DEVS = 0x00000040, >}; > > >extern unsigned int pci_flags; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_set_flags(int flags) >{ > pci_flags = flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_add_flags(int flags) >{ > pci_flags |= flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_clear_flags(int flags) >{ > pci_flags &= ~flags; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_has_flag(int flag) >{ > return pci_flags & flag; >} ># 7 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/mach/pci.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/mach/pci.h" >struct pci_sys_data; >struct pci_ops; >struct pci_bus; > >struct hw_pci { > > > > struct pci_ops *ops; > int nr_controllers; > int (*setup)(int nr, struct pci_sys_data *); > struct pci_bus *(*scan)(int nr, struct pci_sys_data *); > void (*preinit)(void); > void (*postinit)(void); > u8 (*swizzle)(struct pci_dev *dev, u8 *pin); > int (*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin); >}; > > > > >struct pci_sys_data { > > > > struct list_head node; > int busnr; > u64 mem_offset; > unsigned long io_offset; > struct pci_bus *bus; > struct list_head resources; > struct resource io_res; > char io_res_name[12]; > > u8 (*swizzle)(struct pci_dev *, u8 *); > > int (*map_irq)(const struct pci_dev *, u8, u8); > void *private_data; >}; > > > > >void pci_common_init(struct hw_pci *); > > > > > >extern void pci_map_io_early(unsigned long pfn); > > > > > > > >extern struct pci_ops iop3xx_ops; >extern int iop3xx_pci_setup(int nr, struct pci_sys_data *); >extern void iop3xx_pci_preinit(void); >extern void iop3xx_pci_preinit_cond(void); > >extern struct pci_ops dc21285_ops; >extern int dc21285_setup(int nr, struct pci_sys_data *); >extern void dc21285_preinit(void); >extern void dc21285_postinit(void); > >extern struct pci_ops via82c505_ops; >extern int via82c505_setup(int nr, struct pci_sys_data *); >extern void via82c505_init(void *sysdata); > >extern struct pci_ops pci_v3_ops; >extern int pci_v3_setup(int nr, struct pci_sys_data *); >extern void pci_v3_preinit(void); >extern void pci_v3_postinit(void); ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" 2 > >extern unsigned long pcibios_min_io; > >extern unsigned long pcibios_min_mem; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pcibios_assign_all_busses(void) >{ > return pci_has_flag(PCI_REASSIGN_ALL_RSRC); >} ># 34 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pcibios_penalize_isa_irq(int irq, int active) >{ > >} ># 47 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_dma_burst_advice(struct pci_dev *pdev, > enum pci_dma_burst_strategy *strat, > unsigned long *strategy_parameter) >{ > *strat = PCI_DMA_BURST_INFINITY; > *strategy_parameter = ~0UL; >} > > > >extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, > enum pci_mmap_state mmap_state, int write_combine); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) >{ > return 0; >} ># 1423 "include/linux/pci.h" 2 ># 1445 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *pci_get_drvdata(struct pci_dev *pdev) >{ > return dev_get_drvdata(&pdev->dev); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_set_drvdata(struct pci_dev *pdev, void *data) >{ > dev_set_drvdata(&pdev->dev, data); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const char *pci_name(const struct pci_dev *pdev) >{ > return dev_name(&pdev->dev); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_resource_to_user(const struct pci_dev *dev, int bar, > const struct resource *rsrc, resource_size_t *start, > resource_size_t *end) >{ > *start = rsrc->start; > *end = rsrc->end; >} ># 1485 "include/linux/pci.h" >struct pci_fixup { > u16 vendor; > u16 device; > u32 class; > unsigned int class_shift; > void (*hook)(struct pci_dev *dev); >}; > >enum pci_fixup_pass { > pci_fixup_early, > pci_fixup_header, > pci_fixup_final, > pci_fixup_enable, > pci_fixup_resume, > pci_fixup_suspend, > pci_fixup_resume_early, >}; ># 1568 "include/linux/pci.h" >void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); >struct pci_dev *pci_get_dma_source(struct pci_dev *dev); >int pci_dev_specific_acs_enabled(struct pci_dev *dev, u16 acs_flags); ># 1585 "include/linux/pci.h" >void *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen); >void pcim_iounmap(struct pci_dev *pdev, void *addr); >void * const *pcim_iomap_table(struct pci_dev *pdev); >int pcim_iomap_regions(struct pci_dev *pdev, int mask, const char *name); >int pcim_iomap_regions_request_all(struct pci_dev *pdev, int mask, > const char *name); >void pcim_iounmap_regions(struct pci_dev *pdev, int mask); > >extern int pci_pci_problems; ># 1602 "include/linux/pci.h" >extern unsigned long pci_cardbus_io_size; >extern unsigned long pci_cardbus_mem_size; >extern u8 pci_dfl_cache_line_size; >extern u8 pci_cache_line_size; > >extern unsigned long pci_hotplug_io_size; >extern unsigned long pci_hotplug_mem_size; > > >int pcibios_add_platform_entries(struct pci_dev *dev); >void pcibios_disable_device(struct pci_dev *dev); >void pcibios_set_master(struct pci_dev *dev); >int pcibios_set_pcie_reset_state(struct pci_dev *dev, > enum pcie_reset_state state); >int pcibios_add_device(struct pci_dev *dev); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_mmcfg_early_init(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pci_mmcfg_late_init(void) { } > > >int pci_ext_cfg_avail(void); > >void *pci_ioremap_bar(struct pci_dev *pdev, int bar); > > >extern int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn); >extern void pci_disable_sriov(struct pci_dev *dev); >extern irqreturn_t pci_sriov_migration(struct pci_dev *dev); >extern int pci_num_vf(struct pci_dev *dev); >extern int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs); >extern int pci_sriov_get_totalvfs(struct pci_dev *dev); ># 1679 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_pcie_cap(struct pci_dev *dev) >{ > return dev->pcie_cap; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool pci_is_pcie(struct pci_dev *dev) >{ > return !!pci_pcie_cap(dev); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pci_pcie_type(const struct pci_dev *dev) >{ > return (dev->pcie_flags_reg & 0x00f0) >> 4; >} > >void pci_request_acs(void); >bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags); >bool pci_acs_path_enabled(struct pci_dev *start, > struct pci_dev *end, u16 acs_flags); ># 1745 "include/linux/pci.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u16 pci_vpd_lrdt_size(const u8 *lrdt) >{ > return (u16)lrdt[1] + ((u16)lrdt[2] << 8); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 pci_vpd_srdt_size(const u8 *srdt) >{ > return (*srdt) & 0x07; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 pci_vpd_info_field_size(const u8 *info_field) >{ > return info_field[2]; >} ># 1782 "include/linux/pci.h" >int pci_vpd_find_tag(const u8 *buf, unsigned int off, unsigned int len, u8 rdt); ># 1794 "include/linux/pci.h" >int pci_vpd_find_info_keyword(const u8 *buf, unsigned int off, > unsigned int len, const char *kw); > > > >struct device_node; >extern void pci_set_of_node(struct pci_dev *dev); >extern void pci_release_of_node(struct pci_dev *dev); >extern void pci_set_bus_of_node(struct pci_bus *bus); >extern void pci_release_bus_of_node(struct pci_bus *bus); > > >extern struct device_node * __attribute__((weak)) pcibios_get_phb_of_node(struct pci_bus *bus); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct device_node * >pci_device_to_OF_node(const struct pci_dev *pdev) >{ > return pdev ? pdev->dev.of_node : ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) >{ > return bus ? bus->dev.of_node : ((void *)0); >} ># 1842 "include/linux/pci.h" >struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev); ># 28 "drivers/ata/pata_optidma.c" 2 > ># 1 "include/linux/blkdev.h" 1 > > > ># 1 "include/linux/sched.h" 1 > > > ># 1 "include/uapi/linux/sched.h" 1 ># 5 "include/linux/sched.h" 2 > > >struct sched_param { > int sched_priority; >}; > ># 1 "arch/arm/include/generated/asm/param.h" 1 ># 12 "include/linux/sched.h" 2 > ># 1 "include/linux/capability.h" 1 ># 15 "include/linux/capability.h" ># 1 "include/uapi/linux/capability.h" 1 ># 18 "include/uapi/linux/capability.h" >struct task_struct; ># 40 "include/uapi/linux/capability.h" >typedef struct __user_cap_header_struct { > __u32 version; > int pid; >} *cap_user_header_t; > >typedef struct __user_cap_data_struct { > __u32 effective; > __u32 permitted; > __u32 inheritable; >} *cap_user_data_t; ># 69 "include/uapi/linux/capability.h" >struct vfs_cap_data { > __le32 magic_etc; > struct { > __le32 permitted; > __le32 inheritable; > } data[2]; >}; ># 16 "include/linux/capability.h" 2 > > > > > >extern int file_caps_enabled; > >typedef struct kernel_cap_struct { > __u32 cap[2]; >} kernel_cap_t; > > >struct cpu_vfs_cap_data { > __u32 magic_etc; > kernel_cap_t permitted; > kernel_cap_t inheritable; >}; > > > > > >struct inode; >struct dentry; >struct user_namespace; > >struct user_namespace *current_user_ns(void); > >extern const kernel_cap_t __cap_empty_set; >extern const kernel_cap_t __cap_init_eff_set; ># 113 "include/linux/capability.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_combine(const kernel_cap_t a, > const kernel_cap_t b) >{ > kernel_cap_t dest; > do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] | b.cap[__capi]; } } while (0); > return dest; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_intersect(const kernel_cap_t a, > const kernel_cap_t b) >{ > kernel_cap_t dest; > do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] & b.cap[__capi]; } } while (0); > return dest; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_drop(const kernel_cap_t a, > const kernel_cap_t drop) >{ > kernel_cap_t dest; > do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] &~ drop.cap[__capi]; } } while (0); > return dest; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_invert(const kernel_cap_t c) >{ > kernel_cap_t dest; > do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = ~ c.cap[__capi]; } } while (0); > return dest; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cap_isclear(const kernel_cap_t a) >{ > unsigned __capi; > for (__capi = 0; __capi < 2; ++__capi) { > if (a.cap[__capi] != 0) > return 0; > } > return 1; >} ># 161 "include/linux/capability.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cap_issubset(const kernel_cap_t a, const kernel_cap_t set) >{ > kernel_cap_t dest; > dest = cap_drop(a, set); > return cap_isclear(dest); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cap_is_fs_cap(int cap) >{ > 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))) } }); > return !!((1 << ((cap) & 31)) & __cap_fs_set.cap[((cap) >> 5)]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_drop_fs_set(const kernel_cap_t a) >{ > 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))) } }); > return cap_drop(a, __cap_fs_set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_raise_fs_set(const kernel_cap_t a, > const kernel_cap_t permitted) >{ > 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))) } }); > return cap_combine(a, > cap_intersect(permitted, __cap_fs_set)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a) >{ > 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))) } }); > return cap_drop(a, __cap_fs_set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a, > const kernel_cap_t permitted) >{ > 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))) } }); > return cap_combine(a, > cap_intersect(permitted, __cap_nfsd_set)); >} > >extern bool has_capability(struct task_struct *t, int cap); >extern bool has_ns_capability(struct task_struct *t, > struct user_namespace *ns, int cap); >extern bool has_capability_noaudit(struct task_struct *t, int cap); >extern bool has_ns_capability_noaudit(struct task_struct *t, > struct user_namespace *ns, int cap); >extern bool capable(int cap); >extern bool ns_capable(struct user_namespace *ns, int cap); >extern bool nsown_capable(int cap); >extern bool inode_capable(const struct inode *inode, int cap); > > >extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps); ># 14 "include/linux/sched.h" 2 ># 28 "include/linux/sched.h" ># 1 "arch/arm/include/generated/asm/cputime.h" 1 ># 1 "include/asm-generic/cputime.h" 1 > > > > > > >typedef unsigned long cputime_t; > > > > > > >typedef u64 cputime64_t; ># 1 "arch/arm/include/generated/asm/cputime.h" 2 ># 29 "include/linux/sched.h" 2 > > ># 1 "include/linux/sem.h" 1 > > > > > > ># 1 "include/uapi/linux/sem.h" 1 > > > ># 1 "include/linux/ipc.h" 1 > > > > > ># 1 "include/uapi/linux/ipc.h" 1 ># 9 "include/uapi/linux/ipc.h" >struct ipc_perm >{ > __kernel_key_t key; > __kernel_uid_t uid; > __kernel_gid_t gid; > __kernel_uid_t cuid; > __kernel_gid_t cgid; > __kernel_mode_t mode; > unsigned short seq; >}; > > ># 1 "arch/arm/include/generated/asm/ipcbuf.h" 1 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/ipcbuf.h" 1 ># 19 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/ipcbuf.h" >struct ipc64_perm { > __kernel_key_t key; > __kernel_uid32_t uid; > __kernel_gid32_t gid; > __kernel_uid32_t cuid; > __kernel_gid32_t cgid; > __kernel_mode_t mode; > > unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; > unsigned short seq; > unsigned short __pad2; > unsigned long __unused1; > unsigned long __unused2; >}; ># 1 "arch/arm/include/generated/asm/ipcbuf.h" 2 ># 22 "include/uapi/linux/ipc.h" 2 ># 57 "include/uapi/linux/ipc.h" >struct ipc_kludge { > struct msgbuf *msgp; > long msgtyp; >}; ># 7 "include/linux/ipc.h" 2 > > > > >struct kern_ipc_perm >{ > spinlock_t lock; > int deleted; > int id; > key_t key; > kuid_t uid; > kgid_t gid; > kuid_t cuid; > kgid_t cgid; > umode_t mode; > unsigned long seq; > void *security; >}; ># 5 "include/uapi/linux/sem.h" 2 ># 23 "include/uapi/linux/sem.h" >struct semid_ds { > struct ipc_perm sem_perm; > __kernel_time_t sem_otime; > __kernel_time_t sem_ctime; > struct sem *sem_base; > struct sem_queue *sem_pending; > struct sem_queue **sem_pending_last; > struct sem_undo *undo; > unsigned short sem_nsems; >}; > > ># 1 "arch/arm/include/generated/asm/sembuf.h" 1 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/sembuf.h" 1 > > > ># 1 "arch/arm/include/generated/asm/bitsperlong.h" 1 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/sembuf.h" 2 ># 23 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/sembuf.h" >struct semid64_ds { > struct ipc64_perm sem_perm; > __kernel_time_t sem_otime; > > unsigned long __unused1; > > __kernel_time_t sem_ctime; > > unsigned long __unused2; > > unsigned long sem_nsems; > unsigned long __unused3; > unsigned long __unused4; >}; ># 1 "arch/arm/include/generated/asm/sembuf.h" 2 ># 36 "include/uapi/linux/sem.h" 2 > > >struct sembuf { > unsigned short sem_num; > short sem_op; > short sem_flg; >}; > > >union semun { > int val; > struct semid_ds *buf; > unsigned short *array; > struct seminfo *__buf; > void *__pad; >}; > >struct seminfo { > int semmap; > int semmni; > int semmns; > int semmnu; > int semmsl; > int semopm; > int semume; > int semusz; > int semvmx; > int semaem; >}; ># 8 "include/linux/sem.h" 2 > >struct task_struct; > > >struct sem_array { > struct kern_ipc_perm __attribute__((__aligned__((1 << 6)))) > sem_perm; > time_t sem_otime; > time_t sem_ctime; > struct sem *sem_base; > struct list_head sem_pending; > struct list_head list_id; > int sem_nsems; > int complex_count; >}; > > > >struct sysv_sem { > struct sem_undo_list *undo_list; >}; > >extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); >extern void exit_sem(struct task_struct *tsk); ># 32 "include/linux/sched.h" 2 ># 1 "include/linux/signal.h" 1 > > > > ># 1 "include/uapi/linux/signal.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/signal.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/signal.h" 1 > > > > > > >struct siginfo; ># 93 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/signal.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/signal-defs.h" 1 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/signal-defs.h" >typedef void __signalfn_t(int); >typedef __signalfn_t *__sighandler_t; > >typedef void __restorefn_t(void); >typedef __restorefn_t *__sigrestore_t; ># 94 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/signal.h" 2 ># 113 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/signal.h" >typedef struct sigaltstack { > void *ss_sp; > int ss_flags; > size_t ss_size; >} stack_t; ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/signal.h" 2 ># 13 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/signal.h" >typedef unsigned long old_sigset_t; > >typedef struct { > unsigned long sig[(64 / 32)]; >} sigset_t; > >struct old_sigaction { > __sighandler_t sa_handler; > old_sigset_t sa_mask; > unsigned long sa_flags; > __sigrestore_t sa_restorer; >}; > >struct sigaction { > __sighandler_t sa_handler; > unsigned long sa_flags; > __sigrestore_t sa_restorer; > sigset_t sa_mask; >}; > >struct k_sigaction { > struct sigaction sa; >}; > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/sigcontext.h" 1 ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/sigcontext.h" >struct sigcontext { > unsigned long trap_no; > unsigned long error_code; > unsigned long oldmask; > unsigned long arm_r0; > unsigned long arm_r1; > unsigned long arm_r2; > unsigned long arm_r3; > unsigned long arm_r4; > unsigned long arm_r5; > unsigned long arm_r6; > unsigned long arm_r7; > unsigned long arm_r8; > unsigned long arm_r9; > unsigned long arm_r10; > unsigned long arm_fp; > unsigned long arm_ip; > unsigned long arm_sp; > unsigned long arm_lr; > unsigned long arm_pc; > unsigned long arm_cpsr; > unsigned long fault_address; >}; ># 38 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/signal.h" 2 ># 5 "include/uapi/linux/signal.h" 2 ># 1 "arch/arm/include/generated/asm/siginfo.h" 1 ># 1 "include/asm-generic/siginfo.h" 1 > > > ># 1 "include/uapi/asm-generic/siginfo.h" 1 > > > > > > >typedef union sigval { > int sival_int; > void *sival_ptr; >} sigval_t; ># 48 "include/uapi/asm-generic/siginfo.h" >typedef struct siginfo { > int si_signo; > int si_errno; > int si_code; > > union { > int _pad[((128 - (3 * sizeof(int))) / sizeof(int))]; > > > struct { > __kernel_pid_t _pid; > __kernel_uid32_t _uid; > } _kill; > > > struct { > __kernel_timer_t _tid; > int _overrun; > char _pad[sizeof( __kernel_uid32_t) - sizeof(int)]; > sigval_t _sigval; > int _sys_private; > } _timer; > > > struct { > __kernel_pid_t _pid; > __kernel_uid32_t _uid; > sigval_t _sigval; > } _rt; > > > struct { > __kernel_pid_t _pid; > __kernel_uid32_t _uid; > int _status; > __kernel_clock_t _utime; > __kernel_clock_t _stime; > } _sigchld; > > > struct { > void *_addr; > > > > short _addr_lsb; > } _sigfault; > > > struct { > long _band; > int _fd; > } _sigpoll; > > > struct { > void *_call_addr; > int _syscall; > unsigned int _arch; > } _sigsys; > } _sifields; >} siginfo_t; ># 278 "include/uapi/asm-generic/siginfo.h" >typedef struct sigevent { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > union { > int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))]; > int _tid; > > struct { > void (*_function)(sigval_t); > void *_attribute; > } _sigev_thread; > } _sigev_un; >} sigevent_t; ># 5 "include/asm-generic/siginfo.h" 2 ># 17 "include/asm-generic/siginfo.h" >struct siginfo; >void do_schedule_next_timer(struct siginfo *info); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void copy_siginfo(struct siginfo *to, struct siginfo *from) >{ > if (from->si_code < 0) > memcpy(to, from, sizeof(*to)); > else > > memcpy(to, from, (3 * sizeof(int)) + sizeof(from->_sifields._sigchld)); >} > > > >extern int copy_siginfo_to_user(struct siginfo *to, struct siginfo *from); ># 1 "arch/arm/include/generated/asm/siginfo.h" 2 ># 6 "include/uapi/linux/signal.h" 2 ># 6 "include/linux/signal.h" 2 > >struct task_struct; > > >extern int print_fatal_signals; > > > > >struct sigqueue { > struct list_head list; > int flags; > siginfo_t info; > struct user_struct *user; >}; > > > > >struct sigpending { > struct list_head list; > sigset_t signal; >}; ># 39 "include/linux/signal.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigaddset(sigset_t *set, int _sig) >{ > unsigned long sig = _sig - 1; > if ((64 / 32) == 1) > set->sig[0] |= 1UL << sig; > else > set->sig[sig / 32] |= 1UL << (sig % 32); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigdelset(sigset_t *set, int _sig) >{ > unsigned long sig = _sig - 1; > if ((64 / 32) == 1) > set->sig[0] &= ~(1UL << sig); > else > set->sig[sig / 32] &= ~(1UL << (sig % 32)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sigismember(sigset_t *set, int _sig) >{ > unsigned long sig = _sig - 1; > if ((64 / 32) == 1) > return 1 & (set->sig[0] >> sig); > else > return 1 & (set->sig[sig / 32] >> (sig % 32)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sigfindinword(unsigned long word) >{ > return (({ unsigned long __t = (~(~word)); fls(__t & -__t); }) - 1); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sigisemptyset(sigset_t *set) >{ > extern void _NSIG_WORDS_is_unsupported_size(void); > switch ((64 / 32)) { > case 4: > return (set->sig[3] | set->sig[2] | > set->sig[1] | set->sig[0]) == 0; > case 2: > return (set->sig[1] | set->sig[0]) == 0; > case 1: > return set->sig[0] == 0; > default: > _NSIG_WORDS_is_unsupported_size(); > return 0; > } >} ># 120 "include/linux/signal.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) 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(); } } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) 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(); } } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigandnsets(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(); } } ># 150 "include/linux/signal.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) 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(); } } > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigemptyset(sigset_t *set) >{ > switch ((64 / 32)) { > default: > ({ void *__p = (set); size_t __n = sizeof(sigset_t); if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > break; > case 2: set->sig[1] = 0; > case 1: set->sig[0] = 0; > break; > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigfillset(sigset_t *set) >{ > switch ((64 / 32)) { > default: > ({ void *__p = (set); size_t __n = sizeof(sigset_t); if ((__n) != 0) { if (__builtin_constant_p((-1)) && (-1) == 0) __memzero((__p),(__n)); else memset((__p),(-1),(__n)); } (__p); }); > break; > case 2: set->sig[1] = -1; > case 1: set->sig[0] = -1; > break; > } >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigaddsetmask(sigset_t *set, unsigned long mask) >{ > set->sig[0] |= mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sigdelsetmask(sigset_t *set, unsigned long mask) >{ > set->sig[0] &= ~mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sigtestsetmask(sigset_t *set, unsigned long mask) >{ > return (set->sig[0] & mask) != 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void siginitset(sigset_t *set, unsigned long mask) >{ > set->sig[0] = mask; > switch ((64 / 32)) { > default: > ({ void *__p = (&set->sig[1]); size_t __n = sizeof(long)*((64 / 32)-1); if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > break; > case 2: set->sig[1] = 0; > case 1: ; > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void siginitsetinv(sigset_t *set, unsigned long mask) >{ > set->sig[0] = ~mask; > switch ((64 / 32)) { > default: > ({ void *__p = (&set->sig[1]); size_t __n = sizeof(long)*((64 / 32)-1); if ((__n) != 0) { if (__builtin_constant_p((-1)) && (-1) == 0) __memzero((__p),(__n)); else memset((__p),(-1),(__n)); } (__p); }); > break; > case 2: set->sig[1] = -1; > case 1: ; > } >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_sigpending(struct sigpending *sig) >{ > sigemptyset(&sig->signal); > INIT_LIST_HEAD(&sig->list); >} > >extern void flush_sigqueue(struct sigpending *queue); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int valid_signal(unsigned long sig) >{ > return sig <= 64 ? 1 : 0; >} > >struct timespec; >struct pt_regs; > >extern int next_signal(struct sigpending *pending, sigset_t *mask); >extern int do_send_sig_info(int sig, struct siginfo *info, > struct task_struct *p, bool group); >extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p); >extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *); >extern long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, > siginfo_t *info); >extern long do_sigpending(void *, unsigned long); >extern int do_sigtimedwait(const sigset_t *, siginfo_t *, > const struct timespec *); >extern int sigprocmask(int, sigset_t *, sigset_t *); >extern void set_current_blocked(sigset_t *); >extern void __set_current_blocked(const sigset_t *); >extern int show_unhandled_signals; >extern int sigsuspend(sigset_t *); > >extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); >extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); >extern void exit_signals(struct task_struct *tsk); > >extern struct kmem_cache *sighand_cachep; > >int unhandled_signal(struct task_struct *tsk, int sig); ># 386 "include/linux/signal.h" >void signals_init(void); > >int restore_altstack(const stack_t *); >int __save_altstack(stack_t *, unsigned long); ># 33 "include/linux/sched.h" 2 > > ># 1 "include/linux/pid.h" 1 > > > > > >enum pid_type >{ > PIDTYPE_PID, > PIDTYPE_PGID, > PIDTYPE_SID, > PIDTYPE_MAX >}; ># 50 "include/linux/pid.h" >struct upid { > > int nr; > struct pid_namespace *ns; > struct hlist_node pid_chain; >}; > >struct pid >{ > atomic_t count; > unsigned int level; > > struct hlist_head tasks[PIDTYPE_MAX]; > struct callback_head rcu; > struct upid numbers[1]; >}; > >extern struct pid init_struct_pid; > >struct pid_link >{ > struct hlist_node node; > struct pid *pid; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid *get_pid(struct pid *pid) >{ > if (pid) > atomic_add(1, &pid->count); > return pid; >} > >extern void put_pid(struct pid *pid); >extern struct task_struct *pid_task(struct pid *pid, enum pid_type); >extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type); > >extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); > > > > > >extern void attach_pid(struct task_struct *task, enum pid_type type, > struct pid *pid); >extern void detach_pid(struct task_struct *task, enum pid_type); >extern void change_pid(struct task_struct *task, enum pid_type, > struct pid *pid); >extern void transfer_pid(struct task_struct *old, struct task_struct *new, > enum pid_type); > >struct pid_namespace; >extern struct pid_namespace init_pid_ns; ># 112 "include/linux/pid.h" >extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns); >extern struct pid *find_vpid(int nr); > > > > >extern struct pid *find_get_pid(int nr); >extern struct pid *find_ge_pid(int nr, struct pid_namespace *); >int next_pidmap(struct pid_namespace *pid_ns, unsigned int last); > >extern struct pid *alloc_pid(struct pid_namespace *ns); >extern void free_pid(struct pid *pid); >extern void disable_pid_allocation(struct pid_namespace *ns); ># 136 "include/linux/pid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid_namespace *ns_of_pid(struct pid *pid) >{ > struct pid_namespace *ns = ((void *)0); > if (pid) > ns = pid->numbers[pid->level].ns; > return ns; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool is_child_reaper(struct pid *pid) >{ > return pid->numbers[pid->level].nr == 1; >} ># 166 "include/linux/pid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t pid_nr(struct pid *pid) >{ > pid_t nr = 0; > if (pid) > nr = pid->numbers[0].nr; > return nr; >} > >pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns); >pid_t pid_vnr(struct pid *pid); ># 36 "include/linux/sched.h" 2 > > ># 1 "include/linux/proportions.h" 1 ># 12 "include/linux/proportions.h" ># 1 "include/linux/percpu_counter.h" 1 ># 18 "include/linux/percpu_counter.h" >struct percpu_counter { > raw_spinlock_t lock; > s64 count; > > struct list_head list; > > s32 *counters; >}; > >extern int percpu_counter_batch; > >int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, > struct lock_class_key *key); ># 39 "include/linux/percpu_counter.h" >void percpu_counter_destroy(struct percpu_counter *fbc); >void percpu_counter_set(struct percpu_counter *fbc, s64 amount); >void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch); >s64 __percpu_counter_sum(struct percpu_counter *fbc); >int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void percpu_counter_add(struct percpu_counter *fbc, s64 amount) >{ > __percpu_counter_add(fbc, amount, percpu_counter_batch); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 percpu_counter_sum_positive(struct percpu_counter *fbc) >{ > s64 ret = __percpu_counter_sum(fbc); > return ret < 0 ? 0 : ret; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 percpu_counter_sum(struct percpu_counter *fbc) >{ > return __percpu_counter_sum(fbc); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 percpu_counter_read(struct percpu_counter *fbc) >{ > return fbc->count; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 percpu_counter_read_positive(struct percpu_counter *fbc) >{ > s64 ret = fbc->count; > > __asm__ __volatile__("": : :"memory"); > if (ret >= 0) > return ret; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int percpu_counter_initialized(struct percpu_counter *fbc) >{ > return (fbc->counters != ((void *)0)); >} ># 162 "include/linux/percpu_counter.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void percpu_counter_inc(struct percpu_counter *fbc) >{ > percpu_counter_add(fbc, 1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void percpu_counter_dec(struct percpu_counter *fbc) >{ > percpu_counter_add(fbc, -1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void percpu_counter_sub(struct percpu_counter *fbc, s64 amount) >{ > percpu_counter_add(fbc, -amount); >} ># 13 "include/linux/proportions.h" 2 > > > >struct prop_global { > > > > > > int shift; > > > > > > > struct percpu_counter events; >}; > > > > > > >struct prop_descriptor { > int index; > struct prop_global pg[2]; > struct mutex mutex; >}; > >int prop_descriptor_init(struct prop_descriptor *pd, int shift); >void prop_change_shift(struct prop_descriptor *pd, int new_shift); > > > > > >struct prop_local_percpu { > > > > struct percpu_counter events; > > > > > int shift; > unsigned long period; > raw_spinlock_t lock; >}; > >int prop_local_init_percpu(struct prop_local_percpu *pl); >void prop_local_destroy_percpu(struct prop_local_percpu *pl); >void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl); >void prop_fraction_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl, > long *numerator, long *denominator); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __prop_inc_percpu(pd, pl); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} ># 93 "include/linux/proportions.h" >void __prop_inc_percpu_max(struct prop_descriptor *pd, > struct prop_local_percpu *pl, long frac); > > > > > > >struct prop_local_single { > > > > unsigned long events; > > > > > > unsigned long period; > int shift; > raw_spinlock_t lock; >}; > > > > > >int prop_local_init_single(struct prop_local_single *pl); >void prop_local_destroy_single(struct prop_local_single *pl); >void __prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl); >void prop_fraction_single(struct prop_descriptor *pd, struct prop_local_single *pl, > long *numerator, long *denominator); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >void prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __prop_inc_single(pd, pl); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} ># 39 "include/linux/sched.h" 2 ># 1 "include/linux/seccomp.h" 1 > > > ># 1 "include/uapi/linux/seccomp.h" 1 ># 40 "include/uapi/linux/seccomp.h" >struct seccomp_data { > int nr; > __u32 arch; > __u64 instruction_pointer; > __u64 args[6]; >}; ># 5 "include/linux/seccomp.h" 2 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/seccomp.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/unistd.h" 1 > > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/unistd.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/unistd.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/unistd.h" 1 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/unistd.h" 2 ># 8 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/unistd.h" 2 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/seccomp.h" 2 ># 10 "include/linux/seccomp.h" 2 > >struct seccomp_filter; ># 23 "include/linux/seccomp.h" >struct seccomp { > int mode; > struct seccomp_filter *filter; >}; > >extern int __secure_computing(int); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int secure_computing(int this_syscall) >{ > if (__builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 11)), 0)) > return __secure_computing(this_syscall); > return 0; >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void secure_computing_strict(int this_syscall) >{ > do { if (__builtin_expect(!!(secure_computing(this_syscall) != 0), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/seccomp.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "39" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); >} > >extern long prctl_get_seccomp(void); >extern long prctl_set_seccomp(unsigned long, char *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int seccomp_mode(struct seccomp *s) >{ > return s->mode; >} ># 77 "include/linux/seccomp.h" >extern void put_seccomp_filter(struct task_struct *tsk); >extern void get_seccomp_filter(struct task_struct *tsk); >extern u32 seccomp_bpf_load(int off); ># 40 "include/linux/sched.h" 2 > ># 1 "include/linux/rculist.h" 1 ># 43 "include/linux/rculist.h" >extern void __list_add_rcu(struct list_head *new, > struct list_head *prev, struct list_head *next); ># 63 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_add_rcu(struct list_head *new, struct list_head *head) >{ > __list_add_rcu(new, head, head->next); >} ># 84 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_add_tail_rcu(struct list_head *new, > struct list_head *head) >{ > __list_add_rcu(new, head->prev, head); >} ># 114 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_del_rcu(struct list_head *entry) >{ > __list_del_entry(entry); > entry->prev = ((void *) 0x00200200 + 0); >} ># 140 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_del_init_rcu(struct hlist_node *n) >{ > if (!hlist_unhashed(n)) { > __hlist_del(n); > n->pprev = ((void *)0); > } >} ># 156 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_replace_rcu(struct list_head *old, > struct list_head *new) >{ > new->next = old->next; > new->prev = old->prev; > do { __asm__ __volatile__ ("dmb" : : : "memory"); (((*((struct list_head **)(&(new->prev)->next))))) = (typeof(*(new)) *)((new)); } while (0); > new->next->prev = new; > old->prev = ((void *) 0x00200200 + 0); >} ># 183 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void list_splice_init_rcu(struct list_head *list, > struct list_head *head, > void (*sync)(void)) >{ > struct list_head *first = list->next; > struct list_head *last = list->prev; > struct list_head *at = head->next; > > if (list_empty(list)) > return; > > > > INIT_LIST_HEAD(list); ># 205 "include/linux/rculist.h" > sync(); ># 215 "include/linux/rculist.h" > last->next = at; > do { __asm__ __volatile__ ("dmb" : : : "memory"); (((*((struct list_head **)(&(head)->next))))) = (typeof(*(first)) *)((first)); } while (0); > first->prev = head; > at->prev = last; >} ># 322 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_del_rcu(struct hlist_node *n) >{ > __hlist_del(n); > n->pprev = ((void *) 0x00200200 + 0); >} ># 335 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_replace_rcu(struct hlist_node *old, > struct hlist_node *new) >{ > struct hlist_node *next = old->next; > > new->next = next; > new->pprev = old->pprev; > do { __asm__ __volatile__ ("dmb" : : : "memory"); ((*(struct hlist_node **)new->pprev)) = (typeof(*(new)) *)((new)); } while (0); > if (next) > new->next->pprev = &new->next; > old->pprev = ((void *) 0x00200200 + 0); >} ># 374 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_head_rcu(struct hlist_node *n, > struct hlist_head *h) >{ > struct hlist_node *first = h->first; > > n->next = first; > n->pprev = &h->first; > do { __asm__ __volatile__ ("dmb" : : : "memory"); (((*((struct hlist_node **)(&(h)->first))))) = (typeof(*(n)) *)((n)); } while (0); > if (first) > first->pprev = &n->next; >} ># 404 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_before_rcu(struct hlist_node *n, > struct hlist_node *next) >{ > n->pprev = next->pprev; > n->next = next; > do { __asm__ __volatile__ ("dmb" : : : "memory"); (((*((struct hlist_node **)((n)->pprev))))) = (typeof(*(n)) *)((n)); } while (0); > next->pprev = &n->next; >} ># 431 "include/linux/rculist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_add_after_rcu(struct hlist_node *prev, > struct hlist_node *n) >{ > n->next = prev->next; > n->pprev = &prev->next; > do { __asm__ __volatile__ ("dmb" : : : "memory"); (((*((struct hlist_node **)(&(prev)->next))))) = (typeof(*(n)) *)((n)); } while (0); > if (n->next) > n->next->pprev = &n->next; >} ># 42 "include/linux/sched.h" 2 ># 1 "include/linux/rtmutex.h" 1 ># 16 "include/linux/rtmutex.h" ># 1 "include/linux/plist.h" 1 ># 81 "include/linux/plist.h" >struct plist_head { > struct list_head node_list; >}; > >struct plist_node { > int prio; > struct list_head prio_list; > struct list_head node_list; >}; ># 116 "include/linux/plist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >plist_head_init(struct plist_head *head) >{ > INIT_LIST_HEAD(&head->node_list); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void plist_node_init(struct plist_node *node, int prio) >{ > node->prio = prio; > INIT_LIST_HEAD(&node->prio_list); > INIT_LIST_HEAD(&node->node_list); >} > >extern void plist_add(struct plist_node *node, struct plist_head *head); >extern void plist_del(struct plist_node *node, struct plist_head *head); ># 181 "include/linux/plist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int plist_head_empty(const struct plist_head *head) >{ > return list_empty(&head->node_list); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int plist_node_empty(const struct plist_node *node) >{ > return list_empty(&node->node_list); >} ># 237 "include/linux/plist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct plist_node *plist_first(const struct plist_head *head) >{ > return ({ const typeof( ((struct plist_node *)0)->node_list ) *__mptr = (head->node_list.next); (struct plist_node *)( (char *)__mptr - __builtin_offsetof(struct plist_node,node_list) );}) > ; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct plist_node *plist_last(const struct plist_head *head) >{ > return ({ const typeof( ((struct plist_node *)0)->node_list ) *__mptr = (head->node_list.prev); (struct plist_node *)( (char *)__mptr - __builtin_offsetof(struct plist_node,node_list) );}) > ; >} ># 17 "include/linux/rtmutex.h" 2 > > >extern int max_lock_depth; ># 28 "include/linux/rtmutex.h" >struct rt_mutex { > raw_spinlock_t wait_lock; > struct plist_head wait_list; > struct task_struct *owner; > > > > > > >}; > >struct rt_mutex_waiter; >struct hrtimer_sleeper; > > > > > > > static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rt_mutex_debug_check_no_locks_freed(const void *from, > unsigned long len) > { > return 0; > } ># 82 "include/linux/rtmutex.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rt_mutex_is_locked(struct rt_mutex *lock) >{ > return lock->owner != ((void *)0); >} > >extern void __rt_mutex_init(struct rt_mutex *lock, const char *name); >extern void rt_mutex_destroy(struct rt_mutex *lock); > >extern void rt_mutex_lock(struct rt_mutex *lock); >extern int rt_mutex_lock_interruptible(struct rt_mutex *lock, > int detect_deadlock); >extern int rt_mutex_timed_lock(struct rt_mutex *lock, > struct hrtimer_sleeper *timeout, > int detect_deadlock); > >extern int rt_mutex_trylock(struct rt_mutex *lock); > >extern void rt_mutex_unlock(struct rt_mutex *lock); ># 43 "include/linux/sched.h" 2 > > > ># 1 "include/linux/resource.h" 1 > > > ># 1 "include/uapi/linux/resource.h" 1 ># 23 "include/uapi/linux/resource.h" >struct rusage { > struct timeval ru_utime; > struct timeval ru_stime; > long ru_maxrss; > long ru_ixrss; > long ru_idrss; > long ru_isrss; > long ru_minflt; > long ru_majflt; > long ru_nswap; > long ru_inblock; > long ru_oublock; > long ru_msgsnd; > long ru_msgrcv; > long ru_nsignals; > long ru_nvcsw; > long ru_nivcsw; >}; > >struct rlimit { > unsigned long rlim_cur; > unsigned long rlim_max; >}; > > > >struct rlimit64 { > __u64 rlim_cur; > __u64 rlim_max; >}; ># 77 "include/uapi/linux/resource.h" ># 1 "arch/arm/include/generated/asm/resource.h" 1 ># 1 "include/asm-generic/resource.h" 1 > > > ># 1 "include/uapi/asm-generic/resource.h" 1 ># 5 "include/asm-generic/resource.h" 2 ># 1 "arch/arm/include/generated/asm/resource.h" 2 ># 78 "include/uapi/linux/resource.h" 2 ># 5 "include/linux/resource.h" 2 > > >struct task_struct; > >int getrusage(struct task_struct *p, int who, struct rusage *ru); >int do_prlimit(struct task_struct *tsk, unsigned int resource, > struct rlimit *new_rlim, struct rlimit *old_rlim); ># 47 "include/linux/sched.h" 2 > ># 1 "include/linux/hrtimer.h" 1 ># 25 "include/linux/hrtimer.h" ># 1 "include/linux/timerqueue.h" 1 > > > > > > > >struct timerqueue_node { > struct rb_node node; > ktime_t expires; >}; > >struct timerqueue_head { > struct rb_root head; > struct timerqueue_node *next; >}; > > >extern void timerqueue_add(struct timerqueue_head *head, > struct timerqueue_node *node); >extern void timerqueue_del(struct timerqueue_head *head, > struct timerqueue_node *node); >extern struct timerqueue_node *timerqueue_iterate_next( > struct timerqueue_node *node); ># 34 "include/linux/timerqueue.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >struct timerqueue_node *timerqueue_getnext(struct timerqueue_head *head) >{ > return head->next; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void timerqueue_init(struct timerqueue_node *node) >{ > ((&node->node)->__rb_parent_color = (unsigned long)(&node->node)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void timerqueue_init_head(struct timerqueue_head *head) >{ > head->head = (struct rb_root) { ((void *)0), }; > head->next = ((void *)0); >} ># 26 "include/linux/hrtimer.h" 2 > >struct hrtimer_clock_base; >struct hrtimer_cpu_base; > > > > >enum hrtimer_mode { > HRTIMER_MODE_ABS = 0x0, > HRTIMER_MODE_REL = 0x1, > HRTIMER_MODE_PINNED = 0x02, > HRTIMER_MODE_ABS_PINNED = 0x02, > HRTIMER_MODE_REL_PINNED = 0x03, >}; > > > > >enum hrtimer_restart { > HRTIMER_NORESTART, > HRTIMER_RESTART, >}; ># 108 "include/linux/hrtimer.h" >struct hrtimer { > struct timerqueue_node node; > ktime_t _softexpires; > enum hrtimer_restart (*function)(struct hrtimer *); > struct hrtimer_clock_base *base; > unsigned long state; > > int start_pid; > void *start_site; > char start_comm[16]; > >}; ># 128 "include/linux/hrtimer.h" >struct hrtimer_sleeper { > struct hrtimer timer; > struct task_struct *task; >}; ># 145 "include/linux/hrtimer.h" >struct hrtimer_clock_base { > struct hrtimer_cpu_base *cpu_base; > int index; > clockid_t clockid; > struct timerqueue_head active; > ktime_t resolution; > ktime_t (*get_time)(void); > ktime_t softirq_time; > ktime_t offset; >}; > >enum hrtimer_base_type { > HRTIMER_BASE_MONOTONIC, > HRTIMER_BASE_REALTIME, > HRTIMER_BASE_BOOTTIME, > HRTIMER_MAX_CLOCK_BASES, >}; ># 179 "include/linux/hrtimer.h" >struct hrtimer_cpu_base { > raw_spinlock_t lock; > unsigned int active_bases; > unsigned int clock_was_set; > > ktime_t expires_next; > int hres_active; > int hang_detected; > unsigned long nr_events; > unsigned long nr_retries; > unsigned long nr_hangs; > ktime_t max_hang_time; > > struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES]; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) >{ > timer->node.expires = time; > timer->_softexpires = time; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_set_expires_range(struct hrtimer *timer, ktime_t time, ktime_t delta) >{ > timer->_softexpires = time; > timer->node.expires = ktime_add_safe(time, delta); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_set_expires_range_ns(struct hrtimer *timer, ktime_t time, unsigned long delta) >{ > timer->_softexpires = time; > timer->node.expires = ktime_add_safe(time, ns_to_ktime(delta)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_set_expires_tv64(struct hrtimer *timer, s64 tv64) >{ > timer->node.expires.tv64 = tv64; > timer->_softexpires.tv64 = tv64; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_add_expires(struct hrtimer *timer, ktime_t time) >{ > timer->node.expires = ktime_add_safe(timer->node.expires, time); > timer->_softexpires = ktime_add_safe(timer->_softexpires, time); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_add_expires_ns(struct hrtimer *timer, u64 ns) >{ > timer->node.expires = ({ (ktime_t){ .tv64 = (timer->node.expires).tv64 + (ns) }; }); > timer->_softexpires = ({ (ktime_t){ .tv64 = (timer->_softexpires).tv64 + (ns) }; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t hrtimer_get_expires(const struct hrtimer *timer) >{ > return timer->node.expires; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t hrtimer_get_softexpires(const struct hrtimer *timer) >{ > return timer->_softexpires; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 hrtimer_get_expires_tv64(const struct hrtimer *timer) >{ > return timer->node.expires.tv64; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 hrtimer_get_softexpires_tv64(const struct hrtimer *timer) >{ > return timer->_softexpires.tv64; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 hrtimer_get_expires_ns(const struct hrtimer *timer) >{ > return ((timer->node.expires).tv64); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t hrtimer_expires_remaining(const struct hrtimer *timer) >{ > return ({ (ktime_t){ .tv64 = (timer->node.expires).tv64 - (timer->base->get_time()).tv64 }; }); >} > > >struct clock_event_device; > >extern void hrtimer_interrupt(struct clock_event_device *dev); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ktime_t hrtimer_cb_get_time(struct hrtimer *timer) >{ > return timer->base->get_time(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_is_hres_active(struct hrtimer *timer) >{ > return timer->base->cpu_base->hres_active; >} > >extern void hrtimer_peek_ahead_timers(void); ># 291 "include/linux/hrtimer.h" >extern void clock_was_set_delayed(void); ># 318 "include/linux/hrtimer.h" >extern void clock_was_set(void); > >extern void timerfd_clock_was_set(void); > > > >extern void hrtimers_resume(void); > >extern ktime_t ktime_get(void); >extern ktime_t ktime_get_real(void); >extern ktime_t ktime_get_boottime(void); >extern ktime_t ktime_get_monotonic_offset(void); >extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot); > >extern __attribute__((section(".data..percpu" ""))) __typeof__(struct tick_device) tick_cpu_device; > > > > > >extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, > enum hrtimer_mode mode); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hrtimer_init_on_stack(struct hrtimer *timer, > clockid_t which_clock, > enum hrtimer_mode mode) >{ > hrtimer_init(timer, which_clock, mode); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void destroy_hrtimer_on_stack(struct hrtimer *timer) { } > > > >extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, > const enum hrtimer_mode mode); >extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, > unsigned long range_ns, const enum hrtimer_mode mode); >extern int >__hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, > unsigned long delta_ns, > const enum hrtimer_mode mode, int wakeup); > >extern int hrtimer_cancel(struct hrtimer *timer); >extern int hrtimer_try_to_cancel(struct hrtimer *timer); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_start_expires(struct hrtimer *timer, > enum hrtimer_mode mode) >{ > unsigned long delta; > ktime_t soft, hard; > soft = hrtimer_get_softexpires(timer); > hard = hrtimer_get_expires(timer); > delta = ((({ (ktime_t){ .tv64 = (hard).tv64 - (soft).tv64 }; })).tv64); > return hrtimer_start_range_ns(timer, soft, delta, mode); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_restart(struct hrtimer *timer) >{ > return hrtimer_start_expires(timer, HRTIMER_MODE_ABS); >} > > >extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); >extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); > >extern ktime_t hrtimer_get_next_event(void); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_active(const struct hrtimer *timer) >{ > return timer->state != 0x00; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_is_queued(struct hrtimer *timer) >{ > return timer->state & 0x01; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hrtimer_callback_running(struct hrtimer *timer) >{ > return timer->state & 0x02; >} > > >extern u64 >hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 hrtimer_forward_now(struct hrtimer *timer, > ktime_t interval) >{ > return hrtimer_forward(timer, timer->base->get_time(), interval); >} > > >extern long hrtimer_nanosleep(struct timespec *rqtp, > struct timespec *rmtp, > const enum hrtimer_mode mode, > const clockid_t clockid); >extern long hrtimer_nanosleep_restart(struct restart_block *restart_block); > >extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, > struct task_struct *tsk); > >extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta, > const enum hrtimer_mode mode); >extern int schedule_hrtimeout_range_clock(ktime_t *expires, > unsigned long delta, const enum hrtimer_mode mode, int clock); >extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode); > > >extern void hrtimer_run_queues(void); >extern void hrtimer_run_pending(void); > > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) hrtimers_init(void); > > >extern u64 ktime_divns(const ktime_t kt, s64 div); > > > > > >extern void sysrq_timer_list_show(void); ># 49 "include/linux/sched.h" 2 ># 1 "include/linux/task_io_accounting.h" 1 ># 11 "include/linux/task_io_accounting.h" >struct task_io_accounting { > > > u64 rchar; > > u64 wchar; > > u64 syscr; > > u64 syscw; > > > > > > > > u64 read_bytes; > > > > > > u64 write_bytes; ># 43 "include/linux/task_io_accounting.h" > u64 cancelled_write_bytes; > >}; ># 50 "include/linux/sched.h" 2 ># 1 "include/linux/latencytop.h" 1 ># 13 "include/linux/latencytop.h" >struct task_struct; ># 42 "include/linux/latencytop.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >account_scheduler_latency(struct task_struct *task, int usecs, int inter) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_all_latency_tracing(struct task_struct *p) >{ >} ># 51 "include/linux/sched.h" 2 ># 1 "include/linux/cred.h" 1 ># 17 "include/linux/cred.h" ># 1 "include/linux/key.h" 1 ># 30 "include/linux/key.h" >typedef int32_t key_serial_t; > > >typedef uint32_t key_perm_t; > >struct key; ># 75 "include/linux/key.h" >struct seq_file; >struct user_struct; >struct signal_struct; >struct cred; > >struct key_type; >struct key_owner; >struct keyring_list; >struct keyring_name; ># 99 "include/linux/key.h" >typedef struct __key_reference_with_attributes *key_ref_t; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) key_ref_t make_key_ref(const struct key *key, > unsigned long possession) >{ > return (key_ref_t) ((unsigned long) key | possession); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct key *key_ref_to_ptr(const key_ref_t key_ref) >{ > return (struct key *) ((unsigned long) key_ref & ~1UL); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long is_key_possessed(const key_ref_t key_ref) >{ > return (unsigned long) key_ref & 1UL; >} ># 125 "include/linux/key.h" >struct key { > atomic_t usage; > key_serial_t serial; > union { > struct list_head graveyard_link; > struct rb_node serial_node; > }; > struct key_type *type; > struct rw_semaphore sem; > struct key_user *user; > void *security; > union { > time_t expiry; > time_t revoked_at; > }; > time_t last_used_at; > kuid_t uid; > kgid_t gid; > key_perm_t perm; > unsigned short quotalen; > unsigned short datalen; ># 156 "include/linux/key.h" > unsigned long flags; ># 171 "include/linux/key.h" > char *description; > > > > > union { > struct list_head link; > unsigned long x[2]; > void *p[2]; > int reject_error; > } type_data; > > > > > > union { > unsigned long value; > void *rcudata; > void *data; > struct keyring_list *subscriptions; > } payload; >}; > >extern struct key *key_alloc(struct key_type *type, > const char *desc, > kuid_t uid, kgid_t gid, > const struct cred *cred, > key_perm_t perm, > unsigned long flags); > > > > > > >extern void key_revoke(struct key *key); >extern void key_invalidate(struct key *key); >extern void key_put(struct key *key); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct key *key_get(struct key *key) >{ > if (key) > atomic_add(1, &key->usage); > return key; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void key_ref_put(key_ref_t key_ref) >{ > key_put(key_ref_to_ptr(key_ref)); >} > >extern struct key *request_key(struct key_type *type, > const char *description, > const char *callout_info); > >extern struct key *request_key_with_auxdata(struct key_type *type, > const char *description, > const void *callout_info, > size_t callout_len, > void *aux); > >extern struct key *request_key_async(struct key_type *type, > const char *description, > const void *callout_info, > size_t callout_len); > >extern struct key *request_key_async_with_auxdata(struct key_type *type, > const char *description, > const void *callout_info, > size_t callout_len, > void *aux); > >extern int wait_for_key_construction(struct key *key, bool intr); > >extern int key_validate(const struct key *key); > >extern key_ref_t key_create_or_update(key_ref_t keyring, > const char *type, > const char *description, > const void *payload, > size_t plen, > key_perm_t perm, > unsigned long flags); > >extern int key_update(key_ref_t key, > const void *payload, > size_t plen); > >extern int key_link(struct key *keyring, > struct key *key); > >extern int key_unlink(struct key *keyring, > struct key *key); > >extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, > const struct cred *cred, > key_perm_t perm, > unsigned long flags, > struct key *dest); > >extern int keyring_clear(struct key *keyring); > >extern key_ref_t keyring_search(key_ref_t keyring, > struct key_type *type, > const char *description); > >extern int keyring_add_key(struct key *keyring, > struct key *key); > >extern struct key *key_lookup(key_serial_t id); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) key_serial_t key_serial(const struct key *key) >{ > return key ? key->serial : 0; >} > >extern void key_set_timeout(struct key *, unsigned); ># 297 "include/linux/key.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool key_is_instantiated(const struct key *key) >{ > return test_bit(0, &key->flags) && > !test_bit(5, &key->flags); >} ># 313 "include/linux/key.h" >extern ctl_table key_sysctls[]; > > > > >extern int install_thread_keyring_to_cred(struct cred *cred); >extern void key_fsuid_changed(struct task_struct *tsk); >extern void key_fsgid_changed(struct task_struct *tsk); >extern void key_init(void); ># 18 "include/linux/cred.h" 2 ># 1 "include/linux/selinux.h" 1 ># 17 "include/linux/selinux.h" >struct selinux_audit_rule; >struct audit_context; >struct kern_ipc_perm; > > > > > > >bool selinux_is_enabled(void); ># 19 "include/linux/cred.h" 2 > > > >struct user_struct; >struct cred; >struct inode; > > > > > > > >struct group_info { > atomic_t usage; > int ngroups; > int nblocks; > kgid_t small_block[32]; > kgid_t *blocks[0]; >}; ># 49 "include/linux/cred.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct group_info *get_group_info(struct group_info *gi) >{ > atomic_add(1, &gi->usage); > return gi; >} ># 65 "include/linux/cred.h" >extern struct group_info *groups_alloc(int); >extern struct group_info init_groups; >extern void groups_free(struct group_info *); >extern int set_current_groups(struct group_info *); >extern int set_groups(struct cred *, struct group_info *); >extern int groups_search(const struct group_info *, kgid_t); > > > > > >extern int in_group_p(kgid_t); >extern int in_egroup_p(kgid_t); ># 102 "include/linux/cred.h" >struct cred { > atomic_t usage; > > > > > > > > kuid_t uid; > kgid_t gid; > kuid_t suid; > kgid_t sgid; > kuid_t euid; > kgid_t egid; > kuid_t fsuid; > kgid_t fsgid; > unsigned securebits; > kernel_cap_t cap_inheritable; > kernel_cap_t cap_permitted; > kernel_cap_t cap_effective; > kernel_cap_t cap_bset; > > unsigned char jit_keyring; > > struct key *session_keyring; > struct key *process_keyring; > struct key *thread_keyring; > struct key *request_key_auth; > > > void *security; > > struct user_struct *user; > struct user_namespace *user_ns; > struct group_info *group_info; > struct callback_head rcu; >}; > >extern void __put_cred(struct cred *); >extern void exit_creds(struct task_struct *); >extern int copy_creds(struct task_struct *, unsigned long); >extern const struct cred *get_task_cred(struct task_struct *); >extern struct cred *cred_alloc_blank(void); >extern struct cred *prepare_creds(void); >extern struct cred *prepare_exec_creds(void); >extern int commit_creds(struct cred *); >extern void abort_creds(struct cred *); >extern const struct cred *override_creds(const struct cred *); >extern void revert_creds(const struct cred *); >extern struct cred *prepare_kernel_cred(struct task_struct *); >extern int change_create_files_as(struct cred *, struct inode *); >extern int set_security_override(struct cred *, u32); >extern int set_security_override_from_ctx(struct cred *, const char *); >extern int set_create_files_as(struct cred *, struct inode *); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) cred_init(void); > >extern void secureboot_enable(void); ># 190 "include/linux/cred.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void validate_creds(const struct cred *cred) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void validate_creds_for_do_exit(struct task_struct *tsk) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void validate_process_creds(void) >{ >} ># 208 "include/linux/cred.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct cred *get_new_cred(struct cred *cred) >{ > atomic_add(1, &cred->usage); > return cred; >} ># 227 "include/linux/cred.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const struct cred *get_cred(const struct cred *cred) >{ > struct cred *nonconst_cred = (struct cred *) cred; > validate_creds(cred); > return get_new_cred(nonconst_cred); >} ># 245 "include/linux/cred.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void put_cred(const struct cred *_cred) >{ > struct cred *cred = (struct cred *) _cred; > > validate_creds(cred); > if ((atomic_sub_return(1, &(cred)->usage) == 0)) > __put_cred(cred); >} ># 345 "include/linux/cred.h" >extern struct user_namespace init_user_ns; ># 52 "include/linux/sched.h" 2 ># 1 "include/linux/llist.h" 1 ># 61 "include/linux/llist.h" >struct llist_head { > struct llist_node *first; >}; > >struct llist_node { > struct llist_node *next; >}; ># 76 "include/linux/llist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_llist_head(struct llist_head *list) >{ > list->first = ((void *)0); >} ># 160 "include/linux/llist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool llist_empty(const struct llist_head *head) >{ > return (*(volatile typeof(head->first) *)&(head->first)) == ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct llist_node *llist_next(struct llist_node *node) >{ > return node->next; >} ># 177 "include/linux/llist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool llist_add(struct llist_node *new, struct llist_head *head) >{ > struct llist_node *entry, *old_entry; > > entry = head->first; > for (;;) { > old_entry = entry; > new->next = entry; > entry = ((__typeof__(*(&head->first)))__cmpxchg_mb((&head->first), (unsigned long)(old_entry), (unsigned long)(new), sizeof(*(&head->first)))); > if (entry == old_entry) > break; > } > > return old_entry == ((void *)0); >} ># 201 "include/linux/llist.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct llist_node *llist_del_all(struct llist_head *head) >{ > return ((__typeof__(*(&head->first)))__xchg((unsigned long)(((void *)0)),(&head->first),sizeof(*(&head->first)))); >} > >extern bool llist_add_batch(struct llist_node *new_first, > struct llist_node *new_last, > struct llist_head *head); >extern struct llist_node *llist_del_first(struct llist_head *head); ># 53 "include/linux/sched.h" 2 > > > > >struct exec_domain; >struct futex_pi_state; >struct robust_list_head; >struct bio_list; >struct fs_struct; >struct perf_event_context; >struct blk_plug; ># 81 "include/linux/sched.h" >extern unsigned long avenrun[]; >extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift); ># 96 "include/linux/sched.h" >extern unsigned long total_forks; >extern int nr_threads; >extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned long) process_counts; >extern int nr_processes(void); >extern unsigned long nr_running(void); >extern unsigned long nr_uninterruptible(void); >extern unsigned long nr_iowait(void); >extern unsigned long nr_iowait_cpu(int cpu); >extern unsigned long this_cpu_load(void); > > >extern void calc_global_load(unsigned long ticks); >extern void update_cpu_load_nohz(void); > > >struct task_migration_notifier { > struct task_struct *task; > int from_cpu; > int to_cpu; >}; >extern void register_task_migration_notifier(struct notifier_block *n); > >extern unsigned long get_parent_ip(unsigned long addr); > >extern void dump_cpu_task(int cpu); > >struct seq_file; >struct cfs_rq; >struct task_group; > >extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m); >extern void proc_sched_set_task(struct task_struct *p); >extern void >print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq); ># 170 "include/linux/sched.h" >extern char ___assert_task_state[1 - 2*!!( > sizeof("RSDTtZXxKW")-1 != ( __builtin_constant_p(512) ? ( (512) < 1 ? ____ilog2_NaN() : (512) & (1ULL << 63) ? 63 : (512) & (1ULL << 62) ? 62 : (512) & (1ULL << 61) ? 61 : (512) & (1ULL << 60) ? 60 : (512) & (1ULL << 59) ? 59 : (512) & (1ULL << 58) ? 58 : (512) & (1ULL << 57) ? 57 : (512) & (1ULL << 56) ? 56 : (512) & (1ULL << 55) ? 55 : (512) & (1ULL << 54) ? 54 : (512) & (1ULL << 53) ? 53 : (512) & (1ULL << 52) ? 52 : (512) & (1ULL << 51) ? 51 : (512) & (1ULL << 50) ? 50 : (512) & (1ULL << 49) ? 49 : (512) & (1ULL << 48) ? 48 : (512) & (1ULL << 47) ? 47 : (512) & (1ULL << 46) ? 46 : (512) & (1ULL << 45) ? 45 : (512) & (1ULL << 44) ? 44 : (512) & (1ULL << 43) ? 43 : (512) & (1ULL << 42) ? 42 : (512) & (1ULL << 41) ? 41 : (512) & (1ULL << 40) ? 40 : (512) & (1ULL << 39) ? 39 : (512) & (1ULL << 38) ? 38 : (512) & (1ULL << 37) ? 37 : (512) & (1ULL << 36) ? 36 : (512) & (1ULL << 35) ? 35 : (512) & (1ULL << 34) ? 34 : (512) & (1ULL << 33) ? 33 : (512) & (1ULL << 32) ? 32 : (512) & (1ULL << 31) ? 31 : (512) & (1ULL << 30) ? 30 : (512) & (1ULL << 29) ? 29 : (512) & (1ULL << 28) ? 28 : (512) & (1ULL << 27) ? 27 : (512) & (1ULL << 26) ? 26 : (512) & (1ULL << 25) ? 25 : (512) & (1ULL << 24) ? 24 : (512) & (1ULL << 23) ? 23 : (512) & (1ULL << 22) ? 22 : (512) & (1ULL << 21) ? 21 : (512) & (1ULL << 20) ? 20 : (512) & (1ULL << 19) ? 19 : (512) & (1ULL << 18) ? 18 : (512) & (1ULL << 17) ? 17 : (512) & (1ULL << 16) ? 16 : (512) & (1ULL << 15) ? 15 : (512) & (1ULL << 14) ? 14 : (512) & (1ULL << 13) ? 13 : (512) & (1ULL << 12) ? 12 : (512) & (1ULL << 11) ? 11 : (512) & (1ULL << 10) ? 10 : (512) & (1ULL << 9) ? 9 : (512) & (1ULL << 8) ? 8 : (512) & (1ULL << 7) ? 7 : (512) & (1ULL << 6) ? 6 : (512) & (1ULL << 5) ? 5 : (512) & (1ULL << 4) ? 4 : (512) & (1ULL << 3) ? 3 : (512) & (1ULL << 2) ? 2 : (512) & (1ULL << 1) ? 1 : (512) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof(512) <= 4) ? __ilog2_u32(512) : __ilog2_u64(512) )+1)]; ># 228 "include/linux/sched.h" >extern rwlock_t tasklist_lock; >extern spinlock_t mmlist_lock; > >struct task_struct; > > > > > >extern void sched_init(void); >extern void sched_init_smp(void); >extern void schedule_tail(struct task_struct *prev); >extern void init_idle(struct task_struct *idle, int cpu); >extern void init_idle_bootup_task(struct task_struct *idle); > >extern int runqueue_is_locked(int cpu); > > >extern void nohz_balance_enter_idle(int cpu); >extern void set_cpu_sd_state_idle(void); >extern int get_nohz_timer_target(void); ># 257 "include/linux/sched.h" >extern void show_state_filter(unsigned long state_filter); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void show_state(void) >{ > show_state_filter(0); >} > >extern void show_regs(struct pt_regs *); > > > > > > >extern void show_stack(struct task_struct *task, unsigned long *sp); > >void io_schedule(void); >long io_schedule_timeout(long timeout); > >extern void cpu_init (void); >extern void trap_init(void); >extern void update_process_times(int user); >extern void scheduler_tick(void); > >extern void sched_show_task(struct task_struct *p); > > >extern void touch_softlockup_watchdog(void); >extern void touch_softlockup_watchdog_sync(void); >extern void touch_all_softlockup_watchdogs(void); >extern int proc_dowatchdog_thresh(struct ctl_table *table, int write, > void *buffer, > size_t *lenp, loff_t *ppos); >extern unsigned int softlockup_panic; >void lockup_detector_init(void); ># 317 "include/linux/sched.h" >enum { sysctl_hung_task_timeout_secs = 0 }; > > > > > > >extern char __sched_text_start[], __sched_text_end[]; > > >extern int in_sched_functions(unsigned long addr); > > >extern signed long schedule_timeout(signed long timeout); >extern signed long schedule_timeout_interruptible(signed long timeout); >extern signed long schedule_timeout_killable(signed long timeout); >extern signed long schedule_timeout_uninterruptible(signed long timeout); > void schedule(void); >extern void schedule_preempt_disabled(void); >extern int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner); > >struct nsproxy; >struct user_namespace; ># 356 "include/linux/sched.h" >extern int sysctl_max_map_count; > ># 1 "include/linux/aio.h" 1 > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/aio_abi.h" 1 ># 33 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/aio_abi.h" >typedef __kernel_ulong_t aio_context_t; > >enum { > IOCB_CMD_PREAD = 0, > IOCB_CMD_PWRITE = 1, > IOCB_CMD_FSYNC = 2, > IOCB_CMD_FDSYNC = 3, > > > > > IOCB_CMD_NOOP = 6, > IOCB_CMD_PREADV = 7, > IOCB_CMD_PWRITEV = 8, >}; ># 58 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/aio_abi.h" >struct io_event { > __u64 data; > __u64 obj; > __s64 res; > __s64 res2; >}; ># 79 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/aio_abi.h" >struct iocb { > > __u64 aio_data; > __u32 aio_key, aio_reserved1; > > > > __u16 aio_lio_opcode; > __s16 aio_reqprio; > __u32 aio_fildes; > > __u64 aio_buf; > __u64 aio_nbytes; > __s64 aio_offset; > > > __u64 aio_reserved2; > > > __u32 aio_flags; > > > > > > __u32 aio_resfd; >}; ># 7 "include/linux/aio.h" 2 ># 1 "include/linux/uio.h" 1 ># 12 "include/linux/uio.h" ># 1 "include/uapi/linux/uio.h" 1 ># 16 "include/uapi/linux/uio.h" >struct iovec >{ > void *iov_base; > __kernel_size_t iov_len; >}; ># 13 "include/linux/uio.h" 2 > > >struct kvec { > void *iov_base; > size_t iov_len; >}; ># 27 "include/linux/uio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) size_t iov_length(const struct iovec *iov, unsigned long nr_segs) >{ > unsigned long seg; > size_t ret = 0; > > for (seg = 0; seg < nr_segs; seg++) > ret += iov[seg].iov_len; > return ret; >} > >unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); ># 8 "include/linux/aio.h" 2 > > > > > > > >struct kioctx; ># 87 "include/linux/aio.h" >struct kiocb { > struct list_head ki_run_list; > unsigned long ki_flags; > int ki_users; > unsigned ki_key; > > struct file *ki_filp; > struct kioctx *ki_ctx; > int (*ki_cancel)(struct kiocb *, struct io_event *); > ssize_t (*ki_retry)(struct kiocb *); > void (*ki_dtor)(struct kiocb *); > > union { > void *user; > struct task_struct *tsk; > } ki_obj; > > __u64 ki_user_data; > loff_t ki_pos; > > void *private; > > unsigned short ki_opcode; > size_t ki_nbytes; > char *ki_buf; > size_t ki_left; > struct iovec ki_inline_vec; > struct iovec *ki_iovec; > unsigned long ki_nr_segs; > unsigned long ki_cur_seg; > > struct list_head ki_list; > > struct list_head ki_batch; > > > > > > struct eventfd_ctx *ki_eventfd; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool is_sync_kiocb(struct kiocb *kiocb) >{ > return kiocb->ki_key == (~0U); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) >{ > *kiocb = (struct kiocb) { > .ki_users = 1, > .ki_key = (~0U), > .ki_filp = filp, > .ki_obj.tsk = (current_thread_info()->task), > }; >} > > > > >struct aio_ring { > unsigned id; > unsigned nr; > unsigned head; > unsigned tail; > > unsigned magic; > unsigned compat_features; > unsigned incompat_features; > unsigned header_length; > > > struct io_event io_events[0]; >}; > > >struct aio_ring_info { > unsigned long mmap_base; > unsigned long mmap_size; > > struct page **ring_pages; > spinlock_t ring_lock; > long nr_pages; > > unsigned nr, tail; > > struct page *internal_pages[8]; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned aio_ring_avail(struct aio_ring_info *info, > struct aio_ring *ring) >{ > return (ring->head + info->nr - 1 - ring->tail) % info->nr; >} > >struct kioctx { > atomic_t users; > int dead; > struct mm_struct *mm; > > > unsigned long user_id; > struct hlist_node list; > > wait_queue_head_t wait; > > spinlock_t ctx_lock; > > int reqs_active; > struct list_head active_reqs; > struct list_head run_list; > > > unsigned max_reqs; > > struct aio_ring_info ring_info; > > struct delayed_work wq; > > struct callback_head callback_head; >}; > > >extern unsigned aio_max_size; > > >extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb); >extern int aio_put_req(struct kiocb *iocb); >extern void kick_iocb(struct kiocb *iocb); >extern int aio_complete(struct kiocb *iocb, long res, long res2); >struct mm_struct; >extern void exit_aio(struct mm_struct *mm); >extern long do_io_submit(aio_context_t ctx_id, long nr, > struct iocb * *iocbpp, bool compat); ># 233 "include/linux/aio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kiocb *list_kiocb(struct list_head *h) >{ > return ({ const typeof( ((struct kiocb *)0)->ki_list ) *__mptr = (h); (struct kiocb *)( (char *)__mptr - __builtin_offsetof(struct kiocb,ki_list) );}); >} > > >extern unsigned long aio_nr; >extern unsigned long aio_max_nr; ># 359 "include/linux/sched.h" 2 > > >extern void arch_pick_mmap_layout(struct mm_struct *mm); >extern unsigned long >arch_get_unmapped_area(struct file *, unsigned long, unsigned long, > unsigned long, unsigned long); >extern unsigned long >arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, > unsigned long len, unsigned long pgoff, > unsigned long flags); >extern void arch_unmap_area(struct mm_struct *, unsigned long); >extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); > > > > > >extern void set_dumpable(struct mm_struct *mm, int value); >extern int get_dumpable(struct mm_struct *mm); ># 424 "include/linux/sched.h" >struct sighand_struct { > atomic_t count; > struct k_sigaction action[64]; > spinlock_t siglock; > wait_queue_head_t signalfd_wqh; >}; > >struct pacct_struct { > int ac_flag; > long ac_exitcode; > unsigned long ac_mem; > cputime_t ac_utime, ac_stime; > unsigned long ac_minflt, ac_majflt; >}; > >struct cpu_itimer { > cputime_t expires; > cputime_t incr; > u32 error; > u32 incr_error; >}; ># 453 "include/linux/sched.h" >struct cputime { > cputime_t utime; > cputime_t stime; >}; ># 472 "include/linux/sched.h" >struct task_cputime { > cputime_t utime; > cputime_t stime; > unsigned long long sum_exec_runtime; >}; ># 508 "include/linux/sched.h" >struct thread_group_cputimer { > struct task_cputime cputime; > int running; > raw_spinlock_t lock; >}; > > >struct autogroup; ># 524 "include/linux/sched.h" >struct signal_struct { > atomic_t sigcnt; > atomic_t live; > int nr_threads; > > wait_queue_head_t wait_chldexit; > > > struct task_struct *curr_target; > > > struct sigpending shared_pending; > > > int group_exit_code; > > > > > > int notify_count; > struct task_struct *group_exit_task; > > > int group_stop_count; > unsigned int flags; ># 560 "include/linux/sched.h" > unsigned int is_child_subreaper:1; > unsigned int has_child_subreaper:1; > > > struct list_head posix_timers; > > > struct hrtimer real_timer; > struct pid *leader_pid; > ktime_t it_real_incr; > > > > > > > struct cpu_itimer it[2]; > > > > > > struct thread_group_cputimer cputimer; > > > struct task_cputime cputime_expires; > > struct list_head cpu_timers[3]; > > struct pid *tty_old_pgrp; > > > int leader; > > struct tty_struct *tty; > > > struct autogroup *autogroup; > > > > > > > > cputime_t utime, stime, cutime, cstime; > cputime_t gtime; > cputime_t cgtime; > > struct cputime prev_cputime; > > unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw; > unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt; > unsigned long inblock, oublock, cinblock, coublock; > unsigned long maxrss, cmaxrss; > struct task_io_accounting ioac; > > > > > > > > unsigned long long sum_sched_runtime; ># 634 "include/linux/sched.h" > struct rlimit rlim[16]; > > > struct pacct_struct pacct; > > > struct taskstats *stats; > > > unsigned audit_tty; > struct tty_audit_buf *tty_audit_buf; ># 656 "include/linux/sched.h" > struct rw_semaphore group_rwsem; > > > oom_flags_t oom_flags; > short oom_score_adj; > short oom_score_adj_min; > > > struct mutex cred_guard_mutex; > > >}; ># 685 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int signal_group_exit(const struct signal_struct *sig) >{ > return (sig->flags & 0x00000004) || > (sig->group_exit_task != ((void *)0)); >} > > > > >struct user_struct { > atomic_t __count; > atomic_t processes; > atomic_t files; > atomic_t sigpending; > > atomic_t inotify_watches; > atomic_t inotify_devs; > > > atomic_t fanotify_listeners; > > > atomic_long_t epoll_watches; > > > > unsigned long mq_bytes; > > unsigned long locked_shm; > > > struct key *uid_keyring; > struct key *session_keyring; > > > > struct hlist_node uidhash_node; > kuid_t uid; > > > atomic_long_t locked_vm; > >}; > >extern int uids_sysfs_init(void); > >extern struct user_struct *find_user(kuid_t); > >extern struct user_struct root_user; > > > >struct backing_dev_info; >struct reclaim_state; > > >struct sched_info { > > unsigned long pcount; > unsigned long long run_delay; > > > unsigned long long last_arrival, > last_queued; >}; > > > >struct task_delay_info { > spinlock_t lock; > unsigned int flags; ># 772 "include/linux/sched.h" > struct timespec blkio_start, blkio_end; > u64 blkio_delay; > u64 swapin_delay; > u32 blkio_count; > > u32 swapin_count; > > > struct timespec freepages_start, freepages_end; > u64 freepages_delay; > u32 freepages_count; >}; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sched_info_on(void) >{ > > return 1; > > > > > > >} > >enum cpu_idle_type { > CPU_IDLE, > CPU_NOT_IDLE, > CPU_NEWLY_IDLE, > CPU_MAX_IDLE_TYPES >}; ># 853 "include/linux/sched.h" >extern int __attribute__((weak)) arch_sd_sibiling_asym_packing(void); > >struct sched_group_power { > atomic_t ref; > > > > > unsigned int power, power_orig; > unsigned long next_update; > > > > atomic_t nr_busy_cpus; > > unsigned long cpumask[0]; >}; > >struct sched_group { > struct sched_group *next; > atomic_t ref; > > unsigned int group_weight; > struct sched_group_power *sgp; ># 885 "include/linux/sched.h" > unsigned long cpumask[0]; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct cpumask *sched_group_cpus(struct sched_group *sg) >{ > return ((struct cpumask *)(1 ? (sg->cpumask) : (void *)sizeof(__check_is_bitmap(sg->cpumask)))); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct cpumask *sched_group_mask(struct sched_group *sg) >{ > return ((struct cpumask *)(1 ? (sg->sgp->cpumask) : (void *)sizeof(__check_is_bitmap(sg->sgp->cpumask)))); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int group_first_cpu(struct sched_group *group) >{ > return cpumask_first(sched_group_cpus(group)); >} > >struct sched_domain_attr { > int relax_domain_level; >}; > > > > > >extern int sched_domain_level_max; > >struct sched_domain { > > struct sched_domain *parent; > struct sched_domain *child; > struct sched_group *groups; > unsigned long min_interval; > unsigned long max_interval; > unsigned int busy_factor; > unsigned int imbalance_pct; > unsigned int cache_nice_tries; > unsigned int busy_idx; > unsigned int idle_idx; > unsigned int newidle_idx; > unsigned int wake_idx; > unsigned int forkexec_idx; > unsigned int smt_gain; > int flags; > int level; > > > unsigned long last_balance; > unsigned int balance_interval; > unsigned int nr_balance_failed; > > u64 last_update; > > > > unsigned int lb_count[CPU_MAX_IDLE_TYPES]; > unsigned int lb_failed[CPU_MAX_IDLE_TYPES]; > unsigned int lb_balanced[CPU_MAX_IDLE_TYPES]; > unsigned int lb_imbalance[CPU_MAX_IDLE_TYPES]; > unsigned int lb_gained[CPU_MAX_IDLE_TYPES]; > unsigned int lb_hot_gained[CPU_MAX_IDLE_TYPES]; > unsigned int lb_nobusyg[CPU_MAX_IDLE_TYPES]; > unsigned int lb_nobusyq[CPU_MAX_IDLE_TYPES]; > > > unsigned int alb_count; > unsigned int alb_failed; > unsigned int alb_pushed; > > > unsigned int sbe_count; > unsigned int sbe_balanced; > unsigned int sbe_pushed; > > > unsigned int sbf_count; > unsigned int sbf_balanced; > unsigned int sbf_pushed; > > > unsigned int ttwu_wake_remote; > unsigned int ttwu_move_affine; > unsigned int ttwu_move_balance; > > > char *name; > > union { > void *private; > struct callback_head rcu; > }; > > unsigned int span_weight; > > > > > > > > unsigned long span[0]; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct cpumask *sched_domain_span(struct sched_domain *sd) >{ > return ((struct cpumask *)(1 ? (sd->span) : (void *)sizeof(__check_is_bitmap(sd->span)))); >} > >extern void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[], > struct sched_domain_attr *dattr_new); > > >cpumask_var_t *alloc_sched_domains(unsigned int ndoms); >void free_sched_domains(cpumask_var_t doms[], unsigned int ndoms); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_sd_parent(struct sched_domain *sd, int flag) >{ > if (sd->parent && (sd->parent->flags & flag)) > return 1; > > return 0; >} > >unsigned long default_scale_freq_power(struct sched_domain *sd, int cpu); >unsigned long default_scale_smt_power(struct sched_domain *sd, int cpu); > >bool cpus_share_cache(int this_cpu, int that_cpu); ># 1041 "include/linux/sched.h" >struct io_context; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void prefetch_stack(struct task_struct *t) { } > > >struct audit_context; >struct mempolicy; >struct pipe_inode_info; >struct uts_namespace; > >struct rq; >struct sched_domain; ># 1075 "include/linux/sched.h" >struct sched_class { > const struct sched_class *next; > > void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags); > void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags); > void (*yield_task) (struct rq *rq); > bool (*yield_to_task) (struct rq *rq, struct task_struct *p, bool preempt); > > void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags); > > struct task_struct * (*pick_next_task) (struct rq *rq); > void (*put_prev_task) (struct rq *rq, struct task_struct *p); > > > int (*select_task_rq)(struct task_struct *p, int sd_flag, int flags); > void (*migrate_task_rq)(struct task_struct *p, int next_cpu); > > void (*pre_schedule) (struct rq *this_rq, struct task_struct *task); > void (*post_schedule) (struct rq *this_rq); > void (*task_waking) (struct task_struct *task); > void (*task_woken) (struct rq *this_rq, struct task_struct *task); > > void (*set_cpus_allowed)(struct task_struct *p, > const struct cpumask *newmask); > > void (*rq_online)(struct rq *rq); > void (*rq_offline)(struct rq *rq); > > > void (*set_curr_task) (struct rq *rq); > void (*task_tick) (struct rq *rq, struct task_struct *p, int queued); > void (*task_fork) (struct task_struct *p); > > void (*switched_from) (struct rq *this_rq, struct task_struct *task); > void (*switched_to) (struct rq *this_rq, struct task_struct *task); > void (*prio_changed) (struct rq *this_rq, struct task_struct *task, > int oldprio); > > unsigned int (*get_rr_interval) (struct rq *rq, > struct task_struct *task); > > > void (*task_move_group) (struct task_struct *p, int on_rq); > >}; > >struct load_weight { > unsigned long weight, inv_weight; >}; > >struct sched_avg { > > > > > > u32 runnable_avg_sum, runnable_avg_period; > u64 last_runnable_update; > s64 decay_count; > unsigned long load_avg_contrib; >}; > > >struct sched_statistics { > u64 wait_start; > u64 wait_max; > u64 wait_count; > u64 wait_sum; > u64 iowait_count; > u64 iowait_sum; > > u64 sleep_start; > u64 sleep_max; > s64 sum_sleep_runtime; > > u64 block_start; > u64 block_max; > u64 exec_max; > u64 slice_max; > > u64 nr_migrations_cold; > u64 nr_failed_migrations_affine; > u64 nr_failed_migrations_running; > u64 nr_failed_migrations_hot; > u64 nr_forced_migrations; > > u64 nr_wakeups; > u64 nr_wakeups_sync; > u64 nr_wakeups_migrate; > u64 nr_wakeups_local; > u64 nr_wakeups_remote; > u64 nr_wakeups_affine; > u64 nr_wakeups_affine_attempts; > u64 nr_wakeups_passive; > u64 nr_wakeups_idle; >}; > > >struct sched_entity { > struct load_weight load; > struct rb_node run_node; > struct list_head group_node; > unsigned int on_rq; > > u64 exec_start; > u64 sum_exec_runtime; > u64 vruntime; > u64 prev_sum_exec_runtime; > > u64 nr_migrations; > > > struct sched_statistics statistics; > > > > struct sched_entity *parent; > > struct cfs_rq *cfs_rq; > > struct cfs_rq *my_q; ># 1204 "include/linux/sched.h" > struct sched_avg avg; > >}; > >struct sched_rt_entity { > struct list_head run_list; > unsigned long timeout; > unsigned int time_slice; > > struct sched_rt_entity *back; > > struct sched_rt_entity *parent; > > struct rt_rq *rt_rq; > > struct rt_rq *my_q; > >}; > > > > > > > >struct rcu_node; > >enum perf_event_task_context { > perf_invalid_context = -1, > perf_hw_context = 0, > perf_sw_context, > perf_nr_task_contexts, >}; > >struct task_struct { > volatile long state; > void *stack; > atomic_t usage; > unsigned int flags; > unsigned int ptrace; > > > struct llist_node wake_entry; > int on_cpu; > > int on_rq; > > int prio, static_prio, normal_prio; > unsigned int rt_priority; > const struct sched_class *sched_class; > struct sched_entity se; > struct sched_rt_entity rt; > > struct task_group *sched_task_group; ># 1273 "include/linux/sched.h" > unsigned char fpu_counter; > > unsigned int btrace_seq; > > > unsigned int policy; > int nr_cpus_allowed; > cpumask_t cpus_allowed; ># 1295 "include/linux/sched.h" > struct sched_info sched_info; > > > struct list_head tasks; > > struct plist_node pushable_tasks; > > > struct mm_struct *mm, *active_mm; > > > > > struct task_rss_stat rss_stat; > > > int exit_state; > int exit_code, exit_signal; > int pdeath_signal; > unsigned int jobctl; > > unsigned int personality; > unsigned did_exec:1; > unsigned in_execve:1; > > unsigned in_iowait:1; > > > unsigned no_new_privs:1; > > > unsigned sched_reset_on_fork:1; > unsigned sched_contributes_to_load:1; > > pid_t pid; > pid_t tgid; > > > > unsigned long stack_canary; > > > > > > > struct task_struct *real_parent; > struct task_struct *parent; > > > > struct list_head children; > struct list_head sibling; > struct task_struct *group_leader; > > > > > > > struct list_head ptraced; > struct list_head ptrace_entry; > > > struct pid_link pids[PIDTYPE_MAX]; > struct list_head thread_group; > > struct completion *vfork_done; > int *set_child_tid; > int *clear_child_tid; > > cputime_t utime, stime, utimescaled, stimescaled; > cputime_t gtime; > > struct cputime prev_cputime; > > unsigned long nvcsw, nivcsw; > struct timespec start_time; > struct timespec real_start_time; > > unsigned long min_flt, maj_flt; > > struct task_cputime cputime_expires; > struct list_head cpu_timers[3]; > > > const struct cred *real_cred; > > const struct cred *cred; > > char comm[16]; > > > > > int link_count, total_link_count; > > > struct sysv_sem sysvsem; > > > > > > > struct thread_struct thread; > > struct fs_struct *fs; > > struct files_struct *files; > > struct nsproxy *nsproxy; > > struct signal_struct *signal; > struct sighand_struct *sighand; > > sigset_t blocked, real_blocked; > sigset_t saved_sigmask; > struct sigpending pending; > > unsigned long sas_ss_sp; > size_t sas_ss_size; > int (*notifier)(void *priv); > void *notifier_data; > sigset_t *notifier_mask; > struct callback_head *task_works; > > struct audit_context *audit_context; > > kuid_t loginuid; > unsigned int sessionid; > > struct seccomp seccomp; > > > u32 parent_exec_id; > u32 self_exec_id; > > > spinlock_t alloc_lock; > > > raw_spinlock_t pi_lock; > > > > struct plist_head pi_waiters; > > struct rt_mutex_waiter *pi_blocked_on; ># 1475 "include/linux/sched.h" > void *journal_info; > > > struct bio_list *bio_list; > > > > struct blk_plug *plug; > > > > struct reclaim_state *reclaim_state; > > struct backing_dev_info *backing_dev_info; > > struct io_context *io_context; > > unsigned long ptrace_message; > siginfo_t *last_siginfo; > struct task_io_accounting ioac; > > u64 acct_rss_mem1; > u64 acct_vm_mem1; > cputime_t acct_timexpd; > > > nodemask_t mems_allowed; > seqcount_t mems_allowed_seq; > int cpuset_mem_spread_rotor; > int cpuset_slab_spread_rotor; > > > > struct css_set *cgroups; > > struct list_head cg_list; > > > struct robust_list_head *robust_list; > > > > struct list_head pi_state_list; > struct futex_pi_state *pi_state_cache; > > > struct perf_event_context *perf_event_ctxp[perf_nr_task_contexts]; > struct mutex perf_event_mutex; > struct list_head perf_event_list; ># 1538 "include/linux/sched.h" > struct callback_head rcu; > > > > > struct pipe_inode_info *splice_pipe; > > struct page_frag task_frag; > > > struct task_delay_info *delays; ># 1557 "include/linux/sched.h" > int nr_dirtied; > int nr_dirtied_pause; > unsigned long dirty_paused_when; ># 1569 "include/linux/sched.h" > unsigned long timer_slack_ns; > unsigned long default_timer_slack_ns; ># 1589 "include/linux/sched.h" > unsigned long trace; > > unsigned long trace_recursion; > > > struct memcg_batch_info { > int do_batch; > struct mem_cgroup *memcg; > unsigned long nr_pages; > unsigned long memsw_nr_pages; > } memcg_batch; > unsigned int memcg_kmem_skip_account; > > > atomic_t ptrace_bp_refcnt; > > > > >}; ># 1617 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void task_numa_fault(int node, int pages, bool migrated) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_numabalancing_state(bool enabled) >{ >} ># 1644 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rt_prio(int prio) >{ > if (__builtin_expect(!!(prio < 100), 0)) > return 1; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int rt_task(struct task_struct *p) >{ > return rt_prio(p->prio); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid *task_pid(struct task_struct *task) >{ > return task->pids[PIDTYPE_PID].pid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid *task_tgid(struct task_struct *task) >{ > return task->group_leader->pids[PIDTYPE_PID].pid; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid *task_pgrp(struct task_struct *task) >{ > return task->group_leader->pids[PIDTYPE_PGID].pid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct pid *task_session(struct task_struct *task) >{ > return task->group_leader->pids[PIDTYPE_SID].pid; >} > >struct pid_namespace; ># 1696 "include/linux/sched.h" >pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, > struct pid_namespace *ns); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pid_nr(struct task_struct *tsk) >{ > return tsk->pid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pid_nr_ns(struct task_struct *tsk, > struct pid_namespace *ns) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_PID, ns); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pid_vnr(struct task_struct *tsk) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_PID, ((void *)0)); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_tgid_nr(struct task_struct *tsk) >{ > return tsk->tgid; >} > >pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_tgid_vnr(struct task_struct *tsk) >{ > return pid_vnr(task_tgid(tsk)); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pgrp_nr_ns(struct task_struct *tsk, > struct pid_namespace *ns) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pgrp_vnr(struct task_struct *tsk) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ((void *)0)); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_session_nr_ns(struct task_struct *tsk, > struct pid_namespace *ns) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_SID, ns); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_session_vnr(struct task_struct *tsk) >{ > return __task_pid_nr_ns(tsk, PIDTYPE_SID, ((void *)0)); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) pid_t task_pgrp_nr(struct task_struct *tsk) >{ > return task_pgrp_nr_ns(tsk, &init_pid_ns); >} ># 1766 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int pid_alive(struct task_struct *p) >{ > return p->pids[PIDTYPE_PID].pid != ((void *)0); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_global_init(struct task_struct *tsk) >{ > return tsk->pid == 1; >} > >extern struct pid *cad_pid; > >extern void free_task(struct task_struct *tsk); > > >extern void __put_task_struct(struct task_struct *t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void put_task_struct(struct task_struct *t) >{ > if ((atomic_sub_return(1, &t->usage) == 0)) > __put_task_struct(t); >} > >extern void task_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st); >extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st); ># 1879 "include/linux/sched.h" >extern bool task_set_jobctl_pending(struct task_struct *task, > unsigned int mask); >extern void task_clear_jobctl_trapping(struct task_struct *task); >extern void task_clear_jobctl_pending(struct task_struct *task, > unsigned int mask); ># 1905 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void rcu_copy_process(struct task_struct *p) >{ >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tsk_restore_flags(struct task_struct *task, > unsigned long orig_flags, unsigned long flags) >{ > task->flags &= ~flags; > task->flags |= orig_flags & flags; >} > > >extern void do_set_cpus_allowed(struct task_struct *p, > const struct cpumask *new_mask); > >extern int set_cpus_allowed_ptr(struct task_struct *p, > const struct cpumask *new_mask); ># 1939 "include/linux/sched.h" >void calc_load_enter_idle(void); >void calc_load_exit_idle(void); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) >{ > return set_cpus_allowed_ptr(p, &new_mask); >} ># 1961 "include/linux/sched.h" >extern unsigned long long __attribute__((no_instrument_function)) sched_clock(void); > > > >extern u64 cpu_clock(int cpu); >extern u64 local_clock(void); >extern u64 sched_clock_cpu(int cpu); > > >extern void sched_clock_init(void); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sched_clock_tick(void) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sched_clock_idle_sleep_event(void) >{ >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sched_clock_idle_wakeup_event(u64 delta_ns) >{ >} ># 2007 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void enable_sched_clock_irqtime(void) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void disable_sched_clock_irqtime(void) {} > > >extern unsigned long long >task_sched_runtime(struct task_struct *task); > > > >extern void sched_exec(void); > > > > >extern void sched_clock_idle_sleep_event(void); >extern void sched_clock_idle_wakeup_event(u64 delta_ns); > > >extern void idle_task_exit(void); > > > > > >extern void wake_up_idle_cpu(int cpu); > > > > >extern unsigned int sysctl_sched_latency; >extern unsigned int sysctl_sched_min_granularity; >extern unsigned int sysctl_sched_wakeup_granularity; >extern unsigned int sysctl_sched_child_runs_first; > >enum sched_tunable_scaling { > SCHED_TUNABLESCALING_NONE, > SCHED_TUNABLESCALING_LOG, > SCHED_TUNABLESCALING_LINEAR, > SCHED_TUNABLESCALING_END, >}; >extern enum sched_tunable_scaling sysctl_sched_tunable_scaling; > >extern unsigned int sysctl_numa_balancing_scan_delay; >extern unsigned int sysctl_numa_balancing_scan_period_min; >extern unsigned int sysctl_numa_balancing_scan_period_max; >extern unsigned int sysctl_numa_balancing_scan_period_reset; >extern unsigned int sysctl_numa_balancing_scan_size; >extern unsigned int sysctl_numa_balancing_settle_count; > > >extern unsigned int sysctl_sched_migration_cost; >extern unsigned int sysctl_sched_nr_migrate; >extern unsigned int sysctl_sched_time_avg; >extern unsigned int sysctl_timer_migration; >extern unsigned int sysctl_sched_shares_window; > >int sched_proc_update_handler(struct ctl_table *table, int write, > void *buffer, size_t *length, > loff_t *ppos); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int get_sysctl_timer_migration(void) >{ > return sysctl_timer_migration; >} > > > > > > >extern unsigned int sysctl_sched_rt_period; >extern int sysctl_sched_rt_runtime; > >int sched_rt_handler(struct ctl_table *table, int write, > void *buffer, size_t *lenp, > loff_t *ppos); > > >extern unsigned int sysctl_sched_autogroup_enabled; > >extern void sched_autogroup_create_attach(struct task_struct *p); >extern void sched_autogroup_detach(struct task_struct *p); >extern void sched_autogroup_fork(struct signal_struct *sig); >extern void sched_autogroup_exit(struct signal_struct *sig); > >extern void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m); >extern int proc_sched_autogroup_set_nice(struct task_struct *p, int nice); ># 2104 "include/linux/sched.h" >extern unsigned int sysctl_sched_cfs_bandwidth_slice; > > > >extern int rt_mutex_getprio(struct task_struct *p); >extern void rt_mutex_setprio(struct task_struct *p, int prio); >extern void rt_mutex_adjust_pi(struct task_struct *p); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool tsk_is_pi_blocked(struct task_struct *tsk) >{ > return tsk->pi_blocked_on != ((void *)0); >} ># 2127 "include/linux/sched.h" >extern bool yield_to(struct task_struct *p, bool preempt); >extern void set_user_nice(struct task_struct *p, long nice); >extern int task_prio(const struct task_struct *p); >extern int task_nice(const struct task_struct *p); >extern int can_nice(const struct task_struct *p, const int nice); >extern int task_curr(const struct task_struct *p); >extern int idle_cpu(int cpu); >extern int sched_setscheduler(struct task_struct *, int, > const struct sched_param *); >extern int sched_setscheduler_nocheck(struct task_struct *, int, > const struct sched_param *); >extern struct task_struct *idle_task(int cpu); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool is_idle_task(const struct task_struct *p) >{ > return p->pid == 0; >} >extern struct task_struct *curr_task(int cpu); >extern void set_curr_task(int cpu, struct task_struct *p); > >void yield(void); > > > > >extern struct exec_domain default_exec_domain; > >union thread_union { > struct thread_info thread_info; > unsigned long stack[8192/sizeof(long)]; >}; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kstack_end(void *addr) >{ > > > > return !(((unsigned long)addr+sizeof(void*)-1) & (8192 -sizeof(void*))); >} > > >extern union thread_union init_thread_union; >extern struct task_struct init_task; > >extern struct mm_struct init_mm; > >extern struct pid_namespace init_pid_ns; ># 2190 "include/linux/sched.h" >extern struct task_struct *find_task_by_vpid(pid_t nr); >extern struct task_struct *find_task_by_pid_ns(pid_t nr, > struct pid_namespace *ns); > >extern void __set_special_pids(struct pid *pid); > > >extern struct user_struct * alloc_uid(kuid_t); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct user_struct *get_uid(struct user_struct *u) >{ > atomic_add(1, &u->__count); > return u; >} >extern void free_uid(struct user_struct *); > ># 1 "arch/arm/include/generated/asm/current.h" 1 ># 2206 "include/linux/sched.h" 2 > >extern void xtime_update(unsigned long ticks); > >extern int wake_up_state(struct task_struct *tsk, unsigned int state); >extern int wake_up_process(struct task_struct *tsk); >extern void wake_up_new_task(struct task_struct *tsk); > > extern void kick_process(struct task_struct *tsk); > > > >extern void sched_fork(struct task_struct *p); >extern void sched_dead(struct task_struct *p); > >extern void proc_caches_init(void); >extern void flush_signals(struct task_struct *); >extern void __flush_signals(struct task_struct *); >extern void ignore_signals(struct task_struct *); >extern void flush_signal_handlers(struct task_struct *, int force_default); >extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) >{ > unsigned long flags; > int ret; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _raw_spin_lock_irqsave(spinlock_check(&tsk->sighand->siglock)); } while (0); } while (0); > ret = dequeue_signal(tsk, mask, info); > spin_unlock_irqrestore(&tsk->sighand->siglock, flags); > > return ret; >} > >extern void block_all_signals(int (*notifier)(void *priv), void *priv, > sigset_t *mask); >extern void unblock_all_signals(void); >extern void release_task(struct task_struct * p); >extern int send_sig_info(int, struct siginfo *, struct task_struct *); >extern int force_sigsegv(int, struct task_struct *); >extern int force_sig_info(int, struct siginfo *, struct task_struct *); >extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); >extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); >extern int kill_pid_info_as_cred(int, struct siginfo *, struct pid *, > const struct cred *, u32); >extern int kill_pgrp(struct pid *pid, int sig, int priv); >extern int kill_pid(struct pid *pid, int sig, int priv); >extern int kill_proc_info(int, struct siginfo *, pid_t); >extern __attribute__((warn_unused_result)) bool do_notify_parent(struct task_struct *, int); >extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent); >extern void force_sig(int, struct task_struct *); >extern int send_sig(int, struct task_struct *, int); >extern int zap_other_threads(struct task_struct *p); >extern struct sigqueue *sigqueue_alloc(void); >extern void sigqueue_free(struct sigqueue *); >extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group); >extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); >extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void restore_saved_sigmask(void) >{ > if (test_and_clear_restore_sigmask()) > __set_current_blocked(&(current_thread_info()->task)->saved_sigmask); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) sigset_t *sigmask_to_save(void) >{ > sigset_t *res = &(current_thread_info()->task)->blocked; > if (__builtin_expect(!!(test_restore_sigmask()), 0)) > res = &(current_thread_info()->task)->saved_sigmask; > return res; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kill_cad_pid(int sig, int priv) >{ > return kill_pid(cad_pid, sig, priv); >} ># 2291 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int on_sig_stack(unsigned long sp) >{ > > > > > return sp > (current_thread_info()->task)->sas_ss_sp && > sp - (current_thread_info()->task)->sas_ss_sp <= (current_thread_info()->task)->sas_ss_size; > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sas_ss_flags(unsigned long sp) >{ > return ((current_thread_info()->task)->sas_ss_size == 0 ? 2 > : on_sig_stack(sp) ? 1 : 0); >} > > > > >extern struct mm_struct * mm_alloc(void); > > >extern void __mmdrop(struct mm_struct *); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mmdrop(struct mm_struct * mm) >{ > if (__builtin_expect(!!((atomic_sub_return(1, &mm->mm_count) == 0)), 0)) > __mmdrop(mm); >} > > >extern void mmput(struct mm_struct *); > >extern struct mm_struct *get_task_mm(struct task_struct *task); > > > > > >extern struct mm_struct *mm_access(struct task_struct *task, unsigned int mode); > >extern void mm_release(struct task_struct *, struct mm_struct *); > >extern struct mm_struct *dup_mm(struct task_struct *tsk); > >extern int copy_thread(unsigned long, unsigned long, unsigned long, > struct task_struct *); >extern void flush_thread(void); >extern void exit_thread(void); > >extern void exit_files(struct task_struct *); >extern void __cleanup_sighand(struct sighand_struct *); > >extern void exit_itimers(struct signal_struct *); >extern void flush_itimer_signals(void); > >extern void do_group_exit(int); > >extern int allow_signal(int); >extern int disallow_signal(int); > >extern int do_execve(const char *, > const char * const *, > const char * const *); >extern long do_fork(unsigned long, unsigned long, unsigned long, int *, int *); >struct task_struct *fork_idle(int); >extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); > >extern void set_task_comm(struct task_struct *tsk, char *from); >extern char *get_task_comm(char *to, struct task_struct *tsk); > > >void scheduler_ipi(void); >extern unsigned long wait_task_inactive(struct task_struct *, long match_state); ># 2380 "include/linux/sched.h" >extern bool current_is_single_threaded(void); ># 2392 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_nr_threads(struct task_struct *tsk) >{ > return tsk->signal->nr_threads; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool thread_group_leader(struct task_struct *p) >{ > return p->exit_signal >= 0; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int has_group_leader_pid(struct task_struct *p) >{ > return p->pid == p->tgid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >int same_thread_group(struct task_struct *p1, struct task_struct *p2) >{ > return p1->tgid == p2->tgid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct task_struct *next_thread(const struct task_struct *p) >{ > return ({typeof (*p->thread_group.next) *__ptr = (typeof (*p->thread_group.next) *)p->thread_group.next; ({ const typeof( ((struct task_struct *)0)->thread_group ) *__mptr = ((typeof(p->thread_group.next))({ typeof(*(__ptr)) *_________p1 = (typeof(*(__ptr))* )(*(volatile typeof((__ptr)) *)&((__ptr))); do { } while (0); ; do { } while(0); ((typeof(*(__ptr)) *)(_________p1)); })); (struct task_struct *)( (char *)__mptr - __builtin_offsetof(struct task_struct,thread_group) );}); }) > ; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int thread_group_empty(struct task_struct *p) >{ > return list_empty(&p->thread_group); >} ># 2443 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void task_lock(struct task_struct *p) >{ > spin_lock(&p->alloc_lock); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void task_unlock(struct task_struct *p) >{ > spin_unlock(&p->alloc_lock); >} > >extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk, > unsigned long *flags); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct sighand_struct *lock_task_sighand(struct task_struct *tsk, > unsigned long *flags) >{ > struct sighand_struct *ret; > > ret = __lock_task_sighand(tsk, flags); > (void)(ret); > return ret; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void unlock_task_sighand(struct task_struct *tsk, > unsigned long *flags) >{ > spin_unlock_irqrestore(&tsk->sighand->siglock, *flags); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void threadgroup_change_begin(struct task_struct *tsk) >{ > down_read(&tsk->signal->group_rwsem); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void threadgroup_change_end(struct task_struct *tsk) >{ > up_read(&tsk->signal->group_rwsem); >} ># 2502 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void threadgroup_lock(struct task_struct *tsk) >{ > > > > > mutex_lock(&tsk->signal->cred_guard_mutex); > down_write(&tsk->signal->group_rwsem); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void threadgroup_unlock(struct task_struct *tsk) >{ > up_write(&tsk->signal->group_rwsem); > mutex_unlock(&tsk->signal->cred_guard_mutex); >} ># 2535 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void setup_thread_stack(struct task_struct *p, struct task_struct *org) >{ > *((struct thread_info *)(p)->stack) = *((struct thread_info *)(org)->stack); > ((struct thread_info *)(p)->stack)->task = p; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long *end_of_stack(struct task_struct *p) >{ > return (unsigned long *)(((struct thread_info *)(p)->stack) + 1); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int object_is_on_stack(void *obj) >{ > void *stack = (((current_thread_info()->task))->stack); > > return (obj >= stack) && (obj < (stack + 8192)); >} > >extern void thread_info_cache_init(void); ># 2573 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_tsk_thread_flag(struct task_struct *tsk, int flag) >{ > set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_tsk_thread_flag(struct task_struct *tsk, int flag) >{ > clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag) >{ > return test_and_set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag) >{ > return test_and_clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_tsk_thread_flag(struct task_struct *tsk, int flag) >{ > return test_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_tsk_need_resched(struct task_struct *tsk) >{ > set_tsk_thread_flag(tsk,1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_tsk_need_resched(struct task_struct *tsk) >{ > clear_tsk_thread_flag(tsk,1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int test_tsk_need_resched(struct task_struct *tsk) >{ > return __builtin_expect(!!(test_tsk_thread_flag(tsk,1)), 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int restart_syscall(void) >{ > set_tsk_thread_flag((current_thread_info()->task), 0); > return -513; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int signal_pending(struct task_struct *p) >{ > return __builtin_expect(!!(test_tsk_thread_flag(p,0)), 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __fatal_signal_pending(struct task_struct *p) >{ > return __builtin_expect(!!(sigismember(&p->pending.signal, 9)), 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fatal_signal_pending(struct task_struct *p) >{ > return signal_pending(p) && __fatal_signal_pending(p); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int signal_pending_state(long state, struct task_struct *p) >{ > if (!(state & (1 | 128))) > return 0; > if (!signal_pending(p)) > return 0; > > return (state & 1) || __fatal_signal_pending(p); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int need_resched(void) >{ > return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 1)), 0); >} ># 2656 "include/linux/sched.h" >extern int _cond_resched(void); > > > > > > >extern int __cond_resched_lock(spinlock_t *lock); ># 2676 "include/linux/sched.h" >extern int __cond_resched_softirq(void); ># 2688 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int spin_needbreak(spinlock_t *lock) >{ > > > > return 0; > >} > > > > >void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times); >void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void thread_group_cputime_init(struct signal_struct *sig) >{ > do { *(&sig->cputimer.lock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while (0); >} > > > > > > > >extern void recalc_sigpending_and_wake(struct task_struct *t); >extern void recalc_sigpending(void); > >extern void signal_wake_up_state(struct task_struct *t, unsigned int state); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void signal_wake_up(struct task_struct *t, bool resume) >{ > signal_wake_up_state(t, resume ? 128 : 0); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ptrace_signal_wake_up(struct task_struct *t, bool resume) >{ > signal_wake_up_state(t, resume ? 8 : 0); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int task_cpu(const struct task_struct *p) >{ > return ((struct thread_info *)(p)->stack)->cpu; >} > >extern void set_task_cpu(struct task_struct *p, unsigned int cpu); ># 2753 "include/linux/sched.h" >extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); >extern long sched_getaffinity(pid_t pid, struct cpumask *mask); > >extern void normalize_rt_tasks(void); > > > >extern struct task_group root_task_group; > >extern struct task_group *sched_create_group(struct task_group *parent); >extern void sched_destroy_group(struct task_group *tg); >extern void sched_move_task(struct task_struct *tsk); > >extern int sched_group_set_shares(struct task_group *tg, unsigned long shares); >extern unsigned long sched_group_shares(struct task_group *tg); > > >extern int sched_group_set_rt_runtime(struct task_group *tg, > long rt_runtime_us); >extern long sched_group_rt_runtime(struct task_group *tg); >extern int sched_group_set_rt_period(struct task_group *tg, > long rt_period_us); >extern long sched_group_rt_period(struct task_group *tg); >extern int sched_rt_can_attach(struct task_group *tg, struct task_struct *tsk); > > > >extern int task_can_switch_user(struct user_struct *up, > struct task_struct *tsk); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void add_rchar(struct task_struct *tsk, ssize_t amt) >{ > tsk->ioac.rchar += amt; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void add_wchar(struct task_struct *tsk, ssize_t amt) >{ > tsk->ioac.wchar += amt; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inc_syscr(struct task_struct *tsk) >{ > tsk->ioac.syscr++; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inc_syscw(struct task_struct *tsk) >{ > tsk->ioac.syscw++; >} ># 2826 "include/linux/sched.h" >extern void mm_update_next_owner(struct mm_struct *mm); >extern void mm_init_owner(struct mm_struct *mm, struct task_struct *p); ># 2838 "include/linux/sched.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long task_rlimit(const struct task_struct *tsk, > unsigned int limit) >{ > return (*(volatile typeof(tsk->signal->rlim[limit].rlim_cur) *)&(tsk->signal->rlim[limit].rlim_cur)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long task_rlimit_max(const struct task_struct *tsk, > unsigned int limit) >{ > return (*(volatile typeof(tsk->signal->rlim[limit].rlim_max) *)&(tsk->signal->rlim[limit].rlim_max)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long rlimit(unsigned int limit) >{ > return task_rlimit((current_thread_info()->task), limit); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long rlimit_max(unsigned int limit) >{ > return task_rlimit_max((current_thread_info()->task), limit); >} ># 5 "include/linux/blkdev.h" 2 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/major.h" 1 ># 9 "include/linux/blkdev.h" 2 ># 1 "include/linux/genhd.h" 1 ># 13 "include/linux/genhd.h" ># 1 "include/linux/kdev_t.h" 1 > > > ># 1 "include/uapi/linux/kdev_t.h" 1 ># 5 "include/linux/kdev_t.h" 2 ># 23 "include/linux/kdev_t.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int old_valid_dev(dev_t dev) >{ > return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u16 old_encode_dev(dev_t dev) >{ > return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dev_t old_decode_dev(u16 val) >{ > return ((((val >> 8) & 255) << 20) | (val & 255)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int new_valid_dev(dev_t dev) >{ > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 new_encode_dev(dev_t dev) >{ > unsigned major = ((unsigned int) ((dev) >> 20)); > unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1))); > return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dev_t new_decode_dev(u32 dev) >{ > unsigned major = (dev & 0xfff00) >> 8; > unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00); > return (((major) << 20) | (minor)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int huge_valid_dev(dev_t dev) >{ > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u64 huge_encode_dev(dev_t dev) >{ > return new_encode_dev(dev); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dev_t huge_decode_dev(u64 dev) >{ > return new_decode_dev(dev); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sysv_valid_dev(dev_t dev) >{ > return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 sysv_encode_dev(dev_t dev) >{ > return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned sysv_major(u32 dev) >{ > return (dev >> 18) & 0x3fff; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned sysv_minor(u32 dev) >{ > return dev & 0x3ffff; >} ># 14 "include/linux/genhd.h" 2 > ># 1 "include/linux/slab.h" 1 ># 121 "include/linux/slab.h" >struct mem_cgroup; > > > >void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) kmem_cache_init(void); >int slab_is_available(void); > >struct kmem_cache *kmem_cache_create(const char *, size_t, size_t, > unsigned long, > void (*)(void *)); >struct kmem_cache * >kmem_cache_create_memcg(struct mem_cgroup *, const char *, size_t, size_t, > unsigned long, void (*)(void *), struct kmem_cache *); >void kmem_cache_destroy(struct kmem_cache *); >int kmem_cache_shrink(struct kmem_cache *); >void kmem_cache_free(struct kmem_cache *, void *); ># 206 "include/linux/slab.h" >struct memcg_cache_params { > bool is_root_cache; > union { > struct kmem_cache *memcg_caches[0]; > struct { > struct mem_cgroup *memcg; > struct list_head list; > struct kmem_cache *root_cache; > bool dead; > atomic_t nr_pages; > struct work_struct destroy; > }; > }; >}; > >int memcg_update_all_caches(int num_memcgs); > >struct seq_file; >int cache_show(struct kmem_cache *s, struct seq_file *m); >void print_slabinfo_header(struct seq_file *m); > > > > >void * __attribute__((warn_unused_result)) __krealloc(const void *, size_t, gfp_t); >void * __attribute__((warn_unused_result)) krealloc(const void *, size_t, gfp_t); >void kfree(const void *); >void kzfree(const void *); >size_t ksize(const void *); ># 256 "include/linux/slab.h" ># 1 "include/linux/slub_def.h" 1 ># 15 "include/linux/slub_def.h" ># 1 "include/linux/kmemleak.h" 1 ># 61 "include/linux/kmemleak.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_init(void) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_alloc(const void *ptr, size_t size, int min_count, > gfp_t gfp) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_alloc_recursive(const void *ptr, size_t size, > int min_count, unsigned long flags, > gfp_t gfp) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_alloc_percpu(const void *ptr, size_t size) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_free(const void *ptr) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_free_part(const void *ptr, size_t size) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_free_recursive(const void *ptr, unsigned long flags) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_free_percpu(const void *ptr) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_not_leak(const void *ptr) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_ignore(const void *ptr) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_scan_area(const void *ptr, size_t size, gfp_t gfp) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_erase(void **ptr) >{ >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmemleak_no_scan(const void *ptr) >{ >} ># 16 "include/linux/slub_def.h" 2 > >enum stat_item { > ALLOC_FASTPATH, > ALLOC_SLOWPATH, > FREE_FASTPATH, > FREE_SLOWPATH, > FREE_FROZEN, > FREE_ADD_PARTIAL, > FREE_REMOVE_PARTIAL, > ALLOC_FROM_PARTIAL, > ALLOC_SLAB, > ALLOC_REFILL, > ALLOC_NODE_MISMATCH, > FREE_SLAB, > CPUSLAB_FLUSH, > DEACTIVATE_FULL, > DEACTIVATE_EMPTY, > DEACTIVATE_TO_HEAD, > DEACTIVATE_TO_TAIL, > DEACTIVATE_REMOTE_FREES, > DEACTIVATE_BYPASS, > ORDER_FALLBACK, > CMPXCHG_DOUBLE_CPU_FAIL, > CMPXCHG_DOUBLE_FAIL, > CPU_PARTIAL_ALLOC, > CPU_PARTIAL_FREE, > CPU_PARTIAL_NODE, > CPU_PARTIAL_DRAIN, > NR_SLUB_STAT_ITEMS }; > >struct kmem_cache_cpu { > void **freelist; > unsigned long tid; > struct page *page; > struct page *partial; > > > >}; > >struct kmem_cache_node { > spinlock_t list_lock; > unsigned long nr_partial; > struct list_head partial; > > atomic_long_t nr_slabs; > atomic_long_t total_objects; > struct list_head full; > >}; > > > > > > >struct kmem_cache_order_objects { > unsigned long x; >}; > > > > >struct kmem_cache { > struct kmem_cache_cpu *cpu_slab; > > unsigned long flags; > unsigned long min_partial; > int size; > int object_size; > int offset; > int cpu_partial; > struct kmem_cache_order_objects oo; > > > struct kmem_cache_order_objects max; > struct kmem_cache_order_objects min; > gfp_t allocflags; > int refcount; > void (*ctor)(void *); > int inuse; > int align; > int reserved; > const char *name; > struct list_head list; > > struct kobject kobj; > > > struct memcg_cache_params *memcg_params; > int max_attr_size; ># 115 "include/linux/slub_def.h" > struct kmem_cache_node *node[(1 << 0)]; >}; ># 153 "include/linux/slub_def.h" >extern struct kmem_cache *kmalloc_caches[(12 + 2)]; > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) int kmalloc_index(size_t size) >{ > if (!size) > return 0; > > if (size <= (1 << 6)) > return ( __builtin_constant_p((1 << 6)) ? ( ((1 << 6)) < 1 ? ____ilog2_NaN() : ((1 << 6)) & (1ULL << 63) ? 63 : ((1 << 6)) & (1ULL << 62) ? 62 : ((1 << 6)) & (1ULL << 61) ? 61 : ((1 << 6)) & (1ULL << 60) ? 60 : ((1 << 6)) & (1ULL << 59) ? 59 : ((1 << 6)) & (1ULL << 58) ? 58 : ((1 << 6)) & (1ULL << 57) ? 57 : ((1 << 6)) & (1ULL << 56) ? 56 : ((1 << 6)) & (1ULL << 55) ? 55 : ((1 << 6)) & (1ULL << 54) ? 54 : ((1 << 6)) & (1ULL << 53) ? 53 : ((1 << 6)) & (1ULL << 52) ? 52 : ((1 << 6)) & (1ULL << 51) ? 51 : ((1 << 6)) & (1ULL << 50) ? 50 : ((1 << 6)) & (1ULL << 49) ? 49 : ((1 << 6)) & (1ULL << 48) ? 48 : ((1 << 6)) & (1ULL << 47) ? 47 : ((1 << 6)) & (1ULL << 46) ? 46 : ((1 << 6)) & (1ULL << 45) ? 45 : ((1 << 6)) & (1ULL << 44) ? 44 : ((1 << 6)) & (1ULL << 43) ? 43 : ((1 << 6)) & (1ULL << 42) ? 42 : ((1 << 6)) & (1ULL << 41) ? 41 : ((1 << 6)) & (1ULL << 40) ? 40 : ((1 << 6)) & (1ULL << 39) ? 39 : ((1 << 6)) & (1ULL << 38) ? 38 : ((1 << 6)) & (1ULL << 37) ? 37 : ((1 << 6)) & (1ULL << 36) ? 36 : ((1 << 6)) & (1ULL << 35) ? 35 : ((1 << 6)) & (1ULL << 34) ? 34 : ((1 << 6)) & (1ULL << 33) ? 33 : ((1 << 6)) & (1ULL << 32) ? 32 : ((1 << 6)) & (1ULL << 31) ? 31 : ((1 << 6)) & (1ULL << 30) ? 30 : ((1 << 6)) & (1ULL << 29) ? 29 : ((1 << 6)) & (1ULL << 28) ? 28 : ((1 << 6)) & (1ULL << 27) ? 27 : ((1 << 6)) & (1ULL << 26) ? 26 : ((1 << 6)) & (1ULL << 25) ? 25 : ((1 << 6)) & (1ULL << 24) ? 24 : ((1 << 6)) & (1ULL << 23) ? 23 : ((1 << 6)) & (1ULL << 22) ? 22 : ((1 << 6)) & (1ULL << 21) ? 21 : ((1 << 6)) & (1ULL << 20) ? 20 : ((1 << 6)) & (1ULL << 19) ? 19 : ((1 << 6)) & (1ULL << 18) ? 18 : ((1 << 6)) & (1ULL << 17) ? 17 : ((1 << 6)) & (1ULL << 16) ? 16 : ((1 << 6)) & (1ULL << 15) ? 15 : ((1 << 6)) & (1ULL << 14) ? 14 : ((1 << 6)) & (1ULL << 13) ? 13 : ((1 << 6)) & (1ULL << 12) ? 12 : ((1 << 6)) & (1ULL << 11) ? 11 : ((1 << 6)) & (1ULL << 10) ? 10 : ((1 << 6)) & (1ULL << 9) ? 9 : ((1 << 6)) & (1ULL << 8) ? 8 : ((1 << 6)) & (1ULL << 7) ? 7 : ((1 << 6)) & (1ULL << 6) ? 6 : ((1 << 6)) & (1ULL << 5) ? 5 : ((1 << 6)) & (1ULL << 4) ? 4 : ((1 << 6)) & (1ULL << 3) ? 3 : ((1 << 6)) & (1ULL << 2) ? 2 : ((1 << 6)) & (1ULL << 1) ? 1 : ((1 << 6)) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof((1 << 6)) <= 4) ? __ilog2_u32((1 << 6)) : __ilog2_u64((1 << 6)) ); > > if ((1 << 6) <= 32 && size > 64 && size <= 96) > return 1; > if ((1 << 6) <= 64 && size > 128 && size <= 192) > return 2; > if (size <= 8) return 3; > if (size <= 16) return 4; > if (size <= 32) return 5; > if (size <= 64) return 6; > if (size <= 128) return 7; > if (size <= 256) return 8; > if (size <= 512) return 9; > if (size <= 1024) return 10; > if (size <= 2 * 1024) return 11; > if (size <= 4 * 1024) return 12; > > > > > > if (size <= 8 * 1024) return 13; > if (size <= 16 * 1024) return 14; > if (size <= 32 * 1024) return 15; > if (size <= 64 * 1024) return 16; > if (size <= 128 * 1024) return 17; > if (size <= 256 * 1024) return 18; > if (size <= 512 * 1024) return 19; > if (size <= 1024 * 1024) return 20; > if (size <= 2 * 1024 * 1024) return 21; > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/slub_def.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "195" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > return -1; ># 205 "include/linux/slub_def.h" >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) struct kmem_cache *kmalloc_slab(size_t size) >{ > int index = kmalloc_index(size); > > if (index == 0) > return ((void *)0); > > return kmalloc_caches[index]; >} > >void *kmem_cache_alloc(struct kmem_cache *, gfp_t); >void *__kmalloc(size_t size, gfp_t flags); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void * >kmalloc_order(size_t size, gfp_t flags, unsigned int order) >{ > void *ret; > > flags |= ((( gfp_t)0x4000u) | (( gfp_t)0x100000u)); > ret = (void *) __get_free_pages(flags, order); > kmemleak_alloc(ret, size, 1, flags); > return ret; >} > > > > > > >extern bool verify_mem_not_deleted(const void *x); ># 251 "include/linux/slub_def.h" >extern void * >kmem_cache_alloc_trace(struct kmem_cache *s, gfp_t gfpflags, size_t size); >extern void *kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order); ># 268 "include/linux/slub_def.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void *kmalloc_large(size_t size, gfp_t flags) >{ > unsigned int order = ( __builtin_constant_p(size) ? ( ((size) == 0UL) ? 32 - 12 : (((size) < (1UL << 12)) ? 0 : ( __builtin_constant_p((size) - 1) ? ( ((size) - 1) < 1 ? ____ilog2_NaN() : ((size) - 1) & (1ULL << 63) ? 63 : ((size) - 1) & (1ULL << 62) ? 62 : ((size) - 1) & (1ULL << 61) ? 61 : ((size) - 1) & (1ULL << 60) ? 60 : ((size) - 1) & (1ULL << 59) ? 59 : ((size) - 1) & (1ULL << 58) ? 58 : ((size) - 1) & (1ULL << 57) ? 57 : ((size) - 1) & (1ULL << 56) ? 56 : ((size) - 1) & (1ULL << 55) ? 55 : ((size) - 1) & (1ULL << 54) ? 54 : ((size) - 1) & (1ULL << 53) ? 53 : ((size) - 1) & (1ULL << 52) ? 52 : ((size) - 1) & (1ULL << 51) ? 51 : ((size) - 1) & (1ULL << 50) ? 50 : ((size) - 1) & (1ULL << 49) ? 49 : ((size) - 1) & (1ULL << 48) ? 48 : ((size) - 1) & (1ULL << 47) ? 47 : ((size) - 1) & (1ULL << 46) ? 46 : ((size) - 1) & (1ULL << 45) ? 45 : ((size) - 1) & (1ULL << 44) ? 44 : ((size) - 1) & (1ULL << 43) ? 43 : ((size) - 1) & (1ULL << 42) ? 42 : ((size) - 1) & (1ULL << 41) ? 41 : ((size) - 1) & (1ULL << 40) ? 40 : ((size) - 1) & (1ULL << 39) ? 39 : ((size) - 1) & (1ULL << 38) ? 38 : ((size) - 1) & (1ULL << 37) ? 37 : ((size) - 1) & (1ULL << 36) ? 36 : ((size) - 1) & (1ULL << 35) ? 35 : ((size) - 1) & (1ULL << 34) ? 34 : ((size) - 1) & (1ULL << 33) ? 33 : ((size) - 1) & (1ULL << 32) ? 32 : ((size) - 1) & (1ULL << 31) ? 31 : ((size) - 1) & (1ULL << 30) ? 30 : ((size) - 1) & (1ULL << 29) ? 29 : ((size) - 1) & (1ULL << 28) ? 28 : ((size) - 1) & (1ULL << 27) ? 27 : ((size) - 1) & (1ULL << 26) ? 26 : ((size) - 1) & (1ULL << 25) ? 25 : ((size) - 1) & (1ULL << 24) ? 24 : ((size) - 1) & (1ULL << 23) ? 23 : ((size) - 1) & (1ULL << 22) ? 22 : ((size) - 1) & (1ULL << 21) ? 21 : ((size) - 1) & (1ULL << 20) ? 20 : ((size) - 1) & (1ULL << 19) ? 19 : ((size) - 1) & (1ULL << 18) ? 18 : ((size) - 1) & (1ULL << 17) ? 17 : ((size) - 1) & (1ULL << 16) ? 16 : ((size) - 1) & (1ULL << 15) ? 15 : ((size) - 1) & (1ULL << 14) ? 14 : ((size) - 1) & (1ULL << 13) ? 13 : ((size) - 1) & (1ULL << 12) ? 12 : ((size) - 1) & (1ULL << 11) ? 11 : ((size) - 1) & (1ULL << 10) ? 10 : ((size) - 1) & (1ULL << 9) ? 9 : ((size) - 1) & (1ULL << 8) ? 8 : ((size) - 1) & (1ULL << 7) ? 7 : ((size) - 1) & (1ULL << 6) ? 6 : ((size) - 1) & (1ULL << 5) ? 5 : ((size) - 1) & (1ULL << 4) ? 4 : ((size) - 1) & (1ULL << 3) ? 3 : ((size) - 1) & (1ULL << 2) ? 2 : ((size) - 1) & (1ULL << 1) ? 1 : ((size) - 1) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof((size) - 1) <= 4) ? __ilog2_u32((size) - 1) : __ilog2_u64((size) - 1) ) - 12 + 1) ) : __get_order(size) ); > return kmalloc_order_trace(size, flags, order); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void *kmalloc(size_t size, gfp_t flags) >{ > if (__builtin_constant_p(size)) { > if (size > (2 * ((1UL) << 12))) > return kmalloc_large(size, flags); > > if (!(flags & ( gfp_t)0)) { > struct kmem_cache *s = kmalloc_slab(size); > > if (!s) > return ((void *)16); > > return kmem_cache_alloc_trace(s, flags, size); > } > } > return __kmalloc(size, flags); >} ># 257 "include/linux/slab.h" 2 ># 314 "include/linux/slab.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kmalloc_array(size_t n, size_t size, gfp_t flags) >{ > if (size != 0 && n > (~(size_t)0) / size) > return ((void *)0); > return __kmalloc(n * size, flags); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kcalloc(size_t n, size_t size, gfp_t flags) >{ > return kmalloc_array(n, size, flags | (( gfp_t)0x8000u)); >} ># 343 "include/linux/slab.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kmalloc_node(size_t size, gfp_t flags, int node) >{ > return kmalloc(size, flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *__kmalloc_node(size_t size, gfp_t flags, int node) >{ > return __kmalloc(size, flags); >} > >void *kmem_cache_alloc(struct kmem_cache *, gfp_t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kmem_cache_alloc_node(struct kmem_cache *cachep, > gfp_t flags, int node) >{ > return kmem_cache_alloc(cachep, flags); >} ># 373 "include/linux/slab.h" >extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); ># 412 "include/linux/slab.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags) >{ > return kmem_cache_alloc(k, flags | (( gfp_t)0x8000u)); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kzalloc(size_t size, gfp_t flags) >{ > return kmalloc(size, flags | (( gfp_t)0x8000u)); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *kzalloc_node(size_t size, gfp_t flags, int node) >{ > return kmalloc_node(size, flags | (( gfp_t)0x8000u), node); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int kmem_cache_size(struct kmem_cache *s) >{ > return s->object_size; >} > >void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) kmem_cache_init_late(void); ># 16 "include/linux/genhd.h" 2 ># 24 "include/linux/genhd.h" >extern struct device_type part_type; >extern struct kobject *block_depr; >extern struct class block_class; > >enum { > > > DOS_EXTENDED_PARTITION = 5, > LINUX_EXTENDED_PARTITION = 0x85, > WIN98_EXTENDED_PARTITION = 0x0f, > > SUN_WHOLE_DISK = DOS_EXTENDED_PARTITION, > > LINUX_SWAP_PARTITION = 0x82, > LINUX_DATA_PARTITION = 0x83, > LINUX_LVM_PARTITION = 0x8e, > LINUX_RAID_PARTITION = 0xfd, > > SOLARIS_X86_PARTITION = LINUX_SWAP_PARTITION, > NEW_SOLARIS_X86_PARTITION = 0xbf, > > DM6_AUX1PARTITION = 0x51, > DM6_AUX3PARTITION = 0x53, > DM6_PARTITION = 0x54, > EZD_PARTITION = 0x55, > > FREEBSD_PARTITION = 0xa5, > OPENBSD_PARTITION = 0xa6, > NETBSD_PARTITION = 0xa9, > BSDI_PARTITION = 0xb7, > MINIX_PARTITION = 0x81, > UNIXWARE_PARTITION = 0x63, >}; ># 65 "include/linux/genhd.h" ># 1 "include/linux/fs.h" 1 > > > > > > > ># 1 "include/linux/dcache.h" 1 > > > > > > ># 1 "include/linux/rculist_bl.h" 1 > > > > > > ># 1 "include/linux/list_bl.h" 1 ># 33 "include/linux/list_bl.h" >struct hlist_bl_head { > struct hlist_bl_node *first; >}; > >struct hlist_bl_node { > struct hlist_bl_node *next, **pprev; >}; > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void INIT_HLIST_BL_NODE(struct hlist_bl_node *h) >{ > h->next = ((void *)0); > h->pprev = ((void *)0); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hlist_bl_unhashed(const struct hlist_bl_node *h) >{ > return !h->pprev; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct hlist_bl_node *hlist_bl_first(struct hlist_bl_head *h) >{ > return (struct hlist_bl_node *) > ((unsigned long)h->first & ~1UL); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_set_first(struct hlist_bl_head *h, > struct hlist_bl_node *n) >{ > do { if (__builtin_expect(!!((unsigned long)n & 1UL), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/list_bl.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "65" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > do { if (__builtin_expect(!!(((unsigned long)h->first & 1UL) != 1UL), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/list_bl.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "67" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0) > ; > h->first = (struct hlist_bl_node *)((unsigned long)n | 1UL); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hlist_bl_empty(const struct hlist_bl_head *h) >{ > return !((unsigned long)h->first & ~1UL); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_add_head(struct hlist_bl_node *n, > struct hlist_bl_head *h) >{ > struct hlist_bl_node *first = hlist_bl_first(h); > > n->next = first; > if (first) > first->pprev = &n->next; > n->pprev = &h->first; > hlist_bl_set_first(h, n); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __hlist_bl_del(struct hlist_bl_node *n) >{ > struct hlist_bl_node *next = n->next; > struct hlist_bl_node **pprev = n->pprev; > > do { if (__builtin_expect(!!((unsigned long)n & 1UL), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/list_bl.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "93" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > > *pprev = (struct hlist_bl_node *) > ((unsigned long)next | > ((unsigned long)*pprev & 1UL)); > if (next) > next->pprev = pprev; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_del(struct hlist_bl_node *n) >{ > __hlist_bl_del(n); > n->next = ((void *) 0x00100100 + 0); > n->pprev = ((void *) 0x00200200 + 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_del_init(struct hlist_bl_node *n) >{ > if (!hlist_bl_unhashed(n)) { > __hlist_bl_del(n); > INIT_HLIST_BL_NODE(n); > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_lock(struct hlist_bl_head *b) >{ > bit_spin_lock(0, (unsigned long *)b); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_unlock(struct hlist_bl_head *b) >{ > __bit_spin_unlock(0, (unsigned long *)b); >} ># 8 "include/linux/rculist_bl.h" 2 > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_set_first_rcu(struct hlist_bl_head *h, > struct hlist_bl_node *n) >{ > do { if (__builtin_expect(!!((unsigned long)n & 1UL), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/rculist_bl.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "13" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > do { if (__builtin_expect(!!(((unsigned long)h->first & 1UL) != 1UL), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/rculist_bl.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "15" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0) > ; > do { __asm__ __volatile__ ("dmb" : : : "memory"); ((h->first)) = (typeof(*((struct hlist_bl_node *)((unsigned long)n | 1UL))) *)(((struct hlist_bl_node *)((unsigned long)n | 1UL))); } while (0) > ; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct hlist_bl_node *hlist_bl_first_rcu(struct hlist_bl_head *h) >{ > return (struct hlist_bl_node *) > ((unsigned long)({ typeof(*(h->first)) *_________p1 = (typeof(*(h->first))* )(*(volatile typeof((h->first)) *)&((h->first))); do { } while (0); ; do { } while(0); ((typeof(*(h->first)) *)(_________p1)); }) & ~1UL); >} ># 46 "include/linux/rculist_bl.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_del_init_rcu(struct hlist_bl_node *n) >{ > if (!hlist_bl_unhashed(n)) { > __hlist_bl_del(n); > n->pprev = ((void *)0); > } >} ># 73 "include/linux/rculist_bl.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_del_rcu(struct hlist_bl_node *n) >{ > __hlist_bl_del(n); > n->pprev = ((void *) 0x00200200 + 0); >} ># 98 "include/linux/rculist_bl.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hlist_bl_add_head_rcu(struct hlist_bl_node *n, > struct hlist_bl_head *h) >{ > struct hlist_bl_node *first; > > > first = hlist_bl_first(h); > > n->next = first; > if (first) > first->pprev = &n->next; > n->pprev = &h->first; > > > hlist_bl_set_first_rcu(h, n); >} ># 8 "include/linux/dcache.h" 2 > > > > > >struct nameidata; >struct path; >struct vfsmount; ># 42 "include/linux/dcache.h" >struct qstr { > union { > struct { > u32 hash; u32 len;; > }; > u64 hash_len; > }; > const unsigned char *name; >}; > > > > > >struct dentry_stat_t { > int nr_dentry; > int nr_unused; > int age_limit; > int want_pages; > int dummy[2]; >}; >extern struct dentry_stat_t dentry_stat; > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long >partial_name_hash(unsigned long c, unsigned long prevhash) >{ > return (prevhash + (c << 4) + (c >> 4)) * 11; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long end_name_hash(unsigned long hash) >{ > return (unsigned int) hash; >} > > >extern unsigned int full_name_hash(const unsigned char *, unsigned int); ># 103 "include/linux/dcache.h" >struct dentry { > > unsigned int d_flags; > seqcount_t d_seq; > struct hlist_bl_node d_hash; > struct dentry *d_parent; > struct qstr d_name; > struct inode *d_inode; > > unsigned char d_iname[36]; > > > unsigned int d_count; > spinlock_t d_lock; > const struct dentry_operations *d_op; > struct super_block *d_sb; > unsigned long d_time; > void *d_fsdata; > > struct list_head d_lru; > > > > union { > struct list_head d_child; > struct callback_head d_rcu; > } d_u; > struct list_head d_subdirs; > struct hlist_node d_alias; >}; > > > > > > > >enum dentry_d_lock_class >{ > DENTRY_D_LOCK_NORMAL, > DENTRY_D_LOCK_NESTED >}; > >struct dentry_operations { > int (*d_revalidate)(struct dentry *, unsigned int); > int (*d_hash)(const struct dentry *, const struct inode *, > struct qstr *); > int (*d_compare)(const struct dentry *, const struct inode *, > const struct dentry *, const struct inode *, > unsigned int, const char *, const struct qstr *); > int (*d_delete)(const struct dentry *); > void (*d_release)(struct dentry *); > void (*d_prune)(struct dentry *); > void (*d_iput)(struct dentry *, struct inode *); > char *(*d_dname)(struct dentry *, char *, int); > struct vfsmount *(*d_automount)(struct path *); > int (*d_manage)(struct dentry *, bool); >} __attribute__((__aligned__((1 << 6)))); ># 210 "include/linux/dcache.h" >extern seqlock_t rename_lock; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int dname_external(struct dentry *dentry) >{ > return dentry->d_name.name != dentry->d_iname; >} > > > > >extern void d_instantiate(struct dentry *, struct inode *); >extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *); >extern struct dentry * d_materialise_unique(struct dentry *, struct inode *); >extern void __d_drop(struct dentry *dentry); >extern void d_drop(struct dentry *dentry); >extern void d_delete(struct dentry *); >extern void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op); > > >extern struct dentry * d_alloc(struct dentry *, const struct qstr *); >extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *); >extern struct dentry * d_splice_alias(struct inode *, struct dentry *); >extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *); >extern struct dentry *d_find_any_alias(struct inode *inode); >extern struct dentry * d_obtain_alias(struct inode *); >extern void shrink_dcache_sb(struct super_block *); >extern void shrink_dcache_parent(struct dentry *); >extern void shrink_dcache_for_umount(struct super_block *); >extern int d_invalidate(struct dentry *); > > >extern struct dentry * d_make_root(struct inode *); > > >extern void d_genocide(struct dentry *); > >extern struct dentry *d_find_alias(struct inode *); >extern void d_prune_aliases(struct inode *); > > >extern int have_submounts(struct dentry *); > > > > >extern void d_rehash(struct dentry *); ># 266 "include/linux/dcache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void d_add(struct dentry *entry, struct inode *inode) >{ > d_instantiate(entry, inode); > d_rehash(entry); >} ># 280 "include/linux/dcache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct dentry *d_add_unique(struct dentry *entry, struct inode *inode) >{ > struct dentry *res; > > res = d_instantiate_unique(entry, inode); > d_rehash(res != ((void *)0) ? res : entry); > return res; >} > >extern void dentry_update_name_case(struct dentry *, struct qstr *); > > >extern void d_move(struct dentry *, struct dentry *); >extern struct dentry *d_ancestor(struct dentry *, struct dentry *); > > >extern struct dentry *d_lookup(struct dentry *, struct qstr *); >extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); >extern struct dentry *__d_lookup(struct dentry *, struct qstr *); >extern struct dentry *__d_lookup_rcu(const struct dentry *parent, > const struct qstr *name, > unsigned *seq, struct inode *inode); ># 312 "include/linux/dcache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __d_rcu_to_refcount(struct dentry *dentry, unsigned seq) >{ > int ret = 0; > > do { if (__builtin_expect(!!(!arch_spin_is_locked(&(&(&dentry->d_lock)->rlock)->raw_lock)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/dcache.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "316" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > if (!read_seqcount_retry(&dentry->d_seq, seq)) { > ret = 1; > dentry->d_count++; > } > > return ret; >} > > >extern int d_validate(struct dentry *, struct dentry *); > > > > >extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); > >extern char *__d_path(const struct path *, const struct path *, char *, int); >extern char *d_absolute_path(const struct path *, char *, int); >extern char *d_path(const struct path *, char *, int); >extern char *d_path_with_unreachable(const struct path *, char *, int); >extern char *dentry_path_raw(struct dentry *, char *, int); >extern char *dentry_path(struct dentry *, char *, int); ># 350 "include/linux/dcache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct dentry *dget_dlock(struct dentry *dentry) >{ > if (dentry) > dentry->d_count++; > return dentry; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct dentry *dget(struct dentry *dentry) >{ > if (dentry) { > spin_lock(&dentry->d_lock); > dget_dlock(dentry); > spin_unlock(&dentry->d_lock); > } > return dentry; >} > >extern struct dentry *dget_parent(struct dentry *dentry); ># 376 "include/linux/dcache.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int d_unhashed(struct dentry *dentry) >{ > return hlist_bl_unhashed(&dentry->d_hash); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int d_unlinked(struct dentry *dentry) >{ > return d_unhashed(dentry) && !((dentry) == (dentry)->d_parent); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int cant_mount(struct dentry *dentry) >{ > return (dentry->d_flags & 0x0100); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dont_mount(struct dentry *dentry) >{ > spin_lock(&dentry->d_lock); > dentry->d_flags |= 0x0100; > spin_unlock(&dentry->d_lock); >} > >extern void dput(struct dentry *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool d_managed(struct dentry *dentry) >{ > return dentry->d_flags & (0x10000|0x20000|0x40000); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool d_mountpoint(struct dentry *dentry) >{ > return dentry->d_flags & 0x10000; >} > >extern int sysctl_vfs_cache_pressure; ># 9 "include/linux/fs.h" 2 ># 1 "include/linux/path.h" 1 > > > >struct dentry; >struct vfsmount; > >struct path { > struct vfsmount *mnt; > struct dentry *dentry; >}; > >extern void path_get(struct path *); >extern void path_put(struct path *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int path_equal(const struct path *path1, const struct path *path2) >{ > return path1->mnt == path2->mnt && path1->dentry == path2->dentry; >} ># 10 "include/linux/fs.h" 2 > > > ># 1 "include/linux/radix-tree.h" 1 ># 54 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int radix_tree_is_indirect_ptr(void *ptr) >{ > return (int)((unsigned long)ptr & 1); >} > > > > > > >struct radix_tree_root { > unsigned int height; > gfp_t gfp_mask; > struct radix_tree_node *rnode; >}; ># 150 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *radix_tree_deref_slot(void **pslot) >{ > return ({ typeof(*(*pslot)) *_________p1 = (typeof(*(*pslot))* )(*(volatile typeof((*pslot)) *)&((*pslot))); do { } while (0); ; do { } while(0); ((typeof(*(*pslot)) *)(_________p1)); }); >} ># 165 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *radix_tree_deref_slot_protected(void **pslot, > spinlock_t *treelock) >{ > return ({ do { } while (0); ; ((typeof(*(*pslot)) *)((*pslot))); }); >} ># 178 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int radix_tree_deref_retry(void *arg) >{ > return __builtin_expect(!!((unsigned long)arg & 1), 0); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int radix_tree_exceptional_entry(void *arg) >{ > > return (unsigned long)arg & 2; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int radix_tree_exception(void *arg) >{ > return __builtin_expect(!!((unsigned long)arg & (1 | 2)), 0) > ; >} ># 213 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void radix_tree_replace_slot(void **pslot, void *item) >{ > do { if (__builtin_expect(!!(radix_tree_is_indirect_ptr(item)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/radix-tree.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "215" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > do { __asm__ __volatile__ ("dmb" : : : "memory"); ((*pslot)) = (typeof(*(item)) *)((item)); } while (0); >} > >int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); >void *radix_tree_lookup(struct radix_tree_root *, unsigned long); >void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long); >void *radix_tree_delete(struct radix_tree_root *, unsigned long); >unsigned int >radix_tree_gang_lookup(struct radix_tree_root *root, void **results, > unsigned long first_index, unsigned int max_items); >unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root, > void ***results, unsigned long *indices, > unsigned long first_index, unsigned int max_items); >unsigned long radix_tree_next_hole(struct radix_tree_root *root, > unsigned long index, unsigned long max_scan); >unsigned long radix_tree_prev_hole(struct radix_tree_root *root, > unsigned long index, unsigned long max_scan); >int radix_tree_preload(gfp_t gfp_mask); >void radix_tree_init(void); >void *radix_tree_tag_set(struct radix_tree_root *root, > unsigned long index, unsigned int tag); >void *radix_tree_tag_clear(struct radix_tree_root *root, > unsigned long index, unsigned int tag); >int radix_tree_tag_get(struct radix_tree_root *root, > unsigned long index, unsigned int tag); >unsigned int >radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results, > unsigned long first_index, unsigned int max_items, > unsigned int tag); >unsigned int >radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results, > unsigned long first_index, unsigned int max_items, > unsigned int tag); >unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, > unsigned long *first_indexp, unsigned long last_index, > unsigned long nr_to_tag, > unsigned int fromtag, unsigned int totag); >int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); >unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void radix_tree_preload_end(void) >{ > do { } while (0); >} ># 275 "include/linux/radix-tree.h" >struct radix_tree_iter { > unsigned long index; > unsigned long next_index; > unsigned long tags; >}; ># 292 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void ** >radix_tree_iter_init(struct radix_tree_iter *iter, unsigned long start) >{ ># 303 "include/linux/radix-tree.h" > iter->index = 0; > iter->next_index = start; > return ((void *)0); >} ># 321 "include/linux/radix-tree.h" >void **radix_tree_next_chunk(struct radix_tree_root *root, > struct radix_tree_iter *iter, unsigned flags); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned >radix_tree_chunk_size(struct radix_tree_iter *iter) >{ > return iter->next_index - iter->index; >} ># 347 "include/linux/radix-tree.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((always_inline)) void ** >radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags) >{ > if (flags & 0x0100) { > iter->tags >>= 1; > if (__builtin_expect(!!(iter->tags & 1ul), 1)) { > iter->index++; > return slot + 1; > } > if (!(flags & 0x0200) && __builtin_expect(!!(iter->tags), 1)) { > unsigned offset = (({ unsigned long __t = (iter->tags); fls(__t & -__t); }) - 1); > > iter->tags >>= offset; > iter->index += offset + 1; > return slot + offset + 1; > } > } else { > unsigned size = radix_tree_chunk_size(iter) - 1; > > while (size--) { > slot++; > iter->index++; > if (__builtin_expect(!!(*slot), 1)) > return slot; > if (flags & 0x0200) { > > iter->next_index = 0; > break; > } > } > } > return ((void *)0); >} ># 14 "include/linux/fs.h" 2 > > > > > > ># 1 "include/linux/semaphore.h" 1 ># 16 "include/linux/semaphore.h" >struct semaphore { > raw_spinlock_t lock; > unsigned int count; > struct list_head wait_list; >}; ># 32 "include/linux/semaphore.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sema_init(struct semaphore *sem, int val) >{ > static struct lock_class_key __key; > *sem = (struct semaphore) { .lock = (raw_spinlock_t) { .raw_lock = { { 0 } }, }, .count = val, .wait_list = { &((*sem).wait_list), &((*sem).wait_list) }, }; > do { (void)("semaphore->lock"); (void)(&__key); } while (0); >} > >extern void down(struct semaphore *sem); >extern int __attribute__((warn_unused_result)) down_interruptible(struct semaphore *sem); >extern int __attribute__((warn_unused_result)) down_killable(struct semaphore *sem); >extern int __attribute__((warn_unused_result)) down_trylock(struct semaphore *sem); >extern int __attribute__((warn_unused_result)) down_timeout(struct semaphore *sem, long jiffies); >extern void up(struct semaphore *sem); ># 21 "include/linux/fs.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/fiemap.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/fiemap.h" >struct fiemap_extent { > __u64 fe_logical; > > __u64 fe_physical; > > __u64 fe_length; > __u64 fe_reserved64[2]; > __u32 fe_flags; > __u32 fe_reserved[3]; >}; > >struct fiemap { > __u64 fm_start; > > __u64 fm_length; > > __u32 fm_flags; > __u32 fm_mapped_extents; > __u32 fm_extent_count; > __u32 fm_reserved; > struct fiemap_extent fm_extents[0]; >}; ># 22 "include/linux/fs.h" 2 > > > ># 1 "include/linux/migrate_mode.h" 1 ># 10 "include/linux/migrate_mode.h" >enum migrate_mode { > MIGRATE_ASYNC, > MIGRATE_SYNC_LIGHT, > MIGRATE_SYNC, >}; ># 26 "include/linux/fs.h" 2 > > ># 1 "include/linux/percpu-rwsem.h" 1 ># 10 "include/linux/percpu-rwsem.h" >struct percpu_rw_semaphore { > unsigned int *fast_read_ctr; > atomic_t write_ctr; > struct rw_semaphore rw_sem; > atomic_t slow_read_ctr; > wait_queue_head_t write_waitq; >}; > >extern void percpu_down_read(struct percpu_rw_semaphore *); >extern void percpu_up_read(struct percpu_rw_semaphore *); > >extern void percpu_down_write(struct percpu_rw_semaphore *); >extern void percpu_up_write(struct percpu_rw_semaphore *); > >extern int __percpu_init_rwsem(struct percpu_rw_semaphore *, > const char *, struct lock_class_key *); >extern void percpu_free_rwsem(struct percpu_rw_semaphore *); ># 29 "include/linux/fs.h" 2 ># 1 "include/linux/blk_types.h" 1 ># 12 "include/linux/blk_types.h" >struct bio_set; >struct bio; >struct bio_integrity_payload; >struct page; >struct block_device; >struct io_context; >struct cgroup_subsys_state; >typedef void (bio_end_io_t) (struct bio *, int); >typedef void (bio_destructor_t) (struct bio *); > > > > >struct bio_vec { > struct page *bv_page; > unsigned int bv_len; > unsigned int bv_offset; >}; > > > > > >struct bio { > sector_t bi_sector; > > struct bio *bi_next; > struct block_device *bi_bdev; > unsigned long bi_flags; > unsigned long bi_rw; > > > > unsigned short bi_vcnt; > unsigned short bi_idx; > > > > > unsigned int bi_phys_segments; > > unsigned int bi_size; > > > > > > unsigned int bi_seg_front_size; > unsigned int bi_seg_back_size; > > bio_end_io_t *bi_end_io; > > void *bi_private; > > > > > > struct io_context *bi_ioc; > struct cgroup_subsys_state *bi_css; > > > struct bio_integrity_payload *bi_integrity; > > > > > > > unsigned int bi_max_vecs; > > atomic_t bi_cnt; > > struct bio_vec *bi_io_vec; > > struct bio_set *bi_pool; > > > > > > > struct bio_vec bi_inline_vecs[0]; >}; ># 138 "include/linux/blk_types.h" >enum rq_flag_bits { > > __REQ_WRITE, > __REQ_FAILFAST_DEV, > __REQ_FAILFAST_TRANSPORT, > __REQ_FAILFAST_DRIVER, > > __REQ_SYNC, > __REQ_META, > __REQ_PRIO, > __REQ_DISCARD, > __REQ_SECURE, > __REQ_WRITE_SAME, > > __REQ_NOIDLE, > __REQ_FUA, > __REQ_FLUSH, > > > __REQ_RAHEAD, > __REQ_THROTTLED, > > > > __REQ_SORTED, > __REQ_SOFTBARRIER, > __REQ_NOMERGE, > __REQ_STARTED, > __REQ_DONTPREP, > __REQ_QUEUED, > __REQ_ELVPRIV, > __REQ_FAILED, > __REQ_QUIET, > __REQ_PREEMPT, > __REQ_ALLOCED, > __REQ_COPY_USER, > __REQ_FLUSH_SEQ, > __REQ_IO_STAT, > __REQ_MIXED_MERGE, > __REQ_KERNEL, > __REQ_NR_BITS, >}; ># 30 "include/linux/fs.h" 2 > > ># 1 "include/uapi/linux/fs.h" 1 ># 9 "include/uapi/linux/fs.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/limits.h" 1 ># 10 "include/uapi/linux/fs.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/ioctl.h" 1 > > > ># 1 "arch/arm/include/generated/asm/ioctl.h" 1 ># 1 "include/asm-generic/ioctl.h" 1 > > > ># 1 "include/uapi/asm-generic/ioctl.h" 1 ># 5 "include/asm-generic/ioctl.h" 2 > > >extern unsigned int __invalid_size_argument_for_IOC; ># 1 "arch/arm/include/generated/asm/ioctl.h" 2 ># 5 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/ioctl.h" 2 ># 11 "include/uapi/linux/fs.h" 2 ># 38 "include/uapi/linux/fs.h" >struct fstrim_range { > __u64 start; > __u64 len; > __u64 minlen; >}; > > >struct files_stat_struct { > unsigned long nr_files; > unsigned long nr_free_files; > unsigned long max_files; >}; > >struct inodes_stat_t { > int nr_inodes; > int nr_unused; > int dummy[5]; >}; ># 33 "include/linux/fs.h" 2 > >struct export_operations; >struct hd_geometry; >struct iovec; >struct nameidata; >struct kiocb; >struct kobject; >struct pipe_inode_info; >struct poll_table_struct; >struct kstatfs; >struct vm_area_struct; >struct vfsmount; >struct cred; >struct swap_info_struct; >struct seq_file; > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init(void); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) inode_init_early(void); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) files_init(unsigned long); > >extern struct files_stat_struct files_stat; >extern unsigned long get_max_files(void); >extern int sysctl_nr_open; >extern struct inodes_stat_t inodes_stat; >extern int leases_enable, lease_break_time; >extern int sysctl_protected_symlinks; >extern int sysctl_protected_hardlinks; > >struct buffer_head; >typedef int (get_block_t)(struct inode *inode, sector_t iblock, > struct buffer_head *bh_result, int create); >typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, > ssize_t bytes, void *private, int ret, > bool is_async); ># 224 "include/linux/fs.h" >struct iattr { > unsigned int ia_valid; > umode_t ia_mode; > kuid_t ia_uid; > kgid_t ia_gid; > loff_t ia_size; > struct timespec ia_atime; > struct timespec ia_mtime; > struct timespec ia_ctime; > > > > > > > struct file *ia_file; >}; > > > > ># 1 "include/linux/quota.h" 1 ># 42 "include/linux/quota.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/dqblk_xfs.h" 1 ># 50 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/dqblk_xfs.h" >typedef struct fs_disk_quota { > __s8 d_version; > __s8 d_flags; > __u16 d_fieldmask; > __u32 d_id; > __u64 d_blk_hardlimit; > __u64 d_blk_softlimit; > __u64 d_ino_hardlimit; > __u64 d_ino_softlimit; > __u64 d_bcount; > __u64 d_icount; > __s32 d_itimer; > > __s32 d_btimer; > __u16 d_iwarns; > __u16 d_bwarns; > __s32 d_padding2; > __u64 d_rtb_hardlimit; > __u64 d_rtb_softlimit; > __u64 d_rtbcount; > __s32 d_rtbtimer; > __u16 d_rtbwarns; > __s16 d_padding3; > char d_padding4[8]; >} fs_disk_quota_t; ># 146 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/linux/dqblk_xfs.h" >typedef struct fs_qfilestat { > __u64 qfs_ino; > __u64 qfs_nblks; > __u32 qfs_nextents; >} fs_qfilestat_t; > >typedef struct fs_quota_stat { > __s8 qs_version; > __u16 qs_flags; > __s8 qs_pad; > fs_qfilestat_t qs_uquota; > fs_qfilestat_t qs_gquota; > __u32 qs_incoredqs; > __s32 qs_btimelimit; > __s32 qs_itimelimit; > __s32 qs_rtbtimelimit; > __u16 qs_bwarnlimit; > __u16 qs_iwarnlimit; >} fs_quota_stat_t; ># 43 "include/linux/quota.h" 2 ># 1 "include/linux/dqblk_v1.h" 1 ># 44 "include/linux/quota.h" 2 ># 1 "include/linux/dqblk_v2.h" 1 > > > > > > > ># 1 "include/linux/dqblk_qtree.h" 1 ># 17 "include/linux/dqblk_qtree.h" >struct dquot; > > >struct qtree_fmt_operations { > void (*mem2disk_dqblk)(void *disk, struct dquot *dquot); > void (*disk2mem_dqblk)(struct dquot *dquot, void *disk); > int (*is_id)(void *disk, struct dquot *dquot); >}; > > >struct qtree_mem_dqinfo { > struct super_block *dqi_sb; > int dqi_type; > unsigned int dqi_blocks; > unsigned int dqi_free_blk; > unsigned int dqi_free_entry; > unsigned int dqi_blocksize_bits; > unsigned int dqi_entry_size; > unsigned int dqi_usable_bs; > unsigned int dqi_qtree_depth; > struct qtree_fmt_operations *dqi_ops; >}; > >int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); >int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); >int qtree_delete_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); >int qtree_release_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); >int qtree_entry_unused(struct qtree_mem_dqinfo *info, char *disk); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int qtree_depth(struct qtree_mem_dqinfo *info) >{ > unsigned int epb = info->dqi_usable_bs >> 2; > unsigned long long entries = epb; > int i; > > for (i = 1; entries < (1ULL << 32); i++) > entries *= epb; > return i; >} ># 9 "include/linux/dqblk_v2.h" 2 ># 45 "include/linux/quota.h" 2 > > > ># 1 "include/linux/projid.h" 1 ># 16 "include/linux/projid.h" >struct user_namespace; >extern struct user_namespace init_user_ns; > >typedef __kernel_uid32_t projid_t; ># 36 "include/linux/projid.h" >typedef projid_t kprojid_t; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) projid_t __kprojid_val(kprojid_t projid) >{ > return projid; >} ># 50 "include/linux/projid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool projid_eq(kprojid_t left, kprojid_t right) >{ > return __kprojid_val(left) == __kprojid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool projid_lt(kprojid_t left, kprojid_t right) >{ > return __kprojid_val(left) < __kprojid_val(right); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool projid_valid(kprojid_t projid) >{ > return !projid_eq(projid, ((kprojid_t) -1 )); >} ># 79 "include/linux/projid.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) kprojid_t make_kprojid(struct user_namespace *from, projid_t projid) >{ > return ((kprojid_t) projid ); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) projid_t from_kprojid(struct user_namespace *to, kprojid_t kprojid) >{ > return __kprojid_val(kprojid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) projid_t from_kprojid_munged(struct user_namespace *to, kprojid_t kprojid) >{ > projid_t projid = from_kprojid(to, kprojid); > if (projid == (projid_t)-1) > projid = 65534; > return projid; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool kprojid_has_mapping(struct user_namespace *ns, kprojid_t projid) >{ > return true; >} ># 49 "include/linux/quota.h" 2 ># 1 "include/uapi/linux/quota.h" 1 ># 88 "include/uapi/linux/quota.h" >enum { > QIF_BLIMITS_B = 0, > QIF_SPACE_B, > QIF_ILIMITS_B, > QIF_INODES_B, > QIF_BTIME_B, > QIF_ITIME_B, >}; ># 108 "include/uapi/linux/quota.h" >struct if_dqblk { > __u64 dqb_bhardlimit; > __u64 dqb_bsoftlimit; > __u64 dqb_curspace; > __u64 dqb_ihardlimit; > __u64 dqb_isoftlimit; > __u64 dqb_curinodes; > __u64 dqb_btime; > __u64 dqb_itime; > __u32 dqb_valid; >}; ># 129 "include/uapi/linux/quota.h" >struct if_dqinfo { > __u64 dqi_bgrace; > __u64 dqi_igrace; > __u32 dqi_flags; > __u32 dqi_valid; >}; ># 151 "include/uapi/linux/quota.h" >enum { > QUOTA_NL_C_UNSPEC, > QUOTA_NL_C_WARNING, > __QUOTA_NL_C_MAX, >}; > > >enum { > QUOTA_NL_A_UNSPEC, > QUOTA_NL_A_QTYPE, > QUOTA_NL_A_EXCESS_ID, > QUOTA_NL_A_WARNING, > QUOTA_NL_A_DEV_MAJOR, > QUOTA_NL_A_DEV_MINOR, > QUOTA_NL_A_CAUSED_ID, > __QUOTA_NL_A_MAX, >}; ># 50 "include/linux/quota.h" 2 > > > >enum quota_type { > USRQUOTA = 0, > GRPQUOTA = 1, > PRJQUOTA = 2, >}; > >typedef __kernel_uid32_t qid_t; >typedef long long qsize_t; > >struct kqid { > union { > kuid_t uid; > kgid_t gid; > kprojid_t projid; > }; > enum quota_type type; >}; > >extern bool qid_eq(struct kqid left, struct kqid right); >extern bool qid_lt(struct kqid left, struct kqid right); >extern qid_t from_kqid(struct user_namespace *to, struct kqid qid); >extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid); >extern bool qid_valid(struct kqid qid); ># 91 "include/linux/quota.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kqid make_kqid(struct user_namespace *from, > enum quota_type type, qid_t qid) >{ > struct kqid kqid; > > kqid.type = type; > switch (type) { > case USRQUOTA: > kqid.uid = make_kuid(from, qid); > break; > case GRPQUOTA: > kqid.gid = make_kgid(from, qid); > break; > case PRJQUOTA: > kqid.projid = make_kprojid(from, qid); > break; > default: > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/quota.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "108" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > } > return kqid; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kqid make_kqid_invalid(enum quota_type type) >{ > struct kqid kqid; > > kqid.type = type; > switch (type) { > case USRQUOTA: > kqid.uid = ((kuid_t) -1 ); > break; > case GRPQUOTA: > kqid.gid = ((kgid_t) -1 ); > break; > case PRJQUOTA: > kqid.projid = ((kprojid_t) -1 ); > break; > default: > do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/quota.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "135" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); > } > return kqid; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kqid make_kqid_uid(kuid_t uid) >{ > struct kqid kqid; > kqid.type = USRQUOTA; > kqid.uid = uid; > return kqid; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kqid make_kqid_gid(kgid_t gid) >{ > struct kqid kqid; > kqid.type = GRPQUOTA; > kqid.gid = gid; > return kqid; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct kqid make_kqid_projid(kprojid_t projid) >{ > struct kqid kqid; > kqid.type = PRJQUOTA; > kqid.projid = projid; > return kqid; >} > > >extern spinlock_t dq_data_lock; ># 189 "include/linux/quota.h" >struct mem_dqblk { > qsize_t dqb_bhardlimit; > qsize_t dqb_bsoftlimit; > qsize_t dqb_curspace; > qsize_t dqb_rsvspace; > qsize_t dqb_ihardlimit; > qsize_t dqb_isoftlimit; > qsize_t dqb_curinodes; > time_t dqb_btime; > time_t dqb_itime; >}; > > > > >struct quota_format_type; > >struct mem_dqinfo { > struct quota_format_type *dqi_format; > int dqi_fmt_id; > > struct list_head dqi_dirty_list; > unsigned long dqi_flags; > unsigned int dqi_bgrace; > unsigned int dqi_igrace; > qsize_t dqi_maxblimit; > qsize_t dqi_maxilimit; > void *dqi_priv; >}; > >struct super_block; ># 229 "include/linux/quota.h" >extern void mark_info_dirty(struct super_block *sb, int type); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int info_dirty(struct mem_dqinfo *info) >{ > return test_bit(31, &info->dqi_flags); >} > >enum { > DQST_LOOKUPS, > DQST_DROPS, > DQST_READS, > DQST_WRITES, > DQST_CACHE_HITS, > DQST_ALLOC_DQUOTS, > DQST_FREE_DQUOTS, > DQST_SYNCS, > _DQST_DQSTAT_LAST >}; > >struct dqstats { > int stat[_DQST_DQSTAT_LAST]; > struct percpu_counter counter[_DQST_DQSTAT_LAST]; >}; > >extern struct dqstats *dqstats_pcpu; >extern struct dqstats dqstats; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dqstats_inc(unsigned int type) >{ > percpu_counter_inc(&dqstats.counter[type]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dqstats_dec(unsigned int type) >{ > percpu_counter_dec(&dqstats.counter[type]); >} ># 277 "include/linux/quota.h" >struct dquot { > struct hlist_node dq_hash; > struct list_head dq_inuse; > struct list_head dq_free; > struct list_head dq_dirty; > struct mutex dq_lock; > atomic_t dq_count; > wait_queue_head_t dq_wait_unused; > struct super_block *dq_sb; > struct kqid dq_id; > loff_t dq_off; > unsigned long dq_flags; > struct mem_dqblk dq_dqb; >}; > > >struct quota_format_ops { > int (*check_quota_file)(struct super_block *sb, int type); > int (*read_file_info)(struct super_block *sb, int type); > int (*write_file_info)(struct super_block *sb, int type); > int (*free_file_info)(struct super_block *sb, int type); > int (*read_dqblk)(struct dquot *dquot); > int (*commit_dqblk)(struct dquot *dquot); > int (*release_dqblk)(struct dquot *dquot); >}; > > >struct dquot_operations { > int (*write_dquot) (struct dquot *); > struct dquot *(*alloc_dquot)(struct super_block *, int); > void (*destroy_dquot)(struct dquot *); > int (*acquire_dquot) (struct dquot *); > int (*release_dquot) (struct dquot *); > int (*mark_dirty) (struct dquot *); > int (*write_info) (struct super_block *, int); > > > qsize_t *(*get_reserved_space) (struct inode *); >}; > >struct path; > > >struct quotactl_ops { > int (*quota_on)(struct super_block *, int, int, struct path *); > int (*quota_on_meta)(struct super_block *, int, int); > int (*quota_off)(struct super_block *, int); > int (*quota_sync)(struct super_block *, int); > int (*get_info)(struct super_block *, int, struct if_dqinfo *); > int (*set_info)(struct super_block *, int, struct if_dqinfo *); > int (*get_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); > int (*set_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); > int (*get_xstate)(struct super_block *, struct fs_quota_stat *); > int (*set_xstate)(struct super_block *, unsigned int, int); >}; > >struct quota_format_type { > int qf_fmt_id; > const struct quota_format_ops *qf_ops; > struct module *qf_owner; > struct quota_format_type *qf_next; >}; > > >enum { > _DQUOT_USAGE_ENABLED = 0, > _DQUOT_LIMITS_ENABLED, > _DQUOT_SUSPENDED, > > > _DQUOT_STATE_FLAGS >}; ># 366 "include/linux/quota.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int dquot_state_flag(unsigned int flags, int type) >{ > return flags << _DQUOT_STATE_FLAGS * type; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int dquot_generic_flag(unsigned int flags, int type) >{ > return (flags >> _DQUOT_STATE_FLAGS * type) & ((1 << _DQUOT_USAGE_ENABLED) | (1 << _DQUOT_LIMITS_ENABLED) | (1 << _DQUOT_SUSPENDED)); >} > > >extern void quota_send_warning(struct kqid qid, dev_t dev, > const char warntype); ># 387 "include/linux/quota.h" >struct quota_info { > unsigned int flags; > struct mutex dqio_mutex; > struct mutex dqonoff_mutex; > struct rw_semaphore dqptr_sem; > struct inode *files[2]; > struct mem_dqinfo info[2]; > const struct quota_format_ops *ops[2]; >}; > >int register_quota_format(struct quota_format_type *fmt); >void unregister_quota_format(struct quota_format_type *fmt); > >struct quota_module_name { > int qm_fmt_id; > char *qm_mod_name; >}; ># 246 "include/linux/fs.h" 2 ># 273 "include/linux/fs.h" >enum positive_aop_returns { > AOP_WRITEPAGE_ACTIVATE = 0x80000, > AOP_TRUNCATED_PAGE = 0x80001, >}; ># 287 "include/linux/fs.h" >struct page; >struct address_space; >struct writeback_control; > >struct iov_iter { > const struct iovec *iov; > unsigned long nr_segs; > size_t iov_offset; > size_t count; >}; > >size_t iov_iter_copy_from_user_atomic(struct page *page, > struct iov_iter *i, unsigned long offset, size_t bytes); >size_t iov_iter_copy_from_user(struct page *page, > struct iov_iter *i, unsigned long offset, size_t bytes); >void iov_iter_advance(struct iov_iter *i, size_t bytes); >int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes); >size_t iov_iter_single_seg_count(struct iov_iter *i); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void iov_iter_init(struct iov_iter *i, > const struct iovec *iov, unsigned long nr_segs, > size_t count, size_t written) >{ > i->iov = iov; > i->nr_segs = nr_segs; > i->iov_offset = 0; > i->count = count + written; > > iov_iter_advance(i, written); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) size_t iov_iter_count(struct iov_iter *i) >{ > return i->count; >} ># 332 "include/linux/fs.h" >typedef struct { > size_t written; > size_t count; > union { > char *buf; > void *data; > } arg; > int error; >} read_descriptor_t; > >typedef int (*read_actor_t)(read_descriptor_t *, struct page *, > unsigned long, unsigned long); > >struct address_space_operations { > int (*writepage)(struct page *page, struct writeback_control *wbc); > int (*readpage)(struct file *, struct page *); > > > int (*writepages)(struct address_space *, struct writeback_control *); > > > int (*set_page_dirty)(struct page *page); > > int (*readpages)(struct file *filp, struct address_space *mapping, > struct list_head *pages, unsigned nr_pages); > > int (*write_begin)(struct file *, struct address_space *mapping, > loff_t pos, unsigned len, unsigned flags, > struct page **pagep, void **fsdata); > int (*write_end)(struct file *, struct address_space *mapping, > loff_t pos, unsigned len, unsigned copied, > struct page *page, void *fsdata); > > > sector_t (*bmap)(struct address_space *, sector_t); > void (*invalidatepage) (struct page *, unsigned long); > int (*releasepage) (struct page *, gfp_t); > void (*freepage)(struct page *); > ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, > loff_t offset, unsigned long nr_segs); > int (*get_xip_mem)(struct address_space *, unsigned long, int, > void **, unsigned long *); > > > > > int (*migratepage) (struct address_space *, > struct page *, struct page *, enum migrate_mode); > int (*launder_page) (struct page *); > int (*is_partially_uptodate) (struct page *, read_descriptor_t *, > unsigned long); > int (*error_remove_page)(struct address_space *, struct page *); > > > int (*swap_activate)(struct swap_info_struct *sis, struct file *file, > sector_t *span); > void (*swap_deactivate)(struct file *file); >}; > >extern const struct address_space_operations empty_aops; > > > > > >int pagecache_write_begin(struct file *, struct address_space *mapping, > loff_t pos, unsigned len, unsigned flags, > struct page **pagep, void **fsdata); > >int pagecache_write_end(struct file *, struct address_space *mapping, > loff_t pos, unsigned len, unsigned copied, > struct page *page, void *fsdata); > >struct backing_dev_info; >struct address_space { > struct inode *host; > struct radix_tree_root page_tree; > spinlock_t tree_lock; > unsigned int i_mmap_writable; > struct rb_root i_mmap; > struct list_head i_mmap_nonlinear; > struct mutex i_mmap_mutex; > > unsigned long nrpages; > unsigned long writeback_index; > const struct address_space_operations *a_ops; > unsigned long flags; > struct backing_dev_info *backing_dev_info; > spinlock_t private_lock; > struct list_head private_list; > void *private_data; >} __attribute__((aligned(sizeof(long)))); > > > > > >struct request_queue; > >struct block_device { > dev_t bd_dev; > int bd_openers; > struct inode * bd_inode; > struct super_block * bd_super; > struct mutex bd_mutex; > struct list_head bd_inodes; > void * bd_claiming; > void * bd_holder; > int bd_holders; > bool bd_write_holder; > > struct list_head bd_holder_disks; > > struct block_device * bd_contains; > unsigned bd_block_size; > struct hd_struct * bd_part; > > unsigned bd_part_count; > int bd_invalidated; > struct gendisk * bd_disk; > struct request_queue * bd_queue; > struct list_head bd_list; > > > > > > > unsigned long bd_private; > > > int bd_fsfreeze_count; > > struct mutex bd_fsfreeze_mutex; >}; ># 476 "include/linux/fs.h" >int mapping_tagged(struct address_space *mapping, int tag); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mapping_mapped(struct address_space *mapping) >{ > return !((&mapping->i_mmap)->rb_node == ((void *)0)) || > !list_empty(&mapping->i_mmap_nonlinear); >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mapping_writably_mapped(struct address_space *mapping) >{ > return mapping->i_mmap_writable != 0; >} ># 509 "include/linux/fs.h" >struct posix_acl; ># 521 "include/linux/fs.h" >struct inode { > umode_t i_mode; > unsigned short i_opflags; > kuid_t i_uid; > kgid_t i_gid; > unsigned int i_flags; > > > struct posix_acl *i_acl; > struct posix_acl *i_default_acl; > > > const struct inode_operations *i_op; > struct super_block *i_sb; > struct address_space *i_mapping; > > > void *i_security; > > > > unsigned long i_ino; > > > > > > > > union { > const unsigned int i_nlink; > unsigned int __i_nlink; > }; > dev_t i_rdev; > loff_t i_size; > struct timespec i_atime; > struct timespec i_mtime; > struct timespec i_ctime; > spinlock_t i_lock; > unsigned short i_bytes; > unsigned int i_blkbits; > blkcnt_t i_blocks; > > > seqcount_t i_size_seqcount; > > > > unsigned long i_state; > struct mutex i_mutex; > > unsigned long dirtied_when; > > struct hlist_node i_hash; > struct list_head i_wb_list; > struct list_head i_lru; > struct list_head i_sb_list; > union { > struct hlist_head i_dentry; > struct callback_head i_rcu; > }; > u64 i_version; > atomic_t i_count; > atomic_t i_dio_count; > atomic_t i_writecount; > const struct file_operations *i_fop; > struct file_lock *i_flock; > struct address_space i_data; > > struct dquot *i_dquot[2]; > > struct list_head i_devices; > union { > struct pipe_inode_info *i_pipe; > struct block_device *i_bdev; > struct cdev *i_cdev; > }; > > __u32 i_generation; > > > __u32 i_fsnotify_mask; > struct hlist_head i_fsnotify_marks; > > > > > > void *i_private; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int inode_unhashed(struct inode *inode) >{ > return hlist_unhashed(&inode->i_hash); >} ># 628 "include/linux/fs.h" >enum inode_i_mutex_lock_class >{ > I_MUTEX_NORMAL, > I_MUTEX_PARENT, > I_MUTEX_CHILD, > I_MUTEX_XATTR, > I_MUTEX_QUOTA >}; ># 647 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) loff_t i_size_read(const struct inode *inode) >{ > > loff_t i_size; > unsigned int seq; > > do { > seq = read_seqcount_begin(&inode->i_size_seqcount); > i_size = inode->i_size; > } while (read_seqcount_retry(&inode->i_size_seqcount, seq)); > return i_size; ># 668 "include/linux/fs.h" >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void i_size_write(struct inode *inode, loff_t i_size) >{ > > write_seqcount_begin(&inode->i_size_seqcount); > inode->i_size = i_size; > write_seqcount_end(&inode->i_size_seqcount); > > > > > > > >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uid_t i_uid_read(const struct inode *inode) >{ > return from_kuid(&init_user_ns, inode->i_uid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) gid_t i_gid_read(const struct inode *inode) >{ > return from_kgid(&init_user_ns, inode->i_gid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void i_uid_write(struct inode *inode, uid_t uid) >{ > inode->i_uid = make_kuid(&init_user_ns, uid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void i_gid_write(struct inode *inode, gid_t gid) >{ > inode->i_gid = make_kgid(&init_user_ns, gid); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned iminor(const struct inode *inode) >{ > return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned imajor(const struct inode *inode) >{ > return ((unsigned int) ((inode->i_rdev) >> 20)); >} > >extern struct block_device *I_BDEV(struct inode *inode); > >struct fown_struct { > rwlock_t lock; > struct pid *pid; > enum pid_type pid_type; > kuid_t uid, euid; > int signum; >}; > > > > >struct file_ra_state { > unsigned long start; > unsigned int size; > unsigned int async_size; > > > unsigned int ra_pages; > unsigned int mmap_miss; > loff_t prev_pos; >}; > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ra_has_index(struct file_ra_state *ra, unsigned long index) >{ > return (index >= ra->start && > index < ra->start + ra->size); >} > > > > >struct file { > > > > > union { > struct list_head fu_list; > struct callback_head fu_rcuhead; > } f_u; > struct path f_path; > > > const struct file_operations *f_op; > > > > > > spinlock_t f_lock; > > int f_sb_list_cpu; > > atomic_long_t f_count; > unsigned int f_flags; > fmode_t f_mode; > loff_t f_pos; > struct fown_struct f_owner; > const struct cred *f_cred; > struct file_ra_state f_ra; > > u64 f_version; > > void *f_security; > > > void *private_data; > > > > struct list_head f_ep_links; > struct list_head f_tfile_llink; > > struct address_space *f_mapping; > > > >}; > >struct file_handle { > __u32 handle_bytes; > int handle_type; > > unsigned char f_handle[0]; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct file *get_file(struct file *f) >{ > atomic_long_inc(&f->f_count); > return f; >} ># 857 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void file_take_write(struct file *filp) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void file_release_write(struct file *filp) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void file_reset_write(struct file *filp) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void file_check_state(struct file *filp) {} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int file_check_writeable(struct file *filp) >{ > return 0; >} ># 900 "include/linux/fs.h" >typedef struct files_struct *fl_owner_t; > >struct file_lock_operations { > void (*fl_copy_lock)(struct file_lock *, struct file_lock *); > void (*fl_release_private)(struct file_lock *); >}; > >struct lock_manager_operations { > int (*lm_compare_owner)(struct file_lock *, struct file_lock *); > void (*lm_notify)(struct file_lock *); > int (*lm_grant)(struct file_lock *, struct file_lock *, int); > void (*lm_break)(struct file_lock *); > int (*lm_change)(struct file_lock **, int); >}; > >struct lock_manager { > struct list_head list; >}; > >struct net; >void locks_start_grace(struct net *, struct lock_manager *); >void locks_end_grace(struct lock_manager *); >int locks_in_grace(struct net *); > > ># 1 "include/linux/nfs_fs_i.h" 1 > > > >struct nlm_lockowner; > > > > >struct nfs_lock_info { > u32 state; > struct nlm_lockowner *owner; > struct list_head list; >}; > >struct nfs4_lock_state; >struct nfs4_lock_info { > struct nfs4_lock_state *owner; >}; ># 926 "include/linux/fs.h" 2 > >struct file_lock { > struct file_lock *fl_next; > struct list_head fl_link; > struct list_head fl_block; > fl_owner_t fl_owner; > unsigned int fl_flags; > unsigned char fl_type; > unsigned int fl_pid; > struct pid *fl_nspid; > wait_queue_head_t fl_wait; > struct file *fl_file; > loff_t fl_start; > loff_t fl_end; > > struct fasync_struct * fl_fasync; > > unsigned long fl_break_time; > unsigned long fl_downgrade_time; > > const struct file_lock_operations *fl_ops; > const struct lock_manager_operations *fl_lmops; > union { > struct nfs_lock_info nfs_fl; > struct nfs4_lock_info nfs4_fl; > struct { > struct list_head link; > int state; > } afs; > } fl_u; >}; ># 965 "include/linux/fs.h" ># 1 "include/linux/fcntl.h" 1 > > > ># 1 "include/uapi/linux/fcntl.h" 1 > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/fcntl.h" 1 ># 9 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/fcntl.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/fcntl.h" 1 ># 131 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/fcntl.h" >struct f_owner_ex { > int type; > __kernel_pid_t pid; >}; ># 171 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/fcntl.h" >struct flock { > short l_type; > short l_whence; > __kernel_off_t l_start; > __kernel_off_t l_len; > __kernel_pid_t l_pid; > >}; ># 188 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/include/uapi/asm-generic/fcntl.h" >struct flock64 { > short l_type; > short l_whence; > __kernel_loff_t l_start; > __kernel_loff_t l_len; > __kernel_pid_t l_pid; > >}; ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/uapi/asm/fcntl.h" 2 ># 5 "include/uapi/linux/fcntl.h" 2 ># 5 "include/linux/fcntl.h" 2 ># 966 "include/linux/fs.h" 2 > >extern void send_sigio(struct fown_struct *fown, int fd, int band); > > >extern int fcntl_getlk(struct file *, struct flock *); >extern int fcntl_setlk(unsigned int, struct file *, unsigned int, > struct flock *); > > >extern int fcntl_getlk64(struct file *, struct flock64 *); >extern int fcntl_setlk64(unsigned int, struct file *, unsigned int, > struct flock64 *); > > >extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg); >extern int fcntl_getlease(struct file *filp); > > >void locks_free_lock(struct file_lock *fl); >extern void locks_init_lock(struct file_lock *); >extern struct file_lock * locks_alloc_lock(void); >extern void locks_copy_lock(struct file_lock *, struct file_lock *); >extern void __locks_copy_lock(struct file_lock *, const struct file_lock *); >extern void locks_remove_posix(struct file *, fl_owner_t); >extern void locks_remove_flock(struct file *); >extern void locks_release_private(struct file_lock *); >extern void posix_test_lock(struct file *, struct file_lock *); >extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *); >extern int posix_lock_file_wait(struct file *, struct file_lock *); >extern int posix_unblock_lock(struct file *, struct file_lock *); >extern int vfs_test_lock(struct file *, struct file_lock *); >extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *); >extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl); >extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl); >extern int __break_lease(struct inode *inode, unsigned int flags); >extern void lease_get_mtime(struct inode *, struct timespec *time); >extern int generic_setlease(struct file *, long, struct file_lock **); >extern int vfs_setlease(struct file *, long, struct file_lock **); >extern int lease_modify(struct file_lock **, int); >extern int lock_may_read(struct inode *, loff_t start, unsigned long count); >extern int lock_may_write(struct inode *, loff_t start, unsigned long count); >extern void locks_delete_block(struct file_lock *waiter); >extern void lock_flocks(void); >extern void unlock_flocks(void); ># 1167 "include/linux/fs.h" >struct fasync_struct { > spinlock_t fa_lock; > int magic; > int fa_fd; > struct fasync_struct *fa_next; > struct file *fa_file; > struct callback_head fa_rcu; >}; > > > > >extern int fasync_helper(int, struct file *, int, struct fasync_struct **); >extern struct fasync_struct *fasync_insert_entry(int, struct file *, struct fasync_struct **, struct fasync_struct *); >extern int fasync_remove_entry(struct file *, struct fasync_struct **); >extern struct fasync_struct *fasync_alloc(void); >extern void fasync_free(struct fasync_struct *); > > >extern void kill_fasync(struct fasync_struct **, int, int); > >extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force); >extern int f_setown(struct file *filp, unsigned long arg, int force); >extern void f_delown(struct file *filp); >extern pid_t f_getown(struct file *filp); >extern int send_sigurg(struct fown_struct *fown); > >struct mm_struct; ># 1206 "include/linux/fs.h" >extern struct list_head super_blocks; >extern spinlock_t sb_lock; > > >enum { > SB_UNFROZEN = 0, > SB_FREEZE_WRITE = 1, > SB_FREEZE_PAGEFAULT = 2, > SB_FREEZE_FS = 3, > > SB_FREEZE_COMPLETE = 4, >}; > > > >struct sb_writers { > > struct percpu_counter counter[(SB_FREEZE_COMPLETE - 1)]; > wait_queue_head_t wait; > > int frozen; > wait_queue_head_t wait_unfrozen; > > > > >}; > >struct super_block { > struct list_head s_list; > dev_t s_dev; > unsigned char s_blocksize_bits; > unsigned long s_blocksize; > loff_t s_maxbytes; > struct file_system_type *s_type; > const struct super_operations *s_op; > const struct dquot_operations *dq_op; > const struct quotactl_ops *s_qcop; > const struct export_operations *s_export_op; > unsigned long s_flags; > unsigned long s_magic; > struct dentry *s_root; > struct rw_semaphore s_umount; > int s_count; > atomic_t s_active; > > void *s_security; > > const struct xattr_handler **s_xattr; > > struct list_head s_inodes; > struct hlist_bl_head s_anon; > > struct list_head *s_files; > > > > struct list_head s_mounts; > > struct list_head s_dentry_lru; > int s_nr_dentry_unused; > > > spinlock_t s_inode_lru_lock __attribute__((__aligned__((1 << 6)))); > struct list_head s_inode_lru; > int s_nr_inodes_unused; > > struct block_device *s_bdev; > struct backing_dev_info *s_bdi; > struct mtd_info *s_mtd; > struct hlist_node s_instances; > struct quota_info s_dquot; > > struct sb_writers s_writers; > > char s_id[32]; > u8 s_uuid[16]; > > void *s_fs_info; > unsigned int s_max_links; > fmode_t s_mode; > > > > u32 s_time_gran; > > > > > > struct mutex s_vfs_rename_mutex; > > > > > > char *s_subtype; > > > > > > char *s_options; > const struct dentry_operations *s_d_op; > > > > > int cleancache_poolid; > > struct shrinker s_shrink; > > > atomic_long_t s_remove_count; > > > int s_readonly_remount; >}; > > >extern void prune_icache_sb(struct super_block *sb, int nr_to_scan); >extern void prune_dcache_sb(struct super_block *sb, int nr_to_scan); > >extern struct timespec current_fs_time(struct super_block *sb); > > > > > >void __sb_end_write(struct super_block *sb, int level); >int __sb_start_write(struct super_block *sb, int level, bool wait); ># 1345 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_end_write(struct super_block *sb) >{ > __sb_end_write(sb, SB_FREEZE_WRITE); >} ># 1357 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_end_pagefault(struct super_block *sb) >{ > __sb_end_write(sb, SB_FREEZE_PAGEFAULT); >} ># 1369 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_end_intwrite(struct super_block *sb) >{ > __sb_end_write(sb, SB_FREEZE_FS); >} ># 1393 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_start_write(struct super_block *sb) >{ > __sb_start_write(sb, SB_FREEZE_WRITE, true); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sb_start_write_trylock(struct super_block *sb) >{ > return __sb_start_write(sb, SB_FREEZE_WRITE, false); >} ># 1422 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_start_pagefault(struct super_block *sb) >{ > __sb_start_write(sb, SB_FREEZE_PAGEFAULT, true); >} ># 1440 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void sb_start_intwrite(struct super_block *sb) >{ > __sb_start_write(sb, SB_FREEZE_FS, true); >} > > >extern bool inode_owner_or_capable(const struct inode *inode); > > > > >extern int vfs_create(struct inode *, struct dentry *, umode_t, bool); >extern int vfs_mkdir(struct inode *, struct dentry *, umode_t); >extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t); >extern int vfs_symlink(struct inode *, struct dentry *, const char *); >extern int vfs_link(struct dentry *, struct inode *, struct dentry *); >extern int vfs_rmdir(struct inode *, struct dentry *); >extern int vfs_unlink(struct inode *, struct dentry *); >extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); > > > > >extern void dentry_unhash(struct dentry *dentry); > > > > >extern void inode_init_owner(struct inode *inode, const struct inode *dir, > umode_t mode); > > > >struct fiemap_extent_info { > unsigned int fi_flags; > unsigned int fi_extents_mapped; > unsigned int fi_extents_max; > struct fiemap_extent *fi_extents_start; > >}; >int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical, > u64 phys, u64 len, u32 flags); >int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags); ># 1506 "include/linux/fs.h" >typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned); >struct block_device_operations; > > > > > > > >struct file_operations { > struct module *owner; > loff_t (*llseek) (struct file *, loff_t, int); > ssize_t (*read) (struct file *, char *, size_t, loff_t *); > ssize_t (*write) (struct file *, const char *, size_t, loff_t *); > ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); > ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); > int (*readdir) (struct file *, void *, filldir_t); > unsigned int (*poll) (struct file *, struct poll_table_struct *); > long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); > long (*compat_ioctl) (struct file *, unsigned int, unsigned long); > int (*mmap) (struct file *, struct vm_area_struct *); > int (*open) (struct inode *, struct file *); > int (*flush) (struct file *, fl_owner_t id); > int (*release) (struct inode *, struct file *); > int (*fsync) (struct file *, loff_t, loff_t, int datasync); > int (*aio_fsync) (struct kiocb *, int datasync); > int (*fasync) (int, struct file *, int); > int (*lock) (struct file *, int, struct file_lock *); > ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); > unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); > int (*check_flags)(int); > int (*flock) (struct file *, int, struct file_lock *); > ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); > ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); > int (*setlease)(struct file *, long, struct file_lock **); > long (*fallocate)(struct file *file, int mode, loff_t offset, > loff_t len); > int (*show_fdinfo)(struct seq_file *m, struct file *f); >}; > >struct inode_operations { > struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); > void * (*follow_link) (struct dentry *, struct nameidata *); > int (*permission) (struct inode *, int); > struct posix_acl * (*get_acl)(struct inode *, int); > > int (*readlink) (struct dentry *, char *,int); > void (*put_link) (struct dentry *, struct nameidata *, void *); > > int (*create) (struct inode *,struct dentry *, umode_t, bool); > int (*link) (struct dentry *,struct inode *,struct dentry *); > int (*unlink) (struct inode *,struct dentry *); > int (*symlink) (struct inode *,struct dentry *,const char *); > int (*mkdir) (struct inode *,struct dentry *,umode_t); > int (*rmdir) (struct inode *,struct dentry *); > int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t); > int (*rename) (struct inode *, struct dentry *, > struct inode *, struct dentry *); > int (*setattr) (struct dentry *, struct iattr *); > int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); > int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); > ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); > ssize_t (*listxattr) (struct dentry *, char *, size_t); > int (*removexattr) (struct dentry *, const char *); > int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, > u64 len); > int (*update_time)(struct inode *, struct timespec *, int); > int (*atomic_open)(struct inode *, struct dentry *, > struct file *, unsigned open_flag, > umode_t create_mode, int *opened); >} __attribute__((__aligned__((1 << 6)))); > >ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector, > unsigned long nr_segs, unsigned long fast_segs, > struct iovec *fast_pointer, > struct iovec **ret_pointer); > >extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *); >extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *); >extern ssize_t vfs_readv(struct file *, const struct iovec *, > unsigned long, loff_t *); >extern ssize_t vfs_writev(struct file *, const struct iovec *, > unsigned long, loff_t *); > >struct super_operations { > struct inode *(*alloc_inode)(struct super_block *sb); > void (*destroy_inode)(struct inode *); > > void (*dirty_inode) (struct inode *, int flags); > int (*write_inode) (struct inode *, struct writeback_control *wbc); > int (*drop_inode) (struct inode *); > void (*evict_inode) (struct inode *); > void (*put_super) (struct super_block *); > int (*sync_fs)(struct super_block *sb, int wait); > int (*freeze_fs) (struct super_block *); > int (*unfreeze_fs) (struct super_block *); > int (*statfs) (struct dentry *, struct kstatfs *); > int (*remount_fs) (struct super_block *, int *, char *); > void (*umount_begin) (struct super_block *); > > int (*show_options)(struct seq_file *, struct dentry *); > int (*show_devname)(struct seq_file *, struct dentry *); > int (*show_path)(struct seq_file *, struct dentry *); > int (*show_stats)(struct seq_file *, struct dentry *); > > ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); > ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); > > int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t); > int (*nr_cached_objects)(struct super_block *); > void (*free_cached_objects)(struct super_block *, int); >}; ># 1742 "include/linux/fs.h" >extern void __mark_inode_dirty(struct inode *, int); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mark_inode_dirty(struct inode *inode) >{ > __mark_inode_dirty(inode, ((1 << 0) | (1 << 1) | (1 << 2))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mark_inode_dirty_sync(struct inode *inode) >{ > __mark_inode_dirty(inode, (1 << 0)); >} > >extern void inc_nlink(struct inode *inode); >extern void drop_nlink(struct inode *inode); >extern void clear_nlink(struct inode *inode); >extern void set_nlink(struct inode *inode, unsigned int nlink); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inode_inc_link_count(struct inode *inode) >{ > inc_nlink(inode); > mark_inode_dirty(inode); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inode_dec_link_count(struct inode *inode) >{ > drop_nlink(inode); > mark_inode_dirty(inode); >} ># 1778 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inode_inc_iversion(struct inode *inode) >{ > spin_lock(&inode->i_lock); > inode->i_version++; > spin_unlock(&inode->i_lock); >} > >enum file_time_flags { > S_ATIME = 1, > S_MTIME = 2, > S_CTIME = 4, > S_VERSION = 8, >}; > >extern void touch_atime(struct path *); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void file_accessed(struct file *file) >{ > if (!(file->f_flags & 01000000)) > touch_atime(&file->f_path); >} > >int sync_inode(struct inode *inode, struct writeback_control *wbc); >int sync_inode_metadata(struct inode *inode, int wait); > >struct file_system_type { > const char *name; > int fs_flags; > > > > > > > > struct dentry *(*mount) (struct file_system_type *, int, > const char *, void *); > void (*kill_sb) (struct super_block *); > struct module *owner; > struct file_system_type * next; > struct hlist_head fs_supers; > > struct lock_class_key s_lock_key; > struct lock_class_key s_umount_key; > struct lock_class_key s_vfs_rename_key; > struct lock_class_key s_writers_key[(SB_FREEZE_COMPLETE - 1)]; > > struct lock_class_key i_lock_key; > struct lock_class_key i_mutex_key; > struct lock_class_key i_mutex_dir_key; >}; > >extern struct dentry *mount_ns(struct file_system_type *fs_type, int flags, > void *data, int (*fill_super)(struct super_block *, void *, int)); >extern struct dentry *mount_bdev(struct file_system_type *fs_type, > int flags, const char *dev_name, void *data, > int (*fill_super)(struct super_block *, void *, int)); >extern struct dentry *mount_single(struct file_system_type *fs_type, > int flags, void *data, > int (*fill_super)(struct super_block *, void *, int)); >extern struct dentry *mount_nodev(struct file_system_type *fs_type, > int flags, void *data, > int (*fill_super)(struct super_block *, void *, int)); >extern struct dentry *mount_subtree(struct vfsmount *mnt, const char *path); >void generic_shutdown_super(struct super_block *sb); >void kill_block_super(struct super_block *sb); >void kill_anon_super(struct super_block *sb); >void kill_litter_super(struct super_block *sb); >void deactivate_super(struct super_block *sb); >void deactivate_locked_super(struct super_block *sb); >int set_anon_super(struct super_block *s, void *data); >int get_anon_bdev(dev_t *); >void free_anon_bdev(dev_t); >struct super_block *sget(struct file_system_type *type, > int (*test)(struct super_block *,void *), > int (*set)(struct super_block *,void *), > int flags, void *data); >extern struct dentry *mount_pseudo(struct file_system_type *, char *, > const struct super_operations *ops, > const struct dentry_operations *dops, > unsigned long); > > > > > > > >extern int register_filesystem(struct file_system_type *); >extern int unregister_filesystem(struct file_system_type *); >extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data); > >extern void kern_unmount(struct vfsmount *mnt); >extern int may_umount_tree(struct vfsmount *); >extern int may_umount(struct vfsmount *); >extern long do_mount(const char *, const char *, const char *, unsigned long, void *); >extern struct vfsmount *collect_mounts(struct path *); >extern void drop_collected_mounts(struct vfsmount *); >extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *, > struct vfsmount *); >extern int vfs_statfs(struct path *, struct kstatfs *); >extern int user_statfs(const char *, struct kstatfs *); >extern int fd_statfs(int, struct kstatfs *); >extern int vfs_ustat(dev_t, struct kstatfs *); >extern int freeze_super(struct super_block *super); >extern int thaw_super(struct super_block *super); >extern bool our_mnt(struct vfsmount *mnt); > >extern int current_umask(void); > > >extern struct kobject *fs_kobj; > > >extern int rw_verify_area(int, struct file *, loff_t *, size_t); > > > > > >extern int locks_mandatory_locked(struct inode *); >extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __mandatory_lock(struct inode *ino) >{ > return (ino->i_mode & (0002000 | 00010)) == 0002000; >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mandatory_lock(struct inode *ino) >{ > return ((ino)->i_sb->s_flags & (64)) && __mandatory_lock(ino); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int locks_verify_locked(struct inode *inode) >{ > if (mandatory_lock(inode)) > return locks_mandatory_locked(inode); > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int locks_verify_truncate(struct inode *inode, > struct file *filp, > loff_t size) >{ > if (inode->i_flock && mandatory_lock(inode)) > return locks_mandatory_area( > 2, inode, filp, > size < inode->i_size ? size : inode->i_size, > (size < inode->i_size ? inode->i_size - size > : size - inode->i_size) > ); > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int break_lease(struct inode *inode, unsigned int mode) >{ > if (inode->i_flock) > return __break_lease(inode, mode); > return 0; >} ># 1989 "include/linux/fs.h" >struct audit_names; >struct filename { > const char *name; > const char *uptr; > struct audit_names *aname; > bool separate; >}; > >extern long vfs_truncate(struct path *, loff_t); >extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs, > struct file *filp); >extern int do_fallocate(struct file *file, int mode, loff_t offset, > loff_t len); >extern long do_sys_open(int dfd, const char *filename, int flags, > umode_t mode); >extern struct file *file_open_name(struct filename *, int, umode_t); >extern struct file *filp_open(const char *, int, umode_t); >extern struct file *file_open_root(struct dentry *, struct vfsmount *, > const char *, int); >extern struct file * dentry_open(const struct path *, int, const struct cred *); >extern int filp_close(struct file *, fl_owner_t id); > >extern struct filename *getname(const char *); > >enum { > FILE_CREATED = 1, > FILE_OPENED = 2 >}; >extern int finish_open(struct file *file, struct dentry *dentry, > int (*open)(struct inode *, struct file *), > int *opened); >extern int finish_no_open(struct file *file, struct dentry *dentry); > > > >extern int ioctl_preallocate(struct file *filp, void *argp); > > >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init_early(void); >extern void __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) vfs_caches_init(unsigned long); > >extern struct kmem_cache *names_cachep; > >extern void final_putname(struct filename *name); > > > > > > >extern void putname(struct filename *name); > > > >extern int register_blkdev(unsigned int, const char *); >extern void unregister_blkdev(unsigned int, const char *); >extern struct block_device *bdget(dev_t); >extern struct block_device *bdgrab(struct block_device *bdev); >extern void bd_set_size(struct block_device *, loff_t size); >extern void bd_forget(struct inode *inode); >extern void bdput(struct block_device *); >extern void invalidate_bdev(struct block_device *); >extern void iterate_bdevs(void (*)(struct block_device *, void *), void *); >extern int sync_blockdev(struct block_device *bdev); >extern void kill_bdev(struct block_device *); >extern struct super_block *freeze_bdev(struct block_device *); >extern void emergency_thaw_all(void); >extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); >extern int fsync_bdev(struct block_device *); ># 2078 "include/linux/fs.h" >extern int sync_filesystem(struct super_block *); >extern const struct file_operations def_blk_fops; >extern const struct file_operations def_chr_fops; >extern const struct file_operations bad_sock_fops; >extern const struct file_operations def_fifo_fops; > >extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long); >extern int blkdev_ioctl(struct block_device *, fmode_t, unsigned, unsigned long); >extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long); >extern int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder); >extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode, > void *holder); >extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, > void *holder); >extern int blkdev_put(struct block_device *bdev, fmode_t mode); > >extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk); >extern void bd_unlink_disk_holder(struct block_device *bdev, > struct gendisk *disk); ># 2112 "include/linux/fs.h" >extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *); >extern int register_chrdev_region(dev_t, unsigned, const char *); >extern int __register_chrdev(unsigned int major, unsigned int baseminor, > unsigned int count, const char *name, > const struct file_operations *fops); >extern void __unregister_chrdev(unsigned int major, unsigned int baseminor, > unsigned int count, const char *name); >extern void unregister_chrdev_region(dev_t, unsigned); >extern void chrdev_show(struct seq_file *,off_t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int register_chrdev(unsigned int major, const char *name, > const struct file_operations *fops) >{ > return __register_chrdev(major, 0, 256, name, fops); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void unregister_chrdev(unsigned int major, const char *name) >{ > __unregister_chrdev(major, 0, 256, name); >} > > > > > > > >extern const char *__bdevname(dev_t, char *buffer); >extern const char *bdevname(struct block_device *bdev, char *buffer); >extern struct block_device *lookup_bdev(const char *); >extern void blkdev_show(struct seq_file *,off_t); > > > > > >extern void init_special_inode(struct inode *, umode_t, dev_t); > > >extern void make_bad_inode(struct inode *); >extern int is_bad_inode(struct inode *); > >extern const struct file_operations read_pipefifo_fops; >extern const struct file_operations write_pipefifo_fops; >extern const struct file_operations rdwr_pipefifo_fops; ># 2169 "include/linux/fs.h" >extern void check_disk_size_change(struct gendisk *disk, > struct block_device *bdev); >extern int revalidate_disk(struct gendisk *); >extern int check_disk_change(struct block_device *); >extern int __invalidate_device(struct block_device *, bool); >extern int invalidate_partition(struct gendisk *, int); > >unsigned long invalidate_mapping_pages(struct address_space *mapping, > unsigned long start, unsigned long end); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void invalidate_remote_inode(struct inode *inode) >{ > if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) || > (((inode->i_mode) & 00170000) == 0120000)) > invalidate_mapping_pages(inode->i_mapping, 0, -1); >} >extern int invalidate_inode_pages2(struct address_space *mapping); >extern int invalidate_inode_pages2_range(struct address_space *mapping, > unsigned long start, unsigned long end); >extern int write_inode_now(struct inode *, int); >extern int filemap_fdatawrite(struct address_space *); >extern int filemap_flush(struct address_space *); >extern int filemap_fdatawait(struct address_space *); >extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, > loff_t lend); >extern int filemap_write_and_wait(struct address_space *mapping); >extern int filemap_write_and_wait_range(struct address_space *mapping, > loff_t lstart, loff_t lend); >extern int __filemap_fdatawrite_range(struct address_space *mapping, > loff_t start, loff_t end, int sync_mode); >extern int filemap_fdatawrite_range(struct address_space *mapping, > loff_t start, loff_t end); > >extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end, > int datasync); >extern int vfs_fsync(struct file *file, int datasync); >extern int generic_write_sync(struct file *file, loff_t pos, loff_t count); >extern void emergency_sync(void); >extern void emergency_remount(void); > >extern sector_t bmap(struct inode *, sector_t); > >extern int notify_change(struct dentry *, struct iattr *); >extern int inode_permission(struct inode *, int); >extern int generic_permission(struct inode *, int); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool execute_ok(struct inode *inode) >{ > return (inode->i_mode & (00100|00010|00001)) || (((inode->i_mode) & 00170000) == 0040000); >} ># 2236 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_write_access(struct inode *inode) >{ > return atomic_inc_unless_negative(&inode->i_writecount) ? 0 : -26; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int deny_write_access(struct file *file) >{ > struct inode *inode = file->f_path.dentry->d_inode; > return atomic_dec_unless_positive(&inode->i_writecount) ? 0 : -26; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void put_write_access(struct inode * inode) >{ > atomic_sub(1, &inode->i_writecount); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void allow_write_access(struct file *file) >{ > if (file) > atomic_add(1, &file->f_path.dentry->d_inode->i_writecount); >} ># 2265 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void i_readcount_dec(struct inode *inode) >{ > return; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void i_readcount_inc(struct inode *inode) >{ > return; >} > >extern int do_pipe_flags(int *, int); > >extern int kernel_read(struct file *, loff_t, char *, unsigned long); >extern struct file * open_exec(const char *); > > >extern int is_subdir(struct dentry *, struct dentry *); >extern int path_is_under(struct path *, struct path *); >extern ino_t find_inode_number(struct dentry *, struct qstr *); > > > > >extern loff_t default_llseek(struct file *file, loff_t offset, int whence); > >extern loff_t vfs_llseek(struct file *file, loff_t offset, int whence); > >extern int inode_init_always(struct super_block *, struct inode *); >extern void inode_init_once(struct inode *); >extern void address_space_init_once(struct address_space *mapping); >extern void ihold(struct inode * inode); >extern void iput(struct inode *); >extern struct inode * igrab(struct inode *); >extern ino_t iunique(struct super_block *, ino_t); >extern int inode_needs_sync(struct inode *inode); >extern int generic_delete_inode(struct inode *inode); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int generic_drop_inode(struct inode *inode) >{ > return !inode->i_nlink || inode_unhashed(inode); >} > >extern struct inode *ilookup5_nowait(struct super_block *sb, > unsigned long hashval, int (*test)(struct inode *, void *), > void *data); >extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval, > int (*test)(struct inode *, void *), void *data); >extern struct inode *ilookup(struct super_block *sb, unsigned long ino); > >extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *); >extern struct inode * iget_locked(struct super_block *, unsigned long); >extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); >extern int insert_inode_locked(struct inode *); > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lockdep_annotate_inode_mutex_key(struct inode *inode) { }; > >extern void unlock_new_inode(struct inode *); >extern unsigned int get_next_ino(void); > >extern void __iget(struct inode * inode); >extern void iget_failed(struct inode *); >extern void clear_inode(struct inode *); >extern void __destroy_inode(struct inode *); >extern struct inode *new_inode_pseudo(struct super_block *sb); >extern struct inode *new_inode(struct super_block *sb); >extern void free_inode_nonrcu(struct inode *inode); >extern int should_remove_suid(struct dentry *); >extern int file_remove_suid(struct file *); > >extern void __insert_inode_hash(struct inode *, unsigned long hashval); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void insert_inode_hash(struct inode *inode) >{ > __insert_inode_hash(inode, inode->i_ino); >} > >extern void __remove_inode_hash(struct inode *); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void remove_inode_hash(struct inode *inode) >{ > if (!inode_unhashed(inode)) > __remove_inode_hash(inode); >} > >extern void inode_sb_list_add(struct inode *inode); > > >extern void submit_bio(int, struct bio *); >extern int bdev_read_only(struct block_device *); > >extern int set_blocksize(struct block_device *, int); >extern int sb_set_blocksize(struct super_block *, int); >extern int sb_min_blocksize(struct super_block *, int); > >extern int generic_file_mmap(struct file *, struct vm_area_struct *); >extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); >extern int generic_file_remap_pages(struct vm_area_struct *, unsigned long addr, > unsigned long size, unsigned long pgoff); >extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); >int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); >extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); >extern ssize_t __generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, > loff_t *); >extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t); >extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *, > unsigned long *, loff_t, loff_t *, size_t, size_t); >extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *, > unsigned long, loff_t, loff_t *, size_t, ssize_t); >extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos); >extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos); >extern int generic_segment_checks(const struct iovec *iov, > unsigned long *nr_segs, size_t *count, int access_flags); > > >extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, > unsigned long nr_segs, loff_t pos); >extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end, > int datasync); >extern void block_sync_page(struct page *page); > > >extern ssize_t generic_file_splice_read(struct file *, loff_t *, > struct pipe_inode_info *, size_t, unsigned int); >extern ssize_t default_file_splice_read(struct file *, loff_t *, > struct pipe_inode_info *, size_t, unsigned int); >extern ssize_t generic_file_splice_write(struct pipe_inode_info *, > struct file *, loff_t *, size_t, unsigned int); >extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, > struct file *out, loff_t *, size_t len, unsigned int flags); >extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, > size_t len, unsigned int flags); > >extern void >file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); >extern loff_t noop_llseek(struct file *file, loff_t offset, int whence); >extern loff_t no_llseek(struct file *file, loff_t offset, int whence); >extern loff_t generic_file_llseek(struct file *file, loff_t offset, int whence); >extern loff_t generic_file_llseek_size(struct file *file, loff_t offset, > int whence, loff_t maxsize, loff_t eof); >extern int generic_file_open(struct inode * inode, struct file * filp); >extern int nonseekable_open(struct inode * inode, struct file * filp); ># 2413 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int xip_truncate_page(struct address_space *mapping, loff_t from) >{ > return 0; >} > > > >typedef void (dio_submit_t)(int rw, struct bio *bio, struct inode *inode, > loff_t file_offset); > >enum { > > DIO_LOCKING = 0x01, > > > DIO_SKIP_HOLES = 0x02, >}; > >void dio_end_io(struct bio *bio, int error); > >ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, > struct block_device *bdev, const struct iovec *iov, loff_t offset, > unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, > dio_submit_t submit_io, int flags); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, > struct inode *inode, const struct iovec *iov, loff_t offset, > unsigned long nr_segs, get_block_t get_block) >{ > return __blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov, > offset, nr_segs, get_block, ((void *)0), ((void *)0), > DIO_LOCKING | DIO_SKIP_HOLES); >} > > >void inode_dio_wait(struct inode *inode); >void inode_dio_done(struct inode *inode); > >extern const struct file_operations generic_ro_fops; > > > >extern int vfs_readlink(struct dentry *, char *, int, const char *); >extern int vfs_follow_link(struct nameidata *, const char *); >extern int page_readlink(struct dentry *, char *, int); >extern void *page_follow_link_light(struct dentry *, struct nameidata *); >extern void page_put_link(struct dentry *, struct nameidata *, void *); >extern int __page_symlink(struct inode *inode, const char *symname, int len, > int nofs); >extern int page_symlink(struct inode *inode, const char *symname, int len); >extern const struct inode_operations page_symlink_inode_operations; >extern int generic_readlink(struct dentry *, char *, int); >extern void generic_fillattr(struct inode *, struct kstat *); >extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); >void __inode_add_bytes(struct inode *inode, loff_t bytes); >void inode_add_bytes(struct inode *inode, loff_t bytes); >void inode_sub_bytes(struct inode *inode, loff_t bytes); >loff_t inode_get_bytes(struct inode *inode); >void inode_set_bytes(struct inode *inode, loff_t bytes); > >extern int vfs_readdir(struct file *, filldir_t, void *); > >extern int vfs_stat(const char *, struct kstat *); >extern int vfs_lstat(const char *, struct kstat *); >extern int vfs_fstat(unsigned int, struct kstat *); >extern int vfs_fstatat(int , const char *, struct kstat *, int); > >extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, > unsigned long arg); >extern int __generic_block_fiemap(struct inode *inode, > struct fiemap_extent_info *fieinfo, > loff_t start, loff_t len, > get_block_t *get_block); >extern int generic_block_fiemap(struct inode *inode, > struct fiemap_extent_info *fieinfo, u64 start, > u64 len, get_block_t *get_block); > >extern void get_filesystem(struct file_system_type *fs); >extern void put_filesystem(struct file_system_type *fs); >extern struct file_system_type *get_fs_type(const char *name); >extern struct super_block *get_super(struct block_device *); >extern struct super_block *get_super_thawed(struct block_device *); >extern struct super_block *get_active_super(struct block_device *bdev); >extern void drop_super(struct super_block *sb); >extern void iterate_supers(void (*)(struct super_block *, void *), void *); >extern void iterate_supers_type(struct file_system_type *, > void (*)(struct super_block *, void *), void *); > >extern int dcache_dir_open(struct inode *, struct file *); >extern int dcache_dir_close(struct inode *, struct file *); >extern loff_t dcache_dir_lseek(struct file *, loff_t, int); >extern int dcache_readdir(struct file *, void *, filldir_t); >extern int simple_setattr(struct dentry *, struct iattr *); >extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); >extern int simple_statfs(struct dentry *, struct kstatfs *); >extern int simple_open(struct inode *inode, struct file *file); >extern int simple_link(struct dentry *, struct inode *, struct dentry *); >extern int simple_unlink(struct inode *, struct dentry *); >extern int simple_rmdir(struct inode *, struct dentry *); >extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); >extern int noop_fsync(struct file *, loff_t, loff_t, int); >extern int simple_empty(struct dentry *); >extern int simple_readpage(struct file *file, struct page *page); >extern int simple_write_begin(struct file *file, struct address_space *mapping, > loff_t pos, unsigned len, unsigned flags, > struct page **pagep, void **fsdata); >extern int simple_write_end(struct file *file, struct address_space *mapping, > loff_t pos, unsigned len, unsigned copied, > struct page *page, void *fsdata); > >extern struct dentry *simple_lookup(struct inode *, struct dentry *, unsigned int flags); >extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *); >extern const struct file_operations simple_dir_operations; >extern const struct inode_operations simple_dir_inode_operations; >struct tree_descr { char *name; const struct file_operations *ops; int mode; }; >struct dentry *d_alloc_name(struct dentry *, const char *); >extern int simple_fill_super(struct super_block *, unsigned long, struct tree_descr *); >extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); >extern void simple_release_fs(struct vfsmount **mount, int *count); > >extern ssize_t simple_read_from_buffer(void *to, size_t count, > loff_t *ppos, const void *from, size_t available); >extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos, > const void *from, size_t count); > >extern int generic_file_fsync(struct file *, loff_t, loff_t, int); > >extern int generic_check_addressable(unsigned, u64); > > >extern int buffer_migrate_page(struct address_space *, > struct page *, struct page *, > enum migrate_mode); > > > > >extern int inode_change_ok(const struct inode *, struct iattr *); >extern int inode_newsize_ok(const struct inode *, loff_t offset); >extern void setattr_copy(struct inode *inode, const struct iattr *attr); > >extern int file_update_time(struct file *file); > >extern int generic_show_options(struct seq_file *m, struct dentry *root); >extern void save_mount_options(struct super_block *sb, char *options); >extern void replace_mount_options(struct super_block *sb, char *options); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) ino_t parent_ino(struct dentry *dentry) >{ > ino_t res; > > > > > > spin_lock(&dentry->d_lock); > res = dentry->d_parent->d_inode->i_ino; > spin_unlock(&dentry->d_lock); > return res; >} > > > > > > > >struct simple_transaction_argresp { > ssize_t size; > char data[0]; >}; > > > >char *simple_transaction_get(struct file *file, const char *buf, > size_t size); >ssize_t simple_transaction_read(struct file *file, char *buf, > size_t size, loff_t *pos); >int simple_transaction_release(struct inode *inode, struct file *file); > >void simple_transaction_set(struct file *file, size_t n); ># 2626 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) >void __simple_attr_check_format(const char *fmt, ...) >{ > >} > >int simple_attr_open(struct inode *inode, struct file *file, > int (*get)(void *, u64 *), int (*set)(void *, u64), > const char *fmt); >int simple_attr_release(struct inode *inode, struct file *file); >ssize_t simple_attr_read(struct file *file, char *buf, > size_t len, loff_t *ppos); >ssize_t simple_attr_write(struct file *file, const char *buf, > size_t len, loff_t *ppos); > >struct ctl_table; >int proc_nr_files(struct ctl_table *table, int write, > void *buffer, size_t *lenp, loff_t *ppos); >int proc_nr_dentry(struct ctl_table *table, int write, > void *buffer, size_t *lenp, loff_t *ppos); >int proc_nr_inodes(struct ctl_table *table, int write, > void *buffer, size_t *lenp, loff_t *ppos); >int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) get_filesystem_list(char *buf); ># 2657 "include/linux/fs.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_sxid(umode_t mode) >{ > return (mode & 0004000) || ((mode & 0002000) && (mode & 00010)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inode_has_no_xattr(struct inode *inode) >{ > if (!is_sxid(inode->i_mode) && (inode->i_sb->s_flags & (1<<28))) > inode->i_flags |= 4096; >} ># 66 "include/linux/genhd.h" 2 > > >struct partition { > unsigned char boot_ind; > unsigned char head; > unsigned char sector; > unsigned char cyl; > unsigned char sys_ind; > unsigned char end_head; > unsigned char end_sector; > unsigned char end_cyl; > __le32 start_sect; > __le32 nr_sects; >} __attribute__((packed)); > >struct disk_stats { > unsigned long sectors[2]; > unsigned long ios[2]; > unsigned long merges[2]; > unsigned long ticks[2]; > unsigned long io_ticks; > unsigned long time_in_queue; >}; ># 97 "include/linux/genhd.h" >struct partition_meta_info { > char uuid[37]; > u8 volname[64]; >}; > >struct hd_struct { > sector_t start_sect; > > > > > > sector_t nr_sects; > seqcount_t nr_sects_seq; > sector_t alignment_offset; > unsigned int discard_alignment; > struct device __dev; > struct kobject *holder_dir; > int policy, partno; > struct partition_meta_info *info; > > > > unsigned long stamp; > atomic_t in_flight[2]; > > struct disk_stats *dkstats; > > > > atomic_t ref; > struct callback_head callback_head; >}; ># 142 "include/linux/genhd.h" >enum { > DISK_EVENT_MEDIA_CHANGE = 1 << 0, > DISK_EVENT_EJECT_REQUEST = 1 << 1, >}; > > > > >struct blk_scsi_cmd_filter { > unsigned long read_ok[((256) / (sizeof(long) * 8))]; > unsigned long write_ok[((256) / (sizeof(long) * 8))]; > struct kobject kobj; >}; > >struct disk_part_tbl { > struct callback_head callback_head; > int len; > struct hd_struct *last_lookup; > struct hd_struct *part[]; >}; > >struct disk_events; > >struct gendisk { > > > > int major; > int first_minor; > int minors; > > > char disk_name[32]; > char *(*devnode)(struct gendisk *gd, umode_t *mode); > > unsigned int events; > unsigned int async_events; > > > > > > > struct disk_part_tbl *part_tbl; > struct hd_struct part0; > > const struct block_device_operations *fops; > struct request_queue *queue; > void *private_data; > > int flags; > struct device *driverfs_dev; > struct kobject *slave_dir; > > struct timer_rand_state *random; > atomic_t sync_io; > struct disk_events *ev; > > struct blk_integrity *integrity; > > int node_id; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct gendisk *part_to_disk(struct hd_struct *part) >{ > if (__builtin_expect(!!(part), 1)) { > if (part->partno) > return ({ const typeof( ((struct gendisk *)0)->part0.__dev ) *__mptr = (((&((part)->__dev))->parent)); (struct gendisk *)( (char *)__mptr - __builtin_offsetof(struct gendisk,part0.__dev) );}); > else > return ({ const typeof( ((struct gendisk *)0)->part0.__dev ) *__mptr = (((&((part)->__dev)))); (struct gendisk *)( (char *)__mptr - __builtin_offsetof(struct gendisk,part0.__dev) );}); > } > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void part_pack_uuid(const u8 *uuid_str, u8 *to) >{ > int i; > for (i = 0; i < 16; ++i) { > *to++ = (hex_to_bin(*uuid_str) << 4) | > (hex_to_bin(*(uuid_str + 1))); > uuid_str += 2; > switch (i) { > case 3: > case 5: > case 7: > case 9: > uuid_str++; > continue; > } > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int disk_max_parts(struct gendisk *disk) >{ > if (disk->flags & 64) > return 256; > return disk->minors; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool disk_part_scan_enabled(struct gendisk *disk) >{ > return disk_max_parts(disk) > 1 && > !(disk->flags & 512); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dev_t disk_devt(struct gendisk *disk) >{ > return (&(disk)->part0.__dev)->devt; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) dev_t part_devt(struct hd_struct *part) >{ > return (&((part)->__dev))->devt; >} > >extern struct hd_struct *disk_get_part(struct gendisk *disk, int partno); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void disk_put_part(struct hd_struct *part) >{ > if (__builtin_expect(!!(part), 1)) > put_device((&((part)->__dev))); >} ># 273 "include/linux/genhd.h" >struct disk_part_iter { > struct gendisk *disk; > struct hd_struct *part; > int idx; > unsigned int flags; >}; > >extern void disk_part_iter_init(struct disk_part_iter *piter, > struct gendisk *disk, unsigned int flags); >extern struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter); >extern void disk_part_iter_exit(struct disk_part_iter *piter); > >extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk, > sector_t sector); ># 316 "include/linux/genhd.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void part_stat_set_all(struct hd_struct *part, int value) >{ > int i; > > for (((i)) = -1; ((i)) = cpumask_next(((i)), (cpu_possible_mask)), ((i)) < nr_cpu_ids;) > ({ void *__p = (({ do { const void *__vpp_verify = (typeof(((part->dkstats))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*((part->dkstats))) *)((part->dkstats)))); (typeof((typeof(*((part->dkstats))) *)((part->dkstats)))) (__ptr + (((__per_cpu_offset[(i)])))); }); })); size_t __n = sizeof(struct disk_stats); if ((__n) != 0) { if (__builtin_constant_p((value)) && (value) == 0) __memzero((__p),(__n)); else memset((__p),(value),(__n)); } (__p); }) > ; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int init_part_stats(struct hd_struct *part) >{ > part->dkstats = (typeof(struct disk_stats) *)__alloc_percpu(sizeof(struct disk_stats), __alignof__(struct disk_stats)); > if (!part->dkstats) > return 0; > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void free_part_stats(struct hd_struct *part) >{ > free_percpu(part->dkstats); >} ># 377 "include/linux/genhd.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void part_inc_in_flight(struct hd_struct *part, int rw) >{ > atomic_add(1, &part->in_flight[rw]); > if (part->partno) > atomic_add(1, &part_to_disk(part)->part0.in_flight[rw]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void part_dec_in_flight(struct hd_struct *part, int rw) >{ > atomic_sub(1, &part->in_flight[rw]); > if (part->partno) > atomic_sub(1, &part_to_disk(part)->part0.in_flight[rw]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int part_in_flight(struct hd_struct *part) >{ > return (*(volatile int *)&(&part->in_flight[0])->counter) + (*(volatile int *)&(&part->in_flight[1])->counter); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct partition_meta_info *alloc_part_info(struct gendisk *disk) >{ > if (disk) > return kzalloc_node(sizeof(struct partition_meta_info), > ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)), disk->node_id); > return kzalloc(sizeof(struct partition_meta_info), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void free_part_info(struct hd_struct *part) >{ > kfree(part->info); >} > > >extern void part_round_stats(int cpu, struct hd_struct *part); > > >extern void add_disk(struct gendisk *disk); >extern void del_gendisk(struct gendisk *gp); >extern struct gendisk *get_gendisk(dev_t dev, int *partno); >extern struct block_device *bdget_disk(struct gendisk *disk, int partno); > >extern void set_device_ro(struct block_device *bdev, int flag); >extern void set_disk_ro(struct gendisk *disk, int flag); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int get_disk_ro(struct gendisk *disk) >{ > return disk->part0.policy; >} > >extern void disk_block_events(struct gendisk *disk); >extern void disk_unblock_events(struct gendisk *disk); >extern void disk_flush_events(struct gendisk *disk, unsigned int mask); >extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask); > > >extern void add_disk_randomness(struct gendisk *disk); >extern void rand_initialize_disk(struct gendisk *disk); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) sector_t get_start_sect(struct block_device *bdev) >{ > return bdev->bd_part->start_sect; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) sector_t get_capacity(struct gendisk *disk) >{ > return disk->part0.nr_sects; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_capacity(struct gendisk *disk, sector_t size) >{ > disk->part0.nr_sects = size; >} > > > > > > >struct solaris_x86_slice { > __le16 s_tag; > __le16 s_flag; > __le32 s_start; > __le32 s_size; >}; > >struct solaris_x86_vtoc { > unsigned int v_bootinfo[3]; > __le32 v_sanity; > __le32 v_version; > char v_volume[8]; > __le16 v_sectorsz; > __le16 v_nparts; > unsigned int v_reserved[10]; > struct solaris_x86_slice > v_slice[16]; > unsigned int timestamp[16]; > char v_asciilabel[128]; >}; ># 488 "include/linux/genhd.h" >struct bsd_disklabel { > __le32 d_magic; > __s16 d_type; > __s16 d_subtype; > char d_typename[16]; > char d_packname[16]; > __u32 d_secsize; > __u32 d_nsectors; > __u32 d_ntracks; > __u32 d_ncylinders; > __u32 d_secpercyl; > __u32 d_secperunit; > __u16 d_sparespertrack; > __u16 d_sparespercyl; > __u32 d_acylinders; > __u16 d_rpm; > __u16 d_interleave; > __u16 d_trackskew; > __u16 d_cylskew; > __u32 d_headswitch; > __u32 d_trkseek; > __u32 d_flags; > > __u32 d_drivedata[5]; > > __u32 d_spare[5]; > __le32 d_magic2; > __le16 d_checksum; > > > __le16 d_npartitions; > __le32 d_bbsize; > __le32 d_sbsize; > struct bsd_partition { > __le32 p_size; > __le32 p_offset; > __le32 p_fsize; > __u8 p_fstype; > __u8 p_frag; > __le16 p_cpg; > } d_partitions[16]; >}; ># 544 "include/linux/genhd.h" >struct unixware_slice { > __le16 s_label; > __le16 s_flags; > __le32 start_sect; > __le32 nr_sects; >}; > >struct unixware_disklabel { > __le32 d_type; > __le32 d_magic; > __le32 d_version; > char d_serial[12]; > __le32 d_ncylinders; > __le32 d_ntracks; > __le32 d_nsectors; > __le32 d_secsize; > __le32 d_part_start; > __le32 d_unknown1[12]; > __le32 d_alt_tbl; > __le32 d_alt_len; > __le32 d_phys_cyl; > __le32 d_phys_trk; > __le32 d_phys_sec; > __le32 d_phys_bytes; > __le32 d_unknown2; > __le32 d_unknown3; > __le32 d_pad[8]; > > struct unixware_vtoc { > __le32 v_magic; > __le32 v_version; > char v_name[8]; > __le16 v_nslices; > __le16 v_unknown1; > __le32 v_reserved[10]; > struct unixware_slice > v_slice[16]; > } vtoc; > >}; ># 595 "include/linux/genhd.h" >extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt); >extern void blk_free_devt(dev_t devt); >extern dev_t blk_lookup_devt(const char *name, int partno); >extern char *disk_name (struct gendisk *hd, int partno, char *buf); > >extern int disk_expand_part_tbl(struct gendisk *disk, int target); >extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); >extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev); >extern struct hd_struct * __attribute__((warn_unused_result)) add_partition(struct gendisk *disk, > int partno, sector_t start, > sector_t len, int flags, > struct partition_meta_info > *info); >extern void __delete_partition(struct hd_struct *); >extern void delete_partition(struct gendisk *, int); >extern void printk_all_partitions(void); > >extern struct gendisk *alloc_disk_node(int minors, int node_id); >extern struct gendisk *alloc_disk(int minors); >extern struct kobject *get_disk(struct gendisk *disk); >extern void put_disk(struct gendisk *disk); >extern void blk_register_region(dev_t devt, unsigned long range, > struct module *module, > struct kobject *(*probe)(dev_t, int *, void *), > int (*lock)(dev_t, void *), > void *data); >extern void blk_unregister_region(dev_t devt, unsigned long range); > >extern ssize_t part_size_show(struct device *dev, > struct device_attribute *attr, char *buf); >extern ssize_t part_stat_show(struct device *dev, > struct device_attribute *attr, char *buf); >extern ssize_t part_inflight_show(struct device *dev, > struct device_attribute *attr, char *buf); ># 637 "include/linux/genhd.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hd_ref_init(struct hd_struct *part) >{ > (((&part->ref)->counter) = (1)); > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hd_struct_get(struct hd_struct *part) >{ > atomic_add(1, &part->ref); > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int hd_struct_try_get(struct hd_struct *part) >{ > return atomic_add_unless((&part->ref), 1, 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void hd_struct_put(struct hd_struct *part) >{ > if ((atomic_sub_return(1, &part->ref) == 0)) > __delete_partition(part); >} ># 669 "include/linux/genhd.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) sector_t part_nr_sects_read(struct hd_struct *part) >{ > > sector_t nr_sects; > unsigned seq; > do { > seq = read_seqcount_begin(&part->nr_sects_seq); > nr_sects = part->nr_sects; > } while (read_seqcount_retry(&part->nr_sects_seq, seq)); > return nr_sects; ># 689 "include/linux/genhd.h" >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void part_nr_sects_write(struct hd_struct *part, sector_t size) >{ > > write_seqcount_begin(&part->nr_sects_seq); > part->nr_sects = size; > write_seqcount_end(&part->nr_sects_seq); > > > > > > > >} ># 10 "include/linux/blkdev.h" 2 > > > ># 1 "include/linux/pagemap.h" 1 ># 10 "include/linux/pagemap.h" ># 1 "include/linux/highmem.h" 1 > > > > > > > ># 1 "include/linux/uaccess.h" 1 > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" 1 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" ># 1 "arch/arm/include/generated/asm/errno.h" 1 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" 2 > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/unified.h" 1 ># 95 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/unified.h" >__asm__( >" .macro it, cond\n" >" .endm\n" >" .macro itt, cond\n" >" .endm\n" >" .macro ite, cond\n" >" .endm\n" >" .macro ittt, cond\n" >" .endm\n" >" .macro itte, cond\n" >" .endm\n" >" .macro itet, cond\n" >" .endm\n" >" .macro itee, cond\n" >" .endm\n" >" .macro itttt, cond\n" >" .endm\n" >" .macro ittte, cond\n" >" .endm\n" >" .macro ittet, cond\n" >" .endm\n" >" .macro ittee, cond\n" >" .endm\n" >" .macro itett, cond\n" >" .endm\n" >" .macro itete, cond\n" >" .endm\n" >" .macro iteet, cond\n" >" .endm\n" >" .macro iteee, cond\n" >" .endm\n"); ># 20 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" 2 ># 38 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" >struct exception_table_entry >{ > unsigned long insn, fixup; >}; > >extern int fixup_exception(struct pt_regs *regs); > > > > > >extern int __get_user_bad(void); >extern int __put_user_bad(void); ># 63 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_fs(mm_segment_t fs) >{ > current_thread_info()->addr_limit = fs; > modify_domain(0, fs ? 1 : 1); >} ># 100 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" >extern int __get_user_1(void *); >extern int __get_user_2(void *); >extern int __get_user_4(void *); ># 150 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" >extern int __put_user_1(void *, unsigned int); >extern int __put_user_2(void *, unsigned int); >extern int __put_user_4(void *, unsigned int); >extern int __put_user_8(void *, unsigned long long); ># 421 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/uaccess.h" >extern unsigned long __attribute__((warn_unused_result)) __copy_from_user(void *to, const void *from, unsigned long n); >extern unsigned long __attribute__((warn_unused_result)) __copy_to_user(void *to, const void *from, unsigned long n); >extern unsigned long __attribute__((warn_unused_result)) __copy_to_user_std(void *to, const void *from, unsigned long n); >extern unsigned long __attribute__((warn_unused_result)) __clear_user(void *addr, unsigned long n); >extern unsigned long __attribute__((warn_unused_result)) __clear_user_std(void *addr, unsigned long n); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __attribute__((warn_unused_result)) copy_from_user(void *to, const void *from, unsigned long n) >{ > if ((({ unsigned long flag, roksum; (void)0; __asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" : "=&r" (flag), "=&r" (roksum) : "r" (from), "Ir" (n), "0" (current_thread_info()->addr_limit) : "cc"); flag; }) == 0)) > n = __copy_from_user(to, from, n); > else > ({ void *__p = (to); size_t __n = n; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > return n; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __attribute__((warn_unused_result)) copy_to_user(void *to, const void *from, unsigned long n) >{ > if ((({ unsigned long flag, roksum; (void)0; __asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" : "=&r" (flag), "=&r" (roksum) : "r" (to), "Ir" (n), "0" (current_thread_info()->addr_limit) : "cc"); flag; }) == 0)) > n = __copy_to_user(to, from, n); > return n; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __attribute__((warn_unused_result)) clear_user(void *to, unsigned long n) >{ > if ((({ unsigned long flag, roksum; (void)0; __asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" : "=&r" (flag), "=&r" (roksum) : "r" (to), "Ir" (n), "0" (current_thread_info()->addr_limit) : "cc"); flag; }) == 0)) > n = __clear_user(to, n); > return n; >} > >extern long strncpy_from_user(char *dest, const char *src, long count); > >extern __attribute__((warn_unused_result)) long strlen_user(const char *str); >extern __attribute__((warn_unused_result)) long strnlen_user(const char *str, long n); ># 6 "include/linux/uaccess.h" 2 ># 16 "include/linux/uaccess.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pagefault_disable(void) >{ > do { (current_thread_info()->preempt_count) += (1); } while (0); > > > > > __asm__ __volatile__("": : :"memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void pagefault_enable(void) >{ > > > > > __asm__ __volatile__("": : :"memory"); > do { (current_thread_info()->preempt_count) -= (1); } while (0); > > > > __asm__ __volatile__("": : :"memory"); > do { } while (0); >} > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __copy_from_user_inatomic_nocache(void *to, > const void *from, unsigned long n) >{ > return __copy_from_user(to, from, n); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long __copy_from_user_nocache(void *to, > const void *from, unsigned long n) >{ > return __copy_from_user(to, from, n); >} ># 96 "include/linux/uaccess.h" >extern long probe_kernel_read(void *dst, const void *src, size_t size); >extern long __probe_kernel_read(void *dst, const void *src, size_t size); ># 108 "include/linux/uaccess.h" >extern long __attribute__((no_instrument_function)) probe_kernel_write(void *dst, const void *src, size_t size); >extern long __attribute__((no_instrument_function)) __probe_kernel_write(void *dst, const void *src, size_t size); ># 9 "include/linux/highmem.h" 2 ># 1 "include/linux/hardirq.h" 1 > > > > > ># 1 "include/linux/ftrace_irq.h" 1 ># 9 "include/linux/ftrace_irq.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ftrace_nmi_enter(void) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ftrace_nmi_exit(void) { } ># 7 "include/linux/hardirq.h" 2 ># 1 "include/linux/vtime.h" 1 > > > >struct task_struct; ># 14 "include/linux/vtime.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_task_switch(struct task_struct *prev) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_account_system(struct task_struct *tsk) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_account_system_irqsafe(struct task_struct *tsk) { } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_account(struct task_struct *tsk) { } > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void irqtime_account_irq(struct task_struct *tsk) { } > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_account_irq_enter(struct task_struct *tsk) >{ ># 37 "include/linux/vtime.h" > vtime_account(tsk); > irqtime_account_irq(tsk); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vtime_account_irq_exit(struct task_struct *tsk) >{ > > vtime_account_system(tsk); > irqtime_account_irq(tsk); >} ># 8 "include/linux/hardirq.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hardirq.h" 1 > > > > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/irq.h" 1 ># 25 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/irq.h" >struct irqaction; >struct pt_regs; >extern void migrate_irqs(void); > >extern void asm_do_IRQ(unsigned int, struct pt_regs *); >void handle_IRQ(unsigned int, struct pt_regs *); >void init_IRQ(void); ># 7 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hardirq.h" 2 > > > >typedef struct { > unsigned int __softirq_pending; > > unsigned int ipi_irqs[6]; > >} __attribute__((__aligned__((1 << 6)))) irq_cpustat_t; > ># 1 "include/linux/irq_cpustat.h" 1 ># 20 "include/linux/irq_cpustat.h" >extern irq_cpustat_t irq_stat[]; ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/hardirq.h" 2 > > > > > >u64 smp_irq_stat_cpu(unsigned int cpu); ># 9 "include/linux/hardirq.h" 2 ># 128 "include/linux/hardirq.h" >extern void synchronize_irq(unsigned int irq); ># 144 "include/linux/hardirq.h" >extern void rcu_nmi_enter(void); >extern void rcu_nmi_exit(void); ># 164 "include/linux/hardirq.h" >extern void irq_enter(void); ># 179 "include/linux/hardirq.h" >extern void irq_exit(void); ># 10 "include/linux/highmem.h" 2 > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" 1 ># 15 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-cache.h" 1 ># 13 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-cache.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue.h" 1 ># 14 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/glue-cache.h" 2 ># 16 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/shmparam.h" 1 ># 17 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" 2 ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cachetype.h" 1 ># 12 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cachetype.h" >extern unsigned int cacheid; ># 53 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cachetype.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int __attribute__((pure)) cacheid_is(unsigned int mask) >{ > return ((0) & mask) | > (~((1 << 0)) & ((1 << 1) | (1 << 3) | (1 << 4) | (1 << 5)) & mask & cacheid); >} ># 18 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" 2 ># 104 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >struct cpu_cache_fns { > void (*flush_icache_all)(void); > void (*flush_kern_all)(void); > void (*flush_kern_louis)(void); > void (*flush_user_all)(void); > void (*flush_user_range)(unsigned long, unsigned long, unsigned int); > > void (*coherent_kern_range)(unsigned long, unsigned long); > int (*coherent_user_range)(unsigned long, unsigned long); > void (*flush_kern_dcache_area)(void *, size_t); > > void (*dma_map_area)(const void *, size_t, int); > void (*dma_unmap_area)(const void *, size_t, int); > > void (*dma_flush_range)(const void *, const void *); >}; ># 149 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >extern void v7_flush_icache_all(void); >extern void v7_flush_kern_cache_all(void); >extern void v7_flush_kern_cache_louis(void); >extern void v7_flush_user_cache_all(void); >extern void v7_flush_user_cache_range(unsigned long, unsigned long, unsigned int); >extern void v7_coherent_kern_range(unsigned long, unsigned long); >extern int v7_coherent_user_range(unsigned long, unsigned long); >extern void v7_flush_kern_dcache_area(void *, size_t); > > > > > > > >extern void v7_dma_map_area(const void *, size_t, int); >extern void v7_dma_unmap_area(const void *, size_t, int); >extern void v7_dma_flush_range(const void *, const void *); ># 175 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >extern void copy_to_user_page(struct vm_area_struct *, struct page *, > unsigned long, void *, const void *, unsigned long); ># 212 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __flush_icache_all(void) >{ > v7_flush_icache_all(); >} ># 224 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void vivt_flush_cache_mm(struct mm_struct *mm) >{ > if (test_bit(cpumask_check((current_thread_info()->cpu)), (((mm_cpumask(mm)))->bits))) > v7_flush_user_cache_all(); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) >{ > struct mm_struct *mm = vma->vm_mm; > > if (!mm || test_bit(cpumask_check((current_thread_info()->cpu)), (((mm_cpumask(mm)))->bits))) > v7_flush_user_cache_range(start & (~(((1UL) << 12)-1)), ((((end)) + ((typeof((end)))((((1UL) << 12))) - 1)) & ~((typeof((end)))((((1UL) << 12))) - 1)), > vma->vm_flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void >vivt_flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) >{ > struct mm_struct *mm = vma->vm_mm; > > if (!mm || test_bit(cpumask_check((current_thread_info()->cpu)), (((mm_cpumask(mm)))->bits))) { > unsigned long addr = user_addr & (~(((1UL) << 12)-1)); > v7_flush_user_cache_range(addr, addr + ((1UL) << 12), vma->vm_flags); > } >} ># 259 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >extern void flush_cache_mm(struct mm_struct *mm); >extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); >extern void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn); ># 299 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >extern void flush_dcache_page(struct page *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void flush_kernel_vmap_range(void *addr, int size) >{ > if ((cacheid_is((1 << 0)) || cacheid_is((1 << 2)))) > v7_flush_kern_dcache_area(addr, (size_t)size); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void invalidate_kernel_vmap_range(void *addr, int size) >{ > if ((cacheid_is((1 << 0)) || cacheid_is((1 << 2)))) > v7_flush_kern_dcache_area(addr, (size_t)size); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void flush_anon_page(struct vm_area_struct *vma, > struct page *page, unsigned long vmaddr) >{ > extern void __flush_anon_page(struct vm_area_struct *vma, > struct page *, unsigned long); > if (PageAnon(page)) > __flush_anon_page(vma, page, vmaddr); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void flush_kernel_dcache_page(struct page *page) >{ >} ># 348 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/cacheflush.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void flush_cache_vmap(unsigned long start, unsigned long end) >{ > if (!cacheid_is((1 << 1))) > v7_flush_kern_cache_all(); > else > > > > > __asm__ __volatile__ ("dsb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void flush_cache_vunmap(unsigned long start, unsigned long end) >{ > if (!cacheid_is((1 << 1))) > v7_flush_kern_cache_all(); >} ># 12 "include/linux/highmem.h" 2 ># 31 "include/linux/highmem.h" ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/kmap_types.h" 1 ># 32 "include/linux/highmem.h" 2 > > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/highmem.h" 1 ># 20 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/highmem.h" >extern pte_t *pkmap_page_table; > >extern void *kmap_high(struct page *page); >extern void kunmap_high(struct page *page); ># 45 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/highmem.h" >extern void *kmap_high_get(struct page *page); ># 58 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/highmem.h" >extern void *kmap(struct page *page); >extern void kunmap(struct page *page); >extern void *kmap_atomic(struct page *page); >extern void __kunmap_atomic(void *kvaddr); >extern void *kmap_atomic_pfn(unsigned long pfn); >extern struct page *kmap_atomic_to_page(const void *ptr); ># 35 "include/linux/highmem.h" 2 > > >unsigned int nr_free_highpages(void); >extern unsigned long totalhigh_pages; > >void kmap_flush_unused(void); > >struct page *kmap_to_page(void *addr); ># 88 "include/linux/highmem.h" >extern __attribute__((section(".data..percpu" ""))) __typeof__(int) __kmap_atomic_idx; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kmap_atomic_idx_push(void) >{ > int idx = ({ typeof(__kmap_atomic_idx) pscr2_ret__; do { const void *__vpp_verify = (typeof(&(__kmap_atomic_idx)))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof(__kmap_atomic_idx)) { case 1: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 2: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 4: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 8: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; default: __bad_size_call_parameter(); break; } pscr2_ret__; }) - 1; > > > ({ static bool __attribute__ ((__section__(".data.unlikely"))) __warned; int __ret_warn_once = !!((((current_thread_info()->preempt_count) & (((1UL << (10))-1) << ((0 + 8) + 8)))) && !({ unsigned long _flags; do { ({ unsigned long __dummy; typeof(_flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _flags = arch_local_save_flags(); } while (0); ({ ({ unsigned long __dummy; typeof(_flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(_flags); }); })); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/highmem.h", 95); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = true; __builtin_expect(!!(__ret_warn_once), 0); }); > do { if (__builtin_expect(!!(idx > 16), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/highmem.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "96" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > return idx; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int kmap_atomic_idx(void) >{ > return ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }) - 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void kmap_atomic_idx_pop(void) >{ > > int idx = ({ typeof(__kmap_atomic_idx) pscr2_ret__; do { const void *__vpp_verify = (typeof(&(__kmap_atomic_idx)))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof(__kmap_atomic_idx)) { case 1: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 2: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 4: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; case 8: pscr2_ret__ = ({ do { do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 2: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 4: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; case 8: do { *({ do { const void *__vpp_verify = (typeof((&(((__kmap_atomic_idx))))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))); (typeof((typeof(*(&(((__kmap_atomic_idx))))) *)(&(((__kmap_atomic_idx)))))) (__ptr + ((__my_cpu_offset()))); }); }) += ((-1)); } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ({ typeof((__kmap_atomic_idx)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((__kmap_atomic_idx))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((__kmap_atomic_idx))) { case 1: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 2: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 4: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; case 8: pscr_ret__ = (*({ do { const void *__vpp_verify = (typeof((&((__kmap_atomic_idx)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))); (typeof((typeof(*(&((__kmap_atomic_idx)))) *)(&((__kmap_atomic_idx))))) (__ptr + ((__my_cpu_offset()))); }); }));break; default: __bad_size_call_parameter();break; } pscr_ret__; }); }); break; default: __bad_size_call_parameter(); break; } pscr2_ret__; }); > > do { if (__builtin_expect(!!(idx < 0), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/highmem.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "111" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > > >} ># 155 "include/linux/highmem.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page * >__alloc_zeroed_user_highpage(gfp_t movableflags, > struct vm_area_struct *vma, > unsigned long vaddr) >{ > struct page *page = alloc_pages_node(numa_node_id(), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u) | (( gfp_t)0x20000u) | (( gfp_t)0x02u)) | movableflags, 0) > ; > > if (page) > cpu_user.cpu_clear_user_highpage(page, vaddr); > > return page; >} ># 178 "include/linux/highmem.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page * >alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma, > unsigned long vaddr) >{ > return __alloc_zeroed_user_highpage((( gfp_t)0x08u), vma, vaddr); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void clear_highpage(struct page *page) >{ > void *kaddr = kmap_atomic(page); > ({ void *__p = ((void *)(kaddr)); size_t __n = ((1UL) << 12); if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > do { do { ((void)sizeof(char[1 - 2*!!(__builtin_types_compatible_p(typeof((kaddr)), typeof(struct page *)))])); if (__builtin_types_compatible_p(typeof((kaddr)), typeof(struct page *))) __build_bug_on_failed = 1; } while(0); __kunmap_atomic(kaddr); } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zero_user_segments(struct page *page, > unsigned start1, unsigned end1, > unsigned start2, unsigned end2) >{ > void *kaddr = kmap_atomic(page); > > do { if (__builtin_expect(!!(end1 > ((1UL) << 12) || end2 > ((1UL) << 12)), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/highmem.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "198" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > if (end1 > start1) > ({ void *__p = (kaddr + start1); size_t __n = end1 - start1; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > > if (end2 > start2) > ({ void *__p = (kaddr + start2); size_t __n = end2 - start2; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > > do { do { ((void)sizeof(char[1 - 2*!!(__builtin_types_compatible_p(typeof((kaddr)), typeof(struct page *)))])); if (__builtin_types_compatible_p(typeof((kaddr)), typeof(struct page *))) __build_bug_on_failed = 1; } while(0); __kunmap_atomic(kaddr); } while (0); > flush_dcache_page(page); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zero_user_segment(struct page *page, > unsigned start, unsigned end) >{ > zero_user_segments(page, start, end, 0, 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void zero_user(struct page *page, > unsigned start, unsigned size) >{ > zero_user_segments(page, start, start + size, 0, 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void memclear_highpage_flush(struct page *page, > unsigned int offset, unsigned int size) >{ > zero_user(page, offset, size); >} ># 244 "include/linux/highmem.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void copy_highpage(struct page *to, struct page *from) >{ > char *vfrom, *vto; > > vfrom = kmap_atomic(from); > vto = kmap_atomic(to); > copy_page(vto, vfrom); > do { do { ((void)sizeof(char[1 - 2*!!(__builtin_types_compatible_p(typeof((vto)), typeof(struct page *)))])); if (__builtin_types_compatible_p(typeof((vto)), typeof(struct page *))) __build_bug_on_failed = 1; } while(0); __kunmap_atomic(vto); } while (0); > do { do { ((void)sizeof(char[1 - 2*!!(__builtin_types_compatible_p(typeof((vfrom)), typeof(struct page *)))])); if (__builtin_types_compatible_p(typeof((vfrom)), typeof(struct page *))) __build_bug_on_failed = 1; } while(0); __kunmap_atomic(vfrom); } while (0); >} ># 11 "include/linux/pagemap.h" 2 > > > > > ># 1 "include/linux/hugetlb_inline.h" 1 ># 15 "include/linux/hugetlb_inline.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_vm_hugetlb_page(struct vm_area_struct *vma) >{ > return 0; >} ># 17 "include/linux/pagemap.h" 2 > > > > > >enum mapping_flags { > AS_EIO = 25 + 0, > AS_ENOSPC = 25 + 1, > AS_MM_ALL_LOCKS = 25 + 2, > AS_UNEVICTABLE = 25 + 3, > AS_BALLOON_MAP = 25 + 4, >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_set_error(struct address_space *mapping, int error) >{ > if (__builtin_expect(!!(error), 0)) { > if (error == -28) > _set_bit(AS_ENOSPC,&mapping->flags); > else > _set_bit(AS_EIO,&mapping->flags); > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_set_unevictable(struct address_space *mapping) >{ > _set_bit(AS_UNEVICTABLE,&mapping->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_clear_unevictable(struct address_space *mapping) >{ > _clear_bit(AS_UNEVICTABLE,&mapping->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mapping_unevictable(struct address_space *mapping) >{ > if (mapping) > return test_bit(AS_UNEVICTABLE, &mapping->flags); > return !!mapping; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_set_balloon(struct address_space *mapping) >{ > _set_bit(AS_BALLOON_MAP,&mapping->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_clear_balloon(struct address_space *mapping) >{ > _clear_bit(AS_BALLOON_MAP,&mapping->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int mapping_balloon(struct address_space *mapping) >{ > return mapping && test_bit(AS_BALLOON_MAP, &mapping->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) gfp_t mapping_gfp_mask(struct address_space * mapping) >{ > return ( gfp_t)mapping->flags & (( gfp_t)((1 << 25) - 1)); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) >{ > m->flags = (m->flags & ~( unsigned long)(( gfp_t)((1 << 25) - 1))) | > ( unsigned long)mask; >} ># 102 "include/linux/pagemap.h" >void release_pages(struct page **pages, int nr, int cold); ># 148 "include/linux/pagemap.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_cache_get_speculative(struct page *page) >{ > ({ int __ret_warn_on = !!((((current_thread_info()->preempt_count) & ((((1UL << (10))-1) << ((0 + 8) + 8)) | (((1UL << (8))-1) << (0 + 8)) | (((1UL << (1))-1) << (((0 + 8) + 8) + 10)))))); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 150); __builtin_expect(!!(__ret_warn_on), 0); }); ># 169 "include/linux/pagemap.h" > if (__builtin_expect(!!(!get_page_unless_zero(page)), 0)) { > > > > > > return 0; > } > > ({ int __ret_warn_on = !!(PageTail(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 178); __builtin_expect(!!(__ret_warn_on), 0); }); > > return 1; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_cache_add_speculative(struct page *page, int count) >{ > ({ int __ret_warn_on = !!((((current_thread_info()->preempt_count) & ((((1UL << (10))-1) << ((0 + 8) + 8)) | (((1UL << (8))-1) << (0 + 8)) | (((1UL << (1))-1) << (((0 + 8) + 8) + 10)))))); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 188); __builtin_expect(!!(__ret_warn_on), 0); }); ># 198 "include/linux/pagemap.h" > if (__builtin_expect(!!(!atomic_add_unless(&page->_count, count, 0)), 0)) > return 0; > > ({ int __ret_warn_on = !!(PageCompound(page) && page != compound_head(page)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 201); __builtin_expect(!!(__ret_warn_on), 0); }); > > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int page_freeze_refs(struct page *page, int count) >{ > return __builtin_expect(!!(atomic_cmpxchg(&page->_count, count, 0) == count), 1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void page_unfreeze_refs(struct page *page, int count) >{ > ({ int __ret_warn_on = !!(page_count(page) != 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 213); __builtin_expect(!!(__ret_warn_on), 0); }); > ({ int __ret_warn_on = !!(count == 0); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/pagemap.h", 214); __builtin_expect(!!(__ret_warn_on), 0); }); > > (((&page->_count)->counter) = (count)); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *__page_cache_alloc(gfp_t gfp) >{ > return alloc_pages_node(numa_node_id(), gfp, 0); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *page_cache_alloc(struct address_space *x) >{ > return __page_cache_alloc(mapping_gfp_mask(x)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *page_cache_alloc_cold(struct address_space *x) >{ > return __page_cache_alloc(mapping_gfp_mask(x)|(( gfp_t)0x100u)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *page_cache_alloc_readahead(struct address_space *x) >{ > return __page_cache_alloc(mapping_gfp_mask(x) | > (( gfp_t)0x100u) | (( gfp_t)0x1000u) | (( gfp_t)0x200u)); >} > >typedef int filler_t(void *, struct page *); > >extern struct page * find_get_page(struct address_space *mapping, > unsigned long index); >extern struct page * find_lock_page(struct address_space *mapping, > unsigned long index); >extern struct page * find_or_create_page(struct address_space *mapping, > unsigned long index, gfp_t gfp_mask); >unsigned find_get_pages(struct address_space *mapping, unsigned long start, > unsigned int nr_pages, struct page **pages); >unsigned find_get_pages_contig(struct address_space *mapping, unsigned long start, > unsigned int nr_pages, struct page **pages); >unsigned find_get_pages_tag(struct address_space *mapping, unsigned long *index, > int tag, unsigned int nr_pages, struct page **pages); > >struct page *grab_cache_page_write_begin(struct address_space *mapping, > unsigned long index, unsigned flags); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *grab_cache_page(struct address_space *mapping, > unsigned long index) >{ > return find_or_create_page(mapping, index, mapping_gfp_mask(mapping)); >} > >extern struct page * grab_cache_page_nowait(struct address_space *mapping, > unsigned long index); >extern struct page * read_cache_page_async(struct address_space *mapping, > unsigned long index, filler_t *filler, void *data); >extern struct page * read_cache_page(struct address_space *mapping, > unsigned long index, filler_t *filler, void *data); >extern struct page * read_cache_page_gfp(struct address_space *mapping, > unsigned long index, gfp_t gfp_mask); >extern int read_cache_pages(struct address_space *mapping, > struct list_head *pages, filler_t *filler, void *data); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *read_mapping_page_async( > struct address_space *mapping, > unsigned long index, void *data) >{ > filler_t *filler = (filler_t *)mapping->a_ops->readpage; > return read_cache_page_async(mapping, index, filler, data); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct page *read_mapping_page(struct address_space *mapping, > unsigned long index, void *data) >{ > filler_t *filler = (filler_t *)mapping->a_ops->readpage; > return read_cache_page(mapping, index, filler, data); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) loff_t page_offset(struct page *page) >{ > return ((loff_t)page->index) << 12; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) loff_t page_file_offset(struct page *page) >{ > return ((loff_t)page_file_index(page)) << 12; >} > >extern unsigned long linear_hugepage_index(struct vm_area_struct *vma, > unsigned long address); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long linear_page_index(struct vm_area_struct *vma, > unsigned long address) >{ > unsigned long pgoff; > if (__builtin_expect(!!(is_vm_hugetlb_page(vma)), 0)) > return linear_hugepage_index(vma, address); > pgoff = (address - vma->vm_start) >> 12; > pgoff += vma->vm_pgoff; > return pgoff >> (12 - 12); >} > >extern void __lock_page(struct page *page); >extern int __lock_page_killable(struct page *page); >extern int __lock_page_or_retry(struct page *page, struct mm_struct *mm, > unsigned int flags); >extern void unlock_page(struct page *page); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __set_page_locked(struct page *page) >{ > __set_bit(PG_locked, &page->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __clear_page_locked(struct page *page) >{ > __clear_bit(PG_locked, &page->flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int trylock_page(struct page *page) >{ > return (__builtin_expect(!!(!_test_and_set_bit(PG_locked,&page->flags)), 1)); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lock_page(struct page *page) >{ > do { _cond_resched(); } while (0); > if (!trylock_page(page)) > __lock_page(page); >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int lock_page_killable(struct page *page) >{ > do { _cond_resched(); } while (0); > if (!trylock_page(page)) > return __lock_page_killable(page); > return 0; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int lock_page_or_retry(struct page *page, struct mm_struct *mm, > unsigned int flags) >{ > do { _cond_resched(); } while (0); > return trylock_page(page) || __lock_page_or_retry(page, mm, flags); >} > > > > > >extern void wait_on_page_bit(struct page *page, int bit_nr); > >extern int wait_on_page_bit_killable(struct page *page, int bit_nr); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int wait_on_page_locked_killable(struct page *page) >{ > if (PageLocked(page)) > return wait_on_page_bit_killable(page, PG_locked); > return 0; >} ># 401 "include/linux/pagemap.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void wait_on_page_locked(struct page *page) >{ > if (PageLocked(page)) > wait_on_page_bit(page, PG_locked); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void wait_on_page_writeback(struct page *page) >{ > if (PageWriteback(page)) > wait_on_page_bit(page, PG_writeback); >} > >extern void end_page_writeback(struct page *page); > > > > >extern void add_page_wait_queue(struct page *page, wait_queue_t *waiter); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fault_in_pages_writeable(char *uaddr, int size) >{ > int ret; > > if (__builtin_expect(!!(size == 0), 0)) > return 0; > > > > > > ret = ({ long __pu_err = 0; do { unsigned long __pu_addr = (unsigned long)((uaddr)); __typeof__(*((uaddr))) __pu_val = ((0)); (void)0; might_fault(); switch (sizeof(*((uaddr)))) { case 1: __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __temp = (unsigned long)(__pu_val); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp), "r" (__pu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp >> 8), "r" (__pu_addr + 1), "i" (-14) : "cc"); }); break; case 4: __asm__ __volatile__( "1: " "str" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 8: __asm__ __volatile__( "1: " "str" " " "%Q2" ", [%1], #4\n" "2: " "str" " " "%R2" ", [%1]\n" "3:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "4: mov %0, %3\n" " b 3b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 4b\n" " .long 2b, 4b\n" " .popsection" : "+r" (__pu_err), "+r" (__pu_addr) : "r" (__pu_val), "i" (-14) : "cc"); break; default: __put_user_bad(); } } while (0); __pu_err; }); > if (ret == 0) { > char *end = uaddr + size - 1; > > > > > > if (((unsigned long)uaddr & (~(((1UL) << 12)-1))) != > ((unsigned long)end & (~(((1UL) << 12)-1)))) > ret = ({ long __pu_err = 0; do { unsigned long __pu_addr = (unsigned long)((end)); __typeof__(*((end))) __pu_val = ((0)); (void)0; might_fault(); switch (sizeof(*((end)))) { case 1: __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __temp = (unsigned long)(__pu_val); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp), "r" (__pu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp >> 8), "r" (__pu_addr + 1), "i" (-14) : "cc"); }); break; case 4: __asm__ __volatile__( "1: " "str" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 8: __asm__ __volatile__( "1: " "str" " " "%Q2" ", [%1], #4\n" "2: " "str" " " "%R2" ", [%1]\n" "3:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "4: mov %0, %3\n" " b 3b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 4b\n" " .long 2b, 4b\n" " .popsection" : "+r" (__pu_err), "+r" (__pu_addr) : "r" (__pu_val), "i" (-14) : "cc"); break; default: __put_user_bad(); } } while (0); __pu_err; }); > } > return ret; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fault_in_pages_readable(const char *uaddr, int size) >{ > volatile char c; > int ret; > > if (__builtin_expect(!!(size == 0), 0)) > return 0; > > ret = ({ long __gu_err = 0; do { unsigned long __gu_addr = (unsigned long)((uaddr)); unsigned long __gu_val; (void)0; might_fault(); switch (sizeof(*((uaddr)))) { case 1: __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __b1, __b2; __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b1) : "r" (__gu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b2) : "r" (__gu_addr + 1), "i" (-14) : "cc"); (__gu_val) = __b1 | (__b2 << 8); }); break; case 4: __asm__ __volatile__( "1: " "ldr" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; default: (__gu_val) = __get_user_bad(); } ((c)) = (__typeof__(*((uaddr))))__gu_val; } while (0); __gu_err; }); > if (ret == 0) { > const char *end = uaddr + size - 1; > > if (((unsigned long)uaddr & (~(((1UL) << 12)-1))) != > ((unsigned long)end & (~(((1UL) << 12)-1)))) { > ret = ({ long __gu_err = 0; do { unsigned long __gu_addr = (unsigned long)((end)); unsigned long __gu_val; (void)0; might_fault(); switch (sizeof(*((end)))) { case 1: __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __b1, __b2; __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b1) : "r" (__gu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b2) : "r" (__gu_addr + 1), "i" (-14) : "cc"); (__gu_val) = __b1 | (__b2 << 8); }); break; case 4: __asm__ __volatile__( "1: " "ldr" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; default: (__gu_val) = __get_user_bad(); } ((c)) = (__typeof__(*((end))))__gu_val; } while (0); __gu_err; }); > (void)c; > } > } > return ret; >} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fault_in_multipages_writeable(char *uaddr, int size) >{ > int ret = 0; > char *end = uaddr + size - 1; > > if (__builtin_expect(!!(size == 0), 0)) > return ret; > > > > > > while (uaddr <= end) { > ret = ({ long __pu_err = 0; do { unsigned long __pu_addr = (unsigned long)((uaddr)); __typeof__(*((uaddr))) __pu_val = ((0)); (void)0; might_fault(); switch (sizeof(*((uaddr)))) { case 1: __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __temp = (unsigned long)(__pu_val); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp), "r" (__pu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp >> 8), "r" (__pu_addr + 1), "i" (-14) : "cc"); }); break; case 4: __asm__ __volatile__( "1: " "str" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 8: __asm__ __volatile__( "1: " "str" " " "%Q2" ", [%1], #4\n" "2: " "str" " " "%R2" ", [%1]\n" "3:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "4: mov %0, %3\n" " b 3b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 4b\n" " .long 2b, 4b\n" " .popsection" : "+r" (__pu_err), "+r" (__pu_addr) : "r" (__pu_val), "i" (-14) : "cc"); break; default: __put_user_bad(); } } while (0); __pu_err; }); > if (ret != 0) > return ret; > uaddr += ((1UL) << 12); > } > > > if (((unsigned long)uaddr & (~(((1UL) << 12)-1))) == > ((unsigned long)end & (~(((1UL) << 12)-1)))) > ret = ({ long __pu_err = 0; do { unsigned long __pu_addr = (unsigned long)((end)); __typeof__(*((end))) __pu_val = ((0)); (void)0; might_fault(); switch (sizeof(*((end)))) { case 1: __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __temp = (unsigned long)(__pu_val); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp), "r" (__pu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "strb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__temp >> 8), "r" (__pu_addr + 1), "i" (-14) : "cc"); }); break; case 4: __asm__ __volatile__( "1: " "str" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__pu_err) : "r" (__pu_val), "r" (__pu_addr), "i" (-14) : "cc"); break; case 8: __asm__ __volatile__( "1: " "str" " " "%Q2" ", [%1], #4\n" "2: " "str" " " "%R2" ", [%1]\n" "3:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "4: mov %0, %3\n" " b 3b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 4b\n" " .long 2b, 4b\n" " .popsection" : "+r" (__pu_err), "+r" (__pu_addr) : "r" (__pu_val), "i" (-14) : "cc"); break; default: __put_user_bad(); } } while (0); __pu_err; }); > > return ret; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int fault_in_multipages_readable(const char *uaddr, > int size) >{ > volatile char c; > int ret = 0; > const char *end = uaddr + size - 1; > > if (__builtin_expect(!!(size == 0), 0)) > return ret; > > while (uaddr <= end) { > ret = ({ long __gu_err = 0; do { unsigned long __gu_addr = (unsigned long)((uaddr)); unsigned long __gu_val; (void)0; might_fault(); switch (sizeof(*((uaddr)))) { case 1: __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __b1, __b2; __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b1) : "r" (__gu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b2) : "r" (__gu_addr + 1), "i" (-14) : "cc"); (__gu_val) = __b1 | (__b2 << 8); }); break; case 4: __asm__ __volatile__( "1: " "ldr" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; default: (__gu_val) = __get_user_bad(); } ((c)) = (__typeof__(*((uaddr))))__gu_val; } while (0); __gu_err; }); > if (ret != 0) > return ret; > uaddr += ((1UL) << 12); > } > > > if (((unsigned long)uaddr & (~(((1UL) << 12)-1))) == > ((unsigned long)end & (~(((1UL) << 12)-1)))) { > ret = ({ long __gu_err = 0; do { unsigned long __gu_addr = (unsigned long)((end)); unsigned long __gu_val; (void)0; might_fault(); switch (sizeof(*((end)))) { case 1: __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; case 2: ({ unsigned long __b1, __b2; __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b1) : "r" (__gu_addr), "i" (-14) : "cc"); __asm__ __volatile__( "1: " "ldrb" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__b2) : "r" (__gu_addr + 1), "i" (-14) : "cc"); (__gu_val) = __b1 | (__b2 << 8); }); break; case 4: __asm__ __volatile__( "1: " "ldr" " %1,[%2],#0\n" "2:\n" " .pushsection .fixup,\"ax\"\n" " .align 2\n" "3: mov %0, %3\n" " mov %1, #0\n" " b 2b\n" " .popsection\n" " .pushsection __ex_table,\"a\"\n" " .align 3\n" " .long 1b, 3b\n" " .popsection" : "+r" (__gu_err), "=&r" (__gu_val) : "r" (__gu_addr), "i" (-14) : "cc"); break; default: (__gu_val) = __get_user_bad(); } ((c)) = (__typeof__(*((end))))__gu_val; } while (0); __gu_err; }); > (void)c; > } > > return ret; >} > >int add_to_page_cache_locked(struct page *page, struct address_space *mapping, > unsigned long index, gfp_t gfp_mask); >int add_to_page_cache_lru(struct page *page, struct address_space *mapping, > unsigned long index, gfp_t gfp_mask); >extern void delete_from_page_cache(struct page *page); >extern void __delete_from_page_cache(struct page *page); >int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask); > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int add_to_page_cache(struct page *page, > struct address_space *mapping, unsigned long offset, gfp_t gfp_mask) >{ > int error; > > __set_page_locked(page); > error = add_to_page_cache_locked(page, mapping, offset, gfp_mask); > if (__builtin_expect(!!(error), 0)) > __clear_page_locked(page); > return error; >} ># 14 "include/linux/blkdev.h" 2 ># 1 "include/linux/backing-dev.h" 1 ># 13 "include/linux/backing-dev.h" ># 1 "include/linux/flex_proportions.h" 1 ># 26 "include/linux/flex_proportions.h" >struct fprop_global { > > struct percpu_counter events; > > unsigned int period; > > seqcount_t sequence; >}; > >int fprop_global_init(struct fprop_global *p); >void fprop_global_destroy(struct fprop_global *p); >bool fprop_new_period(struct fprop_global *p, int periods); > > > > >struct fprop_local_single { > > unsigned long events; > > unsigned int period; > raw_spinlock_t lock; >}; > > > > > >int fprop_local_init_single(struct fprop_local_single *pl); >void fprop_local_destroy_single(struct fprop_local_single *pl); >void __fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl); >void fprop_fraction_single(struct fprop_global *p, > struct fprop_local_single *pl, unsigned long *numerator, > unsigned long *denominator); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >void fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __fprop_inc_single(p, pl); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} > > > > >struct fprop_local_percpu { > > struct percpu_counter events; > > unsigned int period; > raw_spinlock_t lock; >}; > >int fprop_local_init_percpu(struct fprop_local_percpu *pl); >void fprop_local_destroy_percpu(struct fprop_local_percpu *pl); >void __fprop_inc_percpu(struct fprop_global *p, struct fprop_local_percpu *pl); >void __fprop_inc_percpu_max(struct fprop_global *p, struct fprop_local_percpu *pl, > int max_frac); >void fprop_fraction_percpu(struct fprop_global *p, > struct fprop_local_percpu *pl, unsigned long *numerator, > unsigned long *denominator); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >void fprop_inc_percpu(struct fprop_global *p, struct fprop_local_percpu *pl) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __fprop_inc_percpu(p, pl); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} ># 14 "include/linux/backing-dev.h" 2 > > > > ># 1 "include/linux/writeback.h" 1 ># 10 "include/linux/writeback.h" >extern __attribute__((section(".data..percpu" ""))) __typeof__(int) dirty_throttle_leaks; ># 28 "include/linux/writeback.h" >struct backing_dev_info; > > > > >enum writeback_sync_modes { > WB_SYNC_NONE, > WB_SYNC_ALL, >}; > > > > >enum wb_reason { > WB_REASON_BACKGROUND, > WB_REASON_TRY_TO_FREE_PAGES, > WB_REASON_SYNC, > WB_REASON_PERIODIC, > WB_REASON_LAPTOP_TIMER, > WB_REASON_FREE_MORE_MEM, > WB_REASON_FS_FREE_SPACE, > WB_REASON_FORKER_THREAD, > > WB_REASON_MAX, >}; >extern const char *wb_reason_name[]; > > > > > > >struct writeback_control { > long nr_to_write; > > long pages_skipped; > > > > > > > loff_t range_start; > loff_t range_end; > > enum writeback_sync_modes sync_mode; > > unsigned for_kupdate:1; > unsigned for_background:1; > unsigned tagged_writepages:1; > unsigned for_reclaim:1; > unsigned range_cyclic:1; >}; > > > > >struct bdi_writeback; >int inode_wait(void *); >void writeback_inodes_sb(struct super_block *, enum wb_reason reason); >void writeback_inodes_sb_nr(struct super_block *, unsigned long nr, > enum wb_reason reason); >int writeback_inodes_sb_if_idle(struct super_block *, enum wb_reason reason); >int writeback_inodes_sb_nr_if_idle(struct super_block *, unsigned long nr, > enum wb_reason reason); >void sync_inodes_sb(struct super_block *); >long writeback_inodes_wb(struct bdi_writeback *wb, long nr_pages, > enum wb_reason reason); >long wb_do_writeback(struct bdi_writeback *wb, int force_wait); >void wakeup_flusher_threads(long nr_pages, enum wb_reason reason); >void inode_wait_for_writeback(struct inode *inode); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void wait_on_inode(struct inode *inode) >{ > do { _cond_resched(); } while (0); > wait_on_bit(&inode->i_state, 3, inode_wait, 2); >} > > > > > >void laptop_io_completion(struct backing_dev_info *info); >void laptop_sync_completion(void); >void laptop_mode_sync(struct work_struct *work); >void laptop_mode_timer_fn(unsigned long data); > > > >void throttle_vm_writeout(gfp_t gfp_mask); >bool zone_dirty_ok(struct zone *zone); > >extern unsigned long global_dirty_limit; > > >extern int dirty_background_ratio; >extern unsigned long dirty_background_bytes; >extern int vm_dirty_ratio; >extern unsigned long vm_dirty_bytes; >extern unsigned int dirty_writeback_interval; >extern unsigned int dirty_expire_interval; >extern int vm_highmem_is_dirtyable; >extern int block_dump; >extern int laptop_mode; > >extern int dirty_background_ratio_handler(struct ctl_table *table, int write, > void *buffer, size_t *lenp, > loff_t *ppos); >extern int dirty_background_bytes_handler(struct ctl_table *table, int write, > void *buffer, size_t *lenp, > loff_t *ppos); >extern int dirty_ratio_handler(struct ctl_table *table, int write, > void *buffer, size_t *lenp, > loff_t *ppos); >extern int dirty_bytes_handler(struct ctl_table *table, int write, > void *buffer, size_t *lenp, > loff_t *ppos); > >struct ctl_table; >int dirty_writeback_centisecs_handler(struct ctl_table *, int, > void *, size_t *, loff_t *); > >void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty); >unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, > unsigned long dirty); > >void __bdi_update_bandwidth(struct backing_dev_info *bdi, > unsigned long thresh, > unsigned long bg_thresh, > unsigned long dirty, > unsigned long bdi_thresh, > unsigned long bdi_dirty, > unsigned long start_time); > >void page_writeback_init(void); >void balance_dirty_pages_ratelimited(struct address_space *mapping); > >typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc, > void *data); > >int generic_writepages(struct address_space *mapping, > struct writeback_control *wbc); >void tag_pages_for_writeback(struct address_space *mapping, > unsigned long start, unsigned long end); >int write_cache_pages(struct address_space *mapping, > struct writeback_control *wbc, writepage_t writepage, > void *data); >int do_writepages(struct address_space *mapping, struct writeback_control *wbc); >void set_page_dirty_balance(struct page *page, int page_mkwrite); >void writeback_set_ratelimit(void); >void tag_pages_for_writeback(struct address_space *mapping, > unsigned long start, unsigned long end); > >void account_page_redirty(struct page *page); ># 19 "include/linux/backing-dev.h" 2 > > > >struct page; >struct device; >struct dentry; > > > > >enum bdi_state { > BDI_pending, > BDI_wb_alloc, > BDI_async_congested, > BDI_sync_congested, > BDI_registered, > BDI_writeback_running, > BDI_unused, >}; > >typedef int (congested_fn)(void *, int); > >enum bdi_stat_item { > BDI_RECLAIMABLE, > BDI_WRITEBACK, > BDI_DIRTIED, > BDI_WRITTEN, > NR_BDI_STAT_ITEMS >}; > > > >struct bdi_writeback { > struct backing_dev_info *bdi; > unsigned int nr; > > unsigned long last_old_flush; > unsigned long last_active; > > struct task_struct *task; > struct timer_list wakeup_timer; > struct list_head b_dirty; > struct list_head b_io; > struct list_head b_more_io; > spinlock_t list_lock; >}; > >struct backing_dev_info { > struct list_head bdi_list; > unsigned long ra_pages; > unsigned long state; > unsigned int capabilities; > congested_fn *congested_fn; > void *congested_data; > > char *name; > > struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS]; > > unsigned long bw_time_stamp; > unsigned long dirtied_stamp; > unsigned long written_stamp; > unsigned long write_bandwidth; > unsigned long avg_write_bandwidth; > > > > > > > > unsigned long dirty_ratelimit; > unsigned long balanced_dirty_ratelimit; > > struct fprop_local_percpu completions; > int dirty_exceeded; > > unsigned int min_ratio; > unsigned int max_ratio, max_prop_frac; > > struct bdi_writeback wb; > spinlock_t wb_lock; > > struct list_head work_list; > > struct device *dev; > > struct timer_list laptop_mode_wb_timer; > > > struct dentry *debug_dir; > struct dentry *debug_stats; > >}; > >int bdi_init(struct backing_dev_info *bdi); >void bdi_destroy(struct backing_dev_info *bdi); > >__attribute__((format(printf, 3, 4))) >int bdi_register(struct backing_dev_info *bdi, struct device *parent, > const char *fmt, ...); >int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); >void bdi_unregister(struct backing_dev_info *bdi); >int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); >void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages, > enum wb_reason reason); >void bdi_start_background_writeback(struct backing_dev_info *bdi); >int bdi_writeback_thread(void *data); >int bdi_has_dirty_io(struct backing_dev_info *bdi); >void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi); >void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2); > >extern spinlock_t bdi_lock; >extern struct list_head bdi_list; >extern struct list_head bdi_pending_list; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int wb_has_dirty_io(struct bdi_writeback *wb) >{ > return !list_empty(&wb->b_dirty) || > !list_empty(&wb->b_io) || > !list_empty(&wb->b_more_io); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __add_bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item, s64 amount) >{ > __percpu_counter_add(&bdi->bdi_stat[item], amount, (8*(1+( __builtin_constant_p(nr_cpu_ids) ? ( (nr_cpu_ids) < 1 ? ____ilog2_NaN() : (nr_cpu_ids) & (1ULL << 63) ? 63 : (nr_cpu_ids) & (1ULL << 62) ? 62 : (nr_cpu_ids) & (1ULL << 61) ? 61 : (nr_cpu_ids) & (1ULL << 60) ? 60 : (nr_cpu_ids) & (1ULL << 59) ? 59 : (nr_cpu_ids) & (1ULL << 58) ? 58 : (nr_cpu_ids) & (1ULL << 57) ? 57 : (nr_cpu_ids) & (1ULL << 56) ? 56 : (nr_cpu_ids) & (1ULL << 55) ? 55 : (nr_cpu_ids) & (1ULL << 54) ? 54 : (nr_cpu_ids) & (1ULL << 53) ? 53 : (nr_cpu_ids) & (1ULL << 52) ? 52 : (nr_cpu_ids) & (1ULL << 51) ? 51 : (nr_cpu_ids) & (1ULL << 50) ? 50 : (nr_cpu_ids) & (1ULL << 49) ? 49 : (nr_cpu_ids) & (1ULL << 48) ? 48 : (nr_cpu_ids) & (1ULL << 47) ? 47 : (nr_cpu_ids) & (1ULL << 46) ? 46 : (nr_cpu_ids) & (1ULL << 45) ? 45 : (nr_cpu_ids) & (1ULL << 44) ? 44 : (nr_cpu_ids) & (1ULL << 43) ? 43 : (nr_cpu_ids) & (1ULL << 42) ? 42 : (nr_cpu_ids) & (1ULL << 41) ? 41 : (nr_cpu_ids) & (1ULL << 40) ? 40 : (nr_cpu_ids) & (1ULL << 39) ? 39 : (nr_cpu_ids) & (1ULL << 38) ? 38 : (nr_cpu_ids) & (1ULL << 37) ? 37 : (nr_cpu_ids) & (1ULL << 36) ? 36 : (nr_cpu_ids) & (1ULL << 35) ? 35 : (nr_cpu_ids) & (1ULL << 34) ? 34 : (nr_cpu_ids) & (1ULL << 33) ? 33 : (nr_cpu_ids) & (1ULL << 32) ? 32 : (nr_cpu_ids) & (1ULL << 31) ? 31 : (nr_cpu_ids) & (1ULL << 30) ? 30 : (nr_cpu_ids) & (1ULL << 29) ? 29 : (nr_cpu_ids) & (1ULL << 28) ? 28 : (nr_cpu_ids) & (1ULL << 27) ? 27 : (nr_cpu_ids) & (1ULL << 26) ? 26 : (nr_cpu_ids) & (1ULL << 25) ? 25 : (nr_cpu_ids) & (1ULL << 24) ? 24 : (nr_cpu_ids) & (1ULL << 23) ? 23 : (nr_cpu_ids) & (1ULL << 22) ? 22 : (nr_cpu_ids) & (1ULL << 21) ? 21 : (nr_cpu_ids) & (1ULL << 20) ? 20 : (nr_cpu_ids) & (1ULL << 19) ? 19 : (nr_cpu_ids) & (1ULL << 18) ? 18 : (nr_cpu_ids) & (1ULL << 17) ? 17 : (nr_cpu_ids) & (1ULL << 16) ? 16 : (nr_cpu_ids) & (1ULL << 15) ? 15 : (nr_cpu_ids) & (1ULL << 14) ? 14 : (nr_cpu_ids) & (1ULL << 13) ? 13 : (nr_cpu_ids) & (1ULL << 12) ? 12 : (nr_cpu_ids) & (1ULL << 11) ? 11 : (nr_cpu_ids) & (1ULL << 10) ? 10 : (nr_cpu_ids) & (1ULL << 9) ? 9 : (nr_cpu_ids) & (1ULL << 8) ? 8 : (nr_cpu_ids) & (1ULL << 7) ? 7 : (nr_cpu_ids) & (1ULL << 6) ? 6 : (nr_cpu_ids) & (1ULL << 5) ? 5 : (nr_cpu_ids) & (1ULL << 4) ? 4 : (nr_cpu_ids) & (1ULL << 3) ? 3 : (nr_cpu_ids) & (1ULL << 2) ? 2 : (nr_cpu_ids) & (1ULL << 1) ? 1 : (nr_cpu_ids) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof(nr_cpu_ids) <= 4) ? __ilog2_u32(nr_cpu_ids) : __ilog2_u64(nr_cpu_ids) )))); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __inc_bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > __add_bdi_stat(bdi, item, 1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void inc_bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __inc_bdi_stat(bdi, item); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void __dec_bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > __add_bdi_stat(bdi, item, -1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void dec_bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > __dec_bdi_stat(bdi, item); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 bdi_stat(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > return percpu_counter_read_positive(&bdi->bdi_stat[item]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 __bdi_stat_sum(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > return percpu_counter_sum_positive(&bdi->bdi_stat[item]); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) s64 bdi_stat_sum(struct backing_dev_info *bdi, > enum bdi_stat_item item) >{ > s64 sum; > unsigned long flags; > > do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > sum = __bdi_stat_sum(bdi, item); > do { if (({ ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(flags); })) { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(flags); } while (0); } } while (0); > > return sum; >} > >extern void bdi_writeout_inc(struct backing_dev_info *bdi); > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long bdi_stat_error(struct backing_dev_info *bdi) >{ > > return nr_cpu_ids * (8*(1+( __builtin_constant_p(nr_cpu_ids) ? ( (nr_cpu_ids) < 1 ? ____ilog2_NaN() : (nr_cpu_ids) & (1ULL << 63) ? 63 : (nr_cpu_ids) & (1ULL << 62) ? 62 : (nr_cpu_ids) & (1ULL << 61) ? 61 : (nr_cpu_ids) & (1ULL << 60) ? 60 : (nr_cpu_ids) & (1ULL << 59) ? 59 : (nr_cpu_ids) & (1ULL << 58) ? 58 : (nr_cpu_ids) & (1ULL << 57) ? 57 : (nr_cpu_ids) & (1ULL << 56) ? 56 : (nr_cpu_ids) & (1ULL << 55) ? 55 : (nr_cpu_ids) & (1ULL << 54) ? 54 : (nr_cpu_ids) & (1ULL << 53) ? 53 : (nr_cpu_ids) & (1ULL << 52) ? 52 : (nr_cpu_ids) & (1ULL << 51) ? 51 : (nr_cpu_ids) & (1ULL << 50) ? 50 : (nr_cpu_ids) & (1ULL << 49) ? 49 : (nr_cpu_ids) & (1ULL << 48) ? 48 : (nr_cpu_ids) & (1ULL << 47) ? 47 : (nr_cpu_ids) & (1ULL << 46) ? 46 : (nr_cpu_ids) & (1ULL << 45) ? 45 : (nr_cpu_ids) & (1ULL << 44) ? 44 : (nr_cpu_ids) & (1ULL << 43) ? 43 : (nr_cpu_ids) & (1ULL << 42) ? 42 : (nr_cpu_ids) & (1ULL << 41) ? 41 : (nr_cpu_ids) & (1ULL << 40) ? 40 : (nr_cpu_ids) & (1ULL << 39) ? 39 : (nr_cpu_ids) & (1ULL << 38) ? 38 : (nr_cpu_ids) & (1ULL << 37) ? 37 : (nr_cpu_ids) & (1ULL << 36) ? 36 : (nr_cpu_ids) & (1ULL << 35) ? 35 : (nr_cpu_ids) & (1ULL << 34) ? 34 : (nr_cpu_ids) & (1ULL << 33) ? 33 : (nr_cpu_ids) & (1ULL << 32) ? 32 : (nr_cpu_ids) & (1ULL << 31) ? 31 : (nr_cpu_ids) & (1ULL << 30) ? 30 : (nr_cpu_ids) & (1ULL << 29) ? 29 : (nr_cpu_ids) & (1ULL << 28) ? 28 : (nr_cpu_ids) & (1ULL << 27) ? 27 : (nr_cpu_ids) & (1ULL << 26) ? 26 : (nr_cpu_ids) & (1ULL << 25) ? 25 : (nr_cpu_ids) & (1ULL << 24) ? 24 : (nr_cpu_ids) & (1ULL << 23) ? 23 : (nr_cpu_ids) & (1ULL << 22) ? 22 : (nr_cpu_ids) & (1ULL << 21) ? 21 : (nr_cpu_ids) & (1ULL << 20) ? 20 : (nr_cpu_ids) & (1ULL << 19) ? 19 : (nr_cpu_ids) & (1ULL << 18) ? 18 : (nr_cpu_ids) & (1ULL << 17) ? 17 : (nr_cpu_ids) & (1ULL << 16) ? 16 : (nr_cpu_ids) & (1ULL << 15) ? 15 : (nr_cpu_ids) & (1ULL << 14) ? 14 : (nr_cpu_ids) & (1ULL << 13) ? 13 : (nr_cpu_ids) & (1ULL << 12) ? 12 : (nr_cpu_ids) & (1ULL << 11) ? 11 : (nr_cpu_ids) & (1ULL << 10) ? 10 : (nr_cpu_ids) & (1ULL << 9) ? 9 : (nr_cpu_ids) & (1ULL << 8) ? 8 : (nr_cpu_ids) & (1ULL << 7) ? 7 : (nr_cpu_ids) & (1ULL << 6) ? 6 : (nr_cpu_ids) & (1ULL << 5) ? 5 : (nr_cpu_ids) & (1ULL << 4) ? 4 : (nr_cpu_ids) & (1ULL << 3) ? 3 : (nr_cpu_ids) & (1ULL << 2) ? 2 : (nr_cpu_ids) & (1ULL << 1) ? 1 : (nr_cpu_ids) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof(nr_cpu_ids) <= 4) ? __ilog2_u32(nr_cpu_ids) : __ilog2_u64(nr_cpu_ids) ))); > > > >} > >int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio); >int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio); ># 271 "include/linux/backing-dev.h" >extern struct backing_dev_info default_backing_dev_info; >extern struct backing_dev_info noop_backing_dev_info; > >int writeback_in_progress(struct backing_dev_info *bdi); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdi_congested(struct backing_dev_info *bdi, int bdi_bits) >{ > if (bdi->congested_fn) > return bdi->congested_fn(bdi->congested_data, bdi_bits); > return (bdi->state & bdi_bits); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdi_read_congested(struct backing_dev_info *bdi) >{ > return bdi_congested(bdi, 1 << BDI_sync_congested); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdi_write_congested(struct backing_dev_info *bdi) >{ > return bdi_congested(bdi, 1 << BDI_async_congested); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdi_rw_congested(struct backing_dev_info *bdi) >{ > return bdi_congested(bdi, (1 << BDI_sync_congested) | > (1 << BDI_async_congested)); >} > >enum { > BLK_RW_ASYNC = 0, > BLK_RW_SYNC = 1, >}; > >void clear_bdi_congested(struct backing_dev_info *bdi, int sync); >void set_bdi_congested(struct backing_dev_info *bdi, int sync); >long congestion_wait(int sync, long timeout); >long wait_iff_congested(struct zone *zone, int sync, long timeout); >int pdflush_proc_obsolete(struct ctl_table *table, int write, > void *buffer, size_t *lenp, loff_t *ppos); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi) >{ > return !(bdi->capabilities & 0x00000002); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bdi_cap_account_dirty(struct backing_dev_info *bdi) >{ > return !(bdi->capabilities & 0x00000001); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bdi_cap_account_writeback(struct backing_dev_info *bdi) >{ > > return !(bdi->capabilities & (0x00000080 | > 0x00000002)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bdi_cap_swap_backed(struct backing_dev_info *bdi) >{ > return bdi->capabilities & 0x00000100; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bdi_cap_flush_forker(struct backing_dev_info *bdi) >{ > return bdi == &default_backing_dev_info; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool mapping_cap_writeback_dirty(struct address_space *mapping) >{ > return bdi_cap_writeback_dirty(mapping->backing_dev_info); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool mapping_cap_account_dirty(struct address_space *mapping) >{ > return bdi_cap_account_dirty(mapping->backing_dev_info); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool mapping_cap_swap_backed(struct address_space *mapping) >{ > return bdi_cap_swap_backed(mapping->backing_dev_info); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdi_sched_wait(void *word) >{ > schedule(); > return 0; >} ># 15 "include/linux/blkdev.h" 2 > ># 1 "include/linux/mempool.h" 1 ># 9 "include/linux/mempool.h" >struct kmem_cache; > >typedef void * (mempool_alloc_t)(gfp_t gfp_mask, void *pool_data); >typedef void (mempool_free_t)(void *element, void *pool_data); > >typedef struct mempool_s { > spinlock_t lock; > int min_nr; > int curr_nr; > void **elements; > > void *pool_data; > mempool_alloc_t *alloc; > mempool_free_t *free; > wait_queue_head_t wait; >} mempool_t; > >extern mempool_t *mempool_create(int min_nr, mempool_alloc_t *alloc_fn, > mempool_free_t *free_fn, void *pool_data); >extern mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn, > mempool_free_t *free_fn, void *pool_data, > gfp_t gfp_mask, int nid); > >extern int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask); >extern void mempool_destroy(mempool_t *pool); >extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask); >extern void mempool_free(void *element, mempool_t *pool); > > > > > >void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data); >void mempool_free_slab(void *element, void *pool_data); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) mempool_t * >mempool_create_slab_pool(int min_nr, struct kmem_cache *kc) >{ > return mempool_create(min_nr, mempool_alloc_slab, mempool_free_slab, > (void *) kc); >} > > > > > >void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data); >void mempool_kfree(void *element, void *pool_data); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size) >{ > return mempool_create(min_nr, mempool_kmalloc, mempool_kfree, > (void *) size); >} > > > > > >void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data); >void mempool_free_pages(void *element, void *pool_data); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) mempool_t *mempool_create_page_pool(int min_nr, int order) >{ > return mempool_create(min_nr, mempool_alloc_pages, mempool_free_pages, > (void *)(long)order); >} ># 17 "include/linux/blkdev.h" 2 ># 1 "include/linux/bio.h" 1 ># 25 "include/linux/bio.h" ># 1 "include/linux/ioprio.h" 1 > > > > ># 1 "include/linux/iocontext.h" 1 > > > > > > > >enum { > ICQ_EXITED = 1 << 2, >}; ># 71 "include/linux/iocontext.h" >struct io_cq { > struct request_queue *q; > struct io_context *ioc; > > > > > > > > union { > struct list_head q_node; > struct kmem_cache *__rcu_icq_cache; > }; > union { > struct hlist_node ioc_node; > struct callback_head __rcu_head; > }; > > unsigned int flags; >}; > > > > > >struct io_context { > atomic_long_t refcount; > atomic_t active_ref; > atomic_t nr_tasks; > > > spinlock_t lock; > > unsigned short ioprio; > > > > > int nr_batch_requests; > unsigned long last_waited; > > struct radix_tree_root icq_tree; > struct io_cq *icq_hint; > struct hlist_head icq_list; > > struct work_struct release_work; >}; ># 128 "include/linux/iocontext.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void get_io_context_active(struct io_context *ioc) >{ > ({ static bool __attribute__ ((__section__(".data.unlikely"))) __warned; int __ret_warn_once = !!(atomic_long_read(&ioc->refcount) <= 0); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/iocontext.h", 130); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = true; __builtin_expect(!!(__ret_warn_once), 0); }); > ({ static bool __attribute__ ((__section__(".data.unlikely"))) __warned; int __ret_warn_once = !!((*(volatile int *)&(&ioc->active_ref)->counter) <= 0); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/iocontext.h", 131); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = true; __builtin_expect(!!(__ret_warn_once), 0); }); > atomic_long_inc(&ioc->refcount); > atomic_add(1, &ioc->active_ref); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ioc_task_link(struct io_context *ioc) >{ > get_io_context_active(ioc); > > ({ static bool __attribute__ ((__section__(".data.unlikely"))) __warned; int __ret_warn_once = !!((*(volatile int *)&(&ioc->nr_tasks)->counter) <= 0); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null("include/linux/iocontext.h", 140); __builtin_expect(!!(__ret_warn_on), 0); })) __warned = true; __builtin_expect(!!(__ret_warn_once), 0); }); > atomic_add(1, &ioc->nr_tasks); >} > >struct task_struct; > >void put_io_context(struct io_context *ioc); >void put_io_context_active(struct io_context *ioc); >void exit_io_context(struct task_struct *task); >struct io_context *get_task_io_context(struct task_struct *task, > gfp_t gfp_flags, int node); ># 6 "include/linux/ioprio.h" 2 ># 26 "include/linux/ioprio.h" >enum { > IOPRIO_CLASS_NONE, > IOPRIO_CLASS_RT, > IOPRIO_CLASS_BE, > IOPRIO_CLASS_IDLE, >}; > > > > > > >enum { > IOPRIO_WHO_PROCESS = 1, > IOPRIO_WHO_PGRP, > IOPRIO_WHO_USER, >}; ># 53 "include/linux/ioprio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int task_nice_ioprio(struct task_struct *task) >{ > return (task_nice(task) + 20) / 5; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int task_nice_ioclass(struct task_struct *task) >{ > if (task->policy == 5) > return IOPRIO_CLASS_IDLE; > else if (task->policy == 1 || task->policy == 2) > return IOPRIO_CLASS_RT; > else > return IOPRIO_CLASS_BE; >} > > > > >extern int ioprio_best(unsigned short aprio, unsigned short bprio); > >extern int set_task_ioprio(struct task_struct *task, int ioprio); ># 26 "include/linux/bio.h" 2 ># 71 "include/linux/bio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int bio_cur_bytes(struct bio *bio) >{ > if (bio->bi_vcnt) > return (&(((bio))->bi_io_vec[((bio)->bi_idx)]))->bv_len; > else > return bio->bi_size; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *bio_data(struct bio *bio) >{ > if (bio->bi_vcnt) > return page_address((&((((bio)))->bi_io_vec[(((bio))->bi_idx)]))->bv_page) + (&((((bio)))->bi_io_vec[(((bio))->bi_idx)]))->bv_offset; > > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bio_has_allocated_vec(struct bio *bio) >{ > return bio->bi_io_vec && bio->bi_io_vec != bio->bi_inline_vecs; >} ># 170 "include/linux/bio.h" >struct bio_integrity_payload { > struct bio *bip_bio; > > sector_t bip_sector; > > void *bip_buf; > bio_end_io_t *bip_end_io; > > unsigned int bip_size; > > unsigned short bip_slab; > unsigned short bip_vcnt; > unsigned short bip_idx; > > struct work_struct bip_work; > struct bio_vec bip_vec[0]; >}; ># 199 "include/linux/bio.h" >struct bio_pair { > struct bio bio1, bio2; > struct bio_vec bv1, bv2; > > struct bio_integrity_payload bip1, bip2; > struct bio_vec iv1, iv2; > > atomic_t cnt; > int error; >}; >extern struct bio_pair *bio_split(struct bio *bi, int first_sectors); >extern void bio_pair_release(struct bio_pair *dbio); > >extern struct bio_set *bioset_create(unsigned int, unsigned int); >extern void bioset_free(struct bio_set *); > >extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *); >extern void bio_put(struct bio *); > >extern void __bio_clone(struct bio *, struct bio *); >extern struct bio *bio_clone_bioset(struct bio *, gfp_t, struct bio_set *bs); > >extern struct bio_set *fs_bio_set; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs) >{ > return bio_alloc_bioset(gfp_mask, nr_iovecs, fs_bio_set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask) >{ > return bio_clone_bioset(bio, gfp_mask, fs_bio_set); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned int nr_iovecs) >{ > return bio_alloc_bioset(gfp_mask, nr_iovecs, ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_clone_kmalloc(struct bio *bio, gfp_t gfp_mask) >{ > return bio_clone_bioset(bio, gfp_mask, ((void *)0)); > >} > >extern void bio_endio(struct bio *, int); >struct request_queue; >extern int bio_phys_segments(struct request_queue *, struct bio *); > >extern void bio_init(struct bio *); >extern void bio_reset(struct bio *); > >extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int); >extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *, > unsigned int, unsigned int); >extern int bio_get_nr_vecs(struct block_device *); >extern sector_t bio_sector_offset(struct bio *, unsigned short, unsigned int); >extern struct bio *bio_map_user(struct request_queue *, struct block_device *, > unsigned long, unsigned int, int, gfp_t); >struct sg_iovec; >struct rq_map_data; >extern struct bio *bio_map_user_iov(struct request_queue *, > struct block_device *, > struct sg_iovec *, int, int, gfp_t); >extern void bio_unmap_user(struct bio *); >extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int, > gfp_t); >extern struct bio *bio_copy_kern(struct request_queue *, void *, unsigned int, > gfp_t, int); >extern void bio_set_pages_dirty(struct bio *bio); >extern void bio_check_pages_dirty(struct bio *bio); > > > > > >extern void bio_flush_dcache_pages(struct bio *bi); > > > > > > >extern struct bio *bio_copy_user(struct request_queue *, struct rq_map_data *, > unsigned long, unsigned int, int, gfp_t); >extern struct bio *bio_copy_user_iov(struct request_queue *, > struct rq_map_data *, struct sg_iovec *, > int, int, gfp_t); >extern int bio_uncopy_user(struct bio *); >void zero_fill_bio(struct bio *bio); >extern struct bio_vec *bvec_alloc_bs(gfp_t, int, unsigned long *, struct bio_set *); >extern void bvec_free_bs(struct bio_set *, struct bio_vec *, unsigned int); >extern unsigned int bvec_nr_vecs(unsigned short idx); > > >int bio_associate_current(struct bio *bio); >void bio_disassociate_task(struct bio *bio); ># 311 "include/linux/bio.h" >struct bio_set { > struct kmem_cache *bio_slab; > unsigned int front_pad; > > mempool_t *bio_pool; > > mempool_t *bio_integrity_pool; > > mempool_t *bvec_pool; >}; > >struct biovec_slab { > int nr_vecs; > char *name; > struct kmem_cache *slab; >}; ># 339 "include/linux/bio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) >{ > unsigned long addr; > > > > > > do { do { ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); *flags = arch_local_irq_save(); } while (0); do { } while (0); } while (0); > addr = (unsigned long) kmap_atomic(bvec->bv_page); > > do { if (__builtin_expect(!!(addr & ~(~(((1UL) << 12)-1))), 0)) do { asm volatile("1:\t" ".word " "0xe7f001f2" "\n" ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" "2:\t.asciz " "\"include/linux/bio.h\"" "\n" ".popsection\n" ".pushsection __bug_table,\"a\"\n" "3:\t.word 1b, 2b\n" "\t.hword " "350" ", 0\n" ".popsection"); __builtin_unreachable(); } while (0); } while(0); > > return (char *) addr + bvec->bv_offset; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bvec_kunmap_irq(char *buffer, unsigned long *flags) >{ > unsigned long ptr = (unsigned long) buffer & (~(((1UL) << 12)-1)); > > do { do { ((void)sizeof(char[1 - 2*!!(__builtin_types_compatible_p(typeof(((void *) ptr)), typeof(struct page *)))])); if (__builtin_types_compatible_p(typeof(((void *) ptr)), typeof(struct page *))) __build_bug_on_failed = 1; } while(0); __kunmap_atomic((void *) ptr); } while (0); > do { if (({ ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_irqs_disabled_flags(*flags); })) { do { ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(*flags); } while (0); do { } while (0); } else { do { } while (0); do { ({ unsigned long __dummy; typeof(*flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); arch_local_irq_restore(*flags); } while (0); } } while (0); >} ># 375 "include/linux/bio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) char *__bio_kmap_irq(struct bio *bio, unsigned short idx, > unsigned long *flags) >{ > return bvec_kmap_irq((&((bio)->bi_io_vec[(idx)])), flags); >} ># 389 "include/linux/bio.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bio_has_data(struct bio *bio) >{ > if (bio && bio->bi_vcnt) > return true; > > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bio_is_rw(struct bio *bio) >{ > if (!bio_has_data(bio)) > return false; > > if (bio->bi_rw & (1 << __REQ_WRITE_SAME)) > return false; > > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool bio_mergeable(struct bio *bio) >{ > if (bio->bi_rw & ((1 << __REQ_NOMERGE) | (1 << __REQ_STARTED) | (1 << __REQ_SOFTBARRIER) | (1 << __REQ_FLUSH) | (1 << __REQ_FUA))) > return false; > > return true; >} ># 423 "include/linux/bio.h" >struct bio_list { > struct bio *head; > struct bio *tail; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bio_list_empty(const struct bio_list *bl) >{ > return bl->head == ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bio_list_init(struct bio_list *bl) >{ > bl->head = bl->tail = ((void *)0); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned bio_list_size(const struct bio_list *bl) >{ > unsigned sz = 0; > struct bio *bio; > > for (bio = (bl)->head; bio; bio = bio->bi_next) > sz++; > > return sz; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bio_list_add(struct bio_list *bl, struct bio *bio) >{ > bio->bi_next = ((void *)0); > > if (bl->tail) > bl->tail->bi_next = bio; > else > bl->head = bio; > > bl->tail = bio; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bio_list_add_head(struct bio_list *bl, struct bio *bio) >{ > bio->bi_next = bl->head; > > bl->head = bio; > > if (!bl->tail) > bl->tail = bio; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bio_list_merge(struct bio_list *bl, struct bio_list *bl2) >{ > if (!bl2->head) > return; > > if (bl->tail) > bl->tail->bi_next = bl2->head; > else > bl->head = bl2->head; > > bl->tail = bl2->tail; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void bio_list_merge_head(struct bio_list *bl, > struct bio_list *bl2) >{ > if (!bl2->head) > return; > > if (bl->head) > bl2->tail->bi_next = bl->head; > else > bl->tail = bl2->tail; > > bl->head = bl2->head; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_list_peek(struct bio_list *bl) >{ > return bl->head; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_list_pop(struct bio_list *bl) >{ > struct bio *bio = bl->head; > > if (bio) { > bl->head = bl->head->bi_next; > if (!bl->head) > bl->tail = ((void *)0); > > bio->bi_next = ((void *)0); > } > > return bio; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct bio *bio_list_get(struct bio_list *bl) >{ > struct bio *bio = bl->head; > > bl->head = bl->tail = ((void *)0); > > return bio; >} ># 549 "include/linux/bio.h" >extern struct bio_integrity_payload *bio_integrity_alloc(struct bio *, gfp_t, unsigned int); >extern void bio_integrity_free(struct bio *); >extern int bio_integrity_add_page(struct bio *, struct page *, unsigned int, unsigned int); >extern int bio_integrity_enabled(struct bio *bio); >extern int bio_integrity_set_tag(struct bio *, void *, unsigned int); >extern int bio_integrity_get_tag(struct bio *, void *, unsigned int); >extern int bio_integrity_prep(struct bio *); >extern void bio_integrity_endio(struct bio *, int); >extern void bio_integrity_advance(struct bio *, unsigned int); >extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int); >extern void bio_integrity_split(struct bio *, struct bio_pair *, int); >extern int bio_integrity_clone(struct bio *, struct bio *, gfp_t); >extern int bioset_integrity_create(struct bio_set *, int); >extern void bioset_integrity_free(struct bio_set *); >extern void bio_integrity_init(void); ># 18 "include/linux/blkdev.h" 2 > > ># 1 "include/linux/bsg.h" 1 > > > ># 1 "include/uapi/linux/bsg.h" 1 ># 20 "include/uapi/linux/bsg.h" >struct sg_io_v4 { > __s32 guard; > __u32 protocol; > __u32 subprotocol; > > > __u32 request_len; > __u64 request; > __u64 request_tag; > __u32 request_attr; > __u32 request_priority; > __u32 request_extra; > __u32 max_response_len; > __u64 response; > > > __u32 dout_iovec_count; > > __u32 dout_xfer_len; > __u32 din_iovec_count; > __u32 din_xfer_len; > __u64 dout_xferp; > __u64 din_xferp; > > __u32 timeout; > __u32 flags; > __u64 usr_ptr; > __u32 spare_in; > > __u32 driver_status; > __u32 transport_status; > __u32 device_status; > __u32 retry_delay; > __u32 info; > __u32 duration; > __u32 response_len; > __s32 din_resid; > __s32 dout_resid; > __u64 generated_tag; > __u32 spare_out; > > __u32 padding; >}; ># 5 "include/linux/bsg.h" 2 > > > >struct bsg_class_device { > struct device *class_dev; > struct device *parent; > int minor; > struct request_queue *queue; > struct kref ref; > void (*release)(struct device *); >}; > >extern int bsg_register_queue(struct request_queue *q, > struct device *parent, const char *name, > void (*release)(struct device *)); >extern void bsg_unregister_queue(struct request_queue *); ># 21 "include/linux/blkdev.h" 2 > > > > >struct module; >struct scsi_ioctl_command; > >struct request_queue; >struct elevator_queue; >struct request_pm_state; >struct blk_trace; >struct request; >struct sg_io_hdr; >struct bsg_job; >struct blkcg_gq; ># 46 "include/linux/blkdev.h" >struct request; >typedef void (rq_end_io_fn)(struct request *, int); > > > > >struct request_list { > struct request_queue *q; > > struct blkcg_gq *blkg; > > > > > > int count[2]; > int starved[2]; > mempool_t *rq_pool; > wait_queue_head_t wait[2]; > unsigned int flags; >}; > > > > >enum rq_cmd_type_bits { > REQ_TYPE_FS = 1, > REQ_TYPE_BLOCK_PC, > REQ_TYPE_SENSE, > REQ_TYPE_PM_SUSPEND, > REQ_TYPE_PM_RESUME, > REQ_TYPE_PM_SHUTDOWN, > REQ_TYPE_SPECIAL, > > > > > > REQ_TYPE_ATA_TASKFILE, > REQ_TYPE_ATA_PC, >}; ># 95 "include/linux/blkdev.h" >struct request { > struct list_head queuelist; > struct call_single_data csd; > > struct request_queue *q; > > unsigned int cmd_flags; > enum rq_cmd_type_bits cmd_type; > unsigned long atomic_flags; > > int cpu; > > > unsigned int __data_len; > sector_t __sector; > > struct bio *bio; > struct bio *biotail; > > struct hlist_node hash; > > > > > > union { > struct rb_node rb_node; > void *completion_data; > }; > > > > > > > > union { > struct { > struct io_cq *icq; > void *priv[2]; > } elv; > > struct { > unsigned int seq; > struct list_head list; > rq_end_io_fn *saved_end_io; > } flush; > }; > > struct gendisk *rq_disk; > struct hd_struct *part; > unsigned long start_time; > > struct request_list *rl; > unsigned long long start_time_ns; > unsigned long long io_start_time_ns; > > > > > unsigned short nr_phys_segments; > > unsigned short nr_integrity_segments; > > > unsigned short ioprio; > > int ref_count; > > void *special; > char *buffer; > > int tag; > int errors; > > > > > unsigned char __cmd[16]; > unsigned char *cmd; > unsigned short cmd_len; > > unsigned int extra_len; > unsigned int sense_len; > unsigned int resid_len; > void *sense; > > unsigned long deadline; > struct list_head timeout_list; > unsigned int timeout; > int retries; > > > > > rq_end_io_fn *end_io; > void *end_io_data; > > > struct request *next_rq; >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned short req_get_ioprio(struct request *req) >{ > return req->ioprio; >} > > > > > >struct request_pm_state >{ > > int pm_step; > > u32 pm_state; > void* data; >}; > ># 1 "include/linux/elevator.h" 1 > > > > > > > >struct io_cq; > >typedef int (elevator_merge_fn) (struct request_queue *, struct request **, > struct bio *); > >typedef void (elevator_merge_req_fn) (struct request_queue *, struct request *, struct request *); > >typedef void (elevator_merged_fn) (struct request_queue *, struct request *, int); > >typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *); > >typedef void (elevator_bio_merged_fn) (struct request_queue *, > struct request *, struct bio *); > >typedef int (elevator_dispatch_fn) (struct request_queue *, int); > >typedef void (elevator_add_req_fn) (struct request_queue *, struct request *); >typedef struct request *(elevator_request_list_fn) (struct request_queue *, struct request *); >typedef void (elevator_completed_req_fn) (struct request_queue *, struct request *); >typedef int (elevator_may_queue_fn) (struct request_queue *, int); > >typedef void (elevator_init_icq_fn) (struct io_cq *); >typedef void (elevator_exit_icq_fn) (struct io_cq *); >typedef int (elevator_set_req_fn) (struct request_queue *, struct request *, > struct bio *, gfp_t); >typedef void (elevator_put_req_fn) (struct request *); >typedef void (elevator_activate_req_fn) (struct request_queue *, struct request *); >typedef void (elevator_deactivate_req_fn) (struct request_queue *, struct request *); > >typedef int (elevator_init_fn) (struct request_queue *); >typedef void (elevator_exit_fn) (struct elevator_queue *); > >struct elevator_ops >{ > elevator_merge_fn *elevator_merge_fn; > elevator_merged_fn *elevator_merged_fn; > elevator_merge_req_fn *elevator_merge_req_fn; > elevator_allow_merge_fn *elevator_allow_merge_fn; > elevator_bio_merged_fn *elevator_bio_merged_fn; > > elevator_dispatch_fn *elevator_dispatch_fn; > elevator_add_req_fn *elevator_add_req_fn; > elevator_activate_req_fn *elevator_activate_req_fn; > elevator_deactivate_req_fn *elevator_deactivate_req_fn; > > elevator_completed_req_fn *elevator_completed_req_fn; > > elevator_request_list_fn *elevator_former_req_fn; > elevator_request_list_fn *elevator_latter_req_fn; > > elevator_init_icq_fn *elevator_init_icq_fn; > elevator_exit_icq_fn *elevator_exit_icq_fn; > > elevator_set_req_fn *elevator_set_req_fn; > elevator_put_req_fn *elevator_put_req_fn; > > elevator_may_queue_fn *elevator_may_queue_fn; > > elevator_init_fn *elevator_init_fn; > elevator_exit_fn *elevator_exit_fn; >}; > > > >struct elv_fs_entry { > struct attribute attr; > ssize_t (*show)(struct elevator_queue *, char *); > ssize_t (*store)(struct elevator_queue *, const char *, size_t); >}; > > > > >struct elevator_type >{ > > struct kmem_cache *icq_cache; > > > struct elevator_ops ops; > size_t icq_size; > size_t icq_align; > struct elv_fs_entry *elevator_attrs; > char elevator_name[(16)]; > struct module *elevator_owner; > > > char icq_cache_name[(16) + 5]; > struct list_head list; >}; > > > > >struct elevator_queue >{ > struct elevator_type *type; > void *elevator_data; > struct kobject kobj; > struct mutex sysfs_lock; > struct hlist_head *hash; > unsigned int registered:1; >}; > > > > >extern void elv_dispatch_sort(struct request_queue *, struct request *); >extern void elv_dispatch_add_tail(struct request_queue *, struct request *); >extern void elv_add_request(struct request_queue *, struct request *, int); >extern void __elv_add_request(struct request_queue *, struct request *, int); >extern int elv_merge(struct request_queue *, struct request **, struct bio *); >extern void elv_merge_requests(struct request_queue *, struct request *, > struct request *); >extern void elv_merged_request(struct request_queue *, struct request *, int); >extern void elv_bio_merged(struct request_queue *q, struct request *, > struct bio *); >extern void elv_requeue_request(struct request_queue *, struct request *); >extern struct request *elv_former_request(struct request_queue *, struct request *); >extern struct request *elv_latter_request(struct request_queue *, struct request *); >extern int elv_register_queue(struct request_queue *q); >extern void elv_unregister_queue(struct request_queue *q); >extern int elv_may_queue(struct request_queue *, int); >extern void elv_abort_queue(struct request_queue *); >extern void elv_completed_request(struct request_queue *, struct request *); >extern int elv_set_request(struct request_queue *q, struct request *rq, > struct bio *bio, gfp_t gfp_mask); >extern void elv_put_request(struct request_queue *, struct request *); >extern void elv_drain_elevator(struct request_queue *); > > > > >extern int elv_register(struct elevator_type *); >extern void elv_unregister(struct elevator_type *); > > > > >extern ssize_t elv_iosched_show(struct request_queue *, char *); >extern ssize_t elv_iosched_store(struct request_queue *, const char *, size_t); > >extern int elevator_init(struct request_queue *, char *); >extern void elevator_exit(struct elevator_queue *); >extern int elevator_change(struct request_queue *, const char *); >extern bool elv_rq_merge_ok(struct request *, struct bio *); > > > > >extern struct request *elv_rb_former_request(struct request_queue *, struct request *); >extern struct request *elv_rb_latter_request(struct request_queue *, struct request *); > > > > >extern void elv_rb_add(struct rb_root *, struct request *); >extern void elv_rb_del(struct rb_root *, struct request *); >extern struct request *elv_rb_find(struct rb_root *, sector_t); ># 188 "include/linux/elevator.h" >enum { > ELV_MQUEUE_MAY, > ELV_MQUEUE_NO, > ELV_MQUEUE_MUST, >}; ># 216 "include/linux/blkdev.h" 2 > >typedef void (request_fn_proc) (struct request_queue *q); >typedef void (make_request_fn) (struct request_queue *q, struct bio *bio); >typedef int (prep_rq_fn) (struct request_queue *, struct request *); >typedef void (unprep_rq_fn) (struct request_queue *, struct request *); > >struct bio_vec; >struct bvec_merge_data { > struct block_device *bi_bdev; > sector_t bi_sector; > unsigned bi_size; > unsigned long bi_rw; >}; >typedef int (merge_bvec_fn) (struct request_queue *, struct bvec_merge_data *, > struct bio_vec *); >typedef void (softirq_done_fn)(struct request *); >typedef int (dma_drain_needed_fn)(struct request *); >typedef int (lld_busy_fn) (struct request_queue *q); >typedef int (bsg_job_fn) (struct bsg_job *); > >enum blk_eh_timer_return { > BLK_EH_NOT_HANDLED, > BLK_EH_HANDLED, > BLK_EH_RESET_TIMER, >}; > >typedef enum blk_eh_timer_return (rq_timed_out_fn)(struct request *); > >enum blk_queue_state { > Queue_down, > Queue_up, >}; > >struct blk_queue_tag { > struct request **tag_index; > unsigned long *tag_map; > int busy; > int max_depth; > int real_max_depth; > atomic_t refcnt; >}; > > > > >struct queue_limits { > unsigned long bounce_pfn; > unsigned long seg_boundary_mask; > > unsigned int max_hw_sectors; > unsigned int max_sectors; > unsigned int max_segment_size; > unsigned int physical_block_size; > unsigned int alignment_offset; > unsigned int io_min; > unsigned int io_opt; > unsigned int max_discard_sectors; > unsigned int max_write_same_sectors; > unsigned int discard_granularity; > unsigned int discard_alignment; > > unsigned short logical_block_size; > unsigned short max_segments; > unsigned short max_integrity_segments; > > unsigned char misaligned; > unsigned char discard_misaligned; > unsigned char cluster; > unsigned char discard_zeroes_data; >}; > >struct request_queue { > > > > struct list_head queue_head; > struct request *last_merge; > struct elevator_queue *elevator; > int nr_rqs[2]; > int nr_rqs_elvpriv; > > > > > > > > struct request_list root_rl; > > request_fn_proc *request_fn; > make_request_fn *make_request_fn; > prep_rq_fn *prep_rq_fn; > unprep_rq_fn *unprep_rq_fn; > merge_bvec_fn *merge_bvec_fn; > softirq_done_fn *softirq_done_fn; > rq_timed_out_fn *rq_timed_out_fn; > dma_drain_needed_fn *dma_drain_needed; > lld_busy_fn *lld_busy_fn; > > > > > sector_t end_sector; > struct request *boundary_rq; > > > > > struct delayed_work delay_work; > > struct backing_dev_info backing_dev_info; > > > > > > void *queuedata; > > > > > unsigned long queue_flags; > > > > > > int id; > > > > > gfp_t bounce_gfp; > > > > > > > spinlock_t __queue_lock; > spinlock_t *queue_lock; > > > > > struct kobject kobj; > > > > > unsigned long nr_requests; > unsigned int nr_congestion_on; > unsigned int nr_congestion_off; > unsigned int nr_batching; > > unsigned int dma_drain_size; > void *dma_drain_buffer; > unsigned int dma_pad_mask; > unsigned int dma_alignment; > > struct blk_queue_tag *queue_tags; > struct list_head tag_busy_list; > > unsigned int nr_sorted; > unsigned int in_flight[2]; > > > > > > unsigned int request_fn_active; > > unsigned int rq_timeout; > struct timer_list timeout; > struct list_head timeout_list; > > struct list_head icq_list; > > unsigned long blkcg_pols[(((2) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; > struct blkcg_gq *root_blkg; > struct list_head blkg_list; > > > struct queue_limits limits; > > > > > unsigned int sg_timeout; > unsigned int sg_reserved_size; > int node; > > struct blk_trace *blk_trace; > > > > > unsigned int flush_flags; > unsigned int flush_not_queueable:1; > unsigned int flush_queue_delayed:1; > unsigned int flush_pending_idx:1; > unsigned int flush_running_idx:1; > unsigned long flush_pending_since; > struct list_head flush_queue[2]; > struct list_head flush_data_in_flight; > struct request flush_rq; > > struct mutex sysfs_lock; > > int bypass_depth; > > > bsg_job_fn *bsg_job_fn; > int bsg_job_size; > struct bsg_class_device bsg_dev; > > > > struct list_head all_q_node; > > > > struct throtl_data *td; > >}; ># 468 "include/linux/blkdev.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void queue_lockdep_assert_held(struct request_queue *q) >{ > if (q->queue_lock) > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void queue_flag_set_unlocked(unsigned int flag, > struct request_queue *q) >{ > __set_bit(flag, &q->queue_flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_flag_test_and_clear(unsigned int flag, > struct request_queue *q) >{ > queue_lockdep_assert_held(q); > > if (test_bit(flag, &q->queue_flags)) { > __clear_bit(flag, &q->queue_flags); > return 1; > } > > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_flag_test_and_set(unsigned int flag, > struct request_queue *q) >{ > queue_lockdep_assert_held(q); > > if (!test_bit(flag, &q->queue_flags)) { > __set_bit(flag, &q->queue_flags); > return 0; > } > > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void queue_flag_set(unsigned int flag, struct request_queue *q) >{ > queue_lockdep_assert_held(q); > __set_bit(flag, &q->queue_flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void queue_flag_clear_unlocked(unsigned int flag, > struct request_queue *q) >{ > __clear_bit(flag, &q->queue_flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_in_flight(struct request_queue *q) >{ > return q->in_flight[0] + q->in_flight[1]; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void queue_flag_clear(unsigned int flag, struct request_queue *q) >{ > queue_lockdep_assert_held(q); > __clear_bit(flag, &q->queue_flags); >} ># 567 "include/linux/blkdev.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_queue_cluster(struct request_queue *q) >{ > return q->limits.cluster; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool rw_is_sync(unsigned int rw_flags) >{ > return !(rw_flags & (1 << __REQ_WRITE)) || (rw_flags & (1 << __REQ_SYNC)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool rq_is_sync(struct request *rq) >{ > return rw_is_sync(rq->cmd_flags); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool blk_rl_full(struct request_list *rl, bool sync) >{ > unsigned int flag = sync ? (1U << 0) : (1U << 1); > > return rl->flags & flag; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_set_rl_full(struct request_list *rl, bool sync) >{ > unsigned int flag = sync ? (1U << 0) : (1U << 1); > > rl->flags |= flag; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_clear_rl_full(struct request_list *rl, bool sync) >{ > unsigned int flag = sync ? (1U << 0) : (1U << 1); > > rl->flags &= ~flag; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool rq_mergeable(struct request *rq) >{ > if (rq->cmd_type != REQ_TYPE_FS) > return false; > > if (rq->cmd_flags & ((1 << __REQ_NOMERGE) | (1 << __REQ_STARTED) | (1 << __REQ_SOFTBARRIER) | (1 << __REQ_FLUSH) | (1 << __REQ_FUA))) > return false; > > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool blk_check_merge_flags(unsigned int flags1, > unsigned int flags2) >{ > if ((flags1 & (1 << __REQ_DISCARD)) != (flags2 & (1 << __REQ_DISCARD))) > return false; > > if ((flags1 & (1 << __REQ_SECURE)) != (flags2 & (1 << __REQ_SECURE))) > return false; > > if ((flags1 & (1 << __REQ_WRITE_SAME)) != (flags2 & (1 << __REQ_WRITE_SAME))) > return false; > > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool blk_write_same_mergeable(struct bio *a, struct bio *b) >{ > if (bio_data(a) == bio_data(b)) > return true; > > return false; >} ># 647 "include/linux/blkdev.h" >extern unsigned long blk_max_low_pfn, blk_max_pfn; ># 672 "include/linux/blkdev.h" >extern int init_emergency_isa_pool(void); >extern void blk_queue_bounce(struct request_queue *q, struct bio **bio); ># 684 "include/linux/blkdev.h" >struct rq_map_data { > struct page **pages; > int page_order; > int nr_entries; > unsigned long offset; > int null_mapped; > int from_user; >}; > >struct req_iterator { > int i; > struct bio *bio; >}; ># 716 "include/linux/blkdev.h" >extern void rq_flush_dcache_pages(struct request *rq); > > > > > > >extern int blk_register_queue(struct gendisk *disk); >extern void blk_unregister_queue(struct gendisk *disk); >extern void generic_make_request(struct bio *bio); >extern void blk_rq_init(struct request_queue *q, struct request *rq); >extern void blk_put_request(struct request *); >extern void __blk_put_request(struct request_queue *, struct request *); >extern struct request *blk_get_request(struct request_queue *, int, gfp_t); >extern struct request *blk_make_request(struct request_queue *, struct bio *, > gfp_t); >extern void blk_requeue_request(struct request_queue *, struct request *); >extern void blk_add_request_payload(struct request *rq, struct page *page, > unsigned int len); >extern int blk_rq_check_limits(struct request_queue *q, struct request *rq); >extern int blk_lld_busy(struct request_queue *q); >extern int blk_rq_prep_clone(struct request *rq, struct request *rq_src, > struct bio_set *bs, gfp_t gfp_mask, > int (*bio_ctr)(struct bio *, struct bio *, void *), > void *data); >extern void blk_rq_unprep_clone(struct request *rq); >extern int blk_insert_cloned_request(struct request_queue *q, > struct request *rq); >extern void blk_delay_queue(struct request_queue *, unsigned long); >extern void blk_recount_segments(struct request_queue *, struct bio *); >extern int scsi_verify_blk_ioctl(struct block_device *, unsigned int); >extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t, > unsigned int, void *); >extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t, > unsigned int, void *); >extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t, > struct scsi_ioctl_command *); > >extern void blk_queue_bio(struct request_queue *q, struct bio *bio); > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_clear_queue_congested(struct request_queue *q, int sync) >{ > clear_bdi_congested(&q->backing_dev_info, sync); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_set_queue_congested(struct request_queue *q, int sync) >{ > set_bdi_congested(&q->backing_dev_info, sync); >} > >extern void blk_start_queue(struct request_queue *q); >extern void blk_stop_queue(struct request_queue *q); >extern void blk_sync_queue(struct request_queue *q); >extern void __blk_stop_queue(struct request_queue *q); >extern void __blk_run_queue(struct request_queue *q); >extern void blk_run_queue(struct request_queue *); >extern void blk_run_queue_async(struct request_queue *q); >extern int blk_rq_map_user(struct request_queue *, struct request *, > struct rq_map_data *, void *, unsigned long, > gfp_t); >extern int blk_rq_unmap_user(struct bio *); >extern int blk_rq_map_kern(struct request_queue *, struct request *, void *, unsigned int, gfp_t); >extern int blk_rq_map_user_iov(struct request_queue *, struct request *, > struct rq_map_data *, struct sg_iovec *, int, > unsigned int, gfp_t); >extern int blk_execute_rq(struct request_queue *, struct gendisk *, > struct request *, int); >extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, > struct request *, int, rq_end_io_fn *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct request_queue *bdev_get_queue(struct block_device *bdev) >{ > return bdev->bd_disk->queue; >} ># 808 "include/linux/blkdev.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) sector_t blk_rq_pos(const struct request *rq) >{ > return rq->__sector; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_rq_bytes(const struct request *rq) >{ > return rq->__data_len; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int blk_rq_cur_bytes(const struct request *rq) >{ > return rq->bio ? bio_cur_bytes(rq->bio) : 0; >} > >extern unsigned int blk_rq_err_bytes(const struct request *rq); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_rq_sectors(const struct request *rq) >{ > return blk_rq_bytes(rq) >> 9; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_rq_cur_sectors(const struct request *rq) >{ > return blk_rq_cur_bytes(rq) >> 9; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_queue_get_max_sectors(struct request_queue *q, > unsigned int cmd_flags) >{ > if (__builtin_expect(!!(cmd_flags & (1 << __REQ_DISCARD)), 0)) > return q->limits.max_discard_sectors; > > if (__builtin_expect(!!(cmd_flags & (1 << __REQ_WRITE_SAME)), 0)) > return q->limits.max_write_same_sectors; > > return q->limits.max_sectors; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blk_rq_get_max_sectors(struct request *rq) >{ > struct request_queue *q = rq->q; > > if (__builtin_expect(!!(rq->cmd_type == REQ_TYPE_BLOCK_PC), 0)) > return q->limits.max_hw_sectors; > > return blk_queue_get_max_sectors(q, rq->cmd_flags); >} > > > > >extern struct request *blk_peek_request(struct request_queue *q); >extern void blk_start_request(struct request *rq); >extern struct request *blk_fetch_request(struct request_queue *q); ># 877 "include/linux/blkdev.h" >extern bool blk_update_request(struct request *rq, int error, > unsigned int nr_bytes); >extern bool blk_end_request(struct request *rq, int error, > unsigned int nr_bytes); >extern void blk_end_request_all(struct request *rq, int error); >extern bool blk_end_request_cur(struct request *rq, int error); >extern bool blk_end_request_err(struct request *rq, int error); >extern bool __blk_end_request(struct request *rq, int error, > unsigned int nr_bytes); >extern void __blk_end_request_all(struct request *rq, int error); >extern bool __blk_end_request_cur(struct request *rq, int error); >extern bool __blk_end_request_err(struct request *rq, int error); > >extern void blk_complete_request(struct request *); >extern void __blk_complete_request(struct request *); >extern void blk_abort_request(struct request *); >extern void blk_unprep_request(struct request *); > > > > >extern struct request_queue *blk_init_queue_node(request_fn_proc *rfn, > spinlock_t *lock, int node_id); >extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *); >extern struct request_queue *blk_init_allocated_queue(struct request_queue *, > request_fn_proc *, spinlock_t *); >extern void blk_cleanup_queue(struct request_queue *); >extern void blk_queue_make_request(struct request_queue *, make_request_fn *); >extern void blk_queue_bounce_limit(struct request_queue *, u64); >extern void blk_limits_max_hw_sectors(struct queue_limits *, unsigned int); >extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); >extern void blk_queue_max_segments(struct request_queue *, unsigned short); >extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); >extern void blk_queue_max_discard_sectors(struct request_queue *q, > unsigned int max_discard_sectors); >extern void blk_queue_max_write_same_sectors(struct request_queue *q, > unsigned int max_write_same_sectors); >extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); >extern void blk_queue_physical_block_size(struct request_queue *, unsigned int); >extern void blk_queue_alignment_offset(struct request_queue *q, > unsigned int alignment); >extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min); >extern void blk_queue_io_min(struct request_queue *q, unsigned int min); >extern void blk_limits_io_opt(struct queue_limits *limits, unsigned int opt); >extern void blk_queue_io_opt(struct request_queue *q, unsigned int opt); >extern void blk_set_default_limits(struct queue_limits *lim); >extern void blk_set_stacking_limits(struct queue_limits *lim); >extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, > sector_t offset); >extern int bdev_stack_limits(struct queue_limits *t, struct block_device *bdev, > sector_t offset); >extern void disk_stack_limits(struct gendisk *disk, struct block_device *bdev, > sector_t offset); >extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); >extern void blk_queue_dma_pad(struct request_queue *, unsigned int); >extern void blk_queue_update_dma_pad(struct request_queue *, unsigned int); >extern int blk_queue_dma_drain(struct request_queue *q, > dma_drain_needed_fn *dma_drain_needed, > void *buf, unsigned int size); >extern void blk_queue_lld_busy(struct request_queue *q, lld_busy_fn *fn); >extern void blk_queue_segment_boundary(struct request_queue *, unsigned long); >extern void blk_queue_prep_rq(struct request_queue *, prep_rq_fn *pfn); >extern void blk_queue_unprep_rq(struct request_queue *, unprep_rq_fn *ufn); >extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *); >extern void blk_queue_dma_alignment(struct request_queue *, int); >extern void blk_queue_update_dma_alignment(struct request_queue *, int); >extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *); >extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *); >extern void blk_queue_rq_timeout(struct request_queue *, unsigned int); >extern void blk_queue_flush(struct request_queue *q, unsigned int flush); >extern void blk_queue_flush_queueable(struct request_queue *q, bool queueable); >extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); > >extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *); >extern int blk_bio_map_sg(struct request_queue *q, struct bio *bio, > struct scatterlist *sglist); >extern void blk_dump_rq_flags(struct request *, char *); >extern long nr_blockdev_pages(void); > >bool __attribute__((warn_unused_result)) blk_get_queue(struct request_queue *); >struct request_queue *blk_alloc_queue(gfp_t); >struct request_queue *blk_alloc_queue_node(gfp_t, int); >extern void blk_put_queue(struct request_queue *); ># 973 "include/linux/blkdev.h" >struct blk_plug { > unsigned long magic; > struct list_head list; > struct list_head cb_list; > unsigned int should_sort; >}; > > >struct blk_plug_cb; >typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); >struct blk_plug_cb { > struct list_head list; > blk_plug_cb_fn callback; > void *data; >}; >extern struct blk_plug_cb *blk_check_plugged(blk_plug_cb_fn unplug, > void *data, int size); >extern void blk_start_plug(struct blk_plug *); >extern void blk_finish_plug(struct blk_plug *); >extern void blk_flush_plug_list(struct blk_plug *, bool); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_flush_plug(struct task_struct *tsk) >{ > struct blk_plug *plug = tsk->plug; > > if (plug) > blk_flush_plug_list(plug, false); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_schedule_flush_plug(struct task_struct *tsk) >{ > struct blk_plug *plug = tsk->plug; > > if (plug) > blk_flush_plug_list(plug, true); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool blk_needs_flush_plug(struct task_struct *tsk) >{ > struct blk_plug *plug = tsk->plug; > > return plug && (!list_empty(&plug->list) || !list_empty(&plug->cb_list)); >} > > > > > >extern int blk_queue_start_tag(struct request_queue *, struct request *); >extern struct request *blk_queue_find_tag(struct request_queue *, int); >extern void blk_queue_end_tag(struct request_queue *, struct request *); >extern int blk_queue_init_tags(struct request_queue *, int, struct blk_queue_tag *); >extern void blk_queue_free_tags(struct request_queue *); >extern int blk_queue_resize_tags(struct request_queue *, int); >extern void blk_queue_invalidate_tags(struct request_queue *); >extern struct blk_queue_tag *blk_init_tags(int); >extern void blk_free_tags(struct blk_queue_tag *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt, > int tag) >{ > if (__builtin_expect(!!(bqt == ((void *)0) || tag >= bqt->real_max_depth), 0)) > return ((void *)0); > return bqt->tag_index[tag]; >} > > > >extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *); >extern int blkdev_issue_discard(struct block_device *bdev, sector_t sector, > sector_t nr_sects, gfp_t gfp_mask, unsigned long flags); >extern int blkdev_issue_write_same(struct block_device *bdev, sector_t sector, > sector_t nr_sects, gfp_t gfp_mask, struct page *page); >extern int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, > sector_t nr_sects, gfp_t gfp_mask); >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sb_issue_discard(struct super_block *sb, sector_t block, > sector_t nr_blocks, gfp_t gfp_mask, unsigned long flags) >{ > return blkdev_issue_discard(sb->s_bdev, block << (sb->s_blocksize_bits - 9), > nr_blocks << (sb->s_blocksize_bits - 9), > gfp_mask, flags); >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sb_issue_zeroout(struct super_block *sb, sector_t block, > sector_t nr_blocks, gfp_t gfp_mask) >{ > return blkdev_issue_zeroout(sb->s_bdev, > block << (sb->s_blocksize_bits - 9), > nr_blocks << (sb->s_blocksize_bits - 9), > gfp_mask); >} > >extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm); > >enum blk_default_limits { > BLK_MAX_SEGMENTS = 128, > BLK_SAFE_MAX_SECTORS = 255, > BLK_DEF_MAX_SECTORS = 1024, > BLK_MAX_SEGMENT_SIZE = 65536, > BLK_SEG_BOUNDARY_MASK = 0xFFFFFFFFUL, >}; > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long queue_bounce_pfn(struct request_queue *q) >{ > return q->limits.bounce_pfn; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long queue_segment_boundary(struct request_queue *q) >{ > return q->limits.seg_boundary_mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_max_sectors(struct request_queue *q) >{ > return q->limits.max_sectors; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_max_hw_sectors(struct request_queue *q) >{ > return q->limits.max_hw_sectors; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned short queue_max_segments(struct request_queue *q) >{ > return q->limits.max_segments; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_max_segment_size(struct request_queue *q) >{ > return q->limits.max_segment_size; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned short queue_logical_block_size(struct request_queue *q) >{ > int retval = 512; > > if (q && q->limits.logical_block_size) > retval = q->limits.logical_block_size; > > return retval; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned short bdev_logical_block_size(struct block_device *bdev) >{ > return queue_logical_block_size(bdev_get_queue(bdev)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_physical_block_size(struct request_queue *q) >{ > return q->limits.physical_block_size; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int bdev_physical_block_size(struct block_device *bdev) >{ > return queue_physical_block_size(bdev_get_queue(bdev)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_io_min(struct request_queue *q) >{ > return q->limits.io_min; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdev_io_min(struct block_device *bdev) >{ > return queue_io_min(bdev_get_queue(bdev)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_io_opt(struct request_queue *q) >{ > return q->limits.io_opt; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdev_io_opt(struct block_device *bdev) >{ > return queue_io_opt(bdev_get_queue(bdev)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_alignment_offset(struct request_queue *q) >{ > if (q->limits.misaligned) > return -1; > > return q->limits.alignment_offset; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_limit_alignment_offset(struct queue_limits *lim, sector_t sector) >{ > unsigned int granularity = ({ typeof(lim->physical_block_size) _max1 = (lim->physical_block_size); typeof(lim->io_min) _max2 = (lim->io_min); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; }); > unsigned int alignment = (sector << 9) & (granularity - 1); > > return (granularity + lim->alignment_offset - alignment) > & (granularity - 1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdev_alignment_offset(struct block_device *bdev) >{ > struct request_queue *q = bdev_get_queue(bdev); > > if (q->limits.misaligned) > return -1; > > if (bdev != bdev->bd_contains) > return bdev->bd_part->alignment_offset; > > return q->limits.alignment_offset; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_discard_alignment(struct request_queue *q) >{ > if (q->limits.discard_misaligned) > return -1; > > return q->limits.discard_alignment; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_limit_discard_alignment(struct queue_limits *lim, sector_t sector) >{ > unsigned int alignment, granularity, offset; > > if (!lim->max_discard_sectors) > return 0; > > > alignment = lim->discard_alignment >> 9; > granularity = lim->discard_granularity >> 9; > if (!granularity) > return 0; > > > offset = ({ unsigned int __r, __b = (granularity); if (!__builtin_constant_p(__b) || __b == 0 || (7 < 4 && (__b & (__b - 1)) != 0)) { __r = ({ register unsigned int __base asm("r4") = __b; register unsigned long long __n asm("r0") = sector; register unsigned long long __res asm("r2"); register unsigned int __rem asm("r1"); asm( ".ifnc " "%0" "," "r1" " ; .err ; .endif\n\t" ".ifnc " "%1" "," "r2" " ; .err ; .endif\n\t" ".ifnc " "%2" "," "r0" " ; .err ; .endif\n\t" ".ifnc " "%3" "," "r4" " ; .err ; .endif\n\t" "bl __do_div64" : "=r" (__rem), "=r" (__res) : "r" (__n), "r" (__base) : "ip", "lr", "cc"); sector = __res; __rem; }); } else if ((__b & (__b - 1)) == 0) { __r = sector; __r &= (__b - 1); sector /= __b; } else { unsigned long long __res, __x, __t, __m, __n = sector; unsigned int __c, __p, __z = 0; __r = __n; __p = 1 << ({ unsigned int __left = (__b), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); __m = (~0ULL / __b) * __p; __m += (((~0ULL % __b + 1) * __p) + __b - 1) / __b; __x = ~0ULL / __b * __b - 1; __res = (__m & 0xffffffff) * (__x & 0xffffffff); __res >>= 32; __res += (__m & 0xffffffff) * (__x >> 32); __t = __res; __res += (__x & 0xffffffff) * (__m >> 32); __t = (__res < __t) ? (1ULL << 32) : 0; __res = (__res >> 32) + __t; __res += (__m >> 32) * (__x >> 32); __res /= __p; if (~0ULL % (__b / (__b & -__b)) == 0) { __n /= (__b & -__b); __m = ~0ULL / (__b / (__b & -__b)); __p = 1; __c = 1; } else if (__res != __x / __b) { __c = 1; __m = (~0ULL / __b) * __p; __m += ((~0ULL % __b + 1) * __p) / __b; } else { unsigned int __bits = -(__m & -__m); __bits |= __m >> 32; __bits = (~__bits) << 1; if (!__bits) { __p /= (__m & -__m); __m /= (__m & -__m); } else { __p >>= ({ unsigned int __left = (__bits), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); __m >>= ({ unsigned int __left = (__bits), __nr = 0; if (__left & 0xffff0000) __nr += 16, __left >>= 16; if (__left & 0x0000ff00) __nr += 8, __left >>= 8; if (__left & 0x000000f0) __nr += 4, __left >>= 4; if (__left & 0x0000000c) __nr += 2, __left >>= 2; if (__left & 0x00000002) __nr += 1; __nr; }); } __c = 0; } if (!__c) { asm ( "umull %Q0, %R0, %1, %Q2\n\t" "mov %Q0, #0" : "=&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else if (!(__m & ((1ULL << 63) | (1ULL << 31)))) { __res = __m; asm ( "umlal %Q0, %R0, %Q1, %Q2\n\t" "mov %Q0, #0" : "+&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else { asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" "cmn %Q0, %Q1\n\t" "adcs %R0, %R0, %R1\n\t" "adc %Q0, %3, #0" : "=&r" (__res) : "r" (__m), "r" (__n), "r" (__z) : "cc" ); } if (!(__m & ((1ULL << 63) | (1ULL << 31)))) { asm ( "umlal %R0, %Q0, %R1, %Q2\n\t" "umlal %R0, %Q0, %Q1, %R2\n\t" "mov %R0, #0\n\t" "umlal %Q0, %R0, %R1, %R2" : "+&r" (__res) : "r" (__m), "r" (__n) : "cc" ); } else { asm ( "umlal %R0, %Q0, %R2, %Q3\n\t" "umlal %R0, %1, %Q2, %R3\n\t" "mov %R0, #0\n\t" "adds %Q0, %1, %Q0\n\t" "adc %R0, %R0, #0\n\t" "umlal %Q0, %R0, %R2, %R3" : "+&r" (__res), "+&r" (__z) : "r" (__m), "r" (__n) : "cc" ); } __res /= __p; { unsigned int __res0 = __res; unsigned int __b0 = __b; __r -= __res0 * __b0; } sector = __res; } __r; }); > > > offset = (granularity + alignment - offset) % granularity; > > > return offset << 9; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int bdev_discard_alignment(struct block_device *bdev) >{ > struct request_queue *q = bdev_get_queue(bdev); > > if (bdev != bdev->bd_contains) > return bdev->bd_part->discard_alignment; > > return q->limits.discard_alignment; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int queue_discard_zeroes_data(struct request_queue *q) >{ > if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1) > return 1; > > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int bdev_discard_zeroes_data(struct block_device *bdev) >{ > return queue_discard_zeroes_data(bdev_get_queue(bdev)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int bdev_write_same(struct block_device *bdev) >{ > struct request_queue *q = bdev_get_queue(bdev); > > if (q) > return q->limits.max_write_same_sectors; > > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int queue_dma_alignment(struct request_queue *q) >{ > return q ? q->dma_alignment : 511; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int blk_rq_aligned(struct request_queue *q, unsigned long addr, > unsigned int len) >{ > unsigned int alignment = queue_dma_alignment(q) | q->dma_pad_mask; > return !(addr & alignment) && !(len & alignment); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int blksize_bits(unsigned int size) >{ > unsigned int bits = 8; > do { > bits++; > size >>= 1; > } while (size > 256); > return bits; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int block_size(struct block_device *bdev) >{ > return bdev->bd_block_size; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool queue_flush_queueable(struct request_queue *q) >{ > return !q->flush_not_queueable; >} > >typedef struct {struct page *v;} Sector; > >unsigned char *read_dev_sector(struct block_device *, sector_t, Sector *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void put_dev_sector(Sector p) >{ > put_page(p.v); >} > >struct work_struct; >int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_start_time_ns(struct request *req) >{ > do { } while (0); > req->start_time_ns = sched_clock(); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void set_io_start_time_ns(struct request *req) >{ > do { } while (0); > req->io_start_time_ns = sched_clock(); > do { } while (0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uint64_t rq_start_time_ns(struct request *req) >{ > return req->start_time_ns; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) uint64_t rq_io_start_time_ns(struct request *req) >{ > return req->io_start_time_ns; >} ># 1342 "include/linux/blkdev.h" >struct blk_integrity_exchg { > void *prot_buf; > void *data_buf; > sector_t sector; > unsigned int data_size; > unsigned short sector_size; > const char *disk_name; >}; > >typedef void (integrity_gen_fn) (struct blk_integrity_exchg *); >typedef int (integrity_vrfy_fn) (struct blk_integrity_exchg *); >typedef void (integrity_set_tag_fn) (void *, void *, unsigned int); >typedef void (integrity_get_tag_fn) (void *, void *, unsigned int); > >struct blk_integrity { > integrity_gen_fn *generate_fn; > integrity_vrfy_fn *verify_fn; > integrity_set_tag_fn *set_tag_fn; > integrity_get_tag_fn *get_tag_fn; > > unsigned short flags; > unsigned short tuple_size; > unsigned short sector_size; > unsigned short tag_size; > > const char *name; > > struct kobject kobj; >}; > >extern bool blk_integrity_is_initialized(struct gendisk *); >extern int blk_integrity_register(struct gendisk *, struct blk_integrity *); >extern void blk_integrity_unregister(struct gendisk *); >extern int blk_integrity_compare(struct gendisk *, struct gendisk *); >extern int blk_rq_map_integrity_sg(struct request_queue *, struct bio *, > struct scatterlist *); >extern int blk_rq_count_integrity_sg(struct request_queue *, struct bio *); >extern int blk_integrity_merge_rq(struct request_queue *, struct request *, > struct request *); >extern int blk_integrity_merge_bio(struct request_queue *, struct request *, > struct bio *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >struct blk_integrity *bdev_get_integrity(struct block_device *bdev) >{ > return bdev->bd_disk->integrity; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct blk_integrity *blk_get_integrity(struct gendisk *disk) >{ > return disk->integrity; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int blk_integrity_rq(struct request *rq) >{ > if (rq->bio == ((void *)0)) > return 0; > > return (rq->bio->bi_integrity != ((void *)0)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void blk_queue_max_integrity_segments(struct request_queue *q, > unsigned int segs) >{ > q->limits.max_integrity_segments = segs; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned short >queue_max_integrity_segments(struct request_queue *q) >{ > return q->limits.max_integrity_segments; >} ># 1484 "include/linux/blkdev.h" >struct block_device_operations { > int (*open) (struct block_device *, fmode_t); > int (*release) (struct gendisk *, fmode_t); > int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); > int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); > int (*direct_access) (struct block_device *, sector_t, > void **, unsigned long *); > unsigned int (*check_events) (struct gendisk *disk, > unsigned int clearing); > > int (*media_changed) (struct gendisk *); > void (*unlock_native_capacity) (struct gendisk *); > int (*revalidate_disk) (struct gendisk *); > int (*getgeo)(struct block_device *, struct hd_geometry *); > > void (*swap_slot_free_notify) (struct block_device *, unsigned long); > struct module *owner; >}; > >extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, > unsigned long); ># 30 "drivers/ata/pata_optidma.c" 2 ># 1 "include/linux/delay.h" 1 ># 12 "include/linux/delay.h" >extern unsigned long loops_per_jiffy; > ># 1 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/delay.h" 1 ># 10 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/delay.h" ># 1 "arch/arm/include/generated/asm/param.h" 1 ># 11 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/delay.h" 2 > > > > > > > >struct delay_timer { > unsigned long (*read_current_timer)(void); > unsigned long freq; >}; > >extern struct arm_delay_ops { > void (*delay)(unsigned long); > void (*const_udelay)(unsigned long); > void (*udelay)(unsigned long); >} arm_delay_ops; ># 38 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/delay.h" >extern void __bad_udelay(void); ># 60 "/builddir/build/BUILD/kernel-3.8.fc19/linux-3.8.0-1.fc19.armv7hl/arch/arm/include/asm/delay.h" >extern void __loop_delay(unsigned long loops); >extern void __loop_udelay(unsigned long usecs); >extern void __loop_const_udelay(unsigned long); > > > >extern void register_current_timer_delay(const struct delay_timer *timer); ># 15 "include/linux/delay.h" 2 ># 37 "include/linux/delay.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ndelay(unsigned long x) >{ > (__builtin_constant_p((((x) + (1000) - 1) / (1000))) ? (((((x) + (1000) - 1) / (1000))) > (2 * 1000) ? __bad_udelay() : arm_delay_ops.const_udelay(((((x) + (1000) - 1) / (1000))) * (((2199023UL) * 100) >> 11))) : arm_delay_ops.udelay((((x) + (1000) - 1) / (1000)))); >} > > > >extern unsigned long lpj_fine; >void calibrate_delay(void); >void msleep(unsigned int msecs); >unsigned long msleep_interruptible(unsigned int msecs); >void usleep_range(unsigned long min, unsigned long max); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ssleep(unsigned int seconds) >{ > msleep(seconds * 1000); >} ># 31 "drivers/ata/pata_optidma.c" 2 ># 1 "include/scsi/scsi_host.h" 1 ># 9 "include/scsi/scsi_host.h" ># 1 "include/scsi/scsi.h" 1 ># 14 "include/scsi/scsi.h" >struct scsi_cmnd; ># 194 "include/scsi/scsi.h" >struct scsi_varlen_cdb_hdr { > __u8 opcode; > __u8 control; > __u8 misc[5]; > __u8 additional_cdb_length; > __be16 service_action; > >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned >scsi_varlen_cdb_length(const void *hdr) >{ > return ((struct scsi_varlen_cdb_hdr *)hdr)->additional_cdb_length + 8; >} > >extern const unsigned char scsi_command_size_tbl[8]; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned >scsi_command_size(const unsigned char *cmnd) >{ > return (cmnd[0] == 0x7f) ? > scsi_varlen_cdb_length(cmnd) : scsi_command_size_tbl[((cmnd[0]) >> 5) & 7]; >} ># 253 "include/scsi/scsi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int scsi_status_is_good(int status) >{ > > > > > > status &= 0xfe; > return ((status == 0x00) || > (status == 0x10) || > (status == 0x14) || > > (status == 0x22)); >} ># 331 "include/scsi/scsi.h" >enum scsi_protocol { > SCSI_PROTOCOL_FCP = 0, > SCSI_PROTOCOL_SPI = 1, > SCSI_PROTOCOL_SSA = 2, > SCSI_PROTOCOL_SBP = 3, > SCSI_PROTOCOL_SRP = 4, > SCSI_PROTOCOL_ISCSI = 5, > SCSI_PROTOCOL_SAS = 6, > SCSI_PROTOCOL_ADT = 7, > SCSI_PROTOCOL_ATA = 8, > SCSI_PROTOCOL_UNSPEC = 0xf, >}; > > >extern const char * scsi_device_type(unsigned type); > > > > > >struct ccs_modesel_head { > __u8 _r1; > __u8 medium; > __u8 _r2; > __u8 block_desc_length; > __u8 density; > __u8 number_blocks_hi; > __u8 number_blocks_med; > __u8 number_blocks_lo; > __u8 _r3; > __u8 block_length_hi; > __u8 block_length_med; > __u8 block_length_lo; >}; > > > > >struct scsi_lun { > __u8 scsi_lun[8]; >}; ># 381 "include/scsi/scsi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int scsi_is_wlun(unsigned int lun) >{ > return (lun & 0xff00) == 0xc100; >} ># 572 "include/scsi/scsi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __u32 scsi_to_u32(__u8 *ptr) >{ > return (ptr[0]<<24) + (ptr[1]<<16) + (ptr[2]<<8) + ptr[3]; >} ># 10 "include/scsi/scsi_host.h" 2 > >struct request_queue; >struct block_device; >struct completion; >struct module; >struct scsi_cmnd; >struct scsi_device; >struct scsi_target; >struct Scsi_Host; >struct scsi_host_cmd_pool; >struct scsi_transport_template; >struct blk_queue_tags; ># 46 "include/scsi/scsi_host.h" >enum { > SCSI_QDEPTH_DEFAULT, > SCSI_QDEPTH_QFULL, > SCSI_QDEPTH_RAMP_UP, >}; > >struct scsi_host_template { > struct module *module; > const char *name; > > > > > > > > int (* detect)(struct scsi_host_template *); > > > > > > > int (* release)(struct Scsi_Host *); ># 78 "include/scsi/scsi_host.h" > const char *(* info)(struct Scsi_Host *); > > > > > > > int (* ioctl)(struct scsi_device *dev, int cmd, void *arg); ># 130 "include/scsi/scsi_host.h" > int (* queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); ># 150 "include/scsi/scsi_host.h" > int (* transfer_response)(struct scsi_cmnd *, > void (*done)(struct scsi_cmnd *)); ># 171 "include/scsi/scsi_host.h" > int (* eh_abort_handler)(struct scsi_cmnd *); > int (* eh_device_reset_handler)(struct scsi_cmnd *); > int (* eh_target_reset_handler)(struct scsi_cmnd *); > int (* eh_bus_reset_handler)(struct scsi_cmnd *); > int (* eh_host_reset_handler)(struct scsi_cmnd *); ># 203 "include/scsi/scsi_host.h" > int (* slave_alloc)(struct scsi_device *); ># 234 "include/scsi/scsi_host.h" > int (* slave_configure)(struct scsi_device *); ># 245 "include/scsi/scsi_host.h" > void (* slave_destroy)(struct scsi_device *); ># 259 "include/scsi/scsi_host.h" > int (* target_alloc)(struct scsi_target *); ># 269 "include/scsi/scsi_host.h" > void (* target_destroy)(struct scsi_target *); ># 280 "include/scsi/scsi_host.h" > int (* scan_finished)(struct Scsi_Host *, unsigned long); ># 289 "include/scsi/scsi_host.h" > void (* scan_start)(struct Scsi_Host *); ># 302 "include/scsi/scsi_host.h" > int (* change_queue_depth)(struct scsi_device *, int, int); ># 315 "include/scsi/scsi_host.h" > int (* change_queue_type)(struct scsi_device *, int); ># 325 "include/scsi/scsi_host.h" > int (* bios_param)(struct scsi_device *, struct block_device *, > sector_t, int []); > > > > > > > > void (*unlock_native_capacity)(struct scsi_device *); ># 343 "include/scsi/scsi_host.h" > int (*proc_info)(struct Scsi_Host *, char *, char **, off_t, int, int); ># 356 "include/scsi/scsi_host.h" > enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *); ># 366 "include/scsi/scsi_host.h" > int (*host_reset)(struct Scsi_Host *shost, int reset_type); > > > > > > > > const char *proc_name; > > > > > > struct proc_dir_entry *proc_dir; > > > > > > > int can_queue; ># 396 "include/scsi/scsi_host.h" > int this_id; > > > > > > unsigned short sg_tablesize; > unsigned short sg_prot_tablesize; > > > > > unsigned short max_sectors; > > > > > > unsigned long dma_boundary; ># 433 "include/scsi/scsi_host.h" > short cmd_per_lun; > > > > > > unsigned char present; > > > > > unsigned supported_mode:2; > > > > > unsigned unchecked_isa_dma:1; ># 459 "include/scsi/scsi_host.h" > unsigned use_clustering:1; > > > > > unsigned emulated:1; > > > > > unsigned skip_settle_delay:1; > > > > > unsigned ordered_tag:1; > > > > > unsigned int max_host_blocked; ># 493 "include/scsi/scsi_host.h" > struct device_attribute **shost_attrs; > > > > > struct device_attribute **sdev_attrs; ># 507 "include/scsi/scsi_host.h" > struct list_head legacy_hosts; ># 516 "include/scsi/scsi_host.h" > u64 vendor_id; >}; ># 543 "include/scsi/scsi_host.h" >enum scsi_host_state { > SHOST_CREATED = 1, > SHOST_RUNNING, > SHOST_CANCEL, > SHOST_DEL, > SHOST_RECOVERY, > SHOST_CANCEL_RECOVERY, > SHOST_DEL_RECOVERY, >}; > >struct Scsi_Host { ># 562 "include/scsi/scsi_host.h" > struct list_head __devices; > struct list_head __targets; > > struct scsi_host_cmd_pool *cmd_pool; > spinlock_t free_list_lock; > struct list_head free_list; > struct list_head starved_list; > > spinlock_t default_lock; > spinlock_t *host_lock; > > struct mutex scan_mutex; > > struct list_head eh_cmd_q; > struct task_struct * ehandler; > struct completion * eh_action; > > wait_queue_head_t host_wait; > struct scsi_host_template *hostt; > struct scsi_transport_template *transportt; > > > > > > struct blk_queue_tag *bqt; > > > > > > > unsigned int host_busy; > unsigned int host_failed; > unsigned int host_eh_scheduled; > > unsigned int host_no; > int resetting; > unsigned long last_reset; > > > > > > > > unsigned int max_id; > unsigned int max_lun; > unsigned int max_channel; ># 619 "include/scsi/scsi_host.h" > unsigned int unique_id; ># 628 "include/scsi/scsi_host.h" > unsigned short max_cmd_len; > > int this_id; > int can_queue; > short cmd_per_lun; > short unsigned int sg_tablesize; > short unsigned int sg_prot_tablesize; > short unsigned int max_sectors; > unsigned long dma_boundary; > > > > > unsigned long cmd_serial_number; > > unsigned active_mode:2; > unsigned unchecked_isa_dma:1; > unsigned use_clustering:1; > unsigned use_blk_tcq:1; > > > > > > unsigned host_self_blocked:1; > > > > > > > unsigned reverse_ordering:1; > > > > > unsigned ordered_tag:1; > > > unsigned tmf_in_progress:1; > > > unsigned async_scan:1; > > > unsigned eh_noresume:1; > > > > > char work_q_name[20]; > struct workqueue_struct *work_q; > > > > > unsigned int host_blocked; > > > > > unsigned int max_host_blocked; > > > unsigned int prot_capabilities; > unsigned char prot_guard_type; > > > > > > struct request_queue *uspace_req_q; > > > unsigned long base; > unsigned long io_port; > unsigned char n_io_port; > unsigned char dma_channel; > unsigned int irq; > > > enum scsi_host_state shost_state; > > > struct device shost_gendev, shost_dev; ># 721 "include/scsi/scsi_host.h" > struct list_head sht_legacy_list; > > > > > > void *shost_data; > > > > > > struct device *dma_dev; > > > > > > > unsigned long hostdata[0] > __attribute__ ((aligned (sizeof(unsigned long)))); >}; > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void *shost_priv(struct Scsi_Host *shost) >{ > return (void *)shost->hostdata; >} > >int scsi_is_host_device(const struct device *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct Scsi_Host *dev_to_shost(struct device *dev) >{ > while (!scsi_is_host_device(dev)) { > if (!dev->parent) > return ((void *)0); > dev = dev->parent; > } > return ({ const typeof( ((struct Scsi_Host *)0)->shost_gendev ) *__mptr = (dev); (struct Scsi_Host *)( (char *)__mptr - __builtin_offsetof(struct Scsi_Host,shost_gendev) );}); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int scsi_host_in_recovery(struct Scsi_Host *shost) >{ > return shost->shost_state == SHOST_RECOVERY || > shost->shost_state == SHOST_CANCEL_RECOVERY || > shost->shost_state == SHOST_DEL_RECOVERY || > shost->tmf_in_progress; >} > >extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *); >extern void scsi_flush_work(struct Scsi_Host *); > >extern struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *, int); >extern int __attribute__((warn_unused_result)) scsi_add_host_with_dma(struct Scsi_Host *, > struct device *, > struct device *); >extern void scsi_scan_host(struct Scsi_Host *); >extern void scsi_rescan_device(struct device *); >extern void scsi_remove_host(struct Scsi_Host *); >extern struct Scsi_Host *scsi_host_get(struct Scsi_Host *); >extern void scsi_host_put(struct Scsi_Host *t); >extern struct Scsi_Host *scsi_host_lookup(unsigned short); >extern const char *scsi_host_state_name(enum scsi_host_state); >extern void scsi_cmd_get_serial(struct Scsi_Host *, struct scsi_cmnd *); > >extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) scsi_add_host(struct Scsi_Host *host, > struct device *dev) >{ > return scsi_add_host_with_dma(host, dev, dev); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct device *scsi_get_device(struct Scsi_Host *shost) >{ > return shost->shost_gendev.parent; >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int scsi_host_scan_allowed(struct Scsi_Host *shost) >{ > return shost->shost_state == SHOST_RUNNING || > shost->shost_state == SHOST_RECOVERY; >} > >extern void scsi_unblock_requests(struct Scsi_Host *); >extern void scsi_block_requests(struct Scsi_Host *); > >struct class_container; > >extern struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost, > void (*) (struct request_queue *)); > > > > > > > >extern void scsi_free_host_dev(struct scsi_device *); >extern struct scsi_device *scsi_get_host_dev(struct Scsi_Host *); ># 838 "include/scsi/scsi_host.h" >enum scsi_host_prot_capabilities { > SHOST_DIF_TYPE1_PROTECTION = 1 << 0, > SHOST_DIF_TYPE2_PROTECTION = 1 << 1, > SHOST_DIF_TYPE3_PROTECTION = 1 << 2, > > SHOST_DIX_TYPE0_PROTECTION = 1 << 3, > SHOST_DIX_TYPE1_PROTECTION = 1 << 4, > SHOST_DIX_TYPE2_PROTECTION = 1 << 5, > SHOST_DIX_TYPE3_PROTECTION = 1 << 6, >}; > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void scsi_host_set_prot(struct Scsi_Host *shost, unsigned int mask) >{ > shost->prot_capabilities = mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int scsi_host_get_prot(struct Scsi_Host *shost) >{ > return shost->prot_capabilities; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int scsi_host_prot_dma(struct Scsi_Host *shost) >{ > return shost->prot_capabilities >= SHOST_DIX_TYPE0_PROTECTION; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type) >{ > static unsigned char cap[] = { 0, > SHOST_DIF_TYPE1_PROTECTION, > SHOST_DIF_TYPE2_PROTECTION, > SHOST_DIF_TYPE3_PROTECTION }; > > if (target_type > SHOST_DIF_TYPE3_PROTECTION) > return 0; > > return shost->prot_capabilities & cap[target_type] ? target_type : 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type) >{ > > static unsigned char cap[] = { SHOST_DIX_TYPE0_PROTECTION, > SHOST_DIX_TYPE1_PROTECTION, > SHOST_DIX_TYPE2_PROTECTION, > SHOST_DIX_TYPE3_PROTECTION }; > > if (target_type > SHOST_DIX_TYPE3_PROTECTION) > return 0; > > return shost->prot_capabilities & cap[target_type]; > > return 0; >} ># 907 "include/scsi/scsi_host.h" >enum scsi_host_guard_type { > SHOST_DIX_GUARD_CRC = 1 << 0, > SHOST_DIX_GUARD_IP = 1 << 1, >}; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void scsi_host_set_guard(struct Scsi_Host *shost, unsigned char type) >{ > shost->prot_guard_type = type; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned char scsi_host_get_guard(struct Scsi_Host *shost) >{ > return shost->prot_guard_type; >} > > >extern struct Scsi_Host *scsi_register(struct scsi_host_template *, int); >extern void scsi_unregister(struct Scsi_Host *); >extern int scsi_host_set_state(struct Scsi_Host *, enum scsi_host_state); ># 32 "drivers/ata/pata_optidma.c" 2 ># 1 "include/linux/libata.h" 1 ># 31 "include/linux/libata.h" ># 1 "include/linux/interrupt.h" 1 ># 11 "include/linux/interrupt.h" ># 1 "include/linux/irqnr.h" 1 > > > ># 1 "include/uapi/linux/irqnr.h" 1 ># 5 "include/linux/irqnr.h" 2 ># 24 "include/linux/irqnr.h" >extern int nr_irqs; >extern struct irq_desc *irq_to_desc(unsigned int irq); >unsigned int irq_get_next_irq(unsigned int offset); ># 12 "include/linux/interrupt.h" 2 ># 84 "include/linux/interrupt.h" >enum { > IRQC_IS_HARDIRQ = 0, > IRQC_IS_NESTED, >}; > >typedef irqreturn_t (*irq_handler_t)(int, void *); ># 106 "include/linux/interrupt.h" >struct irqaction { > irq_handler_t handler; > void *dev_id; > void *percpu_dev_id; > struct irqaction *next; > irq_handler_t thread_fn; > struct task_struct *thread; > unsigned int irq; > unsigned int flags; > unsigned long thread_flags; > unsigned long thread_mask; > const char *name; > struct proc_dir_entry *dir; >} __attribute__((__aligned__(1 << (6)))); > >extern irqreturn_t no_action(int cpl, void *dev_id); > > >extern int __attribute__((warn_unused_result)) >request_threaded_irq(unsigned int irq, irq_handler_t handler, > irq_handler_t thread_fn, > unsigned long flags, const char *name, void *dev); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) >request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, > const char *name, void *dev) >{ > return request_threaded_irq(irq, handler, ((void *)0), flags, name, dev); >} > >extern int __attribute__((warn_unused_result)) >request_any_context_irq(unsigned int irq, irq_handler_t handler, > unsigned long flags, const char *name, void *dev_id); > >extern int __attribute__((warn_unused_result)) >request_percpu_irq(unsigned int irq, irq_handler_t handler, > const char *devname, void *percpu_dev_id); ># 178 "include/linux/interrupt.h" >extern void free_irq(unsigned int, void *); >extern void free_percpu_irq(unsigned int, void *); > >struct device; > >extern int __attribute__((warn_unused_result)) >devm_request_threaded_irq(struct device *dev, unsigned int irq, > irq_handler_t handler, irq_handler_t thread_fn, > unsigned long irqflags, const char *devname, > void *dev_id); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int __attribute__((warn_unused_result)) >devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, > unsigned long irqflags, const char *devname, void *dev_id) >{ > return devm_request_threaded_irq(dev, irq, handler, ((void *)0), irqflags, > devname, dev_id); >} > >extern void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id); ># 217 "include/linux/interrupt.h" >extern void disable_irq_nosync(unsigned int irq); >extern void disable_irq(unsigned int irq); >extern void disable_percpu_irq(unsigned int irq); >extern void enable_irq(unsigned int irq); >extern void enable_percpu_irq(unsigned int irq, unsigned int type); > > > >extern void suspend_device_irqs(void); >extern void resume_device_irqs(void); > >extern int check_wakeup_irqs(void); ># 240 "include/linux/interrupt.h" >extern cpumask_var_t irq_default_affinity; > >extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask); >extern int irq_can_set_affinity(unsigned int irq); >extern int irq_select_affinity(unsigned int irq); > >extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m); ># 260 "include/linux/interrupt.h" >struct irq_affinity_notify { > unsigned int irq; > struct kref kref; > struct work_struct work; > void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask); > void (*release)(struct kref *ref); >}; > >extern int >irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify); ># 304 "include/linux/interrupt.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void disable_irq_nosync_lockdep(unsigned int irq) >{ > disable_irq_nosync(irq); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags) >{ > disable_irq_nosync(irq); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void disable_irq_lockdep(unsigned int irq) >{ > disable_irq(irq); > > > >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void enable_irq_lockdep(unsigned int irq) >{ > > > > enable_irq(irq); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags) >{ > > > > enable_irq(irq); >} > > >extern int irq_set_irq_wake(unsigned int irq, unsigned int on); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int enable_irq_wake(unsigned int irq) >{ > return irq_set_irq_wake(irq, 1); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int disable_irq_wake(unsigned int irq) >{ > return irq_set_irq_wake(irq, 0); >} ># 412 "include/linux/interrupt.h" >enum >{ > HI_SOFTIRQ=0, > TIMER_SOFTIRQ, > NET_TX_SOFTIRQ, > NET_RX_SOFTIRQ, > BLOCK_SOFTIRQ, > BLOCK_IOPOLL_SOFTIRQ, > TASKLET_SOFTIRQ, > SCHED_SOFTIRQ, > HRTIMER_SOFTIRQ, > RCU_SOFTIRQ, > > NR_SOFTIRQS >}; > > > > > > >extern char *softirq_to_name[NR_SOFTIRQS]; > > > > > >struct softirq_action >{ > void (*action)(struct softirq_action *); >}; > > void do_softirq(void); > void __do_softirq(void); >extern void open_softirq(int nr, void (*action)(struct softirq_action *)); >extern void softirq_init(void); >extern void __raise_softirq_irqoff(unsigned int nr); > >extern void raise_softirq_irqoff(unsigned int nr); >extern void raise_softirq(unsigned int nr); ># 460 "include/linux/interrupt.h" >extern __attribute__((section(".data..percpu" ""))) __typeof__(struct list_head [NR_SOFTIRQS]) softirq_work_list; > >extern __attribute__((section(".data..percpu" ""))) __typeof__(struct task_struct *) ksoftirqd; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct task_struct *this_cpu_ksoftirqd(void) >{ > return ({ typeof((ksoftirqd)) pscr_ret__; do { const void *__vpp_verify = (typeof(&((ksoftirqd))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((ksoftirqd))) { case 1: pscr_ret__ = ({ typeof((ksoftirqd)) ret__; do { } while (0); ret__ = *({ do { const void *__vpp_verify = (typeof((&((ksoftirqd)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))); (typeof((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))) (__ptr + ((__my_cpu_offset()))); }); }); do { } while (0); ret__; });break; case 2: pscr_ret__ = ({ typeof((ksoftirqd)) ret__; do { } while (0); ret__ = *({ do { const void *__vpp_verify = (typeof((&((ksoftirqd)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))); (typeof((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))) (__ptr + ((__my_cpu_offset()))); }); }); do { } while (0); ret__; });break; case 4: pscr_ret__ = ({ typeof((ksoftirqd)) ret__; do { } while (0); ret__ = *({ do { const void *__vpp_verify = (typeof((&((ksoftirqd)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))); (typeof((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))) (__ptr + ((__my_cpu_offset()))); }); }); do { } while (0); ret__; });break; case 8: pscr_ret__ = ({ typeof((ksoftirqd)) ret__; do { } while (0); ret__ = *({ do { const void *__vpp_verify = (typeof((&((ksoftirqd)))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))); (typeof((typeof(*(&((ksoftirqd)))) *)(&((ksoftirqd))))) (__ptr + ((__my_cpu_offset()))); }); }); do { } while (0); ret__; });break; default: __bad_size_call_parameter();break; } pscr_ret__; }); >} > > > > >extern void send_remote_softirq(struct call_single_data *cp, int cpu, int softirq); > > > > >extern void __send_remote_softirq(struct call_single_data *cp, int cpu, > int this_cpu, int softirq); ># 500 "include/linux/interrupt.h" >struct tasklet_struct >{ > struct tasklet_struct *next; > unsigned long state; > atomic_t count; > void (*func)(unsigned long); > unsigned long data; >}; ># 516 "include/linux/interrupt.h" >enum >{ > TASKLET_STATE_SCHED, > TASKLET_STATE_RUN >}; > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int tasklet_trylock(struct tasklet_struct *t) >{ > return !_test_and_set_bit(TASKLET_STATE_RUN,&(t)->state); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_unlock(struct tasklet_struct *t) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > _clear_bit(TASKLET_STATE_RUN,&(t)->state); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_unlock_wait(struct tasklet_struct *t) >{ > while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { __asm__ __volatile__("": : :"memory"); } >} > > > > > > >extern void __tasklet_schedule(struct tasklet_struct *t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_schedule(struct tasklet_struct *t) >{ > if (!_test_and_set_bit(TASKLET_STATE_SCHED,&t->state)) > __tasklet_schedule(t); >} > >extern void __tasklet_hi_schedule(struct tasklet_struct *t); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_hi_schedule(struct tasklet_struct *t) >{ > if (!_test_and_set_bit(TASKLET_STATE_SCHED,&t->state)) > __tasklet_hi_schedule(t); >} > >extern void __tasklet_hi_schedule_first(struct tasklet_struct *t); > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_hi_schedule_first(struct tasklet_struct *t) >{ > if (!_test_and_set_bit(TASKLET_STATE_SCHED,&t->state)) > __tasklet_hi_schedule_first(t); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_disable_nosync(struct tasklet_struct *t) >{ > atomic_add(1, &t->count); > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_disable(struct tasklet_struct *t) >{ > tasklet_disable_nosync(t); > tasklet_unlock_wait(t); > __asm__ __volatile__ ("dmb" : : : "memory"); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_enable(struct tasklet_struct *t) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > atomic_sub(1, &t->count); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void tasklet_hi_enable(struct tasklet_struct *t) >{ > __asm__ __volatile__ ("dmb" : : : "memory"); > atomic_sub(1, &t->count); >} > >extern void tasklet_kill(struct tasklet_struct *t); >extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); >extern void tasklet_init(struct tasklet_struct *t, > void (*func)(unsigned long), unsigned long data); > >struct tasklet_hrtimer { > struct hrtimer timer; > struct tasklet_struct tasklet; > enum hrtimer_restart (*function)(struct hrtimer *); >}; > >extern void >tasklet_hrtimer_init(struct tasklet_hrtimer *ttimer, > enum hrtimer_restart (*function)(struct hrtimer *), > clockid_t which_clock, enum hrtimer_mode mode); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time, > const enum hrtimer_mode mode) >{ > return hrtimer_start(&ttimer->timer, time, mode); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) >void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer) >{ > hrtimer_cancel(&ttimer->timer); > tasklet_kill(&ttimer->tasklet); >} ># 672 "include/linux/interrupt.h" >extern unsigned long probe_irq_on(void); >extern int probe_irq_off(unsigned long); >extern unsigned int probe_irq_mask(unsigned long); > > > > >extern void init_irq_proc(void); > > > > > > >struct seq_file; >int show_interrupts(struct seq_file *p, void *v); >int arch_show_interrupts(struct seq_file *p, int prec); > >extern int early_irq_init(void); >extern int arch_probe_nr_irqs(void); >extern int arch_early_irq_init(void); ># 32 "include/linux/libata.h" 2 > > > ># 1 "include/linux/ata.h" 1 ># 41 "include/linux/ata.h" >enum { > > ATA_MAX_DEVICES = 2, > ATA_MAX_PRD = 256, > ATA_SECT_SIZE = 512, > ATA_MAX_SECTORS_128 = 128, > ATA_MAX_SECTORS = 256, > ATA_MAX_SECTORS_LBA48 = 65535, > ATA_MAX_SECTORS_TAPE = 65535, > > ATA_ID_WORDS = 256, > ATA_ID_CONFIG = 0, > ATA_ID_CYLS = 1, > ATA_ID_HEADS = 3, > ATA_ID_SECTORS = 6, > ATA_ID_SERNO = 10, > ATA_ID_BUF_SIZE = 21, > ATA_ID_FW_REV = 23, > ATA_ID_PROD = 27, > ATA_ID_MAX_MULTSECT = 47, > ATA_ID_DWORD_IO = 48, > ATA_ID_CAPABILITY = 49, > ATA_ID_OLD_PIO_MODES = 51, > ATA_ID_OLD_DMA_MODES = 52, > ATA_ID_FIELD_VALID = 53, > ATA_ID_CUR_CYLS = 54, > ATA_ID_CUR_HEADS = 55, > ATA_ID_CUR_SECTORS = 56, > ATA_ID_MULTSECT = 59, > ATA_ID_LBA_CAPACITY = 60, > ATA_ID_SWDMA_MODES = 62, > ATA_ID_MWDMA_MODES = 63, > ATA_ID_PIO_MODES = 64, > ATA_ID_EIDE_DMA_MIN = 65, > ATA_ID_EIDE_DMA_TIME = 66, > ATA_ID_EIDE_PIO = 67, > ATA_ID_EIDE_PIO_IORDY = 68, > ATA_ID_ADDITIONAL_SUPP = 69, > ATA_ID_QUEUE_DEPTH = 75, > ATA_ID_SATA_CAPABILITY = 76, > ATA_ID_SATA_CAPABILITY_2 = 77, > ATA_ID_FEATURE_SUPP = 78, > ATA_ID_MAJOR_VER = 80, > ATA_ID_COMMAND_SET_1 = 82, > ATA_ID_COMMAND_SET_2 = 83, > ATA_ID_CFSSE = 84, > ATA_ID_CFS_ENABLE_1 = 85, > ATA_ID_CFS_ENABLE_2 = 86, > ATA_ID_CSF_DEFAULT = 87, > ATA_ID_UDMA_MODES = 88, > ATA_ID_HW_CONFIG = 93, > ATA_ID_SPG = 98, > ATA_ID_LBA_CAPACITY_2 = 100, > ATA_ID_SECTOR_SIZE = 106, > ATA_ID_WWN = 108, > ATA_ID_LOGICAL_SECTOR_SIZE = 117, > ATA_ID_LAST_LUN = 126, > ATA_ID_DLF = 128, > ATA_ID_CSFO = 129, > ATA_ID_CFA_POWER = 160, > ATA_ID_CFA_KEY_MGMT = 162, > ATA_ID_CFA_MODES = 163, > ATA_ID_DATA_SET_MGMT = 169, > ATA_ID_ROT_SPEED = 217, > ATA_ID_PIO4 = (1 << 1), > > ATA_ID_SERNO_LEN = 20, > ATA_ID_FW_REV_LEN = 8, > ATA_ID_PROD_LEN = 40, > ATA_ID_WWN_LEN = 8, > > ATA_PCI_CTL_OFS = 2, > > ATA_PIO0 = (1 << 0), > ATA_PIO1 = ATA_PIO0 | (1 << 1), > ATA_PIO2 = ATA_PIO1 | (1 << 2), > ATA_PIO3 = ATA_PIO2 | (1 << 3), > ATA_PIO4 = ATA_PIO3 | (1 << 4), > ATA_PIO5 = ATA_PIO4 | (1 << 5), > ATA_PIO6 = ATA_PIO5 | (1 << 6), > > ATA_PIO4_ONLY = (1 << 4), > > ATA_SWDMA0 = (1 << 0), > ATA_SWDMA1 = ATA_SWDMA0 | (1 << 1), > ATA_SWDMA2 = ATA_SWDMA1 | (1 << 2), > > ATA_SWDMA2_ONLY = (1 << 2), > > ATA_MWDMA0 = (1 << 0), > ATA_MWDMA1 = ATA_MWDMA0 | (1 << 1), > ATA_MWDMA2 = ATA_MWDMA1 | (1 << 2), > ATA_MWDMA3 = ATA_MWDMA2 | (1 << 3), > ATA_MWDMA4 = ATA_MWDMA3 | (1 << 4), > > ATA_MWDMA12_ONLY = (1 << 1) | (1 << 2), > ATA_MWDMA2_ONLY = (1 << 2), > > ATA_UDMA0 = (1 << 0), > ATA_UDMA1 = ATA_UDMA0 | (1 << 1), > ATA_UDMA2 = ATA_UDMA1 | (1 << 2), > ATA_UDMA3 = ATA_UDMA2 | (1 << 3), > ATA_UDMA4 = ATA_UDMA3 | (1 << 4), > ATA_UDMA5 = ATA_UDMA4 | (1 << 5), > ATA_UDMA6 = ATA_UDMA5 | (1 << 6), > ATA_UDMA7 = ATA_UDMA6 | (1 << 7), > > > ATA_UDMA24_ONLY = (1 << 2) | (1 << 4), > > ATA_UDMA_MASK_40C = ATA_UDMA2, > > > ATA_PRD_SZ = 8, > ATA_PRD_TBL_SZ = (ATA_MAX_PRD * ATA_PRD_SZ), > ATA_PRD_EOT = (1 << 31), > > ATA_DMA_TABLE_OFS = 4, > ATA_DMA_STATUS = 2, > ATA_DMA_CMD = 0, > ATA_DMA_WR = (1 << 3), > ATA_DMA_START = (1 << 0), > ATA_DMA_INTR = (1 << 2), > ATA_DMA_ERR = (1 << 1), > ATA_DMA_ACTIVE = (1 << 0), > > > ATA_HOB = (1 << 7), > ATA_NIEN = (1 << 1), > ATA_LBA = (1 << 6), > ATA_DEV1 = (1 << 4), > ATA_DEVICE_OBS = (1 << 7) | (1 << 5), > ATA_DEVCTL_OBS = (1 << 3), > ATA_BUSY = (1 << 7), > ATA_DRDY = (1 << 6), > ATA_DF = (1 << 5), > ATA_DSC = (1 << 4), > ATA_DRQ = (1 << 3), > ATA_CORR = (1 << 2), > ATA_IDX = (1 << 1), > ATA_ERR = (1 << 0), > ATA_SRST = (1 << 2), > ATA_ICRC = (1 << 7), > ATA_BBK = ATA_ICRC, > ATA_UNC = (1 << 6), > ATA_MC = (1 << 5), > ATA_IDNF = (1 << 4), > ATA_MCR = (1 << 3), > ATA_ABORTED = (1 << 2), > ATA_TRK0NF = (1 << 1), > ATA_AMNF = (1 << 0), > ATAPI_LFS = 0xF0, > ATAPI_EOM = ATA_TRK0NF, > ATAPI_ILI = ATA_AMNF, > ATAPI_IO = (1 << 1), > ATAPI_COD = (1 << 0), > > > ATA_REG_DATA = 0x00, > ATA_REG_ERR = 0x01, > ATA_REG_NSECT = 0x02, > ATA_REG_LBAL = 0x03, > ATA_REG_LBAM = 0x04, > ATA_REG_LBAH = 0x05, > ATA_REG_DEVICE = 0x06, > ATA_REG_STATUS = 0x07, > > ATA_REG_FEATURE = ATA_REG_ERR, > ATA_REG_CMD = ATA_REG_STATUS, > ATA_REG_BYTEL = ATA_REG_LBAM, > ATA_REG_BYTEH = ATA_REG_LBAH, > ATA_REG_DEVSEL = ATA_REG_DEVICE, > ATA_REG_IRQ = ATA_REG_NSECT, > > > ATA_CMD_DEV_RESET = 0x08, > ATA_CMD_CHK_POWER = 0xE5, > ATA_CMD_STANDBY = 0xE2, > ATA_CMD_IDLE = 0xE3, > ATA_CMD_EDD = 0x90, > ATA_CMD_DOWNLOAD_MICRO = 0x92, > ATA_CMD_NOP = 0x00, > ATA_CMD_FLUSH = 0xE7, > ATA_CMD_FLUSH_EXT = 0xEA, > ATA_CMD_ID_ATA = 0xEC, > ATA_CMD_ID_ATAPI = 0xA1, > ATA_CMD_SERVICE = 0xA2, > ATA_CMD_READ = 0xC8, > ATA_CMD_READ_EXT = 0x25, > ATA_CMD_READ_QUEUED = 0x26, > ATA_CMD_READ_STREAM_EXT = 0x2B, > ATA_CMD_READ_STREAM_DMA_EXT = 0x2A, > ATA_CMD_WRITE = 0xCA, > ATA_CMD_WRITE_EXT = 0x35, > ATA_CMD_WRITE_QUEUED = 0x36, > ATA_CMD_WRITE_STREAM_EXT = 0x3B, > ATA_CMD_WRITE_STREAM_DMA_EXT = 0x3A, > ATA_CMD_WRITE_FUA_EXT = 0x3D, > ATA_CMD_WRITE_QUEUED_FUA_EXT = 0x3E, > ATA_CMD_FPDMA_READ = 0x60, > ATA_CMD_FPDMA_WRITE = 0x61, > ATA_CMD_PIO_READ = 0x20, > ATA_CMD_PIO_READ_EXT = 0x24, > ATA_CMD_PIO_WRITE = 0x30, > ATA_CMD_PIO_WRITE_EXT = 0x34, > ATA_CMD_READ_MULTI = 0xC4, > ATA_CMD_READ_MULTI_EXT = 0x29, > ATA_CMD_WRITE_MULTI = 0xC5, > ATA_CMD_WRITE_MULTI_EXT = 0x39, > ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE, > ATA_CMD_SET_FEATURES = 0xEF, > ATA_CMD_SET_MULTI = 0xC6, > ATA_CMD_PACKET = 0xA0, > ATA_CMD_VERIFY = 0x40, > ATA_CMD_VERIFY_EXT = 0x42, > ATA_CMD_WRITE_UNCORR_EXT = 0x45, > ATA_CMD_STANDBYNOW1 = 0xE0, > ATA_CMD_IDLEIMMEDIATE = 0xE1, > ATA_CMD_SLEEP = 0xE6, > ATA_CMD_INIT_DEV_PARAMS = 0x91, > ATA_CMD_READ_NATIVE_MAX = 0xF8, > ATA_CMD_READ_NATIVE_MAX_EXT = 0x27, > ATA_CMD_SET_MAX = 0xF9, > ATA_CMD_SET_MAX_EXT = 0x37, > ATA_CMD_READ_LOG_EXT = 0x2F, > ATA_CMD_WRITE_LOG_EXT = 0x3F, > ATA_CMD_READ_LOG_DMA_EXT = 0x47, > ATA_CMD_WRITE_LOG_DMA_EXT = 0x57, > ATA_CMD_TRUSTED_RCV = 0x5C, > ATA_CMD_TRUSTED_RCV_DMA = 0x5D, > ATA_CMD_TRUSTED_SND = 0x5E, > ATA_CMD_TRUSTED_SND_DMA = 0x5F, > ATA_CMD_PMP_READ = 0xE4, > ATA_CMD_PMP_WRITE = 0xE8, > ATA_CMD_CONF_OVERLAY = 0xB1, > ATA_CMD_SEC_SET_PASS = 0xF1, > ATA_CMD_SEC_UNLOCK = 0xF2, > ATA_CMD_SEC_ERASE_PREP = 0xF3, > ATA_CMD_SEC_ERASE_UNIT = 0xF4, > ATA_CMD_SEC_FREEZE_LOCK = 0xF5, > ATA_CMD_SEC_DISABLE_PASS = 0xF6, > ATA_CMD_CONFIG_STREAM = 0x51, > ATA_CMD_SMART = 0xB0, > ATA_CMD_MEDIA_LOCK = 0xDE, > ATA_CMD_MEDIA_UNLOCK = 0xDF, > ATA_CMD_DSM = 0x06, > ATA_CMD_CHK_MED_CRD_TYP = 0xD1, > ATA_CMD_CFA_REQ_EXT_ERR = 0x03, > ATA_CMD_CFA_WRITE_NE = 0x38, > ATA_CMD_CFA_TRANS_SECT = 0x87, > ATA_CMD_CFA_ERASE = 0xC0, > ATA_CMD_CFA_WRITE_MULT_NE = 0xCD, > > ATA_CMD_RESTORE = 0x10, > > > ATA_LOG_SATA_NCQ = 0x10, > ATA_LOG_SATA_ID_DEV_DATA = 0x30, > ATA_LOG_SATA_SETTINGS = 0x08, > ATA_LOG_DEVSLP_OFFSET = 0x30, > ATA_LOG_DEVSLP_SIZE = 0x08, > ATA_LOG_DEVSLP_MDAT = 0x00, > ATA_LOG_DEVSLP_MDAT_MASK = 0x1F, > ATA_LOG_DEVSLP_DETO = 0x01, > ATA_LOG_DEVSLP_VALID = 0x07, > ATA_LOG_DEVSLP_VALID_MASK = 0x80, > > > ATA_CMD_READ_LONG = 0x22, > ATA_CMD_READ_LONG_ONCE = 0x23, > ATA_CMD_WRITE_LONG = 0x32, > ATA_CMD_WRITE_LONG_ONCE = 0x33, > > > SETFEATURES_XFER = 0x03, > XFER_UDMA_7 = 0x47, > XFER_UDMA_6 = 0x46, > XFER_UDMA_5 = 0x45, > XFER_UDMA_4 = 0x44, > XFER_UDMA_3 = 0x43, > XFER_UDMA_2 = 0x42, > XFER_UDMA_1 = 0x41, > XFER_UDMA_0 = 0x40, > XFER_MW_DMA_4 = 0x24, > XFER_MW_DMA_3 = 0x23, > XFER_MW_DMA_2 = 0x22, > XFER_MW_DMA_1 = 0x21, > XFER_MW_DMA_0 = 0x20, > XFER_SW_DMA_2 = 0x12, > XFER_SW_DMA_1 = 0x11, > XFER_SW_DMA_0 = 0x10, > XFER_PIO_6 = 0x0E, > XFER_PIO_5 = 0x0D, > XFER_PIO_4 = 0x0C, > XFER_PIO_3 = 0x0B, > XFER_PIO_2 = 0x0A, > XFER_PIO_1 = 0x09, > XFER_PIO_0 = 0x08, > XFER_PIO_SLOW = 0x00, > > SETFEATURES_WC_ON = 0x02, > SETFEATURES_WC_OFF = 0x82, > > > SETFEATURES_AAM_ON = 0x42, > SETFEATURES_AAM_OFF = 0xC2, > > SETFEATURES_SPINUP = 0x07, > > SETFEATURES_SATA_ENABLE = 0x10, > SETFEATURES_SATA_DISABLE = 0x90, > > > SATA_FPDMA_OFFSET = 0x01, > SATA_FPDMA_AA = 0x02, > SATA_DIPM = 0x03, > SATA_FPDMA_IN_ORDER = 0x04, > SATA_AN = 0x05, > SATA_SSP = 0x06, > SATA_DEVSLP = 0x09, > > > ATA_SET_MAX_ADDR = 0x00, > ATA_SET_MAX_PASSWD = 0x01, > ATA_SET_MAX_LOCK = 0x02, > ATA_SET_MAX_UNLOCK = 0x03, > ATA_SET_MAX_FREEZE_LOCK = 0x04, > > > ATA_DCO_RESTORE = 0xC0, > ATA_DCO_FREEZE_LOCK = 0xC1, > ATA_DCO_IDENTIFY = 0xC2, > ATA_DCO_SET = 0xC3, > > > ATA_SMART_ENABLE = 0xD8, > ATA_SMART_READ_VALUES = 0xD0, > ATA_SMART_READ_THRESHOLDS = 0xD1, > > > ATA_DSM_TRIM = 0x01, > > > ATA_SMART_LBAM_PASS = 0x4F, > ATA_SMART_LBAH_PASS = 0xC2, > > > ATAPI_PKT_DMA = (1 << 0), > ATAPI_DMADIR = (1 << 2), > > ATAPI_CDB_LEN = 16, > > > SATA_PMP_MAX_PORTS = 15, > SATA_PMP_CTRL_PORT = 15, > > SATA_PMP_GSCR_DWORDS = 128, > SATA_PMP_GSCR_PROD_ID = 0, > SATA_PMP_GSCR_REV = 1, > SATA_PMP_GSCR_PORT_INFO = 2, > SATA_PMP_GSCR_ERROR = 32, > SATA_PMP_GSCR_ERROR_EN = 33, > SATA_PMP_GSCR_FEAT = 64, > SATA_PMP_GSCR_FEAT_EN = 96, > > SATA_PMP_PSCR_STATUS = 0, > SATA_PMP_PSCR_ERROR = 1, > SATA_PMP_PSCR_CONTROL = 2, > > SATA_PMP_FEAT_BIST = (1 << 0), > SATA_PMP_FEAT_PMREQ = (1 << 1), > SATA_PMP_FEAT_DYNSSC = (1 << 2), > SATA_PMP_FEAT_NOTIFY = (1 << 3), > > > ATA_CBL_NONE = 0, > ATA_CBL_PATA40 = 1, > ATA_CBL_PATA80 = 2, > ATA_CBL_PATA40_SHORT = 3, > ATA_CBL_PATA_UNK = 4, > ATA_CBL_PATA_IGN = 5, > ATA_CBL_SATA = 6, > > > SCR_STATUS = 0, > SCR_ERROR = 1, > SCR_CONTROL = 2, > SCR_ACTIVE = 3, > SCR_NOTIFICATION = 4, > > > SERR_DATA_RECOVERED = (1 << 0), > SERR_COMM_RECOVERED = (1 << 1), > SERR_DATA = (1 << 8), > SERR_PERSISTENT = (1 << 9), > SERR_PROTOCOL = (1 << 10), > SERR_INTERNAL = (1 << 11), > SERR_PHYRDY_CHG = (1 << 16), > SERR_PHY_INT_ERR = (1 << 17), > SERR_COMM_WAKE = (1 << 18), > SERR_10B_8B_ERR = (1 << 19), > SERR_DISPARITY = (1 << 20), > SERR_CRC = (1 << 21), > SERR_HANDSHAKE = (1 << 22), > SERR_LINK_SEQ_ERR = (1 << 23), > SERR_TRANS_ST_ERROR = (1 << 24), > SERR_UNRECOG_FIS = (1 << 25), > SERR_DEV_XCHG = (1 << 26), > > > ATA_TFLAG_LBA48 = (1 << 0), > ATA_TFLAG_ISADDR = (1 << 1), > ATA_TFLAG_DEVICE = (1 << 2), > ATA_TFLAG_WRITE = (1 << 3), > ATA_TFLAG_LBA = (1 << 4), > ATA_TFLAG_FUA = (1 << 5), > ATA_TFLAG_POLLING = (1 << 6), > > > ATA_PROT_FLAG_PIO = (1 << 0), > ATA_PROT_FLAG_DMA = (1 << 1), > ATA_PROT_FLAG_DATA = ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA, > ATA_PROT_FLAG_NCQ = (1 << 2), > ATA_PROT_FLAG_ATAPI = (1 << 3), >}; > >enum ata_tf_protocols { > > ATA_PROT_UNKNOWN, > ATA_PROT_NODATA, > ATA_PROT_PIO, > ATA_PROT_DMA, > ATA_PROT_NCQ, > ATAPI_PROT_NODATA, > ATAPI_PROT_PIO, > ATAPI_PROT_DMA, >}; > >enum ata_ioctls { > ATA_IOC_GET_IO32 = 0x309, > ATA_IOC_SET_IO32 = 0x324, >}; > > > >struct ata_bmdma_prd { > __le32 addr; > __le32 flags_len; >}; > >struct ata_taskfile { > unsigned long flags; > u8 protocol; > > u8 ctl; > > u8 hob_feature; > u8 hob_nsect; > u8 hob_lbal; > u8 hob_lbam; > u8 hob_lbah; > > u8 feature; > u8 nsect; > u8 lbal; > u8 lbam; > u8 lbah; > > u8 device; > > u8 command; >}; > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_prot_flags(u8 prot) >{ > switch (prot) { > case ATA_PROT_NODATA: > return 0; > case ATA_PROT_PIO: > return ATA_PROT_FLAG_PIO; > case ATA_PROT_DMA: > return ATA_PROT_FLAG_DMA; > case ATA_PROT_NCQ: > return ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ; > case ATAPI_PROT_NODATA: > return ATA_PROT_FLAG_ATAPI; > case ATAPI_PROT_PIO: > return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO; > case ATAPI_PROT_DMA: > return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA; > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_atapi(u8 prot) >{ > return ata_prot_flags(prot) & ATA_PROT_FLAG_ATAPI; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_nodata(u8 prot) >{ > return !(ata_prot_flags(prot) & ATA_PROT_FLAG_DATA); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_pio(u8 prot) >{ > return ata_prot_flags(prot) & ATA_PROT_FLAG_PIO; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_dma(u8 prot) >{ > return ata_prot_flags(prot) & ATA_PROT_FLAG_DMA; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_ncq(u8 prot) >{ > return ata_prot_flags(prot) & ATA_PROT_FLAG_NCQ; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_data(u8 prot) >{ > return ata_prot_flags(prot) & ATA_PROT_FLAG_DATA; >} ># 599 "include/linux/ata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_hipm(const u16 *id) >{ > u16 val = id[ATA_ID_SATA_CAPABILITY]; > > if (val == 0 || val == 0xffff) > return false; > > return val & (1 << 9); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_dipm(const u16 *id) >{ > u16 val = id[ATA_ID_FEATURE_SUPP]; > > if (val == 0 || val == 0xffff) > return false; > > return val & (1 << 3); >} > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_fua(const u16 *id) >{ > if ((id[ATA_ID_CFSSE] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_CFSSE] & (1 << 6); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_flush(const u16 *id) >{ > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_COMMAND_SET_2] & (1 << 12); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_flush_enabled(const u16 *id) >{ > if (ata_id_has_flush(id) == 0) > return false; > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_CFS_ENABLE_2] & (1 << 12); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_flush_ext(const u16 *id) >{ > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_COMMAND_SET_2] & (1 << 13); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_flush_ext_enabled(const u16 *id) >{ > if (ata_id_has_flush_ext(id) == 0) > return false; > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > > > > > return (id[ATA_ID_CFS_ENABLE_2] & 0x2400) == 0x2400; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 ata_id_logical_sector_size(const u16 *id) >{ > > > > > if ((id[ATA_ID_SECTOR_SIZE] & 0xd000) == 0x5000) > return (((id[ATA_ID_LOGICAL_SECTOR_SIZE+1] << 16) > + id[ATA_ID_LOGICAL_SECTOR_SIZE]) * sizeof(u16)) ; > return ATA_SECT_SIZE; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 ata_id_log2_per_physical_sector(const u16 *id) >{ > > > > > if ((id[ATA_ID_SECTOR_SIZE] & 0xe000) == 0x6000) > return (id[ATA_ID_SECTOR_SIZE] & 0xf); > return 0; >} ># 695 "include/linux/ata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u16 ata_id_logical_sector_offset(const u16 *id, > u8 log2_per_phys) >{ > u16 word_209 = id[209]; > > if ((log2_per_phys > 1) && (word_209 & 0xc000) == 0x4000) { > u16 first = word_209 & 0x3fff; > if (first > 0) > return (1 << log2_per_phys) - first; > } > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_lba48(const u16 *id) >{ > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > if (!( ((u64) (id)[(ATA_ID_LBA_CAPACITY_2) + 3] << 48) | ((u64) (id)[(ATA_ID_LBA_CAPACITY_2) + 2] << 32) | ((u64) (id)[(ATA_ID_LBA_CAPACITY_2) + 1] << 16) | ((u64) (id)[(ATA_ID_LBA_CAPACITY_2) + 0]) )) > return false; > return id[ATA_ID_COMMAND_SET_2] & (1 << 10); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_lba48_enabled(const u16 *id) >{ > if (ata_id_has_lba48(id) == 0) > return false; > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_CFS_ENABLE_2] & (1 << 10); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_hpa_enabled(const u16 *id) >{ > > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > > if ((id[ATA_ID_CFS_ENABLE_1] & (1 << 10)) == 0) > return false; > return id[ATA_ID_COMMAND_SET_1] & (1 << 10); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_wcache(const u16 *id) >{ > > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_COMMAND_SET_1] & (1 << 5); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_pm(const u16 *id) >{ > if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_COMMAND_SET_1] & (1 << 3); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_rahead_enabled(const u16 *id) >{ > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_CFS_ENABLE_1] & (1 << 6); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_wcache_enabled(const u16 *id) >{ > if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000) > return false; > return id[ATA_ID_CFS_ENABLE_1] & (1 << 5); >} ># 782 "include/linux/ata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_id_major_version(const u16 *id) >{ > unsigned int mver; > > if (id[ATA_ID_MAJOR_VER] == 0xFFFF) > return 0; > > for (mver = 14; mver >= 1; mver--) > if (id[ATA_ID_MAJOR_VER] & (1 << mver)) > break; > return mver; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_is_sata(const u16 *id) >{ > > > > > > > if (id[ATA_ID_HW_CONFIG] == 0 && (short)id[ATA_ID_MAJOR_VER] >= 0x0020) > return true; > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_tpm(const u16 *id) >{ > > if (ata_id_major_version(id) < 8) > return false; > if ((id[48] & 0xC000) != 0x4000) > return false; > return id[48] & (1 << 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_dword_io(const u16 *id) >{ > > if (ata_id_major_version(id) > 7) > return false; > return id[ATA_ID_DWORD_IO] & (1 << 0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_unload(const u16 *id) >{ > if (ata_id_major_version(id) >= 7 && > (id[ATA_ID_CFSSE] & 0xC000) == 0x4000 && > id[ATA_ID_CFSSE] & (1 << 13)) > return true; > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_wwn(const u16 *id) >{ > return (id[ATA_ID_CSF_DEFAULT] & 0xC100) == 0x4100; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_id_form_factor(const u16 *id) >{ > u16 val = id[168]; > > if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff) > return 0; > > val &= 0xf; > > if (val > 5) > return 0; > > return val; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_id_rotation_rate(const u16 *id) >{ > u16 val = id[217]; > > if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff) > return 0; > > if (val > 1 && val < 0x401) > return 0; > > return val; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_trim(const u16 *id) >{ > if (ata_id_major_version(id) >= 7 && > (id[ATA_ID_DATA_SET_MGMT] & 1)) > return true; > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_has_zero_after_trim(const u16 *id) >{ > > if (ata_id_has_trim(id) && > (id[ATA_ID_ADDITIONAL_SUPP] & 0x4020) == 0x4020) > return true; > > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_current_chs_valid(const u16 *id) >{ > > > > return (id[ATA_ID_FIELD_VALID] & 1) && > id[ATA_ID_CUR_CYLS] && > id[ATA_ID_CUR_HEADS] && > id[ATA_ID_CUR_HEADS] <= 16 && > id[ATA_ID_CUR_SECTORS]; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_is_cfa(const u16 *id) >{ > if ((id[ATA_ID_CONFIG] == 0x848A) || > (id[ATA_ID_CONFIG] == 0x844A)) > return true; ># 911 "include/linux/ata.h" > return (id[ATA_ID_COMMAND_SET_2] & 0xC004) == 0x4004; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_is_ssd(const u16 *id) >{ > return id[ATA_ID_ROT_SPEED] == 0x01; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_pio_need_iordy(const u16 *id, const u8 pio) >{ > > if (pio > 4 && ata_id_is_cfa(id)) > return false; > > if (pio > 2) > return true; > > return ((id)[ATA_ID_CAPABILITY] & (1 << 11)); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_drive_40wire(const u16 *dev_id) >{ > if (ata_id_is_sata(dev_id)) > return false; > if ((dev_id[ATA_ID_HW_CONFIG] & 0xE000) == 0x6000) > return false; > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_drive_40wire_relaxed(const u16 *dev_id) >{ > if ((dev_id[ATA_ID_HW_CONFIG] & 0x2000) == 0x2000) > return false; > return true; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int atapi_cdb_len(const u16 *dev_id) >{ > u16 tmp = dev_id[ATA_ID_CONFIG] & 0x3; > switch (tmp) { > case 0: return 12; > case 1: return 16; > default: return -1; > } >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool atapi_command_packet_set(const u16 *dev_id) >{ > return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool atapi_id_dmadir(const u16 *dev_id) >{ > return ata_id_major_version(dev_id) >= 7 && (dev_id[62] & 0x8000); >} ># 975 "include/linux/ata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_id_is_lba_capacity_ok(u16 *id) >{ > unsigned long lba_sects, chs_sects, head, tail; > > > if (id[ATA_ID_CYLS] == 0) > return true; > > lba_sects = (((u32) (id)[(ATA_ID_LBA_CAPACITY) + 1] << 16) | ((u32) (id)[(ATA_ID_LBA_CAPACITY)])); > > > > > > > > if ((id[ATA_ID_CYLS] == 16383 || > (id[ATA_ID_CYLS] == 4092 && id[ATA_ID_CUR_CYLS] == 16383)) && > id[ATA_ID_SECTORS] == 63 && > (id[ATA_ID_HEADS] == 15 || id[ATA_ID_HEADS] == 16) && > (lba_sects >= 16383 * 63 * id[ATA_ID_HEADS])) > return true; > > chs_sects = id[ATA_ID_CYLS] * id[ATA_ID_HEADS] * id[ATA_ID_SECTORS]; > > > if (lba_sects - chs_sects < chs_sects/10) > return true; > > > head = (lba_sects >> 16) & 0xffff; > tail = lba_sects & 0xffff; > lba_sects = head | (tail << 16); > > if (lba_sects - chs_sects < chs_sects/10) { > *(__le32 *)&id[ATA_ID_LBA_CAPACITY] = (( __le32)(__u32)(lba_sects)); > return true; > } > > return false; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ata_id_to_hd_driveid(u16 *id) >{ ># 1035 "include/linux/ata.h" >} > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned ata_set_lba_range_entries(void *_buffer, > unsigned buf_size, u64 sector, unsigned long count) >{ > __le64 *buffer = _buffer; > unsigned i = 0, used_bytes; > > while (i < buf_size / 8 ) { > u64 entry = sector | > ((u64)(count > 0xffff ? 0xffff : count) << 48); > buffer[i++] = (( __le64)(__u64)(entry)); > if (count <= 0xffff) > break; > count -= 0xffff; > sector += 0xffff; > } > > used_bytes = ((((i * 8)) + ((typeof((i * 8)))((512)) - 1)) & ~((typeof((i * 8)))((512)) - 1)); > ({ void *__p = (buffer + i); size_t __n = used_bytes - i * 8; if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > return used_bytes; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int is_multi_taskfile(struct ata_taskfile *tf) >{ > return (tf->command == ATA_CMD_READ_MULTI) || > (tf->command == ATA_CMD_WRITE_MULTI) || > (tf->command == ATA_CMD_READ_MULTI_EXT) || > (tf->command == ATA_CMD_WRITE_MULTI_EXT) || > (tf->command == ATA_CMD_WRITE_MULTI_FUA_EXT); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool ata_ok(u8 status) >{ > return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR)) > == ATA_DRDY); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool lba_28_ok(u64 block, u32 n_block) >{ > > return ((block + n_block) < ((1 << 28) - 1)) && (n_block <= 256); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool lba_48_ok(u64 block, u32 n_block) >{ > > return ((block + n_block - 1) < ((u64)1 << 48)) && (n_block <= 65536); >} ># 36 "include/linux/libata.h" 2 > > ># 1 "include/linux/acpi.h" 1 ># 416 "include/linux/acpi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void acpi_early_init(void) { } > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int early_acpi_boot_init(void) >{ > return 0; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_boot_init(void) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void acpi_boot_table_init(void) >{ > return; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_mps_check(void) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_check_resource_conflict(struct resource *res) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_check_region(resource_size_t start, resource_size_t n, > const char *name) >{ > return 0; >} > >struct acpi_table_header; >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_table_parse(char *id, > int (*handler)(struct acpi_table_header *)) >{ > return -1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_nvs_register(__u64 start, __u64 size) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_nvs_for_each_region(int (*func)(__u64, __u64, void *), > void *data) >{ > return 0; >} > >struct acpi_device_id; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const struct acpi_device_id *acpi_match_device( > const struct acpi_device_id *ids, const struct device *dev) >{ > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool acpi_driver_match_device(struct device *dev, > const struct device_driver *drv) >{ > return false; >} ># 508 "include/linux/acpi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_dev_runtime_suspend(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_dev_runtime_resume(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_subsys_runtime_suspend(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_subsys_runtime_resume(struct device *dev) { return 0; } ># 521 "include/linux/acpi.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_dev_suspend_late(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_dev_resume_early(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_subsys_prepare(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_subsys_suspend_late(struct device *dev) { return 0; } >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_subsys_resume_early(struct device *dev) { return 0; } > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int acpi_dev_pm_attach(struct device *dev, bool power_on) >{ > return -19; >} >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void acpi_dev_pm_detach(struct device *dev, bool power_off) {} > > > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) __attribute__((format(printf, 3, 4))) void >acpi_handle_printk(const char *level, void *handle, const char *fmt, ...) {} ># 39 "include/linux/libata.h" 2 ># 1 "include/linux/cdrom.h" 1 ># 15 "include/linux/cdrom.h" ># 1 "include/uapi/linux/cdrom.h" 1 ># 154 "include/uapi/linux/cdrom.h" >struct cdrom_msf0 >{ > __u8 minute; > __u8 second; > __u8 frame; >}; > > >union cdrom_addr >{ > struct cdrom_msf0 msf; > int lba; >}; > > >struct cdrom_msf >{ > __u8 cdmsf_min0; > __u8 cdmsf_sec0; > __u8 cdmsf_frame0; > __u8 cdmsf_min1; > __u8 cdmsf_sec1; > __u8 cdmsf_frame1; >}; > > >struct cdrom_ti >{ > __u8 cdti_trk0; > __u8 cdti_ind0; > __u8 cdti_trk1; > __u8 cdti_ind1; >}; > > >struct cdrom_tochdr >{ > __u8 cdth_trk0; > __u8 cdth_trk1; >}; > > >struct cdrom_volctrl >{ > __u8 channel0; > __u8 channel1; > __u8 channel2; > __u8 channel3; >}; > > >struct cdrom_subchnl >{ > __u8 cdsc_format; > __u8 cdsc_audiostatus; > __u8 cdsc_adr: 4; > __u8 cdsc_ctrl: 4; > __u8 cdsc_trk; > __u8 cdsc_ind; > union cdrom_addr cdsc_absaddr; > union cdrom_addr cdsc_reladdr; >}; > > > >struct cdrom_tocentry >{ > __u8 cdte_track; > __u8 cdte_adr :4; > __u8 cdte_ctrl :4; > __u8 cdte_format; > union cdrom_addr cdte_addr; > __u8 cdte_datamode; >}; > > >struct cdrom_read >{ > int cdread_lba; > char *cdread_bufaddr; > int cdread_buflen; >}; > > >struct cdrom_read_audio >{ > union cdrom_addr addr; > __u8 addr_format; > int nframes; > __u8 *buf; >}; > > >struct cdrom_multisession >{ > union cdrom_addr addr; > > > __u8 xa_flag; > __u8 addr_format; >}; > > > > > > >struct cdrom_mcn >{ > __u8 medium_catalog_number[14]; >}; > > >struct cdrom_blk >{ > unsigned from; > unsigned short len; >}; ># 281 "include/uapi/linux/cdrom.h" >struct cdrom_generic_command >{ > unsigned char cmd[12]; > unsigned char *buffer; > unsigned int buflen; > int stat; > struct request_sense *sense; > unsigned char data_direction; > int quiet; > int timeout; > void *reserved[1]; >}; ># 526 "include/uapi/linux/cdrom.h" >struct dvd_layer { > __u8 book_version : 4; > __u8 book_type : 4; > __u8 min_rate : 4; > __u8 disc_size : 4; > __u8 layer_type : 4; > __u8 track_path : 1; > __u8 nlayers : 2; > __u8 track_density : 4; > __u8 linear_density : 4; > __u8 bca : 1; > __u32 start_sector; > __u32 end_sector; > __u32 end_sector_l0; >}; > > > >struct dvd_physical { > __u8 type; > __u8 layer_num; > struct dvd_layer layer[4]; >}; > >struct dvd_copyright { > __u8 type; > > __u8 layer_num; > __u8 cpst; > __u8 rmi; >}; > >struct dvd_disckey { > __u8 type; > > unsigned agid : 2; > __u8 value[2048]; >}; > >struct dvd_bca { > __u8 type; > > int len; > __u8 value[188]; >}; > >struct dvd_manufact { > __u8 type; > > __u8 layer_num; > int len; > __u8 value[2048]; >}; > >typedef union { > __u8 type; > > struct dvd_physical physical; > struct dvd_copyright copyright; > struct dvd_disckey disckey; > struct dvd_bca bca; > struct dvd_manufact manufact; >} dvd_struct; ># 613 "include/uapi/linux/cdrom.h" >typedef __u8 dvd_key[5]; >typedef __u8 dvd_challenge[10]; > >struct dvd_lu_send_agid { > __u8 type; > unsigned agid : 2; >}; > >struct dvd_host_send_challenge { > __u8 type; > unsigned agid : 2; > > dvd_challenge chal; >}; > >struct dvd_send_key { > __u8 type; > unsigned agid : 2; > > dvd_key key; >}; > >struct dvd_lu_send_challenge { > __u8 type; > unsigned agid : 2; > > dvd_challenge chal; >}; ># 652 "include/uapi/linux/cdrom.h" >struct dvd_lu_send_title_key { > __u8 type; > unsigned agid : 2; > > dvd_key title_key; > int lba; > unsigned cpm : 1; > unsigned cp_sec : 1; > unsigned cgms : 2; >}; > >struct dvd_lu_send_asf { > __u8 type; > unsigned agid : 2; > > unsigned asf : 1; >}; > >struct dvd_host_send_rpcstate { > __u8 type; > __u8 pdrc; >}; > >struct dvd_lu_send_rpcstate { > __u8 type : 2; > __u8 vra : 3; > __u8 ucca : 3; > __u8 region_mask; > __u8 rpc_scheme; >}; > >typedef union { > __u8 type; > > struct dvd_lu_send_agid lsa; > struct dvd_host_send_challenge hsc; > struct dvd_send_key lsk; > struct dvd_lu_send_challenge lsc; > struct dvd_send_key hsk; > struct dvd_lu_send_title_key lstk; > struct dvd_lu_send_asf lsasf; > struct dvd_host_send_rpcstate hrpcs; > struct dvd_lu_send_rpcstate lrpcs; >} dvd_authinfo; > >struct request_sense { > > > > > __u8 error_code : 7; > __u8 valid : 1; > > __u8 segment_number; > > > > > > > __u8 sense_key : 4; > __u8 reserved2 : 1; > __u8 ili : 1; > __u8 reserved1 : 2; > > __u8 information[4]; > __u8 add_sense_len; > __u8 command_info[4]; > __u8 asc; > __u8 ascq; > __u8 fruc; > __u8 sks[3]; > __u8 asb[46]; >}; ># 755 "include/uapi/linux/cdrom.h" >struct mrw_feature_desc { > __be16 feature_code; > > > > > > > __u8 curr : 1; > __u8 persistent : 1; > __u8 feature_version : 4; > __u8 reserved1 : 2; > > __u8 add_len; > > > > > __u8 write : 1; > __u8 reserved2 : 7; > > __u8 reserved3; > __u8 reserved4; > __u8 reserved5; >}; > > >struct rwrt_feature_desc { > __be16 feature_code; > > > > > > > __u8 curr : 1; > __u8 persistent : 1; > __u8 feature_version : 4; > __u8 reserved1 : 2; > > __u8 add_len; > __u32 last_lba; > __u32 block_size; > __u16 blocking; > > > > > __u8 page_present : 1; > __u8 reserved2 : 7; > > __u8 reserved3; >}; > >typedef struct { > __be16 disc_information_length; > > > > > > > __u8 disc_status : 2; > __u8 border_status : 2; > __u8 erasable : 1; > __u8 reserved1 : 3; > > > > __u8 n_first_track; > __u8 n_sessions_lsb; > __u8 first_track_lsb; > __u8 last_track_lsb; ># 836 "include/uapi/linux/cdrom.h" > __u8 mrw_status : 2; > __u8 dbit : 1; > __u8 reserved2 : 2; > __u8 uru : 1; > __u8 dbc_v : 1; > __u8 did_v : 1; > > __u8 disc_type; > __u8 n_sessions_msb; > __u8 first_track_msb; > __u8 last_track_msb; > __u32 disc_id; > __u32 lead_in; > __u32 lead_out; > __u8 disc_bar_code[8]; > __u8 reserved3; > __u8 n_opc; >} disc_information; > >typedef struct { > __be16 track_information_length; > __u8 track_lsb; > __u8 session_lsb; > __u8 reserved1; ># 874 "include/uapi/linux/cdrom.h" > __u8 track_mode : 4; > __u8 copy : 1; > __u8 damage : 1; > __u8 reserved2 : 2; > __u8 data_mode : 4; > __u8 fp : 1; > __u8 packet : 1; > __u8 blank : 1; > __u8 rt : 1; > __u8 nwa_v : 1; > __u8 lra_v : 1; > __u8 reserved3 : 6; > > __be32 track_start; > __be32 next_writable; > __be32 free_blocks; > __be32 fixed_packet_size; > __be32 track_size; > __be32 last_rec_address; >} track_information; > >struct feature_header { > __u32 data_len; > __u8 reserved1; > __u8 reserved2; > __u16 curr_profile; >}; > >struct mode_page_header { > __be16 mode_data_length; > __u8 medium_type; > __u8 reserved1; > __u8 reserved2; > __u8 reserved3; > __be16 desc_length; >}; ># 16 "include/linux/cdrom.h" 2 > >struct packet_command >{ > unsigned char cmd[12]; > unsigned char *buffer; > unsigned int buflen; > int stat; > struct request_sense *sense; > unsigned char data_direction; > int quiet; > int timeout; > void *reserved[1]; >}; ># 38 "include/linux/cdrom.h" >struct cdrom_device_info { > struct cdrom_device_ops *ops; > struct list_head list; > struct gendisk *disk; > void *handle; > > int mask; > int speed; > int capacity; > > unsigned int options : 30; > unsigned mc_flags : 2; > unsigned int vfs_events; > unsigned int ioctl_events; > int use_count; > char name[20]; > > __u8 sanyo_slot : 2; > __u8 keeplocked : 1; > __u8 reserved : 5; > int cdda_method; > __u8 last_sense; > __u8 media_written; > unsigned short mmc3_profile; > int for_data; > int (*exit)(struct cdrom_device_info *); > int mrw_mode_page; >}; > >struct cdrom_device_ops { > > int (*open) (struct cdrom_device_info *, int); > void (*release) (struct cdrom_device_info *); > int (*drive_status) (struct cdrom_device_info *, int); > unsigned int (*check_events) (struct cdrom_device_info *cdi, > unsigned int clearing, int slot); > int (*media_changed) (struct cdrom_device_info *, int); > int (*tray_move) (struct cdrom_device_info *, int); > int (*lock_door) (struct cdrom_device_info *, int); > int (*select_speed) (struct cdrom_device_info *, int); > int (*select_disc) (struct cdrom_device_info *, int); > int (*get_last_session) (struct cdrom_device_info *, > struct cdrom_multisession *); > int (*get_mcn) (struct cdrom_device_info *, > struct cdrom_mcn *); > > int (*reset) (struct cdrom_device_info *); > > int (*audio_ioctl) (struct cdrom_device_info *,unsigned int, void *); > > > const int capability; > int n_minors; > > int (*generic_packet) (struct cdrom_device_info *, > struct packet_command *); >}; > > >extern int cdrom_open(struct cdrom_device_info *cdi, struct block_device *bdev, > fmode_t mode); >extern void cdrom_release(struct cdrom_device_info *cdi, fmode_t mode); >extern int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev, > fmode_t mode, unsigned int cmd, unsigned long arg); >extern unsigned int cdrom_check_events(struct cdrom_device_info *cdi, > unsigned int clearing); >extern int cdrom_media_changed(struct cdrom_device_info *); > >extern int register_cdrom(struct cdrom_device_info *cdi); >extern void unregister_cdrom(struct cdrom_device_info *cdi); > >typedef struct { > int data; > int audio; > int cdi; > int xa; > long error; >} tracktype; > >extern int cdrom_get_last_written(struct cdrom_device_info *cdi, long *last_written); >extern int cdrom_number_of_slots(struct cdrom_device_info *cdi); >extern int cdrom_mode_select(struct cdrom_device_info *cdi, > struct packet_command *cgc); >extern int cdrom_mode_sense(struct cdrom_device_info *cdi, > struct packet_command *cgc, > int page_code, int page_control); >extern void init_cdrom_command(struct packet_command *cgc, > void *buffer, int len, int type); > > > > >struct cdrom_mechstat_header { ># 139 "include/linux/cdrom.h" > __u8 curslot : 5; > __u8 changer_state : 2; > __u8 fault : 1; > __u8 reserved1 : 4; > __u8 door_open : 1; > __u8 mech_state : 3; > > __u8 curlba[3]; > __u8 nslots; > __u16 slot_tablelen; >}; > >struct cdrom_slot { > > > > > > __u8 change : 1; > __u8 reserved1 : 6; > __u8 disc_present : 1; > > __u8 reserved2[3]; >}; > >struct cdrom_changer_info { > struct cdrom_mechstat_header hdr; > struct cdrom_slot slots[256]; >}; > >typedef enum { > mechtype_caddy = 0, > mechtype_tray = 1, > mechtype_popup = 2, > mechtype_individual_changer = 4, > mechtype_cartridge_changer = 5 >} mechtype_t; > >typedef struct { ># 195 "include/linux/cdrom.h" > __u8 page_code : 6; > __u8 reserved1 : 1; > __u8 ps : 1; > __u8 page_length; > __u8 write_type : 4; > __u8 test_write : 1; > __u8 ls_v : 1; > __u8 bufe : 1; > __u8 reserved2 : 1; > __u8 track_mode : 4; > __u8 copy : 1; > __u8 fp : 1; > __u8 multi_session : 2; > __u8 data_block_type : 4; > __u8 reserved3 : 4; > > __u8 link_size; > __u8 reserved4; > > > > > __u8 app_code : 6; > __u8 reserved5 : 2; > > __u8 session_format; > __u8 reserved6; > __be32 packet_size; > __u16 audio_pause; > __u8 mcn[16]; > __u8 isrc[16]; > __u8 subhdr0; > __u8 subhdr1; > __u8 subhdr2; > __u8 subhdr3; >} __attribute__((packed)) write_param_page; > >struct modesel_head >{ > __u8 reserved1; > __u8 medium; > __u8 reserved2; > __u8 block_desc_length; > __u8 density; > __u8 number_of_blocks_hi; > __u8 number_of_blocks_med; > __u8 number_of_blocks_lo; > __u8 reserved3; > __u8 block_length_hi; > __u8 block_length_med; > __u8 block_length_lo; >}; > >typedef struct { > __u16 report_key_length; > __u8 reserved1; > __u8 reserved2; > > > > > > __u8 ucca : 3; > __u8 vra : 3; > __u8 type_code : 2; > > __u8 region_mask; > __u8 rpc_scheme; > __u8 reserved3; >} rpc_state_t; > >struct event_header { > __be16 data_len; > > > > > > __u8 notification_class : 3; > __u8 reserved1 : 4; > __u8 nea : 1; > > __u8 supp_event_class; >}; > >struct media_event_desc { > > > > > > > > __u8 media_event_code : 4; > __u8 reserved1 : 4; > __u8 door_open : 1; > __u8 media_present : 1; > __u8 reserved2 : 6; > > __u8 start_slot; > __u8 end_slot; >}; > >extern int cdrom_get_media_event(struct cdrom_device_info *cdi, struct media_event_desc *med); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void lba_to_msf(int lba, u8 *m, u8 *s, u8 *f) >{ > lba += 150; > lba &= 0xffffff; > *m = lba / (60 * 75); > lba %= (60 * 75); > *s = lba / 75; > *f = lba % 75; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int msf_to_lba(u8 m, u8 s, u8 f) >{ > return (((m * 60) + s) * 75 + f) - 150; >} ># 40 "include/linux/libata.h" 2 ># 49 "include/linux/libata.h" ># 1 "include/asm-generic/libata-portmap.h" 1 ># 50 "include/linux/libata.h" 2 ># 90 "include/linux/libata.h" >enum { > ATA_MSG_DRV = 0x0001, > ATA_MSG_INFO = 0x0002, > ATA_MSG_PROBE = 0x0004, > ATA_MSG_WARN = 0x0008, > ATA_MSG_MALLOC = 0x0010, > ATA_MSG_CTL = 0x0020, > ATA_MSG_INTR = 0x0040, > ATA_MSG_ERR = 0x0080, >}; ># 110 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u32 ata_msg_init(int dval, int default_msg_enable_bits) >{ > if (dval < 0 || dval >= (sizeof(u32) * 8)) > return default_msg_enable_bits; > if (!dval) > return 0; > return (1 << dval) - 1; >} > > > > >enum { > > LIBATA_MAX_PRD = ATA_MAX_PRD / 2, > LIBATA_DUMB_MAX_PRD = ATA_MAX_PRD / 4, > ATA_DEF_QUEUE = 1, > > ATA_MAX_QUEUE = 32, > ATA_TAG_INTERNAL = ATA_MAX_QUEUE - 1, > ATA_SHORT_PAUSE = 16, > > ATAPI_MAX_DRAIN = 16 << 10, > > ATA_ALL_DEVICES = (1 << ATA_MAX_DEVICES) - 1, > > ATA_SHT_EMULATED = 1, > ATA_SHT_CMD_PER_LUN = 1, > ATA_SHT_THIS_ID = -1, > ATA_SHT_USE_CLUSTERING = 1, > > > ATA_DFLAG_LBA = (1 << 0), > ATA_DFLAG_LBA48 = (1 << 1), > ATA_DFLAG_CDB_INTR = (1 << 2), > ATA_DFLAG_NCQ = (1 << 3), > ATA_DFLAG_FLUSH_EXT = (1 << 4), > ATA_DFLAG_ACPI_PENDING = (1 << 5), > ATA_DFLAG_ACPI_FAILED = (1 << 6), > ATA_DFLAG_AN = (1 << 7), > ATA_DFLAG_DMADIR = (1 << 10), > ATA_DFLAG_CFG_MASK = (1 << 12) - 1, > > ATA_DFLAG_PIO = (1 << 12), > ATA_DFLAG_NCQ_OFF = (1 << 13), > ATA_DFLAG_SLEEPING = (1 << 15), > ATA_DFLAG_DUBIOUS_XFER = (1 << 16), > ATA_DFLAG_NO_UNLOAD = (1 << 17), > ATA_DFLAG_UNLOCK_HPA = (1 << 18), > ATA_DFLAG_INIT_MASK = (1 << 24) - 1, > > ATA_DFLAG_DETACH = (1 << 24), > ATA_DFLAG_DETACHED = (1 << 25), > > ATA_DFLAG_DA = (1 << 26), > ATA_DFLAG_DEVSLP = (1 << 27), > ATA_DFLAG_ACPI_DISABLED = (1 << 28), > > ATA_DEV_UNKNOWN = 0, > ATA_DEV_ATA = 1, > ATA_DEV_ATA_UNSUP = 2, > ATA_DEV_ATAPI = 3, > ATA_DEV_ATAPI_UNSUP = 4, > ATA_DEV_PMP = 5, > ATA_DEV_PMP_UNSUP = 6, > ATA_DEV_SEMB = 7, > ATA_DEV_SEMB_UNSUP = 8, > ATA_DEV_NONE = 9, > > > ATA_LFLAG_NO_HRST = (1 << 1), > ATA_LFLAG_NO_SRST = (1 << 2), > ATA_LFLAG_ASSUME_ATA = (1 << 3), > ATA_LFLAG_ASSUME_SEMB = (1 << 4), > ATA_LFLAG_ASSUME_CLASS = ATA_LFLAG_ASSUME_ATA | ATA_LFLAG_ASSUME_SEMB, > ATA_LFLAG_NO_RETRY = (1 << 5), > ATA_LFLAG_DISABLED = (1 << 6), > ATA_LFLAG_SW_ACTIVITY = (1 << 7), > ATA_LFLAG_NO_LPM = (1 << 8), > ATA_LFLAG_RST_ONCE = (1 << 9), > > > ATA_FLAG_SLAVE_POSS = (1 << 0), > > ATA_FLAG_SATA = (1 << 1), > ATA_FLAG_NO_ATAPI = (1 << 6), > ATA_FLAG_PIO_DMA = (1 << 7), > ATA_FLAG_PIO_LBA48 = (1 << 8), > ATA_FLAG_PIO_POLLING = (1 << 9), > > ATA_FLAG_NCQ = (1 << 10), > ATA_FLAG_NO_POWEROFF_SPINDOWN = (1 << 11), > ATA_FLAG_NO_HIBERNATE_SPINDOWN = (1 << 12), > ATA_FLAG_DEBUGMSG = (1 << 13), > ATA_FLAG_FPDMA_AA = (1 << 14), > ATA_FLAG_IGN_SIMPLEX = (1 << 15), > ATA_FLAG_NO_IORDY = (1 << 16), > ATA_FLAG_ACPI_SATA = (1 << 17), > ATA_FLAG_AN = (1 << 18), > ATA_FLAG_PMP = (1 << 19), > ATA_FLAG_EM = (1 << 21), > > ATA_FLAG_SW_ACTIVITY = (1 << 22), > > ATA_FLAG_NO_DIPM = (1 << 23), > > > > > > ATA_PFLAG_EH_PENDING = (1 << 0), > ATA_PFLAG_EH_IN_PROGRESS = (1 << 1), > ATA_PFLAG_FROZEN = (1 << 2), > ATA_PFLAG_RECOVERED = (1 << 3), > ATA_PFLAG_LOADING = (1 << 4), > ATA_PFLAG_SCSI_HOTPLUG = (1 << 6), > ATA_PFLAG_INITIALIZING = (1 << 7), > ATA_PFLAG_RESETTING = (1 << 8), > ATA_PFLAG_UNLOADING = (1 << 9), > ATA_PFLAG_UNLOADED = (1 << 10), > > ATA_PFLAG_SUSPENDED = (1 << 17), > ATA_PFLAG_PM_PENDING = (1 << 18), > ATA_PFLAG_INIT_GTM_VALID = (1 << 19), > > ATA_PFLAG_PIO32 = (1 << 20), > ATA_PFLAG_PIO32CHANGE = (1 << 21), > > > ATA_QCFLAG_ACTIVE = (1 << 0), > ATA_QCFLAG_DMAMAP = (1 << 1), > ATA_QCFLAG_IO = (1 << 3), > ATA_QCFLAG_RESULT_TF = (1 << 4), > ATA_QCFLAG_CLEAR_EXCL = (1 << 5), > ATA_QCFLAG_QUIET = (1 << 6), > ATA_QCFLAG_RETRY = (1 << 7), > > ATA_QCFLAG_FAILED = (1 << 16), > ATA_QCFLAG_SENSE_VALID = (1 << 17), > ATA_QCFLAG_EH_SCHEDULED = (1 << 18), > > > ATA_HOST_SIMPLEX = (1 << 0), > ATA_HOST_STARTED = (1 << 1), > ATA_HOST_PARALLEL_SCAN = (1 << 2), > ATA_HOST_IGNORE_ATA = (1 << 3), > > > > > ATA_TMOUT_BOOT = 30000, > ATA_TMOUT_BOOT_QUICK = 7000, > ATA_TMOUT_INTERNAL_QUICK = 5000, > ATA_TMOUT_MAX_PARK = 30000, > > > > > > > ATA_TMOUT_FF_WAIT_LONG = 2000, > ATA_TMOUT_FF_WAIT = 800, ># 283 "include/linux/libata.h" > ATA_WAIT_AFTER_RESET = 150, > > > > > > > ATA_TMOUT_PMP_SRST_WAIT = 5000, > > > BUS_UNKNOWN = 0, > BUS_DMA = 1, > BUS_IDLE = 2, > BUS_NOINTR = 3, > BUS_NODATA = 4, > BUS_TIMER = 5, > BUS_PIO = 6, > BUS_EDD = 7, > BUS_IDENTIFY = 8, > BUS_PACKET = 9, > > > PORT_UNKNOWN = 0, > PORT_ENABLED = 1, > PORT_DISABLED = 2, > > > > > ATA_NR_PIO_MODES = 7, > ATA_NR_MWDMA_MODES = 5, > ATA_NR_UDMA_MODES = 8, > > ATA_SHIFT_PIO = 0, > ATA_SHIFT_MWDMA = ATA_SHIFT_PIO + ATA_NR_PIO_MODES, > ATA_SHIFT_UDMA = ATA_SHIFT_MWDMA + ATA_NR_MWDMA_MODES, > > > ATA_DMA_PAD_SZ = 4, > > > ATA_ERING_SIZE = 32, > > > ATA_DEFER_LINK = 1, > ATA_DEFER_PORT = 2, > > > ATA_EH_DESC_LEN = 80, > > > ATA_EH_REVALIDATE = (1 << 0), > ATA_EH_SOFTRESET = (1 << 1), > ATA_EH_HARDRESET = (1 << 2), > ATA_EH_RESET = ATA_EH_SOFTRESET | ATA_EH_HARDRESET, > ATA_EH_ENABLE_LINK = (1 << 3), > ATA_EH_PARK = (1 << 5), > > ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE | ATA_EH_PARK, > ATA_EH_ALL_ACTIONS = ATA_EH_REVALIDATE | ATA_EH_RESET | > ATA_EH_ENABLE_LINK, > > > ATA_EHI_HOTPLUGGED = (1 << 0), > ATA_EHI_NO_AUTOPSY = (1 << 2), > ATA_EHI_QUIET = (1 << 3), > ATA_EHI_NO_RECOVERY = (1 << 4), > > ATA_EHI_DID_SOFTRESET = (1 << 16), > ATA_EHI_DID_HARDRESET = (1 << 17), > ATA_EHI_PRINTINFO = (1 << 18), > ATA_EHI_SETMODE = (1 << 19), > ATA_EHI_POST_SETMODE = (1 << 20), > > ATA_EHI_DID_RESET = ATA_EHI_DID_SOFTRESET | ATA_EHI_DID_HARDRESET, > > > ATA_EHI_TO_SLAVE_MASK = ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, > > > ATA_EH_MAX_TRIES = 5, > > > ATA_LINK_RESUME_TRIES = 5, > > > ATA_PROBE_MAX_TRIES = 3, > ATA_EH_DEV_TRIES = 3, > ATA_EH_PMP_TRIES = 5, > ATA_EH_PMP_LINK_TRIES = 3, > > SATA_PMP_RW_TIMEOUT = 3000, > > > > > ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 6, > > > > > ATA_HORKAGE_DIAGNOSTIC = (1 << 0), > ATA_HORKAGE_NODMA = (1 << 1), > ATA_HORKAGE_NONCQ = (1 << 2), > ATA_HORKAGE_MAX_SEC_128 = (1 << 3), > ATA_HORKAGE_BROKEN_HPA = (1 << 4), > ATA_HORKAGE_DISABLE = (1 << 5), > ATA_HORKAGE_HPA_SIZE = (1 << 6), > ATA_HORKAGE_IVB = (1 << 8), > ATA_HORKAGE_STUCK_ERR = (1 << 9), > ATA_HORKAGE_BRIDGE_OK = (1 << 10), > ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), > > ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), > ATA_HORKAGE_1_5_GBPS = (1 << 13), > ATA_HORKAGE_NOSETXFER = (1 << 14), > ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), > ATA_HORKAGE_DUMP_ID = (1 << 16), > > > > ATA_DMA_MASK_ATA = (1 << 0), > ATA_DMA_MASK_ATAPI = (1 << 1), > ATA_DMA_MASK_CFA = (1 << 2), > > > ATAPI_READ = 0, > ATAPI_WRITE = 1, > ATAPI_READ_CD = 2, > ATAPI_PASS_THRU = 3, > ATAPI_MISC = 4, > > > ATA_TIMING_SETUP = (1 << 0), > ATA_TIMING_ACT8B = (1 << 1), > ATA_TIMING_REC8B = (1 << 2), > ATA_TIMING_CYC8B = (1 << 3), > ATA_TIMING_8BIT = ATA_TIMING_ACT8B | ATA_TIMING_REC8B | > ATA_TIMING_CYC8B, > ATA_TIMING_ACTIVE = (1 << 4), > ATA_TIMING_RECOVER = (1 << 5), > ATA_TIMING_DMACK_HOLD = (1 << 6), > ATA_TIMING_CYCLE = (1 << 7), > ATA_TIMING_UDMA = (1 << 8), > ATA_TIMING_ALL = ATA_TIMING_SETUP | ATA_TIMING_ACT8B | > ATA_TIMING_REC8B | ATA_TIMING_CYC8B | > ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | > ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE | > ATA_TIMING_UDMA, > > > ATA_ACPI_FILTER_SETXFER = 1 << 0, > ATA_ACPI_FILTER_LOCK = 1 << 1, > ATA_ACPI_FILTER_DIPM = 1 << 2, > ATA_ACPI_FILTER_FPDMA_OFFSET = 1 << 3, > ATA_ACPI_FILTER_FPDMA_AA = 1 << 4, > > ATA_ACPI_FILTER_DEFAULT = ATA_ACPI_FILTER_SETXFER | > ATA_ACPI_FILTER_LOCK | > ATA_ACPI_FILTER_DIPM, >}; > >enum ata_xfer_mask { > ATA_MASK_PIO = ((1LU << ATA_NR_PIO_MODES) - 1) > << ATA_SHIFT_PIO, > ATA_MASK_MWDMA = ((1LU << ATA_NR_MWDMA_MODES) - 1) > << ATA_SHIFT_MWDMA, > ATA_MASK_UDMA = ((1LU << ATA_NR_UDMA_MODES) - 1) > << ATA_SHIFT_UDMA, >}; > >enum hsm_task_states { > HSM_ST_IDLE, > HSM_ST_FIRST, > > HSM_ST, > HSM_ST_LAST, > HSM_ST_ERR, >}; > >enum ata_completion_errors { > AC_ERR_DEV = (1 << 0), > AC_ERR_HSM = (1 << 1), > AC_ERR_TIMEOUT = (1 << 2), > AC_ERR_MEDIA = (1 << 3), > AC_ERR_ATA_BUS = (1 << 4), > AC_ERR_HOST_BUS = (1 << 5), > AC_ERR_SYSTEM = (1 << 6), > AC_ERR_INVALID = (1 << 7), > AC_ERR_OTHER = (1 << 8), > AC_ERR_NODEV_HINT = (1 << 9), > AC_ERR_NCQ = (1 << 10), >}; > > > > > >enum ata_lpm_policy { > ATA_LPM_UNKNOWN, > ATA_LPM_MAX_POWER, > ATA_LPM_MED_POWER, > ATA_LPM_MIN_POWER, >}; > >enum ata_lpm_hints { > ATA_LPM_EMPTY = (1 << 0), > ATA_LPM_HIPM = (1 << 1), >}; > > >struct scsi_device; >struct ata_port_operations; >struct ata_port; >struct ata_link; >struct ata_queued_cmd; > > >typedef void (*ata_qc_cb_t) (struct ata_queued_cmd *qc); >typedef int (*ata_prereset_fn_t)(struct ata_link *link, unsigned long deadline); >typedef int (*ata_reset_fn_t)(struct ata_link *link, unsigned int *classes, > unsigned long deadline); >typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes); > >extern struct device_attribute dev_attr_link_power_management_policy; >extern struct device_attribute dev_attr_unload_heads; >extern struct device_attribute dev_attr_em_message_type; >extern struct device_attribute dev_attr_em_message; >extern struct device_attribute dev_attr_sw_activity; > >enum sw_activity { > OFF, > BLINK_ON, > BLINK_OFF, >}; > > >struct ata_ioports { > void *cmd_addr; > void *data_addr; > void *error_addr; > void *feature_addr; > void *nsect_addr; > void *lbal_addr; > void *lbam_addr; > void *lbah_addr; > void *device_addr; > void *status_addr; > void *command_addr; > void *altstatus_addr; > void *ctl_addr; > > void *bmdma_addr; > > void *scr_addr; >}; > > >struct ata_host { > spinlock_t lock; > struct device *dev; > void * const *iomap; > unsigned int n_ports; > void *private_data; > struct ata_port_operations *ops; > unsigned long flags; > > struct mutex eh_mutex; > struct task_struct *eh_owner; > > struct ata_port *simplex_claimed; > struct ata_port *ports[0]; >}; > >struct ata_queued_cmd { > struct ata_port *ap; > struct ata_device *dev; > > struct scsi_cmnd *scsicmd; > void (*scsidone)(struct scsi_cmnd *); > > struct ata_taskfile tf; > u8 cdb[ATAPI_CDB_LEN]; > > unsigned long flags; > unsigned int tag; > unsigned int n_elem; > unsigned int orig_n_elem; > > int dma_dir; > > unsigned int sect_size; > > unsigned int nbytes; > unsigned int extrabytes; > unsigned int curbytes; > > struct scatterlist sgent; > > struct scatterlist *sg; > > struct scatterlist *cursg; > unsigned int cursg_ofs; > > unsigned int err_mask; > struct ata_taskfile result_tf; > ata_qc_cb_t complete_fn; > > void *private_data; > void *lldd_task; >}; > >struct ata_port_stats { > unsigned long unhandled_irq; > unsigned long idle_irq; > unsigned long rw_reqbuf; >}; > >struct ata_ering_entry { > unsigned int eflags; > unsigned int err_mask; > u64 timestamp; >}; > >struct ata_ering { > int cursor; > struct ata_ering_entry ring[ATA_ERING_SIZE]; >}; > >struct ata_device { > struct ata_link *link; > unsigned int devno; > unsigned int horkage; > unsigned long flags; > struct scsi_device *sdev; > void *private_data; > > > > > struct device tdev; > > u64 n_sectors; > u64 n_native_sectors; > unsigned int class; > unsigned long unpark_deadline; > > u8 pio_mode; > u8 dma_mode; > u8 xfer_mode; > unsigned int xfer_shift; > > unsigned int multi_count; > > unsigned int max_sectors; > unsigned int cdb_len; > > > unsigned long pio_mask; > unsigned long mwdma_mask; > unsigned long udma_mask; > > > u16 cylinders; > u16 heads; > u16 sectors; > > union { > u16 id[ATA_ID_WORDS]; > u32 gscr[SATA_PMP_GSCR_DWORDS]; > }; > > > u8 devslp_timing[ATA_LOG_DEVSLP_SIZE]; > > > int spdn_cnt; > > struct ata_ering ering; >}; > > > > > > > >struct ata_eh_info { > struct ata_device *dev; > u32 serror; > unsigned int err_mask; > unsigned int action; > unsigned int dev_action[ATA_MAX_DEVICES]; > unsigned int flags; > > unsigned int probe_mask; > > char desc[ATA_EH_DESC_LEN]; > int desc_len; >}; > >struct ata_eh_context { > struct ata_eh_info i; > int tries[ATA_MAX_DEVICES]; > int cmd_timeout_idx[ATA_MAX_DEVICES] > [ATA_EH_CMD_TIMEOUT_TABLE_SIZE]; > unsigned int classes[ATA_MAX_DEVICES]; > unsigned int did_probe_mask; > unsigned int unloaded_mask; > unsigned int saved_ncq_enabled; > u8 saved_xfer_mode[ATA_MAX_DEVICES]; > > unsigned long last_reset; >}; > >struct ata_acpi_drive >{ > u32 pio; > u32 dma; >} __attribute__((packed)); > >struct ata_acpi_gtm { > struct ata_acpi_drive drive[2]; > u32 flags; >} __attribute__((packed)); > >struct ata_link { > struct ata_port *ap; > int pmp; > > struct device tdev; > unsigned int active_tag; > u32 sactive; > > unsigned int flags; > > u32 saved_scontrol; > unsigned int hw_sata_spd_limit; > unsigned int sata_spd_limit; > unsigned int sata_spd; > enum ata_lpm_policy lpm_policy; > > > struct ata_eh_info eh_info; > > struct ata_eh_context eh_context; > > struct ata_device device[ATA_MAX_DEVICES]; >}; > > > >struct ata_port { > struct Scsi_Host *scsi_host; > struct ata_port_operations *ops; > spinlock_t *lock; > > > unsigned long flags; > > unsigned int pflags; > unsigned int print_id; > unsigned int port_no; > > > struct ata_ioports ioaddr; > u8 ctl; > u8 last_ctl; > struct ata_link* sff_pio_task_link; > struct delayed_work sff_pio_task; > > struct ata_bmdma_prd *bmdma_prd; > dma_addr_t bmdma_prd_dma; > > > > unsigned int pio_mask; > unsigned int mwdma_mask; > unsigned int udma_mask; > unsigned int cbl; > > struct ata_queued_cmd qcmd[ATA_MAX_QUEUE]; > unsigned long qc_allocated; > unsigned int qc_active; > int nr_active_links; > > struct ata_link link; > struct ata_link *slave_link; > > int nr_pmp_links; > struct ata_link *pmp_link; > struct ata_link *excl_link; > > struct ata_port_stats stats; > struct ata_host *host; > struct device *dev; > struct device tdev; > > struct mutex scsi_scan_mutex; > struct delayed_work hotplug_task; > struct work_struct scsi_rescan_task; > > unsigned int hsm_task_state; > > u32 msg_enable; > struct list_head eh_done_q; > wait_queue_head_t eh_wait_q; > int eh_tries; > struct completion park_req_pending; > > pm_message_t pm_mesg; > int *pm_result; > enum ata_lpm_policy target_lpm_policy; > > struct timer_list fastdrain_timer; > unsigned long fastdrain_cnt; > > int em_message_type; > void *private_data; > > > > > > u8 sector_buf[ATA_SECT_SIZE] __attribute__((__aligned__((1 << 6)))); >}; ># 817 "include/linux/libata.h" >struct ata_port_operations { > > > > int (*qc_defer)(struct ata_queued_cmd *qc); > int (*check_atapi_dma)(struct ata_queued_cmd *qc); > void (*qc_prep)(struct ata_queued_cmd *qc); > unsigned int (*qc_issue)(struct ata_queued_cmd *qc); > bool (*qc_fill_rtf)(struct ata_queued_cmd *qc); > > > > > int (*cable_detect)(struct ata_port *ap); > unsigned long (*mode_filter)(struct ata_device *dev, unsigned long xfer_mask); > void (*set_piomode)(struct ata_port *ap, struct ata_device *dev); > void (*set_dmamode)(struct ata_port *ap, struct ata_device *dev); > int (*set_mode)(struct ata_link *link, struct ata_device **r_failed_dev); > unsigned int (*read_id)(struct ata_device *dev, struct ata_taskfile *tf, u16 *id); > > void (*dev_config)(struct ata_device *dev); > > void (*freeze)(struct ata_port *ap); > void (*thaw)(struct ata_port *ap); > ata_prereset_fn_t prereset; > ata_reset_fn_t softreset; > ata_reset_fn_t hardreset; > ata_postreset_fn_t postreset; > ata_prereset_fn_t pmp_prereset; > ata_reset_fn_t pmp_softreset; > ata_reset_fn_t pmp_hardreset; > ata_postreset_fn_t pmp_postreset; > void (*error_handler)(struct ata_port *ap); > void (*lost_interrupt)(struct ata_port *ap); > void (*post_internal_cmd)(struct ata_queued_cmd *qc); > void (*sched_eh)(struct ata_port *ap); > void (*end_eh)(struct ata_port *ap); > > > > > int (*scr_read)(struct ata_link *link, unsigned int sc_reg, u32 *val); > int (*scr_write)(struct ata_link *link, unsigned int sc_reg, u32 val); > void (*pmp_attach)(struct ata_port *ap); > void (*pmp_detach)(struct ata_port *ap); > int (*set_lpm)(struct ata_link *link, enum ata_lpm_policy policy, > unsigned hints); > > > > > int (*port_suspend)(struct ata_port *ap, pm_message_t mesg); > int (*port_resume)(struct ata_port *ap); > int (*port_start)(struct ata_port *ap); > void (*port_stop)(struct ata_port *ap); > void (*host_stop)(struct ata_host *host); > > > > > > void (*sff_dev_select)(struct ata_port *ap, unsigned int device); > void (*sff_set_devctl)(struct ata_port *ap, u8 ctl); > u8 (*sff_check_status)(struct ata_port *ap); > u8 (*sff_check_altstatus)(struct ata_port *ap); > void (*sff_tf_load)(struct ata_port *ap, const struct ata_taskfile *tf); > void (*sff_tf_read)(struct ata_port *ap, struct ata_taskfile *tf); > void (*sff_exec_command)(struct ata_port *ap, > const struct ata_taskfile *tf); > unsigned int (*sff_data_xfer)(struct ata_device *dev, > unsigned char *buf, unsigned int buflen, int rw); > void (*sff_irq_on)(struct ata_port *); > bool (*sff_irq_check)(struct ata_port *); > void (*sff_irq_clear)(struct ata_port *); > void (*sff_drain_fifo)(struct ata_queued_cmd *qc); > > > void (*bmdma_setup)(struct ata_queued_cmd *qc); > void (*bmdma_start)(struct ata_queued_cmd *qc); > void (*bmdma_stop)(struct ata_queued_cmd *qc); > u8 (*bmdma_status)(struct ata_port *ap); > > > > ssize_t (*em_show)(struct ata_port *ap, char *buf); > ssize_t (*em_store)(struct ata_port *ap, const char *message, > size_t size); > ssize_t (*sw_activity_show)(struct ata_device *dev, char *buf); > ssize_t (*sw_activity_store)(struct ata_device *dev, > enum sw_activity val); > > > > void (*phy_reset)(struct ata_port *ap); > void (*eng_timeout)(struct ata_port *ap); > > > > > > const struct ata_port_operations *inherits; >}; > >struct ata_port_info { > unsigned long flags; > unsigned long link_flags; > unsigned long pio_mask; > unsigned long mwdma_mask; > unsigned long udma_mask; > struct ata_port_operations *port_ops; > void *private_data; >}; > >struct ata_timing { > unsigned short mode; > unsigned short setup; > unsigned short act8b; > unsigned short rec8b; > unsigned short cyc8b; > unsigned short active; > unsigned short recover; > unsigned short dmack_hold; > unsigned short cycle; > unsigned short udma; >}; > > > > >extern const unsigned long sata_deb_timing_normal[]; >extern const unsigned long sata_deb_timing_hotplug[]; >extern const unsigned long sata_deb_timing_long[]; > >extern struct ata_port_operations ata_dummy_port_ops; >extern const struct ata_port_info ata_dummy_port_info; > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const unsigned long * >sata_ehc_deb_timing(struct ata_eh_context *ehc) >{ > if (ehc->i.flags & ATA_EHI_HOTPLUGGED) > return sata_deb_timing_hotplug; > else > return sata_deb_timing_normal; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_port_is_dummy(struct ata_port *ap) >{ > return ap->ops == &ata_dummy_port_ops; >} > >extern int sata_set_spd(struct ata_link *link); >extern int ata_std_prereset(struct ata_link *link, unsigned long deadline); >extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline, > int (*check_ready)(struct ata_link *link)); >extern int sata_link_debounce(struct ata_link *link, > const unsigned long *params, unsigned long deadline); >extern int sata_link_resume(struct ata_link *link, const unsigned long *params, > unsigned long deadline); >extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy, > bool spm_wakeup); >extern int sata_link_hardreset(struct ata_link *link, > const unsigned long *timing, unsigned long deadline, > bool *online, int (*check_ready)(struct ata_link *)); >extern int sata_std_hardreset(struct ata_link *link, unsigned int *class, > unsigned long deadline); >extern void ata_std_postreset(struct ata_link *link, unsigned int *classes); > >extern struct ata_host *ata_host_alloc(struct device *dev, int max_ports); >extern struct ata_host *ata_host_alloc_pinfo(struct device *dev, > const struct ata_port_info * const * ppi, int n_ports); >extern int ata_slave_link_init(struct ata_port *ap); >extern int ata_host_start(struct ata_host *host); >extern int ata_host_register(struct ata_host *host, > struct scsi_host_template *sht); >extern int ata_host_activate(struct ata_host *host, int irq, > irq_handler_t irq_handler, unsigned long irq_flags, > struct scsi_host_template *sht); >extern void ata_host_detach(struct ata_host *host); >extern void ata_host_init(struct ata_host *, struct device *, struct ata_port_operations *); >extern int ata_scsi_detect(struct scsi_host_template *sht); >extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void *arg); >extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); >extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, > int cmd, void *arg); >extern void ata_sas_port_destroy(struct ata_port *); >extern struct ata_port *ata_sas_port_alloc(struct ata_host *, > struct ata_port_info *, struct Scsi_Host *); >extern void ata_sas_async_probe(struct ata_port *ap); >extern int ata_sas_sync_probe(struct ata_port *ap); >extern int ata_sas_port_init(struct ata_port *); >extern int ata_sas_port_start(struct ata_port *ap); >extern void ata_sas_port_stop(struct ata_port *ap); >extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *); >extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap); >extern int sata_scr_valid(struct ata_link *link); >extern int sata_scr_read(struct ata_link *link, int reg, u32 *val); >extern int sata_scr_write(struct ata_link *link, int reg, u32 val); >extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val); >extern bool ata_link_online(struct ata_link *link); >extern bool ata_link_offline(struct ata_link *link); > >extern int ata_host_suspend(struct ata_host *host, pm_message_t mesg); >extern void ata_host_resume(struct ata_host *host); >extern int ata_sas_port_async_suspend(struct ata_port *ap, int *async); >extern int ata_sas_port_async_resume(struct ata_port *ap, int *async); ># 1032 "include/linux/libata.h" >extern int ata_ratelimit(void); >extern void ata_msleep(struct ata_port *ap, unsigned int msecs); >extern u32 ata_wait_register(struct ata_port *ap, void *reg, u32 mask, > u32 val, unsigned long interval, unsigned long timeout); >extern int atapi_cmd_type(u8 opcode); >extern void ata_tf_to_fis(const struct ata_taskfile *tf, > u8 pmp, int is_cmd, u8 *fis); >extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf); >extern unsigned long ata_pack_xfermask(unsigned long pio_mask, > unsigned long mwdma_mask, unsigned long udma_mask); >extern void ata_unpack_xfermask(unsigned long xfer_mask, > unsigned long *pio_mask, unsigned long *mwdma_mask, > unsigned long *udma_mask); >extern u8 ata_xfer_mask2mode(unsigned long xfer_mask); >extern unsigned long ata_xfer_mode2mask(u8 xfer_mode); >extern int ata_xfer_mode2shift(unsigned long xfer_mode); >extern const char *ata_mode_string(unsigned long xfer_mask); >extern unsigned long ata_id_xfermask(const u16 *id); >extern int ata_std_qc_defer(struct ata_queued_cmd *qc); >extern void ata_noop_qc_prep(struct ata_queued_cmd *qc); >extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, > unsigned int n_elem); >extern unsigned int ata_dev_classify(const struct ata_taskfile *tf); >extern void ata_dev_disable(struct ata_device *adev); >extern void ata_id_string(const u16 *id, unsigned char *s, > unsigned int ofs, unsigned int len); >extern void ata_id_c_string(const u16 *id, unsigned char *s, > unsigned int ofs, unsigned int len); >extern unsigned int ata_do_dev_read_id(struct ata_device *dev, > struct ata_taskfile *tf, u16 *id); >extern void ata_qc_complete(struct ata_queued_cmd *qc); >extern int ata_qc_complete_multiple(struct ata_port *ap, u32 qc_active); >extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd); >extern int ata_std_bios_param(struct scsi_device *sdev, > struct block_device *bdev, > sector_t capacity, int geom[]); >extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev); >extern int ata_scsi_slave_config(struct scsi_device *sdev); >extern void ata_scsi_slave_destroy(struct scsi_device *sdev); >extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, > int queue_depth, int reason); >extern int __ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev, > int queue_depth, int reason); >extern struct ata_device *ata_dev_pair(struct ata_device *adev); >extern int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev); >extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap); >extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, struct list_head *eh_q); > >extern int ata_cable_40wire(struct ata_port *ap); >extern int ata_cable_80wire(struct ata_port *ap); >extern int ata_cable_sata(struct ata_port *ap); >extern int ata_cable_ignore(struct ata_port *ap); >extern int ata_cable_unknown(struct ata_port *ap); > > >extern unsigned int ata_pio_need_iordy(const struct ata_device *); >extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode); >extern int ata_timing_compute(struct ata_device *, unsigned short, > struct ata_timing *, int, int); >extern void ata_timing_merge(const struct ata_timing *, > const struct ata_timing *, struct ata_timing *, > unsigned int); >extern u8 ata_timing_cycle2mode(unsigned int xfer_shift, int cycle); > > > >struct pci_dev; > >struct pci_bits { > unsigned int reg; > unsigned int width; > unsigned long mask; > unsigned long val; >}; > >extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits); >extern void ata_pci_remove_one(struct pci_dev *pdev); > > >extern void ata_pci_device_do_suspend(struct pci_dev *pdev, pm_message_t mesg); >extern int __attribute__((warn_unused_result)) ata_pci_device_do_resume(struct pci_dev *pdev); >extern int ata_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg); >extern int ata_pci_device_resume(struct pci_dev *pdev); > > > >struct platform_device; > >extern int ata_platform_remove_one(struct platform_device *pdev); ># 1140 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap) >{ > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_acpi_stm(const struct ata_port *ap, > struct ata_acpi_gtm *stm) >{ > return -38; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_acpi_gtm(const struct ata_port *ap, > struct ata_acpi_gtm *stm) >{ > return -38; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_acpi_gtm_xfermask(struct ata_device *dev, > const struct ata_acpi_gtm *gtm) >{ > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_acpi_cbl_80wire(struct ata_port *ap, > const struct ata_acpi_gtm *gtm) >{ > return 0; >} > > > > > >extern void ata_port_schedule_eh(struct ata_port *ap); >extern void ata_port_wait_eh(struct ata_port *ap); >extern int ata_link_abort(struct ata_link *link); >extern int ata_port_abort(struct ata_port *ap); >extern int ata_port_freeze(struct ata_port *ap); >extern int sata_async_notification(struct ata_port *ap); > >extern void ata_eh_freeze_port(struct ata_port *ap); >extern void ata_eh_thaw_port(struct ata_port *ap); > >extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); >extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); >extern void ata_eh_analyze_ncq_error(struct ata_link *link); > >extern void ata_do_eh(struct ata_port *ap, ata_prereset_fn_t prereset, > ata_reset_fn_t softreset, ata_reset_fn_t hardreset, > ata_postreset_fn_t postreset); >extern void ata_std_error_handler(struct ata_port *ap); >extern void ata_std_sched_eh(struct ata_port *ap); >extern void ata_std_end_eh(struct ata_port *ap); >extern int ata_link_nr_enabled(struct ata_link *link); ># 1216 "include/linux/libata.h" >extern const struct ata_port_operations ata_base_port_ops; >extern const struct ata_port_operations sata_port_ops; >extern struct device_attribute *ata_common_sdev_attrs[]; ># 1245 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool sata_pmp_supported(struct ata_port *ap) >{ > return ap->flags & ATA_FLAG_PMP; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) bool sata_pmp_attached(struct ata_port *ap) >{ > return ap->nr_pmp_links != 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_is_host_link(const struct ata_link *link) >{ > return link == &link->ap->link || link == link->ap->slave_link; >} ># 1276 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int sata_srst_pmp(struct ata_link *link) >{ > if (sata_pmp_supported(link->ap) && ata_is_host_link(link)) > return SATA_PMP_CTRL_PORT; > return link->pmp; >} > > > > >__attribute__((format(printf, 3, 4))) >int ata_port_printk(const struct ata_port *ap, const char *level, > const char *fmt, ...); >__attribute__((format(printf, 3, 4))) >int ata_link_printk(const struct ata_link *link, const char *level, > const char *fmt, ...); >__attribute__((format(printf, 3, 4))) >int ata_dev_printk(const struct ata_device *dev, const char *level, > const char *fmt, ...); ># 1329 "include/linux/libata.h" >void ata_print_version(const struct device *dev, const char *version); > > > > >extern __attribute__((format(printf, 2, 3))) >void __ata_ehi_push_desc(struct ata_eh_info *ehi, const char *fmt, ...); >extern __attribute__((format(printf, 2, 3))) >void ata_ehi_push_desc(struct ata_eh_info *ehi, const char *fmt, ...); >extern void ata_ehi_clear_desc(struct ata_eh_info *ehi); > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ata_ehi_hotplugged(struct ata_eh_info *ehi) >{ > ehi->probe_mask |= (1 << ATA_MAX_DEVICES) - 1; > ehi->flags |= ATA_EHI_HOTPLUGGED; > ehi->action |= ATA_EH_RESET | ATA_EH_ENABLE_LINK; > ehi->err_mask |= AC_ERR_ATA_BUS; >} > > > > >extern __attribute__((format(printf, 2, 3))) >void ata_port_desc(struct ata_port *ap, const char *fmt, ...); > >extern void ata_port_pbar_desc(struct ata_port *ap, int bar, ssize_t offset, > const char *name); > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_tag_valid(unsigned int tag) >{ > return (tag < ATA_MAX_QUEUE) ? 1 : 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_tag_internal(unsigned int tag) >{ > return tag == ATA_TAG_INTERNAL; >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_class_enabled(unsigned int class) >{ > return class == ATA_DEV_ATA || class == ATA_DEV_ATAPI || > class == ATA_DEV_PMP || class == ATA_DEV_SEMB; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_class_disabled(unsigned int class) >{ > return class == ATA_DEV_ATA_UNSUP || class == ATA_DEV_ATAPI_UNSUP || > class == ATA_DEV_PMP_UNSUP || class == ATA_DEV_SEMB_UNSUP; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_class_absent(unsigned int class) >{ > return !ata_class_enabled(class) && !ata_class_disabled(class); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_dev_enabled(const struct ata_device *dev) >{ > return ata_class_enabled(dev->class); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_dev_disabled(const struct ata_device *dev) >{ > return ata_class_disabled(dev->class); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_dev_absent(const struct ata_device *dev) >{ > return ata_class_absent(dev->class); >} > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_link_max_devices(const struct ata_link *link) >{ > if (ata_is_host_link(link) && link->ap->flags & ATA_FLAG_SLAVE_POSS) > return 2; > return 1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_link_active(struct ata_link *link) >{ > return ata_tag_valid(link->active_tag) || link->sactive; >} ># 1430 "include/linux/libata.h" >enum ata_link_iter_mode { > ATA_LITER_EDGE, > > ATA_LITER_HOST_FIRST, > ATA_LITER_PMP_FIRST, > >}; > >enum ata_dev_iter_mode { > ATA_DITER_ENABLED, > ATA_DITER_ENABLED_REVERSE, > ATA_DITER_ALL, > ATA_DITER_ALL_REVERSE, >}; > >extern struct ata_link *ata_link_next(struct ata_link *link, > struct ata_port *ap, > enum ata_link_iter_mode mode); > >extern struct ata_device *ata_dev_next(struct ata_device *dev, > struct ata_link *link, > enum ata_dev_iter_mode mode); ># 1485 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_ncq_enabled(struct ata_device *dev) >{ > return (dev->flags & (ATA_DFLAG_PIO | ATA_DFLAG_NCQ_OFF | > ATA_DFLAG_NCQ)) == ATA_DFLAG_NCQ; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ata_qc_set_polling(struct ata_queued_cmd *qc) >{ > qc->tf.ctl |= ATA_NIEN; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct ata_queued_cmd *__ata_qc_from_tag(struct ata_port *ap, > unsigned int tag) >{ > if (__builtin_expect(!!(ata_tag_valid(tag)), 1)) > return &ap->qcmd[tag]; > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct ata_queued_cmd *ata_qc_from_tag(struct ata_port *ap, > unsigned int tag) >{ > struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); > > if (__builtin_expect(!!(!qc), 0) || !ap->ops->error_handler) > return qc; > > if ((qc->flags & (ATA_QCFLAG_ACTIVE | > ATA_QCFLAG_FAILED)) == ATA_QCFLAG_ACTIVE) > return qc; > > return ((void *)0); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ata_qc_raw_nbytes(struct ata_queued_cmd *qc) >{ > return qc->nbytes - ({ typeof(qc->extrabytes) _min1 = (qc->extrabytes); typeof(qc->nbytes) _min2 = (qc->nbytes); (void) (&_min1 == &_min2); _min1 < _min2 ? _min1 : _min2; }); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf) >{ > ({ void *__p = (tf); size_t __n = sizeof(*tf); if ((__n) != 0) { if (__builtin_constant_p((0)) && (0) == 0) __memzero((__p),(__n)); else memset((__p),(0),(__n)); } (__p); }); > > > tf->ctl = dev->link->ap->ctl; > > > > if (dev->devno == 0) > tf->device = ATA_DEVICE_OBS; > else > tf->device = ATA_DEVICE_OBS | ATA_DEV1; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) void ata_qc_reinit(struct ata_queued_cmd *qc) >{ > qc->dma_dir = DMA_NONE; > qc->sg = ((void *)0); > qc->flags = 0; > qc->cursg = ((void *)0); > qc->cursg_ofs = 0; > qc->nbytes = qc->extrabytes = qc->curbytes = 0; > qc->n_elem = 0; > qc->err_mask = 0; > qc->sect_size = ATA_SECT_SIZE; > > ata_tf_init(qc->dev, &qc->tf); > > > qc->result_tf.command = ATA_DRDY; > qc->result_tf.feature = 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_try_flush_cache(const struct ata_device *dev) >{ > return ata_id_wcache_enabled(dev->id) || > ata_id_has_flush(dev->id) || > ata_id_has_flush_ext(dev->id); >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int ac_err_mask(u8 status) >{ > if (status & (ATA_BUSY | ATA_DRQ)) > return AC_ERR_HSM; > if (status & (ATA_ERR | ATA_DF)) > return AC_ERR_DEV; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned int __ac_err_mask(u8 status) >{ > unsigned int mask = ac_err_mask(status); > if (mask == 0) > return AC_ERR_OTHER; > return mask; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) struct ata_port *ata_shost_to_port(struct Scsi_Host *host) >{ > return *(struct ata_port **)&host->hostdata[0]; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_check_ready(u8 status) >{ > if (!(status & ATA_BUSY)) > return 1; > > > if (status == 0xff) > return -19; > > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) unsigned long ata_deadline(unsigned long from_jiffies, > unsigned long timeout_msecs) >{ > return from_jiffies + msecs_to_jiffies(timeout_msecs); >} > > > > > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_using_mwdma(struct ata_device *adev) >{ > if (adev->dma_mode >= XFER_MW_DMA_0 && adev->dma_mode <= XFER_MW_DMA_4) > return 1; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_using_udma(struct ata_device *adev) >{ > if (adev->dma_mode >= XFER_UDMA_0 && adev->dma_mode <= XFER_UDMA_7) > return 1; > return 0; >} > >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) int ata_dma_enabled(struct ata_device *adev) >{ > return (adev->dma_mode == 0xFF ? 0 : 1); >} > > > > > > >extern const struct ata_port_operations sata_pmp_port_ops; > >extern int sata_pmp_qc_defer_cmd_switch(struct ata_queued_cmd *qc); >extern void sata_pmp_error_handler(struct ata_port *ap); ># 1652 "include/linux/libata.h" >extern const struct ata_port_operations ata_sff_port_ops; >extern const struct ata_port_operations ata_bmdma32_port_ops; > > > > > > > >extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device); >extern u8 ata_sff_check_status(struct ata_port *ap); >extern void ata_sff_pause(struct ata_port *ap); >extern void ata_sff_dma_pause(struct ata_port *ap); >extern int ata_sff_busy_sleep(struct ata_port *ap, > unsigned long timeout_pat, unsigned long timeout); >extern int ata_sff_wait_ready(struct ata_link *link, unsigned long deadline); >extern void ata_sff_tf_load(struct ata_port *ap, const struct ata_taskfile *tf); >extern void ata_sff_tf_read(struct ata_port *ap, struct ata_taskfile *tf); >extern void ata_sff_exec_command(struct ata_port *ap, > const struct ata_taskfile *tf); >extern unsigned int ata_sff_data_xfer(struct ata_device *dev, > unsigned char *buf, unsigned int buflen, int rw); >extern unsigned int ata_sff_data_xfer32(struct ata_device *dev, > unsigned char *buf, unsigned int buflen, int rw); >extern unsigned int ata_sff_data_xfer_noirq(struct ata_device *dev, > unsigned char *buf, unsigned int buflen, int rw); >extern void ata_sff_irq_on(struct ata_port *ap); >extern void ata_sff_irq_clear(struct ata_port *ap); >extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, > u8 status, int in_wq); >extern void ata_sff_queue_work(struct work_struct *work); >extern void ata_sff_queue_delayed_work(struct delayed_work *dwork, > unsigned long delay); >extern void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay); >extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc); >extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc); >extern unsigned int ata_sff_port_intr(struct ata_port *ap, > struct ata_queued_cmd *qc); >extern irqreturn_t ata_sff_interrupt(int irq, void *dev_instance); >extern void ata_sff_lost_interrupt(struct ata_port *ap); >extern void ata_sff_freeze(struct ata_port *ap); >extern void ata_sff_thaw(struct ata_port *ap); >extern int ata_sff_prereset(struct ata_link *link, unsigned long deadline); >extern unsigned int ata_sff_dev_classify(struct ata_device *dev, int present, > u8 *r_err); >extern int ata_sff_wait_after_reset(struct ata_link *link, unsigned int devmask, > unsigned long deadline); >extern int ata_sff_softreset(struct ata_link *link, unsigned int *classes, > unsigned long deadline); >extern int sata_sff_hardreset(struct ata_link *link, unsigned int *class, > unsigned long deadline); >extern void ata_sff_postreset(struct ata_link *link, unsigned int *classes); >extern void ata_sff_drain_fifo(struct ata_queued_cmd *qc); >extern void ata_sff_error_handler(struct ata_port *ap); >extern void ata_sff_std_ports(struct ata_ioports *ioaddr); > >extern int ata_pci_sff_init_host(struct ata_host *host); >extern int ata_pci_sff_prepare_host(struct pci_dev *pdev, > const struct ata_port_info * const * ppi, > struct ata_host **r_host); >extern int ata_pci_sff_activate_host(struct ata_host *host, > irq_handler_t irq_handler, > struct scsi_host_template *sht); >extern int ata_pci_sff_init_one(struct pci_dev *pdev, > const struct ata_port_info * const * ppi, > struct scsi_host_template *sht, void *host_priv, int hflags); > > > > >extern const struct ata_port_operations ata_bmdma_port_ops; > > > > > > >extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc); >extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc); >extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc); >extern unsigned int ata_bmdma_port_intr(struct ata_port *ap, > struct ata_queued_cmd *qc); >extern irqreturn_t ata_bmdma_interrupt(int irq, void *dev_instance); >extern void ata_bmdma_error_handler(struct ata_port *ap); >extern void ata_bmdma_post_internal_cmd(struct ata_queued_cmd *qc); >extern void ata_bmdma_irq_clear(struct ata_port *ap); >extern void ata_bmdma_setup(struct ata_queued_cmd *qc); >extern void ata_bmdma_start(struct ata_queued_cmd *qc); >extern void ata_bmdma_stop(struct ata_queued_cmd *qc); >extern u8 ata_bmdma_status(struct ata_port *ap); >extern int ata_bmdma_port_start(struct ata_port *ap); >extern int ata_bmdma_port_start32(struct ata_port *ap); > > >extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev); >extern void ata_pci_bmdma_init(struct ata_host *host); >extern int ata_pci_bmdma_prepare_host(struct pci_dev *pdev, > const struct ata_port_info * const * ppi, > struct ata_host **r_host); >extern int ata_pci_bmdma_init_one(struct pci_dev *pdev, > const struct ata_port_info * const * ppi, > struct scsi_host_template *sht, > void *host_priv, int hflags); ># 1771 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 ata_sff_busy_wait(struct ata_port *ap, unsigned int bits, > unsigned int max) >{ > u8 status; > > do { > (__builtin_constant_p(10) ? ((10) > (2 * 1000) ? __bad_udelay() : arm_delay_ops.const_udelay((10) * (((2199023UL) * 100) >> 11))) : arm_delay_ops.udelay(10)); > status = ap->ops->sff_check_status(ap); > max--; > } while (status != 0xff && (status & bits) && (max > 0)); > > return status; >} ># 1795 "include/linux/libata.h" >static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) u8 ata_wait_idle(struct ata_port *ap) >{ > u8 status = ata_sff_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000); > > > > > > > > return status; >} ># 33 "drivers/ata/pata_optidma.c" 2 > > > > >enum { > READ_REG = 0, > WRITE_REG = 1, > CNTRL_REG = 3, > STRAP_REG = 5, > MISC_REG = 6 >}; > >static int pci_clock; ># 55 "drivers/ata/pata_optidma.c" >static int optidma_pre_reset(struct ata_link *link, unsigned long deadline) >{ > struct ata_port *ap = link->ap; > struct pci_dev *pdev = ({ const typeof( ((struct pci_dev *)0)->dev ) *__mptr = (ap->host->dev); (struct pci_dev *)( (char *)__mptr - __builtin_offsetof(struct pci_dev,dev) );}); > static const struct pci_bits optidma_enable_bits = { > 0x40, 1, 0x08, 0x00 > }; > > if (ap->port_no && !pci_test_config_bits(pdev, &optidma_enable_bits)) > return -2; > > return ata_sff_prereset(link, deadline); >} ># 77 "drivers/ata/pata_optidma.c" >static void optidma_unlock(struct ata_port *ap) >{ > void *regio = ap->ioaddr.cmd_addr; > > > ({ unsigned int __v = (( __u16)(__le16)(( __le16)__raw_readw(regio + 1))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }); > ({ unsigned int __v = (( __u16)(__le16)(( __le16)__raw_readw(regio + 1))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }); > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(3, regio + 2); }); >} ># 94 "drivers/ata/pata_optidma.c" >static void optidma_lock(struct ata_port *ap) >{ > void *regio = ap->ioaddr.cmd_addr; > > > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(0x83, regio + 2); }); >} ># 116 "drivers/ata/pata_optidma.c" >static void optidma_mode_setup(struct ata_port *ap, struct ata_device *adev, u8 mode) >{ > struct ata_device *pair = ata_dev_pair(adev); > int pio = adev->pio_mode - XFER_PIO_0; > int dma = adev->dma_mode - XFER_MW_DMA_0; > void *regio = ap->ioaddr.cmd_addr; > u8 addr; > > > static const u8 addr_timing[2][5] = { > { 0x30, 0x20, 0x20, 0x10, 0x10 }, > { 0x20, 0x20, 0x10, 0x10, 0x10 } > }; > static const u8 data_rec_timing[2][5] = { > { 0x59, 0x46, 0x30, 0x20, 0x20 }, > { 0x46, 0x32, 0x20, 0x20, 0x10 } > }; > static const u8 dma_data_rec_timing[2][3] = { > { 0x76, 0x20, 0x20 }, > { 0x54, 0x20, 0x10 } > }; > > > optidma_unlock(ap); ># 148 "drivers/ata/pata_optidma.c" > if (mode >= XFER_MW_DMA_0) > addr = 0; > else > addr = addr_timing[pci_clock][pio]; > > if (pair) { > u8 pair_addr; > > if (pair->dma_mode) > pair_addr = 0; > else > pair_addr = addr_timing[pci_clock][pair->pio_mode - XFER_PIO_0]; > if (pair_addr > addr) > addr = pair_addr; > } > > > > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(adev->devno, regio + MISC_REG); }); > > if (mode < XFER_MW_DMA_0) { > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(data_rec_timing[pci_clock][pio], regio + READ_REG); }); > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(data_rec_timing[pci_clock][pio], regio + WRITE_REG); }); > } else if (mode < XFER_UDMA_0) { > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(dma_data_rec_timing[pci_clock][dma], regio + READ_REG); }); > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(dma_data_rec_timing[pci_clock][dma], regio + WRITE_REG); }); > } > > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(addr | adev->devno, regio + MISC_REG); }); > > > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(0x85, regio + CNTRL_REG); }); > > > optidma_lock(ap); > > > > >} ># 201 "drivers/ata/pata_optidma.c" >static void optiplus_mode_setup(struct ata_port *ap, struct ata_device *adev, u8 mode) >{ > struct pci_dev *pdev = ({ const typeof( ((struct pci_dev *)0)->dev ) *__mptr = (ap->host->dev); (struct pci_dev *)( (char *)__mptr - __builtin_offsetof(struct pci_dev,dev) );}); > u8 udcfg; > u8 udslave; > int dev2 = 2 * adev->devno; > int unit = 2 * ap->port_no + adev->devno; > int udma = mode - XFER_UDMA_0; > > pci_read_config_byte(pdev, 0x44, &udcfg); > if (mode <= XFER_UDMA_0) { > udcfg &= ~(1 << unit); > optidma_mode_setup(ap, adev, adev->dma_mode); > } else { > udcfg |= (1 << unit); > if (ap->port_no) { > pci_read_config_byte(pdev, 0x45, &udslave); > udslave &= ~(0x03 << dev2); > udslave |= (udma << dev2); > pci_write_config_byte(pdev, 0x45, udslave); > } else { > udcfg &= ~(0x30 << dev2); > udcfg |= (udma << dev2); > } > } > pci_write_config_byte(pdev, 0x44, udcfg); >} ># 239 "drivers/ata/pata_optidma.c" >static void optidma_set_pio_mode(struct ata_port *ap, struct ata_device *adev) >{ > optidma_mode_setup(ap, adev, adev->pio_mode); >} ># 254 "drivers/ata/pata_optidma.c" >static void optidma_set_dma_mode(struct ata_port *ap, struct ata_device *adev) >{ > optidma_mode_setup(ap, adev, adev->dma_mode); >} ># 269 "drivers/ata/pata_optidma.c" >static void optiplus_set_pio_mode(struct ata_port *ap, struct ata_device *adev) >{ > optiplus_mode_setup(ap, adev, adev->pio_mode); >} ># 284 "drivers/ata/pata_optidma.c" >static void optiplus_set_dma_mode(struct ata_port *ap, struct ata_device *adev) >{ > optiplus_mode_setup(ap, adev, adev->dma_mode); >} ># 297 "drivers/ata/pata_optidma.c" >static u8 optidma_make_bits43(struct ata_device *adev) >{ > static const u8 bits43[5] = { > 0, 0, 0, 1, 2 > }; > if (!ata_dev_enabled(adev)) > return 0; > if (adev->dma_mode) > return adev->dma_mode - XFER_MW_DMA_0; > return bits43[adev->pio_mode - XFER_PIO_0]; >} ># 318 "drivers/ata/pata_optidma.c" >static int optidma_set_mode(struct ata_link *link, struct ata_device **r_failed) >{ > struct ata_port *ap = link->ap; > u8 r; > int nybble = 4 * ap->port_no; > struct pci_dev *pdev = ({ const typeof( ((struct pci_dev *)0)->dev ) *__mptr = (ap->host->dev); (struct pci_dev *)( (char *)__mptr - __builtin_offsetof(struct pci_dev,dev) );}); > int rc = ata_do_set_mode(link, r_failed); > if (rc == 0) { > pci_read_config_byte(pdev, 0x43, &r); > > r &= (0x0F << nybble); > r |= (optidma_make_bits43(&link->device[0]) + > (optidma_make_bits43(&link->device[0]) << 2)) << nybble; > pci_write_config_byte(pdev, 0x43, r); > } > return rc; >} > >static struct scsi_host_template optidma_sht = { > .module = (&__this_module), .name = "pata_optidma", .ioctl = ata_scsi_ioctl, .queuecommand = ata_scsi_queuecmd, .can_queue = ATA_DEF_QUEUE, .this_id = ATA_SHT_THIS_ID, .cmd_per_lun = ATA_SHT_CMD_PER_LUN, .emulated = ATA_SHT_EMULATED, .use_clustering = ATA_SHT_USE_CLUSTERING, .proc_name = "pata_optidma", .slave_configure = ata_scsi_slave_config, .slave_destroy = ata_scsi_slave_destroy, .bios_param = ata_std_bios_param, .unlock_native_capacity = ata_scsi_unlock_native_capacity, .sdev_attrs = ata_common_sdev_attrs, .sg_tablesize = LIBATA_MAX_PRD, .dma_boundary = 0xffffUL, >}; > >static struct ata_port_operations optidma_port_ops = { > .inherits = &ata_bmdma_port_ops, > .cable_detect = ata_cable_40wire, > .set_piomode = optidma_set_pio_mode, > .set_dmamode = optidma_set_dma_mode, > .set_mode = optidma_set_mode, > .prereset = optidma_pre_reset, >}; > >static struct ata_port_operations optiplus_port_ops = { > .inherits = &optidma_port_ops, > .set_piomode = optiplus_set_pio_mode, > .set_dmamode = optiplus_set_dma_mode, >}; > > > > > > >static int optiplus_with_udma(struct pci_dev *pdev) >{ > u8 r; > int ret = 0; > int ioport = 0x22; > struct pci_dev *dev1; > > > dev1 = pci_get_device(0x1045, 0xC701, ((void *)0)); > if (dev1 == ((void *)0)) > return 0; > > > pci_read_config_byte(dev1, 0x08, &r); > if (r < 0x10) > goto done_nomsg; > > pci_read_config_byte(dev1, 0x5F, &r); > ioport |= (r << 8); > ({ do { __asm__ __volatile__ ("dsb" : : : "memory"); outer_sync(); } while (0); __raw_writeb(0x10,__typesafe_io(0xfee00000 + ((ioport) & ((resource_size_t)0xfffff)))); }); > > if ((({ __u8 __v = __raw_readb(__typesafe_io(0xfee00000 + ((ioport + 2) & ((resource_size_t)0xfffff)))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }) & 1) == 0) > goto done; > > > pci_read_config_byte(pdev, 0x42, &r); > if ((r & 0x36) != 0x36) > goto done; > pci_read_config_byte(dev1, 0x52, &r); > if (r & 0x80) > ret = 1; >done: > printk("\001" "4" "UDMA not supported in this configuration.\n"); >done_nomsg: > pci_dev_put(dev1); > return ret; >} > >static int optidma_init_one(struct pci_dev *dev, const struct pci_device_id *id) >{ > static const struct ata_port_info info_82c700 = { > .flags = ATA_FLAG_SLAVE_POSS, > .pio_mask = ATA_PIO4, > .mwdma_mask = ATA_MWDMA2, > .port_ops = &optidma_port_ops > }; > static const struct ata_port_info info_82c700_udma = { > .flags = ATA_FLAG_SLAVE_POSS, > .pio_mask = ATA_PIO4, > .mwdma_mask = ATA_MWDMA2, > .udma_mask = ATA_UDMA2, > .port_ops = &optiplus_port_ops > }; > const struct ata_port_info *ppi[] = { &info_82c700, ((void *)0) }; > int rc; > > ({ static bool __print_once; if (!__print_once) { __print_once = true; ata_print_version(&dev->dev, "0.3.2"); } }); > > rc = pcim_enable_device(dev); > if (rc) > return rc; > > > ({ __u16 __v = (( __u16)(__le16)(( __le16) __raw_readw(__typesafe_io(0xfee00000 + ((0x1F1) & ((resource_size_t)0xfffff)))))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }); > ({ __u16 __v = (( __u16)(__le16)(( __le16) __raw_readw(__typesafe_io(0xfee00000 + ((0x1F1) & ((resource_size_t)0xfffff)))))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }); > pci_clock = ({ __u8 __v = __raw_readb(__typesafe_io(0xfee00000 + ((0x1F5) & ((resource_size_t)0xfffff)))); __asm__ __volatile__ ("dsb" : : : "memory"); __v; }) & 1; > > if (optiplus_with_udma(dev)) > ppi[0] = &info_82c700_udma; > > return ata_pci_bmdma_init_one(dev, ppi, &optidma_sht, ((void *)0), 0); >} > >static const struct pci_device_id optidma[] = { > { 0x1045, (0xD568), (~0), (~0), 0, 0, }, > > { }, >}; > >static struct pci_driver optidma_pci_driver = { > .name = "pata_optidma", > .id_table = optidma, > .probe = optidma_init_one, > .remove = ata_pci_remove_one, > > .suspend = ata_pci_device_suspend, > .resume = ata_pci_device_resume, > >}; > >static int __attribute__ ((__section__(".init.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) optidma_pci_driver_init(void) { return __pci_register_driver(&(optidma_pci_driver), (&__this_module), "pata_optidma"); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) initcall_t __inittest(void) { return optidma_pci_driver_init; } int init_module(void) __attribute__((alias("optidma_pci_driver_init")));; static void __attribute__ ((__section__(".exit.text"))) __attribute__((__cold__)) __attribute__((no_instrument_function)) optidma_pci_driver_exit(void) { pci_unregister_driver(&(optidma_pci_driver)); } static inline __attribute__((always_inline)) __attribute__((no_instrument_function)) exitcall_t __exittest(void) { return optidma_pci_driver_exit; } void cleanup_module(void) __attribute__((alias("optidma_pci_driver_exit")));;; > >static const char __UNIQUE_ID_author0[] __attribute__((__used__)) __attribute__((section(".modinfo"), unused, aligned(1))) = "author" "=" "Alan Cox"; >static const char __UNIQUE_ID_description1[] __attribute__((__used__)) __attribute__((section(".modinfo"), unused, aligned(1))) = "description" "=" "low-level driver for Opti Firestar/Firestar Plus"; >static const char __UNIQUE_ID_license2[] __attribute__((__used__)) __attribute__((section(".modinfo"), unused, aligned(1))) = "license" "=" "GPL"; >extern const struct pci_device_id __mod_pci_device_table __attribute__ ((unused, alias("optidma"))); >static const char __UNIQUE_ID_version3[] __attribute__((__used__)) __attribute__((section(".modinfo"), unused, aligned(1))) = "version" "=" "0.3.2";
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 912857
: 699677