An annotated version of the translation unit with minimal whitespace. Indentation is according to the depth of the #include stack. Line numbers are linked to the original source code.
Highlighted filenames take you forward to the next occasion in the include graph of the file being pre-processed, in this case: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c
Return to Index
# Starting FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proc_fs.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proc_fs.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/types.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/types.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/types.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/types.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/types.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/types.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/int-ll64.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/int-ll64.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/int-ll64.h ........[ 19]: typedef __signed__ char __s8; ........[ 20]: typedef unsigned char __u8; ........[ 22]: typedef __signed__ short __s16; ........[ 23]: typedef unsigned short __u16; ........[ 25]: typedef __signed__ int __s32; ........[ 26]: typedef unsigned int __u32; ........[ 29]: __extension__ typedef __signed__ long long __s64; ........[ 30]: __extension__ typedef unsigned long long __u64; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/int-ll64.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/int-ll64.h .......[ 15]: typedef signed char s8; .......[ 16]: typedef unsigned char u8; .......[ 18]: typedef signed short s16; .......[ 19]: typedef unsigned short u16; .......[ 21]: typedef signed int s32; .......[ 22]: typedef unsigned int u32; .......[ 24]: typedef signed long long s64; .......[ 25]: typedef unsigned long long u64; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/int-ll64.h ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/types.h .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/types.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/posix_types.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/posix_types.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stddef.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stddef.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/stddef.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/stddef.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/compiler.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/compiler.h ........[ 72]: struct ftrace_branch_data { ........[ 73]: const char *func; ........[ 74]: const char *file; ........[ 75]: unsigned line; ........[ 76]: union { ........[ 77]: struct { ........[ 78]: unsigned long correct; ........[ 79]: unsigned long incorrect; ........[ 80]: }; ........[ 81]: struct { ........[ 82]: unsigned long miss; ........[ 83]: unsigned long hit; ........[ 84]: }; ........[ 85]: unsigned long miss_hit[2]; ........[ 86]: }; ........[ 87]: }; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/compiler.h .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/stddef.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stddef.h ......[ 10]: enum { ......[ 11]: false = 0, ......[ 12]: true = 1 ......[ 13]: }; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stddef.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/posix_types.h .....[ 24]: typedef struct { .....[ 25]: unsigned long fds_bits[1024 / (8 * sizeof(long))]; .....[ 26]: } __kernel_fd_set; .....[ 29]: typedef void (*__kernel_sighandler_t)(int); .....[ 32]: typedef int __kernel_key_t; .....[ 33]: typedef int __kernel_mqd_t; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/posix_types.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h ....[ 32]: typedef __u16 __le16; ....[ 33]: typedef __u16 __be16; ....[ 34]: typedef __u32 __le32; ....[ 35]: typedef __u32 __be32; ....[ 36]: typedef __u64 __le64; ....[ 37]: typedef __u64 __be64; ....[ 39]: typedef __u16 __sum16; ....[ 40]: typedef __u32 __wsum; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/types.h ...[ 12]: typedef __u32 __kernel_dev_t; ...[ 14]: typedef __kernel_fd_set fd_set; ...[ 15]: typedef __kernel_dev_t dev_t; ...[ 16]: typedef __kernel_ino_t ino_t; ...[ 17]: typedef __kernel_mode_t mode_t; ...[ 18]: typedef unsigned short umode_t; ...[ 19]: typedef __u32 nlink_t; ...[ 20]: typedef __kernel_off_t off_t; ...[ 21]: typedef __kernel_pid_t pid_t; ...[ 22]: typedef __kernel_daddr_t daddr_t; ...[ 23]: typedef __kernel_key_t key_t; ...[ 24]: typedef __kernel_suseconds_t suseconds_t; ...[ 25]: typedef __kernel_timer_t timer_t; ...[ 26]: typedef __kernel_clockid_t clockid_t; ...[ 27]: typedef __kernel_mqd_t mqd_t; ...[ 29]: typedef _Bool bool; ...[ 31]: typedef __kernel_uid32_t uid_t; ...[ 32]: typedef __kernel_gid32_t gid_t; ...[ 33]: typedef __kernel_uid16_t uid16_t; ...[ 34]: typedef __kernel_gid16_t gid16_t; ...[ 36]: typedef unsigned long uintptr_t; ...[ 40]: typedef __kernel_old_uid_t old_uid_t; ...[ 41]: typedef __kernel_old_gid_t old_gid_t; ...[ 45]: typedef __kernel_loff_t loff_t; ...[ 54]: typedef __kernel_size_t size_t; ...[ 59]: typedef __kernel_ssize_t ssize_t; ...[ 64]: typedef __kernel_ptrdiff_t ptrdiff_t; ...[ 69]: typedef __kernel_time_t time_t; ...[ 74]: typedef __kernel_clock_t clock_t; ...[ 79]: typedef __kernel_caddr_t caddr_t; ...[ 83]: typedef unsigned char u_char; ...[ 84]: typedef unsigned short u_short; ...[ 85]: typedef unsigned int u_int; ...[ 86]: typedef unsigned long u_long; ...[ 89]: typedef unsigned char unchar; ...[ 90]: typedef unsigned short ushort; ...[ 91]: typedef unsigned int uint; ...[ 92]: typedef unsigned long ulong; ...[ 97]: typedef __u8 u_int8_t; ...[ 98]: typedef __s8 int8_t; ...[ 99]: typedef __u16 u_int16_t; ...[ 100]: typedef __s16 int16_t; ...[ 101]: typedef __u32 u_int32_t; ...[ 102]: typedef __s32 int32_t; ...[ 106]: typedef __u8 uint8_t; ...[ 107]: typedef __u16 uint16_t; ...[ 108]: typedef __u32 uint32_t; ...[ 111]: typedef __u64 uint64_t; ...[ 112]: typedef __u64 u_int64_t; ...[ 113]: typedef __s64 int64_t; ...[ 133]: typedef unsigned long sector_t; ...[ 134]: typedef unsigned long blkcnt_t; ...[ 146]: typedef u64 dma_addr_t; ...[ 157]: typedef unsigned gfp_t; ...[ 158]: typedef unsigned fmode_t; ...[ 159]: typedef unsigned oom_flags_t; ...[ 162]: typedef u64 phys_addr_t; ...[ 167]: typedef phys_addr_t resource_size_t; ...[ 173]: typedef unsigned long irq_hw_number_t; ...[ 175]: typedef struct { ...[ 176]: int counter; ...[ 177]: } atomic_t; ...[ 180]: typedef struct { ...[ 181]: long counter; ...[ 182]: } atomic64_t; ...[ 185]: struct list_head { ...[ 186]: struct list_head *next, *prev; ...[ 187]: }; ...[ 189]: struct hlist_head { ...[ 190]: struct hlist_node *first; ...[ 191]: }; ...[ 193]: struct hlist_node { ...[ 194]: struct hlist_node *next, **pprev; ...[ 195]: }; ...[ 197]: struct ustat { ...[ 198]: __kernel_daddr_t f_tfree; ...[ 199]: __kernel_ino_t f_tinode; ...[ 200]: char f_fname[6]; ...[ 201]: char f_fpack[6]; ...[ 202]: }; ...[ 209]: struct callback_head { ...[ 210]: struct callback_head *next; ...[ 211]: void (*func)(struct callback_head *head); ...[ 212]: }; ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/types.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proc_fs.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/linkage.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/linkage.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/export.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/export.h .....[ 26]: struct kernel_symbol .....[ 27]: { .....[ 28]: unsigned long value; .....[ 29]: const char *name; .....[ 30]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/export.h ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/linkage.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/wait.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/wait.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list.h .....[ 24]: static inline __attribute__((no_instrument_function)) void INIT_LIST_HEAD(struct list_head *list) .....[ 25]: { .....[ 26]: list->next = list; .....[ 27]: list->prev = list; .....[ 28]: } .....[ 37]: static inline __attribute__((no_instrument_function)) void __list_add(struct list_head *new, .....[ 38]: struct list_head *prev, .....[ 39]: struct list_head *next) .....[ 40]: { .....[ 41]: next->prev = new; .....[ 42]: new->next = next; .....[ 43]: new->prev = prev; .....[ 44]: prev->next = new; .....[ 45]: } .....[ 60]: static inline __attribute__((no_instrument_function)) void list_add(struct list_head *new, struct list_head *\ ..... head) .....[ 61]: { .....[ 62]: __list_add(new, head, head->next); .....[ 63]: } .....[ 74]: static inline __attribute__((no_instrument_function)) void list_add_tail(struct list_head *new, struct list_head \ ..... *head) .....[ 75]: { .....[ 76]: __list_add(new, head->prev, head); .....[ 77]: } .....[ 86]: static inline __attribute__((no_instrument_function)) void __list_del(struct list_head * prev, struct list_head \ ..... * next) .....[ 87]: { .....[ 88]: next->prev = prev; .....[ 89]: prev->next = next; .....[ 90]: } .....[ 99]: static inline __attribute__((no_instrument_function)) void __list_del_entry(struct list_head *entry) .....[ 100]: { .....[ 101]: __list_del(entry->prev, entry->next); .....[ 102]: } .....[ 104]: static inline __attribute__((no_instrument_function)) void list_del(struct list_head *entry) .....[ 105]: { .....[ 106]: __list_del(entry->prev, entry->next); .....[ 107]: entry->next = ((void *) 0x00100100 + (0xdead000000000000UL)); .....[ 108]: entry->prev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 109]: } .....[ 122]: static inline __attribute__((no_instrument_function)) void list_replace(struct list_head *old, .....[ 123]: struct list_head *new) .....[ 124]: { .....[ 125]: new->next = old->next; .....[ 126]: new->next->prev = new; .....[ 127]: new->prev = old->prev; .....[ 128]: new->prev->next = new; .....[ 129]: } .....[ 131]: static inline __attribute__((no_instrument_function)) void list_replace_init(struct list_head *old, .....[ 132]: struct list_head *new) .....[ 133]: { .....[ 134]: list_replace(old, new); .....[ 135]: INIT_LIST_HEAD(old); .....[ 136]: } .....[ 142]: static inline __attribute__((no_instrument_function)) void list_del_init(struct list_head *entry) .....[ 143]: { .....[ 144]: __list_del_entry(entry); .....[ 145]: INIT_LIST_HEAD(entry); .....[ 146]: } .....[ 153]: static inline __attribute__((no_instrument_function)) void list_move(struct list_head *list, struct list_head \ ..... *head) .....[ 154]: { .....[ 155]: __list_del_entry(list); .....[ 156]: list_add(list, head); .....[ 157]: } .....[ 164]: static inline __attribute__((no_instrument_function)) void list_move_tail(struct list_head *list, .....[ 165]: struct list_head *head) .....[ 166]: { .....[ 167]: __list_del_entry(list); .....[ 168]: list_add_tail(list, head); .....[ 169]: } .....[ 176]: static inline __attribute__((no_instrument_function)) int list_is_last(const struct list_head *list, .....[ 177]: const struct list_head *head) .....[ 178]: { .....[ 179]: return list->next == head; .....[ 180]: } .....[ 186]: static inline __attribute__((no_instrument_function)) int list_empty(const struct list_head *head) .....[ 187]: { .....[ 188]: return head->next == head; .....[ 189]: } .....[ 204]: static inline __attribute__((no_instrument_function)) int list_empty_careful(const struct list_head *head) .....[ 205]: { .....[ 206]: struct list_head *next = head->next; .....[ 207]: return (next == head) && (next == head->prev); .....[ 208]: } .....[ 214]: static inline __attribute__((no_instrument_function)) void list_rotate_left(struct list_head *head) .....[ 215]: { .....[ 216]: struct list_head *first; .....[ 218]: if (!list_empty(head)) { .....[ 219]: first = head->next; .....[ 220]: list_move_tail(first, head); .....[ 221]: } .....[ 222]: } .....[ 228]: static inline __attribute__((no_instrument_function)) int list_is_singular(const struct list_head *head) .....[ 229]: { .....[ 230]: return !list_empty(head) && (head->next == head->prev); .....[ 231]: } .....[ 233]: static inline __attribute__((no_instrument_function)) void __list_cut_position(struct list_head *list, .....[ 234]: struct list_head *head, struct list_head *entry) .....[ 235]: { .....[ 236]: struct list_head *new_first = entry->next; .....[ 237]: list->next = head->next; .....[ 238]: list->next->prev = list; .....[ 239]: list->prev = entry; .....[ 240]: entry->next = list; .....[ 241]: head->next = new_first; .....[ 242]: new_first->prev = head; .....[ 243]: } .....[ 259]: static inline __attribute__((no_instrument_function)) void list_cut_position(struct list_head *list, .....[ 260]: struct list_head *head, struct list_head *entry) .....[ 261]: { .....[ 262]: if (list_empty(head)) .....[ 263]: return; .....[ 264]: if (list_is_singular(head) && .....[ 265]: (head->next != entry && head != entry)) .....[ 266]: return; .....[ 267]: if (entry == head) .....[ 268]: INIT_LIST_HEAD(list); .....[ 269]: else .....[ 270]: __list_cut_position(list, head, entry); .....[ 271]: } .....[ 273]: static inline __attribute__((no_instrument_function)) void __list_splice(const struct list_head *list, .....[ 274]: struct list_head *prev, .....[ 275]: struct list_head *next) .....[ 276]: { .....[ 277]: struct list_head *first = list->next; .....[ 278]: struct list_head *last = list->prev; .....[ 280]: first->prev = prev; .....[ 281]: prev->next = first; .....[ 283]: last->next = next; .....[ 284]: next->prev = last; .....[ 285]: } .....[ 292]: static inline __attribute__((no_instrument_function)) void list_splice(const struct list_head *list, .....[ 293]: struct list_head *head) .....[ 294]: { .....[ 295]: if (!list_empty(list)) .....[ 296]: __list_splice(list, head, head->next); .....[ 297]: } .....[ 304]: static inline __attribute__((no_instrument_function)) void list_splice_tail(struct list_head *list, .....[ 305]: struct list_head *head) .....[ 306]: { .....[ 307]: if (!list_empty(list)) .....[ 308]: __list_splice(list, head->prev, head); .....[ 309]: } .....[ 318]: static inline __attribute__((no_instrument_function)) void list_splice_init(struct list_head *list, .....[ 319]: struct list_head *head) .....[ 320]: { .....[ 321]: if (!list_empty(list)) { .....[ 322]: __list_splice(list, head, head->next); .....[ 323]: INIT_LIST_HEAD(list); .....[ 324]: } .....[ 325]: } .....[ 335]: static inline __attribute__((no_instrument_function)) void list_splice_tail_init(struct list_head *list, .....[ 336]: struct list_head *head) .....[ 337]: { .....[ 338]: if (!list_empty(list)) { .....[ 339]: __list_splice(list, head->prev, head); .....[ 340]: INIT_LIST_HEAD(list); .....[ 341]: } .....[ 342]: } .....[ 597]: static inline __attribute__((no_instrument_function)) void INIT_HLIST_NODE(struct hlist_node *h) .....[ 598]: { .....[ 599]: h->next = ((void *)0); .....[ 600]: h->pprev = ((void *)0); .....[ 601]: } .....[ 603]: static inline __attribute__((no_instrument_function)) int hlist_unhashed(const struct hlist_node *h) .....[ 604]: { .....[ 605]: return !h->pprev; .....[ 606]: } .....[ 608]: static inline __attribute__((no_instrument_function)) int hlist_empty(const struct hlist_head *h) .....[ 609]: { .....[ 610]: return !h->first; .....[ 611]: } .....[ 613]: static inline __attribute__((no_instrument_function)) void __hlist_del(struct hlist_node *n) .....[ 614]: { .....[ 615]: struct hlist_node *next = n->next; .....[ 616]: struct hlist_node **pprev = n->pprev; .....[ 617]: *pprev = next; .....[ 618]: if (next) .....[ 619]: next->pprev = pprev; .....[ 620]: } .....[ 622]: static inline __attribute__((no_instrument_function)) void hlist_del(struct hlist_node *n) .....[ 623]: { .....[ 624]: __hlist_del(n); .....[ 625]: n->next = ((void *) 0x00100100 + (0xdead000000000000UL)); .....[ 626]: n->pprev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 627]: } .....[ 629]: static inline __attribute__((no_instrument_function)) void hlist_del_init(struct hlist_node *n) .....[ 630]: { .....[ 631]: if (!hlist_unhashed(n)) { .....[ 632]: __hlist_del(n); .....[ 633]: INIT_HLIST_NODE(n); .....[ 634]: } .....[ 635]: } .....[ 637]: static inline __attribute__((no_instrument_function)) void hlist_add_head(struct hlist_node *n, struct hlist_head \ ..... *h) .....[ 638]: { .....[ 639]: struct hlist_node *first = h->first; .....[ 640]: n->next = first; .....[ 641]: if (first) .....[ 642]: first->pprev = &n->next; .....[ 643]: h->first = n; .....[ 644]: n->pprev = &h->first; .....[ 645]: } .....[ 648]: static inline __attribute__((no_instrument_function)) void hlist_add_before(struct hlist_node *n, .....[ 649]: struct hlist_node *next) .....[ 650]: { .....[ 651]: n->pprev = next->pprev; .....[ 652]: n->next = next; .....[ 653]: next->pprev = &n->next; .....[ 654]: *(n->pprev) = n; .....[ 655]: } .....[ 657]: static inline __attribute__((no_instrument_function)) void hlist_add_after(struct hlist_node *n, .....[ 658]: struct hlist_node *next) .....[ 659]: { .....[ 660]: next->next = n->next; .....[ 661]: n->next = next; .....[ 662]: next->pprev = &n->next; .....[ 664]: if(next->next) .....[ 665]: next->next->pprev = &next->next; .....[ 666]: } .....[ 669]: static inline __attribute__((no_instrument_function)) void hlist_add_fake(struct hlist_node *n) .....[ 670]: { .....[ 671]: n->pprev = &n->next; .....[ 672]: } .....[ 678]: static inline __attribute__((no_instrument_function)) void hlist_move_list(struct hlist_head *old, .....[ 679]: struct hlist_head *new) .....[ 680]: { .....[ 681]: new->first = old->first; .....[ 682]: if (new->first) .....[ 683]: new->first->pprev = &new->first; .....[ 684]: old->first = ((void *)0); .....[ 685]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/wait.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/preempt.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/preempt.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........# Starting FILE: /usr/include/c++/4.2.1/tr1/stdarg.h .........# Holding FILE: /usr/include/c++/4.2.1/tr1/stdarg.h ..........# Starting FILE: /usr/include/c++/4.2.1/tr1/cstdarg ..........# Holding FILE: /usr/include/c++/4.2.1/tr1/cstdarg ...........# Starting FILE: /usr/include/c++/4.2.1/cstdarg ...........# Holding FILE: /usr/include/c++/4.2.1/cstdarg ............# Starting FILE: /usr/include/c++/4.2.1/bits/c++config.h ............# Holding FILE: /usr/include/c++/4.2.1/bits/c++config.h .............# Starting FILE: /usr/include/c++/4.2.1/bits/os_defines.h .............# Holding FILE: /usr/include/c++/4.2.1/bits/os_defines.h ..............# Starting FILE: /usr/include/unistd.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/_types.h ...............# Holding FILE: /usr/include/_types.h ................# Starting FILE: /usr/include/sys/_types.h ................# Holding FILE: /usr/include/sys/_types.h .................# Starting FILE: /usr/include/machine/_types.h .................# Holding FILE: /usr/include/machine/_types.h ..................# Starting FILE: /usr/include/i386/_types.h ...................# Back in FILE: /usr/include/i386/_types.h ...................[ 37]: typedef signed char __int8_t; ...................[ 41]: typedef unsigned char __uint8_t; ...................[ 42]: typedef short __int16_t; ...................[ 43]: typedef unsigned short __uint16_t; ...................[ 44]: typedef int __int32_t; ...................[ 45]: typedef unsigned int __uint32_t; ...................[ 46]: typedef long long __int64_t; ...................[ 47]: typedef unsigned long long __uint64_t; ...................[ 49]: typedef long __darwin_intptr_t; ...................[ 50]: typedef unsigned int __darwin_natural_t; ...................[ 70]: typedef int __darwin_ct_rune_t; ...................[ 76]: typedef union { ...................[ 77]: char __mbstate8[128]; ...................[ 78]: long long _mbstateL; ...................[ 79]: } __mbstate_t; ...................[ 81]: typedef __mbstate_t __darwin_mbstate_t; ...................[ 88]: typedef int __darwin_ptrdiff_t; ...................[ 94]: typedef unsigned long __darwin_size_t; ...................[ 98]: typedef __builtin_va_list __darwin_va_list; ...................[ 106]: typedef __darwin_ct_rune_t __darwin_wchar_t; ...................[ 109]: typedef __darwin_wchar_t __darwin_rune_t; ...................[ 114]: typedef __darwin_ct_rune_t __darwin_wint_t; ...................[ 117]: typedef unsigned long __darwin_clock_t; ...................[ 118]: typedef __uint32_t __darwin_socklen_t; ...................[ 119]: typedef long __darwin_ssize_t; ...................[ 120]: typedef long __darwin_time_t; ...................# Ending FILE: /usr/include/i386/_types.h ..................# Ending FILE: /usr/include/machine/_types.h .................# Back in FILE: /usr/include/sys/_types.h .................[ 58]: struct __darwin_pthread_handler_rec .................[ 59]: { .................[ 60]: void (*__routine)(void *); .................[ 61]: void *__arg; .................[ 62]: struct __darwin_pthread_handler_rec *__next; .................[ 63]: }; .................[ 64]: struct _opaque_pthread_attr_t { long __sig; char __opaque[36]; }; .................[ 65]: struct _opaque_pthread_cond_t { long __sig; char __opaque[24]; }; .................[ 66]: struct _opaque_pthread_condattr_t { long __sig; char __opaque[4]; }; .................[ 67]: struct _opaque_pthread_mutex_t { long __sig; char __opaque[40]; }; .................[ 68]: struct _opaque_pthread_mutexattr_t { long __sig; char __opaque[8]; }; .................[ 69]: struct _opaque_pthread_once_t { long __sig; char __opaque[4]; }; .................[ 70]: struct _opaque_pthread_rwlock_t { long __sig; char __opaque[124]; }; .................[ 71]: struct _opaque_pthread_rwlockattr_t { long __sig; char __opaque[12]; }; .................[ 72]: struct _opaque_pthread_t { long __sig; struct __darwin_pthread_handler_rec *__cleanup_stack; char __opaque[596\ ................. ]; }; .................[ 94]: typedef __int64_t __darwin_blkcnt_t; .................[ 95]: typedef __int32_t __darwin_blksize_t; .................[ 96]: typedef __int32_t __darwin_dev_t; .................[ 97]: typedef unsigned int __darwin_fsblkcnt_t; .................[ 98]: typedef unsigned int __darwin_fsfilcnt_t; .................[ 99]: typedef __uint32_t __darwin_gid_t; .................[ 100]: typedef __uint32_t __darwin_id_t; .................[ 101]: typedef __uint64_t __darwin_ino64_t; .................[ 103]: typedef __darwin_ino64_t __darwin_ino_t; .................[ 107]: typedef __darwin_natural_t __darwin_mach_port_name_t; .................[ 108]: typedef __darwin_mach_port_name_t __darwin_mach_port_t; .................[ 109]: typedef __uint16_t __darwin_mode_t; .................[ 110]: typedef __int64_t __darwin_off_t; .................[ 111]: typedef __int32_t __darwin_pid_t; .................[ 112]: typedef struct _opaque_pthread_attr_t .................[ 113]: __darwin_pthread_attr_t; .................[ 114]: typedef struct _opaque_pthread_cond_t .................[ 115]: __darwin_pthread_cond_t; .................[ 116]: typedef struct _opaque_pthread_condattr_t .................[ 117]: __darwin_pthread_condattr_t; .................[ 118]: typedef unsigned long __darwin_pthread_key_t; .................[ 119]: typedef struct _opaque_pthread_mutex_t .................[ 120]: __darwin_pthread_mutex_t; .................[ 121]: typedef struct _opaque_pthread_mutexattr_t .................[ 122]: __darwin_pthread_mutexattr_t; .................[ 123]: typedef struct _opaque_pthread_once_t .................[ 124]: __darwin_pthread_once_t; .................[ 125]: typedef struct _opaque_pthread_rwlock_t .................[ 126]: __darwin_pthread_rwlock_t; .................[ 127]: typedef struct _opaque_pthread_rwlockattr_t .................[ 128]: __darwin_pthread_rwlockattr_t; .................[ 129]: typedef struct _opaque_pthread_t .................[ 130]: *__darwin_pthread_t; .................[ 131]: typedef __uint32_t __darwin_sigset_t; .................[ 132]: typedef __int32_t __darwin_suseconds_t; .................[ 133]: typedef __uint32_t __darwin_uid_t; .................[ 134]: typedef __uint32_t __darwin_useconds_t; .................[ 135]: typedef unsigned char __darwin_uuid_t[16]; .................[ 136]: typedef char __darwin_uuid_string_t[37]; .................# Ending FILE: /usr/include/sys/_types.h ................# Back in FILE: /usr/include/_types.h ................[ 39]: typedef int __darwin_nl_item; ................[ 40]: typedef int __darwin_wctrans_t; ................[ 44]: typedef unsigned long __darwin_wctype_t; ................# Ending FILE: /usr/include/_types.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/unistd.h ................# Back in FILE: /usr/include/sys/unistd.h ................[ 132]: struct accessx_descriptor { ................[ 133]: unsigned int ad_name_offset; ................[ 134]: int ad_flags; ................[ 135]: int ad_pad[2]; ................[ 136]: }; ................# Ending FILE: /usr/include/sys/unistd.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_gid_t.h ................# Back in FILE: /usr/include/sys/_types/_gid_t.h ................[ 30]: typedef __darwin_gid_t gid_t; ................# Ending FILE: /usr/include/sys/_types/_gid_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_intptr_t.h ................# Back in FILE: /usr/include/sys/_types/_intptr_t.h ................[ 30]: typedef __darwin_intptr_t intptr_t; ................# Ending FILE: /usr/include/sys/_types/_intptr_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_off_t.h ................# Back in FILE: /usr/include/sys/_types/_off_t.h ................[ 30]: typedef __darwin_off_t off_t; ................# Ending FILE: /usr/include/sys/_types/_off_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_pid_t.h ................# Back in FILE: /usr/include/sys/_types/_pid_t.h ................[ 30]: typedef __darwin_pid_t pid_t; ................# Ending FILE: /usr/include/sys/_types/_pid_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_uid_t.h ................# Back in FILE: /usr/include/sys/_types/_uid_t.h ................[ 30]: typedef __darwin_uid_t uid_t; ................# Ending FILE: /usr/include/sys/_types/_uid_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_useconds_t.h ................# Back in FILE: /usr/include/sys/_types/_useconds_t.h ................[ 30]: typedef __darwin_useconds_t useconds_t; ................# Ending FILE: /usr/include/sys/_types/_useconds_t.h ...............# Back in FILE: /usr/include/unistd.h ...............[ 424]: void _exit(int) __attribute__((noreturn)); ...............[ 425]: int access(const char *, int); ...............[ 426]: unsigned int ...............[ 427]: alarm(unsigned int); ...............[ 428]: int chdir(const char *); ...............[ 429]: int chown(const char *, uid_t, gid_t); ...............[ 431]: int close(int) __asm("_" "close" "$UNIX2003"); ...............[ 433]: int dup(int); ...............[ 434]: int dup2(int, int); ...............[ 435]: int execl(const char *, const char *, ...); ...............[ 436]: int execle(const char *, const char *, ...); ...............[ 437]: int execlp(const char *, const char *, ...); ...............[ 438]: int execv(const char *, char * const *); ...............[ 439]: int execve(const char *, char * const *, char * const *); ...............[ 440]: int execvp(const char *, char * const *); ...............[ 441]: pid_t fork(void); ...............[ 442]: long fpathconf(int, int); ...............[ 443]: char *getcwd(char *, size_t); ...............[ 444]: gid_t getegid(void); ...............[ 445]: uid_t geteuid(void); ...............[ 446]: gid_t getgid(void); ...............[ 450]: int getgroups(int, gid_t []); ...............[ 452]: char *getlogin(void); ...............[ 453]: pid_t getpgrp(void); ...............[ 454]: pid_t getpid(void); ...............[ 455]: pid_t getppid(void); ...............[ 456]: uid_t getuid(void); ...............[ 457]: int isatty(int); ...............[ 458]: int link(const char *, const char *); ...............[ 459]: off_t lseek(int, off_t, int); ...............[ 460]: long pathconf(const char *, int); ...............[ 462]: int pause(void) __asm("_" "pause" "$UNIX2003"); ...............[ 464]: int pipe(int [2]); ...............[ 466]: ssize_t read(int, void *, size_t) __asm("_" "read" "$UNIX2003"); ...............[ 468]: int rmdir(const char *); ...............[ 469]: int setgid(gid_t); ...............[ 470]: int setpgid(pid_t, pid_t); ...............[ 471]: pid_t setsid(void); ...............[ 472]: int setuid(uid_t); ...............[ 474]: unsigned int ...............[ 475]: sleep(unsigned int) __asm("_" "sleep" "$UNIX2003"); ...............[ 477]: long sysconf(int); ...............[ 478]: pid_t tcgetpgrp(int); ...............[ 479]: int tcsetpgrp(int, pid_t); ...............[ 480]: char *ttyname(int); ...............[ 483]: int ttyname_r(int, char *, size_t) __asm("_" "ttyname_r" "$UNIX2003"); ...............[ 488]: int unlink(const char *); ...............[ 490]: ssize_t write(int, const void *, size_t) __asm("_" "write" "$UNIX2003"); ...............[ 501]: size_t confstr(int, char *, size_t) __asm("_" "confstr" "$UNIX2003"); ...............[ 503]: int getopt(int, char * const [], const char *) __asm("_" "getopt" "$UNIX2003"); ...............[ 505]: extern char *optarg; ...............[ 506]: extern int optind, opterr, optopt; ...............[ 533]: void *brk(const void *); ...............[ 534]: int chroot(const char *) ; ...............[ 537]: char *crypt(const char *, const char *); ...............[ 541]: char *ctermid(char *); ...............[ 544]: void encrypt(char *, int) __asm("_" "encrypt" "$UNIX2003"); ...............[ 548]: int fchdir(int); ...............[ 549]: long gethostid(void); ...............[ 550]: pid_t getpgid(pid_t); ...............[ 551]: pid_t getsid(pid_t); ...............[ 555]: int getdtablesize(void) ; ...............[ 556]: int getpagesize(void) __attribute__((const)) ; ...............[ 557]: char *getpass(const char *) ; ...............[ 562]: char *getwd(char *) ; ...............[ 565]: int lchown(const char *, uid_t, gid_t) __asm("_" "lchown" "$UNIX2003"); ...............[ 567]: int lockf(int, int, off_t) __asm("_" "lockf" "$UNIX2003"); ...............[ 569]: int nice(int) __asm("_" "nice" "$UNIX2003"); ...............[ 571]: ssize_t pread(int, void *, size_t, off_t) __asm("_" "pread" "$UNIX2003"); ...............[ 573]: ssize_t pwrite(int, const void *, size_t, off_t) __asm("_" "pwrite" "$UNIX2003"); ...............[ 582]: void *sbrk(int); ...............[ 586]: pid_t setpgrp(void) __asm("_" "setpgrp" "$UNIX2003"); ...............[ 591]: int setregid(gid_t, gid_t) __asm("_" "setregid" "$UNIX2003"); ...............[ 593]: int setreuid(uid_t, uid_t) __asm("_" "setreuid" "$UNIX2003"); ...............[ 595]: void swab(const void * , void * , ssize_t); ...............[ 596]: void sync(void); ...............[ 597]: int truncate(const char *, off_t); ...............[ 598]: useconds_t ualarm(useconds_t, useconds_t); ...............[ 599]: int usleep(useconds_t) __asm("_" "usleep" "$UNIX2003"); ...............[ 600]: pid_t vfork(void); ...............[ 603]: int fsync(int) __asm("_" "fsync" "$UNIX2003"); ...............[ 605]: int ftruncate(int, off_t); ...............[ 606]: int getlogin_r(char *, size_t); ...............[ 619]: int fchown(int, uid_t, gid_t); ...............[ 620]: int gethostname(char *, size_t); ...............[ 621]: ssize_t readlink(const char * , char * , size_t); ...............[ 622]: int setegid(gid_t); ...............[ 623]: int seteuid(uid_t); ...............[ 624]: int symlink(const char *, const char *); ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/select.h ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_types/_fd_def.h .................[ 46]: typedef struct fd_set { .................[ 47]: __int32_t fds_bits[((((1024) % ((sizeof(__int32_t) * 8))) == 0) ? ((1024) / ((sizeof(__int32_t) * 8))) : (((1024) / (\ ................. (sizeof(__int32_t) * 8))) + 1))]; .................[ 48]: } fd_set; .................[ 52]: static __inline __attribute__((no_instrument_function)) int .................[ 53]: __darwin_fd_isset(int _n, const struct fd_set *_p) .................[ 54]: { .................[ 55]: return (_p->fds_bits[(unsigned long)_n/(sizeof(__int32_t) * 8)] & ((__int32_t)(1<<((unsigned long)_n % (sizeof\ ................. (__int32_t) * 8))))); .................[ 56]: } .................# Ending FILE: /usr/include/sys/_types/_fd_def.h ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_types/_timespec.h .................# Back in FILE: /usr/include/sys/_types/_timespec.h .................[ 30]: struct timespec .................[ 31]: { .................[ 32]: __darwin_time_t tv_sec; .................[ 33]: long tv_nsec; .................[ 34]: }; .................# Ending FILE: /usr/include/sys/_types/_timespec.h ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_types/_timeval.h .................# Back in FILE: /usr/include/sys/_types/_timeval.h .................[ 30]: struct timeval .................[ 31]: { .................[ 32]: __darwin_time_t tv_sec; .................[ 33]: __darwin_suseconds_t tv_usec; .................[ 34]: }; .................# Ending FILE: /usr/include/sys/_types/_timeval.h ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_types/_suseconds_t.h .................# Back in FILE: /usr/include/sys/_types/_suseconds_t.h .................[ 30]: typedef __darwin_suseconds_t suseconds_t; .................# Ending FILE: /usr/include/sys/_types/_suseconds_t.h ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_types/_sigset_t.h .................# Back in FILE: /usr/include/sys/_types/_sigset_t.h .................[ 30]: typedef __darwin_sigset_t sigset_t; .................# Ending FILE: /usr/include/sys/_types/_sigset_t.h ................# Back in FILE: /usr/include/sys/select.h ................[ 114]: int pselect(int, fd_set * , fd_set * , ................[ 115]: fd_set * , const struct timespec * , ................[ 116]: const sigset_t * ) ................[ 123]: __asm("_" "pselect" "$UNIX2003") ................[ 126]: ; ...............# Holding FILE: /usr/include/sys/select.h ................# Starting FILE: /usr/include/sys/_select.h .................[ 39]: int select(int, fd_set * , fd_set * , .................[ 40]: fd_set * , struct timeval * ) .................[ 47]: __asm("_" "select" "$UNIX2003") .................[ 50]: ; .................# Ending FILE: /usr/include/sys/_select.h ................# Ending FILE: /usr/include/sys/select.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_dev_t.h ................# Back in FILE: /usr/include/sys/_types/_dev_t.h ................[ 30]: typedef __darwin_dev_t dev_t; ................# Ending FILE: /usr/include/sys/_types/_dev_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_mode_t.h ................# Back in FILE: /usr/include/sys/_types/_mode_t.h ................[ 30]: typedef __darwin_mode_t mode_t; ................# Ending FILE: /usr/include/sys/_types/_mode_t.h ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/sys/_types/_uuid_t.h ................# Back in FILE: /usr/include/sys/_types/_uuid_t.h ................[ 30]: typedef __darwin_uuid_t uuid_t; ................# Ending FILE: /usr/include/sys/_types/_uuid_t.h ...............# Back in FILE: /usr/include/unistd.h ...............[ 640]: void _Exit(int) __attribute__((noreturn)); ...............[ 641]: int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); ...............[ 642]: int acct(const char *); ...............[ 643]: int add_profil(char *, size_t, unsigned long, unsigned int); ...............[ 644]: void endusershell(void); ...............[ 645]: int execvP(const char *, const char *, char * const *); ...............[ 646]: char *fflagstostr(unsigned long); ...............[ 647]: int getdomainname(char *, int); ...............[ 648]: int getgrouplist(const char *, int, int *, int *); ..............# Holding FILE: /usr/include/unistd.h ...............# Starting FILE: /usr/include/gethostuuid.h ................[ 39]: int gethostuuid(uuid_t, const struct timespec *) ; ................# Ending FILE: /usr/include/gethostuuid.h ...............# Back in FILE: /usr/include/unistd.h ...............[ 658]: mode_t getmode(const void *, mode_t); ...............[ 659]: int getpeereid(int, uid_t *, gid_t *); ...............[ 660]: int getsgroups_np(int *, uuid_t); ...............[ 661]: char *getusershell(void); ...............[ 662]: int getwgroups_np(int *, uuid_t); ...............[ 663]: int initgroups(const char *, int); ...............[ 664]: int iruserok(unsigned long, int, const char *, const char *); ...............[ 665]: int iruserok_sa(const void *, int, int, const char *, const char *); ...............[ 666]: int issetugid(void); ...............[ 667]: char *mkdtemp(char *); ...............[ 668]: int mknod(const char *, mode_t, dev_t); ...............[ 669]: int mkpath_np(const char *path, mode_t omode) ; ...............[ 670]: int mkstemp(char *); ...............[ 671]: int mkstemps(char *, int); ...............[ 672]: char *mktemp(char *); ...............[ 673]: int nfssvc(int, void *); ...............[ 674]: int profil(char *, size_t, unsigned long, unsigned int); ...............[ 675]: int pthread_setugid_np(uid_t, gid_t); ...............[ 676]: int pthread_getugid_np( uid_t *, gid_t *); ...............[ 677]: int rcmd(char **, int, const char *, const char *, const char *, int *); ...............[ 678]: int rcmd_af(char **, int, const char *, const char *, const char *, int *, ...............[ 679]: int); ...............[ 680]: int reboot(int); ...............[ 681]: int revoke(const char *); ...............[ 682]: int rresvport(int *); ...............[ 683]: int rresvport_af(int *, int); ...............[ 684]: int ruserok(const char *, int, const char *, const char *); ...............[ 685]: int setdomainname(const char *, int); ...............[ 686]: int setgroups(int, const gid_t *); ...............[ 687]: void sethostid(long); ...............[ 688]: int sethostname(const char *, int); ...............[ 690]: void setkey(const char *) __asm("_" "setkey" "$UNIX2003"); ...............[ 694]: int setlogin(const char *); ...............[ 695]: void *setmode(const char *) ; ...............[ 696]: int setrgid(gid_t); ...............[ 697]: int setruid(uid_t); ...............[ 698]: int setsgroups_np(int, const uuid_t); ...............[ 699]: void setusershell(void); ...............[ 700]: int setwgroups_np(int, const uuid_t); ...............[ 701]: int strtofflags(char **, unsigned long *, unsigned long *); ...............[ 702]: int swapon(const char *); ...............[ 703]: int syscall(int, ...); ...............[ 704]: int ttyslot(void); ...............[ 705]: int undelete(const char *); ...............[ 706]: int unwhiteout(const char *); ...............[ 707]: void *valloc(size_t); ...............[ 709]: extern char *suboptarg; ...............[ 710]: int getsubopt(char **, char * const *, char **); ...............[ 722]: int fgetattrlist(int,void*,void*,size_t,unsigned long) ; ...............[ 723]: int fsetattrlist(int,void*,void*,size_t,unsigned long) ; ...............[ 724]: int getattrlist(const char*,void*,void*,size_t,unsigned long) __asm("_" "getattrlist" "$UNIX2003"); ...............[ 725]: int setattrlist(const char*,void*,void*,size_t,unsigned long) __asm("_" "setattrlist" "$UNIX2003"); ...............[ 726]: int exchangedata(const char*,const char*,unsigned long); ...............[ 727]: int getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long); ...............[ 731]: struct fssearchblock; ...............[ 732]: struct searchstate; ...............[ 734]: int searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *\ ............... ); ...............[ 735]: int fsctl(const char *,unsigned long,void*,unsigned int); ...............[ 736]: int ffsctl(int,unsigned long,void*,unsigned int) ; ...............[ 741]: int fsync_volume_np(int, int) ; ...............[ 742]: int sync_volume_np(const char *, int) ; ...............[ 744]: extern int optreset; ...............# Ending FILE: /usr/include/unistd.h ..............# Back in FILE: /usr/include/c++/4.2.1/bits/os_defines.h ..............[ 92]: extern void __dtrace_probe$cxa_runtime$cxa_exception_rethrow$v1(void); ..............[ 93]: extern int __dtrace_isenabled$cxa_runtime$cxa_exception_rethrow$v1(void); ..............[ 94]: extern void __dtrace_probe$cxa_runtime$cxa_exception_throw$v1$766f6964202a(void *); ..............[ 95]: extern int __dtrace_isenabled$cxa_runtime$cxa_exception_throw$v1(void); ..............# Ending FILE: /usr/include/c++/4.2.1/bits/os_defines.h .............# Back in FILE: /usr/include/c++/4.2.1/bits/c++config.h .............[ 153]: namespace std { .............[ 165]: } .............# Ending FILE: /usr/include/c++/4.2.1/bits/c++config.h ............# Back in FILE: /usr/include/c++/4.2.1/cstdarg ............[ 58]: namespace std { ............[ 60]: using ::va_list; ............[ 62]: } ............# Ending FILE: /usr/include/c++/4.2.1/cstdarg ...........# Ending FILE: /usr/include/c++/4.2.1/tr1/cstdarg ..........# Ending FILE: /usr/include/c++/4.2.1/tr1/stdarg.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitops.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitops.h ..........[ 24]: extern unsigned int __sw_hweight8(unsigned int w); ..........[ 25]: extern unsigned int __sw_hweight16(unsigned int w); ..........[ 26]: extern unsigned int __sw_hweight32(unsigned int w); ..........[ 27]: extern unsigned long __sw_hweight64(__u64 w); .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitops.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/alternative.h ............[ 46]: struct alt_instr { ............[ 47]: s32 instr_offset; ............[ 48]: s32 repl_offset; ............[ 49]: u16 cpuid; ............[ 50]: u8 instrlen; ............[ 51]: u8 replacementlen; ............[ 52]: }; ............[ 54]: extern void alternative_instructions(void); ............[ 55]: extern void apply_alternatives(struct alt_instr *start, struct alt_instr *end); ............[ 57]: struct module; ............[ 60]: extern void alternatives_smp_module_add(struct module *mod, char *name, ............[ 61]: void *locks, void *locks_end, ............[ 62]: void *text, void *text_end); ............[ 63]: extern void alternatives_smp_module_del(struct module *mod); ............[ 64]: extern void alternatives_enable_smp(void); ............[ 65]: extern int alternatives_text_reserved(void *start, void *end); ............[ 66]: extern bool skip_smp_alternatives; ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/alternative.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cpufeature.h .............[ 239]: extern const char * const x86_cap_flags[10*32]; .............[ 240]: extern const char * const x86_power_flags[32]; .............[ 359]: extern void warn_pre_alternatives(void); .............[ 360]: extern bool __static_cpu_has_safe(u16 bit); .............[ 367]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) __attribute__((pure\ ............. )) bool __static_cpu_has(u16 bit) .............[ 368]: { .............[ 414]: u8 flag; .............[ 416]: asm volatile("1: movb $0,%0\n" .............[ 417]: "2:\n" .............[ 418]: ".section .altinstructions,\"a\"\n" .............[ 419]: " .long 1b - .\n" .............[ 420]: " .long 3f - .\n" .............[ 421]: " .word %P1\n" .............[ 422]: " .byte 2b - 1b\n" .............[ 423]: " .byte 4f - 3f\n" .............[ 424]: ".previous\n" .............[ 425]: ".section .discard,\"aw\",@progbits\n" .............[ 426]: " .byte 0xff + (4f-3f) - (2b-1b)\n" .............[ 427]: ".previous\n" .............[ 428]: ".section .altinstr_replacement,\"ax\"\n" .............[ 429]: "3: movb $1,%0\n" .............[ 430]: "4:\n" .............[ 431]: ".previous\n" .............[ 432]: : "=qm" (flag) : "i" (bit)); .............[ 433]: return flag; .............[ 436]: } .............[ 447]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) __attribute__((pure\ ............. )) bool _static_cpu_has_safe(u16 bit) .............[ 448]: { .............[ 484]: u8 flag; .............[ 486]: asm volatile("1: movb $2,%0\n" .............[ 487]: "2:\n" .............[ 488]: ".section .altinstructions,\"a\"\n" .............[ 489]: " .long 1b - .\n" .............[ 490]: " .long 3f - .\n" .............[ 491]: " .word %P2\n" .............[ 492]: " .byte 2b - 1b\n" .............[ 493]: " .byte 4f - 3f\n" .............[ 494]: ".previous\n" .............[ 495]: ".section .discard,\"aw\",@progbits\n" .............[ 496]: " .byte 0xff + (4f-3f) - (2b-1b)\n" .............[ 497]: ".previous\n" .............[ 498]: ".section .altinstr_replacement,\"ax\"\n" .............[ 499]: "3: movb $0,%0\n" .............[ 500]: "4:\n" .............[ 501]: ".previous\n" .............[ 502]: ".section .altinstructions,\"a\"\n" .............[ 503]: " .long 1b - .\n" .............[ 504]: " .long 5f - .\n" .............[ 505]: " .word %P1\n" .............[ 506]: " .byte 4b - 3b\n" .............[ 507]: " .byte 6f - 5f\n" .............[ 508]: ".previous\n" .............[ 509]: ".section .discard,\"aw\",@progbits\n" .............[ 510]: " .byte 0xff + (6f-5f) - (4b-3b)\n" .............[ 511]: ".previous\n" .............[ 512]: ".section .altinstr_replacement,\"ax\"\n" .............[ 513]: "5: movb $1,%0\n" .............[ 514]: "6:\n" .............[ 515]: ".previous\n" .............[ 516]: : "=qm" (flag) .............[ 517]: : "i" (bit), "i" ((3*32+21))); .............[ 518]: return (flag == 2 ? __static_cpu_has_safe(bit) : flag); .............[ 520]: } .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cpufeature.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/alternative.h ............[ 199]: struct paravirt_patch_site; ............[ 204]: static inline __attribute__((no_instrument_function)) void apply_paravirt(struct paravirt_patch_site *start\ ............ , ............[ 205]: struct paravirt_patch_site *end) ............[ 206]: {} ............[ 211]: extern void *text_poke_early(void *addr, const void *opcode, size_t len); ............[ 227]: extern void *text_poke(void *addr, const void *opcode, size_t len); ............[ 228]: extern int poke_int3_handler(struct pt_regs *regs); ............[ 229]: extern void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler); ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/alternative.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........[ 70]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void ...........[ 71]: set_bit(long nr, volatile unsigned long *addr) ...........[ 72]: { ...........[ 73]: if ((__builtin_constant_p(nr))) { ...........[ 74]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "orb %1,%0" ...........[ 75]: : "=m" (*(volatile long *) ((void *)(addr) +(( nr)>>3))) ...........[ 76]: : "iq" ((u8)(1 << ((nr) & 7))) ...........[ 77]: : "memory"); ...........[ 78]: } else { ...........[ 79]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "bts %1,%0" ...........[ 80]: : "=m" (*(volatile long *) (addr)) : "Ir" (nr) : "memory"); ...........[ 81]: } ...........[ 82]: } ...........[ 93]: static inline __attribute__((no_instrument_function)) void __set_bit(long nr, volatile unsigned long *addr) ...........[ 94]: { ...........[ 95]: asm volatile("bts %1,%0" : "=m" (*(volatile long *) (addr)) : "Ir" (nr) : "memory"); ...........[ 96]: } ...........[ 108]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void ...........[ 109]: clear_bit(long nr, volatile unsigned long *addr) ...........[ 110]: { ...........[ 111]: if ((__builtin_constant_p(nr))) { ...........[ 112]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "andb %1,%0" ...........[ 113]: : "=m" (*(volatile long *) ((void *)(addr) +(( nr)>>3))) ...........[ 114]: : "iq" ((u8)~(1 << ((nr) & 7)))); ...........[ 115]: } else { ...........[ 116]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "btr %1,%0" ...........[ 117]: : "=m" (*(volatile long *) (addr)) ...........[ 118]: : "Ir" (nr)); ...........[ 119]: } ...........[ 120]: } ...........[ 130]: static inline __attribute__((no_instrument_function)) void clear_bit_unlock(long nr, volatile unsigned long *\ ........... addr) ...........[ 131]: { ...........[ 132]: __asm__ __volatile__("": : :"memory"); ...........[ 133]: clear_bit(nr, addr); ...........[ 134]: } ...........[ 136]: static inline __attribute__((no_instrument_function)) void __clear_bit(long nr, volatile unsigned long *addr) ...........[ 137]: { ...........[ 138]: asm volatile("btr %1,%0" : "=m" (*(volatile long *) (addr)) : "Ir" (nr)); ...........[ 139]: } ...........[ 153]: static inline __attribute__((no_instrument_function)) void __clear_bit_unlock(long nr, volatile unsigned long \ ........... *addr) ...........[ 154]: { ...........[ 155]: __asm__ __volatile__("": : :"memory"); ...........[ 156]: __clear_bit(nr, addr); ...........[ 157]: } ...........[ 171]: static inline __attribute__((no_instrument_function)) void __change_bit(long nr, volatile unsigned long *addr\ ........... ) ...........[ 172]: { ...........[ 173]: asm volatile("btc %1,%0" : "=m" (*(volatile long *) (addr)) : "Ir" (nr)); ...........[ 174]: } ...........[ 185]: static inline __attribute__((no_instrument_function)) void change_bit(long nr, volatile unsigned long *addr) ...........[ 186]: { ...........[ 187]: if ((__builtin_constant_p(nr))) { ...........[ 188]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "xorb %1,%0" ...........[ 189]: : "=m" (*(volatile long *) ((void *)(addr) +(( nr)>>3))) ...........[ 190]: : "iq" ((u8)(1 << ((nr) & 7)))); ...........[ 191]: } else { ...........[ 192]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "btc %1,%0" ...........[ 193]: : "=m" (*(volatile long *) (addr)) ...........[ 194]: : "Ir" (nr)); ...........[ 195]: } ...........[ 196]: } ...........[ 206]: static inline __attribute__((no_instrument_function)) int test_and_set_bit(long nr, volatile unsigned long *addr\ ........... ) ...........[ 207]: { ...........[ 208]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "bts" " %2, " "%0" "; set" "c" " %1" : "+m" (*addr), "=qm" (c) : "Ir"( nr) : "memory"); return c != 0\ ........... ; } while (0); ...........[ 209]: } ...........[ 218]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int ...........[ 219]: test_and_set_bit_lock(long nr, volatile unsigned long *addr) ...........[ 220]: { ...........[ 221]: return test_and_set_bit(nr, addr); ...........[ 222]: } ...........[ 233]: static inline __attribute__((no_instrument_function)) int __test_and_set_bit(long nr, volatile unsigned long \ ........... *addr) ...........[ 234]: { ...........[ 235]: int oldbit; ...........[ 237]: asm("bts %2,%1\n\t" ...........[ 238]: "sbb %0,%0" ...........[ 239]: : "=r" (oldbit), "=m" (*(volatile long *) (addr)) ...........[ 240]: : "Ir" (nr)); ...........[ 241]: return oldbit; ...........[ 242]: } ...........[ 252]: static inline __attribute__((no_instrument_function)) int test_and_clear_bit(long nr, volatile unsigned long \ ........... *addr) ...........[ 253]: { ...........[ 254]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "btr" " %2, " "%0" "; set" "c" " %1" : "+m" (*addr), "=qm" (c) : "Ir"( nr) : "memory"); return c != 0\ ........... ; } while (0); ...........[ 255]: } ...........[ 273]: static inline __attribute__((no_instrument_function)) int __test_and_clear_bit(long nr, volatile unsigned long \ ........... *addr) ...........[ 274]: { ...........[ 275]: int oldbit; ...........[ 277]: asm volatile("btr %2,%1\n\t" ...........[ 278]: "sbb %0,%0" ...........[ 279]: : "=r" (oldbit), "=m" (*(volatile long *) (addr)) ...........[ 280]: : "Ir" (nr)); ...........[ 281]: return oldbit; ...........[ 282]: } ...........[ 285]: static inline __attribute__((no_instrument_function)) int __test_and_change_bit(long nr, volatile unsigned long \ ........... *addr) ...........[ 286]: { ...........[ 287]: int oldbit; ...........[ 289]: asm volatile("btc %2,%1\n\t" ...........[ 290]: "sbb %0,%0" ...........[ 291]: : "=r" (oldbit), "=m" (*(volatile long *) (addr)) ...........[ 292]: : "Ir" (nr) : "memory"); ...........[ 294]: return oldbit; ...........[ 295]: } ...........[ 305]: static inline __attribute__((no_instrument_function)) int test_and_change_bit(long nr, volatile unsigned long \ ........... *addr) ...........[ 306]: { ...........[ 307]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "btc" " %2, " "%0" "; set" "c" " %1" : "+m" (*addr), "=qm" (c) : "Ir"( nr) : "memory"); return c != 0\ ........... ; } while (0); ...........[ 308]: } ...........[ 310]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int constant_test_bit\ ........... (long nr, const volatile unsigned long *addr) ...........[ 311]: { ...........[ 312]: return ((1UL << (nr & (64-1))) & ...........[ 313]: (addr[nr >> 6])) != 0; ...........[ 314]: } ...........[ 316]: static inline __attribute__((no_instrument_function)) int variable_test_bit(long nr, volatile const unsigned \ ........... long *addr) ...........[ 317]: { ...........[ 318]: int oldbit; ...........[ 320]: asm volatile("bt %2,%1\n\t" ...........[ 321]: "sbb %0,%0" ...........[ 322]: : "=r" (oldbit) ...........[ 323]: : "m" (*(unsigned long *)addr), "Ir" (nr)); ...........[ 325]: return oldbit; ...........[ 326]: } ...........[ 348]: static inline __attribute__((no_instrument_function)) unsigned long __ffs(unsigned long word) ...........[ 349]: { ...........[ 350]: asm("rep; bsf %1,%0" ...........[ 351]: : "=r" (word) ...........[ 352]: : "rm" (word)); ...........[ 353]: return word; ...........[ 354]: } ...........[ 362]: static inline __attribute__((no_instrument_function)) unsigned long ffz(unsigned long word) ...........[ 363]: { ...........[ 364]: asm("rep; bsf %1,%0" ...........[ 365]: : "=r" (word) ...........[ 366]: : "r" (~word)); ...........[ 367]: return word; ...........[ 368]: } ...........[ 376]: static inline __attribute__((no_instrument_function)) unsigned long __fls(unsigned long word) ...........[ 377]: { ...........[ 378]: asm("bsr %1,%0" ...........[ 379]: : "=r" (word) ...........[ 380]: : "rm" (word)); ...........[ 381]: return word; ...........[ 382]: } ...........[ 398]: static inline __attribute__((no_instrument_function)) int ffs(int x) ...........[ 399]: { ...........[ 400]: int r; ...........[ 412]: asm("bsfl %1,%0" ...........[ 413]: : "=r" (r) ...........[ 414]: : "rm" (x), "0" (-1)); ...........[ 425]: return r + 1; ...........[ 426]: } ...........[ 439]: static inline __attribute__((no_instrument_function)) int fls(int x) ...........[ 440]: { ...........[ 441]: int r; ...........[ 453]: asm("bsrl %1,%0" ...........[ 454]: : "=r" (r) ...........[ 455]: : "rm" (x), "0" (-1)); ...........[ 466]: return r + 1; ...........[ 467]: } ...........[ 481]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int fls64(__u64 x) ...........[ 482]: { ...........[ 483]: int bitpos = -1; ...........[ 489]: asm("bsrq %1,%q0" ...........[ 490]: : "+r" (bitpos) ...........[ 491]: : "rm" (x)); ...........[ 492]: return bitpos + 1; ...........[ 493]: } ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/find.h ............[ 14]: extern unsigned long find_next_bit(const unsigned long *addr, unsigned long ............[ 15]: size, unsigned long offset); ............[ 28]: extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned ............[ 29]: long size, unsigned long offset); ............[ 42]: extern unsigned long find_first_bit(const unsigned long *addr, ............[ 43]: unsigned long size); ............[ 53]: extern unsigned long find_first_zero_bit(const unsigned long *addr, ............[ 54]: unsigned long size); ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/find.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/sched.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/sched.h ............[ 12]: static inline __attribute__((no_instrument_function)) int sched_find_first_bit(const unsigned long *b) ............[ 13]: { ............[ 15]: if (b[0]) ............[ 16]: return __ffs(b[0]); ............[ 17]: return __ffs(b[1]) + 64; ............[ 29]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/sched.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/arch_hweight.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/arch_hweight.h ............[ 24]: static inline __attribute__((no_instrument_function)) unsigned int __arch_hweight32(unsigned int w) ............[ 25]: { ............[ 26]: unsigned int res = 0; ............[ 28]: asm ("661:\n\t" "call __sw_hweight32" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ............ " .long " "663""1""f - .\n" " .word " "(4*32+23)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ............ "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ............ "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ............ ".byte 0xf3,0x40,0x0f,0xb8,0xc7" "\n" "664""1" ":\n\t" ".popsection" ............[ 29]: : "=""a" (res) ............[ 30]: : "D" (w)); ............[ 32]: return res; ............[ 33]: } ............[ 35]: static inline __attribute__((no_instrument_function)) unsigned int __arch_hweight16(unsigned int w) ............[ 36]: { ............[ 37]: return __arch_hweight32(w & 0xffff); ............[ 38]: } ............[ 40]: static inline __attribute__((no_instrument_function)) unsigned int __arch_hweight8(unsigned int w) ............[ 41]: { ............[ 42]: return __arch_hweight32(w & 0xff); ............[ 43]: } ............[ 45]: static inline __attribute__((no_instrument_function)) unsigned long __arch_hweight64(__u64 w) ............[ 46]: { ............[ 47]: unsigned long res = 0; ............[ 53]: asm ("661:\n\t" "call __sw_hweight64" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ............ " .long " "663""1""f - .\n" " .word " "(4*32+23)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ............ "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ............ "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ............ ".byte 0xf3,0x48,0x0f,0xb8,0xc7" "\n" "664""1" ":\n\t" ".popsection" ............[ 54]: : "=""a" (res) ............[ 55]: : "D" (w)); ............[ 58]: return res; ............[ 59]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/arch_hweight.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/le.h ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/le.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/byteorder.h ............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/byteorder.h .............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/little_endian.h .............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/little_endian.h ..............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/byteorder/little_endian.h ..............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/byteorder/little_endian.h ...............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swab.h ...............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swab.h ................# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/swab.h ................# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/swab.h .................# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/swab.h ..................# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/swab.h ..................[ 7]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __arch_swab32(__u32 \ .................. val) ..................[ 8]: { ..................[ 9]: asm("bswapl %0" : "=r" (val) : "0" (val)); ..................[ 10]: return val; ..................[ 11]: } ..................[ 14]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u64 __arch_swab64(__u64 \ .................. val) ..................[ 15]: { ..................[ 30]: asm("bswapq %0" : "=r" (val) : "0" (val)); ..................[ 31]: return val; ..................[ 33]: } ..................# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/swab.h .................# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/swab.h .................[ 46]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u16 __fswab16(__u16 val\ ................. ) .................[ 47]: { .................[ 53]: return ((__u16)( (((__u16)(val) & (__u16)0x00ffU) << 8) | (((__u16)(val) & (__u16)0xff00U) >> 8))); .................[ 55]: } .................[ 57]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswab32(__u32 val\ ................. ) .................[ 58]: { .................[ 62]: return __arch_swab32(val); .................[ 66]: } .................[ 68]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u64 __fswab64(__u64 val\ ................. ) .................[ 69]: { .................[ 73]: return __arch_swab64(val); .................[ 81]: } .................[ 83]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswahw32(__u32 val\ ................. ) .................[ 84]: { .................[ 88]: return ((__u32)( (((__u32)(val) & (__u32)0x0000ffffUL) << 16) | (((__u32)(val) & (__u32)0xffff0000UL) >> 16))); .................[ 90]: } .................[ 92]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) __u32 __fswahb32(__u32 val\ ................. ) .................[ 93]: { .................[ 97]: return ((__u32)( (((__u32)(val) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(val) & (__u32)0xff00ff00UL) >> 8))); .................[ 99]: } .................[ 154]: static inline __attribute__((no_instrument_function)) __u16 __swab16p(const __u16 *p) .................[ 155]: { .................[ 159]: return (__builtin_constant_p((__u16)(*p)) ? ((__u16)( (((__u16)(*p) & (__u16)0x00ffU) << 8) | (((__u16)(*p) & (__u16\ ................. )0xff00U) >> 8))) : __fswab16(*p)); .................[ 161]: } .................[ 167]: static inline __attribute__((no_instrument_function)) __u32 __swab32p(const __u32 *p) .................[ 168]: { .................[ 172]: 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)); .................[ 174]: } .................[ 180]: static inline __attribute__((no_instrument_function)) __u64 __swab64p(const __u64 *p) .................[ 181]: { .................[ 185]: 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)); .................[ 187]: } .................[ 195]: static inline __attribute__((no_instrument_function)) __u32 __swahw32p(const __u32 *p) .................[ 196]: { .................[ 200]: return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x0000ffffUL) << 16) | (((__u32)(\ ................. *p) & (__u32)0xffff0000UL) >> 16))) : __fswahw32(*p)); .................[ 202]: } .................[ 210]: static inline __attribute__((no_instrument_function)) __u32 __swahb32p(const __u32 *p) .................[ 211]: { .................[ 215]: return (__builtin_constant_p((__u32)(*p)) ? ((__u32)( (((__u32)(*p) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(*\ ................. p) & (__u32)0xff00ff00UL) >> 8))) : __fswahb32(*p)); .................[ 217]: } .................[ 223]: static inline __attribute__((no_instrument_function)) void __swab16s(__u16 *p) .................[ 224]: { .................[ 228]: *p = __swab16p(p); .................[ 230]: } .................[ 235]: static inline __attribute__((no_instrument_function)) void __swab32s(__u32 *p) .................[ 236]: { .................[ 240]: *p = __swab32p(p); .................[ 242]: } .................[ 248]: static inline __attribute__((no_instrument_function)) void __swab64s(__u64 *p) .................[ 249]: { .................[ 253]: *p = __swab64p(p); .................[ 255]: } .................[ 263]: static inline __attribute__((no_instrument_function)) void __swahw32s(__u32 *p) .................[ 264]: { .................[ 268]: *p = __swahw32p(p); .................[ 270]: } .................[ 278]: static inline __attribute__((no_instrument_function)) void __swahb32s(__u32 *p) .................[ 279]: { .................[ 283]: *p = __swahb32p(p); .................[ 285]: } .................# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/swab.h ................# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swab.h ...............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/byteorder/little_endian.h ...............[ 43]: static inline __attribute__((no_instrument_function)) __le64 __cpu_to_le64p(const __u64 *p) ...............[ 44]: { ...............[ 45]: return ( __le64)*p; ...............[ 46]: } ...............[ 47]: static inline __attribute__((no_instrument_function)) __u64 __le64_to_cpup(const __le64 *p) ...............[ 48]: { ...............[ 49]: return ( __u64)*p; ...............[ 50]: } ...............[ 51]: static inline __attribute__((no_instrument_function)) __le32 __cpu_to_le32p(const __u32 *p) ...............[ 52]: { ...............[ 53]: return ( __le32)*p; ...............[ 54]: } ...............[ 55]: static inline __attribute__((no_instrument_function)) __u32 __le32_to_cpup(const __le32 *p) ...............[ 56]: { ...............[ 57]: return ( __u32)*p; ...............[ 58]: } ...............[ 59]: static inline __attribute__((no_instrument_function)) __le16 __cpu_to_le16p(const __u16 *p) ...............[ 60]: { ...............[ 61]: return ( __le16)*p; ...............[ 62]: } ...............[ 63]: static inline __attribute__((no_instrument_function)) __u16 __le16_to_cpup(const __le16 *p) ...............[ 64]: { ...............[ 65]: return ( __u16)*p; ...............[ 66]: } ...............[ 67]: static inline __attribute__((no_instrument_function)) __be64 __cpu_to_be64p(const __u64 *p) ...............[ 68]: { ...............[ 69]: return ( __be64)__swab64p(p); ...............[ 70]: } ...............[ 71]: static inline __attribute__((no_instrument_function)) __u64 __be64_to_cpup(const __be64 *p) ...............[ 72]: { ...............[ 73]: return __swab64p((__u64 *)p); ...............[ 74]: } ...............[ 75]: static inline __attribute__((no_instrument_function)) __be32 __cpu_to_be32p(const __u32 *p) ...............[ 76]: { ...............[ 77]: return ( __be32)__swab32p(p); ...............[ 78]: } ...............[ 79]: static inline __attribute__((no_instrument_function)) __u32 __be32_to_cpup(const __be32 *p) ...............[ 80]: { ...............[ 81]: return __swab32p((__u32 *)p); ...............[ 82]: } ...............[ 83]: static inline __attribute__((no_instrument_function)) __be16 __cpu_to_be16p(const __u16 *p) ...............[ 84]: { ...............[ 85]: return ( __be16)__swab16p(p); ...............[ 86]: } ...............[ 87]: static inline __attribute__((no_instrument_function)) __u16 __be16_to_cpup(const __be16 *p) ...............[ 88]: { ...............[ 89]: return __swab16p((__u16 *)p); ...............[ 90]: } ...............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/byteorder/little_endian.h .............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/little_endian.h ..............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/generic.h ...............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/generic.h ...............[ 143]: static inline __attribute__((no_instrument_function)) void le16_add_cpu(__le16 *var, u16 val) ...............[ 144]: { ...............[ 145]: *var = (( __le16)(__u16)((( __u16)(__le16)(*var)) + val)); ...............[ 146]: } ...............[ 148]: static inline __attribute__((no_instrument_function)) void le32_add_cpu(__le32 *var, u32 val) ...............[ 149]: { ...............[ 150]: *var = (( __le32)(__u32)((( __u32)(__le32)(*var)) + val)); ...............[ 151]: } ...............[ 153]: static inline __attribute__((no_instrument_function)) void le64_add_cpu(__le64 *var, u64 val) ...............[ 154]: { ...............[ 155]: *var = (( __le64)(__u64)((( __u64)(__le64)(*var)) + val)); ...............[ 156]: } ...............[ 158]: static inline __attribute__((no_instrument_function)) void be16_add_cpu(__be16 *var, u16 val) ...............[ 159]: { ...............[ 160]: *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)))); ...............[ 161]: } ...............[ 163]: static inline __attribute__((no_instrument_function)) void be32_add_cpu(__be32 *var, u32 val) ...............[ 164]: { ...............[ 165]: *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)))); ...............[ 166]: } ...............[ 168]: static inline __attribute__((no_instrument_function)) void be64_add_cpu(__be64 *var, u64 val) ...............[ 169]: { ...............[ 170]: *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)))); ...............[ 171]: } ...............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/generic.h ..............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/byteorder/little_endian.h .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/byteorder.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/le.h ............[ 11]: static inline __attribute__((no_instrument_function)) unsigned long find_next_zero_bit_le(const void *addr, ............[ 12]: unsigned long size, unsigned long offset) ............[ 13]: { ............[ 14]: return find_next_zero_bit(addr, size, offset); ............[ 15]: } ............[ 17]: static inline __attribute__((no_instrument_function)) unsigned long find_next_bit_le(const void *addr, ............[ 18]: unsigned long size, unsigned long offset) ............[ 19]: { ............[ 20]: return find_next_bit(addr, size, offset); ............[ 21]: } ............[ 23]: static inline __attribute__((no_instrument_function)) unsigned long find_first_zero_bit_le(const void *addr\ ............ , ............[ 24]: unsigned long size) ............[ 25]: { ............[ 26]: return find_first_zero_bit(addr, size); ............[ 27]: } ............[ 52]: static inline __attribute__((no_instrument_function)) int test_bit_le(int nr, const void *addr) ............[ 53]: { ............[ 54]: return (__builtin_constant_p((nr ^ 0)) ? constant_test_bit((nr ^ 0), (addr)) : variable_test_bit((nr ^ 0), (addr)\ ............ )); ............[ 55]: } ............[ 57]: static inline __attribute__((no_instrument_function)) void set_bit_le(int nr, void *addr) ............[ 58]: { ............[ 59]: set_bit(nr ^ 0, addr); ............[ 60]: } ............[ 62]: static inline __attribute__((no_instrument_function)) void clear_bit_le(int nr, void *addr) ............[ 63]: { ............[ 64]: clear_bit(nr ^ 0, addr); ............[ 65]: } ............[ 67]: static inline __attribute__((no_instrument_function)) void __set_bit_le(int nr, void *addr) ............[ 68]: { ............[ 69]: __set_bit(nr ^ 0, addr); ............[ 70]: } ............[ 72]: static inline __attribute__((no_instrument_function)) void __clear_bit_le(int nr, void *addr) ............[ 73]: { ............[ 74]: __clear_bit(nr ^ 0, addr); ............[ 75]: } ............[ 77]: static inline __attribute__((no_instrument_function)) int test_and_set_bit_le(int nr, void *addr) ............[ 78]: { ............[ 79]: return test_and_set_bit(nr ^ 0, addr); ............[ 80]: } ............[ 82]: static inline __attribute__((no_instrument_function)) int test_and_clear_bit_le(int nr, void *addr) ............[ 83]: { ............[ 84]: return test_and_clear_bit(nr ^ 0, addr); ............[ 85]: } ............[ 87]: static inline __attribute__((no_instrument_function)) int __test_and_set_bit_le(int nr, void *addr) ............[ 88]: { ............[ 89]: return __test_and_set_bit(nr ^ 0, addr); ............[ 90]: } ............[ 92]: static inline __attribute__((no_instrument_function)) int __test_and_clear_bit_le(int nr, void *addr) ............[ 93]: { ............[ 94]: return __test_and_clear_bit(nr ^ 0, addr); ............[ 95]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/le.h ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bitops.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitops.h ..........[ 57]: static __inline__ __attribute__((no_instrument_function)) int get_bitmask_order(unsigned int count) ..........[ 58]: { ..........[ 59]: int order; ..........[ 61]: order = fls(count); ..........[ 62]: return order; ..........[ 63]: } ..........[ 65]: static __inline__ __attribute__((no_instrument_function)) int get_count_order(unsigned int count) ..........[ 66]: { ..........[ 67]: int order; ..........[ 69]: order = fls(count) - 1; ..........[ 70]: if (count & (count - 1)) ..........[ 71]: order++; ..........[ 72]: return order; ..........[ 73]: } ..........[ 75]: static inline __attribute__((no_instrument_function)) unsigned long hweight_long(unsigned long w) ..........[ 76]: { ..........[ 77]: 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)); ..........[ 78]: } ..........[ 85]: static inline __attribute__((no_instrument_function)) __u64 rol64(__u64 word, unsigned int shift) ..........[ 86]: { ..........[ 87]: return (word << shift) | (word >> (64 - shift)); ..........[ 88]: } ..........[ 95]: static inline __attribute__((no_instrument_function)) __u64 ror64(__u64 word, unsigned int shift) ..........[ 96]: { ..........[ 97]: return (word >> shift) | (word << (64 - shift)); ..........[ 98]: } ..........[ 105]: static inline __attribute__((no_instrument_function)) __u32 rol32(__u32 word, unsigned int shift) ..........[ 106]: { ..........[ 107]: return (word << shift) | (word >> (32 - shift)); ..........[ 108]: } ..........[ 115]: static inline __attribute__((no_instrument_function)) __u32 ror32(__u32 word, unsigned int shift) ..........[ 116]: { ..........[ 117]: return (word >> shift) | (word << (32 - shift)); ..........[ 118]: } ..........[ 125]: static inline __attribute__((no_instrument_function)) __u16 rol16(__u16 word, unsigned int shift) ..........[ 126]: { ..........[ 127]: return (word << shift) | (word >> (16 - shift)); ..........[ 128]: } ..........[ 135]: static inline __attribute__((no_instrument_function)) __u16 ror16(__u16 word, unsigned int shift) ..........[ 136]: { ..........[ 137]: return (word >> shift) | (word << (16 - shift)); ..........[ 138]: } ..........[ 145]: static inline __attribute__((no_instrument_function)) __u8 rol8(__u8 word, unsigned int shift) ..........[ 146]: { ..........[ 147]: return (word << shift) | (word >> (8 - shift)); ..........[ 148]: } ..........[ 155]: static inline __attribute__((no_instrument_function)) __u8 ror8(__u8 word, unsigned int shift) ..........[ 156]: { ..........[ 157]: return (word >> shift) | (word << (8 - shift)); ..........[ 158]: } ..........[ 165]: static inline __attribute__((no_instrument_function)) __s32 sign_extend32(__u32 value, int index) ..........[ 166]: { ..........[ 167]: __u8 shift = 31 - index; ..........[ 168]: return (__s32)(value << shift) >> shift; ..........[ 169]: } ..........[ 171]: static inline __attribute__((no_instrument_function)) unsigned fls_long(unsigned long l) ..........[ 172]: { ..........[ 173]: if (sizeof(l) == 4) ..........[ 174]: return fls(l); ..........[ 175]: return fls64(l); ..........[ 176]: } ..........[ 186]: static inline __attribute__((no_instrument_function)) unsigned long __ffs64(u64 word) ..........[ 187]: { ..........[ 194]: return __ffs((unsigned long)word); ..........[ 195]: } ..........[ 207]: extern unsigned long find_last_bit(const unsigned long *addr, ..........[ 208]: unsigned long size); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitops.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/log2.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/log2.h ..........[ 21]: extern __attribute__((const, noreturn)) ..........[ 22]: int ____ilog2_NaN(void); ..........[ 31]: static inline __attribute__((no_instrument_function)) __attribute__((const)) ..........[ 32]: int __ilog2_u32(u32 n) ..........[ 33]: { ..........[ 34]: return fls(n) - 1; ..........[ 35]: } ..........[ 39]: static inline __attribute__((no_instrument_function)) __attribute__((const)) ..........[ 40]: int __ilog2_u64(u64 n) ..........[ 41]: { ..........[ 42]: return fls64(n) - 1; ..........[ 43]: } ..........[ 51]: static inline __attribute__((no_instrument_function)) __attribute__((const)) ..........[ 52]: bool is_power_of_2(unsigned long n) ..........[ 53]: { ..........[ 54]: return (n != 0 && ((n & (n - 1)) == 0)); ..........[ 55]: } ..........[ 60]: static inline __attribute__((no_instrument_function)) __attribute__((const)) ..........[ 61]: unsigned long __roundup_pow_of_two(unsigned long n) ..........[ 62]: { ..........[ 63]: return 1UL << fls_long(n - 1); ..........[ 64]: } ..........[ 69]: static inline __attribute__((no_instrument_function)) __attribute__((const)) ..........[ 70]: unsigned long __rounddown_pow_of_two(unsigned long n) ..........[ 71]: { ..........[ 72]: return 1UL << (fls_long(n) - 1); ..........[ 73]: } ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/log2.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/init.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/init.h ...........[ 135]: typedef int (*initcall_t)(void); ...........[ 136]: typedef void (*exitcall_t)(void); ...........[ 138]: extern initcall_t __con_initcall_start[], __con_initcall_end[]; ...........[ 139]: extern initcall_t __security_initcall_start[], __security_initcall_end[]; ...........[ 142]: typedef void (*ctor_fn_t)(void); ...........[ 145]: extern int do_one_initcall(initcall_t fn); ...........[ 146]: extern char __attribute__ ((__section__(".init.data"))) boot_command_line[]; ...........[ 147]: extern char *saved_command_line; ...........[ 148]: extern unsigned int reset_devices; ...........[ 151]: void setup_arch(char **); ...........[ 152]: void prepare_namespace(void); ...........[ 153]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) load_default_modules\ ........... (void); ...........[ 154]: int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) init_rootfs(void\ ........... ); ...........[ 156]: extern void (*late_time_init)(void); ...........[ 158]: extern bool initcall_debug; ...........[ 225]: struct obs_kernel_param { ...........[ 226]: const char *str; ...........[ 227]: int (*setup_func)(char *); ...........[ 228]: int early; ...........[ 229]: }; ...........[ 254]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) parse_early_param\ ........... (void); ...........[ 255]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) parse_early_options\ ........... (char *cmdline); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/init.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h ..........[ 9]: extern const char linux_banner[]; ..........[ 10]: extern const char linux_proc_banner[]; ..........[ 12]: static inline __attribute__((no_instrument_function)) int printk_get_level(const char *buffer) ..........[ 13]: { ..........[ 14]: if (buffer[0] == '\001' && buffer[1]) { ..........[ 15]: switch (buffer[1]) { ..........[ 16]: case '0' ... '7': ..........[ 17]: case 'd': ..........[ 18]: return buffer[1]; ..........[ 19]: } ..........[ 20]: } ..........[ 21]: return 0; ..........[ 22]: } ..........[ 24]: static inline __attribute__((no_instrument_function)) const char *printk_skip_level(const char *buffer) ..........[ 25]: { ..........[ 26]: if (printk_get_level(buffer)) { ..........[ 27]: switch (buffer[1]) { ..........[ 28]: case '0' ... '7': ..........[ 29]: case 'd': ..........[ 30]: return buffer + 2; ..........[ 31]: } ..........[ 32]: } ..........[ 33]: return buffer; ..........[ 34]: } ..........[ 36]: extern int console_printk[]; ..........[ 43]: static inline __attribute__((no_instrument_function)) void console_silent(void) ..........[ 44]: { ..........[ 45]: (console_printk[0]) = 0; ..........[ 46]: } ..........[ 48]: static inline __attribute__((no_instrument_function)) void console_verbose(void) ..........[ 49]: { ..........[ 50]: if ((console_printk[0])) ..........[ 51]: (console_printk[0]) = 15; ..........[ 52]: } ..........[ 54]: struct va_format { ..........[ 55]: const char *fmt; ..........[ 56]: va_list *va; ..........[ 57]: }; ..........[ 94]: static inline __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) ..........[ 95]: int no_printk(const char *fmt, ...) ..........[ 96]: { ..........[ 97]: return 0; ..........[ 98]: } ..........[ 101]: extern __attribute__((format(printf, 1, 2))) ..........[ 102]: void early_printk(const char *fmt, ...); ..........[ 103]: void early_vprintk(const char *fmt, va_list ap); ..........[ 110]: __attribute__((format(printf, 5, 0))) ..........[ 111]: int vprintk_emit(int facility, int level, ..........[ 112]: const char *dict, size_t dictlen, ..........[ 113]: const char *fmt, va_list args); ..........[ 115]: __attribute__((format(printf, 1, 0))) ..........[ 116]: int vprintk(const char *fmt, va_list args); ..........[ 118]: __attribute__((format(printf, 5, 6))) ..........[ 119]: int printk_emit(int facility, int level, ..........[ 120]: const char *dict, size_t dictlen, ..........[ 121]: const char *fmt, ...); ..........[ 123]: __attribute__((format(printf, 1, 2))) ..........[ 124]: int printk(const char *fmt, ...); ..........[ 129]: __attribute__((format(printf, 1, 2))) int printk_sched(const char *fmt, ...); ..........[ 136]: extern int __printk_ratelimit(const char *func); ..........[ 138]: extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, ..........[ 139]: unsigned int interval_msec); ..........[ 141]: extern int printk_delay_msec; ..........[ 142]: extern int dmesg_restrict; ..........[ 143]: extern int kptr_restrict; ..........[ 145]: extern void wake_up_klogd(void); ..........[ 147]: void log_buf_kexec_setup(void); ..........[ 148]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) setup_log_buf(int \ .......... early); ..........[ 149]: void dump_stack_set_arch_desc(const char *fmt, ...); ..........[ 150]: void dump_stack_print_info(const char *log_lvl); ..........[ 151]: void show_regs_print_info(const char *log_lvl); ..........[ 203]: extern void dump_stack(void) ; .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dynamic_debug.h ...........[ 9]: struct _ddebug { ...........[ 14]: const char *modname; ...........[ 15]: const char *function; ...........[ 16]: const char *filename; ...........[ 17]: const char *format; ...........[ 18]: unsigned int lineno:18; ...........[ 35]: unsigned int flags:8; ...........[ 36]: } __attribute__((aligned(8))); ...........[ 39]: int ddebug_add_module(struct _ddebug *tab, unsigned int n, ...........[ 40]: const char *modname); ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dynamic_debug.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h ............[ 11]: extern char *strndup_user(const char *, long); ............[ 12]: extern void *memdup_user(const void *, size_t); ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/string.h ............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/string.h .............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/string_64.h ..............[ 9]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void *__inline_memcpy\ .............. (void *to, const void *from, size_t n) ..............[ 10]: { ..............[ 11]: unsigned long d0, d1, d2; ..............[ 12]: asm volatile("rep ; movsl\n\t" ..............[ 13]: "testb $2,%b4\n\t" ..............[ 14]: "je 1f\n\t" ..............[ 15]: "movsw\n" ..............[ 16]: "1:\ttestb $1,%b4\n\t" ..............[ 17]: "je 2f\n\t" ..............[ 18]: "movsb\n" ..............[ 19]: "2:" ..............[ 20]: : "=&c" (d0), "=&D" (d1), "=&S" (d2) ..............[ 21]: : "0" (n / 4), "q" (n), "1" ((long)to), "2" ((long)from) ..............[ 22]: : "memory"); ..............[ 23]: return to; ..............[ 24]: } ..............[ 34]: extern void *__memcpy(void *to, const void *from, size_t len); ..............[ 55]: void *memset(void *s, int c, size_t n); ..............[ 58]: void *memmove(void *dest, const void *src, size_t count); ..............[ 60]: int memcmp(const void *cs, const void *ct, size_t count); ..............[ 61]: size_t strlen(const char *s); ..............[ 62]: char *strcpy(char *dest, const char *src); ..............[ 63]: char *strcat(char *dest, const char *src); ..............[ 64]: int strcmp(const char *cs, const char *ct); ..............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/string_64.h .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/string.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h ............[ 20]: extern char * strcpy(char *,const char *); ............[ 23]: extern char * strncpy(char *,const char *, __kernel_size_t); ............[ 26]: size_t strlcpy(char *, const char *, size_t); ............[ 29]: extern char * strcat(char *, const char *); ............[ 32]: extern char * strncat(char *, const char *, __kernel_size_t); ............[ 35]: extern size_t strlcat(char *, const char *, __kernel_size_t); ............[ 38]: extern int strcmp(const char *,const char *); ............[ 41]: extern int strncmp(const char *,const char *,__kernel_size_t); ............[ 44]: extern int strnicmp(const char *, const char *, __kernel_size_t); ............[ 47]: extern int strcasecmp(const char *s1, const char *s2); ............[ 50]: extern int strncasecmp(const char *s1, const char *s2, size_t n); ............[ 53]: extern char * strchr(const char *,int); ............[ 56]: extern char * strnchr(const char *, size_t, int); ............[ 59]: extern char * strrchr(const char *,int); ............[ 61]: extern char * skip_spaces(const char *); ............[ 63]: extern char *strim(char *); ............[ 65]: static inline __attribute__((no_instrument_function)) char *strstrip(char *str) ............[ 66]: { ............[ 67]: return strim(str); ............[ 68]: } ............[ 71]: extern char * strstr(const char *, const char *); ............[ 74]: extern char * strnstr(const char *, const char *, size_t); ............[ 77]: extern __kernel_size_t strlen(const char *); ............[ 80]: extern __kernel_size_t strnlen(const char *,__kernel_size_t); ............[ 83]: extern char * strpbrk(const char *,const char *); ............[ 86]: extern char * strsep(char **,const char *); ............[ 89]: extern __kernel_size_t strspn(const char *,const char *); ............[ 92]: extern __kernel_size_t strcspn(const char *,const char *); ............[ 105]: extern void * memscan(void *,int,__kernel_size_t); ............[ 108]: extern int memcmp(const void *,const void *,__kernel_size_t); ............[ 111]: extern void * memchr(const void *,int,__kernel_size_t); ............[ 113]: void *memchr_inv(const void *s, int c, size_t n); ............[ 115]: extern char *kstrdup(const char *s, gfp_t gfp); ............[ 116]: extern char *kstrndup(const char *s, size_t len, gfp_t gfp); ............[ 117]: extern void *kmemdup(const void *src, size_t len, gfp_t gfp); ............[ 119]: extern char **argv_split(gfp_t gfp, const char *str, int *argcp); ............[ 120]: extern void argv_free(char **argv); ............[ 122]: extern bool sysfs_streq(const char *s1, const char *s2); ............[ 123]: extern int strtobool(const char *s, bool *res); ............[ 126]: int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args); ............[ 127]: int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf); ............[ 128]: int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __attribute__((format(printf, 3, 4))); ............[ 131]: extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, ............[ 132]: const void *from, size_t available); ............[ 139]: static inline __attribute__((no_instrument_function)) bool strstarts(const char *str, const char *prefix) ............[ 140]: { ............[ 141]: return strncmp(str, prefix, strlen(prefix)) == 0; ............[ 142]: } ............[ 144]: extern size_t memweight(const void *ptr, size_t bytes); ............[ 151]: static inline __attribute__((no_instrument_function)) const char *kbasename(const char *path) ............[ 152]: { ............[ 153]: const char *tail = strrchr(path, '/'); ............[ 154]: return tail ? tail + 1 : path; ............[ 155]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dynamic_debug.h ...........[ 114]: static inline __attribute__((no_instrument_function)) int ddebug_remove_module(const char *mod) ...........[ 115]: { ...........[ 116]: return 0; ...........[ 117]: } ...........[ 119]: static inline __attribute__((no_instrument_function)) int ddebug_dyndbg_module_param_cb(char *param, char *\ ........... val, ...........[ 120]: const char *modname) ...........[ 121]: { ...........[ 122]: if (strstr(param, "dyndbg")) { ...........[ 124]: printk("\001" "4" "dyndbg param is supported only in " ...........[ 125]: "CONFIG_DYNAMIC_DEBUG builds\n"); ...........[ 126]: return 0; ...........[ 127]: } ...........[ 128]: return -22; ...........[ 129]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dynamic_debug.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h ..........[ 368]: extern const struct file_operations kmsg_fops; ..........[ 370]: enum { ..........[ 371]: DUMP_PREFIX_NONE, ..........[ 372]: DUMP_PREFIX_ADDRESS, ..........[ 373]: DUMP_PREFIX_OFFSET ..........[ 374]: }; ..........[ 375]: extern void hex_dump_to_buffer(const void *buf, size_t len, ..........[ 376]: int rowsize, int groupsize, ..........[ 377]: char *linebuf, size_t linebuflen, bool ascii); ..........[ 379]: extern void print_hex_dump(const char *level, const char *prefix_str, ..........[ 380]: int prefix_type, int rowsize, int groupsize, ..........[ 381]: const void *buf, size_t len, bool ascii); ..........[ 386]: extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, ..........[ 387]: const void *buf, size_t len); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/printk.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/kernel.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/kernel.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysinfo.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysinfo.h ...........[ 7]: struct sysinfo { ...........[ 8]: __kernel_long_t uptime; ...........[ 9]: __kernel_ulong_t loads[3]; ...........[ 10]: __kernel_ulong_t totalram; ...........[ 11]: __kernel_ulong_t freeram; ...........[ 12]: __kernel_ulong_t sharedram; ...........[ 13]: __kernel_ulong_t bufferram; ...........[ 14]: __kernel_ulong_t totalswap; ...........[ 15]: __kernel_ulong_t freeswap; ...........[ 16]: __u16 procs; ...........[ 17]: __u16 pad; ...........[ 18]: __kernel_ulong_t totalhigh; ...........[ 19]: __kernel_ulong_t freehigh; ...........[ 20]: __u32 mem_unit; ...........[ 21]: char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; ...........[ 22]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysinfo.h ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/kernel.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h .........[ 140]: struct completion; .........[ 141]: struct pt_regs; .........[ 142]: struct user; .........[ 145]: extern int _cond_resched(void); .........[ 166]: static inline __attribute__((no_instrument_function)) void __might_sleep(const char *file, int line, .........[ 167]: int preempt_offset) { } .........[ 200]: static inline __attribute__((no_instrument_function)) void might_fault(void) { } .........[ 203]: extern struct atomic_notifier_head panic_notifier_list; .........[ 204]: extern long (*panic_blink)(int state); .........[ 205]: __attribute__((format(printf, 1, 2))) .........[ 206]: void panic(const char *fmt, ...) .........[ 207]: __attribute__((noreturn)) ; .........[ 208]: extern void oops_enter(void); .........[ 209]: extern void oops_exit(void); .........[ 210]: void print_oops_end_marker(void); .........[ 211]: extern int oops_may_print(void); .........[ 212]: void do_exit(long error_code) .........[ 213]: __attribute__((noreturn)); .........[ 214]: void complete_and_exit(struct completion *, long) .........[ 215]: __attribute__((noreturn)); .........[ 218]: int _kstrtoul(const char *s, unsigned int base, unsigned long *res); .........[ 219]: int _kstrtol(const char *s, unsigned int base, long *res); .........[ 221]: int kstrtoull(const char *s, unsigned int base, unsigned long long *res); .........[ 222]: int kstrtoll(const char *s, unsigned int base, long long *res); .........[ 240]: static inline __attribute__((no_instrument_function)) int kstrtoul(const char *s, unsigned int base, unsigned long \ ......... *res) .........[ 241]: { .........[ 246]: if (sizeof(unsigned long) == sizeof(unsigned long long) && .........[ 247]: __alignof__(unsigned long) == __alignof__(unsigned long long)) .........[ 248]: return kstrtoull(s, base, (unsigned long long *)res); .........[ 249]: else .........[ 250]: return _kstrtoul(s, base, res); .........[ 251]: } .........[ 269]: static inline __attribute__((no_instrument_function)) int kstrtol(const char *s, unsigned int base, long *res) .........[ 270]: { .........[ 275]: if (sizeof(long) == sizeof(long long) && .........[ 276]: __alignof__(long) == __alignof__(long long)) .........[ 277]: return kstrtoll(s, base, (long long *)res); .........[ 278]: else .........[ 279]: return _kstrtol(s, base, res); .........[ 280]: } .........[ 282]: int kstrtouint(const char *s, unsigned int base, unsigned int *res); .........[ 283]: int kstrtoint(const char *s, unsigned int base, int *res); .........[ 285]: static inline __attribute__((no_instrument_function)) int kstrtou64(const char *s, unsigned int base, u64 *res) .........[ 286]: { .........[ 287]: return kstrtoull(s, base, res); .........[ 288]: } .........[ 290]: static inline __attribute__((no_instrument_function)) int kstrtos64(const char *s, unsigned int base, s64 *res) .........[ 291]: { .........[ 292]: return kstrtoll(s, base, res); .........[ 293]: } .........[ 295]: static inline __attribute__((no_instrument_function)) int kstrtou32(const char *s, unsigned int base, u32 *res) .........[ 296]: { .........[ 297]: return kstrtouint(s, base, res); .........[ 298]: } .........[ 300]: static inline __attribute__((no_instrument_function)) int kstrtos32(const char *s, unsigned int base, s32 *res) .........[ 301]: { .........[ 302]: return kstrtoint(s, base, res); .........[ 303]: } .........[ 305]: int kstrtou16(const char *s, unsigned int base, u16 *res); .........[ 306]: int kstrtos16(const char *s, unsigned int base, s16 *res); .........[ 307]: int kstrtou8(const char *s, unsigned int base, u8 *res); .........[ 308]: int kstrtos8(const char *s, unsigned int base, s8 *res); .........[ 310]: int kstrtoull_from_user(const char *s, size_t count, unsigned int base, unsigned long long *res); .........[ 311]: int kstrtoll_from_user(const char *s, size_t count, unsigned int base, long long *res); .........[ 312]: int kstrtoul_from_user(const char *s, size_t count, unsigned int base, unsigned long *res); .........[ 313]: int kstrtol_from_user(const char *s, size_t count, unsigned int base, long *res); .........[ 314]: int kstrtouint_from_user(const char *s, size_t count, unsigned int base, unsigned int *res); .........[ 315]: int kstrtoint_from_user(const char *s, size_t count, unsigned int base, int *res); .........[ 316]: int kstrtou16_from_user(const char *s, size_t count, unsigned int base, u16 *res); .........[ 317]: int kstrtos16_from_user(const char *s, size_t count, unsigned int base, s16 *res); .........[ 318]: int kstrtou8_from_user(const char *s, size_t count, unsigned int base, u8 *res); .........[ 319]: int kstrtos8_from_user(const char *s, size_t count, unsigned int base, s8 *res); .........[ 321]: static inline __attribute__((no_instrument_function)) int kstrtou64_from_user(const char *s, size_t count, unsigned \ ......... int base, u64 *res) .........[ 322]: { .........[ 323]: return kstrtoull_from_user(s, count, base, res); .........[ 324]: } .........[ 326]: static inline __attribute__((no_instrument_function)) int kstrtos64_from_user(const char *s, size_t count, unsigned \ ......... int base, s64 *res) .........[ 327]: { .........[ 328]: return kstrtoll_from_user(s, count, base, res); .........[ 329]: } .........[ 331]: static inline __attribute__((no_instrument_function)) int kstrtou32_from_user(const char *s, size_t count, unsigned \ ......... int base, u32 *res) .........[ 332]: { .........[ 333]: return kstrtouint_from_user(s, count, base, res); .........[ 334]: } .........[ 336]: static inline __attribute__((no_instrument_function)) int kstrtos32_from_user(const char *s, size_t count, unsigned \ ......... int base, s32 *res) .........[ 337]: { .........[ 338]: return kstrtoint_from_user(s, count, base, res); .........[ 339]: } .........[ 343]: extern unsigned long simple_strtoul(const char *,char **,unsigned int); .........[ 344]: extern long simple_strtol(const char *,char **,unsigned int); .........[ 345]: extern unsigned long long simple_strtoull(const char *,char **,unsigned int); .........[ 346]: extern long long simple_strtoll(const char *,char **,unsigned int); .........[ 352]: extern int num_to_str(char *buf, int size, unsigned long long num); .........[ 356]: extern __attribute__((format(printf, 2, 3))) int sprintf(char *buf, const char * fmt, ...); .........[ 357]: extern __attribute__((format(printf, 2, 0))) int vsprintf(char *buf, const char *, va_list); .........[ 358]: extern __attribute__((format(printf, 3, 4))) .........[ 359]: int snprintf(char *buf, size_t size, const char *fmt, ...); .........[ 360]: extern __attribute__((format(printf, 3, 0))) .........[ 361]: int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); .........[ 362]: extern __attribute__((format(printf, 3, 4))) .........[ 363]: int scnprintf(char *buf, size_t size, const char *fmt, ...); .........[ 364]: extern __attribute__((format(printf, 3, 0))) .........[ 365]: int vscnprintf(char *buf, size_t size, const char *fmt, va_list args); .........[ 366]: extern __attribute__((format(printf, 2, 3))) .........[ 367]: char *kasprintf(gfp_t gfp, const char *fmt, ...); .........[ 368]: extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args); .........[ 370]: extern __attribute__((format(scanf, 2, 3))) .........[ 371]: int sscanf(const char *, const char *, ...); .........[ 372]: extern __attribute__((format(scanf, 2, 0))) .........[ 373]: int vsscanf(const char *, const char *, va_list); .........[ 375]: extern int get_option(char **str, int *pint); .........[ 376]: extern char *get_options(const char *str, int nints, int *ints); .........[ 377]: extern unsigned long long memparse(const char *ptr, char **retptr); .........[ 379]: extern int core_kernel_text(unsigned long addr); .........[ 380]: extern int core_kernel_data(unsigned long addr); .........[ 381]: extern int __kernel_text_address(unsigned long addr); .........[ 382]: extern int kernel_text_address(unsigned long addr); .........[ 383]: extern int func_ptr_is_kernel_text(void *ptr); .........[ 385]: struct pid; .........[ 386]: extern struct pid *session_of_pgrp(struct pid *pgrp); .........[ 388]: unsigned long int_sqrt(unsigned long); .........[ 390]: extern void bust_spinlocks(int yes); .........[ 391]: extern int oops_in_progress; .........[ 392]: extern int panic_timeout; .........[ 393]: extern int panic_on_oops; .........[ 394]: extern int panic_on_unrecovered_nmi; .........[ 395]: extern int panic_on_io_nmi; .........[ 396]: extern int sysctl_panic_on_stackoverflow; .........[ 397]: extern const char *print_tainted(void); .........[ 398]: enum lockdep_ok { .........[ 399]: LOCKDEP_STILL_OK, .........[ 400]: LOCKDEP_NOW_UNRELIABLE .........[ 401]: }; .........[ 402]: extern void add_taint(unsigned flag, enum lockdep_ok); .........[ 403]: extern int test_taint(unsigned flag); .........[ 404]: extern unsigned long get_taint(void); .........[ 405]: extern int root_mountflags; .........[ 407]: extern bool early_boot_irqs_disabled; .........[ 410]: extern enum system_states { .........[ 411]: SYSTEM_BOOTING, .........[ 412]: SYSTEM_RUNNING, .........[ 413]: SYSTEM_HALT, .........[ 414]: SYSTEM_POWER_OFF, .........[ 415]: SYSTEM_RESTART, .........[ 416]: } system_state; .........[ 432]: extern const char hex_asc[]; .........[ 436]: static inline __attribute__((no_instrument_function)) char *hex_byte_pack(char *buf, u8 byte) .........[ 437]: { .........[ 438]: *buf++ = hex_asc[((byte) & 0xf0) >> 4]; .........[ 439]: *buf++ = hex_asc[((byte) & 0x0f)]; .........[ 440]: return buf; .........[ 441]: } .........[ 443]: extern const char hex_asc_upper[]; .........[ 447]: static inline __attribute__((no_instrument_function)) char *hex_byte_pack_upper(char *buf, u8 byte) .........[ 448]: { .........[ 449]: *buf++ = hex_asc_upper[((byte) & 0xf0) >> 4]; .........[ 450]: *buf++ = hex_asc_upper[((byte) & 0x0f)]; .........[ 451]: return buf; .........[ 452]: } .........[ 454]: static inline __attribute__((no_instrument_function)) char * pack_hex_byte(char *buf, u8 byte) .........[ 455]: { .........[ 456]: return hex_byte_pack(buf, byte); .........[ 457]: } .........[ 459]: extern int hex_to_bin(char ch); .........[ 460]: extern int hex2bin(u8 *dst, const char *src, size_t count); .........[ 462]: int mac_pton(const char *s, u8 *mac); .........[ 485]: void tracing_off_permanent(void); .........[ 490]: enum ftrace_dump_mode { .........[ 491]: DUMP_NONE, .........[ 492]: DUMP_ALL, .........[ 493]: DUMP_ORIG, .........[ 494]: }; .........[ 497]: void tracing_on(void); .........[ 498]: void tracing_off(void); .........[ 499]: int tracing_is_on(void); .........[ 500]: void tracing_snapshot(void); .........[ 501]: void tracing_snapshot_alloc(void); .........[ 503]: extern void tracing_start(void); .........[ 504]: extern void tracing_stop(void); .........[ 506]: static inline __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) .........[ 507]: void ____trace_printk_check_format(const char *fmt, ...) .........[ 508]: { .........[ 509]: } .........[ 569]: extern __attribute__((format(printf, 2, 3))) .........[ 570]: int __trace_bprintk(unsigned long ip, const char *fmt, ...); .........[ 572]: extern __attribute__((format(printf, 2, 3))) .........[ 573]: int __trace_printk(unsigned long ip, const char *fmt, ...); .........[ 610]: extern int __trace_bputs(unsigned long ip, const char *str); .........[ 611]: extern int __trace_puts(unsigned long ip, const char *str, int size); .........[ 613]: extern void trace_dump_stack(int skip); .........[ 632]: extern int .........[ 633]: __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap); .........[ 635]: extern int .........[ 636]: __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap); .........[ 638]: extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kernel.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h ........[ 88]: extern void __bad_percpu_size(void); ........[ 492]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int x86_this_cpu_constant_test_bit\ ........ (unsigned int nr, ........[ 493]: const unsigned long *addr) ........[ 494]: { ........[ 495]: unsigned long *a = (unsigned long *)addr + nr / 64; ........[ 498]: return ((1UL << (nr % 64)) & ({ typeof((*a)) pfo_ret__; switch (sizeof((*a))) { case 1: asm("mov" "b ""%%""gs"":" "%P" \ ........ "1"",%0" : "=q" (pfo_ret__) : "m"(*a)); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"\ ........ (*a)); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"(*a)); break; case 8: asm("mov" \ ........ "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"(*a)); break; default: __bad_percpu_size(); } pfo_ret__; })\ ........ ) != 0; ........[ 502]: } ........[ 504]: static inline __attribute__((no_instrument_function)) int x86_this_cpu_variable_test_bit(int nr, ........[ 505]: const unsigned long *addr) ........[ 506]: { ........[ 507]: int oldbit; ........[ 509]: asm volatile("bt ""%%""gs"":" "%P" "2"",%1\n\t" ........[ 510]: "sbb %0,%0" ........[ 511]: : "=r" (oldbit) ........[ 512]: : "m" (*(unsigned long *)addr), "Ir" (nr)); ........[ 514]: return oldbit; ........[ 515]: } .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/percpu.h .........[ 18]: extern unsigned long __per_cpu_offset[64]; .........[ 72]: extern void setup_per_cpu_areas(void); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/percpu.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h ........[ 526]: extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned long) this_cpu_off; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/percpu.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/preempt.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bug.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bug.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bug.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bug.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bug.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bug.h ...........[ 18]: struct bug_entry { ...........[ 22]: signed int bug_addr_disp; ...........[ 28]: signed int file_disp; ...........[ 30]: unsigned short line; ...........[ 32]: unsigned short flags; ...........[ 33]: }; ...........[ 65]: extern __attribute__((format(printf, 3, 4))) ...........[ 66]: void warn_slowpath_fmt(const char *file, const int line, ...........[ 67]: const char *fmt, ...); ...........[ 68]: extern __attribute__((format(printf, 4, 5))) ...........[ 69]: void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint, ...........[ 70]: const char *fmt, ...); ...........[ 71]: extern void warn_slowpath_null(const char *file, const int line); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bug.h ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/bug.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bug.h .........[ 7]: enum bug_trap_type { .........[ 8]: BUG_TRAP_TYPE_NONE = 0, .........[ 9]: BUG_TRAP_TYPE_WARN = 1, .........[ 10]: BUG_TRAP_TYPE_BUG = 2, .........[ 11]: }; .........[ 13]: struct pt_regs; .........[ 91]: static inline __attribute__((no_instrument_function)) int is_warning_bug(const struct bug_entry *bug) .........[ 92]: { .........[ 93]: return bug->flags & (1 << 0); .........[ 94]: } .........[ 96]: const struct bug_entry *find_bug(unsigned long bugaddr); .........[ 98]: enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs); .........[ 101]: int is_valid_bugaddr(unsigned long addr); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bug.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h ........[ 13]: struct timespec; ........[ 14]: struct compat_timespec; ........[ 19]: struct restart_block { ........[ 20]: long (*fn)(struct restart_block *); ........[ 21]: union { ........[ 23]: struct { ........[ 24]: u32 *uaddr; ........[ 25]: u32 val; ........[ 26]: u32 flags; ........[ 27]: u32 bitset; ........[ 28]: u64 time; ........[ 29]: u32 *uaddr2; ........[ 30]: } futex; ........[ 32]: struct { ........[ 33]: clockid_t clockid; ........[ 34]: struct timespec *rmtp; ........[ 36]: struct compat_timespec *compat_rmtp; ........[ 38]: u64 expires; ........[ 39]: } nanosleep; ........[ 41]: struct { ........[ 42]: struct pollfd *ufds; ........[ 43]: int nfds; ........[ 44]: int has_timeout; ........[ 45]: unsigned long tv_sec; ........[ 46]: unsigned long tv_nsec; ........[ 47]: } poll; ........[ 48]: }; ........[ 49]: }; ........[ 51]: extern long do_no_restart_syscall(struct restart_block *parm); .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_types.h ...........[ 49]: extern int devmem_is_allowed(unsigned long pagenr); ...........[ 51]: extern unsigned long max_low_pfn_mapped; ...........[ 52]: extern unsigned long max_pfn_mapped; ...........[ 54]: static inline __attribute__((no_instrument_function)) phys_addr_t get_max_mapped(void) ...........[ 55]: { ...........[ 56]: return (phys_addr_t)max_pfn_mapped << 12; ...........[ 57]: } ...........[ 59]: bool pfn_range_is_mapped(unsigned long start_pfn, unsigned long end_pfn); ...........[ 61]: extern unsigned long init_memory_mapping(unsigned long start, ...........[ 62]: unsigned long end); ...........[ 64]: extern void initmem_init(void); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_types.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_64.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_64.h ...........[ 9]: extern unsigned long max_pfn; ...........[ 10]: extern unsigned long phys_base; ...........[ 12]: static inline __attribute__((no_instrument_function)) unsigned long __phys_addr_nodebug(unsigned long x) ...........[ 13]: { ...........[ 14]: unsigned long y = x - (0xffffffff80000000UL); ...........[ 17]: x = y + ((x > y) ? phys_base : ((0xffffffff80000000UL) - ((unsigned long)(0xffff880000000000UL)))); ...........[ 19]: return x; ...........[ 20]: } ...........[ 37]: void clear_page(void *page); ...........[ 38]: void copy_page(void *to, void *from); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_64.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........[ 18]: struct page; .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/range.h ...........[ 4]: struct range { ...........[ 5]: u64 start; ...........[ 6]: u64 end; ...........[ 7]: }; ...........[ 9]: int add_range(struct range *range, int az, int nr_range, ...........[ 10]: u64 start, u64 end); ...........[ 13]: int add_range_with_merge(struct range *range, int az, int nr_range, ...........[ 14]: u64 start, u64 end); ...........[ 16]: void subtract_range(struct range *range, int az, u64 start, u64 end); ...........[ 18]: int clean_sort_range(struct range *range, int az); ...........[ 20]: void sort_range(struct range *range, int nr_range); ...........[ 23]: static inline __attribute__((no_instrument_function)) resource_size_t cap_resource(u64 val) ...........[ 24]: { ...........[ 25]: if (val > ((resource_size_t)~0)) ...........[ 26]: return ((resource_size_t)~0); ...........[ 28]: return val; ...........[ 29]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/range.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........[ 21]: extern struct range pfn_mapped[]; ..........[ 22]: extern int nr_pfn_mapped; ..........[ 24]: static inline __attribute__((no_instrument_function)) void clear_user_page(void *page, unsigned long vaddr, ..........[ 25]: struct page *pg) ..........[ 26]: { ..........[ 27]: clear_page(page); ..........[ 28]: } ..........[ 30]: static inline __attribute__((no_instrument_function)) void copy_user_page(void *to, void *from, unsigned long \ .......... vaddr, ..........[ 31]: struct page *topage) ..........[ 32]: { ..........[ 33]: copy_page(to, from); ..........[ 34]: } ..........[ 65]: extern bool __virt_addr_valid(unsigned long kaddr); .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/getorder.h ...........[ 12]: static inline __attribute__((no_instrument_function)) __attribute__((__const__)) ...........[ 13]: int __get_order(unsigned long size) ...........[ 14]: { ...........[ 15]: int order; ...........[ 17]: size--; ...........[ 18]: size >>= 12; ...........[ 22]: order = fls64(size); ...........[ 24]: return order; ...........[ 25]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/getorder.h ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h .........[ 20]: struct task_struct; .........[ 21]: struct exec_domain; ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........[ 7]: struct task_struct; ..........[ 8]: struct mm_struct; .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/vm86.h ...........[ 62]: struct vm86_regs { ...........[ 66]: long ebx; ...........[ 67]: long ecx; ...........[ 68]: long edx; ...........[ 69]: long esi; ...........[ 70]: long edi; ...........[ 71]: long ebp; ...........[ 72]: long eax; ...........[ 73]: long __null_ds; ...........[ 74]: long __null_es; ...........[ 75]: long __null_fs; ...........[ 76]: long __null_gs; ...........[ 77]: long orig_eax; ...........[ 78]: long eip; ...........[ 79]: unsigned short cs, __csh; ...........[ 80]: long eflags; ...........[ 81]: long esp; ...........[ 82]: unsigned short ss, __ssh; ...........[ 86]: unsigned short es, __esh; ...........[ 87]: unsigned short ds, __dsh; ...........[ 88]: unsigned short fs, __fsh; ...........[ 89]: unsigned short gs, __gsh; ...........[ 90]: }; ...........[ 92]: struct revectored_struct { ...........[ 93]: unsigned long __map[8]; ...........[ 94]: }; ...........[ 96]: struct vm86_struct { ...........[ 97]: struct vm86_regs regs; ...........[ 98]: unsigned long flags; ...........[ 99]: unsigned long screen_bitmap; ...........[ 100]: unsigned long cpu_type; ...........[ 101]: struct revectored_struct int_revectored; ...........[ 102]: struct revectored_struct int21_revectored; ...........[ 103]: }; ...........[ 110]: struct vm86plus_info_struct { ...........[ 111]: unsigned long force_return_for_pic:1; ...........[ 112]: unsigned long vm86dbg_active:1; ...........[ 113]: unsigned long vm86dbg_TFpendig:1; ...........[ 114]: unsigned long unused:28; ...........[ 115]: unsigned long is_vm86pus:1; ...........[ 116]: unsigned char vm86dbg_intxxtab[32]; ...........[ 117]: }; ...........[ 118]: struct vm86plus_struct { ...........[ 119]: struct vm86_regs regs; ...........[ 120]: unsigned long flags; ...........[ 121]: unsigned long screen_bitmap; ...........[ 122]: unsigned long cpu_type; ...........[ 123]: struct revectored_struct int_revectored; ...........[ 124]: struct revectored_struct int21_revectored; ...........[ 125]: struct vm86plus_info_struct vm86plus; ...........[ 126]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/vm86.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/math_emu.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/math_emu.h ...........[ 11]: struct math_emu_info { ...........[ 12]: long ___orig_eip; ...........[ 13]: union { ...........[ 14]: struct pt_regs *regs; ...........[ 15]: struct kernel_vm86_regs *vm86; ...........[ 16]: }; ...........[ 17]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/math_emu.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/segment.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/segment.h ...........[ 216]: extern const char early_idt_handlers[32][2+2+5]; ...........[ 267]: static inline __attribute__((no_instrument_function)) unsigned long get_limit(unsigned long segment) ...........[ 268]: { ...........[ 269]: unsigned long __limit; ...........[ 270]: asm("lsll %1,%0" : "=r" (__limit) : "r" (segment)); ...........[ 271]: return __limit + 1; ...........[ 272]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/segment.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/sigcontext.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/sigcontext.h ...........[ 23]: struct _fpx_sw_bytes { ...........[ 24]: __u32 magic1; ...........[ 25]: __u32 extended_size; ...........[ 28]: __u64 xstate_bv; ...........[ 33]: __u32 xstate_size; ...........[ 38]: __u32 padding[7]; ...........[ 39]: }; ...........[ 136]: struct _fpstate { ...........[ 137]: __u16 cwd; ...........[ 138]: __u16 swd; ...........[ 139]: __u16 twd; ...........[ 141]: __u16 fop; ...........[ 142]: __u64 rip; ...........[ 143]: __u64 rdp; ...........[ 144]: __u32 mxcsr; ...........[ 145]: __u32 mxcsr_mask; ...........[ 146]: __u32 st_space[32]; ...........[ 147]: __u32 xmm_space[64]; ...........[ 148]: __u32 reserved2[12]; ...........[ 149]: union { ...........[ 150]: __u32 reserved3[12]; ...........[ 151]: struct _fpx_sw_bytes sw_reserved; ...........[ 153]: }; ...........[ 154]: }; ...........[ 197]: struct _xsave_hdr { ...........[ 198]: __u64 xstate_bv; ...........[ 199]: __u64 reserved1[2]; ...........[ 200]: __u64 reserved2[5]; ...........[ 201]: }; ...........[ 203]: struct _ymmh_state { ...........[ 205]: __u32 ymmh_space[64]; ...........[ 206]: }; ...........[ 214]: struct _xstate { ...........[ 215]: struct _fpstate fpstate; ...........[ 216]: struct _xsave_hdr xstate_hdr; ...........[ 217]: struct _ymmh_state ymmh; ...........[ 219]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/sigcontext.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/current.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/current.h ...........[ 8]: struct task_struct; ...........[ 10]: extern __attribute__((section(".data..percpu" ""))) __typeof__(struct task_struct *) current_task; ...........[ 12]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) struct task_struct *get_current\ ........... (void) ...........[ 13]: { ...........[ 14]: return ({ typeof(current_task) pfo_ret__; switch (sizeof(current_task)) { case 1: asm("mov" "b ""%%""gs"":" "%P" \ ........... "1"",%0" : "=q" (pfo_ret__) : "p"( &(current_task))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" \ ........... (pfo_ret__) : "p"( &(current_task))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "p"\ ........... ( &(current_task))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "p"( &(current_task\ ........... ))); break; default: __bad_percpu_size(); } pfo_ret__; }); ...........[ 15]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/current.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_types.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_types.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64_types.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64_types.h ............[ 12]: typedef unsigned long pteval_t; ............[ 13]: typedef unsigned long pmdval_t; ............[ 14]: typedef unsigned long pudval_t; ............[ 15]: typedef unsigned long pgdval_t; ............[ 16]: typedef unsigned long pgprotval_t; ............[ 18]: typedef struct { pteval_t pte; } pte_t; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64_types.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_types.h ...........[ 242]: typedef struct pgprot { pgprotval_t pgprot; } pgprot_t; ...........[ 244]: typedef struct { pgdval_t pgd; } pgd_t; ...........[ 246]: static inline __attribute__((no_instrument_function)) pgd_t native_make_pgd(pgdval_t val) ...........[ 247]: { ...........[ 248]: return (pgd_t) { val }; ...........[ 249]: } ...........[ 251]: static inline __attribute__((no_instrument_function)) pgdval_t native_pgd_val(pgd_t pgd) ...........[ 252]: { ...........[ 253]: return pgd.pgd; ...........[ 254]: } ...........[ 256]: static inline __attribute__((no_instrument_function)) pgdval_t pgd_flags(pgd_t pgd) ...........[ 257]: { ...........[ 258]: return native_pgd_val(pgd) & (~((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1\ ........... ))))); ...........[ 259]: } ...........[ 262]: typedef struct { pudval_t pud; } pud_t; ...........[ 264]: static inline __attribute__((no_instrument_function)) pud_t native_make_pud(pmdval_t val) ...........[ 265]: { ...........[ 266]: return (pud_t) { val }; ...........[ 267]: } ...........[ 269]: static inline __attribute__((no_instrument_function)) pudval_t native_pud_val(pud_t pud) ...........[ 270]: { ...........[ 271]: return pud.pud; ...........[ 272]: } ...........[ 283]: typedef struct { pmdval_t pmd; } pmd_t; ...........[ 285]: static inline __attribute__((no_instrument_function)) pmd_t native_make_pmd(pmdval_t val) ...........[ 286]: { ...........[ 287]: return (pmd_t) { val }; ...........[ 288]: } ...........[ 290]: static inline __attribute__((no_instrument_function)) pmdval_t native_pmd_val(pmd_t pmd) ...........[ 291]: { ...........[ 292]: return pmd.pmd; ...........[ 293]: } ...........[ 303]: static inline __attribute__((no_instrument_function)) pudval_t pud_flags(pud_t pud) ...........[ 304]: { ...........[ 305]: return native_pud_val(pud) & (~((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1\ ........... ))))); ...........[ 306]: } ...........[ 308]: static inline __attribute__((no_instrument_function)) pmdval_t pmd_flags(pmd_t pmd) ...........[ 309]: { ...........[ 310]: return native_pmd_val(pmd) & (~((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1\ ........... ))))); ...........[ 311]: } ...........[ 313]: static inline __attribute__((no_instrument_function)) pte_t native_make_pte(pteval_t val) ...........[ 314]: { ...........[ 315]: return (pte_t) { .pte = val }; ...........[ 316]: } ...........[ 318]: static inline __attribute__((no_instrument_function)) pteval_t native_pte_val(pte_t pte) ...........[ 319]: { ...........[ 320]: return pte.pte; ...........[ 321]: } ...........[ 323]: static inline __attribute__((no_instrument_function)) pteval_t pte_flags(pte_t pte) ...........[ 324]: { ...........[ 325]: return native_pte_val(pte) & (~((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1\ ........... ))))); ...........[ 326]: } ...........[ 332]: typedef struct page *pgtable_t; ...........[ 334]: extern pteval_t __supported_pte_mask; ...........[ 335]: extern void set_nx(void); ...........[ 336]: extern int nx_enabled; ...........[ 339]: extern pgprot_t pgprot_writecombine(pgprot_t prot); ...........[ 345]: struct file; ...........[ 346]: pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, ...........[ 347]: unsigned long size, pgprot_t vma_prot); ...........[ 348]: int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, ...........[ 349]: unsigned long size, pgprot_t *vma_prot); ...........[ 352]: void set_pte_vaddr(unsigned long vaddr, pte_t pte); ...........[ 360]: struct seq_file; ...........[ 361]: extern void arch_report_meminfo(struct seq_file *m); ...........[ 363]: enum pg_level { ...........[ 364]: PG_LEVEL_NONE, ...........[ 365]: PG_LEVEL_4K, ...........[ 366]: PG_LEVEL_2M, ...........[ 367]: PG_LEVEL_1G, ...........[ 368]: PG_LEVEL_NUM ...........[ 369]: }; ...........[ 372]: extern void update_page_count(int level, unsigned long pages); ...........[ 383]: extern pte_t *lookup_address(unsigned long address, unsigned int *level); ...........[ 384]: extern phys_addr_t slow_virt_to_phys(void *__address); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_types.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/msr.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/msr.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ioctl.h ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ioctl.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ioctl.h ............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ioctl.h .............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/ioctl.h ..............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/ioctl.h ..............[ 7]: extern unsigned int __invalid_size_argument_for_IOC; ..............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/ioctl.h .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ioctl.h ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ioctl.h ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/msr.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/desc_defs.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/desc_defs.h ...........[ 22]: struct desc_struct { ...........[ 23]: union { ...........[ 24]: struct { ...........[ 25]: unsigned int a; ...........[ 26]: unsigned int b; ...........[ 27]: }; ...........[ 28]: struct { ...........[ 29]: u16 limit0; ...........[ 30]: u16 base0; ...........[ 31]: unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1; ...........[ 32]: unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8; ...........[ 33]: }; ...........[ 34]: }; ...........[ 35]: } __attribute__((packed)); ...........[ 43]: enum { ...........[ 44]: GATE_INTERRUPT = 0xE, ...........[ 45]: GATE_TRAP = 0xF, ...........[ 46]: GATE_CALL = 0xC, ...........[ 47]: GATE_TASK = 0x5, ...........[ 48]: }; ...........[ 51]: struct gate_struct64 { ...........[ 52]: u16 offset_low; ...........[ 53]: u16 segment; ...........[ 54]: unsigned ist : 3, zero0 : 5, type : 5, dpl : 2, p : 1; ...........[ 55]: u16 offset_middle; ...........[ 56]: u32 offset_high; ...........[ 57]: u32 zero1; ...........[ 58]: } __attribute__((packed)); ...........[ 64]: enum { ...........[ 65]: DESC_TSS = 0x9, ...........[ 66]: DESC_LDT = 0x2, ...........[ 67]: DESCTYPE_S = 0x10, ...........[ 68]: }; ...........[ 71]: struct ldttss_desc64 { ...........[ 72]: u16 limit0; ...........[ 73]: u16 base0; ...........[ 74]: unsigned base1 : 8, type : 5, dpl : 2, p : 1; ...........[ 75]: unsigned limit1 : 4, zero0 : 3, g : 1, base2 : 8; ...........[ 76]: u32 base3; ...........[ 77]: u32 zero1; ...........[ 78]: } __attribute__((packed)); ...........[ 81]: typedef struct gate_struct64 gate_desc; ...........[ 82]: typedef struct ldttss_desc64 ldt_desc; ...........[ 83]: typedef struct ldttss_desc64 tss_desc; ...........[ 94]: struct desc_ptr { ...........[ 95]: unsigned short size; ...........[ 96]: unsigned long address; ...........[ 97]: } __attribute__((packed)) ; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/desc_defs.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/nops.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/nops.h ...........[ 142]: extern const unsigned char * const *ideal_nops; ...........[ 143]: extern void arch_init_ideal_nops(void); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/nops.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/special_insns.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/special_insns.h ...........[ 7]: static inline __attribute__((no_instrument_function)) void native_clts(void) ...........[ 8]: { ...........[ 9]: asm volatile("clts"); ...........[ 10]: } ...........[ 19]: extern unsigned long __force_order; ...........[ 21]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr0(void) ...........[ 22]: { ...........[ 23]: unsigned long val; ...........[ 24]: asm volatile("mov %%cr0,%0\n\t" : "=r" (val), "=m" (__force_order)); ...........[ 25]: return val; ...........[ 26]: } ...........[ 28]: static inline __attribute__((no_instrument_function)) void native_write_cr0(unsigned long val) ...........[ 29]: { ...........[ 30]: asm volatile("mov %0,%%cr0": : "r" (val), "m" (__force_order)); ...........[ 31]: } ...........[ 33]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr2(void) ...........[ 34]: { ...........[ 35]: unsigned long val; ...........[ 36]: asm volatile("mov %%cr2,%0\n\t" : "=r" (val), "=m" (__force_order)); ...........[ 37]: return val; ...........[ 38]: } ...........[ 40]: static inline __attribute__((no_instrument_function)) void native_write_cr2(unsigned long val) ...........[ 41]: { ...........[ 42]: asm volatile("mov %0,%%cr2": : "r" (val), "m" (__force_order)); ...........[ 43]: } ...........[ 45]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr3(void) ...........[ 46]: { ...........[ 47]: unsigned long val; ...........[ 48]: asm volatile("mov %%cr3,%0\n\t" : "=r" (val), "=m" (__force_order)); ...........[ 49]: return val; ...........[ 50]: } ...........[ 52]: static inline __attribute__((no_instrument_function)) void native_write_cr3(unsigned long val) ...........[ 53]: { ...........[ 54]: asm volatile("mov %0,%%cr3": : "r" (val), "m" (__force_order)); ...........[ 55]: } ...........[ 57]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr4(void) ...........[ 58]: { ...........[ 59]: unsigned long val; ...........[ 60]: asm volatile("mov %%cr4,%0\n\t" : "=r" (val), "=m" (__force_order)); ...........[ 61]: return val; ...........[ 62]: } ...........[ 64]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr4_safe(void) ...........[ 65]: { ...........[ 66]: unsigned long val; ...........[ 75]: val = native_read_cr4(); ...........[ 77]: return val; ...........[ 78]: } ...........[ 80]: static inline __attribute__((no_instrument_function)) void native_write_cr4(unsigned long val) ...........[ 81]: { ...........[ 82]: asm volatile("mov %0,%%cr4": : "r" (val), "m" (__force_order)); ...........[ 83]: } ...........[ 86]: static inline __attribute__((no_instrument_function)) unsigned long native_read_cr8(void) ...........[ 87]: { ...........[ 88]: unsigned long cr8; ...........[ 89]: asm volatile("movq %%cr8,%0" : "=r" (cr8)); ...........[ 90]: return cr8; ...........[ 91]: } ...........[ 93]: static inline __attribute__((no_instrument_function)) void native_write_cr8(unsigned long val) ...........[ 94]: { ...........[ 95]: asm volatile("movq %0,%%cr8" :: "r" (val) : "memory"); ...........[ 96]: } ...........[ 99]: static inline __attribute__((no_instrument_function)) void native_wbinvd(void) ...........[ 100]: { ...........[ 101]: asm volatile("wbinvd": : :"memory"); ...........[ 102]: } ...........[ 104]: extern void native_load_gs_index(unsigned); ...........[ 110]: static inline __attribute__((no_instrument_function)) unsigned long read_cr0(void) ...........[ 111]: { ...........[ 112]: return native_read_cr0(); ...........[ 113]: } ...........[ 115]: static inline __attribute__((no_instrument_function)) void write_cr0(unsigned long x) ...........[ 116]: { ...........[ 117]: native_write_cr0(x); ...........[ 118]: } ...........[ 120]: static inline __attribute__((no_instrument_function)) unsigned long read_cr2(void) ...........[ 121]: { ...........[ 122]: return native_read_cr2(); ...........[ 123]: } ...........[ 125]: static inline __attribute__((no_instrument_function)) void write_cr2(unsigned long x) ...........[ 126]: { ...........[ 127]: native_write_cr2(x); ...........[ 128]: } ...........[ 130]: static inline __attribute__((no_instrument_function)) unsigned long read_cr3(void) ...........[ 131]: { ...........[ 132]: return native_read_cr3(); ...........[ 133]: } ...........[ 135]: static inline __attribute__((no_instrument_function)) void write_cr3(unsigned long x) ...........[ 136]: { ...........[ 137]: native_write_cr3(x); ...........[ 138]: } ...........[ 140]: static inline __attribute__((no_instrument_function)) unsigned long read_cr4(void) ...........[ 141]: { ...........[ 142]: return native_read_cr4(); ...........[ 143]: } ...........[ 145]: static inline __attribute__((no_instrument_function)) unsigned long read_cr4_safe(void) ...........[ 146]: { ...........[ 147]: return native_read_cr4_safe(); ...........[ 148]: } ...........[ 150]: static inline __attribute__((no_instrument_function)) void write_cr4(unsigned long x) ...........[ 151]: { ...........[ 152]: native_write_cr4(x); ...........[ 153]: } ...........[ 155]: static inline __attribute__((no_instrument_function)) void wbinvd(void) ...........[ 156]: { ...........[ 157]: native_wbinvd(); ...........[ 158]: } ...........[ 162]: static inline __attribute__((no_instrument_function)) unsigned long read_cr8(void) ...........[ 163]: { ...........[ 164]: return native_read_cr8(); ...........[ 165]: } ...........[ 167]: static inline __attribute__((no_instrument_function)) void write_cr8(unsigned long x) ...........[ 168]: { ...........[ 169]: native_write_cr8(x); ...........[ 170]: } ...........[ 172]: static inline __attribute__((no_instrument_function)) void load_gs_index(unsigned selector) ...........[ 173]: { ...........[ 174]: native_load_gs_index(selector); ...........[ 175]: } ...........[ 180]: static inline __attribute__((no_instrument_function)) void clts(void) ...........[ 181]: { ...........[ 182]: native_clts(); ...........[ 183]: } ...........[ 189]: static inline __attribute__((no_instrument_function)) void clflush(volatile void *__p) ...........[ 190]: { ...........[ 191]: asm volatile("clflush %0" : "+m" (*(volatile char *)__p)); ...........[ 192]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/special_insns.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/personality.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/personality.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/personality.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/personality.h ............[ 10]: enum { ............[ 11]: UNAME26 = 0x0020000, ............[ 12]: ADDR_NO_RANDOMIZE = 0x0040000, ............[ 13]: FDPIC_FUNCPTRS = 0x0080000, ............[ 16]: MMAP_PAGE_ZERO = 0x0100000, ............[ 17]: ADDR_COMPAT_LAYOUT = 0x0200000, ............[ 18]: READ_IMPLIES_EXEC = 0x0400000, ............[ 19]: ADDR_LIMIT_32BIT = 0x0800000, ............[ 20]: SHORT_INODE = 0x1000000, ............[ 21]: WHOLE_SECONDS = 0x2000000, ............[ 22]: STICKY_TIMEOUTS = 0x4000000, ............[ 23]: ADDR_LIMIT_3GB = 0x8000000, ............[ 24]: }; ............[ 41]: enum { ............[ 42]: PER_LINUX = 0x0000, ............[ 43]: PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT, ............[ 44]: PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS, ............[ 45]: PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, ............[ 46]: PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE, ............[ 47]: PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | ............[ 48]: WHOLE_SECONDS | SHORT_INODE, ............[ 49]: PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, ............[ 50]: PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE, ............[ 51]: PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS, ............[ 52]: PER_BSD = 0x0006, ............[ 53]: PER_SUNOS = 0x0006 | STICKY_TIMEOUTS, ............[ 54]: PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE, ............[ 55]: PER_LINUX32 = 0x0008, ............[ 56]: PER_LINUX32_3GB = 0x0008 | ADDR_LIMIT_3GB, ............[ 57]: PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS, ............[ 58]: PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS, ............[ 59]: PER_IRIX64 = 0x000b | STICKY_TIMEOUTS, ............[ 60]: PER_RISCOS = 0x000c, ............[ 61]: PER_SOLARIS = 0x000d | STICKY_TIMEOUTS, ............[ 62]: PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, ............[ 63]: PER_OSF4 = 0x000f, ............[ 64]: PER_HPUX = 0x0010, ............[ 65]: PER_MASK = 0x00ff, ............[ 66]: }; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/personality.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/personality.h ...........[ 11]: struct exec_domain; ...........[ 12]: struct pt_regs; ...........[ 14]: extern int register_exec_domain(struct exec_domain *); ...........[ 15]: extern int unregister_exec_domain(struct exec_domain *); ...........[ 16]: extern int __set_personality(unsigned int); ...........[ 25]: typedef void (*handler_t)(int, struct pt_regs *); ...........[ 27]: struct exec_domain { ...........[ 28]: const char *name; ...........[ 29]: handler_t handler; ...........[ 30]: unsigned char pers_low; ...........[ 31]: unsigned char pers_high; ...........[ 32]: unsigned long *signal_map; ...........[ 33]: unsigned long *signal_invmap; ...........[ 34]: struct map_segment *err_map; ...........[ 35]: struct map_segment *socktype_map; ...........[ 36]: struct map_segment *sockopt_map; ...........[ 37]: struct map_segment *af_map; ...........[ 38]: struct module *module; ...........[ 39]: struct exec_domain *next; ...........[ 40]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/personality.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpumask.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpumask.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitmap.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitmap.h ............[ 91]: extern int __bitmap_empty(const unsigned long *bitmap, int bits); ............[ 92]: extern int __bitmap_full(const unsigned long *bitmap, int bits); ............[ 93]: extern int __bitmap_equal(const unsigned long *bitmap1, ............[ 94]: const unsigned long *bitmap2, int bits); ............[ 95]: extern void __bitmap_complement(unsigned long *dst, const unsigned long *src, ............[ 96]: int bits); ............[ 97]: extern void __bitmap_shift_right(unsigned long *dst, ............[ 98]: const unsigned long *src, int shift, int bits); ............[ 99]: extern void __bitmap_shift_left(unsigned long *dst, ............[ 100]: const unsigned long *src, int shift, int bits); ............[ 101]: extern int __bitmap_and(unsigned long *dst, const unsigned long *bitmap1, ............[ 102]: const unsigned long *bitmap2, int bits); ............[ 103]: extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1, ............[ 104]: const unsigned long *bitmap2, int bits); ............[ 105]: extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1, ............[ 106]: const unsigned long *bitmap2, int bits); ............[ 107]: extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1, ............[ 108]: const unsigned long *bitmap2, int bits); ............[ 109]: extern int __bitmap_intersects(const unsigned long *bitmap1, ............[ 110]: const unsigned long *bitmap2, int bits); ............[ 111]: extern int __bitmap_subset(const unsigned long *bitmap1, ............[ 112]: const unsigned long *bitmap2, int bits); ............[ 113]: extern int __bitmap_weight(const unsigned long *bitmap, int bits); ............[ 115]: extern void bitmap_set(unsigned long *map, int i, int len); ............[ 116]: extern void bitmap_clear(unsigned long *map, int start, int nr); ............[ 117]: extern unsigned long bitmap_find_next_zero_area(unsigned long *map, ............[ 118]: unsigned long size, ............[ 119]: unsigned long start, ............[ 120]: unsigned int nr, ............[ 121]: unsigned long align_mask); ............[ 123]: extern int bitmap_scnprintf(char *buf, unsigned int len, ............[ 124]: const unsigned long *src, int nbits); ............[ 125]: extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user, ............[ 126]: unsigned long *dst, int nbits); ............[ 127]: extern int bitmap_parse_user(const char *ubuf, unsigned int ulen, ............[ 128]: unsigned long *dst, int nbits); ............[ 129]: extern int bitmap_scnlistprintf(char *buf, unsigned int len, ............[ 130]: const unsigned long *src, int nbits); ............[ 131]: extern int bitmap_parselist(const char *buf, unsigned long *maskp, ............[ 132]: int nmaskbits); ............[ 133]: extern int bitmap_parselist_user(const char *ubuf, unsigned int ulen, ............[ 134]: unsigned long *dst, int nbits); ............[ 135]: extern void bitmap_remap(unsigned long *dst, const unsigned long *src, ............[ 136]: const unsigned long *old, const unsigned long *new, int bits); ............[ 137]: extern int bitmap_bitremap(int oldbit, ............[ 138]: const unsigned long *old, const unsigned long *new, int bits); ............[ 139]: extern void bitmap_onto(unsigned long *dst, const unsigned long *orig, ............[ 140]: const unsigned long *relmap, int bits); ............[ 141]: extern void bitmap_fold(unsigned long *dst, const unsigned long *orig, ............[ 142]: int sz, int bits); ............[ 143]: extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); ............[ 144]: extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); ............[ 145]: extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); ............[ 146]: extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits); ............[ 147]: extern int bitmap_ord_to_pos(const unsigned long *bitmap, int n, int bits); ............[ 159]: static inline __attribute__((no_instrument_function)) void bitmap_zero(unsigned long *dst, int nbits) ............[ 160]: { ............[ 161]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 162]: *dst = 0UL; ............[ 163]: else { ............[ 164]: int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long); ............[ 165]: memset(dst, 0, len); ............[ 166]: } ............[ 167]: } ............[ 169]: static inline __attribute__((no_instrument_function)) void bitmap_fill(unsigned long *dst, int nbits) ............[ 170]: { ............[ 171]: size_t nlongs = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))); ............[ 172]: if (!(__builtin_constant_p(nbits) && (nbits) <= 64)) { ............[ 173]: int len = (nlongs - 1) * sizeof(unsigned long); ............[ 174]: memset(dst, 0xff, len); ............[ 175]: } ............[ 176]: dst[nlongs - 1] = ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL ); ............[ 177]: } ............[ 179]: static inline __attribute__((no_instrument_function)) void bitmap_copy(unsigned long *dst, const unsigned long \ ............ *src, ............[ 180]: int nbits) ............[ 181]: { ............[ 182]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 183]: *dst = *src; ............[ 184]: else { ............[ 185]: int len = (((nbits) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(unsigned long); ............[ 186]: ({ size_t __len = (len); void *__ret; if (__builtin_constant_p(len) && __len >= 64) __ret = __memcpy((dst), (src), __len\ ............ ); else __ret = __builtin_memcpy((dst), (src), __len); __ret; }); ............[ 187]: } ............[ 188]: } ............[ 190]: static inline __attribute__((no_instrument_function)) int bitmap_and(unsigned long *dst, const unsigned long *\ ............ src1, ............[ 191]: const unsigned long *src2, int nbits) ............[ 192]: { ............[ 193]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 194]: return (*dst = *src1 & *src2) != 0; ............[ 195]: return __bitmap_and(dst, src1, src2, nbits); ............[ 196]: } ............[ 198]: static inline __attribute__((no_instrument_function)) void bitmap_or(unsigned long *dst, const unsigned long *\ ............ src1, ............[ 199]: const unsigned long *src2, int nbits) ............[ 200]: { ............[ 201]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 202]: *dst = *src1 | *src2; ............[ 203]: else ............[ 204]: __bitmap_or(dst, src1, src2, nbits); ............[ 205]: } ............[ 207]: static inline __attribute__((no_instrument_function)) void bitmap_xor(unsigned long *dst, const unsigned long \ ............ *src1, ............[ 208]: const unsigned long *src2, int nbits) ............[ 209]: { ............[ 210]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 211]: *dst = *src1 ^ *src2; ............[ 212]: else ............[ 213]: __bitmap_xor(dst, src1, src2, nbits); ............[ 214]: } ............[ 216]: static inline __attribute__((no_instrument_function)) int bitmap_andnot(unsigned long *dst, const unsigned long \ ............ *src1, ............[ 217]: const unsigned long *src2, int nbits) ............[ 218]: { ............[ 219]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 220]: return (*dst = *src1 & ~(*src2)) != 0; ............[ 221]: return __bitmap_andnot(dst, src1, src2, nbits); ............[ 222]: } ............[ 224]: static inline __attribute__((no_instrument_function)) void bitmap_complement(unsigned long *dst, const unsigned \ ............ long *src, ............[ 225]: int nbits) ............[ 226]: { ............[ 227]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 228]: *dst = ~(*src) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL ); ............[ 229]: else ............[ 230]: __bitmap_complement(dst, src, nbits); ............[ 231]: } ............[ 233]: static inline __attribute__((no_instrument_function)) int bitmap_equal(const unsigned long *src1, ............[ 234]: const unsigned long *src2, int nbits) ............[ 235]: { ............[ 236]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 237]: return ! ((*src1 ^ *src2) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )); ............[ 238]: else ............[ 239]: return __bitmap_equal(src1, src2, nbits); ............[ 240]: } ............[ 242]: static inline __attribute__((no_instrument_function)) int bitmap_intersects(const unsigned long *src1, ............[ 243]: const unsigned long *src2, int nbits) ............[ 244]: { ............[ 245]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 246]: return ((*src1 & *src2) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )) != 0; ............[ 247]: else ............[ 248]: return __bitmap_intersects(src1, src2, nbits); ............[ 249]: } ............[ 251]: static inline __attribute__((no_instrument_function)) int bitmap_subset(const unsigned long *src1, ............[ 252]: const unsigned long *src2, int nbits) ............[ 253]: { ............[ 254]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 255]: return ! ((*src1 & ~(*src2)) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )); ............[ 256]: else ............[ 257]: return __bitmap_subset(src1, src2, nbits); ............[ 258]: } ............[ 260]: static inline __attribute__((no_instrument_function)) int bitmap_empty(const unsigned long *src, int nbits) ............[ 261]: { ............[ 262]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 263]: return ! (*src & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )); ............[ 264]: else ............[ 265]: return __bitmap_empty(src, nbits); ............[ 266]: } ............[ 268]: static inline __attribute__((no_instrument_function)) int bitmap_full(const unsigned long *src, int nbits) ............[ 269]: { ............[ 270]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 271]: return ! (~(*src) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )); ............[ 272]: else ............[ 273]: return __bitmap_full(src, nbits); ............[ 274]: } ............[ 276]: static inline __attribute__((no_instrument_function)) int bitmap_weight(const unsigned long *src, int nbits) ............[ 277]: { ............[ 278]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 279]: return hweight_long(*src & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL )); ............[ 280]: return __bitmap_weight(src, nbits); ............[ 281]: } ............[ 283]: static inline __attribute__((no_instrument_function)) void bitmap_shift_right(unsigned long *dst, ............[ 284]: const unsigned long *src, int n, int nbits) ............[ 285]: { ............[ 286]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 287]: *dst = *src >> n; ............[ 288]: else ............[ 289]: __bitmap_shift_right(dst, src, n, nbits); ............[ 290]: } ............[ 292]: static inline __attribute__((no_instrument_function)) void bitmap_shift_left(unsigned long *dst, ............[ 293]: const unsigned long *src, int n, int nbits) ............[ 294]: { ............[ 295]: if ((__builtin_constant_p(nbits) && (nbits) <= 64)) ............[ 296]: *dst = (*src << n) & ( ((nbits) % 64) ? (1UL<<((nbits) % 64))-1 : ~0UL ); ............[ 297]: else ............[ 298]: __bitmap_shift_left(dst, src, n, nbits); ............[ 299]: } ............[ 301]: static inline __attribute__((no_instrument_function)) int bitmap_parse(const char *buf, unsigned int buflen, ............[ 302]: unsigned long *maskp, int nmaskbits) ............[ 303]: { ............[ 304]: return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits); ............[ 305]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bitmap.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpumask.h ...........[ 14]: typedef struct cpumask { unsigned long bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t; ...........[ 28]: extern int nr_cpu_ids; ...........[ 79]: extern const struct cpumask *const cpu_possible_mask; ...........[ 80]: extern const struct cpumask *const cpu_online_mask; ...........[ 81]: extern const struct cpumask *const cpu_present_mask; ...........[ 82]: extern const struct cpumask *const cpu_active_mask; ...........[ 105]: static inline __attribute__((no_instrument_function)) unsigned int cpumask_check(unsigned int cpu) ...........[ 106]: { ...........[ 110]: return cpu; ...........[ 111]: } ...........[ 158]: static inline __attribute__((no_instrument_function)) unsigned int cpumask_first(const struct cpumask *srcp) ...........[ 159]: { ...........[ 160]: return find_first_bit(((srcp)->bits), 64); ...........[ 161]: } ...........[ 170]: static inline __attribute__((no_instrument_function)) unsigned int cpumask_next(int n, const struct cpumask *srcp\ ........... ) ...........[ 171]: { ...........[ 173]: if (n != -1) ...........[ 174]: cpumask_check(n); ...........[ 175]: return find_next_bit(((srcp)->bits), 64, n+1); ...........[ 176]: } ...........[ 185]: static inline __attribute__((no_instrument_function)) unsigned int cpumask_next_zero(int n, const struct cpumask \ ........... *srcp) ...........[ 186]: { ...........[ 188]: if (n != -1) ...........[ 189]: cpumask_check(n); ...........[ 190]: return find_next_zero_bit(((srcp)->bits), 64, n+1); ...........[ 191]: } ...........[ 193]: int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *); ...........[ 194]: int cpumask_any_but(const struct cpumask *mask, unsigned int cpu); ...........[ 255]: static inline __attribute__((no_instrument_function)) void cpumask_set_cpu(unsigned int cpu, struct cpumask *\ ........... dstp) ...........[ 256]: { ...........[ 257]: set_bit(cpumask_check(cpu), ((dstp)->bits)); ...........[ 258]: } ...........[ 265]: static inline __attribute__((no_instrument_function)) void cpumask_clear_cpu(int cpu, struct cpumask *dstp) ...........[ 266]: { ...........[ 267]: clear_bit(cpumask_check(cpu), ((dstp)->bits)); ...........[ 268]: } ...........[ 291]: static inline __attribute__((no_instrument_function)) int cpumask_test_and_set_cpu(int cpu, struct cpumask *\ ........... cpumask) ...........[ 292]: { ...........[ 293]: return test_and_set_bit(cpumask_check(cpu), ((cpumask)->bits)); ...........[ 294]: } ...........[ 305]: static inline __attribute__((no_instrument_function)) int cpumask_test_and_clear_cpu(int cpu, struct cpumask \ ........... *cpumask) ...........[ 306]: { ...........[ 307]: return test_and_clear_bit(cpumask_check(cpu), ((cpumask)->bits)); ...........[ 308]: } ...........[ 314]: static inline __attribute__((no_instrument_function)) void cpumask_setall(struct cpumask *dstp) ...........[ 315]: { ...........[ 316]: bitmap_fill(((dstp)->bits), 64); ...........[ 317]: } ...........[ 323]: static inline __attribute__((no_instrument_function)) void cpumask_clear(struct cpumask *dstp) ...........[ 324]: { ...........[ 325]: bitmap_zero(((dstp)->bits), 64); ...........[ 326]: } ...........[ 336]: static inline __attribute__((no_instrument_function)) int cpumask_and(struct cpumask *dstp, ...........[ 337]: const struct cpumask *src1p, ...........[ 338]: const struct cpumask *src2p) ...........[ 339]: { ...........[ 340]: return bitmap_and(((dstp)->bits), ((src1p)->bits), ...........[ 341]: ((src2p)->bits), 64); ...........[ 342]: } ...........[ 350]: static inline __attribute__((no_instrument_function)) void cpumask_or(struct cpumask *dstp, const struct cpumask \ ........... *src1p, ...........[ 351]: const struct cpumask *src2p) ...........[ 352]: { ...........[ 353]: bitmap_or(((dstp)->bits), ((src1p)->bits), ...........[ 354]: ((src2p)->bits), 64); ...........[ 355]: } ...........[ 363]: static inline __attribute__((no_instrument_function)) void cpumask_xor(struct cpumask *dstp, ...........[ 364]: const struct cpumask *src1p, ...........[ 365]: const struct cpumask *src2p) ...........[ 366]: { ...........[ 367]: bitmap_xor(((dstp)->bits), ((src1p)->bits), ...........[ 368]: ((src2p)->bits), 64); ...........[ 369]: } ...........[ 379]: static inline __attribute__((no_instrument_function)) int cpumask_andnot(struct cpumask *dstp, ...........[ 380]: const struct cpumask *src1p, ...........[ 381]: const struct cpumask *src2p) ...........[ 382]: { ...........[ 383]: return bitmap_andnot(((dstp)->bits), ((src1p)->bits), ...........[ 384]: ((src2p)->bits), 64); ...........[ 385]: } ...........[ 392]: static inline __attribute__((no_instrument_function)) void cpumask_complement(struct cpumask *dstp, ...........[ 393]: const struct cpumask *srcp) ...........[ 394]: { ...........[ 395]: bitmap_complement(((dstp)->bits), ((srcp)->bits), ...........[ 396]: 64); ...........[ 397]: } ...........[ 404]: static inline __attribute__((no_instrument_function)) bool cpumask_equal(const struct cpumask *src1p, ...........[ 405]: const struct cpumask *src2p) ...........[ 406]: { ...........[ 407]: return bitmap_equal(((src1p)->bits), ((src2p)->bits), ...........[ 408]: 64); ...........[ 409]: } ...........[ 416]: static inline __attribute__((no_instrument_function)) bool cpumask_intersects(const struct cpumask *src1p, ...........[ 417]: const struct cpumask *src2p) ...........[ 418]: { ...........[ 419]: return bitmap_intersects(((src1p)->bits), ((src2p)->bits), ...........[ 420]: 64); ...........[ 421]: } ...........[ 430]: static inline __attribute__((no_instrument_function)) int cpumask_subset(const struct cpumask *src1p, ...........[ 431]: const struct cpumask *src2p) ...........[ 432]: { ...........[ 433]: return bitmap_subset(((src1p)->bits), ((src2p)->bits), ...........[ 434]: 64); ...........[ 435]: } ...........[ 441]: static inline __attribute__((no_instrument_function)) bool cpumask_empty(const struct cpumask *srcp) ...........[ 442]: { ...........[ 443]: return bitmap_empty(((srcp)->bits), 64); ...........[ 444]: } ...........[ 450]: static inline __attribute__((no_instrument_function)) bool cpumask_full(const struct cpumask *srcp) ...........[ 451]: { ...........[ 452]: return bitmap_full(((srcp)->bits), 64); ...........[ 453]: } ...........[ 459]: static inline __attribute__((no_instrument_function)) unsigned int cpumask_weight(const struct cpumask *srcp\ ........... ) ...........[ 460]: { ...........[ 461]: return bitmap_weight(((srcp)->bits), 64); ...........[ 462]: } ...........[ 470]: static inline __attribute__((no_instrument_function)) void cpumask_shift_right(struct cpumask *dstp, ...........[ 471]: const struct cpumask *srcp, int n) ...........[ 472]: { ...........[ 473]: bitmap_shift_right(((dstp)->bits), ((srcp)->bits), n, ...........[ 474]: 64); ...........[ 475]: } ...........[ 483]: static inline __attribute__((no_instrument_function)) void cpumask_shift_left(struct cpumask *dstp, ...........[ 484]: const struct cpumask *srcp, int n) ...........[ 485]: { ...........[ 486]: bitmap_shift_left(((dstp)->bits), ((srcp)->bits), n, ...........[ 487]: 64); ...........[ 488]: } ...........[ 495]: static inline __attribute__((no_instrument_function)) void cpumask_copy(struct cpumask *dstp, ...........[ 496]: const struct cpumask *srcp) ...........[ 497]: { ...........[ 498]: bitmap_copy(((dstp)->bits), ((srcp)->bits), 64); ...........[ 499]: } ...........[ 542]: static inline __attribute__((no_instrument_function)) int cpumask_scnprintf(char *buf, int len, ...........[ 543]: const struct cpumask *srcp) ...........[ 544]: { ...........[ 545]: return bitmap_scnprintf(buf, len, ((srcp)->bits), 64); ...........[ 546]: } ...........[ 556]: static inline __attribute__((no_instrument_function)) int cpumask_parse_user(const char *buf, int len, ...........[ 557]: struct cpumask *dstp) ...........[ 558]: { ...........[ 559]: return bitmap_parse_user(buf, len, ((dstp)->bits), 64); ...........[ 560]: } ...........[ 570]: static inline __attribute__((no_instrument_function)) int cpumask_parselist_user(const char *buf, int len, ...........[ 571]: struct cpumask *dstp) ...........[ 572]: { ...........[ 573]: return bitmap_parselist_user(buf, len, ((dstp)->bits), ...........[ 574]: 64); ...........[ 575]: } ...........[ 586]: static inline __attribute__((no_instrument_function)) int cpulist_scnprintf(char *buf, int len, ...........[ 587]: const struct cpumask *srcp) ...........[ 588]: { ...........[ 589]: return bitmap_scnlistprintf(buf, len, ((srcp)->bits), ...........[ 590]: 64); ...........[ 591]: } ...........[ 600]: static inline __attribute__((no_instrument_function)) int cpumask_parse(const char *buf, struct cpumask *dstp\ ........... ) ...........[ 601]: { ...........[ 602]: char *nl = strchr(buf, '\n'); ...........[ 603]: int len = nl ? nl - buf : strlen(buf); ...........[ 605]: return bitmap_parse(buf, len, ((dstp)->bits), 64); ...........[ 606]: } ...........[ 615]: static inline __attribute__((no_instrument_function)) int cpulist_parse(const char *buf, struct cpumask *dstp\ ........... ) ...........[ 616]: { ...........[ 617]: return bitmap_parselist(buf, ((dstp)->bits), 64); ...........[ 618]: } ...........[ 625]: static inline __attribute__((no_instrument_function)) size_t cpumask_size(void) ...........[ 626]: { ...........[ 629]: return (((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long))) * sizeof(long); ...........[ 630]: } ...........[ 674]: typedef struct cpumask cpumask_var_t[1]; ...........[ 676]: static inline __attribute__((no_instrument_function)) bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags\ ........... ) ...........[ 677]: { ...........[ 678]: return true; ...........[ 679]: } ...........[ 681]: static inline __attribute__((no_instrument_function)) bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t \ ........... flags, ...........[ 682]: int node) ...........[ 683]: { ...........[ 684]: return true; ...........[ 685]: } ...........[ 687]: static inline __attribute__((no_instrument_function)) bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags\ ........... ) ...........[ 688]: { ...........[ 689]: cpumask_clear(*mask); ...........[ 690]: return true; ...........[ 691]: } ...........[ 693]: static inline __attribute__((no_instrument_function)) bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t \ ........... flags, ...........[ 694]: int node) ...........[ 695]: { ...........[ 696]: cpumask_clear(*mask); ...........[ 697]: return true; ...........[ 698]: } ...........[ 700]: static inline __attribute__((no_instrument_function)) void alloc_bootmem_cpumask_var(cpumask_var_t *mask) ...........[ 701]: { ...........[ 702]: } ...........[ 704]: static inline __attribute__((no_instrument_function)) void free_cpumask_var(cpumask_var_t mask) ...........[ 705]: { ...........[ 706]: } ...........[ 708]: static inline __attribute__((no_instrument_function)) void free_bootmem_cpumask_var(cpumask_var_t mask) ...........[ 709]: { ...........[ 710]: } ...........[ 715]: extern const unsigned long cpu_all_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ...........[ 726]: void set_cpu_possible(unsigned int cpu, bool possible); ...........[ 727]: void set_cpu_present(unsigned int cpu, bool present); ...........[ 728]: void set_cpu_online(unsigned int cpu, bool online); ...........[ 729]: void set_cpu_active(unsigned int cpu, bool active); ...........[ 730]: void init_cpu_present(const struct cpumask *src); ...........[ 731]: void init_cpu_possible(const struct cpumask *src); ...........[ 732]: void init_cpu_online(const struct cpumask *src); ...........[ 748]: static inline __attribute__((no_instrument_function)) int __check_is_bitmap(const unsigned long *bitmap) ...........[ 749]: { ...........[ 750]: return 1; ...........[ 751]: } ...........[ 760]: extern const unsigned long ...........[ 761]: cpu_bit_bitmap[64+1][(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ...........[ 763]: static inline __attribute__((no_instrument_function)) const struct cpumask *get_cpu_mask(unsigned int cpu) ...........[ 764]: { ...........[ 765]: const unsigned long *p = cpu_bit_bitmap[1 + cpu % 64]; ...........[ 766]: p -= cpu / 64; ...........[ 767]: return ((struct cpumask *)(1 ? (p) : (void *)sizeof(__check_is_bitmap(p)))); ...........[ 768]: } ...........[ 831]: int __first_cpu(const cpumask_t *srcp); ...........[ 832]: int __next_cpu(int n, const cpumask_t *srcp); ...........[ 860]: static inline __attribute__((no_instrument_function)) void __cpu_set(int cpu, volatile cpumask_t *dstp) ...........[ 861]: { ...........[ 862]: set_bit(cpu, dstp->bits); ...........[ 863]: } ...........[ 866]: static inline __attribute__((no_instrument_function)) void __cpu_clear(int cpu, volatile cpumask_t *dstp) ...........[ 867]: { ...........[ 868]: clear_bit(cpu, dstp->bits); ...........[ 869]: } ...........[ 872]: static inline __attribute__((no_instrument_function)) void __cpus_setall(cpumask_t *dstp, int nbits) ...........[ 873]: { ...........[ 874]: bitmap_fill(dstp->bits, nbits); ...........[ 875]: } ...........[ 878]: static inline __attribute__((no_instrument_function)) void __cpus_clear(cpumask_t *dstp, int nbits) ...........[ 879]: { ...........[ 880]: bitmap_zero(dstp->bits, nbits); ...........[ 881]: } ...........[ 887]: static inline __attribute__((no_instrument_function)) int __cpu_test_and_set(int cpu, cpumask_t *addr) ...........[ 888]: { ...........[ 889]: return test_and_set_bit(cpu, addr->bits); ...........[ 890]: } ...........[ 893]: static inline __attribute__((no_instrument_function)) int __cpus_and(cpumask_t *dstp, const cpumask_t *src1p\ ........... , ...........[ 894]: const cpumask_t *src2p, int nbits) ...........[ 895]: { ...........[ 896]: return bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); ...........[ 897]: } ...........[ 900]: static inline __attribute__((no_instrument_function)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p\ ........... , ...........[ 901]: const cpumask_t *src2p, int nbits) ...........[ 902]: { ...........[ 903]: bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); ...........[ 904]: } ...........[ 907]: static inline __attribute__((no_instrument_function)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p\ ........... , ...........[ 908]: const cpumask_t *src2p, int nbits) ...........[ 909]: { ...........[ 910]: bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); ...........[ 911]: } ...........[ 915]: static inline __attribute__((no_instrument_function)) int __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p\ ........... , ...........[ 916]: const cpumask_t *src2p, int nbits) ...........[ 917]: { ...........[ 918]: return bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); ...........[ 919]: } ...........[ 922]: static inline __attribute__((no_instrument_function)) int __cpus_equal(const cpumask_t *src1p, ...........[ 923]: const cpumask_t *src2p, int nbits) ...........[ 924]: { ...........[ 925]: return bitmap_equal(src1p->bits, src2p->bits, nbits); ...........[ 926]: } ...........[ 929]: static inline __attribute__((no_instrument_function)) int __cpus_intersects(const cpumask_t *src1p, ...........[ 930]: const cpumask_t *src2p, int nbits) ...........[ 931]: { ...........[ 932]: return bitmap_intersects(src1p->bits, src2p->bits, nbits); ...........[ 933]: } ...........[ 936]: static inline __attribute__((no_instrument_function)) int __cpus_subset(const cpumask_t *src1p, ...........[ 937]: const cpumask_t *src2p, int nbits) ...........[ 938]: { ...........[ 939]: return bitmap_subset(src1p->bits, src2p->bits, nbits); ...........[ 940]: } ...........[ 943]: static inline __attribute__((no_instrument_function)) int __cpus_empty(const cpumask_t *srcp, int nbits) ...........[ 944]: { ...........[ 945]: return bitmap_empty(srcp->bits, nbits); ...........[ 946]: } ...........[ 949]: static inline __attribute__((no_instrument_function)) int __cpus_weight(const cpumask_t *srcp, int nbits) ...........[ 950]: { ...........[ 951]: return bitmap_weight(srcp->bits, nbits); ...........[ 952]: } ...........[ 956]: static inline __attribute__((no_instrument_function)) void __cpus_shift_left(cpumask_t *dstp, ...........[ 957]: const cpumask_t *srcp, int n, int nbits) ...........[ 958]: { ...........[ 959]: bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); ...........[ 960]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpumask.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/math64.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/math64.h ...........[ 18]: static inline __attribute__((no_instrument_function)) u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder\ ........... ) ...........[ 19]: { ...........[ 20]: *remainder = dividend % divisor; ...........[ 21]: return dividend / divisor; ...........[ 22]: } ...........[ 27]: static inline __attribute__((no_instrument_function)) s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder\ ........... ) ...........[ 28]: { ...........[ 29]: *remainder = dividend % divisor; ...........[ 30]: return dividend / divisor; ...........[ 31]: } ...........[ 36]: static inline __attribute__((no_instrument_function)) u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder\ ........... ) ...........[ 37]: { ...........[ 38]: *remainder = dividend % divisor; ...........[ 39]: return dividend / divisor; ...........[ 40]: } ...........[ 45]: static inline __attribute__((no_instrument_function)) u64 div64_u64(u64 dividend, u64 divisor) ...........[ 46]: { ...........[ 47]: return dividend / divisor; ...........[ 48]: } ...........[ 53]: static inline __attribute__((no_instrument_function)) s64 div64_s64(s64 dividend, s64 divisor) ...........[ 54]: { ...........[ 55]: return dividend / divisor; ...........[ 56]: } ...........[ 97]: static inline __attribute__((no_instrument_function)) u64 div_u64(u64 dividend, u32 divisor) ...........[ 98]: { ...........[ 99]: u32 remainder; ...........[ 100]: return div_u64_rem(dividend, divisor, &remainder); ...........[ 101]: } ...........[ 108]: static inline __attribute__((no_instrument_function)) s64 div_s64(s64 dividend, s32 divisor) ...........[ 109]: { ...........[ 110]: s32 remainder; ...........[ 111]: return div_s64_rem(dividend, divisor, &remainder); ...........[ 112]: } ...........[ 115]: u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder); ...........[ 117]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) u32 ...........[ 118]: __iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder) ...........[ 119]: { ...........[ 120]: u32 ret = 0; ...........[ 122]: while (dividend >= divisor) { ...........[ 125]: asm("" : "+rm"(dividend)); ...........[ 127]: dividend -= divisor; ...........[ 128]: ret++; ...........[ 129]: } ...........[ 131]: *remainder = dividend; ...........[ 133]: return ret; ...........[ 134]: } ...........[ 148]: static inline __attribute__((no_instrument_function)) u64 mul_u64_u32_shr(u64 a, u32 mul, unsigned int shift) ...........[ 149]: { ...........[ 150]: u32 ah, al; ...........[ 151]: u64 ret; ...........[ 153]: al = a; ...........[ 154]: ah = a >> 32; ...........[ 156]: ret = ((u64)al * mul) >> shift; ...........[ 157]: if (ah) ...........[ 158]: ret += ((u64)ah * mul) << (32 - shift); ...........[ 160]: return ret; ...........[ 161]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/math64.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/err.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/err.h ...........[ 22]: static inline __attribute__((no_instrument_function)) void * ERR_PTR(long error) ...........[ 23]: { ...........[ 24]: return (void *) error; ...........[ 25]: } ...........[ 27]: static inline __attribute__((no_instrument_function)) long PTR_ERR( const void *ptr) ...........[ 28]: { ...........[ 29]: return (long) ptr; ...........[ 30]: } ...........[ 32]: static inline __attribute__((no_instrument_function)) long IS_ERR( const void *ptr) ...........[ 33]: { ...........[ 34]: return __builtin_expect(!!(((unsigned long)ptr) >=( unsigned long)-4095), 0); ...........[ 35]: } ...........[ 37]: static inline __attribute__((no_instrument_function)) long IS_ERR_OR_NULL( const void *ptr) ...........[ 38]: { ...........[ 39]: return !ptr || __builtin_expect(!!(((unsigned long)ptr) >=( unsigned long)-4095), 0); ...........[ 40]: } ...........[ 49]: static inline __attribute__((no_instrument_function)) void * ERR_CAST( const void *ptr) ...........[ 50]: { ...........[ 52]: return (void *) ptr; ...........[ 53]: } ...........[ 55]: static inline __attribute__((no_instrument_function)) int PTR_ERR_OR_ZERO( const void *ptr) ...........[ 56]: { ...........[ 57]: if (IS_ERR(ptr)) ...........[ 58]: return PTR_ERR(ptr); ...........[ 59]: else ...........[ 60]: return 0; ...........[ 61]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/err.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqflags.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqflags.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irqflags.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irqflags.h ............[ 11]: static inline __attribute__((no_instrument_function)) unsigned long native_save_fl(void) ............[ 12]: { ............[ 13]: unsigned long flags; ............[ 20]: asm volatile("# __raw_save_flags\n\t" ............[ 21]: "pushf ; pop %0" ............[ 22]: : "=rm" (flags) ............[ 23]: : ............[ 24]: : "memory"); ............[ 26]: return flags; ............[ 27]: } ............[ 29]: static inline __attribute__((no_instrument_function)) void native_restore_fl(unsigned long flags) ............[ 30]: { ............[ 31]: asm volatile("push %0 ; popf" ............[ 32]: : ............[ 33]: :"g" (flags) ............[ 34]: :"memory", "cc"); ............[ 35]: } ............[ 37]: static inline __attribute__((no_instrument_function)) void native_irq_disable(void) ............[ 38]: { ............[ 39]: asm volatile("cli": : :"memory"); ............[ 40]: } ............[ 42]: static inline __attribute__((no_instrument_function)) void native_irq_enable(void) ............[ 43]: { ............[ 44]: asm volatile("sti": : :"memory"); ............[ 45]: } ............[ 47]: static inline __attribute__((no_instrument_function)) void native_safe_halt(void) ............[ 48]: { ............[ 49]: asm volatile("sti; hlt": : :"memory"); ............[ 50]: } ............[ 52]: static inline __attribute__((no_instrument_function)) void native_halt(void) ............[ 53]: { ............[ 54]: asm volatile("hlt": : :"memory"); ............[ 55]: } ............[ 65]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) unsigned long \ ............ arch_local_save_flags(void) ............[ 66]: { ............[ 67]: return native_save_fl(); ............[ 68]: } ............[ 70]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void arch_local_irq_restore\ ............ (unsigned long flags) ............[ 71]: { ............[ 72]: native_restore_fl(flags); ............[ 73]: } ............[ 75]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void arch_local_irq_disable\ ............ (void) ............[ 76]: { ............[ 77]: native_irq_disable(); ............[ 78]: } ............[ 80]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void arch_local_irq_enable\ ............ (void) ............[ 81]: { ............[ 82]: native_irq_enable(); ............[ 83]: } ............[ 89]: static inline __attribute__((no_instrument_function)) void arch_safe_halt(void) ............[ 90]: { ............[ 91]: native_safe_halt(); ............[ 92]: } ............[ 98]: static inline __attribute__((no_instrument_function)) void halt(void) ............[ 99]: { ............[ 100]: native_halt(); ............[ 101]: } ............[ 106]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) unsigned long \ ............ arch_local_irq_save(void) ............[ 107]: { ............[ 108]: unsigned long flags = arch_local_save_flags(); ............[ 109]: arch_local_irq_disable(); ............[ 110]: return flags; ............[ 111]: } ............[ 155]: static inline __attribute__((no_instrument_function)) int arch_irqs_disabled_flags(unsigned long flags) ............[ 156]: { ............[ 157]: return !(flags & ((1UL) << (9))); ............[ 158]: } ............[ 160]: static inline __attribute__((no_instrument_function)) int arch_irqs_disabled(void) ............[ 161]: { ............[ 162]: unsigned long flags = arch_local_save_flags(); ............[ 164]: return arch_irqs_disabled_flags(flags); ............[ 165]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irqflags.h ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqflags.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ..........[ 47]: static inline __attribute__((no_instrument_function)) void *current_text_addr(void) ..........[ 48]: { ..........[ 49]: void *pc; ..........[ 51]: asm volatile("mov $1f, %0; 1:":"=r" (pc)); ..........[ 53]: return pc; ..........[ 54]: } ..........[ 64]: enum tlb_infos { ..........[ 65]: ENTRIES, ..........[ 66]: NR_INFO ..........[ 67]: }; ..........[ 69]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lli_4k[NR_INFO]; ..........[ 70]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lli_2m[NR_INFO]; ..........[ 71]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lli_4m[NR_INFO]; ..........[ 72]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lld_4k[NR_INFO]; ..........[ 73]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lld_2m[NR_INFO]; ..........[ 74]: extern u16 __attribute__((__section__(".data..read_mostly"))) tlb_lld_4m[NR_INFO]; ..........[ 75]: extern s8 __attribute__((__section__(".data..read_mostly"))) tlb_flushall_shift; ..........[ 83]: struct cpuinfo_x86 { ..........[ 84]: __u8 x86; ..........[ 85]: __u8 x86_vendor; ..........[ 86]: __u8 x86_model; ..........[ 87]: __u8 x86_mask; ..........[ 97]: int x86_tlbsize; ..........[ 99]: __u8 x86_virt_bits; ..........[ 100]: __u8 x86_phys_bits; ..........[ 102]: __u8 x86_coreid_bits; ..........[ 104]: __u32 extended_cpuid_level; ..........[ 106]: int cpuid_level; ..........[ 107]: __u32 x86_capability[10 + 1]; ..........[ 108]: char x86_vendor_id[16]; ..........[ 109]: char x86_model_id[64]; ..........[ 111]: int x86_cache_size; ..........[ 112]: int x86_cache_alignment; ..........[ 113]: int x86_power; ..........[ 114]: unsigned long loops_per_jiffy; ..........[ 116]: u16 x86_max_cores; ..........[ 117]: u16 apicid; ..........[ 118]: u16 initial_apicid; ..........[ 119]: u16 x86_clflush_size; ..........[ 121]: u16 booted_cores; ..........[ 123]: u16 phys_proc_id; ..........[ 125]: u16 cpu_core_id; ..........[ 127]: u8 compute_unit_id; ..........[ 129]: u16 cpu_index; ..........[ 130]: u32 microcode; ..........[ 131]: } __attribute__((__aligned__((1 << (6))))); ..........[ 147]: extern struct cpuinfo_x86 boot_cpu_data; ..........[ 148]: extern struct cpuinfo_x86 new_cpu_data; ..........[ 150]: extern struct tss_struct doublefault_tss; ..........[ 151]: extern __u32 cpu_caps_cleared[10]; ..........[ 152]: extern __u32 cpu_caps_set[10]; ..........[ 155]: extern __attribute__((section(".data..percpu" "..shared_aligned"))) __typeof__(struct cpuinfo_x86) cpu_info \ .......... __attribute__((__aligned__((1 << (6))))); ..........[ 162]: extern const struct seq_operations cpuinfo_op; ..........[ 166]: extern void cpu_detect(struct cpuinfo_x86 *c); ..........[ 167]: extern void fpu_detect(struct cpuinfo_x86 *c); ..........[ 169]: extern void early_cpu_init(void); ..........[ 170]: extern void identify_boot_cpu(void); ..........[ 171]: extern void identify_secondary_cpu(struct cpuinfo_x86 *); ..........[ 172]: extern void print_cpu_info(struct cpuinfo_x86 *); ..........[ 173]: void print_cpu_msr(struct cpuinfo_x86 *); ..........[ 174]: extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); ..........[ 175]: extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); ..........[ 176]: extern void init_amd_cacheinfo(struct cpuinfo_x86 *c); ..........[ 178]: extern void detect_extended_topology(struct cpuinfo_x86 *c); ..........[ 179]: extern void detect_ht(struct cpuinfo_x86 *c); ..........[ 184]: static inline __attribute__((no_instrument_function)) int have_cpuid_p(void) ..........[ 185]: { ..........[ 186]: return 1; ..........[ 187]: } ..........[ 189]: static inline __attribute__((no_instrument_function)) void native_cpuid(unsigned int *eax, unsigned int *ebx, ..........[ 190]: unsigned int *ecx, unsigned int *edx) ..........[ 191]: { ..........[ 193]: asm volatile("cpuid" ..........[ 194]: : "=a" (*eax), ..........[ 195]: "=b" (*ebx), ..........[ 196]: "=c" (*ecx), ..........[ 197]: "=d" (*edx) ..........[ 198]: : "0" (*eax), "2" (*ecx) ..........[ 199]: : "memory"); ..........[ 200]: } ..........[ 202]: static inline __attribute__((no_instrument_function)) void load_cr3(pgd_t *pgdir) ..........[ 203]: { ..........[ 204]: write_cr3(__phys_addr_nodebug((unsigned long)(pgdir))); ..........[ 205]: } ..........[ 241]: struct x86_hw_tss { ..........[ 242]: u32 reserved1; ..........[ 243]: u64 sp0; ..........[ 244]: u64 sp1; ..........[ 245]: u64 sp2; ..........[ 246]: u64 reserved2; ..........[ 247]: u64 ist[7]; ..........[ 248]: u32 reserved3; ..........[ 249]: u32 reserved4; ..........[ 250]: u16 reserved5; ..........[ 251]: u16 io_bitmap_base; ..........[ 253]: } __attribute__((packed)) __attribute__((__aligned__((1 << (6))))); ..........[ 265]: struct tss_struct { ..........[ 269]: struct x86_hw_tss x86_tss; ..........[ 277]: unsigned long io_bitmap[((65536/8)/sizeof(long)) + 1]; ..........[ 282]: unsigned long stack[64]; ..........[ 284]: } __attribute__((__aligned__((1 << (6))))); ..........[ 286]: extern __attribute__((section(".data..percpu" "..shared_aligned"))) __typeof__(struct tss_struct) init_tss \ .......... __attribute__((__aligned__((1 << (6))))); ..........[ 291]: struct orig_ist { ..........[ 292]: unsigned long ist[7]; ..........[ 293]: }; ..........[ 297]: struct i387_fsave_struct { ..........[ 298]: u32 cwd; ..........[ 299]: u32 swd; ..........[ 300]: u32 twd; ..........[ 301]: u32 fip; ..........[ 302]: u32 fcs; ..........[ 303]: u32 foo; ..........[ 304]: u32 fos; ..........[ 307]: u32 st_space[20]; ..........[ 310]: u32 status; ..........[ 311]: }; ..........[ 313]: struct i387_fxsave_struct { ..........[ 314]: u16 cwd; ..........[ 315]: u16 swd; ..........[ 316]: u16 twd; ..........[ 317]: u16 fop; ..........[ 318]: union { ..........[ 319]: struct { ..........[ 320]: u64 rip; ..........[ 321]: u64 rdp; ..........[ 322]: }; ..........[ 323]: struct { ..........[ 324]: u32 fip; ..........[ 325]: u32 fcs; ..........[ 326]: u32 foo; ..........[ 327]: u32 fos; ..........[ 328]: }; ..........[ 329]: }; ..........[ 330]: u32 mxcsr; ..........[ 331]: u32 mxcsr_mask; ..........[ 334]: u32 st_space[32]; ..........[ 337]: u32 xmm_space[64]; ..........[ 339]: u32 padding[12]; ..........[ 341]: union { ..........[ 342]: u32 padding1[12]; ..........[ 343]: u32 sw_reserved[12]; ..........[ 344]: }; ..........[ 346]: } __attribute__((aligned(16))); ..........[ 348]: struct i387_soft_struct { ..........[ 349]: u32 cwd; ..........[ 350]: u32 swd; ..........[ 351]: u32 twd; ..........[ 352]: u32 fip; ..........[ 353]: u32 fcs; ..........[ 354]: u32 foo; ..........[ 355]: u32 fos; ..........[ 357]: u32 st_space[20]; ..........[ 358]: u8 ftop; ..........[ 359]: u8 changed; ..........[ 360]: u8 lookahead; ..........[ 361]: u8 no_update; ..........[ 362]: u8 rm; ..........[ 363]: u8 alimit; ..........[ 364]: struct math_emu_info *info; ..........[ 365]: u32 entry_eip; ..........[ 366]: }; ..........[ 368]: struct ymmh_struct { ..........[ 370]: u32 ymmh_space[64]; ..........[ 371]: }; ..........[ 373]: struct xsave_hdr_struct { ..........[ 374]: u64 xstate_bv; ..........[ 375]: u64 reserved1[2]; ..........[ 376]: u64 reserved2[5]; ..........[ 377]: } __attribute__((packed)); ..........[ 379]: struct xsave_struct { ..........[ 380]: struct i387_fxsave_struct i387; ..........[ 381]: struct xsave_hdr_struct xsave_hdr; ..........[ 382]: struct ymmh_struct ymmh; ..........[ 384]: } __attribute__ ((packed, aligned (64))); ..........[ 386]: union thread_xstate { ..........[ 387]: struct i387_fsave_struct fsave; ..........[ 388]: struct i387_fxsave_struct fxsave; ..........[ 389]: struct i387_soft_struct soft; ..........[ 390]: struct xsave_struct xsave; ..........[ 391]: }; ..........[ 393]: struct fpu { ..........[ 394]: unsigned int last_cpu; ..........[ 395]: unsigned int has_fpu; ..........[ 396]: union thread_xstate *state; ..........[ 397]: }; ..........[ 400]: extern __attribute__((section(".data..percpu" ""))) __typeof__(struct orig_ist) orig_ist; ..........[ 402]: union irq_stack_union { ..........[ 403]: char irq_stack[(((1UL) << 12) << 2)]; ..........[ 409]: struct { ..........[ 410]: char gs_base[40]; ..........[ 411]: unsigned long stack_canary; ..........[ 412]: }; ..........[ 413]: }; ..........[ 415]: extern __attribute__((section(".data..percpu" "..first"))) __typeof__(union irq_stack_union) irq_stack_union \ .......... ; ..........[ 416]: extern typeof(irq_stack_union) init_per_cpu__irq_stack_union; ..........[ 418]: extern __attribute__((section(".data..percpu" ""))) __typeof__(char *) irq_stack_ptr; ..........[ 419]: extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned int) irq_count; ..........[ 420]: extern void ignore_sysret(void); ..........[ 437]: extern unsigned int xstate_size; ..........[ 438]: extern void free_thread_xstate(struct task_struct *); ..........[ 439]: extern struct kmem_cache *task_xstate_cachep; ..........[ 441]: struct perf_event; ..........[ 443]: struct thread_struct { ..........[ 445]: struct desc_struct tls_array[3]; ..........[ 446]: unsigned long sp0; ..........[ 447]: unsigned long sp; ..........[ 451]: unsigned long usersp; ..........[ 452]: unsigned short es; ..........[ 453]: unsigned short ds; ..........[ 454]: unsigned short fsindex; ..........[ 455]: unsigned short gsindex; ..........[ 461]: unsigned long fs; ..........[ 463]: unsigned long gs; ..........[ 465]: struct perf_event *ptrace_bps[4]; ..........[ 467]: unsigned long debugreg6; ..........[ 469]: unsigned long ptrace_dr7; ..........[ 471]: unsigned long cr2; ..........[ 472]: unsigned long trap_nr; ..........[ 473]: unsigned long error_code; ..........[ 475]: struct fpu fpu; ..........[ 487]: unsigned long *io_bitmap_ptr; ..........[ 488]: unsigned long iopl; ..........[ 490]: unsigned io_bitmap_max; ..........[ 499]: unsigned char fpu_counter; ..........[ 500]: }; ..........[ 505]: static inline __attribute__((no_instrument_function)) void native_set_iopl_mask(unsigned mask) ..........[ 506]: { ..........[ 519]: } ..........[ 521]: static inline __attribute__((no_instrument_function)) void ..........[ 522]: native_load_sp0(struct tss_struct *tss, struct thread_struct *thread) ..........[ 523]: { ..........[ 524]: tss->x86_tss.sp0 = thread->sp0; ..........[ 532]: } ..........[ 534]: static inline __attribute__((no_instrument_function)) void native_swapgs(void) ..........[ 535]: { ..........[ 537]: asm volatile("swapgs" ::: "memory"); ..........[ 539]: } ..........[ 547]: static inline __attribute__((no_instrument_function)) void load_sp0(struct tss_struct *tss, ..........[ 548]: struct thread_struct *thread) ..........[ 549]: { ..........[ 550]: native_load_sp0(tss, thread); ..........[ 551]: } ..........[ 562]: extern unsigned long mmu_cr4_features; ..........[ 563]: extern u32 *trampoline_cr4_features; ..........[ 565]: static inline __attribute__((no_instrument_function)) void set_in_cr4(unsigned long mask) ..........[ 566]: { ..........[ 567]: unsigned long cr4; ..........[ 569]: mmu_cr4_features |= mask; ..........[ 570]: if (trampoline_cr4_features) ..........[ 571]: *trampoline_cr4_features = mmu_cr4_features; ..........[ 572]: cr4 = read_cr4(); ..........[ 573]: cr4 |= mask; ..........[ 574]: write_cr4(cr4); ..........[ 575]: } ..........[ 577]: static inline __attribute__((no_instrument_function)) void clear_in_cr4(unsigned long mask) ..........[ 578]: { ..........[ 579]: unsigned long cr4; ..........[ 581]: mmu_cr4_features &= ~mask; ..........[ 582]: if (trampoline_cr4_features) ..........[ 583]: *trampoline_cr4_features = mmu_cr4_features; ..........[ 584]: cr4 = read_cr4(); ..........[ 585]: cr4 &= ~mask; ..........[ 586]: write_cr4(cr4); ..........[ 587]: } ..........[ 589]: typedef struct { ..........[ 590]: unsigned long seg; ..........[ 591]: } mm_segment_t; ..........[ 595]: extern void release_thread(struct task_struct *); ..........[ 597]: unsigned long get_wchan(struct task_struct *p); ..........[ 604]: static inline __attribute__((no_instrument_function)) void cpuid(unsigned int op, ..........[ 605]: unsigned int *eax, unsigned int *ebx, ..........[ 606]: unsigned int *ecx, unsigned int *edx) ..........[ 607]: { ..........[ 608]: *eax = op; ..........[ 609]: *ecx = 0; ..........[ 610]: native_cpuid(eax, ebx, ecx, edx); ..........[ 611]: } ..........[ 614]: static inline __attribute__((no_instrument_function)) void cpuid_count(unsigned int op, int count, ..........[ 615]: unsigned int *eax, unsigned int *ebx, ..........[ 616]: unsigned int *ecx, unsigned int *edx) ..........[ 617]: { ..........[ 618]: *eax = op; ..........[ 619]: *ecx = count; ..........[ 620]: native_cpuid(eax, ebx, ecx, edx); ..........[ 621]: } ..........[ 626]: static inline __attribute__((no_instrument_function)) unsigned int cpuid_eax(unsigned int op) ..........[ 627]: { ..........[ 628]: unsigned int eax, ebx, ecx, edx; ..........[ 630]: cpuid(op, &eax, &ebx, &ecx, &edx); ..........[ 632]: return eax; ..........[ 633]: } ..........[ 635]: static inline __attribute__((no_instrument_function)) unsigned int cpuid_ebx(unsigned int op) ..........[ 636]: { ..........[ 637]: unsigned int eax, ebx, ecx, edx; ..........[ 639]: cpuid(op, &eax, &ebx, &ecx, &edx); ..........[ 641]: return ebx; ..........[ 642]: } ..........[ 644]: static inline __attribute__((no_instrument_function)) unsigned int cpuid_ecx(unsigned int op) ..........[ 645]: { ..........[ 646]: unsigned int eax, ebx, ecx, edx; ..........[ 648]: cpuid(op, &eax, &ebx, &ecx, &edx); ..........[ 650]: return ecx; ..........[ 651]: } ..........[ 653]: static inline __attribute__((no_instrument_function)) unsigned int cpuid_edx(unsigned int op) ..........[ 654]: { ..........[ 655]: unsigned int eax, ebx, ecx, edx; ..........[ 657]: cpuid(op, &eax, &ebx, &ecx, &edx); ..........[ 659]: return edx; ..........[ 660]: } ..........[ 663]: static inline __attribute__((no_instrument_function)) void rep_nop(void) ..........[ 664]: { ..........[ 665]: asm volatile("rep; nop" ::: "memory"); ..........[ 666]: } ..........[ 668]: static inline __attribute__((no_instrument_function)) void cpu_relax(void) ..........[ 669]: { ..........[ 670]: rep_nop(); ..........[ 671]: } ..........[ 674]: static inline __attribute__((no_instrument_function)) void sync_core(void) ..........[ 675]: { ..........[ 676]: int tmp; ..........[ 696]: asm volatile("cpuid" ..........[ 697]: : "=a" (tmp) ..........[ 698]: : "0" (1) ..........[ 699]: : "ebx", "ecx", "edx", "memory"); ..........[ 701]: } ..........[ 703]: static inline __attribute__((no_instrument_function)) void __monitor(const void *eax, unsigned long ecx, ..........[ 704]: unsigned long edx) ..........[ 705]: { ..........[ 707]: asm volatile(".byte 0x0f, 0x01, 0xc8;" ..........[ 708]: :: "a" (eax), "c" (ecx), "d"(edx)); ..........[ 709]: } ..........[ 711]: static inline __attribute__((no_instrument_function)) void __mwait(unsigned long eax, unsigned long ecx) ..........[ 712]: { ..........[ 714]: asm volatile(".byte 0x0f, 0x01, 0xc9;" ..........[ 715]: :: "a" (eax), "c" (ecx)); ..........[ 716]: } ..........[ 718]: static inline __attribute__((no_instrument_function)) void __sti_mwait(unsigned long eax, unsigned long ecx) ..........[ 719]: { ..........[ 720]: do { } while (0); ..........[ 722]: asm volatile("sti; .byte 0x0f, 0x01, 0xc9;" ..........[ 723]: :: "a" (eax), "c" (ecx)); ..........[ 724]: } ..........[ 726]: extern void select_idle_routine(const struct cpuinfo_x86 *c); ..........[ 727]: extern void init_amd_e400_c1e_mask(void); ..........[ 729]: extern unsigned long boot_option_idle_override; ..........[ 730]: extern bool amd_e400_c1e_detected; ..........[ 732]: enum idle_boot_override {IDLE_NO_OVERRIDE=0, IDLE_HALT, IDLE_NOMWAIT, ..........[ 733]: IDLE_POLL}; ..........[ 735]: extern void enable_sep_cpu(void); ..........[ 736]: extern int sysenter_setup(void); ..........[ 738]: extern void early_trap_init(void); ..........[ 739]: void early_trap_pf_init(void); ..........[ 742]: extern struct desc_ptr early_gdt_descr; ..........[ 744]: extern void cpu_set_gdt(int); ..........[ 745]: extern void switch_to_new_gdt(int); ..........[ 746]: extern void load_percpu_segment(int); ..........[ 747]: extern void cpu_init(void); ..........[ 749]: static inline __attribute__((no_instrument_function)) unsigned long get_debugctlmsr(void) ..........[ 750]: { ..........[ 751]: unsigned long debugctlmsr = 0; ..........[ 757]: rdmsrl(0x000001d9, debugctlmsr); ..........[ 759]: return debugctlmsr; ..........[ 760]: } ..........[ 762]: static inline __attribute__((no_instrument_function)) void update_debugctlmsr(unsigned long debugctlmsr) ..........[ 763]: { ..........[ 768]: wrmsrl(0x000001d9, debugctlmsr); ..........[ 769]: } ..........[ 771]: extern void set_task_blockstep(struct task_struct *task, bool on); ..........[ 777]: extern unsigned int machine_id; ..........[ 778]: extern unsigned int machine_submodel_id; ..........[ 779]: extern unsigned int BIOS_revision; ..........[ 782]: extern int bootloader_type; ..........[ 783]: extern int bootloader_version; ..........[ 785]: extern char ignore_fpu_irq; ..........[ 804]: static inline __attribute__((no_instrument_function)) void prefetch(const void *x) ..........[ 805]: { ..........[ 809]: asm volatile ("661:\n\t" "prefetcht0 (%1)" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ .......... " .long " "663""1""f - .\n" " .word " "(0*32+25)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ .......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ .......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ .......... "prefetchnta (%1)" "\n" "664""1" ":\n\t" ".popsection" : : "i" (0),"r"( x)); ..........[ 810]: } ..........[ 817]: static inline __attribute__((no_instrument_function)) void prefetchw(const void *x) ..........[ 818]: { ..........[ 822]: asm volatile ("661:\n\t" "prefetcht0 (%1)" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ .......... " .long " "663""1""f - .\n" " .word " "(1*32+31)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ .......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ .......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ .......... "prefetchw (%1)" "\n" "664""1" ":\n\t" ".popsection" : : "i" (0),"r"( x)); ..........[ 823]: } ..........[ 825]: static inline __attribute__((no_instrument_function)) void spin_lock_prefetch(const void *x) ..........[ 826]: { ..........[ 827]: prefetchw(x); ..........[ 828]: } ..........[ 925]: extern unsigned long KSTK_ESP(struct task_struct *task); ..........[ 930]: extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned long) old_rsp; ..........[ 934]: extern void start_thread(struct pt_regs *regs, unsigned long new_ip, ..........[ 935]: unsigned long new_sp); ..........[ 949]: extern int get_tsc_mode(unsigned long adr); ..........[ 950]: extern int set_tsc_mode(unsigned int val); ..........[ 952]: extern u16 amd_get_nb_id(int cpu); ..........[ 954]: static inline __attribute__((no_instrument_function)) uint32_t hypervisor_cpuid_base(const char *sig, uint32_t \ .......... leaves) ..........[ 955]: { ..........[ 956]: uint32_t base, eax, signature[3]; ..........[ 958]: for (base = 0x40000000; base < 0x40010000; base += 0x100) { ..........[ 959]: cpuid(base, &eax, &signature[0], &signature[1], &signature[2]); ..........[ 961]: if (!memcmp(sig, signature, 12) && ..........[ 962]: (leaves == 0 || ((eax - base) >= leaves))) ..........[ 963]: return base; ..........[ 964]: } ..........[ 966]: return 0; ..........[ 967]: } ..........[ 969]: extern unsigned long arch_align_stack(unsigned long sp); ..........[ 970]: extern void free_init_pages(char *what, unsigned long begin, unsigned long end); ..........[ 972]: void default_idle(void); ..........[ 979]: void stop_this_cpu(void *dummy); ..........[ 980]: void df_debug(struct pt_regs *regs, long error_code); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/processor.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/atomic.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/atomic.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg.h ............[ 11]: extern void __xchg_wrong_size(void) ............[ 12]: ; ............[ 13]: extern void __cmpxchg_wrong_size(void) ............[ 14]: ; ............[ 15]: extern void __xadd_wrong_size(void) ............[ 16]: ; ............[ 17]: extern void __add_wrong_size(void) ............[ 18]: ; ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg_64.h .............[ 4]: static inline __attribute__((no_instrument_function)) void set_64bit(volatile u64 *ptr, u64 val) .............[ 5]: { .............[ 6]: *ptr = val; .............[ 7]: } .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg_64.h ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic.h ...........[ 24]: static inline __attribute__((no_instrument_function)) int atomic_read(const atomic_t *v) ...........[ 25]: { ...........[ 26]: return (*(volatile int *)&(v)->counter); ...........[ 27]: } ...........[ 36]: static inline __attribute__((no_instrument_function)) void atomic_set(atomic_t *v, int i) ...........[ 37]: { ...........[ 38]: v->counter = i; ...........[ 39]: } ...........[ 48]: static inline __attribute__((no_instrument_function)) void atomic_add(int i, atomic_t *v) ...........[ 49]: { ...........[ 50]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "addl %1,%0" ...........[ 51]: : "+m" (v->counter) ...........[ 52]: : "ir" (i)); ...........[ 53]: } ...........[ 62]: static inline __attribute__((no_instrument_function)) void atomic_sub(int i, atomic_t *v) ...........[ 63]: { ...........[ 64]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "subl %1,%0" ...........[ 65]: : "+m" (v->counter) ...........[ 66]: : "ir" (i)); ...........[ 67]: } ...........[ 78]: static inline __attribute__((no_instrument_function)) int atomic_sub_and_test(int i, atomic_t *v) ...........[ 79]: { ...........[ 80]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "subl" " %2, " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : "er"( i) : "memory"); return \ ........... c != 0; } while (0); ...........[ 81]: } ...........[ 89]: static inline __attribute__((no_instrument_function)) void atomic_inc(atomic_t *v) ...........[ 90]: { ...........[ 91]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "incl %0" ...........[ 92]: : "+m" (v->counter)); ...........[ 93]: } ...........[ 101]: static inline __attribute__((no_instrument_function)) void atomic_dec(atomic_t *v) ...........[ 102]: { ...........[ 103]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "decl %0" ...........[ 104]: : "+m" (v->counter)); ...........[ 105]: } ...........[ 115]: static inline __attribute__((no_instrument_function)) int atomic_dec_and_test(atomic_t *v) ...........[ 116]: { ...........[ 117]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "decl" " " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : : "memory"); return c != 0; } while \ ........... (0); ...........[ 118]: } ...........[ 128]: static inline __attribute__((no_instrument_function)) int atomic_inc_and_test(atomic_t *v) ...........[ 129]: { ...........[ 130]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "incl" " " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : : "memory"); return c != 0; } while \ ........... (0); ...........[ 131]: } ...........[ 142]: static inline __attribute__((no_instrument_function)) int atomic_add_negative(int i, atomic_t *v) ...........[ 143]: { ...........[ 144]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "addl" " %2, " "%0" "; set" "s" " %1" : "+m" (v->counter), "=qm" (c) : "er"( i) : "memory"); return \ ........... c != 0; } while (0); ...........[ 145]: } ...........[ 154]: static inline __attribute__((no_instrument_function)) int atomic_add_return(int i, atomic_t *v) ...........[ 155]: { ...........[ 156]: return i + ({ __typeof__ (*(((&v->counter)))) __ret = (((i))); switch (sizeof(*(((&v->counter))))) { case 1: asm volatile \ ........... (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" \ ........... "b %b0, %1\n" : "+q" (__ret), "+m" (*(((&v->counter)))) : : "memory", "cc"); break; case 2: asm volatile (".pushsection .smp_locks,\"a\"\n" \ ........... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "w %w0, %1\n" : "+r" (__ret), "+m" \ ........... (*(((&v->counter)))) : : "memory", "cc"); break; case 4: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ........... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "l %0, %1\n" : "+r" (__ret), "+m" (*(((&v->counter\ ........... )))) : : "memory", "cc"); break; case 8: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" \ ........... ".popsection\n" "671:" "\n\tlock; " "xadd" "q %q0, %1\n" : "+r" (__ret), "+m" (*(((&v->counter)))) : : "memory", \ ........... "cc"); break; default: __xadd_wrong_size(); } __ret; }); ...........[ 157]: } ...........[ 166]: static inline __attribute__((no_instrument_function)) int atomic_sub_return(int i, atomic_t *v) ...........[ 167]: { ...........[ 168]: return atomic_add_return(-i, v); ...........[ 169]: } ...........[ 174]: static inline __attribute__((no_instrument_function)) int atomic_cmpxchg(atomic_t *v, int old, int new) ...........[ 175]: { ...........[ 176]: return ({ __typeof__(*((&v->counter))) __ret; __typeof__(*((&v->counter))) __old = ((old)); __typeof__(*((&v\ ........... ->counter))) __new = ((new)); switch ((sizeof(*(&v->counter)))) { case 1: { volatile u8 *__ptr = (volatile u8 *)((&v\ ........... ->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ........... "671:" "\n\tlock; " "cmpxchgb %2,%1" : "=a" (__ret), "+m" (*__ptr) : "q" (__new), "0" (__old) : "memory"); break; } case \ ........... 2: { volatile u16 *__ptr = (volatile u16 *)((&v->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ........... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgw %2,%1" : "=a" (__ret), "+m" (*__ptr) : "r" (__new\ ........... ), "0" (__old) : "memory"); break; } case 4: { volatile u32 *__ptr = (volatile u32 *)((&v->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" \ ........... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgl %2,%1" : "=a" (__ret), "+m" (*__ptr\ ........... ) : "r" (__new), "0" (__old) : "memory"); break; } case 8: { volatile u64 *__ptr = (volatile u64 *)((&v->counter)); asm volatile\ ........... (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgq %2,%1" \ ........... : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } default: __cmpxchg_wrong_size(); } __ret\ ........... ; }); ...........[ 177]: } ...........[ 179]: static inline __attribute__((no_instrument_function)) int atomic_xchg(atomic_t *v, int new) ...........[ 180]: { ...........[ 181]: return ({ __typeof__ (*((&v->counter))) __ret = ((new)); switch (sizeof(*((&v->counter)))) { case 1: asm volatile \ ........... ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 2: asm volatile ("" \ ........... "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 4: asm volatile ("" "xchg" \ ........... "l %0, %1\n" : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" "q %q0, %1\n" \ ........... : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; default: __xchg_wrong_size(); } __ret; }); ...........[ 182]: } ...........[ 193]: static inline __attribute__((no_instrument_function)) int __atomic_add_unless(atomic_t *v, int a, int u) ...........[ 194]: { ...........[ 195]: int c, old; ...........[ 196]: c = atomic_read(v); ...........[ 197]: for (;;) { ...........[ 198]: if (__builtin_expect(!!(c ==( u)), 0)) ...........[ 199]: break; ...........[ 200]: old = atomic_cmpxchg((v), c, c + (a)); ...........[ 201]: if (__builtin_expect(!!(old == c), 1)) ...........[ 202]: break; ...........[ 203]: c = old; ...........[ 204]: } ...........[ 205]: return c; ...........[ 206]: } ...........[ 215]: static inline __attribute__((no_instrument_function)) short int atomic_inc_short(short int *v) ...........[ 216]: { ...........[ 217]: asm(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "addw $1, %0" : "+m" (*v)); ...........[ 218]: return *v; ...........[ 219]: } ...........[ 230]: static inline __attribute__((no_instrument_function)) void atomic_or_long(unsigned long *v1, unsigned long v2\ ........... ) ...........[ 231]: { ...........[ 232]: asm(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ........... "orq %1, %0" : "+m" (*v1) : "r" (v2)); ...........[ 233]: } ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic64_64.h ............[ 19]: static inline __attribute__((no_instrument_function)) long atomic64_read(const atomic64_t *v) ............[ 20]: { ............[ 21]: return (*(volatile long *)&(v)->counter); ............[ 22]: } ............[ 31]: static inline __attribute__((no_instrument_function)) void atomic64_set(atomic64_t *v, long i) ............[ 32]: { ............[ 33]: v->counter = i; ............[ 34]: } ............[ 43]: static inline __attribute__((no_instrument_function)) void atomic64_add(long i, atomic64_t *v) ............[ 44]: { ............[ 45]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ............ "addq %1,%0" ............[ 46]: : "=m" (v->counter) ............[ 47]: : "er" (i), "m" (v->counter)); ............[ 48]: } ............[ 57]: static inline __attribute__((no_instrument_function)) void atomic64_sub(long i, atomic64_t *v) ............[ 58]: { ............[ 59]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ............ "subq %1,%0" ............[ 60]: : "=m" (v->counter) ............[ 61]: : "er" (i), "m" (v->counter)); ............[ 62]: } ............[ 73]: static inline __attribute__((no_instrument_function)) int atomic64_sub_and_test(long i, atomic64_t *v) ............[ 74]: { ............[ 75]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ............ "671:" "\n\tlock; " "subq" " %2, " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : "er"( i) : "memory"); return \ ............ c != 0; } while (0); ............[ 76]: } ............[ 84]: static inline __attribute__((no_instrument_function)) void atomic64_inc(atomic64_t *v) ............[ 85]: { ............[ 86]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ............ "incq %0" ............[ 87]: : "=m" (v->counter) ............[ 88]: : "m" (v->counter)); ............[ 89]: } ............[ 97]: static inline __attribute__((no_instrument_function)) void atomic64_dec(atomic64_t *v) ............[ 98]: { ............[ 99]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ............ "decq %0" ............[ 100]: : "=m" (v->counter) ............[ 101]: : "m" (v->counter)); ............[ 102]: } ............[ 112]: static inline __attribute__((no_instrument_function)) int atomic64_dec_and_test(atomic64_t *v) ............[ 113]: { ............[ 114]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ............ "671:" "\n\tlock; " "decq" " " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : : "memory"); return c != 0; } while \ ............ (0); ............[ 115]: } ............[ 125]: static inline __attribute__((no_instrument_function)) int atomic64_inc_and_test(atomic64_t *v) ............[ 126]: { ............[ 127]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ............ "671:" "\n\tlock; " "incq" " " "%0" "; set" "e" " %1" : "+m" (v->counter), "=qm" (c) : : "memory"); return c != 0; } while \ ............ (0); ............[ 128]: } ............[ 139]: static inline __attribute__((no_instrument_function)) int atomic64_add_negative(long i, atomic64_t *v) ............[ 140]: { ............[ 141]: do { char c; asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ............ "671:" "\n\tlock; " "addq" " %2, " "%0" "; set" "s" " %1" : "+m" (v->counter), "=qm" (c) : "er"( i) : "memory"); return \ ............ c != 0; } while (0); ............[ 142]: } ............[ 151]: static inline __attribute__((no_instrument_function)) long atomic64_add_return(long i, atomic64_t *v) ............[ 152]: { ............[ 153]: return i + ({ __typeof__ (*(((&v->counter)))) __ret = (((i))); switch (sizeof(*(((&v->counter))))) { case 1: asm volatile \ ............ (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" \ ............ "b %b0, %1\n" : "+q" (__ret), "+m" (*(((&v->counter)))) : : "memory", "cc"); break; case 2: asm volatile (".pushsection .smp_locks,\"a\"\n" \ ............ ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "w %w0, %1\n" : "+r" (__ret), "+m" \ ............ (*(((&v->counter)))) : : "memory", "cc"); break; case 4: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ............ ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "l %0, %1\n" : "+r" (__ret), "+m" (*(((&v->counter\ ............ )))) : : "memory", "cc"); break; case 8: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" \ ............ ".popsection\n" "671:" "\n\tlock; " "xadd" "q %q0, %1\n" : "+r" (__ret), "+m" (*(((&v->counter)))) : : "memory", \ ............ "cc"); break; default: __xadd_wrong_size(); } __ret; }); ............[ 154]: } ............[ 156]: static inline __attribute__((no_instrument_function)) long atomic64_sub_return(long i, atomic64_t *v) ............[ 157]: { ............[ 158]: return atomic64_add_return(-i, v); ............[ 159]: } ............[ 164]: static inline __attribute__((no_instrument_function)) long atomic64_cmpxchg(atomic64_t *v, long old, long new\ ............ ) ............[ 165]: { ............[ 166]: return ({ __typeof__(*((&v->counter))) __ret; __typeof__(*((&v->counter))) __old = ((old)); __typeof__(*((&v\ ............ ->counter))) __new = ((new)); switch ((sizeof(*(&v->counter)))) { case 1: { volatile u8 *__ptr = (volatile u8 *)((&v\ ............ ->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ............ "671:" "\n\tlock; " "cmpxchgb %2,%1" : "=a" (__ret), "+m" (*__ptr) : "q" (__new), "0" (__old) : "memory"); break; } case \ ............ 2: { volatile u16 *__ptr = (volatile u16 *)((&v->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ............ ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgw %2,%1" : "=a" (__ret), "+m" (*__ptr) : "r" (__new\ ............ ), "0" (__old) : "memory"); break; } case 4: { volatile u32 *__ptr = (volatile u32 *)((&v->counter)); asm volatile(".pushsection .smp_locks,\"a\"\n" \ ............ ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgl %2,%1" : "=a" (__ret), "+m" (*__ptr\ ............ ) : "r" (__new), "0" (__old) : "memory"); break; } case 8: { volatile u64 *__ptr = (volatile u64 *)((&v->counter)); asm volatile\ ............ (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgq %2,%1" \ ............ : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } default: __cmpxchg_wrong_size(); } __ret\ ............ ; }); ............[ 167]: } ............[ 169]: static inline __attribute__((no_instrument_function)) long atomic64_xchg(atomic64_t *v, long new) ............[ 170]: { ............[ 171]: return ({ __typeof__ (*((&v->counter))) __ret = ((new)); switch (sizeof(*((&v->counter)))) { case 1: asm volatile \ ............ ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 2: asm volatile ("" \ ............ "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 4: asm volatile ("" "xchg" \ ............ "l %0, %1\n" : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" "q %q0, %1\n" \ ............ : "+r" (__ret), "+m" (*((&v->counter))) : : "memory", "cc"); break; default: __xchg_wrong_size(); } __ret; }); ............[ 172]: } ............[ 183]: static inline __attribute__((no_instrument_function)) int atomic64_add_unless(atomic64_t *v, long a, long u) ............[ 184]: { ............[ 185]: long c, old; ............[ 186]: c = atomic64_read(v); ............[ 187]: for (;;) { ............[ 188]: if (__builtin_expect(!!(c ==( u)), 0)) ............[ 189]: break; ............[ 190]: old = atomic64_cmpxchg((v), c, c + (a)); ............[ 191]: if (__builtin_expect(!!(old == c), 1)) ............[ 192]: break; ............[ 193]: c = old; ............[ 194]: } ............[ 195]: return c != (u); ............[ 196]: } ............[ 207]: static inline __attribute__((no_instrument_function)) long atomic64_dec_if_positive(atomic64_t *v) ............[ 208]: { ............[ 209]: long c, old, dec; ............[ 210]: c = atomic64_read(v); ............[ 211]: for (;;) { ............[ 212]: dec = c - 1; ............[ 213]: if (__builtin_expect(!!(dec < 0), 0)) ............[ 214]: break; ............[ 215]: old = atomic64_cmpxchg((v), c, dec); ............[ 216]: if (__builtin_expect(!!(old == c), 1)) ............[ 217]: break; ............[ 218]: c = old; ............[ 219]: } ............[ 220]: return dec; ............[ 221]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic64_64.h ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/atomic.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/atomic.h ..........[ 15]: static inline __attribute__((no_instrument_function)) int atomic_add_unless(atomic_t *v, int a, int u) ..........[ 16]: { ..........[ 17]: return __atomic_add_unless(v, a, u) != u; ..........[ 18]: } ..........[ 44]: static inline __attribute__((no_instrument_function)) int atomic_inc_not_zero_hint(atomic_t *v, int hint) ..........[ 45]: { ..........[ 46]: int val, c = hint; ..........[ 49]: if (!hint) ..........[ 50]: return atomic_add_unless((v), 1, 0); ..........[ 52]: do { ..........[ 53]: val = atomic_cmpxchg(v, c, c + 1); ..........[ 54]: if (val == c) ..........[ 55]: return 1; ..........[ 56]: c = val; ..........[ 57]: } while (c); ..........[ 59]: return 0; ..........[ 60]: } ..........[ 64]: static inline __attribute__((no_instrument_function)) int atomic_inc_unless_negative(atomic_t *p) ..........[ 65]: { ..........[ 66]: int v, v1; ..........[ 67]: for (v = 0; v >= 0; v = v1) { ..........[ 68]: v1 = atomic_cmpxchg(p, v, v + 1); ..........[ 69]: if (__builtin_expect(!!(v1 == v), 1)) ..........[ 70]: return 1; ..........[ 71]: } ..........[ 72]: return 0; ..........[ 73]: } ..........[ 77]: static inline __attribute__((no_instrument_function)) int atomic_dec_unless_positive(atomic_t *p) ..........[ 78]: { ..........[ 79]: int v, v1; ..........[ 80]: for (v = 0; v <= 0; v = v1) { ..........[ 81]: v1 = atomic_cmpxchg(p, v, v - 1); ..........[ 82]: if (__builtin_expect(!!(v1 == v), 1)) ..........[ 83]: return 1; ..........[ 84]: } ..........[ 85]: return 0; ..........[ 86]: } ..........[ 97]: static inline __attribute__((no_instrument_function)) int atomic_dec_if_positive(atomic_t *v) ..........[ 98]: { ..........[ 99]: int c, old, dec; ..........[ 100]: c = atomic_read(v); ..........[ 101]: for (;;) { ..........[ 102]: dec = c - 1; ..........[ 103]: if (__builtin_expect(!!(dec < 0), 0)) ..........[ 104]: break; ..........[ 105]: old = atomic_cmpxchg((v), c, dec); ..........[ 106]: if (__builtin_expect(!!(old == c), 1)) ..........[ 107]: break; ..........[ 108]: c = old; ..........[ 109]: } ..........[ 110]: return dec; ..........[ 111]: } ..........[ 115]: static inline __attribute__((no_instrument_function)) void atomic_or(int i, atomic_t *v) ..........[ 116]: { ..........[ 117]: int old; ..........[ 118]: int new; ..........[ 120]: do { ..........[ 121]: old = atomic_read(v); ..........[ 122]: new = old | i; ..........[ 123]: } while (atomic_cmpxchg(v, old, new) != old); ..........[ 124]: } .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/atomic.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/atomic-long.h ...........[ 23]: typedef atomic64_t atomic_long_t; ...........[ 27]: static inline __attribute__((no_instrument_function)) long atomic_long_read(atomic_long_t *l) ...........[ 28]: { ...........[ 29]: atomic64_t *v = (atomic64_t *)l; ...........[ 31]: return (long)atomic64_read(v); ...........[ 32]: } ...........[ 34]: static inline __attribute__((no_instrument_function)) void atomic_long_set(atomic_long_t *l, long i) ...........[ 35]: { ...........[ 36]: atomic64_t *v = (atomic64_t *)l; ...........[ 38]: atomic64_set(v, i); ...........[ 39]: } ...........[ 41]: static inline __attribute__((no_instrument_function)) void atomic_long_inc(atomic_long_t *l) ...........[ 42]: { ...........[ 43]: atomic64_t *v = (atomic64_t *)l; ...........[ 45]: atomic64_inc(v); ...........[ 46]: } ...........[ 48]: static inline __attribute__((no_instrument_function)) void atomic_long_dec(atomic_long_t *l) ...........[ 49]: { ...........[ 50]: atomic64_t *v = (atomic64_t *)l; ...........[ 52]: atomic64_dec(v); ...........[ 53]: } ...........[ 55]: static inline __attribute__((no_instrument_function)) void atomic_long_add(long i, atomic_long_t *l) ...........[ 56]: { ...........[ 57]: atomic64_t *v = (atomic64_t *)l; ...........[ 59]: atomic64_add(i, v); ...........[ 60]: } ...........[ 62]: static inline __attribute__((no_instrument_function)) void atomic_long_sub(long i, atomic_long_t *l) ...........[ 63]: { ...........[ 64]: atomic64_t *v = (atomic64_t *)l; ...........[ 66]: atomic64_sub(i, v); ...........[ 67]: } ...........[ 69]: static inline __attribute__((no_instrument_function)) int atomic_long_sub_and_test(long i, atomic_long_t *l\ ........... ) ...........[ 70]: { ...........[ 71]: atomic64_t *v = (atomic64_t *)l; ...........[ 73]: return atomic64_sub_and_test(i, v); ...........[ 74]: } ...........[ 76]: static inline __attribute__((no_instrument_function)) int atomic_long_dec_and_test(atomic_long_t *l) ...........[ 77]: { ...........[ 78]: atomic64_t *v = (atomic64_t *)l; ...........[ 80]: return atomic64_dec_and_test(v); ...........[ 81]: } ...........[ 83]: static inline __attribute__((no_instrument_function)) int atomic_long_inc_and_test(atomic_long_t *l) ...........[ 84]: { ...........[ 85]: atomic64_t *v = (atomic64_t *)l; ...........[ 87]: return atomic64_inc_and_test(v); ...........[ 88]: } ...........[ 90]: static inline __attribute__((no_instrument_function)) int atomic_long_add_negative(long i, atomic_long_t *l\ ........... ) ...........[ 91]: { ...........[ 92]: atomic64_t *v = (atomic64_t *)l; ...........[ 94]: return atomic64_add_negative(i, v); ...........[ 95]: } ...........[ 97]: static inline __attribute__((no_instrument_function)) long atomic_long_add_return(long i, atomic_long_t *l) ...........[ 98]: { ...........[ 99]: atomic64_t *v = (atomic64_t *)l; ...........[ 101]: return (long)atomic64_add_return(i, v); ...........[ 102]: } ...........[ 104]: static inline __attribute__((no_instrument_function)) long atomic_long_sub_return(long i, atomic_long_t *l) ...........[ 105]: { ...........[ 106]: atomic64_t *v = (atomic64_t *)l; ...........[ 108]: return (long)atomic64_sub_return(i, v); ...........[ 109]: } ...........[ 111]: static inline __attribute__((no_instrument_function)) long atomic_long_inc_return(atomic_long_t *l) ...........[ 112]: { ...........[ 113]: atomic64_t *v = (atomic64_t *)l; ...........[ 115]: return (long)(atomic64_add_return(1, (v))); ...........[ 116]: } ...........[ 118]: static inline __attribute__((no_instrument_function)) long atomic_long_dec_return(atomic_long_t *l) ...........[ 119]: { ...........[ 120]: atomic64_t *v = (atomic64_t *)l; ...........[ 122]: return (long)(atomic64_sub_return(1, (v))); ...........[ 123]: } ...........[ 125]: static inline __attribute__((no_instrument_function)) long atomic_long_add_unless(atomic_long_t *l, long a, \ ........... long u) ...........[ 126]: { ...........[ 127]: atomic64_t *v = (atomic64_t *)l; ...........[ 129]: return (long)atomic64_add_unless(v, a, u); ...........[ 130]: } ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/atomic-long.h ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/atomic.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h .........[ 25]: struct thread_info { .........[ 26]: struct task_struct *task; .........[ 27]: struct exec_domain *exec_domain; .........[ 28]: __u32 flags; .........[ 29]: __u32 status; .........[ 30]: __u32 cpu; .........[ 31]: int saved_preempt_count; .........[ 32]: mm_segment_t addr_limit; .........[ 33]: struct restart_block restart_block; .........[ 34]: void *sysenter_return; .........[ 41]: unsigned int sig_on_uaccess_error:1; .........[ 42]: unsigned int uaccess_err:1; .........[ 43]: }; .........[ 200]: extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned long) kernel_stack; .........[ 202]: static inline __attribute__((no_instrument_function)) struct thread_info *current_thread_info(void) .........[ 203]: { .........[ 204]: struct thread_info *ti; .........[ 205]: ti = (void *)(({ typeof(kernel_stack) pfo_ret__; switch (sizeof(kernel_stack)) { case 1: asm("mov" "b ""%%""gs"":" \ ......... "%P" "1"",%0" : "=q" (pfo_ret__) : "p"( &(kernel_stack))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : \ ......... "=r" (pfo_ret__) : "p"( &(kernel_stack))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__\ ......... ) : "p"( &(kernel_stack))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "p"( &(kernel_stack\ ......... ))); break; default: __bad_percpu_size(); } pfo_ret__; }) + .........[ 206]: (5*8) - (((1UL) << 12) << 1)); .........[ 207]: return ti; .........[ 208]: } .........[ 241]: static inline __attribute__((no_instrument_function)) void set_restore_sigmask(void) .........[ 242]: { .........[ 243]: struct thread_info *ti = current_thread_info(); .........[ 244]: ti->status |= 0x0008; .........[ 245]: ({ int __ret_warn_on = !!(!(__builtin_constant_p((2)) ? constant_test_bit((2), (( unsigned long *)&ti->flags)) \ ......... : variable_test_bit((2), (( unsigned long *)&ti->flags)))); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null\ ......... (__FILE__, __LINE__); __builtin_expect(!!(__ret_warn_on), 0); }); .........[ 246]: } .........[ 247]: static inline __attribute__((no_instrument_function)) void clear_restore_sigmask(void) .........[ 248]: { .........[ 249]: current_thread_info()->status &= ~0x0008; .........[ 250]: } .........[ 251]: static inline __attribute__((no_instrument_function)) bool test_restore_sigmask(void) .........[ 252]: { .........[ 253]: return current_thread_info()->status & 0x0008; .........[ 254]: } .........[ 255]: static inline __attribute__((no_instrument_function)) bool test_and_clear_restore_sigmask(void) .........[ 256]: { .........[ 257]: struct thread_info *ti = current_thread_info(); .........[ 258]: if (!(ti->status & 0x0008)) .........[ 259]: return false; .........[ 260]: ti->status &= ~0x0008; .........[ 261]: return true; .........[ 262]: } .........[ 264]: static inline __attribute__((no_instrument_function)) bool is_ia32_task(void) .........[ 265]: { .........[ 270]: if (current_thread_info()->status & 0x0002) .........[ 271]: return true; .........[ 273]: return false; .........[ 274]: } .........[ 278]: extern void arch_task_cache_init(void); .........[ 279]: extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); .........[ 280]: extern void arch_release_task_struct(struct task_struct *tsk); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/thread_info.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h ........[ 71]: static inline __attribute__((no_instrument_function)) void set_ti_thread_flag(struct thread_info *ti, int flag\ ........ ) ........[ 72]: { ........[ 73]: set_bit(flag, (unsigned long *)&ti->flags); ........[ 74]: } ........[ 76]: static inline __attribute__((no_instrument_function)) void clear_ti_thread_flag(struct thread_info *ti, int \ ........ flag) ........[ 77]: { ........[ 78]: clear_bit(flag, (unsigned long *)&ti->flags); ........[ 79]: } ........[ 81]: static inline __attribute__((no_instrument_function)) int test_and_set_ti_thread_flag(struct thread_info *\ ........ ti, int flag) ........[ 82]: { ........[ 83]: return test_and_set_bit(flag, (unsigned long *)&ti->flags); ........[ 84]: } ........[ 86]: static inline __attribute__((no_instrument_function)) int test_and_clear_ti_thread_flag(struct thread_info \ ........ *ti, int flag) ........[ 87]: { ........[ 88]: return test_and_clear_bit(flag, (unsigned long *)&ti->flags); ........[ 89]: } ........[ 91]: static inline __attribute__((no_instrument_function)) int test_ti_thread_flag(struct thread_info *ti, int flag\ ........ ) ........[ 92]: { ........[ 93]: return (__builtin_constant_p((flag)) ? constant_test_bit((flag), ((unsigned long *)&ti->flags)) : variable_test_bit\ ........ ((flag), ((unsigned long *)&ti->flags))); ........[ 94]: } ........[ 107]: static inline __attribute__((no_instrument_function)) void set_need_resched(void) ........[ 108]: { ........[ 119]: } ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/thread_info.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/preempt.h .......[ 8]: extern __attribute__((section(".data..percpu" ""))) __typeof__(int) __preempt_count; .......[ 20]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int preempt_count(void\ ....... ) .......[ 21]: { .......[ 22]: return ({ typeof((__preempt_count)) pfo_ret__; switch (sizeof((__preempt_count))) { case 1: asm("mov" "b ""%%"\ ....... "gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"(__preempt_count)); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"\ ....... ",%0" : "=r" (pfo_ret__) : "m"(__preempt_count)); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__\ ....... ) : "m"(__preempt_count)); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"(__preempt_count\ ....... )); break; default: __bad_percpu_size(); } pfo_ret__; }) & ~0x80000000; .......[ 23]: } .......[ 25]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void preempt_count_set\ ....... (int pc) .......[ 26]: { .......[ 27]: do { typedef typeof((__preempt_count)) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = (pc); (void)pto_tmp__; } switch \ ....... (sizeof((__preempt_count))) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "qi" ((pto_T__\ ....... )(pc))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pto_T__)(pc))); \ ....... break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pto_T__)(pc))); break; case \ ....... 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "re" ((pto_T__)(pc))); break; default: __bad_percpu_size\ ....... (); } } while (0); .......[ 28]: } .......[ 54]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void set_preempt_need_resched\ ....... (void) .......[ 55]: { .......[ 56]: do { typedef typeof((__preempt_count)) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = (~0x80000000); (void)pto_tmp__\ ....... ; } switch (sizeof((__preempt_count))) { case 1: asm("and" "b %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) \ ....... : "qi" ((pto_T__)(~0x80000000))); break; case 2: asm("and" "w %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)\ ....... ) : "ri" ((pto_T__)(~0x80000000))); break; case 4: asm("and" "l %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... )) : "ri" ((pto_T__)(~0x80000000))); break; case 8: asm("and" "q %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... )) : "re" ((pto_T__)(~0x80000000))); break; default: __bad_percpu_size(); } } while (0); .......[ 57]: } .......[ 59]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void clear_preempt_need_resched\ ....... (void) .......[ 60]: { .......[ 61]: do { typedef typeof((__preempt_count)) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = (0x80000000); (void)pto_tmp__\ ....... ; } switch (sizeof((__preempt_count))) { case 1: asm("or" "b %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : \ ....... "qi" ((pto_T__)(0x80000000))); break; case 2: asm("or" "w %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" \ ....... ((pto_T__)(0x80000000))); break; case 4: asm("or" "l %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" (\ ....... (pto_T__)(0x80000000))); break; case 8: asm("or" "q %1,""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "re" ((\ ....... pto_T__)(0x80000000))); break; default: __bad_percpu_size(); } } while (0); .......[ 62]: } .......[ 64]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool test_preempt_need_resched\ ....... (void) .......[ 65]: { .......[ 66]: return !(({ typeof((__preempt_count)) pfo_ret__; switch (sizeof((__preempt_count))) { case 1: asm("mov" "b ""%%"\ ....... "gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"(__preempt_count)); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"\ ....... ",%0" : "=r" (pfo_ret__) : "m"(__preempt_count)); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__\ ....... ) : "m"(__preempt_count)); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"(__preempt_count\ ....... )); break; default: __bad_percpu_size(); } pfo_ret__; }) & 0x80000000); .......[ 67]: } .......[ 73]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void __preempt_count_add\ ....... (int val) .......[ 74]: { .......[ 75]: do { typedef typeof((__preempt_count)) pao_T__; const int pao_ID__ = (__builtin_constant_p(val) && ((val) == 1 || (\ ....... val) == -1)) ? (int)(val) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = (val); (void)pao_tmp__; } switch (sizeof((__preempt_count\ ....... ))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ == -1) \ ....... asm("decb ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... )) : "qi" ((pao_T__)(val))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... ))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addw %1, ""%%"\ ....... "gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pao_T__)(val))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%"\ ....... "gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... ))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pao_T__)(val))); break; case 8: \ ....... if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ == -1) asm("decq "\ ....... "%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... )) : "re" ((pao_T__)(val))); break; default: __bad_percpu_size(); } } while (0); .......[ 76]: } .......[ 78]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void __preempt_count_sub\ ....... (int val) .......[ 79]: { .......[ 80]: do { typedef typeof((__preempt_count)) pao_T__; const int pao_ID__ = (__builtin_constant_p(-val) && ((-val) == 1 || \ ....... (-val) == -1)) ? (int)(-val) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = (-val); (void)pao_tmp__; } switch (sizeof((__preempt_count\ ....... ))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ == -1) \ ....... asm("decb ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... )) : "qi" ((pao_T__)(-val))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count\ ....... ))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addw %1, ""%%"\ ....... "gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pao_T__)(-val))); break; case 4: if (pao_ID__ == 1) asm("incl "\ ....... "%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((\ ....... __preempt_count))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count)) : "ri" ((pao_T__)(-val\ ....... ))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else if (pao_ID__ \ ....... == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((__preempt_count))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" \ ....... ((__preempt_count)) : "re" ((pao_T__)(-val))); break; default: __bad_percpu_size(); } } while (0); .......[ 81]: } .......[ 88]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool __preempt_count_dec_and_test\ ....... (void) .......[ 89]: { .......[ 90]: do { char c; asm volatile ("decl" " " "%%""gs"":" "%P" "0" "; set" "e" " %1" : "+m" (__preempt_count), "=qm" (c) : : "memory"\ ....... ); return c != 0; } while (0); .......[ 91]: } .......[ 96]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool should_resched(\ ....... void) .......[ 97]: { .......[ 98]: return __builtin_expect(!!(!({ typeof((__preempt_count)) pfo_ret__; switch (sizeof((__preempt_count))) { case \ ....... 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"(__preempt_count)); break; case 2: asm("mov" "w "\ ....... "%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"(__preempt_count)); break; case 4: asm("mov" "l ""%%""gs"":" "%P" \ ....... "1"",%0" : "=r" (pfo_ret__) : "m"(__preempt_count)); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" \ ....... (pfo_ret__) : "m"(__preempt_count)); break; default: __bad_percpu_size(); } pfo_ret__; })), 0); .......[ 99]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/preempt.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt.h ......[ 121]: struct preempt_notifier; ......[ 137]: struct preempt_ops { ......[ 138]: void (*sched_in)(struct preempt_notifier *notifier, int cpu); ......[ 139]: void (*sched_out)(struct preempt_notifier *notifier, ......[ 140]: struct task_struct *next); ......[ 141]: }; ......[ 150]: struct preempt_notifier { ......[ 151]: struct hlist_node link; ......[ 152]: struct preempt_ops *ops; ......[ 153]: }; ......[ 155]: void preempt_notifier_register(struct preempt_notifier *notifier); ......[ 156]: void preempt_notifier_unregister(struct preempt_notifier *notifier); ......[ 158]: static inline __attribute__((no_instrument_function)) void preempt_notifier_init(struct preempt_notifier *\ ...... notifier, ......[ 159]: struct preempt_ops *ops) ......[ 160]: { ......[ 161]: INIT_HLIST_NODE(¬ifier->link); ......[ 162]: notifier->ops = ops; ......[ 163]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bottom_half.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bottom_half.h ......[ 4]: extern void local_bh_disable(void); ......[ 5]: extern void _local_bh_enable(void); ......[ 6]: extern void local_bh_enable(void); ......[ 7]: extern void local_bh_enable_ip(unsigned long ip); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bottom_half.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/barrier.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/barrier.h ......[ 110]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void rdtsc_barrier(void\ ...... ) ......[ 111]: { ......[ 112]: asm volatile ("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ...... " .long " "663""1""f - .\n" " .word " "(3*32+17)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ...... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ...... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ...... "mfence" "\n" "664""1" ":\n\t" ".popsection" : : : "memory"); ......[ 113]: asm volatile ("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ...... " .long " "663""1""f - .\n" " .word " "(3*32+18)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ...... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ...... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ...... "lfence" "\n" "664""1" ":\n\t" ".popsection" : : : "memory"); ......[ 114]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/barrier.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock_types.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock_types.h .......[ 15]: typedef u8 __ticket_t; .......[ 16]: typedef u16 __ticketpair_t; .......[ 26]: typedef struct arch_spinlock { .......[ 27]: union { .......[ 28]: __ticketpair_t head_tail; .......[ 29]: struct __raw_tickets { .......[ 30]: __ticket_t head, tail; .......[ 31]: } tickets; .......[ 32]: }; .......[ 33]: } arch_spinlock_t; ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock_types.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/rwlock.h ........[ 9]: typedef union { ........[ 10]: s32 lock; ........[ 11]: s32 write; ........[ 12]: } arch_rwlock_t; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/rwlock.h .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock_types.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockdep.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockdep.h .......[ 12]: struct task_struct; .......[ 13]: struct lockdep_map; .......[ 16]: extern int prove_locking; .......[ 17]: extern int lock_stat; .......[ 370]: static inline __attribute__((no_instrument_function)) void lockdep_off(void) .......[ 371]: { .......[ 372]: } .......[ 374]: static inline __attribute__((no_instrument_function)) void lockdep_on(void) .......[ 375]: { .......[ 376]: } .......[ 411]: struct lock_class_key { }; .......[ 465]: static inline __attribute__((no_instrument_function)) void print_irqtrace_events(struct task_struct *curr) .......[ 466]: { .......[ 467]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockdep.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h ......[ 20]: typedef struct raw_spinlock { ......[ 21]: arch_spinlock_t raw_lock; ......[ 32]: } raw_spinlock_t; ......[ 64]: typedef struct spinlock { ......[ 65]: union { ......[ 66]: struct raw_spinlock rlock; ......[ 75]: }; ......[ 76]: } spinlock_t; .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwlock_types.h .......[ 11]: typedef struct { .......[ 12]: arch_rwlock_t raw_lock; .......[ 23]: } rwlock_t; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwlock_types.h ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_types.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jump_label.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jump_label.h .......[ 53]: extern bool static_key_initialized; .......[ 74]: enum jump_label_type { .......[ 75]: JUMP_LABEL_DISABLE = 0, .......[ 76]: JUMP_LABEL_ENABLE, .......[ 77]: }; .......[ 79]: struct module; .......[ 132]: struct static_key { .......[ 133]: atomic_t enabled; .......[ 134]: }; .......[ 136]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void jump_label_init\ ....... (void) .......[ 137]: { .......[ 138]: static_key_initialized = true; .......[ 139]: } .......[ 141]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool static_key_false\ ....... (struct static_key *key) .......[ 142]: { .......[ 143]: if (__builtin_expect(!!(atomic_read(&key->enabled) > 0), 0)) .......[ 144]: return true; .......[ 145]: return false; .......[ 146]: } .......[ 148]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool static_key_true\ ....... (struct static_key *key) .......[ 149]: { .......[ 150]: if (__builtin_expect(!!(atomic_read(&key->enabled) > 0), 1)) .......[ 151]: return true; .......[ 152]: return false; .......[ 153]: } .......[ 155]: static inline __attribute__((no_instrument_function)) void static_key_slow_inc(struct static_key *key) .......[ 156]: { .......[ 157]: ({ int __ret_warn_on = !!(!static_key_initialized); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_fmt\ ....... (__FILE__, __LINE__, "%s used before call to jump_label_init"); __builtin_expect(!!(__ret_warn_on), 0); }\ ....... ); .......[ 158]: atomic_inc(&key->enabled); .......[ 159]: } .......[ 161]: static inline __attribute__((no_instrument_function)) void static_key_slow_dec(struct static_key *key) .......[ 162]: { .......[ 163]: ({ int __ret_warn_on = !!(!static_key_initialized); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_fmt\ ....... (__FILE__, __LINE__, "%s used before call to jump_label_init"); __builtin_expect(!!(__ret_warn_on), 0); }\ ....... ); .......[ 164]: atomic_dec(&key->enabled); .......[ 165]: } .......[ 167]: static inline __attribute__((no_instrument_function)) int jump_label_text_reserved(void *start, void *end) .......[ 168]: { .......[ 169]: return 0; .......[ 170]: } .......[ 172]: static inline __attribute__((no_instrument_function)) void jump_label_lock(void) {} .......[ 173]: static inline __attribute__((no_instrument_function)) void jump_label_unlock(void) {} .......[ 175]: static inline __attribute__((no_instrument_function)) int jump_label_apply_nops(struct module *mod) .......[ 176]: { .......[ 177]: return 0; .......[ 178]: } .......[ 190]: static inline __attribute__((no_instrument_function)) bool static_key_enabled(struct static_key *key) .......[ 191]: { .......[ 192]: return (atomic_read(&key->enabled) > 0); .......[ 193]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jump_label.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock.h ......[ 43]: extern struct static_key paravirt_ticketlocks_enabled; ......[ 44]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool static_key_false\ ...... (struct static_key *key); ......[ 54]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void __ticket_lock_spinning\ ...... (arch_spinlock_t *lock, ......[ 55]: __ticket_t ticket) ......[ 56]: { ......[ 57]: } ......[ 58]: static inline __attribute__((no_instrument_function)) void __ticket_unlock_kick(arch_spinlock_t *lock, ......[ 59]: __ticket_t ticket) ......[ 60]: { ......[ 61]: } ......[ 65]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int arch_spin_value_unlocked\ ...... (arch_spinlock_t lock) ......[ 66]: { ......[ 67]: return lock.tickets.head == lock.tickets.tail; ......[ 68]: } ......[ 83]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void arch_spin_lock(\ ...... arch_spinlock_t *lock) ......[ 84]: { ......[ 85]: register struct __raw_tickets inc = { .tail = ((__ticket_t)1) }; ......[ 87]: inc = ({ __typeof__ (*(((&lock->tickets)))) __ret = (((inc))); switch (sizeof(*(((&lock->tickets))))) { case 1: asm \ ...... volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... "xadd" "b %b0, %1\n" : "+q" (__ret), "+m" (*(((&lock->tickets)))) : : "memory", "cc"); break; case 2: asm volatile (\ ...... ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" \ ...... "w %w0, %1\n" : "+r" (__ret), "+m" (*(((&lock->tickets)))) : : "memory", "cc"); break; case 4: asm volatile (".pushsection .smp_locks,\"a\"\n" \ ...... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "l %0, %1\n" : "+r" (__ret), "+m" (\ ...... *(((&lock->tickets)))) : : "memory", "cc"); break; case 8: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ...... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "q %q0, %1\n" : "+r" (__ret), "+m" (*(((&lock->tickets\ ...... )))) : : "memory", "cc"); break; default: __xadd_wrong_size(); } __ret; }); ......[ 88]: if (__builtin_expect(!!(inc.head == inc.tail), 1)) ......[ 89]: goto out; ......[ 91]: inc.tail &= ~((__ticket_t)0); ......[ 92]: for (;;) { ......[ 93]: unsigned count = (1 << 15); ......[ 95]: do { ......[ 96]: if ((*(volatile typeof(lock->tickets.head) *)&(lock->tickets.head)) == inc.tail) ......[ 97]: goto out; ......[ 98]: cpu_relax(); ......[ 99]: } while (--count); ......[ 100]: __ticket_lock_spinning(lock, inc.tail); ......[ 101]: } ......[ 102]: out: __asm__ __volatile__("": : :"memory"); ......[ 103]: } ......[ 105]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int arch_spin_trylock\ ...... (arch_spinlock_t *lock) ......[ 106]: { ......[ 107]: arch_spinlock_t old, new; ......[ 109]: old.tickets = (*(volatile typeof(lock->tickets) *)&(lock->tickets)); ......[ 110]: if (old.tickets.head != (old.tickets.tail & ~((__ticket_t)0))) ......[ 111]: return 0; ......[ 113]: new.head_tail = old.head_tail + (((__ticket_t)1) << (sizeof(__ticket_t) * 8)); ......[ 116]: return ({ __typeof__(*((&lock->head_tail))) __ret; __typeof__(*((&lock->head_tail))) __old = ((old.head_tail\ ...... )); __typeof__(*((&lock->head_tail))) __new = ((new.head_tail)); switch ((sizeof(*(&lock->head_tail)))) { case \ ...... 1: { volatile u8 *__ptr = (volatile u8 *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ...... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgb %2,%1" : "=a" (__ret), "+m" (*__ptr) : "q" (__new\ ...... ), "0" (__old) : "memory"); break; } case 2: { volatile u16 *__ptr = (volatile u16 *)((&lock->head_tail)); asm volatile\ ...... (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgw %2,%1" \ ...... : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } case 4: { volatile u32 *__ptr = (volatile u32 \ ...... *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "cmpxchgl %2,%1" : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } case \ ...... 8: { volatile u64 *__ptr = (volatile u64 *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" \ ...... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgq %2,%1" : "=a" (__ret), "+m" (*__ptr\ ...... ) : "r" (__new), "0" (__old) : "memory"); break; } default: __cmpxchg_wrong_size(); } __ret; }) == old.head_tail; ......[ 117]: } ......[ 119]: static inline __attribute__((no_instrument_function)) void __ticket_unlock_slowpath(arch_spinlock_t *lock\ ...... , ......[ 120]: arch_spinlock_t old) ......[ 121]: { ......[ 122]: arch_spinlock_t new; ......[ 124]: ((void)sizeof(char[1 - 2*!!(((__ticket_t)64) != 64)])); ......[ 127]: old.tickets.head += ((__ticket_t)1); ......[ 130]: new.head_tail = old.head_tail & ~(((__ticket_t)0) << (sizeof(__ticket_t) * 8)); ......[ 136]: if (new.tickets.head != new.tickets.tail || ......[ 138]: ({ __typeof__(*((&lock->head_tail))) __ret; __typeof__(*((&lock->head_tail))) __old = ((old.head_tail)); __typeof__\ ...... (*((&lock->head_tail))) __new = ((new.head_tail)); switch ((sizeof(*(&lock->head_tail)))) { case 1: { volatile \ ...... u8 *__ptr = (volatile u8 *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ...... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgb %2,%1" : "=a" (__ret), "+m" (*__ptr) : "q" (__new\ ...... ), "0" (__old) : "memory"); break; } case 2: { volatile u16 *__ptr = (volatile u16 *)((&lock->head_tail)); asm volatile\ ...... (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgw %2,%1" \ ...... : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } case 4: { volatile u32 *__ptr = (volatile u32 \ ...... *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "cmpxchgl %2,%1" : "=a" (__ret), "+m" (*__ptr) : "r" (__new), "0" (__old) : "memory"); break; } case \ ...... 8: { volatile u64 *__ptr = (volatile u64 *)((&lock->head_tail)); asm volatile(".pushsection .smp_locks,\"a\"\n" \ ...... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "cmpxchgq %2,%1" : "=a" (__ret), "+m" (*__ptr\ ...... ) : "r" (__new), "0" (__old) : "memory"); break; } default: __cmpxchg_wrong_size(); } __ret; }) != old.head_tail) { ......[ 143]: __ticket_unlock_kick(lock, old.tickets.head); ......[ 144]: } ......[ 145]: } ......[ 147]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void arch_spin_unlock\ ...... (arch_spinlock_t *lock) ......[ 148]: { ......[ 149]: if (((__ticket_t)0) && ......[ 150]: static_key_false(¶virt_ticketlocks_enabled)) { ......[ 151]: arch_spinlock_t prev; ......[ 153]: prev = *lock; ......[ 154]: ({ __typeof__ (*((&lock->tickets.head))) __ret = ((((__ticket_t)1))); switch (sizeof(*((&lock->tickets.head\ ...... )))) { case 1: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "addb %b1, %0\n" : "+m" (*((&lock->tickets.head))) : "qi" ((((__ticket_t)1))) : "memory", "cc"\ ...... ); break; case 2: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "addw %w1, %0\n" : "+m" (*((&lock->tickets.head))) : "ri" ((((__ticket_t)1))) : "memory", "cc"\ ...... ); break; case 4: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "addl %1, %0\n" : "+m" (*((&lock->tickets.head))) : "ri" ((((__ticket_t)1))) : "memory", "cc"\ ...... ); break; case 8: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" \ ...... "671:" "\n\tlock; " "addq %1, %0\n" : "+m" (*((&lock->tickets.head))) : "ri" ((((__ticket_t)1))) : "memory", "cc"\ ...... ); break; default: __add_wrong_size(); } __ret; }); ......[ 158]: if (__builtin_expect(!!(lock->tickets.tail & ((__ticket_t)0)), 0)) ......[ 159]: __ticket_unlock_slowpath(lock, prev); ......[ 160]: } else ......[ 161]: ({ __typeof__ (*(&lock->tickets.head)) __ret = (((__ticket_t)1)); switch (sizeof(*(&lock->tickets.head))) { case \ ...... 1: asm volatile ( "addb %b1, %0\n" : "+m" (*(&lock->tickets.head)) : "qi" (((__ticket_t)1)) : "memory", "cc"); break\ ...... ; case 2: asm volatile ( "addw %w1, %0\n" : "+m" (*(&lock->tickets.head)) : "ri" (((__ticket_t)1)) : "memory", "cc"\ ...... ); break; case 4: asm volatile ( "addl %1, %0\n" : "+m" (*(&lock->tickets.head)) : "ri" (((__ticket_t)1)) : "memory"\ ...... , "cc"); break; case 8: asm volatile ( "addq %1, %0\n" : "+m" (*(&lock->tickets.head)) : "ri" (((__ticket_t)1)) : "memory"\ ...... , "cc"); break; default: __add_wrong_size(); } __ret; }); ......[ 162]: } ......[ 164]: static inline __attribute__((no_instrument_function)) int arch_spin_is_locked(arch_spinlock_t *lock) ......[ 165]: { ......[ 166]: struct __raw_tickets tmp = (*(volatile typeof(lock->tickets) *)&(lock->tickets)); ......[ 168]: return tmp.tail != tmp.head; ......[ 169]: } ......[ 171]: static inline __attribute__((no_instrument_function)) int arch_spin_is_contended(arch_spinlock_t *lock) ......[ 172]: { ......[ 173]: struct __raw_tickets tmp = (*(volatile typeof(lock->tickets) *)&(lock->tickets)); ......[ 175]: return (__ticket_t)(tmp.tail - tmp.head) > ((__ticket_t)1); ......[ 176]: } ......[ 179]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void arch_spin_lock_flags\ ...... (arch_spinlock_t *lock, ......[ 180]: unsigned long flags) ......[ 181]: { ......[ 182]: arch_spin_lock(lock); ......[ 183]: } ......[ 185]: static inline __attribute__((no_instrument_function)) void arch_spin_unlock_wait(arch_spinlock_t *lock) ......[ 186]: { ......[ 187]: while (arch_spin_is_locked(lock)) ......[ 188]: cpu_relax(); ......[ 189]: } ......[ 209]: static inline __attribute__((no_instrument_function)) int arch_read_can_lock(arch_rwlock_t *lock) ......[ 210]: { ......[ 211]: return lock->lock > 0; ......[ 212]: } ......[ 218]: static inline __attribute__((no_instrument_function)) int arch_write_can_lock(arch_rwlock_t *lock) ......[ 219]: { ......[ 220]: return lock->write == 0x00100000; ......[ 221]: } ......[ 223]: static inline __attribute__((no_instrument_function)) void arch_read_lock(arch_rwlock_t *rw) ......[ 224]: { ......[ 225]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... " " "decl" " " " (%0)\n\t" ......[ 226]: "jns 1f\n" ......[ 227]: "call __read_lock_failed\n\t" ......[ 228]: "1:\n" ......[ 229]: ::"D" (rw) : "memory"); ......[ 230]: } ......[ 232]: static inline __attribute__((no_instrument_function)) void arch_write_lock(arch_rwlock_t *rw) ......[ 233]: { ......[ 234]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... " " "subl %1" "," "(%0)\n\t" ......[ 235]: "jz 1f\n" ......[ 236]: "call __write_lock_failed\n\t" ......[ 237]: "1:\n" ......[ 238]: ::"D" (&rw->write), "i" (0x00100000) ......[ 239]: : "memory"); ......[ 240]: } ......[ 242]: static inline __attribute__((no_instrument_function)) int arch_read_trylock(arch_rwlock_t *lock) ......[ 243]: { ......[ 244]: atomic_t *count = (atomic_t *)lock; ......[ 246]: if ((atomic_sub_return(1, count)) >= 0) ......[ 247]: return 1; ......[ 248]: atomic_inc(count); ......[ 249]: return 0; ......[ 250]: } ......[ 252]: static inline __attribute__((no_instrument_function)) int arch_write_trylock(arch_rwlock_t *lock) ......[ 253]: { ......[ 254]: atomic_t *count = (atomic_t *)&lock->write; ......[ 256]: if (atomic_sub_and_test(0x00100000, count)) ......[ 257]: return 1; ......[ 258]: atomic_add(0x00100000, count); ......[ 259]: return 0; ......[ 260]: } ......[ 262]: static inline __attribute__((no_instrument_function)) void arch_read_unlock(arch_rwlock_t *rw) ......[ 263]: { ......[ 264]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... " " "incl" " " " %0" ......[ 265]: :"+m" (rw->lock) : : "memory"); ......[ 266]: } ......[ 268]: static inline __attribute__((no_instrument_function)) void arch_write_unlock(arch_rwlock_t *rw) ......[ 269]: { ......[ 270]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... " " "addl %1" "," "%0" ......[ 271]: : "+m" (rw->write) : "i" (0x00100000) : "memory"); ......[ 272]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/spinlock.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....[ 145]: static inline __attribute__((no_instrument_function)) void do_raw_spin_lock(raw_spinlock_t *lock) .....[ 146]: { .....[ 147]: (void)0; .....[ 148]: arch_spin_lock(&lock->raw_lock); .....[ 149]: } .....[ 151]: static inline __attribute__((no_instrument_function)) void .....[ 152]: do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) .....[ 153]: { .....[ 154]: (void)0; .....[ 155]: arch_spin_lock_flags(&lock->raw_lock, *flags); .....[ 156]: } .....[ 158]: static inline __attribute__((no_instrument_function)) int do_raw_spin_trylock(raw_spinlock_t *lock) .....[ 159]: { .....[ 160]: return arch_spin_trylock(&(lock)->raw_lock); .....[ 161]: } .....[ 163]: static inline __attribute__((no_instrument_function)) void do_raw_spin_unlock(raw_spinlock_t *lock) .....[ 164]: { .....[ 165]: arch_spin_unlock(&lock->raw_lock); .....[ 166]: (void)0; .....[ 167]: } ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_api_smp.h ......[ 18]: int in_lock_functions(unsigned long addr); ......[ 22]: void __attribute__((section(".spinlock.text"))) _raw_spin_lock(raw_spinlock_t *lock) ; ......[ 23]: void __attribute__((section(".spinlock.text"))) _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) ......[ 24]: ; ......[ 25]: void __attribute__((section(".spinlock.text"))) ......[ 26]: _raw_spin_lock_nest_lock(raw_spinlock_t *lock, struct lockdep_map *map) ......[ 27]: ; ......[ 28]: void __attribute__((section(".spinlock.text"))) _raw_spin_lock_bh(raw_spinlock_t *lock) ; ......[ 29]: void __attribute__((section(".spinlock.text"))) _raw_spin_lock_irq(raw_spinlock_t *lock) ......[ 30]: ; ......[ 32]: unsigned long __attribute__((section(".spinlock.text"))) _raw_spin_lock_irqsave(raw_spinlock_t *lock) ......[ 33]: ; ......[ 34]: unsigned long __attribute__((section(".spinlock.text"))) ......[ 35]: _raw_spin_lock_irqsave_nested(raw_spinlock_t *lock, int subclass) ......[ 36]: ; ......[ 37]: int __attribute__((section(".spinlock.text"))) _raw_spin_trylock(raw_spinlock_t *lock); ......[ 38]: int __attribute__((section(".spinlock.text"))) _raw_spin_trylock_bh(raw_spinlock_t *lock); ......[ 39]: void __attribute__((section(".spinlock.text"))) _raw_spin_unlock(raw_spinlock_t *lock) ; ......[ 40]: void __attribute__((section(".spinlock.text"))) _raw_spin_unlock_bh(raw_spinlock_t *lock) ; ......[ 41]: void __attribute__((section(".spinlock.text"))) _raw_spin_unlock_irq(raw_spinlock_t *lock) ; ......[ 42]: void __attribute__((section(".spinlock.text"))) ......[ 43]: _raw_spin_unlock_irqrestore(raw_spinlock_t *lock, unsigned long flags) ......[ 44]: ; ......[ 86]: static inline __attribute__((no_instrument_function)) int __raw_spin_trylock(raw_spinlock_t *lock) ......[ 87]: { ......[ 88]: __asm__ __volatile__("": : :"memory"); ......[ 89]: if (do_raw_spin_trylock(lock)) { ......[ 90]: do { } while (0); ......[ 91]: return 1; ......[ 92]: } ......[ 93]: __asm__ __volatile__("": : :"memory"); ......[ 94]: return 0; ......[ 95]: } ......[ 104]: static inline __attribute__((no_instrument_function)) unsigned long __raw_spin_lock_irqsave(raw_spinlock_t \ ...... *lock) ......[ 105]: { ......[ 106]: unsigned long flags; ......[ 108]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save\ ...... (); } while (0); do { } while (0); } while (0); ......[ 109]: __asm__ __volatile__("": : :"memory"); ......[ 110]: do { } while (0); ......[ 119]: do_raw_spin_lock_flags(lock, &flags); ......[ 121]: return flags; ......[ 122]: } ......[ 124]: static inline __attribute__((no_instrument_function)) void __raw_spin_lock_irq(raw_spinlock_t *lock) ......[ 125]: { ......[ 126]: do { arch_local_irq_disable(); do { } while (0); } while (0); ......[ 127]: __asm__ __volatile__("": : :"memory"); ......[ 128]: do { } while (0); ......[ 129]: do_raw_spin_lock(lock); ......[ 130]: } ......[ 132]: static inline __attribute__((no_instrument_function)) void __raw_spin_lock_bh(raw_spinlock_t *lock) ......[ 133]: { ......[ 134]: local_bh_disable(); ......[ 135]: __asm__ __volatile__("": : :"memory"); ......[ 136]: do { } while (0); ......[ 137]: do_raw_spin_lock(lock); ......[ 138]: } ......[ 140]: static inline __attribute__((no_instrument_function)) void __raw_spin_lock(raw_spinlock_t *lock) ......[ 141]: { ......[ 142]: __asm__ __volatile__("": : :"memory"); ......[ 143]: do { } while (0); ......[ 144]: do_raw_spin_lock(lock); ......[ 145]: } ......[ 149]: static inline __attribute__((no_instrument_function)) void __raw_spin_unlock(raw_spinlock_t *lock) ......[ 150]: { ......[ 151]: do { } while (0); ......[ 152]: do_raw_spin_unlock(lock); ......[ 153]: __asm__ __volatile__("": : :"memory"); ......[ 154]: } ......[ 156]: static inline __attribute__((no_instrument_function)) void __raw_spin_unlock_irqrestore(raw_spinlock_t *lock\ ...... , ......[ 157]: unsigned long flags) ......[ 158]: { ......[ 159]: do { } while (0); ......[ 160]: do_raw_spin_unlock(lock); ......[ 161]: 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); ......[ 162]: __asm__ __volatile__("": : :"memory"); ......[ 163]: } ......[ 165]: static inline __attribute__((no_instrument_function)) void __raw_spin_unlock_irq(raw_spinlock_t *lock) ......[ 166]: { ......[ 167]: do { } while (0); ......[ 168]: do_raw_spin_unlock(lock); ......[ 169]: do { do { } while (0); arch_local_irq_enable(); } while (0); ......[ 170]: __asm__ __volatile__("": : :"memory"); ......[ 171]: } ......[ 173]: static inline __attribute__((no_instrument_function)) void __raw_spin_unlock_bh(raw_spinlock_t *lock) ......[ 174]: { ......[ 175]: do { } while (0); ......[ 176]: do_raw_spin_unlock(lock); ......[ 177]: __asm__ __volatile__("": : :"memory"); ......[ 178]: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); ......[ 179]: } ......[ 181]: static inline __attribute__((no_instrument_function)) int __raw_spin_trylock_bh(raw_spinlock_t *lock) ......[ 182]: { ......[ 183]: local_bh_disable(); ......[ 184]: __asm__ __volatile__("": : :"memory"); ......[ 185]: if (do_raw_spin_trylock(lock)) { ......[ 186]: do { } while (0); ......[ 187]: return 1; ......[ 188]: } ......[ 189]: __asm__ __volatile__("": : :"memory"); ......[ 190]: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); ......[ 191]: return 0; ......[ 192]: } .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_api_smp.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwlock_api_smp.h .......[ 18]: void __attribute__((section(".spinlock.text"))) _raw_read_lock(rwlock_t *lock) ; .......[ 19]: void __attribute__((section(".spinlock.text"))) _raw_write_lock(rwlock_t *lock) ; .......[ 20]: void __attribute__((section(".spinlock.text"))) _raw_read_lock_bh(rwlock_t *lock) ; .......[ 21]: void __attribute__((section(".spinlock.text"))) _raw_write_lock_bh(rwlock_t *lock) ; .......[ 22]: void __attribute__((section(".spinlock.text"))) _raw_read_lock_irq(rwlock_t *lock) ; .......[ 23]: void __attribute__((section(".spinlock.text"))) _raw_write_lock_irq(rwlock_t *lock) ; .......[ 24]: unsigned long __attribute__((section(".spinlock.text"))) _raw_read_lock_irqsave(rwlock_t *lock) .......[ 25]: ; .......[ 26]: unsigned long __attribute__((section(".spinlock.text"))) _raw_write_lock_irqsave(rwlock_t *lock) .......[ 27]: ; .......[ 28]: int __attribute__((section(".spinlock.text"))) _raw_read_trylock(rwlock_t *lock); .......[ 29]: int __attribute__((section(".spinlock.text"))) _raw_write_trylock(rwlock_t *lock); .......[ 30]: void __attribute__((section(".spinlock.text"))) _raw_read_unlock(rwlock_t *lock) ; .......[ 31]: void __attribute__((section(".spinlock.text"))) _raw_write_unlock(rwlock_t *lock) ; .......[ 32]: void __attribute__((section(".spinlock.text"))) _raw_read_unlock_bh(rwlock_t *lock) ; .......[ 33]: void __attribute__((section(".spinlock.text"))) _raw_write_unlock_bh(rwlock_t *lock) ; .......[ 34]: void __attribute__((section(".spinlock.text"))) _raw_read_unlock_irq(rwlock_t *lock) ; .......[ 35]: void __attribute__((section(".spinlock.text"))) _raw_write_unlock_irq(rwlock_t *lock) ; .......[ 36]: void __attribute__((section(".spinlock.text"))) .......[ 37]: _raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) .......[ 38]: ; .......[ 39]: void __attribute__((section(".spinlock.text"))) .......[ 40]: _raw_write_unlock_irqrestore(rwlock_t *lock, unsigned long flags) .......[ 41]: ; .......[ 117]: static inline __attribute__((no_instrument_function)) int __raw_read_trylock(rwlock_t *lock) .......[ 118]: { .......[ 119]: __asm__ __volatile__("": : :"memory"); .......[ 120]: if (arch_read_trylock(&(lock)->raw_lock)) { .......[ 121]: do { } while (0); .......[ 122]: return 1; .......[ 123]: } .......[ 124]: __asm__ __volatile__("": : :"memory"); .......[ 125]: return 0; .......[ 126]: } .......[ 128]: static inline __attribute__((no_instrument_function)) int __raw_write_trylock(rwlock_t *lock) .......[ 129]: { .......[ 130]: __asm__ __volatile__("": : :"memory"); .......[ 131]: if (arch_write_trylock(&(lock)->raw_lock)) { .......[ 132]: do { } while (0); .......[ 133]: return 1; .......[ 134]: } .......[ 135]: __asm__ __volatile__("": : :"memory"); .......[ 136]: return 0; .......[ 137]: } .......[ 146]: static inline __attribute__((no_instrument_function)) void __raw_read_lock(rwlock_t *lock) .......[ 147]: { .......[ 148]: __asm__ __volatile__("": : :"memory"); .......[ 149]: do { } while (0); .......[ 150]: do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); .......[ 151]: } .......[ 153]: static inline __attribute__((no_instrument_function)) unsigned long __raw_read_lock_irqsave(rwlock_t *lock\ ....... ) .......[ 154]: { .......[ 155]: unsigned long flags; .......[ 157]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save\ ....... (); } while (0); do { } while (0); } while (0); .......[ 158]: __asm__ __volatile__("": : :"memory"); .......[ 159]: do { } while (0); .......[ 161]: do {(void)0; arch_read_lock(&((lock))->raw_lock); } while (0); .......[ 162]: return flags; .......[ 163]: } .......[ 165]: static inline __attribute__((no_instrument_function)) void __raw_read_lock_irq(rwlock_t *lock) .......[ 166]: { .......[ 167]: do { arch_local_irq_disable(); do { } while (0); } while (0); .......[ 168]: __asm__ __volatile__("": : :"memory"); .......[ 169]: do { } while (0); .......[ 170]: do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); .......[ 171]: } .......[ 173]: static inline __attribute__((no_instrument_function)) void __raw_read_lock_bh(rwlock_t *lock) .......[ 174]: { .......[ 175]: local_bh_disable(); .......[ 176]: __asm__ __volatile__("": : :"memory"); .......[ 177]: do { } while (0); .......[ 178]: do {(void)0; arch_read_lock(&(lock)->raw_lock); } while (0); .......[ 179]: } .......[ 181]: static inline __attribute__((no_instrument_function)) unsigned long __raw_write_lock_irqsave(rwlock_t *lock\ ....... ) .......[ 182]: { .......[ 183]: unsigned long flags; .......[ 185]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save\ ....... (); } while (0); do { } while (0); } while (0); .......[ 186]: __asm__ __volatile__("": : :"memory"); .......[ 187]: do { } while (0); .......[ 189]: do {(void)0; arch_write_lock(&((lock))->raw_lock); } while (0); .......[ 190]: return flags; .......[ 191]: } .......[ 193]: static inline __attribute__((no_instrument_function)) void __raw_write_lock_irq(rwlock_t *lock) .......[ 194]: { .......[ 195]: do { arch_local_irq_disable(); do { } while (0); } while (0); .......[ 196]: __asm__ __volatile__("": : :"memory"); .......[ 197]: do { } while (0); .......[ 198]: do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); .......[ 199]: } .......[ 201]: static inline __attribute__((no_instrument_function)) void __raw_write_lock_bh(rwlock_t *lock) .......[ 202]: { .......[ 203]: local_bh_disable(); .......[ 204]: __asm__ __volatile__("": : :"memory"); .......[ 205]: do { } while (0); .......[ 206]: do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); .......[ 207]: } .......[ 209]: static inline __attribute__((no_instrument_function)) void __raw_write_lock(rwlock_t *lock) .......[ 210]: { .......[ 211]: __asm__ __volatile__("": : :"memory"); .......[ 212]: do { } while (0); .......[ 213]: do {(void)0; arch_write_lock(&(lock)->raw_lock); } while (0); .......[ 214]: } .......[ 218]: static inline __attribute__((no_instrument_function)) void __raw_write_unlock(rwlock_t *lock) .......[ 219]: { .......[ 220]: do { } while (0); .......[ 221]: do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 222]: __asm__ __volatile__("": : :"memory"); .......[ 223]: } .......[ 225]: static inline __attribute__((no_instrument_function)) void __raw_read_unlock(rwlock_t *lock) .......[ 226]: { .......[ 227]: do { } while (0); .......[ 228]: do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 229]: __asm__ __volatile__("": : :"memory"); .......[ 230]: } .......[ 232]: static inline __attribute__((no_instrument_function)) void .......[ 233]: __raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) .......[ 234]: { .......[ 235]: do { } while (0); .......[ 236]: do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 237]: 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); .......[ 238]: __asm__ __volatile__("": : :"memory"); .......[ 239]: } .......[ 241]: static inline __attribute__((no_instrument_function)) void __raw_read_unlock_irq(rwlock_t *lock) .......[ 242]: { .......[ 243]: do { } while (0); .......[ 244]: do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 245]: do { do { } while (0); arch_local_irq_enable(); } while (0); .......[ 246]: __asm__ __volatile__("": : :"memory"); .......[ 247]: } .......[ 249]: static inline __attribute__((no_instrument_function)) void __raw_read_unlock_bh(rwlock_t *lock) .......[ 250]: { .......[ 251]: do { } while (0); .......[ 252]: do {arch_read_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 253]: __asm__ __volatile__("": : :"memory"); .......[ 254]: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); .......[ 255]: } .......[ 257]: static inline __attribute__((no_instrument_function)) void __raw_write_unlock_irqrestore(rwlock_t *lock, .......[ 258]: unsigned long flags) .......[ 259]: { .......[ 260]: do { } while (0); .......[ 261]: do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 262]: 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); .......[ 263]: __asm__ __volatile__("": : :"memory"); .......[ 264]: } .......[ 266]: static inline __attribute__((no_instrument_function)) void __raw_write_unlock_irq(rwlock_t *lock) .......[ 267]: { .......[ 268]: do { } while (0); .......[ 269]: do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 270]: do { do { } while (0); arch_local_irq_enable(); } while (0); .......[ 271]: __asm__ __volatile__("": : :"memory"); .......[ 272]: } .......[ 274]: static inline __attribute__((no_instrument_function)) void __raw_write_unlock_bh(rwlock_t *lock) .......[ 275]: { .......[ 276]: do { } while (0); .......[ 277]: do {arch_write_unlock(&(lock)->raw_lock); (void)0; } while (0); .......[ 278]: __asm__ __volatile__("": : :"memory"); .......[ 279]: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); .......[ 280]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwlock_api_smp.h ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock_api_smp.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h .....[ 280]: static inline __attribute__((no_instrument_function)) raw_spinlock_t *spinlock_check(spinlock_t *lock) .....[ 281]: { .....[ 282]: return &lock->rlock; .....[ 283]: } .....[ 291]: static inline __attribute__((no_instrument_function)) void spin_lock(spinlock_t *lock) .....[ 292]: { .....[ 293]: _raw_spin_lock(&lock->rlock); .....[ 294]: } .....[ 296]: static inline __attribute__((no_instrument_function)) void spin_lock_bh(spinlock_t *lock) .....[ 297]: { .....[ 298]: _raw_spin_lock_bh(&lock->rlock); .....[ 299]: } .....[ 301]: static inline __attribute__((no_instrument_function)) int spin_trylock(spinlock_t *lock) .....[ 302]: { .....[ 303]: return (_raw_spin_trylock(&lock->rlock)); .....[ 304]: } .....[ 316]: static inline __attribute__((no_instrument_function)) void spin_lock_irq(spinlock_t *lock) .....[ 317]: { .....[ 318]: _raw_spin_lock_irq(&lock->rlock); .....[ 319]: } .....[ 331]: static inline __attribute__((no_instrument_function)) void spin_unlock(spinlock_t *lock) .....[ 332]: { .....[ 333]: __raw_spin_unlock(&lock->rlock); .....[ 334]: } .....[ 336]: static inline __attribute__((no_instrument_function)) void spin_unlock_bh(spinlock_t *lock) .....[ 337]: { .....[ 338]: _raw_spin_unlock_bh(&lock->rlock); .....[ 339]: } .....[ 341]: static inline __attribute__((no_instrument_function)) void spin_unlock_irq(spinlock_t *lock) .....[ 342]: { .....[ 343]: __raw_spin_unlock_irq(&lock->rlock); .....[ 344]: } .....[ 346]: static inline __attribute__((no_instrument_function)) void spin_unlock_irqrestore(spinlock_t *lock, unsigned \ ..... long flags) .....[ 347]: { .....[ 348]: do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); _raw_spin_unlock_irqrestore\ ..... (&lock->rlock, flags); } while (0); .....[ 349]: } .....[ 351]: static inline __attribute__((no_instrument_function)) int spin_trylock_bh(spinlock_t *lock) .....[ 352]: { .....[ 353]: return (_raw_spin_trylock_bh(&lock->rlock)); .....[ 354]: } .....[ 356]: static inline __attribute__((no_instrument_function)) int spin_trylock_irq(spinlock_t *lock) .....[ 357]: { .....[ 358]: 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; }); }); .....[ 359]: } .....[ 366]: static inline __attribute__((no_instrument_function)) void spin_unlock_wait(spinlock_t *lock) .....[ 367]: { .....[ 368]: arch_spin_unlock_wait(&(&lock->rlock)->raw_lock); .....[ 369]: } .....[ 371]: static inline __attribute__((no_instrument_function)) int spin_is_locked(spinlock_t *lock) .....[ 372]: { .....[ 373]: return arch_spin_is_locked(&(&lock->rlock)->raw_lock); .....[ 374]: } .....[ 376]: static inline __attribute__((no_instrument_function)) int spin_is_contended(spinlock_t *lock) .....[ 377]: { .....[ 378]: return arch_spin_is_contended(&(&lock->rlock)->raw_lock); .....[ 379]: } .....[ 381]: static inline __attribute__((no_instrument_function)) int spin_can_lock(spinlock_t *lock) .....[ 382]: { .....[ 383]: return (!arch_spin_is_locked(&(&lock->rlock)->raw_lock)); .....[ 384]: } .....[ 401]: extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/spinlock.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/wait.h ....[ 12]: typedef struct __wait_queue wait_queue_t; ....[ 13]: typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key); ....[ 14]: int default_wake_function(wait_queue_t *wait, unsigned mode, int flags, void *key); ....[ 16]: struct __wait_queue { ....[ 17]: unsigned int flags; ....[ 19]: void *private; ....[ 20]: wait_queue_func_t func; ....[ 21]: struct list_head task_list; ....[ 22]: }; ....[ 24]: struct wait_bit_key { ....[ 25]: void *flags; ....[ 26]: int bit_nr; ....[ 28]: }; ....[ 30]: struct wait_bit_queue { ....[ 31]: struct wait_bit_key key; ....[ 32]: wait_queue_t wait; ....[ 33]: }; ....[ 35]: struct __wait_queue_head { ....[ 36]: spinlock_t lock; ....[ 37]: struct list_head task_list; ....[ 38]: }; ....[ 39]: typedef struct __wait_queue_head wait_queue_head_t; ....[ 41]: struct task_struct; ....[ 68]: extern void __init_waitqueue_head(wait_queue_head_t *q, const char *name, struct lock_class_key *); ....[ 86]: static inline __attribute__((no_instrument_function)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct \ .... *p) ....[ 87]: { ....[ 88]: q->flags = 0; ....[ 89]: q->private = p; ....[ 90]: q->func = default_wake_function; ....[ 91]: } ....[ 93]: static inline __attribute__((no_instrument_function)) void ....[ 94]: init_waitqueue_func_entry(wait_queue_t *q, wait_queue_func_t func) ....[ 95]: { ....[ 96]: q->flags = 0; ....[ 97]: q->private = ((void *)0); ....[ 98]: q->func = func; ....[ 99]: } ....[ 101]: static inline __attribute__((no_instrument_function)) int waitqueue_active(wait_queue_head_t *q) ....[ 102]: { ....[ 103]: return !list_empty(&q->task_list); ....[ 104]: } ....[ 106]: extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); ....[ 107]: extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait); ....[ 108]: extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); ....[ 110]: static inline __attribute__((no_instrument_function)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t \ .... *new) ....[ 111]: { ....[ 112]: list_add(&new->task_list, &head->task_list); ....[ 113]: } ....[ 118]: static inline __attribute__((no_instrument_function)) void ....[ 119]: __add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait) ....[ 120]: { ....[ 121]: wait->flags |= 0x01; ....[ 122]: __add_wait_queue(q, wait); ....[ 123]: } ....[ 125]: static inline __attribute__((no_instrument_function)) void __add_wait_queue_tail(wait_queue_head_t *head, ....[ 126]: wait_queue_t *new) ....[ 127]: { ....[ 128]: list_add_tail(&new->task_list, &head->task_list); ....[ 129]: } ....[ 131]: static inline __attribute__((no_instrument_function)) void ....[ 132]: __add_wait_queue_tail_exclusive(wait_queue_head_t *q, wait_queue_t *wait) ....[ 133]: { ....[ 134]: wait->flags |= 0x01; ....[ 135]: __add_wait_queue_tail(q, wait); ....[ 136]: } ....[ 138]: static inline __attribute__((no_instrument_function)) void ....[ 139]: __remove_wait_queue(wait_queue_head_t *head, wait_queue_t *old) ....[ 140]: { ....[ 141]: list_del(&old->task_list); ....[ 142]: } ....[ 144]: void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key); ....[ 145]: void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key); ....[ 146]: void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode, int nr, void *key); ....[ 147]: void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr); ....[ 148]: void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr); ....[ 149]: void __wake_up_bit(wait_queue_head_t *, void *, int); ....[ 150]: int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); ....[ 151]: int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); ....[ 152]: void wake_up_bit(void *, int); ....[ 153]: void wake_up_atomic_t(atomic_t *); ....[ 154]: int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned); ....[ 155]: int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned); ....[ 156]: int out_of_line_wait_on_atomic_t(atomic_t *, int (*)(atomic_t *), unsigned); ....[ 157]: wait_queue_head_t *bit_waitqueue(void *, int); ....[ 812]: extern void sleep_on(wait_queue_head_t *q); ....[ 813]: extern long sleep_on_timeout(wait_queue_head_t *q, signed long timeout); ....[ 814]: extern void interruptible_sleep_on(wait_queue_head_t *q); ....[ 815]: extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, signed long timeout); ....[ 820]: void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state); ....[ 821]: void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state); ....[ 822]: long prepare_to_wait_event(wait_queue_head_t *q, wait_queue_t *wait, int state); ....[ 823]: void finish_wait(wait_queue_head_t *q, wait_queue_t *wait); ....[ 824]: void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait, unsigned int mode, void *key); ....[ 825]: int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); ....[ 826]: int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); ....[ 870]: static inline __attribute__((no_instrument_function)) int ....[ 871]: wait_on_bit(void *word, int bit, int (*action)(void *), unsigned mode) ....[ 872]: { ....[ 873]: if (!(__builtin_constant_p((bit)) ? constant_test_bit((bit), (word)) : variable_test_bit((bit), (word)))) ....[ 874]: return 0; ....[ 875]: return out_of_line_wait_on_bit(word, bit, action, mode); ....[ 876]: } ....[ 894]: static inline __attribute__((no_instrument_function)) int ....[ 895]: wait_on_bit_lock(void *word, int bit, int (*action)(void *), unsigned mode) ....[ 896]: { ....[ 897]: if (!test_and_set_bit(bit, word)) ....[ 898]: return 0; ....[ 899]: return out_of_line_wait_on_bit_lock(word, bit, action, mode); ....[ 900]: } ....[ 912]: static inline __attribute__((no_instrument_function)) ....[ 913]: int wait_on_atomic_t(atomic_t *val, int (*action)(atomic_t *), unsigned mode) ....[ 914]: { ....[ 915]: if (atomic_read(val) == 0) ....[ 916]: return 0; ....[ 917]: return out_of_line_wait_on_atomic_t(val, action, mode); ....[ 918]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/wait.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kdev_t.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kdev_t.h ....[ 23]: static inline __attribute__((no_instrument_function)) int old_valid_dev(dev_t dev) ....[ 24]: { ....[ 25]: return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256; ....[ 26]: } ....[ 28]: static inline __attribute__((no_instrument_function)) u16 old_encode_dev(dev_t dev) ....[ 29]: { ....[ 30]: return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1))); ....[ 31]: } ....[ 33]: static inline __attribute__((no_instrument_function)) dev_t old_decode_dev(u16 val) ....[ 34]: { ....[ 35]: return ((((val >> 8) & 255) << 20) | (val & 255)); ....[ 36]: } ....[ 38]: static inline __attribute__((no_instrument_function)) int new_valid_dev(dev_t dev) ....[ 39]: { ....[ 40]: return 1; ....[ 41]: } ....[ 43]: static inline __attribute__((no_instrument_function)) u32 new_encode_dev(dev_t dev) ....[ 44]: { ....[ 45]: unsigned major = ((unsigned int) ((dev) >> 20)); ....[ 46]: unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1))); ....[ 47]: return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12); ....[ 48]: } ....[ 50]: static inline __attribute__((no_instrument_function)) dev_t new_decode_dev(u32 dev) ....[ 51]: { ....[ 52]: unsigned major = (dev & 0xfff00) >> 8; ....[ 53]: unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00); ....[ 54]: return (((major) << 20) | (minor)); ....[ 55]: } ....[ 57]: static inline __attribute__((no_instrument_function)) int huge_valid_dev(dev_t dev) ....[ 58]: { ....[ 59]: return 1; ....[ 60]: } ....[ 62]: static inline __attribute__((no_instrument_function)) u64 huge_encode_dev(dev_t dev) ....[ 63]: { ....[ 64]: return new_encode_dev(dev); ....[ 65]: } ....[ 67]: static inline __attribute__((no_instrument_function)) dev_t huge_decode_dev(u64 dev) ....[ 68]: { ....[ 69]: return new_decode_dev(dev); ....[ 70]: } ....[ 72]: static inline __attribute__((no_instrument_function)) int sysv_valid_dev(dev_t dev) ....[ 73]: { ....[ 74]: return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18); ....[ 75]: } ....[ 77]: static inline __attribute__((no_instrument_function)) u32 sysv_encode_dev(dev_t dev) ....[ 78]: { ....[ 79]: return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18); ....[ 80]: } ....[ 82]: static inline __attribute__((no_instrument_function)) unsigned sysv_major(u32 dev) ....[ 83]: { ....[ 84]: return (dev >> 18) & 0x3fff; ....[ 85]: } ....[ 87]: static inline __attribute__((no_instrument_function)) unsigned sysv_minor(u32 dev) ....[ 88]: { ....[ 89]: return dev & 0x3ffff; ....[ 90]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kdev_t.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seqlock.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seqlock.h .......[ 46]: typedef struct seqcount { .......[ 47]: unsigned sequence; .......[ 51]: } seqcount_t; .......[ 53]: static inline __attribute__((no_instrument_function)) void __seqcount_init(seqcount_t *s, const char *name, .......[ 54]: struct lock_class_key *key) .......[ 55]: { .......[ 59]: do { (void)(name); (void)(key); } while (0); .......[ 60]: s->sequence = 0; .......[ 61]: } .......[ 106]: static inline __attribute__((no_instrument_function)) unsigned __read_seqcount_begin(const seqcount_t *s) .......[ 107]: { .......[ 108]: unsigned ret; .......[ 110]: repeat: .......[ 111]: ret = (*(volatile typeof(s->sequence) *)&(s->sequence)); .......[ 112]: if (__builtin_expect(!!(ret & 1), 0)) { .......[ 113]: cpu_relax(); .......[ 114]: goto repeat; .......[ 115]: } .......[ 116]: return ret; .......[ 117]: } .......[ 128]: static inline __attribute__((no_instrument_function)) unsigned raw_read_seqcount_begin(const seqcount_t *s\ ....... ) .......[ 129]: { .......[ 130]: unsigned ret = __read_seqcount_begin(s); .......[ 131]: __asm__ __volatile__("": : :"memory"); .......[ 132]: return ret; .......[ 133]: } .......[ 144]: static inline __attribute__((no_instrument_function)) unsigned read_seqcount_begin(const seqcount_t *s) .......[ 145]: { .......[ 146]: ; .......[ 147]: return raw_read_seqcount_begin(s); .......[ 148]: } .......[ 164]: static inline __attribute__((no_instrument_function)) unsigned raw_seqcount_begin(const seqcount_t *s) .......[ 165]: { .......[ 166]: unsigned ret = (*(volatile typeof(s->sequence) *)&(s->sequence)); .......[ 168]: ; .......[ 169]: __asm__ __volatile__("": : :"memory"); .......[ 170]: return ret & ~1; .......[ 171]: } .......[ 187]: static inline __attribute__((no_instrument_function)) int __read_seqcount_retry(const seqcount_t *s, unsigned \ ....... start) .......[ 188]: { .......[ 189]: return __builtin_expect(!!(s->sequence != start), 0); .......[ 190]: } .......[ 202]: static inline __attribute__((no_instrument_function)) int read_seqcount_retry(const seqcount_t *s, unsigned \ ....... start) .......[ 203]: { .......[ 204]: __asm__ __volatile__("": : :"memory"); .......[ 205]: return __read_seqcount_retry(s, start); .......[ 206]: } .......[ 210]: static inline __attribute__((no_instrument_function)) void raw_write_seqcount_begin(seqcount_t *s) .......[ 211]: { .......[ 212]: s->sequence++; .......[ 213]: __asm__ __volatile__("": : :"memory"); .......[ 214]: } .......[ 216]: static inline __attribute__((no_instrument_function)) void raw_write_seqcount_end(seqcount_t *s) .......[ 217]: { .......[ 218]: __asm__ __volatile__("": : :"memory"); .......[ 219]: s->sequence++; .......[ 220]: } .......[ 226]: static inline __attribute__((no_instrument_function)) void write_seqcount_begin_nested(seqcount_t *s, int subclass\ ....... ) .......[ 227]: { .......[ 228]: raw_write_seqcount_begin(s); .......[ 229]: do { } while (0); .......[ 230]: } .......[ 232]: static inline __attribute__((no_instrument_function)) void write_seqcount_begin(seqcount_t *s) .......[ 233]: { .......[ 234]: write_seqcount_begin_nested(s, 0); .......[ 235]: } .......[ 237]: static inline __attribute__((no_instrument_function)) void write_seqcount_end(seqcount_t *s) .......[ 238]: { .......[ 239]: do { } while (0); .......[ 240]: raw_write_seqcount_end(s); .......[ 241]: } .......[ 250]: static inline __attribute__((no_instrument_function)) void write_seqcount_barrier(seqcount_t *s) .......[ 251]: { .......[ 252]: __asm__ __volatile__("": : :"memory"); .......[ 253]: s->sequence+=2; .......[ 254]: } .......[ 256]: typedef struct { .......[ 257]: struct seqcount seqcount; .......[ 258]: spinlock_t lock; .......[ 259]: } seqlock_t; .......[ 283]: static inline __attribute__((no_instrument_function)) unsigned read_seqbegin(const seqlock_t *sl) .......[ 284]: { .......[ 285]: return read_seqcount_begin(&sl->seqcount); .......[ 286]: } .......[ 288]: static inline __attribute__((no_instrument_function)) unsigned read_seqretry(const seqlock_t *sl, unsigned start\ ....... ) .......[ 289]: { .......[ 290]: return read_seqcount_retry(&sl->seqcount, start); .......[ 291]: } .......[ 298]: static inline __attribute__((no_instrument_function)) void write_seqlock(seqlock_t *sl) .......[ 299]: { .......[ 300]: spin_lock(&sl->lock); .......[ 301]: write_seqcount_begin(&sl->seqcount); .......[ 302]: } .......[ 304]: static inline __attribute__((no_instrument_function)) void write_sequnlock(seqlock_t *sl) .......[ 305]: { .......[ 306]: write_seqcount_end(&sl->seqcount); .......[ 307]: spin_unlock(&sl->lock); .......[ 308]: } .......[ 310]: static inline __attribute__((no_instrument_function)) void write_seqlock_bh(seqlock_t *sl) .......[ 311]: { .......[ 312]: spin_lock_bh(&sl->lock); .......[ 313]: write_seqcount_begin(&sl->seqcount); .......[ 314]: } .......[ 316]: static inline __attribute__((no_instrument_function)) void write_sequnlock_bh(seqlock_t *sl) .......[ 317]: { .......[ 318]: write_seqcount_end(&sl->seqcount); .......[ 319]: spin_unlock_bh(&sl->lock); .......[ 320]: } .......[ 322]: static inline __attribute__((no_instrument_function)) void write_seqlock_irq(seqlock_t *sl) .......[ 323]: { .......[ 324]: spin_lock_irq(&sl->lock); .......[ 325]: write_seqcount_begin(&sl->seqcount); .......[ 326]: } .......[ 328]: static inline __attribute__((no_instrument_function)) void write_sequnlock_irq(seqlock_t *sl) .......[ 329]: { .......[ 330]: write_seqcount_end(&sl->seqcount); .......[ 331]: spin_unlock_irq(&sl->lock); .......[ 332]: } .......[ 334]: static inline __attribute__((no_instrument_function)) unsigned long __write_seqlock_irqsave(seqlock_t *sl) .......[ 335]: { .......[ 336]: unsigned long flags; .......[ 338]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _raw_spin_lock_irqsave\ ....... (spinlock_check(&sl->lock)); } while (0); } while (0); .......[ 339]: write_seqcount_begin(&sl->seqcount); .......[ 340]: return flags; .......[ 341]: } .......[ 346]: static inline __attribute__((no_instrument_function)) void .......[ 347]: write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags) .......[ 348]: { .......[ 349]: write_seqcount_end(&sl->seqcount); .......[ 350]: spin_unlock_irqrestore(&sl->lock, flags); .......[ 351]: } .......[ 358]: static inline __attribute__((no_instrument_function)) void read_seqlock_excl(seqlock_t *sl) .......[ 359]: { .......[ 360]: spin_lock(&sl->lock); .......[ 361]: } .......[ 363]: static inline __attribute__((no_instrument_function)) void read_sequnlock_excl(seqlock_t *sl) .......[ 364]: { .......[ 365]: spin_unlock(&sl->lock); .......[ 366]: } .......[ 378]: static inline __attribute__((no_instrument_function)) void read_seqbegin_or_lock(seqlock_t *lock, int *seq) .......[ 379]: { .......[ 380]: if (!(*seq & 1)) .......[ 381]: *seq = read_seqbegin(lock); .......[ 382]: else .......[ 383]: read_seqlock_excl(lock); .......[ 384]: } .......[ 386]: static inline __attribute__((no_instrument_function)) int need_seqretry(seqlock_t *lock, int seq) .......[ 387]: { .......[ 388]: return !(seq & 1) && read_seqretry(lock, seq); .......[ 389]: } .......[ 391]: static inline __attribute__((no_instrument_function)) void done_seqretry(seqlock_t *lock, int seq) .......[ 392]: { .......[ 393]: if (seq & 1) .......[ 394]: read_sequnlock_excl(lock); .......[ 395]: } .......[ 397]: static inline __attribute__((no_instrument_function)) void read_seqlock_excl_bh(seqlock_t *sl) .......[ 398]: { .......[ 399]: spin_lock_bh(&sl->lock); .......[ 400]: } .......[ 402]: static inline __attribute__((no_instrument_function)) void read_sequnlock_excl_bh(seqlock_t *sl) .......[ 403]: { .......[ 404]: spin_unlock_bh(&sl->lock); .......[ 405]: } .......[ 407]: static inline __attribute__((no_instrument_function)) void read_seqlock_excl_irq(seqlock_t *sl) .......[ 408]: { .......[ 409]: spin_lock_irq(&sl->lock); .......[ 410]: } .......[ 412]: static inline __attribute__((no_instrument_function)) void read_sequnlock_excl_irq(seqlock_t *sl) .......[ 413]: { .......[ 414]: spin_unlock_irq(&sl->lock); .......[ 415]: } .......[ 417]: static inline __attribute__((no_instrument_function)) unsigned long __read_seqlock_excl_irqsave(seqlock_t \ ....... *sl) .......[ 418]: { .......[ 419]: unsigned long flags; .......[ 421]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _raw_spin_lock_irqsave\ ....... (spinlock_check(&sl->lock)); } while (0); } while (0); .......[ 422]: return flags; .......[ 423]: } .......[ 428]: static inline __attribute__((no_instrument_function)) void .......[ 429]: read_sequnlock_excl_irqrestore(seqlock_t *sl, unsigned long flags) .......[ 430]: { .......[ 431]: spin_unlock_irqrestore(&sl->lock, flags); .......[ 432]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seqlock.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/completion.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/completion.h .......[ 25]: struct completion { .......[ 26]: unsigned int done; .......[ 27]: wait_queue_head_t wait; .......[ 28]: }; .......[ 73]: static inline __attribute__((no_instrument_function)) void init_completion(struct completion *x) .......[ 74]: { .......[ 75]: x->done = 0; .......[ 76]: do { static struct lock_class_key __key; __init_waitqueue_head((&x->wait), "&x->wait", &__key); } while (0); .......[ 77]: } .......[ 86]: static inline __attribute__((no_instrument_function)) void reinit_completion(struct completion *x) .......[ 87]: { .......[ 88]: x->done = 0; .......[ 89]: } .......[ 91]: extern void wait_for_completion(struct completion *); .......[ 92]: extern void wait_for_completion_io(struct completion *); .......[ 93]: extern int wait_for_completion_interruptible(struct completion *x); .......[ 94]: extern int wait_for_completion_killable(struct completion *x); .......[ 95]: extern unsigned long wait_for_completion_timeout(struct completion *x, .......[ 96]: unsigned long timeout); .......[ 97]: extern unsigned long wait_for_completion_io_timeout(struct completion *x, .......[ 98]: unsigned long timeout); .......[ 99]: extern long wait_for_completion_interruptible_timeout( .......[ 100]: struct completion *x, unsigned long timeout); .......[ 101]: extern long wait_for_completion_killable_timeout( .......[ 102]: struct completion *x, unsigned long timeout); .......[ 103]: extern bool try_wait_for_completion(struct completion *x); .......[ 104]: extern bool completion_done(struct completion *x); .......[ 106]: extern void complete(struct completion *); .......[ 107]: extern void complete_all(struct completion *); .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/completion.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debugobjects.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debugobjects.h .......[ 7]: enum debug_obj_state { .......[ 8]: ODEBUG_STATE_NONE, .......[ 9]: ODEBUG_STATE_INIT, .......[ 10]: ODEBUG_STATE_INACTIVE, .......[ 11]: ODEBUG_STATE_ACTIVE, .......[ 12]: ODEBUG_STATE_DESTROYED, .......[ 13]: ODEBUG_STATE_NOTAVAILABLE, .......[ 14]: ODEBUG_STATE_MAX, .......[ 15]: }; .......[ 17]: struct debug_obj_descr; .......[ 27]: struct debug_obj { .......[ 28]: struct hlist_node node; .......[ 29]: enum debug_obj_state state; .......[ 30]: unsigned int astate; .......[ 31]: void *object; .......[ 32]: struct debug_obj_descr *descr; .......[ 33]: }; .......[ 52]: struct debug_obj_descr { .......[ 53]: const char *name; .......[ 54]: void *(*debug_hint) (void *addr); .......[ 55]: int (*fixup_init) (void *addr, enum debug_obj_state state); .......[ 56]: int (*fixup_activate) (void *addr, enum debug_obj_state state); .......[ 57]: int (*fixup_destroy) (void *addr, enum debug_obj_state state); .......[ 58]: int (*fixup_free) (void *addr, enum debug_obj_state state); .......[ 59]: int (*fixup_assert_init)(void *addr, enum debug_obj_state state); .......[ 60]: }; .......[ 84]: static inline __attribute__((no_instrument_function)) void .......[ 85]: debug_object_init (void *addr, struct debug_obj_descr *descr) { } .......[ 86]: static inline __attribute__((no_instrument_function)) void .......[ 87]: debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr) { } .......[ 88]: static inline __attribute__((no_instrument_function)) int .......[ 89]: debug_object_activate (void *addr, struct debug_obj_descr *descr) { return 0; } .......[ 90]: static inline __attribute__((no_instrument_function)) void .......[ 91]: debug_object_deactivate(void *addr, struct debug_obj_descr *descr) { } .......[ 92]: static inline __attribute__((no_instrument_function)) void .......[ 93]: debug_object_destroy (void *addr, struct debug_obj_descr *descr) { } .......[ 94]: static inline __attribute__((no_instrument_function)) void .......[ 95]: debug_object_free (void *addr, struct debug_obj_descr *descr) { } .......[ 96]: static inline __attribute__((no_instrument_function)) void .......[ 97]: debug_object_assert_init(void *addr, struct debug_obj_descr *descr) { } .......[ 99]: static inline __attribute__((no_instrument_function)) void debug_objects_early_init(void) { } .......[ 100]: static inline __attribute__((no_instrument_function)) void debug_objects_mem_init(void) { } .......[ 106]: static inline __attribute__((no_instrument_function)) void .......[ 107]: debug_check_no_obj_freed(const void *address, unsigned long size) { } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debugobjects.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......[ 53]: extern void rcutorture_record_test_transition(void); ......[ 54]: extern void rcutorture_record_progress(unsigned long vernum); ......[ 55]: extern void do_trace_rcu_torture_read(const char *rcutorturename, ......[ 56]: struct callback_head *rhp, ......[ 57]: unsigned long secs, ......[ 58]: unsigned long c_old, ......[ 59]: unsigned long c); ......[ 152]: extern void call_rcu_bh(struct callback_head *head, ......[ 153]: void (*func)(struct callback_head *head)); ......[ 174]: extern void call_rcu_sched(struct callback_head *head, ......[ 175]: void (*func)(struct callback_head *rcu)); ......[ 177]: extern void synchronize_sched(void); ......[ 196]: static inline __attribute__((no_instrument_function)) void __rcu_read_lock(void) ......[ 197]: { ......[ 198]: __asm__ __volatile__("": : :"memory"); ......[ 199]: } ......[ 201]: static inline __attribute__((no_instrument_function)) void __rcu_read_unlock(void) ......[ 202]: { ......[ 203]: __asm__ __volatile__("": : :"memory"); ......[ 204]: } ......[ 206]: static inline __attribute__((no_instrument_function)) void synchronize_rcu(void) ......[ 207]: { ......[ 208]: synchronize_sched(); ......[ 209]: } ......[ 211]: static inline __attribute__((no_instrument_function)) int rcu_preempt_depth(void) ......[ 212]: { ......[ 213]: return 0; ......[ 214]: } ......[ 219]: extern void rcu_init(void); ......[ 220]: extern void rcu_sched_qs(int cpu); ......[ 221]: extern void rcu_bh_qs(int cpu); ......[ 222]: extern void rcu_check_callbacks(int cpu, int user); ......[ 223]: struct notifier_block; ......[ 224]: extern void rcu_idle_enter(void); ......[ 225]: extern void rcu_idle_exit(void); ......[ 226]: extern void rcu_irq_enter(void); ......[ 227]: extern void rcu_irq_exit(void); ......[ 233]: static inline __attribute__((no_instrument_function)) void rcu_user_enter(void) { } ......[ 234]: static inline __attribute__((no_instrument_function)) void rcu_user_exit(void) { } ......[ 235]: static inline __attribute__((no_instrument_function)) void rcu_user_hooks_switch(struct task_struct *prev, ......[ 236]: struct task_struct *next) { } ......[ 265]: extern bool __rcu_is_watching(void); ......[ 273]: typedef void call_rcu_func_t(struct callback_head *head, ......[ 274]: void (*func)(struct callback_head *head)); ......[ 275]: void wait_rcu_gp(call_rcu_func_t crf); .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcutree.h .......[ 33]: extern void rcu_note_context_switch(int cpu); .......[ 34]: extern int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies); .......[ 35]: extern void rcu_cpu_stall_reset(void); .......[ 42]: static inline __attribute__((no_instrument_function)) void rcu_virt_note_context_switch(int cpu) .......[ 43]: { .......[ 44]: rcu_note_context_switch(cpu); .......[ 45]: } .......[ 47]: extern void synchronize_rcu_bh(void); .......[ 48]: extern void synchronize_sched_expedited(void); .......[ 49]: extern void synchronize_rcu_expedited(void); .......[ 51]: void kfree_call_rcu(struct callback_head *head, void (*func)(struct callback_head *rcu)); .......[ 69]: static inline __attribute__((no_instrument_function)) void synchronize_rcu_bh_expedited(void) .......[ 70]: { .......[ 71]: synchronize_sched_expedited(); .......[ 72]: } .......[ 74]: extern void rcu_barrier(void); .......[ 75]: extern void rcu_barrier_bh(void); .......[ 76]: extern void rcu_barrier_sched(void); .......[ 78]: extern unsigned long rcutorture_testseq; .......[ 79]: extern unsigned long rcutorture_vernum; .......[ 80]: extern long rcu_batches_completed(void); .......[ 81]: extern long rcu_batches_completed_bh(void); .......[ 82]: extern long rcu_batches_completed_sched(void); .......[ 84]: extern void rcu_force_quiescent_state(void); .......[ 85]: extern void rcu_bh_force_quiescent_state(void); .......[ 86]: extern void rcu_sched_force_quiescent_state(void); .......[ 88]: extern void exit_rcu(void); .......[ 90]: extern void rcu_scheduler_starting(void); .......[ 91]: extern int rcu_scheduler_active __attribute__((__section__(".data..read_mostly"))); .......[ 93]: extern bool rcu_is_watching(void); .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcutree.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h ......[ 295]: static inline __attribute__((no_instrument_function)) void init_rcu_head_on_stack(struct callback_head *head\ ...... ) ......[ 296]: { ......[ 297]: } ......[ 299]: static inline __attribute__((no_instrument_function)) void destroy_rcu_head_on_stack(struct callback_head \ ...... *head) ......[ 300]: { ......[ 301]: } ......[ 307]: static inline __attribute__((no_instrument_function)) bool rcu_lockdep_current_cpu_online(void) ......[ 308]: { ......[ 309]: return 1; ......[ 310]: } ......[ 425]: static inline __attribute__((no_instrument_function)) int rcu_read_lock_held(void) ......[ 426]: { ......[ 427]: return 1; ......[ 428]: } ......[ 430]: static inline __attribute__((no_instrument_function)) int rcu_read_lock_bh_held(void) ......[ 431]: { ......[ 432]: return 1; ......[ 433]: } ......[ 441]: static inline __attribute__((no_instrument_function)) int rcu_read_lock_sched_held(void) ......[ 442]: { ......[ 443]: return 1; ......[ 444]: } ......[ 769]: static inline __attribute__((no_instrument_function)) void rcu_read_lock(void) ......[ 770]: { ......[ 771]: __rcu_read_lock(); ......[ 772]: (void)0; ......[ 773]: do { } while (0); ......[ 775]: do { } while (0); ......[ 776]: } ......[ 793]: static inline __attribute__((no_instrument_function)) void rcu_read_unlock(void) ......[ 794]: { ......[ 796]: do { } while (0); ......[ 797]: do { } while (0); ......[ 798]: (void)0; ......[ 799]: __rcu_read_unlock(); ......[ 800]: } ......[ 819]: static inline __attribute__((no_instrument_function)) void rcu_read_lock_bh(void) ......[ 820]: { ......[ 821]: local_bh_disable(); ......[ 822]: (void)0; ......[ 823]: do { } while (0); ......[ 825]: do { } while (0); ......[ 826]: } ......[ 833]: static inline __attribute__((no_instrument_function)) void rcu_read_unlock_bh(void) ......[ 834]: { ......[ 836]: do { } while (0); ......[ 837]: do { } while (0); ......[ 838]: (void)0; ......[ 839]: local_bh_enable(); ......[ 840]: } ......[ 855]: static inline __attribute__((no_instrument_function)) void rcu_read_lock_sched(void) ......[ 856]: { ......[ 857]: __asm__ __volatile__("": : :"memory"); ......[ 858]: (void)0; ......[ 859]: do { } while (0); ......[ 861]: do { } while (0); ......[ 862]: } ......[ 865]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void rcu_read_lock_sched_notrace\ ...... (void) ......[ 866]: { ......[ 867]: __asm__ __volatile__("": : :"memory"); ......[ 868]: (void)0; ......[ 869]: } ......[ 876]: static inline __attribute__((no_instrument_function)) void rcu_read_unlock_sched(void) ......[ 877]: { ......[ 879]: do { } while (0); ......[ 880]: do { } while (0); ......[ 881]: (void)0; ......[ 882]: __asm__ __volatile__("": : :"memory"); ......[ 883]: } ......[ 886]: static inline __attribute__((no_instrument_function)) __attribute__((no_instrument_function)) void rcu_read_unlock_sched_notrace\ ...... (void) ......[ 887]: { ......[ 888]: (void)0; ......[ 889]: __asm__ __volatile__("": : :"memory"); ......[ 890]: } ......[ 1010]: static inline __attribute__((no_instrument_function)) bool rcu_is_nocb_cpu(int cpu) { return false; } ......[ 1020]: static inline __attribute__((no_instrument_function)) bool rcu_sys_is_idle(void) ......[ 1021]: { ......[ 1022]: return false; ......[ 1023]: } ......[ 1025]: static inline __attribute__((no_instrument_function)) void rcu_sysidle_force_exit(void) ......[ 1026]: { ......[ 1027]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rcupdate.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist.h .....[ 30]: static inline __attribute__((no_instrument_function)) void INIT_LIST_HEAD_RCU(struct list_head *list) .....[ 31]: { .....[ 32]: (*(volatile typeof(list->next) *)&(list->next)) = list; .....[ 33]: (*(volatile typeof(list->prev) *)&(list->prev)) = list; .....[ 34]: } .....[ 49]: static inline __attribute__((no_instrument_function)) void __list_add_rcu(struct list_head *new, .....[ 50]: struct list_head *prev, struct list_head *next) .....[ 51]: { .....[ 52]: new->next = next; .....[ 53]: new->prev = prev; .....[ 54]: do { __asm__ __volatile__("": : :"memory"); (((*((struct list_head **)(&(prev)->next))))) = (typeof(*(new)) *)(\ ..... (new)); } while (0); .....[ 55]: next->prev = new; .....[ 56]: } .....[ 78]: static inline __attribute__((no_instrument_function)) void list_add_rcu(struct list_head *new, struct list_head \ ..... *head) .....[ 79]: { .....[ 80]: __list_add_rcu(new, head, head->next); .....[ 81]: } .....[ 99]: static inline __attribute__((no_instrument_function)) void list_add_tail_rcu(struct list_head *new, .....[ 100]: struct list_head *head) .....[ 101]: { .....[ 102]: __list_add_rcu(new, head->prev, head); .....[ 103]: } .....[ 129]: static inline __attribute__((no_instrument_function)) void list_del_rcu(struct list_head *entry) .....[ 130]: { .....[ 131]: __list_del_entry(entry); .....[ 132]: entry->prev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 133]: } .....[ 155]: static inline __attribute__((no_instrument_function)) void hlist_del_init_rcu(struct hlist_node *n) .....[ 156]: { .....[ 157]: if (!hlist_unhashed(n)) { .....[ 158]: __hlist_del(n); .....[ 159]: n->pprev = ((void *)0); .....[ 160]: } .....[ 161]: } .....[ 171]: static inline __attribute__((no_instrument_function)) void list_replace_rcu(struct list_head *old, .....[ 172]: struct list_head *new) .....[ 173]: { .....[ 174]: new->next = old->next; .....[ 175]: new->prev = old->prev; .....[ 176]: do { __asm__ __volatile__("": : :"memory"); (((*((struct list_head **)(&(new->prev)->next))))) = (typeof(*(new\ ..... )) *)((new)); } while (0); .....[ 177]: new->next->prev = new; .....[ 178]: old->prev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 179]: } .....[ 198]: static inline __attribute__((no_instrument_function)) void list_splice_init_rcu(struct list_head *list, .....[ 199]: struct list_head *head, .....[ 200]: void (*sync)(void)) .....[ 201]: { .....[ 202]: struct list_head *first = list->next; .....[ 203]: struct list_head *last = list->prev; .....[ 204]: struct list_head *at = head->next; .....[ 206]: if (list_empty(list)) .....[ 207]: return; .....[ 215]: INIT_LIST_HEAD_RCU(list); .....[ 224]: sync(); .....[ 234]: last->next = at; .....[ 235]: do { __asm__ __volatile__("": : :"memory"); (((*((struct list_head **)(&(head)->next))))) = (typeof(*(first)) *\ ..... )((first)); } while (0); .....[ 236]: first->prev = head; .....[ 237]: at->prev = last; .....[ 238]: } .....[ 342]: static inline __attribute__((no_instrument_function)) void hlist_del_rcu(struct hlist_node *n) .....[ 343]: { .....[ 344]: __hlist_del(n); .....[ 345]: n->pprev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 346]: } .....[ 355]: static inline __attribute__((no_instrument_function)) void hlist_replace_rcu(struct hlist_node *old, .....[ 356]: struct hlist_node *new) .....[ 357]: { .....[ 358]: struct hlist_node *next = old->next; .....[ 360]: new->next = next; .....[ 361]: new->pprev = old->pprev; .....[ 362]: do { __asm__ __volatile__("": : :"memory"); ((*(struct hlist_node **)new->pprev)) = (typeof(*(new)) *)((new)); } \ ..... while (0); .....[ 363]: if (next) .....[ 364]: new->next->pprev = &new->next; .....[ 365]: old->pprev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 366]: } .....[ 394]: static inline __attribute__((no_instrument_function)) void hlist_add_head_rcu(struct hlist_node *n, .....[ 395]: struct hlist_head *h) .....[ 396]: { .....[ 397]: struct hlist_node *first = h->first; .....[ 399]: n->next = first; .....[ 400]: n->pprev = &h->first; .....[ 401]: do { __asm__ __volatile__("": : :"memory"); (((*((struct hlist_node **)(&(h)->first))))) = (typeof(*(n)) *)((n)\ ..... ); } while (0); .....[ 402]: if (first) .....[ 403]: first->pprev = &n->next; .....[ 404]: } .....[ 424]: static inline __attribute__((no_instrument_function)) void hlist_add_before_rcu(struct hlist_node *n, .....[ 425]: struct hlist_node *next) .....[ 426]: { .....[ 427]: n->pprev = next->pprev; .....[ 428]: n->next = next; .....[ 429]: do { __asm__ __volatile__("": : :"memory"); (((*((struct hlist_node **)((n)->pprev))))) = (typeof(*(n)) *)((n))\ ..... ; } while (0); .....[ 430]: next->pprev = &n->next; .....[ 431]: } .....[ 451]: static inline __attribute__((no_instrument_function)) void hlist_add_after_rcu(struct hlist_node *prev, .....[ 452]: struct hlist_node *n) .....[ 453]: { .....[ 454]: n->next = prev->next; .....[ 455]: n->pprev = &prev->next; .....[ 456]: do { __asm__ __volatile__("": : :"memory"); (((*((struct hlist_node **)(&(prev)->next))))) = (typeof(*(n)) *)((\ ..... n)); } while (0); .....[ 457]: if (n->next) .....[ 458]: n->next->pprev = &n->next; .....[ 459]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist_bl.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist_bl.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_bl.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_bl.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bit_spinlock.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bit_spinlock.h .......[ 15]: static inline __attribute__((no_instrument_function)) void bit_spin_lock(int bitnum, unsigned long *addr) .......[ 16]: { .......[ 24]: __asm__ __volatile__("": : :"memory"); .......[ 26]: while (__builtin_expect(!!(test_and_set_bit_lock(bitnum, addr)), 0)) { .......[ 27]: __asm__ __volatile__("": : :"memory"); .......[ 28]: do { .......[ 29]: cpu_relax(); .......[ 30]: } while ((__builtin_constant_p((bitnum)) ? constant_test_bit((bitnum), (addr)) : variable_test_bit((bitnum)\ ....... , (addr)))); .......[ 31]: __asm__ __volatile__("": : :"memory"); .......[ 32]: } .......[ 34]: (void)0; .......[ 35]: } .......[ 40]: static inline __attribute__((no_instrument_function)) int bit_spin_trylock(int bitnum, unsigned long *addr) .......[ 41]: { .......[ 42]: __asm__ __volatile__("": : :"memory"); .......[ 44]: if (__builtin_expect(!!(test_and_set_bit_lock(bitnum, addr)), 0)) { .......[ 45]: __asm__ __volatile__("": : :"memory"); .......[ 46]: return 0; .......[ 47]: } .......[ 49]: (void)0; .......[ 50]: return 1; .......[ 51]: } .......[ 56]: static inline __attribute__((no_instrument_function)) void bit_spin_unlock(int bitnum, unsigned long *addr) .......[ 57]: { .......[ 62]: clear_bit_unlock(bitnum, addr); .......[ 64]: __asm__ __volatile__("": : :"memory"); .......[ 65]: (void)0; .......[ 66]: } .......[ 73]: static inline __attribute__((no_instrument_function)) void __bit_spin_unlock(int bitnum, unsigned long *addr\ ....... ) .......[ 74]: { .......[ 79]: __clear_bit_unlock(bitnum, addr); .......[ 81]: __asm__ __volatile__("": : :"memory"); .......[ 82]: (void)0; .......[ 83]: } .......[ 88]: static inline __attribute__((no_instrument_function)) int bit_spin_is_locked(int bitnum, unsigned long *addr\ ....... ) .......[ 89]: { .......[ 91]: return (__builtin_constant_p((bitnum)) ? constant_test_bit((bitnum), (addr)) : variable_test_bit((bitnum), \ ....... (addr))); .......[ 97]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/bit_spinlock.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_bl.h ......[ 33]: struct hlist_bl_head { ......[ 34]: struct hlist_bl_node *first; ......[ 35]: }; ......[ 37]: struct hlist_bl_node { ......[ 38]: struct hlist_bl_node *next, **pprev; ......[ 39]: }; ......[ 43]: static inline __attribute__((no_instrument_function)) void INIT_HLIST_BL_NODE(struct hlist_bl_node *h) ......[ 44]: { ......[ 45]: h->next = ((void *)0); ......[ 46]: h->pprev = ((void *)0); ......[ 47]: } ......[ 51]: static inline __attribute__((no_instrument_function)) int hlist_bl_unhashed(const struct hlist_bl_node *h) ......[ 52]: { ......[ 53]: return !h->pprev; ......[ 54]: } ......[ 56]: static inline __attribute__((no_instrument_function)) struct hlist_bl_node *hlist_bl_first(struct hlist_bl_head \ ...... *h) ......[ 57]: { ......[ 58]: return (struct hlist_bl_node *) ......[ 59]: ((unsigned long)h->first & ~1UL); ......[ 60]: } ......[ 62]: static inline __attribute__((no_instrument_function)) void hlist_bl_set_first(struct hlist_bl_head *h, ......[ 63]: struct hlist_bl_node *n) ......[ 64]: { ......[ 65]: ; ......[ 67]: ; ......[ 68]: h->first = (struct hlist_bl_node *)((unsigned long)n | 1UL); ......[ 69]: } ......[ 71]: static inline __attribute__((no_instrument_function)) int hlist_bl_empty(const struct hlist_bl_head *h) ......[ 72]: { ......[ 73]: return !((unsigned long)h->first & ~1UL); ......[ 74]: } ......[ 76]: static inline __attribute__((no_instrument_function)) void hlist_bl_add_head(struct hlist_bl_node *n, ......[ 77]: struct hlist_bl_head *h) ......[ 78]: { ......[ 79]: struct hlist_bl_node *first = hlist_bl_first(h); ......[ 81]: n->next = first; ......[ 82]: if (first) ......[ 83]: first->pprev = &n->next; ......[ 84]: n->pprev = &h->first; ......[ 85]: hlist_bl_set_first(h, n); ......[ 86]: } ......[ 88]: static inline __attribute__((no_instrument_function)) void __hlist_bl_del(struct hlist_bl_node *n) ......[ 89]: { ......[ 90]: struct hlist_bl_node *next = n->next; ......[ 91]: struct hlist_bl_node **pprev = n->pprev; ......[ 93]: ; ......[ 96]: *pprev = (struct hlist_bl_node *) ......[ 97]: ((unsigned long)next | ......[ 98]: ((unsigned long)*pprev & 1UL)); ......[ 99]: if (next) ......[ 100]: next->pprev = pprev; ......[ 101]: } ......[ 103]: static inline __attribute__((no_instrument_function)) void hlist_bl_del(struct hlist_bl_node *n) ......[ 104]: { ......[ 105]: __hlist_bl_del(n); ......[ 106]: n->next = ((void *) 0x00100100 + (0xdead000000000000UL)); ......[ 107]: n->pprev = ((void *) 0x00200200 + (0xdead000000000000UL)); ......[ 108]: } ......[ 110]: static inline __attribute__((no_instrument_function)) void hlist_bl_del_init(struct hlist_bl_node *n) ......[ 111]: { ......[ 112]: if (!hlist_bl_unhashed(n)) { ......[ 113]: __hlist_bl_del(n); ......[ 114]: INIT_HLIST_BL_NODE(n); ......[ 115]: } ......[ 116]: } ......[ 118]: static inline __attribute__((no_instrument_function)) void hlist_bl_lock(struct hlist_bl_head *b) ......[ 119]: { ......[ 120]: bit_spin_lock(0, (unsigned long *)b); ......[ 121]: } ......[ 123]: static inline __attribute__((no_instrument_function)) void hlist_bl_unlock(struct hlist_bl_head *b) ......[ 124]: { ......[ 125]: __bit_spin_unlock(0, (unsigned long *)b); ......[ 126]: } ......[ 128]: static inline __attribute__((no_instrument_function)) bool hlist_bl_is_locked(struct hlist_bl_head *b) ......[ 129]: { ......[ 130]: return bit_spin_is_locked(0, (unsigned long *)b); ......[ 131]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_bl.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist_bl.h .....[ 10]: static inline __attribute__((no_instrument_function)) void hlist_bl_set_first_rcu(struct hlist_bl_head *h, .....[ 11]: struct hlist_bl_node *n) .....[ 12]: { .....[ 13]: ; .....[ 15]: ; .....[ 17]: do { __asm__ __volatile__("": : :"memory"); ((h->first)) = (typeof(*((struct hlist_bl_node *)((unsigned long)n | \ ..... 1UL))) *)(((struct hlist_bl_node *)((unsigned long)n | 1UL))); } while (0); .....[ 18]: } .....[ 20]: static inline __attribute__((no_instrument_function)) struct hlist_bl_node *hlist_bl_first_rcu(struct hlist_bl_head \ ..... *h) .....[ 21]: { .....[ 22]: return (struct hlist_bl_node *) .....[ 23]: ((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); .....[ 24]: } .....[ 46]: static inline __attribute__((no_instrument_function)) void hlist_bl_del_init_rcu(struct hlist_bl_node *n) .....[ 47]: { .....[ 48]: if (!hlist_bl_unhashed(n)) { .....[ 49]: __hlist_bl_del(n); .....[ 50]: n->pprev = ((void *)0); .....[ 51]: } .....[ 52]: } .....[ 73]: static inline __attribute__((no_instrument_function)) void hlist_bl_del_rcu(struct hlist_bl_node *n) .....[ 74]: { .....[ 75]: __hlist_bl_del(n); .....[ 76]: n->pprev = ((void *) 0x00200200 + (0xdead000000000000UL)); .....[ 77]: } .....[ 98]: static inline __attribute__((no_instrument_function)) void hlist_bl_add_head_rcu(struct hlist_bl_node *n, .....[ 99]: struct hlist_bl_head *h) .....[ 100]: { .....[ 101]: struct hlist_bl_node *first; .....[ 104]: first = hlist_bl_first(h); .....[ 106]: n->next = first; .....[ 107]: if (first) .....[ 108]: first->pprev = &n->next; .....[ 109]: n->pprev = &h->first; .....[ 112]: hlist_bl_set_first_rcu(h, n); .....[ 113]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rculist_bl.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockref.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockref.h .....[ 24]: struct lockref { .....[ 25]: union { .....[ 27]: __u64 __attribute__((aligned(8))) lock_count; .....[ 29]: struct { .....[ 30]: spinlock_t lock; .....[ 31]: unsigned int count; .....[ 32]: }; .....[ 33]: }; .....[ 34]: }; .....[ 36]: extern void lockref_get(struct lockref *); .....[ 37]: extern int lockref_get_not_zero(struct lockref *); .....[ 38]: extern int lockref_get_or_lock(struct lockref *); .....[ 39]: extern int lockref_put_or_lock(struct lockref *); .....[ 41]: extern void lockref_mark_dead(struct lockref *); .....[ 42]: extern int lockref_get_not_dead(struct lockref *); .....[ 45]: static inline __attribute__((no_instrument_function)) int __lockref_is_dead(const struct lockref *l) .....[ 46]: { .....[ 47]: return ((int)l->count < 0); .....[ 48]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/lockref.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ....[ 14]: struct nameidata; ....[ 15]: struct path; ....[ 16]: struct vfsmount; ....[ 45]: struct qstr { ....[ 46]: union { ....[ 47]: struct { ....[ 48]: u32 hash; u32 len;; ....[ 49]: }; ....[ 50]: u64 hash_len; ....[ 51]: }; ....[ 52]: const unsigned char *name; ....[ 53]: }; ....[ 59]: struct dentry_stat_t { ....[ 60]: long nr_dentry; ....[ 61]: long nr_unused; ....[ 62]: long age_limit; ....[ 63]: long want_pages; ....[ 64]: long dummy[2]; ....[ 65]: }; ....[ 66]: extern struct dentry_stat_t dentry_stat; ....[ 73]: static inline __attribute__((no_instrument_function)) unsigned long ....[ 74]: partial_name_hash(unsigned long c, unsigned long prevhash) ....[ 75]: { ....[ 76]: return (prevhash + (c << 4) + (c >> 4)) * 11; ....[ 77]: } ....[ 83]: static inline __attribute__((no_instrument_function)) unsigned long end_name_hash(unsigned long hash) ....[ 84]: { ....[ 85]: return (unsigned int) hash; ....[ 86]: } ....[ 89]: extern unsigned int full_name_hash(const unsigned char *, unsigned int); ....[ 108]: struct dentry { ....[ 110]: unsigned int d_flags; ....[ 111]: seqcount_t d_seq; ....[ 112]: struct hlist_bl_node d_hash; ....[ 113]: struct dentry *d_parent; ....[ 114]: struct qstr d_name; ....[ 115]: struct inode *d_inode; ....[ 117]: unsigned char d_iname[32]; ....[ 120]: struct lockref d_lockref; ....[ 121]: const struct dentry_operations *d_op; ....[ 122]: struct super_block *d_sb; ....[ 123]: unsigned long d_time; ....[ 124]: void *d_fsdata; ....[ 126]: struct list_head d_lru; ....[ 130]: union { ....[ 131]: struct list_head d_child; ....[ 132]: struct callback_head d_rcu; ....[ 133]: } d_u; ....[ 134]: struct list_head d_subdirs; ....[ 135]: struct hlist_node d_alias; ....[ 136]: }; ....[ 144]: enum dentry_d_lock_class ....[ 145]: { ....[ 146]: DENTRY_D_LOCK_NORMAL, ....[ 147]: DENTRY_D_LOCK_NESTED ....[ 148]: }; ....[ 150]: struct dentry_operations { ....[ 151]: int (*d_revalidate)(struct dentry *, unsigned int); ....[ 152]: int (*d_weak_revalidate)(struct dentry *, unsigned int); ....[ 153]: int (*d_hash)(const struct dentry *, struct qstr *); ....[ 154]: int (*d_compare)(const struct dentry *, const struct dentry *, ....[ 155]: unsigned int, const char *, const struct qstr *); ....[ 156]: int (*d_delete)(const struct dentry *); ....[ 157]: void (*d_release)(struct dentry *); ....[ 158]: void (*d_prune)(struct dentry *); ....[ 159]: void (*d_iput)(struct dentry *, struct inode *); ....[ 160]: char *(*d_dname)(struct dentry *, char *, int); ....[ 161]: struct vfsmount *(*d_automount)(struct path *); ....[ 162]: int (*d_manage)(struct dentry *, bool); ....[ 163]: } __attribute__((__aligned__((1 << (6))))); ....[ 224]: extern seqlock_t rename_lock; ....[ 226]: static inline __attribute__((no_instrument_function)) int dname_external(const struct dentry *dentry) ....[ 227]: { ....[ 228]: return dentry->d_name.name != dentry->d_iname; ....[ 229]: } ....[ 234]: extern void d_instantiate(struct dentry *, struct inode *); ....[ 235]: extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *); ....[ 236]: extern struct dentry * d_materialise_unique(struct dentry *, struct inode *); ....[ 237]: extern int d_instantiate_no_diralias(struct dentry *, struct inode *); ....[ 238]: extern void __d_drop(struct dentry *dentry); ....[ 239]: extern void d_drop(struct dentry *dentry); ....[ 240]: extern void d_delete(struct dentry *); ....[ 241]: extern void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op); ....[ 244]: extern struct dentry * d_alloc(struct dentry *, const struct qstr *); ....[ 245]: extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *); ....[ 246]: extern struct dentry * d_splice_alias(struct inode *, struct dentry *); ....[ 247]: extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *); ....[ 248]: extern struct dentry *d_find_any_alias(struct inode *inode); ....[ 249]: extern struct dentry * d_obtain_alias(struct inode *); ....[ 250]: extern void shrink_dcache_sb(struct super_block *); ....[ 251]: extern void shrink_dcache_parent(struct dentry *); ....[ 252]: extern void shrink_dcache_for_umount(struct super_block *); ....[ 253]: extern int d_invalidate(struct dentry *); ....[ 256]: extern struct dentry * d_make_root(struct inode *); ....[ 259]: extern void d_genocide(struct dentry *); ....[ 261]: extern void d_tmpfile(struct dentry *, struct inode *); ....[ 263]: extern struct dentry *d_find_alias(struct inode *); ....[ 264]: extern void d_prune_aliases(struct inode *); ....[ 267]: extern int have_submounts(struct dentry *); ....[ 268]: extern int check_submounts_and_drop(struct dentry *); ....[ 273]: extern void d_rehash(struct dentry *); ....[ 284]: static inline __attribute__((no_instrument_function)) void d_add(struct dentry *entry, struct inode *inode) ....[ 285]: { ....[ 286]: d_instantiate(entry, inode); ....[ 287]: d_rehash(entry); ....[ 288]: } ....[ 298]: static inline __attribute__((no_instrument_function)) struct dentry *d_add_unique(struct dentry *entry, struct \ .... inode *inode) ....[ 299]: { ....[ 300]: struct dentry *res; ....[ 302]: res = d_instantiate_unique(entry, inode); ....[ 303]: d_rehash(res != ((void *)0) ? res : entry); ....[ 304]: return res; ....[ 305]: } ....[ 307]: extern void dentry_update_name_case(struct dentry *, struct qstr *); ....[ 310]: extern void d_move(struct dentry *, struct dentry *); ....[ 311]: extern struct dentry *d_ancestor(struct dentry *, struct dentry *); ....[ 314]: extern struct dentry *d_lookup(const struct dentry *, const struct qstr *); ....[ 315]: extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); ....[ 316]: extern struct dentry *__d_lookup(const struct dentry *, const struct qstr *); ....[ 317]: extern struct dentry *__d_lookup_rcu(const struct dentry *parent, ....[ 318]: const struct qstr *name, unsigned *seq); ....[ 320]: static inline __attribute__((no_instrument_function)) unsigned d_count(const struct dentry *dentry) ....[ 321]: { ....[ 322]: return dentry->d_lockref.count; ....[ 323]: } ....[ 326]: extern int d_validate(struct dentry *, struct dentry *); ....[ 331]: extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); ....[ 332]: extern char *simple_dname(struct dentry *, char *, int); ....[ 334]: extern char *__d_path(const struct path *, const struct path *, char *, int); ....[ 335]: extern char *d_absolute_path(const struct path *, char *, int); ....[ 336]: extern char *d_path(const struct path *, char *, int); ....[ 337]: extern char *dentry_path_raw(struct dentry *, char *, int); ....[ 338]: extern char *dentry_path(struct dentry *, char *, int); ....[ 350]: static inline __attribute__((no_instrument_function)) struct dentry *dget_dlock(struct dentry *dentry) ....[ 351]: { ....[ 352]: if (dentry) ....[ 353]: dentry->d_lockref.count++; ....[ 354]: return dentry; ....[ 355]: } ....[ 357]: static inline __attribute__((no_instrument_function)) struct dentry *dget(struct dentry *dentry) ....[ 358]: { ....[ 359]: if (dentry) ....[ 360]: lockref_get(&dentry->d_lockref); ....[ 361]: return dentry; ....[ 362]: } ....[ 364]: extern struct dentry *dget_parent(struct dentry *dentry); ....[ 373]: static inline __attribute__((no_instrument_function)) int d_unhashed(const struct dentry *dentry) ....[ 374]: { ....[ 375]: return hlist_bl_unhashed(&dentry->d_hash); ....[ 376]: } ....[ 378]: static inline __attribute__((no_instrument_function)) int d_unlinked(const struct dentry *dentry) ....[ 379]: { ....[ 380]: return d_unhashed(dentry) && !((dentry) == (dentry)->d_parent); ....[ 381]: } ....[ 383]: static inline __attribute__((no_instrument_function)) int cant_mount(const struct dentry *dentry) ....[ 384]: { ....[ 385]: return (dentry->d_flags & 0x00000100); ....[ 386]: } ....[ 388]: static inline __attribute__((no_instrument_function)) void dont_mount(struct dentry *dentry) ....[ 389]: { ....[ 390]: spin_lock(&dentry->d_lockref.lock); ....[ 391]: dentry->d_flags |= 0x00000100; ....[ 392]: spin_unlock(&dentry->d_lockref.lock); ....[ 393]: } ....[ 395]: extern void dput(struct dentry *); ....[ 397]: static inline __attribute__((no_instrument_function)) bool d_managed(const struct dentry *dentry) ....[ 398]: { ....[ 399]: return dentry->d_flags & (0x00010000|0x00020000|0x00040000); ....[ 400]: } ....[ 402]: static inline __attribute__((no_instrument_function)) bool d_mountpoint(const struct dentry *dentry) ....[ 403]: { ....[ 404]: return dentry->d_flags & 0x00010000; ....[ 405]: } ....[ 410]: static inline __attribute__((no_instrument_function)) void __d_set_type(struct dentry *dentry, unsigned type\ .... ) ....[ 411]: { ....[ 412]: dentry->d_flags = (dentry->d_flags & ~0x00700000) | type; ....[ 413]: } ....[ 415]: static inline __attribute__((no_instrument_function)) void __d_clear_type(struct dentry *dentry) ....[ 416]: { ....[ 417]: __d_set_type(dentry, 0x00000000); ....[ 418]: } ....[ 420]: static inline __attribute__((no_instrument_function)) void d_set_type(struct dentry *dentry, unsigned type) ....[ 421]: { ....[ 422]: spin_lock(&dentry->d_lockref.lock); ....[ 423]: __d_set_type(dentry, type); ....[ 424]: spin_unlock(&dentry->d_lockref.lock); ....[ 425]: } ....[ 427]: static inline __attribute__((no_instrument_function)) unsigned __d_entry_type(const struct dentry *dentry) ....[ 428]: { ....[ 429]: return dentry->d_flags & 0x00700000; ....[ 430]: } ....[ 432]: static inline __attribute__((no_instrument_function)) bool d_is_directory(const struct dentry *dentry) ....[ 433]: { ....[ 434]: return __d_entry_type(dentry) == 0x00100000; ....[ 435]: } ....[ 437]: static inline __attribute__((no_instrument_function)) bool d_is_autodir(const struct dentry *dentry) ....[ 438]: { ....[ 439]: return __d_entry_type(dentry) == 0x00200000; ....[ 440]: } ....[ 442]: static inline __attribute__((no_instrument_function)) bool d_is_symlink(const struct dentry *dentry) ....[ 443]: { ....[ 444]: return __d_entry_type(dentry) == 0x00300000; ....[ 445]: } ....[ 447]: static inline __attribute__((no_instrument_function)) bool d_is_file(const struct dentry *dentry) ....[ 448]: { ....[ 449]: return __d_entry_type(dentry) == 0x00400000; ....[ 450]: } ....[ 452]: static inline __attribute__((no_instrument_function)) bool d_is_negative(const struct dentry *dentry) ....[ 453]: { ....[ 454]: return __d_entry_type(dentry) == 0x00000000; ....[ 455]: } ....[ 457]: static inline __attribute__((no_instrument_function)) bool d_is_positive(const struct dentry *dentry) ....[ 458]: { ....[ 459]: return !d_is_negative(dentry); ....[ 460]: } ....[ 462]: extern int sysctl_vfs_cache_pressure; ....[ 464]: static inline __attribute__((no_instrument_function)) unsigned long vfs_pressure_ratio(unsigned long val) ....[ 465]: { ....[ 466]: return ( { typeof(val) quot = (val) / (100); typeof(val) rem = (val) % (100); (quot * (sysctl_vfs_cache_pressure)) + ((\ .... rem * (sysctl_vfs_cache_pressure)) / (100)); } ); ....[ 467]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dcache.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/path.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/path.h ....[ 4]: struct dentry; ....[ 5]: struct vfsmount; ....[ 7]: struct path { ....[ 8]: struct vfsmount *mnt; ....[ 9]: struct dentry *dentry; ....[ 10]: }; ....[ 12]: extern void path_get(const struct path *); ....[ 13]: extern void path_put(const struct path *); ....[ 15]: static inline __attribute__((no_instrument_function)) int path_equal(const struct path *path1, const struct path \ .... *path2) ....[ 16]: { ....[ 17]: return path1->mnt == path2->mnt && path1->dentry == path2->dentry; ....[ 18]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/path.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/stat.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/stat.h .....[ 80]: struct stat { .....[ 81]: unsigned long st_dev; .....[ 82]: unsigned long st_ino; .....[ 83]: unsigned long st_nlink; .....[ 85]: unsigned int st_mode; .....[ 86]: unsigned int st_uid; .....[ 87]: unsigned int st_gid; .....[ 88]: unsigned int __pad0; .....[ 89]: unsigned long st_rdev; .....[ 90]: long st_size; .....[ 91]: long st_blksize; .....[ 92]: long st_blocks; .....[ 94]: unsigned long st_atime; .....[ 95]: unsigned long st_atime_nsec; .....[ 96]: unsigned long st_mtime; .....[ 97]: unsigned long st_mtime_nsec; .....[ 98]: unsigned long st_ctime; .....[ 99]: unsigned long st_ctime_nsec; .....[ 100]: long __attribute__((unused))[3]; .....[ 101]: }; .....[ 114]: struct __old_kernel_stat { .....[ 115]: unsigned short st_dev; .....[ 116]: unsigned short st_ino; .....[ 117]: unsigned short st_mode; .....[ 118]: unsigned short st_nlink; .....[ 119]: unsigned short st_uid; .....[ 120]: unsigned short st_gid; .....[ 121]: unsigned short st_rdev; .....[ 128]: unsigned int st_size; .....[ 129]: unsigned int st_atime; .....[ 130]: unsigned int st_mtime; .....[ 131]: unsigned int st_ctime; .....[ 133]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/stat.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/time.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/time.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/time.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/time.h ......[ 15]: struct timeval { ......[ 16]: __kernel_time_t tv_sec; ......[ 17]: __kernel_suseconds_t tv_usec; ......[ 18]: }; ......[ 20]: struct timezone { ......[ 21]: int tz_minuteswest; ......[ 22]: int tz_dsttime; ......[ 23]: }; ......[ 34]: struct itimerspec { ......[ 35]: struct timespec it_interval; ......[ 36]: struct timespec it_value; ......[ 37]: }; ......[ 39]: struct itimerval { ......[ 40]: struct timeval it_interval; ......[ 41]: struct timeval it_value; ......[ 42]: }; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/time.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/time.h .....[ 9]: extern struct timezone sys_tz; .....[ 22]: static inline __attribute__((no_instrument_function)) int timespec_equal(const struct timespec *a, .....[ 23]: const struct timespec *b) .....[ 24]: { .....[ 25]: return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); .....[ 26]: } .....[ 33]: static inline __attribute__((no_instrument_function)) int timespec_compare(const struct timespec *lhs, const \ ..... struct timespec *rhs) .....[ 34]: { .....[ 35]: if (lhs->tv_sec < rhs->tv_sec) .....[ 36]: return -1; .....[ 37]: if (lhs->tv_sec > rhs->tv_sec) .....[ 38]: return 1; .....[ 39]: return lhs->tv_nsec - rhs->tv_nsec; .....[ 40]: } .....[ 42]: static inline __attribute__((no_instrument_function)) int timeval_compare(const struct timeval *lhs, const struct \ ..... timeval *rhs) .....[ 43]: { .....[ 44]: if (lhs->tv_sec < rhs->tv_sec) .....[ 45]: return -1; .....[ 46]: if (lhs->tv_sec > rhs->tv_sec) .....[ 47]: return 1; .....[ 48]: return lhs->tv_usec - rhs->tv_usec; .....[ 49]: } .....[ 51]: extern unsigned long mktime(const unsigned int year, const unsigned int mon, .....[ 52]: const unsigned int day, const unsigned int hour, .....[ 53]: const unsigned int min, const unsigned int sec); .....[ 55]: extern void set_normalized_timespec(struct timespec *ts, time_t sec, s64 nsec); .....[ 62]: extern struct timespec timespec_add_safe(const struct timespec lhs, .....[ 63]: const struct timespec rhs); .....[ 66]: static inline __attribute__((no_instrument_function)) struct timespec timespec_add(struct timespec lhs, .....[ 67]: struct timespec rhs) .....[ 68]: { .....[ 69]: struct timespec ts_delta; .....[ 70]: set_normalized_timespec(&ts_delta, lhs.tv_sec + rhs.tv_sec, .....[ 71]: lhs.tv_nsec + rhs.tv_nsec); .....[ 72]: return ts_delta; .....[ 73]: } .....[ 78]: static inline __attribute__((no_instrument_function)) struct timespec timespec_sub(struct timespec lhs, .....[ 79]: struct timespec rhs) .....[ 80]: { .....[ 81]: struct timespec ts_delta; .....[ 82]: set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec, .....[ 83]: lhs.tv_nsec - rhs.tv_nsec); .....[ 84]: return ts_delta; .....[ 85]: } .....[ 97]: static inline __attribute__((no_instrument_function)) bool timespec_valid(const struct timespec *ts) .....[ 98]: { .....[ 100]: if (ts->tv_sec < 0) .....[ 101]: return false; .....[ 103]: if ((unsigned long)ts->tv_nsec >= 1000000000L) .....[ 104]: return false; .....[ 105]: return true; .....[ 106]: } .....[ 108]: static inline __attribute__((no_instrument_function)) bool timespec_valid_strict(const struct timespec *ts) .....[ 109]: { .....[ 110]: if (!timespec_valid(ts)) .....[ 111]: return false; .....[ 113]: if ((unsigned long long)ts->tv_sec >= (((s64)~((u64)1 << 63)) / 1000000000L)) .....[ 114]: return false; .....[ 115]: return true; .....[ 116]: } .....[ 118]: extern bool persistent_clock_exist; .....[ 120]: static inline __attribute__((no_instrument_function)) bool has_persistent_clock(void) .....[ 121]: { .....[ 122]: return persistent_clock_exist; .....[ 123]: } .....[ 125]: extern void read_persistent_clock(struct timespec *ts); .....[ 126]: extern void read_boot_clock(struct timespec *ts); .....[ 127]: extern int persistent_clock_is_local; .....[ 128]: extern int update_persistent_clock(struct timespec now); .....[ 129]: void timekeeping_init(void); .....[ 130]: extern int timekeeping_suspended; .....[ 132]: unsigned long get_seconds(void); .....[ 133]: struct timespec current_kernel_time(void); .....[ 134]: struct timespec __current_kernel_time(void); .....[ 135]: struct timespec get_monotonic_coarse(void); .....[ 136]: void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim, .....[ 137]: struct timespec *wtom, struct timespec *sleep); .....[ 138]: void timekeeping_inject_sleeptime(struct timespec *delta); .....[ 156]: extern void do_gettimeofday(struct timeval *tv); .....[ 157]: extern int do_settimeofday(const struct timespec *tv); .....[ 158]: extern int do_sys_settimeofday(const struct timespec *tv, .....[ 159]: const struct timezone *tz); .....[ 161]: extern long do_utimes(int dfd, const char *filename, struct timespec *times, int flags); .....[ 162]: struct itimerval; .....[ 163]: extern int do_setitimer(int which, struct itimerval *value, .....[ 164]: struct itimerval *ovalue); .....[ 165]: extern unsigned int alarm_setitimer(unsigned int seconds); .....[ 166]: extern int do_getitimer(int which, struct itimerval *value); .....[ 167]: extern int __getnstimeofday(struct timespec *tv); .....[ 168]: extern void getnstimeofday(struct timespec *tv); .....[ 169]: extern void getrawmonotonic(struct timespec *ts); .....[ 170]: extern void getnstime_raw_and_real(struct timespec *ts_raw, .....[ 171]: struct timespec *ts_real); .....[ 172]: extern void getboottime(struct timespec *ts); .....[ 173]: extern void monotonic_to_bootbased(struct timespec *ts); .....[ 174]: extern void get_monotonic_boottime(struct timespec *ts); .....[ 176]: extern struct timespec timespec_trunc(struct timespec t, unsigned gran); .....[ 177]: extern int timekeeping_valid_for_hres(void); .....[ 178]: extern u64 timekeeping_max_deferment(void); .....[ 179]: extern int timekeeping_inject_offset(struct timespec *ts); .....[ 180]: extern s32 timekeeping_get_tai_offset(void); .....[ 181]: extern void timekeeping_set_tai_offset(s32 tai_offset); .....[ 182]: extern void timekeeping_clocktai(struct timespec *ts); .....[ 184]: struct tms; .....[ 185]: extern void do_sys_times(struct tms *); .....[ 191]: struct tm { .....[ 196]: int tm_sec; .....[ 198]: int tm_min; .....[ 200]: int tm_hour; .....[ 202]: int tm_mday; .....[ 204]: int tm_mon; .....[ 206]: long tm_year; .....[ 208]: int tm_wday; .....[ 210]: int tm_yday; .....[ 211]: }; .....[ 213]: void time_to_tm(time_t totalsecs, int offset, struct tm *result); .....[ 222]: static inline __attribute__((no_instrument_function)) s64 timespec_to_ns(const struct timespec *ts) .....[ 223]: { .....[ 224]: return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec; .....[ 225]: } .....[ 234]: static inline __attribute__((no_instrument_function)) s64 timeval_to_ns(const struct timeval *tv) .....[ 235]: { .....[ 236]: return ((s64) tv->tv_sec * 1000000000L) + .....[ 237]: tv->tv_usec * 1000L; .....[ 238]: } .....[ 246]: extern struct timespec ns_to_timespec(const s64 nsec); .....[ 254]: extern struct timeval ns_to_timeval(const s64 nsec); .....[ 264]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void timespec_add_ns\ ..... (struct timespec *a, u64 ns) .....[ 265]: { .....[ 266]: a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, 1000000000L, &ns); .....[ 267]: a->tv_nsec = ns; .....[ 268]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/time.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uidgid.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uidgid.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/highuid.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/highuid.h ......[ 34]: extern int overflowuid; ......[ 35]: extern int overflowgid; ......[ 37]: extern void __bad_uid(void); ......[ 38]: extern void __bad_gid(void); ......[ 81]: extern int fs_overflowuid; ......[ 82]: extern int fs_overflowgid; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/highuid.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uidgid.h .....[ 17]: struct user_namespace; .....[ 18]: extern struct user_namespace init_user_ns; .....[ 46]: typedef uid_t kuid_t; .....[ 47]: typedef gid_t kgid_t; .....[ 49]: static inline __attribute__((no_instrument_function)) uid_t __kuid_val(kuid_t uid) .....[ 50]: { .....[ 51]: return uid; .....[ 52]: } .....[ 54]: static inline __attribute__((no_instrument_function)) gid_t __kgid_val(kgid_t gid) .....[ 55]: { .....[ 56]: return gid; .....[ 57]: } .....[ 70]: static inline __attribute__((no_instrument_function)) bool uid_eq(kuid_t left, kuid_t right) .....[ 71]: { .....[ 72]: return __kuid_val(left) == __kuid_val(right); .....[ 73]: } .....[ 75]: static inline __attribute__((no_instrument_function)) bool gid_eq(kgid_t left, kgid_t right) .....[ 76]: { .....[ 77]: return __kgid_val(left) == __kgid_val(right); .....[ 78]: } .....[ 80]: static inline __attribute__((no_instrument_function)) bool uid_gt(kuid_t left, kuid_t right) .....[ 81]: { .....[ 82]: return __kuid_val(left) > __kuid_val(right); .....[ 83]: } .....[ 85]: static inline __attribute__((no_instrument_function)) bool gid_gt(kgid_t left, kgid_t right) .....[ 86]: { .....[ 87]: return __kgid_val(left) > __kgid_val(right); .....[ 88]: } .....[ 90]: static inline __attribute__((no_instrument_function)) bool uid_gte(kuid_t left, kuid_t right) .....[ 91]: { .....[ 92]: return __kuid_val(left) >= __kuid_val(right); .....[ 93]: } .....[ 95]: static inline __attribute__((no_instrument_function)) bool gid_gte(kgid_t left, kgid_t right) .....[ 96]: { .....[ 97]: return __kgid_val(left) >= __kgid_val(right); .....[ 98]: } .....[ 100]: static inline __attribute__((no_instrument_function)) bool uid_lt(kuid_t left, kuid_t right) .....[ 101]: { .....[ 102]: return __kuid_val(left) < __kuid_val(right); .....[ 103]: } .....[ 105]: static inline __attribute__((no_instrument_function)) bool gid_lt(kgid_t left, kgid_t right) .....[ 106]: { .....[ 107]: return __kgid_val(left) < __kgid_val(right); .....[ 108]: } .....[ 110]: static inline __attribute__((no_instrument_function)) bool uid_lte(kuid_t left, kuid_t right) .....[ 111]: { .....[ 112]: return __kuid_val(left) <= __kuid_val(right); .....[ 113]: } .....[ 115]: static inline __attribute__((no_instrument_function)) bool gid_lte(kgid_t left, kgid_t right) .....[ 116]: { .....[ 117]: return __kgid_val(left) <= __kgid_val(right); .....[ 118]: } .....[ 120]: static inline __attribute__((no_instrument_function)) bool uid_valid(kuid_t uid) .....[ 121]: { .....[ 122]: return !uid_eq(uid, ((kuid_t) -1 )); .....[ 123]: } .....[ 125]: static inline __attribute__((no_instrument_function)) bool gid_valid(kgid_t gid) .....[ 126]: { .....[ 127]: return !gid_eq(gid, ((kgid_t) -1 )); .....[ 128]: } .....[ 152]: static inline __attribute__((no_instrument_function)) kuid_t make_kuid(struct user_namespace *from, uid_t uid\ ..... ) .....[ 153]: { .....[ 154]: return ((kuid_t) uid ); .....[ 155]: } .....[ 157]: static inline __attribute__((no_instrument_function)) kgid_t make_kgid(struct user_namespace *from, gid_t gid\ ..... ) .....[ 158]: { .....[ 159]: return ((kgid_t) gid ); .....[ 160]: } .....[ 162]: static inline __attribute__((no_instrument_function)) uid_t from_kuid(struct user_namespace *to, kuid_t kuid\ ..... ) .....[ 163]: { .....[ 164]: return __kuid_val(kuid); .....[ 165]: } .....[ 167]: static inline __attribute__((no_instrument_function)) gid_t from_kgid(struct user_namespace *to, kgid_t kgid\ ..... ) .....[ 168]: { .....[ 169]: return __kgid_val(kgid); .....[ 170]: } .....[ 172]: static inline __attribute__((no_instrument_function)) uid_t from_kuid_munged(struct user_namespace *to, kuid_t \ ..... kuid) .....[ 173]: { .....[ 174]: uid_t uid = from_kuid(to, kuid); .....[ 175]: if (uid == (uid_t)-1) .....[ 176]: uid = overflowuid; .....[ 177]: return uid; .....[ 178]: } .....[ 180]: static inline __attribute__((no_instrument_function)) gid_t from_kgid_munged(struct user_namespace *to, kgid_t \ ..... kgid) .....[ 181]: { .....[ 182]: gid_t gid = from_kgid(to, kgid); .....[ 183]: if (gid == (gid_t)-1) .....[ 184]: gid = overflowgid; .....[ 185]: return gid; .....[ 186]: } .....[ 188]: static inline __attribute__((no_instrument_function)) bool kuid_has_mapping(struct user_namespace *ns, kuid_t \ ..... uid) .....[ 189]: { .....[ 190]: return true; .....[ 191]: } .....[ 193]: static inline __attribute__((no_instrument_function)) bool kgid_has_mapping(struct user_namespace *ns, kgid_t \ ..... gid) .....[ 194]: { .....[ 195]: return true; .....[ 196]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uidgid.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ....[ 21]: struct kstat { ....[ 22]: u64 ino; ....[ 23]: dev_t dev; ....[ 24]: umode_t mode; ....[ 25]: unsigned int nlink; ....[ 26]: kuid_t uid; ....[ 27]: kgid_t gid; ....[ 28]: dev_t rdev; ....[ 29]: loff_t size; ....[ 30]: struct timespec atime; ....[ 31]: struct timespec mtime; ....[ 32]: struct timespec ctime; ....[ 33]: unsigned long blksize; ....[ 34]: unsigned long long blocks; ....[ 35]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stat.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_lru.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_lru.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/nodemask.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/nodemask.h .....[ 98]: typedef struct { unsigned long bits[((((1 << 6)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } nodemask_t; .....[ 99]: extern nodemask_t _unused_nodemask_arg_; .....[ 111]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void __node_set(int node\ ..... , volatile nodemask_t *dstp) .....[ 112]: { .....[ 113]: set_bit(node, dstp->bits); .....[ 114]: } .....[ 117]: static inline __attribute__((no_instrument_function)) void __node_clear(int node, volatile nodemask_t *dstp) .....[ 118]: { .....[ 119]: clear_bit(node, dstp->bits); .....[ 120]: } .....[ 123]: static inline __attribute__((no_instrument_function)) void __nodes_setall(nodemask_t *dstp, int nbits) .....[ 124]: { .....[ 125]: bitmap_fill(dstp->bits, nbits); .....[ 126]: } .....[ 129]: static inline __attribute__((no_instrument_function)) void __nodes_clear(nodemask_t *dstp, int nbits) .....[ 130]: { .....[ 131]: bitmap_zero(dstp->bits, nbits); .....[ 132]: } .....[ 139]: static inline __attribute__((no_instrument_function)) int __node_test_and_set(int node, nodemask_t *addr) .....[ 140]: { .....[ 141]: return test_and_set_bit(node, addr->bits); .....[ 142]: } .....[ 146]: static inline __attribute__((no_instrument_function)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p\ ..... , .....[ 147]: const nodemask_t *src2p, int nbits) .....[ 148]: { .....[ 149]: bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); .....[ 150]: } .....[ 154]: static inline __attribute__((no_instrument_function)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p\ ..... , .....[ 155]: const nodemask_t *src2p, int nbits) .....[ 156]: { .....[ 157]: bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); .....[ 158]: } .....[ 162]: static inline __attribute__((no_instrument_function)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p\ ..... , .....[ 163]: const nodemask_t *src2p, int nbits) .....[ 164]: { .....[ 165]: bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); .....[ 166]: } .....[ 170]: static inline __attribute__((no_instrument_function)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t \ ..... *src1p, .....[ 171]: const nodemask_t *src2p, int nbits) .....[ 172]: { .....[ 173]: bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); .....[ 174]: } .....[ 178]: static inline __attribute__((no_instrument_function)) void __nodes_complement(nodemask_t *dstp, .....[ 179]: const nodemask_t *srcp, int nbits) .....[ 180]: { .....[ 181]: bitmap_complement(dstp->bits, srcp->bits, nbits); .....[ 182]: } .....[ 186]: static inline __attribute__((no_instrument_function)) int __nodes_equal(const nodemask_t *src1p, .....[ 187]: const nodemask_t *src2p, int nbits) .....[ 188]: { .....[ 189]: return bitmap_equal(src1p->bits, src2p->bits, nbits); .....[ 190]: } .....[ 194]: static inline __attribute__((no_instrument_function)) int __nodes_intersects(const nodemask_t *src1p, .....[ 195]: const nodemask_t *src2p, int nbits) .....[ 196]: { .....[ 197]: return bitmap_intersects(src1p->bits, src2p->bits, nbits); .....[ 198]: } .....[ 202]: static inline __attribute__((no_instrument_function)) int __nodes_subset(const nodemask_t *src1p, .....[ 203]: const nodemask_t *src2p, int nbits) .....[ 204]: { .....[ 205]: return bitmap_subset(src1p->bits, src2p->bits, nbits); .....[ 206]: } .....[ 209]: static inline __attribute__((no_instrument_function)) int __nodes_empty(const nodemask_t *srcp, int nbits) .....[ 210]: { .....[ 211]: return bitmap_empty(srcp->bits, nbits); .....[ 212]: } .....[ 215]: static inline __attribute__((no_instrument_function)) int __nodes_full(const nodemask_t *srcp, int nbits) .....[ 216]: { .....[ 217]: return bitmap_full(srcp->bits, nbits); .....[ 218]: } .....[ 221]: static inline __attribute__((no_instrument_function)) int __nodes_weight(const nodemask_t *srcp, int nbits) .....[ 222]: { .....[ 223]: return bitmap_weight(srcp->bits, nbits); .....[ 224]: } .....[ 228]: static inline __attribute__((no_instrument_function)) void __nodes_shift_right(nodemask_t *dstp, .....[ 229]: const nodemask_t *srcp, int n, int nbits) .....[ 230]: { .....[ 231]: bitmap_shift_right(dstp->bits, srcp->bits, n, nbits); .....[ 232]: } .....[ 236]: static inline __attribute__((no_instrument_function)) void __nodes_shift_left(nodemask_t *dstp, .....[ 237]: const nodemask_t *srcp, int n, int nbits) .....[ 238]: { .....[ 239]: bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); .....[ 240]: } .....[ 246]: static inline __attribute__((no_instrument_function)) int __first_node(const nodemask_t *srcp) .....[ 247]: { .....[ 248]: return ({ int __min1 = ((1 << 6)); int __min2 = (find_first_bit(srcp->bits, (1 << 6))); __min1 < __min2 ? __min1: __min2\ ..... ; }); .....[ 249]: } .....[ 252]: static inline __attribute__((no_instrument_function)) int __next_node(int n, const nodemask_t *srcp) .....[ 253]: { .....[ 254]: return ({ int __min1 = ((1 << 6)); int __min2 = (find_next_bit(srcp->bits, (1 << 6), n+1)); __min1 < __min2 ? __min1: __min2\ ..... ; }); .....[ 255]: } .....[ 257]: static inline __attribute__((no_instrument_function)) void init_nodemask_of_node(nodemask_t *mask, int node\ ..... ) .....[ 258]: { .....[ 259]: __nodes_clear(&(*mask), (1 << 6)); .....[ 260]: __node_set((node), &(*mask)); .....[ 261]: } .....[ 275]: static inline __attribute__((no_instrument_function)) int __first_unset_node(const nodemask_t *maskp) .....[ 276]: { .....[ 277]: return ({ int __min1 = ((1 << 6)); int __min2 = (find_first_zero_bit(maskp->bits, (1 << 6))); __min1 < __min2 ? __min1: \ ..... __min2; }); .....[ 279]: } .....[ 309]: static inline __attribute__((no_instrument_function)) int __nodemask_scnprintf(char *buf, int len, .....[ 310]: const nodemask_t *srcp, int nbits) .....[ 311]: { .....[ 312]: return bitmap_scnprintf(buf, len, srcp->bits, nbits); .....[ 313]: } .....[ 317]: static inline __attribute__((no_instrument_function)) int __nodemask_parse_user(const char *buf, int len, .....[ 318]: nodemask_t *dstp, int nbits) .....[ 319]: { .....[ 320]: return bitmap_parse_user(buf, len, dstp->bits, nbits); .....[ 321]: } .....[ 325]: static inline __attribute__((no_instrument_function)) int __nodelist_scnprintf(char *buf, int len, .....[ 326]: const nodemask_t *srcp, int nbits) .....[ 327]: { .....[ 328]: return bitmap_scnlistprintf(buf, len, srcp->bits, nbits); .....[ 329]: } .....[ 332]: static inline __attribute__((no_instrument_function)) int __nodelist_parse(const char *buf, nodemask_t *dstp\ ..... , int nbits) .....[ 333]: { .....[ 334]: return bitmap_parselist(buf, dstp->bits, nbits); .....[ 335]: } .....[ 339]: static inline __attribute__((no_instrument_function)) int __node_remap(int oldbit, .....[ 340]: const nodemask_t *oldp, const nodemask_t *newp, int nbits) .....[ 341]: { .....[ 342]: return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); .....[ 343]: } .....[ 347]: static inline __attribute__((no_instrument_function)) void __nodes_remap(nodemask_t *dstp, const nodemask_t \ ..... *srcp, .....[ 348]: const nodemask_t *oldp, const nodemask_t *newp, int nbits) .....[ 349]: { .....[ 350]: bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); .....[ 351]: } .....[ 355]: static inline __attribute__((no_instrument_function)) void __nodes_onto(nodemask_t *dstp, const nodemask_t *\ ..... origp, .....[ 356]: const nodemask_t *relmapp, int nbits) .....[ 357]: { .....[ 358]: bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits); .....[ 359]: } .....[ 363]: static inline __attribute__((no_instrument_function)) void __nodes_fold(nodemask_t *dstp, const nodemask_t *\ ..... origp, .....[ 364]: int sz, int nbits) .....[ 365]: { .....[ 366]: bitmap_fold(dstp->bits, origp->bits, sz, nbits); .....[ 367]: } .....[ 383]: enum node_states { .....[ 384]: N_POSSIBLE, .....[ 385]: N_ONLINE, .....[ 386]: N_NORMAL_MEMORY, .....[ 390]: N_HIGH_MEMORY = N_NORMAL_MEMORY, .....[ 395]: N_MEMORY = N_HIGH_MEMORY, .....[ 397]: N_CPU, .....[ 398]: NR_NODE_STATES .....[ 399]: }; .....[ 406]: extern nodemask_t node_states[NR_NODE_STATES]; .....[ 409]: static inline __attribute__((no_instrument_function)) int node_state(int node, enum node_states state) .....[ 410]: { .....[ 411]: return (__builtin_constant_p(((node))) ? constant_test_bit(((node)), ((node_states[state]).bits)) : variable_test_bit\ ..... (((node)), ((node_states[state]).bits))); .....[ 412]: } .....[ 414]: static inline __attribute__((no_instrument_function)) void node_set_state(int node, enum node_states state) .....[ 415]: { .....[ 416]: __node_set(node, &node_states[state]); .....[ 417]: } .....[ 419]: static inline __attribute__((no_instrument_function)) void node_clear_state(int node, enum node_states state\ ..... ) .....[ 420]: { .....[ 421]: __node_clear(node, &node_states[state]); .....[ 422]: } .....[ 424]: static inline __attribute__((no_instrument_function)) int num_node_state(enum node_states state) .....[ 425]: { .....[ 426]: return __nodes_weight(&(node_states[state]), (1 << 6)); .....[ 427]: } .....[ 435]: extern int nr_node_ids; .....[ 436]: extern int nr_online_nodes; .....[ 438]: static inline __attribute__((no_instrument_function)) void node_set_online(int nid) .....[ 439]: { .....[ 440]: node_set_state(nid, N_ONLINE); .....[ 441]: nr_online_nodes = num_node_state(N_ONLINE); .....[ 442]: } .....[ 444]: static inline __attribute__((no_instrument_function)) void node_set_offline(int nid) .....[ 445]: { .....[ 446]: node_clear_state(nid, N_ONLINE); .....[ 447]: nr_online_nodes = num_node_state(N_ONLINE); .....[ 448]: } .....[ 484]: extern int node_random(const nodemask_t *maskp); .....[ 518]: struct nodemask_scratch { .....[ 519]: nodemask_t mask1; .....[ 520]: nodemask_t mask2; .....[ 521]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/nodemask.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_lru.h ....[ 14]: enum lru_status { ....[ 15]: LRU_REMOVED, ....[ 16]: LRU_ROTATE, ....[ 17]: LRU_SKIP, ....[ 18]: LRU_RETRY, ....[ 20]: }; ....[ 22]: struct list_lru_node { ....[ 23]: spinlock_t lock; ....[ 24]: struct list_head list; ....[ 26]: long nr_items; ....[ 27]: } __attribute__((__aligned__((1 << (6))))); ....[ 29]: struct list_lru { ....[ 30]: struct list_lru_node *node; ....[ 31]: nodemask_t active_nodes; ....[ 32]: }; ....[ 34]: void list_lru_destroy(struct list_lru *lru); ....[ 35]: int list_lru_init(struct list_lru *lru); ....[ 53]: bool list_lru_add(struct list_lru *lru, struct list_head *item); ....[ 66]: bool list_lru_del(struct list_lru *lru, struct list_head *item); ....[ 77]: unsigned long list_lru_count_node(struct list_lru *lru, int nid); ....[ 78]: static inline __attribute__((no_instrument_function)) unsigned long list_lru_count(struct list_lru *lru) ....[ 79]: { ....[ 80]: long count = 0; ....[ 81]: int nid; ....[ 83]: for ((nid) = __first_node(&(lru->active_nodes)); (nid) < (1 << 6); (nid) = __next_node(((nid)), &((lru->active_nodes\ .... )))) ....[ 84]: count += list_lru_count_node(lru, nid); ....[ 86]: return count; ....[ 87]: } ....[ 89]: typedef enum lru_status ....[ 90]: (*list_lru_walk_cb)(struct list_head *item, spinlock_t *lock, void *cb_arg); ....[ 112]: unsigned long list_lru_walk_node(struct list_lru *lru, int nid, ....[ 113]: list_lru_walk_cb isolate, void *cb_arg, ....[ 114]: unsigned long *nr_to_walk); ....[ 116]: static inline __attribute__((no_instrument_function)) unsigned long ....[ 117]: list_lru_walk(struct list_lru *lru, list_lru_walk_cb isolate, ....[ 118]: void *cb_arg, unsigned long nr_to_walk) ....[ 119]: { ....[ 120]: long isolated = 0; ....[ 121]: int nid; ....[ 123]: for ((nid) = __first_node(&(lru->active_nodes)); (nid) < (1 << 6); (nid) = __next_node(((nid)), &((lru->active_nodes\ .... )))) { ....[ 124]: isolated += list_lru_walk_node(lru, nid, isolate, ....[ 125]: cb_arg, &nr_to_walk); ....[ 126]: if (nr_to_walk <= 0) ....[ 127]: break; ....[ 128]: } ....[ 129]: return isolated; ....[ 130]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/list_lru.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/llist.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/llist.h ....[ 61]: struct llist_head { ....[ 62]: struct llist_node *first; ....[ 63]: }; ....[ 65]: struct llist_node { ....[ 66]: struct llist_node *next; ....[ 67]: }; ....[ 76]: static inline __attribute__((no_instrument_function)) void init_llist_head(struct llist_head *list) ....[ 77]: { ....[ 78]: list->first = ((void *)0); ....[ 79]: } ....[ 158]: static inline __attribute__((no_instrument_function)) bool llist_empty(const struct llist_head *head) ....[ 159]: { ....[ 160]: return (*(volatile typeof(head->first) *)&(head->first)) == ((void *)0); ....[ 161]: } ....[ 163]: static inline __attribute__((no_instrument_function)) struct llist_node *llist_next(struct llist_node *node\ .... ) ....[ 164]: { ....[ 165]: return node->next; ....[ 166]: } ....[ 168]: extern bool llist_add_batch(struct llist_node *new_first, ....[ 169]: struct llist_node *new_last, ....[ 170]: struct llist_head *head); ....[ 178]: static inline __attribute__((no_instrument_function)) bool llist_add(struct llist_node *new, struct llist_head \ .... *head) ....[ 179]: { ....[ 180]: return llist_add_batch(new, new, head); ....[ 181]: } ....[ 191]: static inline __attribute__((no_instrument_function)) struct llist_node *llist_del_all(struct llist_head *head\ .... ) ....[ 192]: { ....[ 193]: return ({ __typeof__ (*((&head->first))) __ret = ((((void *)0))); switch (sizeof(*((&head->first)))) { case 1: asm \ .... volatile ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&head->first))) : : "memory", "cc"); break; case 2: asm volatile \ .... ("" "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&head->first))) : : "memory", "cc"); break; case 4: asm volatile ("" \ .... "xchg" "l %0, %1\n" : "+r" (__ret), "+m" (*((&head->first))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" \ .... "q %q0, %1\n" : "+r" (__ret), "+m" (*((&head->first))) : : "memory", "cc"); break; default: __xchg_wrong_size(); \ .... } __ret; }); ....[ 194]: } ....[ 196]: extern struct llist_node *llist_del_first(struct llist_head *head); ....[ 198]: struct llist_node *llist_reverse_order(struct llist_node *head); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/llist.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/radix-tree.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/radix-tree.h ....[ 54]: static inline __attribute__((no_instrument_function)) int radix_tree_is_indirect_ptr(void *ptr) ....[ 55]: { ....[ 56]: return (int)((unsigned long)ptr & 1); ....[ 57]: } ....[ 64]: struct radix_tree_root { ....[ 65]: unsigned int height; ....[ 66]: gfp_t gfp_mask; ....[ 67]: struct radix_tree_node *rnode; ....[ 68]: }; ....[ 150]: static inline __attribute__((no_instrument_function)) void *radix_tree_deref_slot(void **pslot) ....[ 151]: { ....[ 152]: return ({ typeof(*(*pslot)) *_________p1 = (typeof(*(*pslot))* )(*(volatile typeof((*pslot)) *)&((*pslot))); \ .... do { } while (0); ; do { } while (0); ((typeof(*(*pslot)) *)(_________p1)); }); ....[ 153]: } ....[ 165]: static inline __attribute__((no_instrument_function)) void *radix_tree_deref_slot_protected(void **pslot, ....[ 166]: spinlock_t *treelock) ....[ 167]: { ....[ 168]: return ({ do { } while (0); ; ((typeof(*(*pslot)) *)((*pslot))); }); ....[ 169]: } ....[ 178]: static inline __attribute__((no_instrument_function)) int radix_tree_deref_retry(void *arg) ....[ 179]: { ....[ 180]: return __builtin_expect(!!((unsigned long)arg & 1), 0); ....[ 181]: } ....[ 188]: static inline __attribute__((no_instrument_function)) int radix_tree_exceptional_entry(void *arg) ....[ 189]: { ....[ 191]: return (unsigned long)arg & 2; ....[ 192]: } ....[ 199]: static inline __attribute__((no_instrument_function)) int radix_tree_exception(void *arg) ....[ 200]: { ....[ 201]: return __builtin_expect(!!((unsigned long)arg &( 1 | 2)), 0); ....[ 203]: } ....[ 213]: static inline __attribute__((no_instrument_function)) void radix_tree_replace_slot(void **pslot, void *item\ .... ) ....[ 214]: { ....[ 215]: do { if (__builtin_expect(!!(radix_tree_is_indirect_ptr(item)), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" \ .... "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__\ .... ), "i" (sizeof(struct bug_entry))); do { } while (1); } while (0); } while(0); ....[ 216]: do { __asm__ __volatile__("": : :"memory"); ((*pslot)) = (typeof(*(item)) *)((item)); } while (0); ....[ 217]: } ....[ 219]: int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); ....[ 220]: void *radix_tree_lookup(struct radix_tree_root *, unsigned long); ....[ 221]: void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long); ....[ 222]: void *radix_tree_delete(struct radix_tree_root *, unsigned long); ....[ 223]: unsigned int ....[ 224]: radix_tree_gang_lookup(struct radix_tree_root *root, void **results, ....[ 225]: unsigned long first_index, unsigned int max_items); ....[ 226]: unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root, ....[ 227]: void ***results, unsigned long *indices, ....[ 228]: unsigned long first_index, unsigned int max_items); ....[ 229]: unsigned long radix_tree_next_hole(struct radix_tree_root *root, ....[ 230]: unsigned long index, unsigned long max_scan); ....[ 231]: unsigned long radix_tree_prev_hole(struct radix_tree_root *root, ....[ 232]: unsigned long index, unsigned long max_scan); ....[ 233]: int radix_tree_preload(gfp_t gfp_mask); ....[ 234]: int radix_tree_maybe_preload(gfp_t gfp_mask); ....[ 235]: void radix_tree_init(void); ....[ 236]: void *radix_tree_tag_set(struct radix_tree_root *root, ....[ 237]: unsigned long index, unsigned int tag); ....[ 238]: void *radix_tree_tag_clear(struct radix_tree_root *root, ....[ 239]: unsigned long index, unsigned int tag); ....[ 240]: int radix_tree_tag_get(struct radix_tree_root *root, ....[ 241]: unsigned long index, unsigned int tag); ....[ 242]: unsigned int ....[ 243]: radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results, ....[ 244]: unsigned long first_index, unsigned int max_items, ....[ 245]: unsigned int tag); ....[ 246]: unsigned int ....[ 247]: radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results, ....[ 248]: unsigned long first_index, unsigned int max_items, ....[ 249]: unsigned int tag); ....[ 250]: unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, ....[ 251]: unsigned long *first_indexp, unsigned long last_index, ....[ 252]: unsigned long nr_to_tag, ....[ 253]: unsigned int fromtag, unsigned int totag); ....[ 254]: int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); ....[ 255]: unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item); ....[ 257]: static inline __attribute__((no_instrument_function)) void radix_tree_preload_end(void) ....[ 258]: { ....[ 259]: __asm__ __volatile__("": : :"memory"); ....[ 260]: } ....[ 276]: struct radix_tree_iter { ....[ 277]: unsigned long index; ....[ 278]: unsigned long next_index; ....[ 279]: unsigned long tags; ....[ 280]: }; ....[ 293]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void ** ....[ 294]: radix_tree_iter_init(struct radix_tree_iter *iter, unsigned long start) ....[ 295]: { ....[ 304]: iter->index = 0; ....[ 305]: iter->next_index = start; ....[ 306]: return ((void *)0); ....[ 307]: } ....[ 322]: void **radix_tree_next_chunk(struct radix_tree_root *root, ....[ 323]: struct radix_tree_iter *iter, unsigned flags); ....[ 331]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned ....[ 332]: radix_tree_chunk_size(struct radix_tree_iter *iter) ....[ 333]: { ....[ 334]: return iter->next_index - iter->index; ....[ 335]: } ....[ 348]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void ** ....[ 349]: radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags) ....[ 350]: { ....[ 351]: if (flags & 0x0100) { ....[ 352]: iter->tags >>= 1; ....[ 353]: if (__builtin_expect(!!(iter->tags & 1ul), 1)) { ....[ 354]: iter->index++; ....[ 355]: return slot + 1; ....[ 356]: } ....[ 357]: if (!(flags & 0x0200) && __builtin_expect(!!(iter->tags), 1)) { ....[ 358]: unsigned offset = __ffs(iter->tags); ....[ 360]: iter->tags >>= offset; ....[ 361]: iter->index += offset + 1; ....[ 362]: return slot + offset + 1; ....[ 363]: } ....[ 364]: } else { ....[ 365]: unsigned size = radix_tree_chunk_size(iter) - 1; ....[ 367]: while (size--) { ....[ 368]: slot++; ....[ 369]: iter->index++; ....[ 370]: if (__builtin_expect(!!(*slot), 1)) ....[ 371]: return slot; ....[ 372]: if (flags & 0x0200) { ....[ 374]: iter->next_index = 0; ....[ 375]: break; ....[ 376]: } ....[ 377]: } ....[ 378]: } ....[ 379]: return ((void *)0); ....[ 380]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/radix-tree.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rbtree.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rbtree.h ....[ 35]: struct rb_node { ....[ 36]: unsigned long __rb_parent_color; ....[ 37]: struct rb_node *rb_right; ....[ 38]: struct rb_node *rb_left; ....[ 39]: } __attribute__((aligned(sizeof(long)))); ....[ 42]: struct rb_root { ....[ 43]: struct rb_node *rb_node; ....[ 44]: }; ....[ 61]: extern void rb_insert_color(struct rb_node *, struct rb_root *); ....[ 62]: extern void rb_erase(struct rb_node *, struct rb_root *); ....[ 66]: extern struct rb_node *rb_next(const struct rb_node *); ....[ 67]: extern struct rb_node *rb_prev(const struct rb_node *); ....[ 68]: extern struct rb_node *rb_first(const struct rb_root *); ....[ 69]: extern struct rb_node *rb_last(const struct rb_root *); ....[ 72]: extern struct rb_node *rb_first_postorder(const struct rb_root *); ....[ 73]: extern struct rb_node *rb_next_postorder(const struct rb_node *); ....[ 76]: extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, ....[ 77]: struct rb_root *root); ....[ 79]: static inline __attribute__((no_instrument_function)) void rb_link_node(struct rb_node * node, struct rb_node \ .... * parent, ....[ 80]: struct rb_node ** rb_link) ....[ 81]: { ....[ 82]: node->__rb_parent_color = (unsigned long)parent; ....[ 83]: node->rb_left = node->rb_right = ((void *)0); ....[ 85]: *rb_link = node; ....[ 86]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rbtree.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pid.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pid.h ....[ 6]: enum pid_type ....[ 7]: { ....[ 8]: PIDTYPE_PID, ....[ 9]: PIDTYPE_PGID, ....[ 10]: PIDTYPE_SID, ....[ 11]: PIDTYPE_MAX ....[ 12]: }; ....[ 50]: struct upid { ....[ 52]: int nr; ....[ 53]: struct pid_namespace *ns; ....[ 54]: struct hlist_node pid_chain; ....[ 55]: }; ....[ 57]: struct pid ....[ 58]: { ....[ 59]: atomic_t count; ....[ 60]: unsigned int level; ....[ 62]: struct hlist_head tasks[PIDTYPE_MAX]; ....[ 63]: struct callback_head rcu; ....[ 64]: struct upid numbers[1]; ....[ 65]: }; ....[ 67]: extern struct pid init_struct_pid; ....[ 69]: struct pid_link ....[ 70]: { ....[ 71]: struct hlist_node node; ....[ 72]: struct pid *pid; ....[ 73]: }; ....[ 75]: static inline __attribute__((no_instrument_function)) struct pid *get_pid(struct pid *pid) ....[ 76]: { ....[ 77]: if (pid) ....[ 78]: atomic_inc(&pid->count); ....[ 79]: return pid; ....[ 80]: } ....[ 82]: extern void put_pid(struct pid *pid); ....[ 83]: extern struct task_struct *pid_task(struct pid *pid, enum pid_type); ....[ 84]: extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type); ....[ 86]: extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); ....[ 91]: extern void attach_pid(struct task_struct *task, enum pid_type); ....[ 92]: extern void detach_pid(struct task_struct *task, enum pid_type); ....[ 93]: extern void change_pid(struct task_struct *task, enum pid_type, ....[ 94]: struct pid *pid); ....[ 95]: extern void transfer_pid(struct task_struct *old, struct task_struct *new, ....[ 96]: enum pid_type); ....[ 98]: struct pid_namespace; ....[ 99]: extern struct pid_namespace init_pid_ns; ....[ 110]: extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns); ....[ 111]: extern struct pid *find_vpid(int nr); ....[ 116]: extern struct pid *find_get_pid(int nr); ....[ 117]: extern struct pid *find_ge_pid(int nr, struct pid_namespace *); ....[ 118]: int next_pidmap(struct pid_namespace *pid_ns, unsigned int last); ....[ 120]: extern struct pid *alloc_pid(struct pid_namespace *ns); ....[ 121]: extern void free_pid(struct pid *pid); ....[ 122]: extern void disable_pid_allocation(struct pid_namespace *ns); ....[ 134]: static inline __attribute__((no_instrument_function)) struct pid_namespace *ns_of_pid(struct pid *pid) ....[ 135]: { ....[ 136]: struct pid_namespace *ns = ((void *)0); ....[ 137]: if (pid) ....[ 138]: ns = pid->numbers[pid->level].ns; ....[ 139]: return ns; ....[ 140]: } ....[ 148]: static inline __attribute__((no_instrument_function)) bool is_child_reaper(struct pid *pid) ....[ 149]: { ....[ 150]: return pid->numbers[pid->level].nr == 1; ....[ 151]: } ....[ 164]: static inline __attribute__((no_instrument_function)) pid_t pid_nr(struct pid *pid) ....[ 165]: { ....[ 166]: pid_t nr = 0; ....[ 167]: if (pid) ....[ 168]: nr = pid->numbers[0].nr; ....[ 169]: return nr; ....[ 170]: } ....[ 172]: pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns); ....[ 173]: pid_t pid_vnr(struct pid *pid); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pid.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mutex.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mutex.h ....[ 49]: struct mutex { ....[ 51]: atomic_t count; ....[ 52]: spinlock_t wait_lock; ....[ 53]: struct list_head wait_list; ....[ 55]: struct task_struct *owner; ....[ 58]: void *spin_mlock; ....[ 67]: }; ....[ 73]: struct mutex_waiter { ....[ 74]: struct list_head list; ....[ 75]: struct task_struct *task; ....[ 79]: }; ....[ 99]: static inline __attribute__((no_instrument_function)) void mutex_destroy(struct mutex *lock) {} ....[ 119]: extern void __mutex_init(struct mutex *lock, const char *name, ....[ 120]: struct lock_class_key *key); ....[ 128]: static inline __attribute__((no_instrument_function)) int mutex_is_locked(struct mutex *lock) ....[ 129]: { ....[ 130]: return atomic_read(&lock->count) != 1; ....[ 131]: } ....[ 157]: extern void mutex_lock(struct mutex *lock); ....[ 158]: extern int mutex_lock_interruptible(struct mutex *lock); ....[ 159]: extern int mutex_lock_killable(struct mutex *lock); ....[ 173]: extern int mutex_trylock(struct mutex *lock); ....[ 174]: extern void mutex_unlock(struct mutex *lock); ....[ 176]: extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mutex.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/capability.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/capability.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/capability.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/capability.h .....[ 18]: struct task_struct; .....[ 40]: typedef struct __user_cap_header_struct { .....[ 41]: __u32 version; .....[ 42]: int pid; .....[ 43]: } *cap_user_header_t; .....[ 45]: typedef struct __user_cap_data_struct { .....[ 46]: __u32 effective; .....[ 47]: __u32 permitted; .....[ 48]: __u32 inheritable; .....[ 49]: } *cap_user_data_t; .....[ 69]: struct vfs_cap_data { .....[ 70]: __le32 magic_etc; .....[ 71]: struct { .....[ 72]: __le32 permitted; .....[ 73]: __le32 inheritable; .....[ 74]: } data[2]; .....[ 75]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/capability.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/capability.h ....[ 21]: extern int file_caps_enabled; ....[ 23]: typedef struct kernel_cap_struct { ....[ 24]: __u32 cap[2]; ....[ 25]: } kernel_cap_t; ....[ 28]: struct cpu_vfs_cap_data { ....[ 29]: __u32 magic_etc; ....[ 30]: kernel_cap_t permitted; ....[ 31]: kernel_cap_t inheritable; ....[ 32]: }; ....[ 38]: struct file; ....[ 39]: struct inode; ....[ 40]: struct dentry; ....[ 41]: struct user_namespace; ....[ 43]: struct user_namespace *current_user_ns(void); ....[ 45]: extern const kernel_cap_t __cap_empty_set; ....[ 46]: extern const kernel_cap_t __cap_init_eff_set; ....[ 114]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_combine(const kernel_cap_t a, ....[ 115]: const kernel_cap_t b) ....[ 116]: { ....[ 117]: kernel_cap_t dest; ....[ 118]: do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] | b.cap[__capi]; } } while \ .... (0); ....[ 119]: return dest; ....[ 120]: } ....[ 122]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_intersect(const kernel_cap_t a, ....[ 123]: const kernel_cap_t b) ....[ 124]: { ....[ 125]: kernel_cap_t dest; ....[ 126]: do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] & b.cap[__capi]; } } while \ .... (0); ....[ 127]: return dest; ....[ 128]: } ....[ 130]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_drop(const kernel_cap_t a, ....[ 131]: const kernel_cap_t drop) ....[ 132]: { ....[ 133]: kernel_cap_t dest; ....[ 134]: do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = a.cap[__capi] &~ drop.cap[__capi]; } \ .... } while (0); ....[ 135]: return dest; ....[ 136]: } ....[ 138]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_invert(const kernel_cap_t c) ....[ 139]: { ....[ 140]: kernel_cap_t dest; ....[ 141]: do { unsigned __capi; for (__capi = 0; __capi < 2; ++__capi) { dest.cap[__capi] = ~ c.cap[__capi]; } } while (0); ....[ 142]: return dest; ....[ 143]: } ....[ 145]: static inline __attribute__((no_instrument_function)) int cap_isclear(const kernel_cap_t a) ....[ 146]: { ....[ 147]: unsigned __capi; ....[ 148]: for (__capi = 0; __capi < 2; ++__capi) { ....[ 149]: if (a.cap[__capi] != 0) ....[ 150]: return 0; ....[ 151]: } ....[ 152]: return 1; ....[ 153]: } ....[ 162]: static inline __attribute__((no_instrument_function)) int cap_issubset(const kernel_cap_t a, const kernel_cap_t \ .... set) ....[ 163]: { ....[ 164]: kernel_cap_t dest; ....[ 165]: dest = cap_drop(a, set); ....[ 166]: return cap_isclear(dest); ....[ 167]: } ....[ 171]: static inline __attribute__((no_instrument_function)) int cap_is_fs_cap(int cap) ....[ 172]: { ....[ 173]: 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))) } }); ....[ 174]: return !!((1 << ((cap) & 31)) & __cap_fs_set.cap[((cap) >> 5)]); ....[ 175]: } ....[ 177]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_drop_fs_set(const kernel_cap_t a) ....[ 178]: { ....[ 179]: 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))) } }); ....[ 180]: return cap_drop(a, __cap_fs_set); ....[ 181]: } ....[ 183]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_raise_fs_set(const kernel_cap_t a, ....[ 184]: const kernel_cap_t permitted) ....[ 185]: { ....[ 186]: 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))) } }); ....[ 187]: return cap_combine(a, ....[ 188]: cap_intersect(permitted, __cap_fs_set)); ....[ 189]: } ....[ 191]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a) ....[ 192]: { ....[ 193]: 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))) } }); ....[ 194]: return cap_drop(a, __cap_fs_set); ....[ 195]: } ....[ 197]: static inline __attribute__((no_instrument_function)) kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a\ .... , ....[ 198]: const kernel_cap_t permitted) ....[ 199]: { ....[ 200]: 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))) } }); ....[ 201]: return cap_combine(a, ....[ 202]: cap_intersect(permitted, __cap_nfsd_set)); ....[ 203]: } ....[ 205]: extern bool has_capability(struct task_struct *t, int cap); ....[ 206]: extern bool has_ns_capability(struct task_struct *t, ....[ 207]: struct user_namespace *ns, int cap); ....[ 208]: extern bool has_capability_noaudit(struct task_struct *t, int cap); ....[ 209]: extern bool has_ns_capability_noaudit(struct task_struct *t, ....[ 210]: struct user_namespace *ns, int cap); ....[ 211]: extern bool capable(int cap); ....[ 212]: extern bool ns_capable(struct user_namespace *ns, int cap); ....[ 213]: extern bool inode_capable(const struct inode *inode, int cap); ....[ 214]: extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap); ....[ 217]: extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/capability.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/semaphore.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/semaphore.h ....[ 16]: struct semaphore { ....[ 17]: raw_spinlock_t lock; ....[ 18]: unsigned int count; ....[ 19]: struct list_head wait_list; ....[ 20]: }; ....[ 32]: static inline __attribute__((no_instrument_function)) void sema_init(struct semaphore *sem, int val) ....[ 33]: { ....[ 34]: static struct lock_class_key __key; ....[ 35]: *sem = (struct semaphore) { .lock = (raw_spinlock_t) { .raw_lock = { { 0 } }, }, .count = val, .wait_list = { &((*sem).wait_list\ .... ), &((*sem).wait_list) }, }; ....[ 36]: do { (void)("semaphore->lock"); (void)(&__key); } while (0); ....[ 37]: } ....[ 39]: extern void down(struct semaphore *sem); ....[ 40]: extern int down_interruptible(struct semaphore *sem); ....[ 41]: extern int down_killable(struct semaphore *sem); ....[ 42]: extern int down_trylock(struct semaphore *sem); ....[ 43]: extern int down_timeout(struct semaphore *sem, long jiffies); ....[ 44]: extern void up(struct semaphore *sem); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/semaphore.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fiemap.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fiemap.h ....[ 16]: struct fiemap_extent { ....[ 17]: __u64 fe_logical; ....[ 19]: __u64 fe_physical; ....[ 21]: __u64 fe_length; ....[ 22]: __u64 fe_reserved64[2]; ....[ 23]: __u32 fe_flags; ....[ 24]: __u32 fe_reserved[3]; ....[ 25]: }; ....[ 27]: struct fiemap { ....[ 28]: __u64 fm_start; ....[ 30]: __u64 fm_length; ....[ 32]: __u32 fm_flags; ....[ 33]: __u32 fm_mapped_extents; ....[ 34]: __u32 fm_extent_count; ....[ 35]: __u32 fm_reserved; ....[ 36]: struct fiemap_extent fm_extents[0]; ....[ 37]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fiemap.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/shrinker.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/shrinker.h ....[ 11]: struct shrink_control { ....[ 12]: gfp_t gfp_mask; ....[ 19]: unsigned long nr_to_scan; ....[ 22]: nodemask_t nodes_to_scan; ....[ 24]: int nid; ....[ 25]: }; ....[ 48]: struct shrinker { ....[ 49]: unsigned long (*count_objects)(struct shrinker *, ....[ 50]: struct shrink_control *sc); ....[ 51]: unsigned long (*scan_objects)(struct shrinker *, ....[ 52]: struct shrink_control *sc); ....[ 54]: int seeks; ....[ 55]: long batch; ....[ 56]: unsigned long flags; ....[ 59]: struct list_head list; ....[ 61]: atomic_long_t *nr_deferred; ....[ 62]: }; ....[ 68]: extern int register_shrinker(struct shrinker *); ....[ 69]: extern void unregister_shrinker(struct shrinker *); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/shrinker.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/migrate_mode.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/migrate_mode.h ....[ 10]: enum migrate_mode { ....[ 11]: MIGRATE_ASYNC, ....[ 12]: MIGRATE_SYNC_LIGHT, ....[ 13]: MIGRATE_SYNC, ....[ 14]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/migrate_mode.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-rwsem.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-rwsem.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwsem.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwsem.h .....[ 19]: struct rw_semaphore; .....[ 25]: struct rw_semaphore { .....[ 26]: long count; .....[ 27]: raw_spinlock_t wait_lock; .....[ 28]: struct list_head wait_list; .....[ 32]: }; .....[ 34]: extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem); .....[ 35]: extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem); .....[ 36]: extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *); .....[ 37]: extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem); ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwsem.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/rwsem.h ......[ 63]: static inline __attribute__((no_instrument_function)) void __down_read(struct rw_semaphore *sem) ......[ 64]: { ......[ 65]: asm volatile("# beginning down_read\n\t" ......[ 66]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " " \ ...... "incq" " " "(%1)\n\t" ......[ 68]: " jns 1f\n" ......[ 69]: " call call_rwsem_down_read_failed\n" ......[ 70]: "1:\n\t" ......[ 71]: "# ending down_read\n\t" ......[ 72]: : "+m" (sem->count) ......[ 73]: : "a" (sem) ......[ 74]: : "memory", "cc"); ......[ 75]: } ......[ 80]: static inline __attribute__((no_instrument_function)) int __down_read_trylock(struct rw_semaphore *sem) ......[ 81]: { ......[ 82]: long result, tmp; ......[ 83]: asm volatile("# beginning __down_read_trylock\n\t" ......[ 84]: " mov %0,%1\n\t" ......[ 85]: "1:\n\t" ......[ 86]: " mov %1,%2\n\t" ......[ 87]: " add %3,%2\n\t" ......[ 88]: " jle 2f\n\t" ......[ 89]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " cmpxchg %2,%0\n\t" ......[ 90]: " jnz 1b\n\t" ......[ 91]: "2:\n\t" ......[ 92]: "# ending __down_read_trylock\n\t" ......[ 93]: : "+m" (sem->count), "=&a" (result), "=&r" (tmp) ......[ 94]: : "i" (0x00000001L) ......[ 95]: : "memory", "cc"); ......[ 96]: return result >= 0 ? 1 : 0; ......[ 97]: } ......[ 102]: static inline __attribute__((no_instrument_function)) void __down_write_nested(struct rw_semaphore *sem, int \ ...... subclass) ......[ 103]: { ......[ 104]: long tmp; ......[ 105]: asm volatile("# beginning down_write\n\t" ......[ 106]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " xadd %1,(%2)\n\t" ......[ 108]: " test " " " "%k1" " " "," " " "%k1" " " "\n\t" ......[ 110]: " jz 1f\n" ......[ 111]: " call call_rwsem_down_write_failed\n" ......[ 112]: "1:\n" ......[ 113]: "# ending down_write" ......[ 114]: : "+m" (sem->count), "=d" (tmp) ......[ 115]: : "a" (sem), "1" (((-0xffffffffL-1) + 0x00000001L)) ......[ 116]: : "memory", "cc"); ......[ 117]: } ......[ 119]: static inline __attribute__((no_instrument_function)) void __down_write(struct rw_semaphore *sem) ......[ 120]: { ......[ 121]: __down_write_nested(sem, 0); ......[ 122]: } ......[ 127]: static inline __attribute__((no_instrument_function)) int __down_write_trylock(struct rw_semaphore *sem) ......[ 128]: { ......[ 129]: long result, tmp; ......[ 130]: asm volatile("# beginning __down_write_trylock\n\t" ......[ 131]: " mov %0,%1\n\t" ......[ 132]: "1:\n\t" ......[ 133]: " test " " " "%k1" " " "," " " "%k1" " " "\n\t" ......[ 135]: " jnz 2f\n\t" ......[ 136]: " mov %1,%2\n\t" ......[ 137]: " add %3,%2\n\t" ......[ 138]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " cmpxchg %2,%0\n\t" ......[ 139]: " jnz 1b\n\t" ......[ 140]: "2:\n\t" ......[ 141]: " sete %b1\n\t" ......[ 142]: " movzbl %b1, %k1\n\t" ......[ 143]: "# ending __down_write_trylock\n\t" ......[ 144]: : "+m" (sem->count), "=&a" (result), "=&r" (tmp) ......[ 145]: : "er" (((-0xffffffffL-1) + 0x00000001L)) ......[ 146]: : "memory", "cc"); ......[ 147]: return result; ......[ 148]: } ......[ 153]: static inline __attribute__((no_instrument_function)) void __up_read(struct rw_semaphore *sem) ......[ 154]: { ......[ 155]: long tmp; ......[ 156]: asm volatile("# beginning __up_read\n\t" ......[ 157]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " xadd %1,(%2)\n\t" ......[ 159]: " jns 1f\n\t" ......[ 160]: " call call_rwsem_wake\n" ......[ 161]: "1:\n" ......[ 162]: "# ending __up_read\n" ......[ 163]: : "+m" (sem->count), "=d" (tmp) ......[ 164]: : "a" (sem), "1" (-0x00000001L) ......[ 165]: : "memory", "cc"); ......[ 166]: } ......[ 171]: static inline __attribute__((no_instrument_function)) void __up_write(struct rw_semaphore *sem) ......[ 172]: { ......[ 173]: long tmp; ......[ 174]: asm volatile("# beginning __up_write\n\t" ......[ 175]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " xadd %1,(%2)\n\t" ......[ 177]: " jns 1f\n\t" ......[ 178]: " call call_rwsem_wake\n" ......[ 179]: "1:\n\t" ......[ 180]: "# ending __up_write\n" ......[ 181]: : "+m" (sem->count), "=d" (tmp) ......[ 182]: : "a" (sem), "1" (-((-0xffffffffL-1) + 0x00000001L)) ......[ 183]: : "memory", "cc"); ......[ 184]: } ......[ 189]: static inline __attribute__((no_instrument_function)) void __downgrade_write(struct rw_semaphore *sem) ......[ 190]: { ......[ 191]: asm volatile("# beginning __downgrade_write\n\t" ......[ 192]: ".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " " " \ ...... "addq" " " "%2,(%1)\n\t" ......[ 197]: " jns 1f\n\t" ......[ 198]: " call call_rwsem_downgrade_wake\n" ......[ 199]: "1:\n\t" ......[ 200]: "# ending __downgrade_write\n" ......[ 201]: : "+m" (sem->count) ......[ 202]: : "a" (sem), "er" (-(-0xffffffffL-1)) ......[ 203]: : "memory", "cc"); ......[ 204]: } ......[ 209]: static inline __attribute__((no_instrument_function)) void rwsem_atomic_add(long delta, struct rw_semaphore \ ...... *sem) ......[ 210]: { ......[ 211]: asm volatile(".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... " " "addq" " " "%1,%0" ......[ 212]: : "+m" (sem->count) ......[ 213]: : "er" (delta)); ......[ 214]: } ......[ 219]: static inline __attribute__((no_instrument_function)) long rwsem_atomic_update(long delta, struct rw_semaphore \ ...... *sem) ......[ 220]: { ......[ 221]: return delta + ({ __typeof__ (*(((&sem->count)))) __ret = (((delta))); switch (sizeof(*(((&sem->count))))) { case \ ...... 1: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " \ ...... "xadd" "b %b0, %1\n" : "+q" (__ret), "+m" (*(((&sem->count)))) : : "memory", "cc"); break; case 2: asm volatile (".pushsection .smp_locks,\"a\"\n" \ ...... ".balign 4\n" ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "w %w0, %1\n" : "+r" (__ret), "+m" \ ...... (*(((&sem->count)))) : : "memory", "cc"); break; case 4: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" \ ...... ".long 671f - .\n" ".popsection\n" "671:" "\n\tlock; " "xadd" "l %0, %1\n" : "+r" (__ret), "+m" (*(((&sem->count\ ...... )))) : : "memory", "cc"); break; case 8: asm volatile (".pushsection .smp_locks,\"a\"\n" ".balign 4\n" ".long 671f - .\n" \ ...... ".popsection\n" "671:" "\n\tlock; " "xadd" "q %q0, %1\n" : "+r" (__ret), "+m" (*(((&sem->count)))) : : "memory", \ ...... "cc"); break; default: __xadd_wrong_size(); } __ret; }); ......[ 222]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/rwsem.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwsem.h .....[ 43]: static inline __attribute__((no_instrument_function)) int rwsem_is_locked(struct rw_semaphore *sem) .....[ 44]: { .....[ 45]: return sem->count != 0; .....[ 46]: } .....[ 67]: extern void __init_rwsem(struct rw_semaphore *sem, const char *name, .....[ 68]: struct lock_class_key *key); .....[ 80]: extern void down_read(struct rw_semaphore *sem); .....[ 85]: extern int down_read_trylock(struct rw_semaphore *sem); .....[ 90]: extern void down_write(struct rw_semaphore *sem); .....[ 95]: extern int down_write_trylock(struct rw_semaphore *sem); .....[ 100]: extern void up_read(struct rw_semaphore *sem); .....[ 105]: extern void up_write(struct rw_semaphore *sem); .....[ 110]: extern void downgrade_write(struct rw_semaphore *sem); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rwsem.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-rwsem.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/smp.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/smp.h ......[ 15]: extern void cpu_idle(void); ......[ 17]: typedef void (*smp_call_func_t)(void *info); ......[ 18]: struct call_single_data { ......[ 19]: struct list_head list; ......[ 20]: smp_call_func_t func; ......[ 21]: void *info; ......[ 22]: u16 flags; ......[ 23]: }; ......[ 26]: extern unsigned int total_cpus; ......[ 28]: int smp_call_function_single(int cpuid, smp_call_func_t func, void *info, ......[ 29]: int wait); ......[ 34]: int on_each_cpu(smp_call_func_t func, void *info, int wait); ......[ 40]: void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func, ......[ 41]: void *info, bool wait); ......[ 48]: void on_each_cpu_cond(bool (*cond_func)(int cpu, void *info), ......[ 49]: smp_call_func_t func, void *info, bool wait, ......[ 50]: gfp_t gfp_flags); ......[ 52]: void __smp_call_function_single(int cpuid, struct call_single_data *data, ......[ 53]: int wait); .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/smp.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec_def.h .........[ 21]: struct mpf_intel { .........[ 22]: char signature[4]; .........[ 23]: unsigned int physptr; .........[ 24]: unsigned char length; .........[ 25]: unsigned char specification; .........[ 26]: unsigned char checksum; .........[ 27]: unsigned char feature1; .........[ 28]: unsigned char feature2; .........[ 29]: unsigned char feature3; .........[ 30]: unsigned char feature4; .........[ 31]: unsigned char feature5; .........[ 32]: }; .........[ 36]: struct mpc_table { .........[ 37]: char signature[4]; .........[ 38]: unsigned short length; .........[ 39]: char spec; .........[ 40]: char checksum; .........[ 41]: char oem[8]; .........[ 42]: char productid[12]; .........[ 43]: unsigned int oemptr; .........[ 44]: unsigned short oemsize; .........[ 45]: unsigned short oemcount; .........[ 46]: unsigned int lapic; .........[ 47]: unsigned int reserved; .........[ 48]: }; .........[ 67]: struct mpc_cpu { .........[ 68]: unsigned char type; .........[ 69]: unsigned char apicid; .........[ 70]: unsigned char apicver; .........[ 71]: unsigned char cpuflag; .........[ 72]: unsigned int cpufeature; .........[ 73]: unsigned int featureflag; .........[ 74]: unsigned int reserved[2]; .........[ 75]: }; .........[ 77]: struct mpc_bus { .........[ 78]: unsigned char type; .........[ 79]: unsigned char busid; .........[ 80]: unsigned char bustype[6]; .........[ 81]: }; .........[ 105]: struct mpc_ioapic { .........[ 106]: unsigned char type; .........[ 107]: unsigned char apicid; .........[ 108]: unsigned char apicver; .........[ 109]: unsigned char flags; .........[ 110]: unsigned int apicaddr; .........[ 111]: }; .........[ 113]: struct mpc_intsrc { .........[ 114]: unsigned char type; .........[ 115]: unsigned char irqtype; .........[ 116]: unsigned short irqflag; .........[ 117]: unsigned char srcbus; .........[ 118]: unsigned char srcbusirq; .........[ 119]: unsigned char dstapic; .........[ 120]: unsigned char dstirq; .........[ 121]: }; .........[ 123]: enum mp_irq_source_types { .........[ 124]: mp_INT = 0, .........[ 125]: mp_NMI = 1, .........[ 126]: mp_SMI = 2, .........[ 127]: mp_ExtINT = 3 .........[ 128]: }; .........[ 136]: struct mpc_lintsrc { .........[ 137]: unsigned char type; .........[ 138]: unsigned char irqtype; .........[ 139]: unsigned short irqflag; .........[ 140]: unsigned char srcbusid; .........[ 141]: unsigned char srcbusirq; .........[ 142]: unsigned char destapic; .........[ 143]: unsigned char destapiclint; .........[ 144]: }; .........[ 148]: struct mpc_oemtable { .........[ 149]: char signature[4]; .........[ 150]: unsigned short length; .........[ 151]: char rev; .........[ 152]: char checksum; .........[ 153]: char mpc[8]; .........[ 154]: }; .........[ 168]: enum mp_bustype { .........[ 169]: MP_BUS_ISA = 1, .........[ 170]: MP_BUS_EISA, .........[ 171]: MP_BUS_PCI, .........[ 172]: }; .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec_def.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/x86_init.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/x86_init.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/screen_info.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/screen_info.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/screen_info.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/screen_info.h ............[ 10]: struct screen_info { ............[ 11]: __u8 orig_x; ............[ 12]: __u8 orig_y; ............[ 13]: __u16 ext_mem_k; ............[ 14]: __u16 orig_video_page; ............[ 15]: __u8 orig_video_mode; ............[ 16]: __u8 orig_video_cols; ............[ 17]: __u8 flags; ............[ 18]: __u8 unused2; ............[ 19]: __u16 orig_video_ega_bx; ............[ 20]: __u16 unused3; ............[ 21]: __u8 orig_video_lines; ............[ 22]: __u8 orig_video_isVGA; ............[ 23]: __u16 orig_video_points; ............[ 26]: __u16 lfb_width; ............[ 27]: __u16 lfb_height; ............[ 28]: __u16 lfb_depth; ............[ 29]: __u32 lfb_base; ............[ 30]: __u32 lfb_size; ............[ 31]: __u16 cl_magic, cl_offset; ............[ 32]: __u16 lfb_linelength; ............[ 33]: __u8 red_size; ............[ 34]: __u8 red_pos; ............[ 35]: __u8 green_size; ............[ 36]: __u8 green_pos; ............[ 37]: __u8 blue_size; ............[ 38]: __u8 blue_pos; ............[ 39]: __u8 rsvd_size; ............[ 40]: __u8 rsvd_pos; ............[ 41]: __u16 vesapm_seg; ............[ 42]: __u16 vesapm_off; ............[ 43]: __u16 pages; ............[ 44]: __u16 vesa_attributes; ............[ 45]: __u32 capabilities; ............[ 46]: __u8 _reserved[6]; ............[ 47]: } __attribute__((packed)); ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/screen_info.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/screen_info.h ...........[ 6]: extern struct screen_info screen_info; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/screen_info.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/apm_bios.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/apm_bios.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/apm_bios.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/apm_bios.h ............[ 21]: typedef unsigned short apm_event_t; ............[ 22]: typedef unsigned short apm_eventinfo_t; ............[ 24]: struct apm_bios_info { ............[ 25]: __u16 version; ............[ 26]: __u16 cseg; ............[ 27]: __u32 offset; ............[ 28]: __u16 cseg_16; ............[ 29]: __u16 dseg; ............[ 30]: __u16 flags; ............[ 31]: __u16 cseg_len; ............[ 32]: __u16 cseg_16_len; ............[ 33]: __u16 dseg_len; ............[ 34]: }; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/apm_bios.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/apm_bios.h ...........[ 35]: struct apm_info { ...........[ 36]: struct apm_bios_info bios; ...........[ 37]: unsigned short connection_version; ...........[ 38]: int get_power_status_broken; ...........[ 39]: int get_power_status_swabinminutes; ...........[ 40]: int allow_ints; ...........[ 41]: int forbid_idle; ...........[ 42]: int realmode_power_off; ...........[ 43]: int disabled; ...........[ 44]: }; ...........[ 94]: extern struct apm_info apm_info; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/apm_bios.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/edd.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/edd.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/edd.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/edd.h ............[ 71]: struct edd_device_params { ............[ 72]: __u16 length; ............[ 73]: __u16 info_flags; ............[ 74]: __u32 num_default_cylinders; ............[ 75]: __u32 num_default_heads; ............[ 76]: __u32 sectors_per_track; ............[ 77]: __u64 number_of_sectors; ............[ 78]: __u16 bytes_per_sector; ............[ 79]: __u32 dpte_ptr; ............[ 80]: __u16 key; ............[ 81]: __u8 device_path_info_length; ............[ 82]: __u8 reserved2; ............[ 83]: __u16 reserved3; ............[ 84]: __u8 host_bus_type[4]; ............[ 85]: __u8 interface_type[8]; ............[ 86]: union { ............[ 87]: struct { ............[ 88]: __u16 base_address; ............[ 89]: __u16 reserved1; ............[ 90]: __u32 reserved2; ............[ 91]: } __attribute__ ((packed)) isa; ............[ 92]: struct { ............[ 93]: __u8 bus; ............[ 94]: __u8 slot; ............[ 95]: __u8 function; ............[ 96]: __u8 channel; ............[ 97]: __u32 reserved; ............[ 98]: } __attribute__ ((packed)) pci; ............[ 100]: struct { ............[ 101]: __u64 reserved; ............[ 102]: } __attribute__ ((packed)) ibnd; ............[ 103]: struct { ............[ 104]: __u64 reserved; ............[ 105]: } __attribute__ ((packed)) xprs; ............[ 106]: struct { ............[ 107]: __u64 reserved; ............[ 108]: } __attribute__ ((packed)) htpt; ............[ 109]: struct { ............[ 110]: __u64 reserved; ............[ 111]: } __attribute__ ((packed)) unknown; ............[ 112]: } interface_path; ............[ 113]: union { ............[ 114]: struct { ............[ 115]: __u8 device; ............[ 116]: __u8 reserved1; ............[ 117]: __u16 reserved2; ............[ 118]: __u32 reserved3; ............[ 119]: __u64 reserved4; ............[ 120]: } __attribute__ ((packed)) ata; ............[ 121]: struct { ............[ 122]: __u8 device; ............[ 123]: __u8 lun; ............[ 124]: __u8 reserved1; ............[ 125]: __u8 reserved2; ............[ 126]: __u32 reserved3; ............[ 127]: __u64 reserved4; ............[ 128]: } __attribute__ ((packed)) atapi; ............[ 129]: struct { ............[ 130]: __u16 id; ............[ 131]: __u64 lun; ............[ 132]: __u16 reserved1; ............[ 133]: __u32 reserved2; ............[ 134]: } __attribute__ ((packed)) scsi; ............[ 135]: struct { ............[ 136]: __u64 serial_number; ............[ 137]: __u64 reserved; ............[ 138]: } __attribute__ ((packed)) usb; ............[ 139]: struct { ............[ 140]: __u64 eui; ............[ 141]: __u64 reserved; ............[ 142]: } __attribute__ ((packed)) i1394; ............[ 143]: struct { ............[ 144]: __u64 wwid; ............[ 145]: __u64 lun; ............[ 146]: } __attribute__ ((packed)) fibre; ............[ 147]: struct { ............[ 148]: __u64 identity_tag; ............[ 149]: __u64 reserved; ............[ 150]: } __attribute__ ((packed)) i2o; ............[ 151]: struct { ............[ 152]: __u32 array_number; ............[ 153]: __u32 reserved1; ............[ 154]: __u64 reserved2; ............[ 155]: } __attribute__ ((packed)) raid; ............[ 156]: struct { ............[ 157]: __u8 device; ............[ 158]: __u8 reserved1; ............[ 159]: __u16 reserved2; ............[ 160]: __u32 reserved3; ............[ 161]: __u64 reserved4; ............[ 162]: } __attribute__ ((packed)) sata; ............[ 163]: struct { ............[ 164]: __u64 reserved1; ............[ 165]: __u64 reserved2; ............[ 166]: } __attribute__ ((packed)) unknown; ............[ 167]: } device_path; ............[ 168]: __u8 reserved4; ............[ 169]: __u8 checksum; ............[ 170]: } __attribute__ ((packed)); ............[ 172]: struct edd_info { ............[ 173]: __u8 device; ............[ 174]: __u8 version; ............[ 175]: __u16 interface_support; ............[ 176]: __u16 legacy_max_cylinder; ............[ 177]: __u8 legacy_max_head; ............[ 178]: __u8 legacy_sectors_per_track; ............[ 179]: struct edd_device_params params; ............[ 180]: } __attribute__ ((packed)); ............[ 182]: struct edd { ............[ 183]: unsigned int mbr_signature[16]; ............[ 184]: struct edd_info edd_info[6]; ............[ 185]: unsigned char mbr_signature_nr; ............[ 186]: unsigned char edd_info_nr; ............[ 187]: }; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/edd.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/edd.h ...........[ 36]: extern struct edd edd; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/edd.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/e820.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/e820.h ...........[ 52]: struct e820entry { ...........[ 53]: __u64 addr; ...........[ 54]: __u64 size; ...........[ 55]: __u32 type; ...........[ 56]: } __attribute__((packed)); ...........[ 58]: struct e820map { ...........[ 59]: __u32 nr_map; ...........[ 60]: struct e820entry map[E820_X_MAX]; ...........[ 61]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/e820.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ist.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ist.h ...........[ 22]: struct ist_info { ...........[ 23]: __u32 signature; ...........[ 24]: __u32 command; ...........[ 25]: __u32 event; ...........[ 26]: __u32 perf_level; ...........[ 27]: }; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ist.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/video/edid.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/video/edid.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/video/edid.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/video/edid.h ............[ 4]: struct edid_info { ............[ 5]: unsigned char dummy[128]; ............[ 6]: }; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/video/edid.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/video/edid.h ...........[ 7]: extern struct edid_info edid_info; ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/video/edid.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h ..........[ 38]: struct setup_data { ..........[ 39]: __u64 next; ..........[ 40]: __u32 type; ..........[ 41]: __u32 len; ..........[ 42]: __u8 data[0]; ..........[ 43]: }; ..........[ 45]: struct setup_header { ..........[ 46]: __u8 setup_sects; ..........[ 47]: __u16 root_flags; ..........[ 48]: __u32 syssize; ..........[ 49]: __u16 ram_size; ..........[ 50]: __u16 vid_mode; ..........[ 51]: __u16 root_dev; ..........[ 52]: __u16 boot_flag; ..........[ 53]: __u16 jump; ..........[ 54]: __u32 header; ..........[ 55]: __u16 version; ..........[ 56]: __u32 realmode_swtch; ..........[ 57]: __u16 start_sys; ..........[ 58]: __u16 kernel_version; ..........[ 59]: __u8 type_of_loader; ..........[ 60]: __u8 loadflags; ..........[ 61]: __u16 setup_move_size; ..........[ 62]: __u32 code32_start; ..........[ 63]: __u32 ramdisk_image; ..........[ 64]: __u32 ramdisk_size; ..........[ 65]: __u32 bootsect_kludge; ..........[ 66]: __u16 heap_end_ptr; ..........[ 67]: __u8 ext_loader_ver; ..........[ 68]: __u8 ext_loader_type; ..........[ 69]: __u32 cmd_line_ptr; ..........[ 70]: __u32 initrd_addr_max; ..........[ 71]: __u32 kernel_alignment; ..........[ 72]: __u8 relocatable_kernel; ..........[ 73]: __u8 min_alignment; ..........[ 74]: __u16 xloadflags; ..........[ 75]: __u32 cmdline_size; ..........[ 76]: __u32 hardware_subarch; ..........[ 77]: __u64 hardware_subarch_data; ..........[ 78]: __u32 payload_offset; ..........[ 79]: __u32 payload_length; ..........[ 80]: __u64 setup_data; ..........[ 81]: __u64 pref_address; ..........[ 82]: __u32 init_size; ..........[ 83]: __u32 handover_offset; ..........[ 84]: } __attribute__((packed)); ..........[ 86]: struct sys_desc_table { ..........[ 87]: __u16 length; ..........[ 88]: __u8 table[14]; ..........[ 89]: }; ..........[ 92]: struct olpc_ofw_header { ..........[ 93]: __u32 ofw_magic; ..........[ 94]: __u32 ofw_version; ..........[ 95]: __u32 cif_handler; ..........[ 96]: __u32 irq_desc_table; ..........[ 97]: } __attribute__((packed)); ..........[ 99]: struct efi_info { ..........[ 100]: __u32 efi_loader_signature; ..........[ 101]: __u32 efi_systab; ..........[ 102]: __u32 efi_memdesc_size; ..........[ 103]: __u32 efi_memdesc_version; ..........[ 104]: __u32 efi_memmap; ..........[ 105]: __u32 efi_memmap_size; ..........[ 106]: __u32 efi_systab_hi; ..........[ 107]: __u32 efi_memmap_hi; ..........[ 108]: }; ..........[ 111]: struct boot_params { ..........[ 112]: struct screen_info screen_info; ..........[ 113]: struct apm_bios_info apm_bios_info; ..........[ 114]: __u8 _pad2[4]; ..........[ 115]: __u64 tboot_addr; ..........[ 116]: struct ist_info ist_info; ..........[ 117]: __u8 _pad3[16]; ..........[ 118]: __u8 hd0_info[16]; ..........[ 119]: __u8 hd1_info[16]; ..........[ 120]: struct sys_desc_table sys_desc_table; ..........[ 121]: struct olpc_ofw_header olpc_ofw_header; ..........[ 122]: __u32 ext_ramdisk_image; ..........[ 123]: __u32 ext_ramdisk_size; ..........[ 124]: __u32 ext_cmd_line_ptr; ..........[ 125]: __u8 _pad4[116]; ..........[ 126]: struct edid_info edid_info; ..........[ 127]: struct efi_info efi_info; ..........[ 128]: __u32 alt_mem_k; ..........[ 129]: __u32 scratch; ..........[ 130]: __u8 e820_entries; ..........[ 131]: __u8 eddbuf_entries; ..........[ 132]: __u8 edd_mbr_sig_buf_entries; ..........[ 133]: __u8 kbd_status; ..........[ 134]: __u8 _pad5[3]; ..........[ 146]: __u8 sentinel; ..........[ 147]: __u8 _pad6[1]; ..........[ 148]: struct setup_header hdr; ..........[ 149]: __u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)]; ..........[ 150]: __u32 edd_mbr_sig_buffer[16]; ..........[ 151]: struct e820entry e820_map[128]; ..........[ 152]: __u8 _pad8[48]; ..........[ 153]: struct edd_info eddbuf[6]; ..........[ 154]: __u8 _pad9[276]; ..........[ 155]: } __attribute__((packed)); ..........[ 157]: enum { ..........[ 158]: X86_SUBARCH_PC = 0, ..........[ 159]: X86_SUBARCH_LGUEST, ..........[ 160]: X86_SUBARCH_XEN, ..........[ 161]: X86_SUBARCH_INTEL_MID, ..........[ 162]: X86_SUBARCH_CE4100, ..........[ 163]: X86_NR_SUBARCHS, ..........[ 164]: }; ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/bootparam.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/x86_init.h .........[ 7]: struct mpc_bus; .........[ 8]: struct mpc_cpu; .........[ 9]: struct mpc_table; .........[ 10]: struct cpuinfo_x86; .........[ 23]: struct x86_init_mpparse { .........[ 24]: void (*mpc_record)(unsigned int mode); .........[ 25]: void (*setup_ioapic_ids)(void); .........[ 26]: int (*mpc_apic_id)(struct mpc_cpu *m); .........[ 27]: void (*smp_read_mpc_oem)(struct mpc_table *mpc); .........[ 28]: void (*mpc_oem_pci_bus)(struct mpc_bus *m); .........[ 29]: void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name); .........[ 30]: void (*find_smp_config)(void); .........[ 31]: void (*get_smp_config)(unsigned int early); .........[ 32]: }; .........[ 42]: struct x86_init_resources { .........[ 43]: void (*probe_roms)(void); .........[ 44]: void (*reserve_resources)(void); .........[ 45]: char *(*memory_setup)(void); .........[ 46]: }; .........[ 55]: struct x86_init_irqs { .........[ 56]: void (*pre_vector_init)(void); .........[ 57]: void (*intr_init)(void); .........[ 58]: void (*trap_init)(void); .........[ 59]: }; .........[ 66]: struct x86_init_oem { .........[ 67]: void (*arch_setup)(void); .........[ 68]: void (*banner)(void); .........[ 69]: }; .........[ 78]: struct x86_init_paging { .........[ 79]: void (*pagetable_init)(void); .........[ 80]: }; .........[ 90]: struct x86_init_timers { .........[ 91]: void (*setup_percpu_clockev)(void); .........[ 92]: void (*tsc_pre_init)(void); .........[ 93]: void (*timer_init)(void); .........[ 94]: void (*wallclock_init)(void); .........[ 95]: }; .........[ 101]: struct x86_init_iommu { .........[ 102]: int (*iommu_init)(void); .........[ 103]: }; .........[ 112]: struct x86_init_pci { .........[ 113]: int (*arch_init)(void); .........[ 114]: int (*init)(void); .........[ 115]: void (*init_irq)(void); .........[ 116]: void (*fixup_irqs)(void); .........[ 117]: }; .........[ 123]: struct x86_init_ops { .........[ 124]: struct x86_init_resources resources; .........[ 125]: struct x86_init_mpparse mpparse; .........[ 126]: struct x86_init_irqs irqs; .........[ 127]: struct x86_init_oem oem; .........[ 128]: struct x86_init_paging paging; .........[ 129]: struct x86_init_timers timers; .........[ 130]: struct x86_init_iommu iommu; .........[ 131]: struct x86_init_pci pci; .........[ 132]: }; .........[ 139]: struct x86_cpuinit_ops { .........[ 140]: void (*setup_percpu_clockev)(void); .........[ 141]: void (*early_percpu_clock_init)(void); .........[ 142]: void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node); .........[ 143]: }; .........[ 145]: struct timespec; .........[ 159]: struct x86_platform_ops { .........[ 160]: unsigned long (*calibrate_tsc)(void); .........[ 161]: void (*get_wallclock)(struct timespec *ts); .........[ 162]: int (*set_wallclock)(const struct timespec *ts); .........[ 163]: void (*iommu_shutdown)(void); .........[ 164]: bool (*is_untracked_pat_range)(u64 start, u64 end); .........[ 165]: void (*nmi_init)(void); .........[ 166]: unsigned char (*get_nmi_reason)(void); .........[ 167]: int (*i8042_detect)(void); .........[ 168]: void (*save_sched_clock_state)(void); .........[ 169]: void (*restore_sched_clock_state)(void); .........[ 170]: void (*apic_post_init)(void); .........[ 171]: }; .........[ 173]: struct pci_dev; .........[ 174]: struct msi_msg; .........[ 175]: struct msi_desc; .........[ 177]: struct x86_msi_ops { .........[ 178]: int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type); .........[ 179]: void (*compose_msi_msg)(struct pci_dev *dev, unsigned int irq, .........[ 180]: unsigned int dest, struct msi_msg *msg, .........[ 181]: u8 hpet_id); .........[ 182]: void (*teardown_msi_irq)(unsigned int irq); .........[ 183]: void (*teardown_msi_irqs)(struct pci_dev *dev); .........[ 184]: void (*restore_msi_irqs)(struct pci_dev *dev, int irq); .........[ 185]: int (*setup_hpet_msi)(unsigned int irq, unsigned int id); .........[ 186]: u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); .........[ 187]: u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); .........[ 188]: }; .........[ 190]: struct IO_APIC_route_entry; .........[ 191]: struct io_apic_irq_attr; .........[ 192]: struct irq_data; .........[ 193]: struct cpumask; .........[ 195]: struct x86_io_apic_ops { .........[ 196]: void (*init) (void); .........[ 197]: unsigned int (*read) (unsigned int apic, unsigned int reg); .........[ 198]: void (*write) (unsigned int apic, unsigned int reg, unsigned int value); .........[ 199]: void (*modify) (unsigned int apic, unsigned int reg, unsigned int value); .........[ 200]: void (*disable)(void); .........[ 201]: void (*print_entries)(unsigned int apic, unsigned int nr_entries); .........[ 202]: int (*set_affinity)(struct irq_data *data, .........[ 203]: const struct cpumask *mask, .........[ 204]: bool force); .........[ 205]: int (*setup_entry)(int irq, struct IO_APIC_route_entry *entry, .........[ 206]: unsigned int destination, int vector, .........[ 207]: struct io_apic_irq_attr *attr); .........[ 208]: void (*eoi_ioapic_pin)(int apic, int pin, int vector); .........[ 209]: }; .........[ 211]: extern struct x86_init_ops x86_init; .........[ 212]: extern struct x86_cpuinit_ops x86_cpuinit; .........[ 213]: extern struct x86_platform_ops x86_platform; .........[ 214]: extern struct x86_msi_ops x86_msi; .........[ 215]: extern struct x86_io_apic_ops x86_io_apic_ops; .........[ 216]: extern void x86_init_noop(void); .........[ 217]: extern void x86_init_uint_noop(unsigned int unused); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/x86_init.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apicdef.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apicdef.h .........[ 178]: struct local_apic { .........[ 180]: struct { unsigned int __reserved[4]; } __reserved_01; .........[ 182]: struct { unsigned int __reserved[4]; } __reserved_02; .........[ 184]: struct { .........[ 185]: unsigned int __reserved_1 : 24, .........[ 186]: phys_apic_id : 4, .........[ 187]: __reserved_2 : 4; .........[ 188]: unsigned int __reserved[3]; .........[ 189]: } id; .........[ 191]: const .........[ 192]: struct { .........[ 193]: unsigned int version : 8, .........[ 194]: __reserved_1 : 8, .........[ 195]: max_lvt : 8, .........[ 196]: __reserved_2 : 8; .........[ 197]: unsigned int __reserved[3]; .........[ 198]: } version; .........[ 200]: struct { unsigned int __reserved[4]; } __reserved_03; .........[ 202]: struct { unsigned int __reserved[4]; } __reserved_04; .........[ 204]: struct { unsigned int __reserved[4]; } __reserved_05; .........[ 206]: struct { unsigned int __reserved[4]; } __reserved_06; .........[ 208]: struct { .........[ 209]: unsigned int priority : 8, .........[ 210]: __reserved_1 : 24; .........[ 211]: unsigned int __reserved_2[3]; .........[ 212]: } tpr; .........[ 214]: const .........[ 215]: struct { .........[ 216]: unsigned int priority : 8, .........[ 217]: __reserved_1 : 24; .........[ 218]: unsigned int __reserved_2[3]; .........[ 219]: } apr; .........[ 221]: const .........[ 222]: struct { .........[ 223]: unsigned int priority : 8, .........[ 224]: __reserved_1 : 24; .........[ 225]: unsigned int __reserved_2[3]; .........[ 226]: } ppr; .........[ 228]: struct { .........[ 229]: unsigned int eoi; .........[ 230]: unsigned int __reserved[3]; .........[ 231]: } eoi; .........[ 233]: struct { unsigned int __reserved[4]; } __reserved_07; .........[ 235]: struct { .........[ 236]: unsigned int __reserved_1 : 24, .........[ 237]: logical_dest : 8; .........[ 238]: unsigned int __reserved_2[3]; .........[ 239]: } ldr; .........[ 241]: struct { .........[ 242]: unsigned int __reserved_1 : 28, .........[ 243]: model : 4; .........[ 244]: unsigned int __reserved_2[3]; .........[ 245]: } dfr; .........[ 247]: struct { .........[ 248]: unsigned int spurious_vector : 8, .........[ 249]: apic_enabled : 1, .........[ 250]: focus_cpu : 1, .........[ 251]: __reserved_2 : 22; .........[ 252]: unsigned int __reserved_3[3]; .........[ 253]: } svr; .........[ 255]: struct { .........[ 256]: unsigned int bitfield; .........[ 257]: unsigned int __reserved[3]; .........[ 258]: } isr [8]; .........[ 260]: struct { .........[ 261]: unsigned int bitfield; .........[ 262]: unsigned int __reserved[3]; .........[ 263]: } tmr [8]; .........[ 265]: struct { .........[ 266]: unsigned int bitfield; .........[ 267]: unsigned int __reserved[3]; .........[ 268]: } irr [8]; .........[ 270]: union { .........[ 271]: struct { .........[ 272]: unsigned int send_cs_error : 1, .........[ 273]: receive_cs_error : 1, .........[ 274]: send_accept_error : 1, .........[ 275]: receive_accept_error : 1, .........[ 276]: __reserved_1 : 1, .........[ 277]: send_illegal_vector : 1, .........[ 278]: receive_illegal_vector : 1, .........[ 279]: illegal_register_address : 1, .........[ 280]: __reserved_2 : 24; .........[ 281]: unsigned int __reserved_3[3]; .........[ 282]: } error_bits; .........[ 283]: struct { .........[ 284]: unsigned int errors; .........[ 285]: unsigned int __reserved_3[3]; .........[ 286]: } all_errors; .........[ 287]: } esr; .........[ 289]: struct { unsigned int __reserved[4]; } __reserved_08; .........[ 291]: struct { unsigned int __reserved[4]; } __reserved_09; .........[ 293]: struct { unsigned int __reserved[4]; } __reserved_10; .........[ 295]: struct { unsigned int __reserved[4]; } __reserved_11; .........[ 297]: struct { unsigned int __reserved[4]; } __reserved_12; .........[ 299]: struct { unsigned int __reserved[4]; } __reserved_13; .........[ 301]: struct { unsigned int __reserved[4]; } __reserved_14; .........[ 303]: struct { .........[ 304]: unsigned int vector : 8, .........[ 305]: delivery_mode : 3, .........[ 306]: destination_mode : 1, .........[ 307]: delivery_status : 1, .........[ 308]: __reserved_1 : 1, .........[ 309]: level : 1, .........[ 310]: trigger : 1, .........[ 311]: __reserved_2 : 2, .........[ 312]: shorthand : 2, .........[ 313]: __reserved_3 : 12; .........[ 314]: unsigned int __reserved_4[3]; .........[ 315]: } icr1; .........[ 317]: struct { .........[ 318]: union { .........[ 319]: unsigned int __reserved_1 : 24, .........[ 320]: phys_dest : 4, .........[ 321]: __reserved_2 : 4; .........[ 322]: unsigned int __reserved_3 : 24, .........[ 323]: logical_dest : 8; .........[ 324]: } dest; .........[ 325]: unsigned int __reserved_4[3]; .........[ 326]: } icr2; .........[ 328]: struct { .........[ 329]: unsigned int vector : 8, .........[ 330]: __reserved_1 : 4, .........[ 331]: delivery_status : 1, .........[ 332]: __reserved_2 : 3, .........[ 333]: mask : 1, .........[ 334]: timer_mode : 1, .........[ 335]: __reserved_3 : 14; .........[ 336]: unsigned int __reserved_4[3]; .........[ 337]: } lvt_timer; .........[ 339]: struct { .........[ 340]: unsigned int vector : 8, .........[ 341]: delivery_mode : 3, .........[ 342]: __reserved_1 : 1, .........[ 343]: delivery_status : 1, .........[ 344]: __reserved_2 : 3, .........[ 345]: mask : 1, .........[ 346]: __reserved_3 : 15; .........[ 347]: unsigned int __reserved_4[3]; .........[ 348]: } lvt_thermal; .........[ 350]: struct { .........[ 351]: unsigned int vector : 8, .........[ 352]: delivery_mode : 3, .........[ 353]: __reserved_1 : 1, .........[ 354]: delivery_status : 1, .........[ 355]: __reserved_2 : 3, .........[ 356]: mask : 1, .........[ 357]: __reserved_3 : 15; .........[ 358]: unsigned int __reserved_4[3]; .........[ 359]: } lvt_pc; .........[ 361]: struct { .........[ 362]: unsigned int vector : 8, .........[ 363]: delivery_mode : 3, .........[ 364]: __reserved_1 : 1, .........[ 365]: delivery_status : 1, .........[ 366]: polarity : 1, .........[ 367]: remote_irr : 1, .........[ 368]: trigger : 1, .........[ 369]: mask : 1, .........[ 370]: __reserved_2 : 15; .........[ 371]: unsigned int __reserved_3[3]; .........[ 372]: } lvt_lint0; .........[ 374]: struct { .........[ 375]: unsigned int vector : 8, .........[ 376]: delivery_mode : 3, .........[ 377]: __reserved_1 : 1, .........[ 378]: delivery_status : 1, .........[ 379]: polarity : 1, .........[ 380]: remote_irr : 1, .........[ 381]: trigger : 1, .........[ 382]: mask : 1, .........[ 383]: __reserved_2 : 15; .........[ 384]: unsigned int __reserved_3[3]; .........[ 385]: } lvt_lint1; .........[ 387]: struct { .........[ 388]: unsigned int vector : 8, .........[ 389]: __reserved_1 : 4, .........[ 390]: delivery_status : 1, .........[ 391]: __reserved_2 : 3, .........[ 392]: mask : 1, .........[ 393]: __reserved_3 : 15; .........[ 394]: unsigned int __reserved_4[3]; .........[ 395]: } lvt_error; .........[ 397]: struct { .........[ 398]: unsigned int initial_count; .........[ 399]: unsigned int __reserved_2[3]; .........[ 400]: } timer_icr; .........[ 402]: const .........[ 403]: struct { .........[ 404]: unsigned int curr_count; .........[ 405]: unsigned int __reserved_2[3]; .........[ 406]: } timer_ccr; .........[ 408]: struct { unsigned int __reserved[4]; } __reserved_16; .........[ 410]: struct { unsigned int __reserved[4]; } __reserved_17; .........[ 412]: struct { unsigned int __reserved[4]; } __reserved_18; .........[ 414]: struct { unsigned int __reserved[4]; } __reserved_19; .........[ 416]: struct { .........[ 417]: unsigned int divisor : 4, .........[ 418]: __reserved_1 : 28; .........[ 419]: unsigned int __reserved_2[3]; .........[ 420]: } timer_dcr; .........[ 422]: struct { unsigned int __reserved[4]; } __reserved_20; .........[ 424]: } __attribute__ ((packed)); .........[ 434]: enum ioapic_irq_destination_types { .........[ 435]: dest_Fixed = 0, .........[ 436]: dest_LowestPrio = 1, .........[ 437]: dest_SMI = 2, .........[ 438]: dest__reserved_1 = 3, .........[ 439]: dest_NMI = 4, .........[ 440]: dest_INIT = 5, .........[ 441]: dest__reserved_2 = 6, .........[ 442]: dest_ExtINT = 7 .........[ 443]: }; .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apicdef.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h ........[ 10]: extern int apic_version[]; ........[ 11]: extern int pic_mode; ........[ 47]: extern unsigned long mp_bus_not_pci[(((256) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ........[ 49]: extern unsigned int boot_cpu_physical_apicid; ........[ 50]: extern unsigned int max_physical_apicid; ........[ 51]: extern int mpc_default_type; ........[ 52]: extern unsigned long mp_lapic_addr; ........[ 55]: extern int smp_found_config; ........[ 60]: static inline __attribute__((no_instrument_function)) void get_smp_config(void) ........[ 61]: { ........[ 62]: x86_init.mpparse.get_smp_config(0); ........[ 63]: } ........[ 65]: static inline __attribute__((no_instrument_function)) void early_get_smp_config(void) ........[ 66]: { ........[ 67]: x86_init.mpparse.get_smp_config(1); ........[ 68]: } ........[ 70]: static inline __attribute__((no_instrument_function)) void find_smp_config(void) ........[ 71]: { ........[ 72]: x86_init.mpparse.find_smp_config(); ........[ 73]: } ........[ 76]: extern void early_reserve_e820_mpc_new(void); ........[ 77]: extern int enable_update_mptable; ........[ 78]: extern int default_mpc_apic_id(struct mpc_cpu *m); ........[ 79]: extern void default_smp_read_mpc_oem(struct mpc_table *mpc); ........[ 81]: extern void default_mpc_oem_bus_info(struct mpc_bus *m, char *str); ........[ 85]: extern void default_find_smp_config(void); ........[ 86]: extern void default_get_smp_config(unsigned int early); ........[ 97]: int generic_processor_info(int apicid, int version); ........[ 99]: extern void mp_register_ioapic(int id, u32 address, u32 gsi_base); ........[ 100]: extern void mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, ........[ 101]: u32 gsi); ........[ 102]: extern void mp_config_acpi_legacy_irqs(void); ........[ 103]: struct device; ........[ 104]: extern int mp_register_gsi(struct device *dev, u32 gsi, int edge_level, ........[ 105]: int active_high_low); ........[ 110]: struct physid_mask { ........[ 111]: unsigned long mask[(((32768) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ........[ 112]: }; ........[ 114]: typedef struct physid_mask physid_mask_t; ........[ 149]: static inline __attribute__((no_instrument_function)) unsigned long physids_coerce(physid_mask_t *map) ........[ 150]: { ........[ 151]: return map->mask[0]; ........[ 152]: } ........[ 154]: static inline __attribute__((no_instrument_function)) void physids_promote(unsigned long physids, physid_mask_t \ ........ *map) ........[ 155]: { ........[ 156]: bitmap_zero((*map).mask, 32768); ........[ 157]: map->mask[0] = physids; ........[ 158]: } ........[ 160]: static inline __attribute__((no_instrument_function)) void physid_set_mask_of_physid(int physid, physid_mask_t \ ........ *map) ........[ 161]: { ........[ 162]: bitmap_zero((*map).mask, 32768); ........[ 163]: set_bit(physid, (*map).mask); ........[ 164]: } ........[ 169]: extern physid_mask_t phys_cpu_present_map; ........[ 171]: extern int generic_mps_oem_check(struct mpc_table *, char *, char *); ........[ 173]: extern int default_acpi_madt_oem_check(char *, char *); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/workqueue.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/workqueue.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timer.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timer.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ktime.h ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ktime.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jiffies.h ............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jiffies.h .............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timex.h .............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timex.h ..............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/timex.h ...............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/timex.h ...............[ 64]: struct timex { ...............[ 65]: unsigned int modes; ...............[ 66]: long offset; ...............[ 67]: long freq; ...............[ 68]: long maxerror; ...............[ 69]: long esterror; ...............[ 70]: int status; ...............[ 71]: long constant; ...............[ 72]: long precision; ...............[ 73]: long tolerance; ...............[ 76]: struct timeval time; ...............[ 77]: long tick; ...............[ 79]: long ppsfreq; ...............[ 80]: long jitter; ...............[ 81]: int shift; ...............[ 82]: long stabil; ...............[ 83]: long jitcnt; ...............[ 84]: long calcnt; ...............[ 85]: long errcnt; ...............[ 86]: long stbcnt; ...............[ 88]: int tai; ...............[ 90]: int :32; int :32; int :32; int :32; ...............[ 91]: int :32; int :32; int :32; int :32; ...............[ 92]: int :32; int :32; int :32; ...............[ 93]: }; ...............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/timex.h .............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timex.h ..............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/timex.h ..............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/timex.h ...............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/tsc.h ................# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/tsc.h ................[ 15]: typedef unsigned long long cycles_t; ................[ 17]: extern unsigned int cpu_khz; ................[ 18]: extern unsigned int tsc_khz; ................[ 20]: extern void disable_TSC(void); ................[ 22]: static inline __attribute__((no_instrument_function)) cycles_t get_cycles(void) ................[ 23]: { ................[ 24]: unsigned long long ret = 0; ................[ 30]: rdtscll(ret); ................[ 32]: return ret; ................[ 33]: } ................[ 35]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) cycles_t vget_cycles\ ................ (void) ................[ 36]: { ................[ 45]: return (cycles_t)__native_read_tsc(); ................[ 46]: } ................[ 48]: extern void tsc_init(void); ................[ 49]: extern void mark_tsc_unstable(char *reason); ................[ 50]: extern int unsynchronized_tsc(void); ................[ 51]: extern int check_tsc_unstable(void); ................[ 52]: extern int check_tsc_disabled(void); ................[ 53]: extern unsigned long native_calibrate_tsc(void); ................[ 55]: extern int tsc_clocksource_reliable; ................[ 61]: extern void check_tsc_sync_source(int cpu); ................[ 62]: extern void check_tsc_sync_target(void); ................[ 64]: extern int notsc_setup(char *); ................[ 65]: extern void tsc_save_sched_clock_state(void); ................[ 66]: extern void tsc_restore_sched_clock_state(void); ................# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/tsc.h ...............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/timex.h ..............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timex.h ..............[ 139]: extern unsigned long tick_usec; ..............[ 140]: extern unsigned long tick_nsec; ..............[ 154]: extern int do_adjtimex(struct timex *); ..............[ 155]: extern void hardpps(const struct timespec *, const struct timespec *); ..............[ 157]: int read_current_timer(unsigned long *timer_val); ..............[ 158]: void ntp_notify_cmos_timer(void); ..............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timex.h .............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jiffies.h .............[ 57]: extern int register_refined_jiffies(long clock_tick_rate); .............[ 76]: extern u64 __attribute__((section(".data"))) jiffies_64; .............[ 77]: extern unsigned long volatile __attribute__((section(".data"))) jiffies; .............[ 82]: static inline __attribute__((no_instrument_function)) u64 get_jiffies_64(void) .............[ 83]: { .............[ 84]: return (u64)jiffies; .............[ 85]: } .............[ 182]: extern unsigned long preset_lpj; .............[ 295]: extern unsigned int jiffies_to_msecs(const unsigned long j); .............[ 296]: extern unsigned int jiffies_to_usecs(const unsigned long j); .............[ 297]: extern unsigned long msecs_to_jiffies(const unsigned int m); .............[ 298]: extern unsigned long usecs_to_jiffies(const unsigned int u); .............[ 299]: extern unsigned long timespec_to_jiffies(const struct timespec *value); .............[ 300]: extern void jiffies_to_timespec(const unsigned long jiffies, .............[ 301]: struct timespec *value); .............[ 302]: extern unsigned long timeval_to_jiffies(const struct timeval *value); .............[ 303]: extern void jiffies_to_timeval(const unsigned long jiffies, .............[ 304]: struct timeval *value); .............[ 306]: extern clock_t jiffies_to_clock_t(unsigned long x); .............[ 307]: static inline __attribute__((no_instrument_function)) clock_t jiffies_delta_to_clock_t(long delta) .............[ 308]: { .............[ 309]: return jiffies_to_clock_t(({ typeof(0L) _max1 = (0L); typeof(delta) _max2 = (delta); (void) (&_max1 == &_max2); _max1 \ ............. > _max2 ? _max1 : _max2; })); .............[ 310]: } .............[ 312]: extern unsigned long clock_t_to_jiffies(unsigned long x); .............[ 313]: extern u64 jiffies_64_to_clock_t(u64 x); .............[ 314]: extern u64 nsec_to_clock_t(u64 x); .............[ 315]: extern u64 nsecs_to_jiffies64(u64 n); .............[ 316]: extern unsigned long nsecs_to_jiffies(u64 n); .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/jiffies.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ktime.h ............[ 46]: union ktime { ............[ 47]: s64 tv64; ............[ 57]: }; ............[ 59]: typedef union ktime ktime_t; ............[ 74]: static inline __attribute__((no_instrument_function)) ktime_t ktime_set(const long secs, const unsigned long nsecs\ ............ ) ............[ 75]: { ............[ 77]: if (__builtin_expect(!!(secs >= (((s64)~((u64)1 << 63)) / 1000000000L)), 0)) ............[ 78]: return (ktime_t){ .tv64 = ((s64)~((u64)1 << 63)) }; ............[ 80]: return (ktime_t) { .tv64 = (s64)secs * 1000000000L + (s64)nsecs }; ............[ 81]: } ............[ 106]: static inline __attribute__((no_instrument_function)) ktime_t timespec_to_ktime(struct timespec ts) ............[ 107]: { ............[ 108]: return ktime_set(ts.tv_sec, ts.tv_nsec); ............[ 109]: } ............[ 112]: static inline __attribute__((no_instrument_function)) ktime_t timeval_to_ktime(struct timeval tv) ............[ 113]: { ............[ 114]: return ktime_set(tv.tv_sec, tv.tv_usec * 1000L); ............[ 115]: } ............[ 283]: static inline __attribute__((no_instrument_function)) int ktime_equal(const ktime_t cmp1, const ktime_t cmp2) ............[ 284]: { ............[ 285]: return cmp1.tv64 == cmp2.tv64; ............[ 286]: } ............[ 298]: static inline __attribute__((no_instrument_function)) int ktime_compare(const ktime_t cmp1, const ktime_t cmp2\ ............ ) ............[ 299]: { ............[ 300]: if (cmp1.tv64 < cmp2.tv64) ............[ 301]: return -1; ............[ 302]: if (cmp1.tv64 > cmp2.tv64) ............[ 303]: return 1; ............[ 304]: return 0; ............[ 305]: } ............[ 307]: static inline __attribute__((no_instrument_function)) s64 ktime_to_us(const ktime_t kt) ............[ 308]: { ............[ 309]: struct timeval tv = ns_to_timeval((kt).tv64); ............[ 310]: return (s64) tv.tv_sec * 1000000L + tv.tv_usec; ............[ 311]: } ............[ 313]: static inline __attribute__((no_instrument_function)) s64 ktime_to_ms(const ktime_t kt) ............[ 314]: { ............[ 315]: struct timeval tv = ns_to_timeval((kt).tv64); ............[ 316]: return (s64) tv.tv_sec * 1000L + tv.tv_usec / 1000L; ............[ 317]: } ............[ 319]: static inline __attribute__((no_instrument_function)) s64 ktime_us_delta(const ktime_t later, const ktime_t earlier\ ............ ) ............[ 320]: { ............[ 321]: return ktime_to_us(({ (ktime_t){ .tv64 = (later).tv64 - (earlier).tv64 }; })); ............[ 322]: } ............[ 324]: static inline __attribute__((no_instrument_function)) ktime_t ktime_add_us(const ktime_t kt, const u64 usec) ............[ 325]: { ............[ 326]: return ({ (ktime_t){ .tv64 = (kt).tv64 + (usec * 1000L) }; }); ............[ 327]: } ............[ 329]: static inline __attribute__((no_instrument_function)) ktime_t ktime_add_ms(const ktime_t kt, const u64 msec) ............[ 330]: { ............[ 331]: return ({ (ktime_t){ .tv64 = (kt).tv64 + (msec * 1000000L) }; }); ............[ 332]: } ............[ 334]: static inline __attribute__((no_instrument_function)) ktime_t ktime_sub_us(const ktime_t kt, const u64 usec) ............[ 335]: { ............[ 336]: return ({ (ktime_t){ .tv64 = (kt).tv64 - (usec * 1000L) }; }); ............[ 337]: } ............[ 339]: extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs); ............[ 349]: static inline __attribute__((no_instrument_function)) bool ktime_to_timespec_cond(const ktime_t kt, ............[ 350]: struct timespec *ts) ............[ 351]: { ............[ 352]: if (kt.tv64) { ............[ 353]: *ts = ns_to_timespec((kt).tv64); ............[ 354]: return true; ............[ 355]: } else { ............[ 356]: return false; ............[ 357]: } ............[ 358]: } ............[ 370]: extern void ktime_get_ts(struct timespec *ts); ............[ 375]: static inline __attribute__((no_instrument_function)) ktime_t ns_to_ktime(u64 ns) ............[ 376]: { ............[ 377]: static const ktime_t ktime_zero = { .tv64 = 0 }; ............[ 379]: return ({ (ktime_t){ .tv64 = (ktime_zero).tv64 + (ns) }; }); ............[ 380]: } ............[ 382]: static inline __attribute__((no_instrument_function)) ktime_t ms_to_ktime(u64 ms) ............[ 383]: { ............[ 384]: static const ktime_t ktime_zero = { .tv64 = 0 }; ............[ 386]: return ktime_add_ms(ktime_zero, ms); ............[ 387]: } ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ktime.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timer.h ...........[ 10]: struct tvec_base; ...........[ 12]: struct timer_list { ...........[ 17]: struct list_head entry; ...........[ 18]: unsigned long expires; ...........[ 19]: struct tvec_base *base; ...........[ 21]: void (*function)(unsigned long); ...........[ 22]: unsigned long data; ...........[ 24]: int slack; ...........[ 27]: int start_pid; ...........[ 28]: void *start_site; ...........[ 29]: char start_comm[16]; ...........[ 34]: }; ...........[ 36]: extern struct tvec_base boot_tvec_bases; ...........[ 94]: void init_timer_key(struct timer_list *timer, unsigned int flags, ...........[ 95]: const char *name, struct lock_class_key *key); ...........[ 103]: static inline __attribute__((no_instrument_function)) void destroy_timer_on_stack(struct timer_list *timer\ ........... ) { } ...........[ 104]: static inline __attribute__((no_instrument_function)) void init_timer_on_stack_key(struct timer_list *timer\ ........... , ...........[ 105]: unsigned int flags, const char *name, ...........[ 106]: struct lock_class_key *key) ...........[ 107]: { ...........[ 108]: init_timer_key(timer, flags, name, key); ...........[ 109]: } ...........[ 169]: static inline __attribute__((no_instrument_function)) int timer_pending(const struct timer_list * timer) ...........[ 170]: { ...........[ 171]: return timer->entry.next != ((void *)0); ...........[ 172]: } ...........[ 174]: extern void add_timer_on(struct timer_list *timer, int cpu); ...........[ 175]: extern int del_timer(struct timer_list * timer); ...........[ 176]: extern int mod_timer(struct timer_list *timer, unsigned long expires); ...........[ 177]: extern int mod_timer_pending(struct timer_list *timer, unsigned long expires); ...........[ 178]: extern int mod_timer_pinned(struct timer_list *timer, unsigned long expires); ...........[ 180]: extern void set_timer_slack(struct timer_list *time, int slack_hz); ...........[ 195]: extern unsigned long get_next_timer_interrupt(unsigned long now); ...........[ 202]: extern int timer_stats_active; ...........[ 206]: extern void init_timer_stats(void); ...........[ 208]: extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf, ...........[ 209]: void *timerf, char *comm, ...........[ 210]: unsigned int timer_flag); ...........[ 212]: extern void __timer_stats_timer_set_start_info(struct timer_list *timer, ...........[ 213]: void *addr); ...........[ 215]: static inline __attribute__((no_instrument_function)) void timer_stats_timer_set_start_info(struct timer_list \ ........... *timer) ...........[ 216]: { ...........[ 217]: if (__builtin_expect(!!(!timer_stats_active), 1)) ...........[ 218]: return; ...........[ 219]: __timer_stats_timer_set_start_info(timer, __builtin_return_address(0)); ...........[ 220]: } ...........[ 222]: static inline __attribute__((no_instrument_function)) void timer_stats_timer_clear_start_info(struct timer_list \ ........... *timer) ...........[ 223]: { ...........[ 224]: timer->start_site = ((void *)0); ...........[ 225]: } ...........[ 240]: extern void add_timer(struct timer_list *timer); ...........[ 242]: extern int try_to_del_timer_sync(struct timer_list *timer); ...........[ 245]: extern int del_timer_sync(struct timer_list *timer); ...........[ 252]: extern void init_timers(void); ...........[ 253]: extern void run_local_timers(void); ...........[ 254]: struct hrtimer; ...........[ 255]: extern enum hrtimer_restart it_real_fn(struct hrtimer *); ...........[ 257]: unsigned long __round_jiffies(unsigned long j, int cpu); ...........[ 258]: unsigned long __round_jiffies_relative(unsigned long j, int cpu); ...........[ 259]: unsigned long round_jiffies(unsigned long j); ...........[ 260]: unsigned long round_jiffies_relative(unsigned long j); ...........[ 262]: unsigned long __round_jiffies_up(unsigned long j, int cpu); ...........[ 263]: unsigned long __round_jiffies_up_relative(unsigned long j, int cpu); ...........[ 264]: unsigned long round_jiffies_up(unsigned long j); ...........[ 265]: unsigned long round_jiffies_up_relative(unsigned long j); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timer.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/workqueue.h ..........[ 16]: struct workqueue_struct; ..........[ 18]: struct work_struct; ..........[ 19]: typedef void (*work_func_t)(struct work_struct *work); ..........[ 20]: void delayed_work_timer_fn(unsigned long __data); ..........[ 28]: enum { ..........[ 29]: WORK_STRUCT_PENDING_BIT = 0, ..........[ 30]: WORK_STRUCT_DELAYED_BIT = 1, ..........[ 31]: WORK_STRUCT_PWQ_BIT = 2, ..........[ 32]: WORK_STRUCT_LINKED_BIT = 3, ..........[ 37]: WORK_STRUCT_COLOR_SHIFT = 4, ..........[ 40]: WORK_STRUCT_COLOR_BITS = 4, ..........[ 42]: WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT, ..........[ 43]: WORK_STRUCT_DELAYED = 1 << WORK_STRUCT_DELAYED_BIT, ..........[ 44]: WORK_STRUCT_PWQ = 1 << WORK_STRUCT_PWQ_BIT, ..........[ 45]: WORK_STRUCT_LINKED = 1 << WORK_STRUCT_LINKED_BIT, ..........[ 49]: WORK_STRUCT_STATIC = 0, ..........[ 56]: WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1, ..........[ 57]: WORK_NO_COLOR = WORK_NR_COLORS, ..........[ 60]: WORK_CPU_UNBOUND = 64, ..........[ 61]: WORK_CPU_END = 64 + 1, ..........[ 68]: WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT + ..........[ 69]: WORK_STRUCT_COLOR_BITS, ..........[ 72]: WORK_OFFQ_FLAG_BASE = WORK_STRUCT_COLOR_SHIFT, ..........[ 74]: WORK_OFFQ_CANCELING = (1 << WORK_OFFQ_FLAG_BASE), ..........[ 81]: WORK_OFFQ_FLAG_BITS = 1, ..........[ 82]: WORK_OFFQ_POOL_SHIFT = WORK_OFFQ_FLAG_BASE + WORK_OFFQ_FLAG_BITS, ..........[ 83]: WORK_OFFQ_LEFT = 64 - WORK_OFFQ_POOL_SHIFT, ..........[ 84]: WORK_OFFQ_POOL_BITS = WORK_OFFQ_LEFT <= 31 ? WORK_OFFQ_LEFT : 31, ..........[ 85]: WORK_OFFQ_POOL_NONE = (1LU << WORK_OFFQ_POOL_BITS) - 1, ..........[ 88]: WORK_STRUCT_FLAG_MASK = (1UL << WORK_STRUCT_FLAG_BITS) - 1, ..........[ 89]: WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK, ..........[ 90]: WORK_STRUCT_NO_POOL = (unsigned long)WORK_OFFQ_POOL_NONE << WORK_OFFQ_POOL_SHIFT, ..........[ 93]: WORK_BUSY_PENDING = 1 << 0, ..........[ 94]: WORK_BUSY_RUNNING = 1 << 1, ..........[ 97]: WORKER_DESC_LEN = 24, ..........[ 98]: }; ..........[ 100]: struct work_struct { ..........[ 101]: atomic_long_t data; ..........[ 102]: struct list_head entry; ..........[ 103]: work_func_t func; ..........[ 107]: }; ..........[ 113]: struct delayed_work { ..........[ 114]: struct work_struct work; ..........[ 115]: struct timer_list timer; ..........[ 118]: struct workqueue_struct *wq; ..........[ 119]: int cpu; ..........[ 120]: }; ..........[ 130]: struct workqueue_attrs { ..........[ 131]: int nice; ..........[ 132]: cpumask_var_t cpumask; ..........[ 133]: bool no_numa; ..........[ 134]: }; ..........[ 136]: static inline __attribute__((no_instrument_function)) struct delayed_work *to_delayed_work(struct work_struct \ .......... *work) ..........[ 137]: { ..........[ 138]: return ({ const typeof( ((struct delayed_work *)0)->work ) *__mptr = (work); (struct delayed_work *)( (char *)__mptr \ .......... - __builtin_offsetof(struct delayed_work,work) );}); ..........[ 139]: } ..........[ 141]: struct execute_work { ..........[ 142]: struct work_struct work; ..........[ 143]: }; ..........[ 199]: static inline __attribute__((no_instrument_function)) void __init_work(struct work_struct *work, int onstack\ .......... ) { } ..........[ 200]: static inline __attribute__((no_instrument_function)) void destroy_work_on_stack(struct work_struct *work) \ .......... { } ..........[ 201]: static inline __attribute__((no_instrument_function)) unsigned int work_static(struct work_struct *work) { return \ .......... 0; } ..........[ 297]: enum { ..........[ 302]: WQ_NON_REENTRANT = 1 << 0, ..........[ 304]: WQ_UNBOUND = 1 << 1, ..........[ 305]: WQ_FREEZABLE = 1 << 2, ..........[ 306]: WQ_MEM_RECLAIM = 1 << 3, ..........[ 307]: WQ_HIGHPRI = 1 << 4, ..........[ 308]: WQ_CPU_INTENSIVE = 1 << 5, ..........[ 309]: WQ_SYSFS = 1 << 6, ..........[ 336]: WQ_POWER_EFFICIENT = 1 << 7, ..........[ 338]: __WQ_DRAINING = 1 << 16, ..........[ 339]: __WQ_ORDERED = 1 << 17, ..........[ 341]: WQ_MAX_ACTIVE = 512, ..........[ 342]: WQ_MAX_UNBOUND_PER_CPU = 4, ..........[ 343]: WQ_DFL_ACTIVE = WQ_MAX_ACTIVE / 2, ..........[ 344]: }; ..........[ 375]: extern struct workqueue_struct *system_wq; ..........[ 376]: extern struct workqueue_struct *system_long_wq; ..........[ 377]: extern struct workqueue_struct *system_unbound_wq; ..........[ 378]: extern struct workqueue_struct *system_freezable_wq; ..........[ 379]: extern struct workqueue_struct *system_power_efficient_wq; ..........[ 380]: extern struct workqueue_struct *system_freezable_power_efficient_wq; ..........[ 382]: static inline __attribute__((no_instrument_function)) struct workqueue_struct * __system_nrt_wq(void) ..........[ 383]: { ..........[ 384]: return system_wq; ..........[ 385]: } ..........[ 387]: static inline __attribute__((no_instrument_function)) struct workqueue_struct * __system_nrt_freezable_wq(\ .......... void) ..........[ 388]: { ..........[ 389]: return system_freezable_wq; ..........[ 390]: } ..........[ 396]: extern struct workqueue_struct * ..........[ 397]: __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active, ..........[ 398]: struct lock_class_key *key, const char *lock_name, ...) __attribute__((format(printf, 1, 6))); ..........[ 460]: extern void destroy_workqueue(struct workqueue_struct *wq); ..........[ 462]: struct workqueue_attrs *alloc_workqueue_attrs(gfp_t gfp_mask); ..........[ 463]: void free_workqueue_attrs(struct workqueue_attrs *attrs); ..........[ 464]: int apply_workqueue_attrs(struct workqueue_struct *wq, ..........[ 465]: const struct workqueue_attrs *attrs); ..........[ 467]: extern bool queue_work_on(int cpu, struct workqueue_struct *wq, ..........[ 468]: struct work_struct *work); ..........[ 469]: extern bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq, ..........[ 470]: struct delayed_work *work, unsigned long delay); ..........[ 471]: extern bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, ..........[ 472]: struct delayed_work *dwork, unsigned long delay); ..........[ 474]: extern void flush_workqueue(struct workqueue_struct *wq); ..........[ 475]: extern void drain_workqueue(struct workqueue_struct *wq); ..........[ 476]: extern void flush_scheduled_work(void); ..........[ 478]: extern int schedule_on_each_cpu(work_func_t func); ..........[ 480]: int execute_in_process_context(work_func_t fn, struct execute_work *); ..........[ 482]: extern bool flush_work(struct work_struct *work); ..........[ 483]: extern bool cancel_work_sync(struct work_struct *work); ..........[ 485]: extern bool flush_delayed_work(struct delayed_work *dwork); ..........[ 486]: extern bool cancel_delayed_work(struct delayed_work *dwork); ..........[ 487]: extern bool cancel_delayed_work_sync(struct delayed_work *dwork); ..........[ 489]: extern void workqueue_set_max_active(struct workqueue_struct *wq, ..........[ 490]: int max_active); ..........[ 491]: extern bool current_is_workqueue_rescuer(void); ..........[ 492]: extern bool workqueue_congested(int cpu, struct workqueue_struct *wq); ..........[ 493]: extern unsigned int work_busy(struct work_struct *work); ..........[ 494]: extern __attribute__((format(printf, 1, 2))) void set_worker_desc(const char *fmt, ...); ..........[ 495]: extern void print_worker_info(const char *log_lvl, struct task_struct *task); ..........[ 507]: static inline __attribute__((no_instrument_function)) bool queue_work(struct workqueue_struct *wq, ..........[ 508]: struct work_struct *work) ..........[ 509]: { ..........[ 510]: return queue_work_on(WORK_CPU_UNBOUND, wq, work); ..........[ 511]: } ..........[ 521]: static inline __attribute__((no_instrument_function)) bool queue_delayed_work(struct workqueue_struct *wq, ..........[ 522]: struct delayed_work *dwork, ..........[ 523]: unsigned long delay) ..........[ 524]: { ..........[ 525]: return queue_delayed_work_on(WORK_CPU_UNBOUND, wq, dwork, delay); ..........[ 526]: } ..........[ 536]: static inline __attribute__((no_instrument_function)) bool mod_delayed_work(struct workqueue_struct *wq, ..........[ 537]: struct delayed_work *dwork, ..........[ 538]: unsigned long delay) ..........[ 539]: { ..........[ 540]: return mod_delayed_work_on(WORK_CPU_UNBOUND, wq, dwork, delay); ..........[ 541]: } ..........[ 550]: static inline __attribute__((no_instrument_function)) bool schedule_work_on(int cpu, struct work_struct *work\ .......... ) ..........[ 551]: { ..........[ 552]: return queue_work_on(cpu, system_wq, work); ..........[ 553]: } ..........[ 566]: static inline __attribute__((no_instrument_function)) bool schedule_work(struct work_struct *work) ..........[ 567]: { ..........[ 568]: return queue_work(system_wq, work); ..........[ 569]: } ..........[ 580]: static inline __attribute__((no_instrument_function)) bool schedule_delayed_work_on(int cpu, struct delayed_work \ .......... *dwork, ..........[ 581]: unsigned long delay) ..........[ 582]: { ..........[ 583]: return queue_delayed_work_on(cpu, system_wq, dwork, delay); ..........[ 584]: } ..........[ 594]: static inline __attribute__((no_instrument_function)) bool schedule_delayed_work(struct delayed_work *dwork\ .......... , ..........[ 595]: unsigned long delay) ..........[ 596]: { ..........[ 597]: return queue_delayed_work(system_wq, dwork, delay); ..........[ 598]: } ..........[ 603]: static inline __attribute__((no_instrument_function)) bool keventd_up(void) ..........[ 604]: { ..........[ 605]: return system_wq != ((void *)0); ..........[ 606]: } ..........[ 613]: static inline __attribute__((no_instrument_function)) bool __cancel_delayed_work(struct delayed_work *work\ .......... ) ..........[ 614]: { ..........[ 615]: bool ret; ..........[ 617]: ret = del_timer(&work->timer); ..........[ 618]: if (ret) ..........[ 619]: clear_bit(WORK_STRUCT_PENDING_BIT, ((unsigned long *)(&(&work->work)->data))); ..........[ 620]: return ret; ..........[ 621]: } ..........[ 624]: static inline __attribute__((no_instrument_function)) bool flush_work_sync(struct work_struct *work) ..........[ 625]: { ..........[ 626]: return flush_work(work); ..........[ 627]: } ..........[ 630]: static inline __attribute__((no_instrument_function)) bool flush_delayed_work_sync(struct delayed_work *dwork\ .......... ) ..........[ 631]: { ..........[ 632]: return flush_delayed_work(dwork); ..........[ 633]: } ..........[ 641]: long work_on_cpu(int cpu, long (*fn)(void *), void *arg); ..........[ 645]: extern void freeze_workqueues_begin(void); ..........[ 646]: extern bool freeze_workqueues_busy(void); ..........[ 647]: extern void thaw_workqueues(void); ..........[ 651]: int workqueue_sysfs_register(struct workqueue_struct *wq); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/workqueue.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm.h .........[ 34]: extern void (*pm_power_off)(void); .........[ 35]: extern void (*pm_power_off_prepare)(void); .........[ 37]: struct device; .........[ 39]: extern void pm_vt_switch_required(struct device *dev, bool required); .........[ 40]: extern void pm_vt_switch_unregister(struct device *dev); .........[ 54]: struct device; .........[ 57]: extern const char power_group_name[]; .........[ 62]: typedef struct pm_message { .........[ 63]: int event; .........[ 64]: } pm_message_t; .........[ 276]: struct dev_pm_ops { .........[ 277]: int (*prepare)(struct device *dev); .........[ 278]: void (*complete)(struct device *dev); .........[ 279]: int (*suspend)(struct device *dev); .........[ 280]: int (*resume)(struct device *dev); .........[ 281]: int (*freeze)(struct device *dev); .........[ 282]: int (*thaw)(struct device *dev); .........[ 283]: int (*poweroff)(struct device *dev); .........[ 284]: int (*restore)(struct device *dev); .........[ 285]: int (*suspend_late)(struct device *dev); .........[ 286]: int (*resume_early)(struct device *dev); .........[ 287]: int (*freeze_late)(struct device *dev); .........[ 288]: int (*thaw_early)(struct device *dev); .........[ 289]: int (*poweroff_late)(struct device *dev); .........[ 290]: int (*restore_early)(struct device *dev); .........[ 291]: int (*suspend_noirq)(struct device *dev); .........[ 292]: int (*resume_noirq)(struct device *dev); .........[ 293]: int (*freeze_noirq)(struct device *dev); .........[ 294]: int (*thaw_noirq)(struct device *dev); .........[ 295]: int (*poweroff_noirq)(struct device *dev); .........[ 296]: int (*restore_noirq)(struct device *dev); .........[ 297]: int (*runtime_suspend)(struct device *dev); .........[ 298]: int (*runtime_resume)(struct device *dev); .........[ 299]: int (*runtime_idle)(struct device *dev); .........[ 300]: }; .........[ 470]: enum rpm_status { .........[ 471]: RPM_ACTIVE = 0, .........[ 472]: RPM_RESUMING, .........[ 473]: RPM_SUSPENDED, .........[ 474]: RPM_SUSPENDING, .........[ 475]: }; .........[ 492]: enum rpm_request { .........[ 493]: RPM_REQ_NONE = 0, .........[ 494]: RPM_REQ_IDLE, .........[ 495]: RPM_REQ_SUSPEND, .........[ 496]: RPM_REQ_AUTOSUSPEND, .........[ 497]: RPM_REQ_RESUME, .........[ 498]: }; .........[ 500]: struct wakeup_source; .........[ 502]: struct pm_domain_data { .........[ 503]: struct list_head list_node; .........[ 504]: struct device *dev; .........[ 505]: }; .........[ 507]: struct pm_subsys_data { .........[ 508]: spinlock_t lock; .........[ 509]: unsigned int refcount; .........[ 516]: }; .........[ 518]: struct dev_pm_info { .........[ 519]: pm_message_t power_state; .........[ 520]: unsigned int can_wakeup:1; .........[ 521]: unsigned int async_suspend:1; .........[ 522]: bool is_prepared:1; .........[ 523]: bool is_suspended:1; .........[ 524]: bool ignore_children:1; .........[ 525]: bool early_init:1; .........[ 526]: spinlock_t lock; .........[ 528]: struct list_head entry; .........[ 529]: struct completion completion; .........[ 530]: struct wakeup_source *wakeup; .........[ 531]: bool wakeup_path:1; .........[ 532]: bool syscore:1; .........[ 537]: struct timer_list suspend_timer; .........[ 538]: unsigned long timer_expires; .........[ 539]: struct work_struct work; .........[ 540]: wait_queue_head_t wait_queue; .........[ 541]: atomic_t usage_count; .........[ 542]: atomic_t child_count; .........[ 543]: unsigned int disable_depth:3; .........[ 544]: unsigned int idle_notification:1; .........[ 545]: unsigned int request_pending:1; .........[ 546]: unsigned int deferred_resume:1; .........[ 547]: unsigned int run_wake:1; .........[ 548]: unsigned int runtime_auto:1; .........[ 549]: unsigned int no_callbacks:1; .........[ 550]: unsigned int irq_safe:1; .........[ 551]: unsigned int use_autosuspend:1; .........[ 552]: unsigned int timer_autosuspends:1; .........[ 553]: unsigned int memalloc_noio:1; .........[ 554]: enum rpm_request request; .........[ 555]: enum rpm_status runtime_status; .........[ 556]: int runtime_error; .........[ 557]: int autosuspend_delay; .........[ 558]: unsigned long last_busy; .........[ 559]: unsigned long active_jiffies; .........[ 560]: unsigned long suspended_jiffies; .........[ 561]: unsigned long accounting_timestamp; .........[ 563]: struct pm_subsys_data *subsys_data; .........[ 564]: struct dev_pm_qos *qos; .........[ 565]: }; .........[ 567]: extern void update_pm_runtime_accounting(struct device *dev); .........[ 568]: extern int dev_pm_get_subsys_data(struct device *dev); .........[ 569]: extern int dev_pm_put_subsys_data(struct device *dev); .........[ 576]: struct dev_pm_domain { .........[ 577]: struct dev_pm_ops ops; .........[ 578]: }; .........[ 635]: extern void device_pm_lock(void); .........[ 636]: extern void dpm_resume_start(pm_message_t state); .........[ 637]: extern void dpm_resume_end(pm_message_t state); .........[ 638]: extern void dpm_resume(pm_message_t state); .........[ 639]: extern void dpm_complete(pm_message_t state); .........[ 641]: extern void device_pm_unlock(void); .........[ 642]: extern int dpm_suspend_end(pm_message_t state); .........[ 643]: extern int dpm_suspend_start(pm_message_t state); .........[ 644]: extern int dpm_suspend(pm_message_t state); .........[ 645]: extern int dpm_prepare(pm_message_t state); .........[ 647]: extern void __suspend_report_result(const char *function, void *fn, int ret); .........[ 654]: extern int device_pm_wait_for_dev(struct device *sub, struct device *dev); .........[ 655]: extern void dpm_for_each_dev(void *data, void (*fn)(struct device *, void *)); .........[ 657]: extern int pm_generic_prepare(struct device *dev); .........[ 658]: extern int pm_generic_suspend_late(struct device *dev); .........[ 659]: extern int pm_generic_suspend_noirq(struct device *dev); .........[ 660]: extern int pm_generic_suspend(struct device *dev); .........[ 661]: extern int pm_generic_resume_early(struct device *dev); .........[ 662]: extern int pm_generic_resume_noirq(struct device *dev); .........[ 663]: extern int pm_generic_resume(struct device *dev); .........[ 664]: extern int pm_generic_freeze_noirq(struct device *dev); .........[ 665]: extern int pm_generic_freeze_late(struct device *dev); .........[ 666]: extern int pm_generic_freeze(struct device *dev); .........[ 667]: extern int pm_generic_thaw_noirq(struct device *dev); .........[ 668]: extern int pm_generic_thaw_early(struct device *dev); .........[ 669]: extern int pm_generic_thaw(struct device *dev); .........[ 670]: extern int pm_generic_restore_noirq(struct device *dev); .........[ 671]: extern int pm_generic_restore_early(struct device *dev); .........[ 672]: extern int pm_generic_restore(struct device *dev); .........[ 673]: extern int pm_generic_poweroff_noirq(struct device *dev); .........[ 674]: extern int pm_generic_poweroff_late(struct device *dev); .........[ 675]: extern int pm_generic_poweroff(struct device *dev); .........[ 676]: extern void pm_generic_complete(struct device *dev); .........[ 710]: enum dpm_order { .........[ 711]: DPM_ORDER_NONE, .........[ 712]: DPM_ORDER_DEV_AFTER_PARENT, .........[ 713]: DPM_ORDER_PARENT_BEFORE_DEV, .........[ 714]: DPM_ORDER_DEV_LAST, .........[ 715]: }; .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/topology.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/topology.h ............[ 51]: extern __attribute__((section(".data..percpu" ""))) __typeof__(int) x86_cpu_to_node_map; extern __typeof__\ ............ (int) *x86_cpu_to_node_map_early_ptr; extern __typeof__(int) x86_cpu_to_node_map_early_map[]; ............[ 65]: static inline __attribute__((no_instrument_function)) int early_cpu_to_node(int cpu) ............[ 66]: { ............[ 67]: return *((x86_cpu_to_node_map_early_ptr) ? &(x86_cpu_to_node_map_early_ptr)[cpu] : &(*({ do { const void *__vpp_verify \ ............ = (typeof(((&(x86_cpu_to_node_map))) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ \ ............ ("" : "=r"(__ptr) : "0"((typeof(*(&(x86_cpu_to_node_map))) *)(&(x86_cpu_to_node_map)))); (typeof((typeof(*\ ............ (&(x86_cpu_to_node_map))) *)(&(x86_cpu_to_node_map)))) (__ptr + (((__per_cpu_offset[cpu])))); }); }))); ............[ 68]: } ............[ 73]: extern cpumask_var_t node_to_cpumask_map[(1 << 6)]; ............[ 79]: static inline __attribute__((no_instrument_function)) const struct cpumask *cpumask_of_node(int node) ............[ 80]: { ............[ 81]: return node_to_cpumask_map[node]; ............[ 82]: } ............[ 85]: extern void setup_node_to_cpumask_map(void); ............[ 95]: extern int __node_distance(int, int); ............[ 120]: extern const struct cpumask *cpu_coregroup_mask(int cpu); ............[ 129]: static inline __attribute__((no_instrument_function)) void arch_fix_phys_package_id(int num, u32 slot) ............[ 130]: { ............[ 131]: } ............[ 133]: struct pci_bus; ............[ 134]: void x86_pci_root_bus_resources(int bus, struct list_head *resources); ............[ 143]: extern int get_mp_bus_to_node(int busnum); ............[ 144]: extern void set_mp_bus_to_node(int busnum, int node); ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/topology.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h ...........[ 21]: extern int numa_off; ...........[ 31]: extern s16 __apicid_to_node[32768]; ...........[ 32]: extern nodemask_t numa_nodes_parsed __attribute__ ((__section__(".init.data"))); ...........[ 34]: extern int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) numa_add_memblk\ ........... (int nodeid, u64 start, u64 end); ...........[ 35]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) numa_set_distance\ ........... (int from, int to, int distance); ...........[ 37]: static inline __attribute__((no_instrument_function)) void set_apicid_to_node(int apicid, s16 node) ...........[ 38]: { ...........[ 39]: __apicid_to_node[apicid] = node; ...........[ 40]: } ...........[ 42]: extern int numa_cpu_node(int cpu); ...........[ 60]: extern void numa_set_node(int cpu, int node); ...........[ 61]: extern void numa_clear_node(int cpu); ...........[ 62]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) init_cpu_to_node\ ........... (void); ...........[ 63]: extern void numa_add_cpu(int cpu); ...........[ 64]: extern void numa_remove_cpu(int cpu); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmu.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmu.h ...........[ 11]: typedef struct { ...........[ 12]: void *ldt; ...........[ 13]: int size; ...........[ 17]: unsigned short ia32_compat; ...........[ 20]: struct mutex lock; ...........[ 21]: void *vdso; ...........[ 22]: } mm_context_t; ...........[ 25]: void leave_mm(int cpu); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmu.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ............[ 53]: static inline __attribute__((no_instrument_function)) unsigned char readb(const volatile void *addr) { unsigned \ ............ char ret; asm volatile("mov" "b" " %1,%0":"=q" (ret) :"m" (*(volatile unsigned char *)addr) :"memory"); return ret\ ............ ; } ............[ 54]: static inline __attribute__((no_instrument_function)) unsigned short readw(const volatile void *addr) { unsigned \ ............ short ret; asm volatile("mov" "w" " %1,%0":"=r" (ret) :"m" (*(volatile unsigned short *)addr) :"memory"); return ret\ ............ ; } ............[ 55]: static inline __attribute__((no_instrument_function)) unsigned int readl(const volatile void *addr) { unsigned \ ............ int ret; asm volatile("mov" "l" " %1,%0":"=r" (ret) :"m" (*(volatile unsigned int *)addr) :"memory"); return ret; } ............[ 57]: static inline __attribute__((no_instrument_function)) unsigned char __readb(const volatile void *addr) { unsigned \ ............ char ret; asm volatile("mov" "b" " %1,%0":"=q" (ret) :"m" (*(volatile unsigned char *)addr) ); return ret; } ............[ 58]: static inline __attribute__((no_instrument_function)) unsigned short __readw(const volatile void *addr) { unsigned \ ............ short ret; asm volatile("mov" "w" " %1,%0":"=r" (ret) :"m" (*(volatile unsigned short *)addr) ); return ret; } ............[ 59]: static inline __attribute__((no_instrument_function)) unsigned int __readl(const volatile void *addr) { unsigned \ ............ int ret; asm volatile("mov" "l" " %1,%0":"=r" (ret) :"m" (*(volatile unsigned int *)addr) ); return ret; } ............[ 61]: static inline __attribute__((no_instrument_function)) void writeb(unsigned char val, volatile void *addr) { asm \ ............ volatile("mov" "b" " %0,%1": :"q" (val), "m" (*(volatile unsigned char *)addr) :"memory"); } ............[ 62]: static inline __attribute__((no_instrument_function)) void writew(unsigned short val, volatile void *addr) { asm \ ............ volatile("mov" "w" " %0,%1": :"r" (val), "m" (*(volatile unsigned short *)addr) :"memory"); } ............[ 63]: static inline __attribute__((no_instrument_function)) void writel(unsigned int val, volatile void *addr) { asm volatile\ ............ ("mov" "l" " %0,%1": :"r" (val), "m" (*(volatile unsigned int *)addr) :"memory"); } ............[ 65]: static inline __attribute__((no_instrument_function)) void __writeb(unsigned char val, volatile void *addr) { asm \ ............ volatile("mov" "b" " %0,%1": :"q" (val), "m" (*(volatile unsigned char *)addr) ); } ............[ 66]: static inline __attribute__((no_instrument_function)) void __writew(unsigned short val, volatile void *addr) { \ ............ asm volatile("mov" "w" " %0,%1": :"r" (val), "m" (*(volatile unsigned short *)addr) ); } ............[ 67]: static inline __attribute__((no_instrument_function)) void __writel(unsigned int val, volatile void *addr) { asm \ ............ volatile("mov" "l" " %0,%1": :"r" (val), "m" (*(volatile unsigned int *)addr) ); } ............[ 84]: static inline __attribute__((no_instrument_function)) unsigned long readq(const volatile void *addr) { unsigned \ ............ long ret; asm volatile("mov" "q" " %1,%0":"=r" (ret) :"m" (*(volatile unsigned long *)addr) :"memory"); return ret\ ............ ; } ............[ 85]: static inline __attribute__((no_instrument_function)) void writeq(unsigned long val, volatile void *addr) { asm \ ............ volatile("mov" "q" " %0,%1": :"r" (val), "m" (*(volatile unsigned long *)addr) :"memory"); } ............[ 111]: static inline __attribute__((no_instrument_function)) phys_addr_t virt_to_phys(volatile void *address) ............[ 112]: { ............[ 113]: return __phys_addr_nodebug((unsigned long)(address)); ............[ 114]: } ............[ 129]: static inline __attribute__((no_instrument_function)) void *phys_to_virt(phys_addr_t address) ............[ 130]: { ............[ 131]: return ((void *)((unsigned long)(address)+((unsigned long)(0xffff880000000000UL)))); ............[ 132]: } ............[ 144]: static inline __attribute__((no_instrument_function)) unsigned int isa_virt_to_bus(volatile void *address) ............[ 145]: { ............[ 146]: return (unsigned int)virt_to_phys(address); ............[ 147]: } ............[ 174]: extern void *ioremap_nocache(resource_size_t offset, unsigned long size); ............[ 175]: extern void *ioremap_cache(resource_size_t offset, unsigned long size); ............[ 176]: extern void *ioremap_prot(resource_size_t offset, unsigned long size, ............[ 177]: unsigned long prot_val); ............[ 182]: static inline __attribute__((no_instrument_function)) void *ioremap(resource_size_t offset, unsigned long size\ ............ ) ............[ 183]: { ............[ 184]: return ioremap_nocache(offset, size); ............[ 185]: } ............[ 187]: extern void iounmap(volatile void *addr); ............[ 189]: extern void set_iounmap_nonlazy(void); ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/iomap.h .............[ 28]: extern unsigned int ioread8(void *); .............[ 29]: extern unsigned int ioread16(void *); .............[ 30]: extern unsigned int ioread16be(void *); .............[ 31]: extern unsigned int ioread32(void *); .............[ 32]: extern unsigned int ioread32be(void *); .............[ 34]: extern void iowrite8(u8, void *); .............[ 35]: extern void iowrite16(u16, void *); .............[ 36]: extern void iowrite16be(u16, void *); .............[ 37]: extern void iowrite32(u32, void *); .............[ 38]: extern void iowrite32be(u32, void *); .............[ 51]: extern void ioread8_rep(void *port, void *buf, unsigned long count); .............[ 52]: extern void ioread16_rep(void *port, void *buf, unsigned long count); .............[ 53]: extern void ioread32_rep(void *port, void *buf, unsigned long count); .............[ 55]: extern void iowrite8_rep(void *port, const void *buf, unsigned long count); .............[ 56]: extern void iowrite16_rep(void *port, const void *buf, unsigned long count); .............[ 57]: extern void iowrite32_rep(void *port, const void *buf, unsigned long count); .............[ 61]: extern void *ioport_map(unsigned long port, unsigned int nr); .............[ 62]: extern void ioport_unmap(void *); .............[ 71]: struct pci_dev; .............[ 72]: extern void pci_iounmap(struct pci_dev *dev, void *); ............# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/iomap.h .............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/pci_iomap.h ..............[ 14]: struct pci_dev; ..............[ 17]: extern void *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); ..............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/pci_iomap.h .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/iomap.h ...........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ............# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vmalloc.h .............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vmalloc.h .............[ 10]: struct vm_area_struct; .............[ 29]: struct vm_struct { .............[ 30]: struct vm_struct *next; .............[ 31]: void *addr; .............[ 32]: unsigned long size; .............[ 33]: unsigned long flags; .............[ 34]: struct page **pages; .............[ 35]: unsigned int nr_pages; .............[ 36]: phys_addr_t phys_addr; .............[ 37]: const void *caller; .............[ 38]: }; .............[ 40]: struct vmap_area { .............[ 41]: unsigned long va_start; .............[ 42]: unsigned long va_end; .............[ 43]: unsigned long flags; .............[ 44]: struct rb_node rb_node; .............[ 45]: struct list_head list; .............[ 46]: struct list_head purge_list; .............[ 47]: struct vm_struct *vm; .............[ 48]: struct callback_head callback_head; .............[ 49]: }; .............[ 54]: extern void vm_unmap_ram(const void *mem, unsigned int count); .............[ 55]: extern void *vm_map_ram(struct page **pages, unsigned int count, .............[ 56]: int node, pgprot_t prot); .............[ 57]: extern void vm_unmap_aliases(void); .............[ 60]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) vmalloc_init\ ............. (void); .............[ 67]: extern void *vmalloc(unsigned long size); .............[ 68]: extern void *vzalloc(unsigned long size); .............[ 69]: extern void *vmalloc_user(unsigned long size); .............[ 70]: extern void *vmalloc_node(unsigned long size, int node); .............[ 71]: extern void *vzalloc_node(unsigned long size, int node); .............[ 72]: extern void *vmalloc_exec(unsigned long size); .............[ 73]: extern void *vmalloc_32(unsigned long size); .............[ 74]: extern void *vmalloc_32_user(unsigned long size); .............[ 75]: extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot); .............[ 76]: extern void *__vmalloc_node_range(unsigned long size, unsigned long align, .............[ 77]: unsigned long start, unsigned long end, gfp_t gfp_mask, .............[ 78]: pgprot_t prot, int node, const void *caller); .............[ 79]: extern void vfree(const void *addr); .............[ 81]: extern void *vmap(struct page **pages, unsigned int count, .............[ 82]: unsigned long flags, pgprot_t prot); .............[ 83]: extern void vunmap(const void *addr); .............[ 85]: extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, .............[ 86]: unsigned long uaddr, void *kaddr, .............[ 87]: unsigned long size); .............[ 89]: extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, .............[ 90]: unsigned long pgoff); .............[ 91]: void vmalloc_sync_all(void); .............[ 97]: static inline __attribute__((no_instrument_function)) size_t get_vm_area_size(const struct vm_struct *area) .............[ 98]: { .............[ 100]: return area->size - ((1UL) << 12); .............[ 101]: } .............[ 103]: extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags); .............[ 104]: extern struct vm_struct *get_vm_area_caller(unsigned long size, .............[ 105]: unsigned long flags, const void *caller); .............[ 106]: extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, .............[ 107]: unsigned long start, unsigned long end); .............[ 108]: extern struct vm_struct *__get_vm_area_caller(unsigned long size, .............[ 109]: unsigned long flags, .............[ 110]: unsigned long start, unsigned long end, .............[ 111]: const void *caller); .............[ 112]: extern struct vm_struct *remove_vm_area(const void *addr); .............[ 113]: extern struct vm_struct *find_vm_area(const void *addr); .............[ 115]: extern int map_vm_area(struct vm_struct *area, pgprot_t prot, .............[ 116]: struct page ***pages); .............[ 118]: extern int map_kernel_range_noflush(unsigned long start, unsigned long size, .............[ 119]: pgprot_t prot, struct page **pages); .............[ 120]: extern void unmap_kernel_range_noflush(unsigned long addr, unsigned long size); .............[ 121]: extern void unmap_kernel_range(unsigned long addr, unsigned long size); .............[ 140]: extern struct vm_struct *alloc_vm_area(size_t size, pte_t **ptes); .............[ 141]: extern void free_vm_area(struct vm_struct *area); .............[ 144]: extern long vread(char *buf, char *addr, unsigned long count); .............[ 145]: extern long vwrite(char *buf, char *addr, unsigned long count); .............[ 150]: extern struct list_head vmap_area_list; .............[ 151]: extern __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) void vm_area_add_early\ ............. (struct vm_struct *vm); .............[ 152]: extern __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) void vm_area_register_early\ ............. (struct vm_struct *vm, size_t align); .............[ 156]: struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets, .............[ 157]: const size_t *sizes, int nr_vms, .............[ 158]: size_t align); .............[ 160]: void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms); .............[ 177]: struct vmalloc_info { .............[ 178]: unsigned long used; .............[ 179]: unsigned long largest_chunk; .............[ 180]: }; .............[ 184]: extern void get_vmalloc_info(struct vmalloc_info *vmi); .............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vmalloc.h ............# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ............[ 202]: static inline __attribute__((no_instrument_function)) void ............[ 203]: memset_io(volatile void *addr, unsigned char val, size_t count) ............[ 204]: { ............[ 205]: memset((void *)addr, val, count); ............[ 206]: } ............[ 208]: static inline __attribute__((no_instrument_function)) void ............[ 209]: memcpy_fromio(void *dst, const volatile void *src, size_t count) ............[ 210]: { ............[ 211]: ({ size_t __len = (count); void *__ret; if (__builtin_constant_p(count) && __len >= 64) __ret = __memcpy((dst), ((const \ ............ void *)src), __len); else __ret = __builtin_memcpy((dst), ((const void *)src), __len); __ret; }); ............[ 212]: } ............[ 214]: static inline __attribute__((no_instrument_function)) void ............[ 215]: memcpy_toio(volatile void *dst, const void *src, size_t count) ............[ 216]: { ............[ 217]: ({ size_t __len = (count); void *__ret; if (__builtin_constant_p(count) && __len >= 64) __ret = __memcpy(((void *)dst\ ............ ), (src), __len); else __ret = __builtin_memcpy(((void *)dst), (src), __len); __ret; }); ............[ 218]: } ............[ 238]: static inline __attribute__((no_instrument_function)) void flush_write_buffers(void) ............[ 239]: { ............[ 243]: } ............[ 247]: extern void native_io_delay(void); ............[ 249]: extern int io_delay_type; ............[ 250]: extern void io_delay_init(void); ............[ 256]: static inline __attribute__((no_instrument_function)) void slow_down_io(void) ............[ 257]: { ............[ 258]: native_io_delay(); ............[ 264]: } ............[ 308]: static inline __attribute__((no_instrument_function)) void outb(unsigned char value, int port) { asm volatile("out" \ ............ "b" " %" "b" "0, %w1" : : "a"(value), "Nd"(port)); } static inline __attribute__((no_instrument_function)) unsigned \ ............ char inb(int port) { unsigned char value; asm volatile("in" "b" " %w1, %" "b" "0" : "=a"(value) : "Nd"(port)); return \ ............ value; } static inline __attribute__((no_instrument_function)) void outb_p(unsigned char value, int port) { outb\ ............ (value, port); slow_down_io(); } static inline __attribute__((no_instrument_function)) unsigned char inb_p(int \ ............ port) { unsigned char value = inb(port); slow_down_io(); return value; } static inline __attribute__((no_instrument_function\ ............ )) void outsb(int port, const void *addr, unsigned long count) { asm volatile("rep; outs" "b" : "+S"(addr), "+c"(count\ ............ ) : "d"(port)); } static inline __attribute__((no_instrument_function)) void insb(int port, void *addr, unsigned \ ............ long count) { asm volatile("rep; ins" "b" : "+D"(addr), "+c"(count) : "d"(port)); } ............[ 309]: static inline __attribute__((no_instrument_function)) void outw(unsigned short value, int port) { asm volatile(\ ............ "out" "w" " %" "w" "0, %w1" : : "a"(value), "Nd"(port)); } static inline __attribute__((no_instrument_function)) \ ............ unsigned short inw(int port) { unsigned short value; asm volatile("in" "w" " %w1, %" "w" "0" : "=a"(value) : "Nd"(port\ ............ )); return value; } static inline __attribute__((no_instrument_function)) void outw_p(unsigned short value, int \ ............ port) { outw(value, port); slow_down_io(); } static inline __attribute__((no_instrument_function)) unsigned short \ ............ inw_p(int port) { unsigned short value = inw(port); slow_down_io(); return value; } static inline __attribute__((no_instrument_function\ ............ )) void outsw(int port, const void *addr, unsigned long count) { asm volatile("rep; outs" "w" : "+S"(addr), "+c"(count\ ............ ) : "d"(port)); } static inline __attribute__((no_instrument_function)) void insw(int port, void *addr, unsigned \ ............ long count) { asm volatile("rep; ins" "w" : "+D"(addr), "+c"(count) : "d"(port)); } ............[ 310]: static inline __attribute__((no_instrument_function)) void outl(unsigned int value, int port) { asm volatile("out" \ ............ "l" " %" "" "0, %w1" : : "a"(value), "Nd"(port)); } static inline __attribute__((no_instrument_function)) unsigned \ ............ int inl(int port) { unsigned int value; asm volatile("in" "l" " %w1, %" "" "0" : "=a"(value) : "Nd"(port)); return value\ ............ ; } static inline __attribute__((no_instrument_function)) void outl_p(unsigned int value, int port) { outl(value\ ............ , port); slow_down_io(); } static inline __attribute__((no_instrument_function)) unsigned int inl_p(int port) { \ ............ unsigned int value = inl(port); slow_down_io(); return value; } static inline __attribute__((no_instrument_function\ ............ )) void outsl(int port, const void *addr, unsigned long count) { asm volatile("rep; outs" "l" : "+S"(addr), "+c"(count\ ............ ) : "d"(port)); } static inline __attribute__((no_instrument_function)) void insl(int port, void *addr, unsigned \ ............ long count) { asm volatile("rep; ins" "l" : "+D"(addr), "+c"(count) : "d"(port)); } ............[ 312]: extern void *xlate_dev_mem_ptr(unsigned long phys); ............[ 313]: extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr); ............[ 315]: extern int ioremap_change_attr(unsigned long vaddr, unsigned long size, ............[ 316]: unsigned long prot_val); ............[ 317]: extern void *ioremap_wc(resource_size_t offset, unsigned long size); ............[ 324]: extern void early_ioremap_init(void); ............[ 325]: extern void early_ioremap_reset(void); ............[ 326]: extern void *early_ioremap(resource_size_t phys_addr, ............[ 327]: unsigned long size); ............[ 328]: extern void *early_memremap(resource_size_t phys_addr, ............[ 329]: unsigned long size); ............[ 330]: extern void early_iounmap(void *addr, unsigned long size); ............[ 331]: extern void fixup_early_ioremap(void); ............[ 332]: extern bool is_early_ioremap_ptep(pte_t *ptep); ............[ 349]: extern int arch_phys_wc_add(unsigned long base, ............[ 350]: unsigned long size); ............[ 351]: extern void arch_phys_wc_del(int handle); ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h ...........[ 8]: struct real_mode_header { ...........[ 9]: u32 text_start; ...........[ 10]: u32 ro_end; ...........[ 12]: u32 trampoline_start; ...........[ 13]: u32 trampoline_status; ...........[ 14]: u32 trampoline_header; ...........[ 16]: u32 trampoline_pgd; ...........[ 20]: u32 wakeup_start; ...........[ 21]: u32 wakeup_header; ...........[ 24]: u32 machine_real_restart_asm; ...........[ 26]: u32 machine_real_restart_seg; ...........[ 28]: }; ...........[ 31]: struct trampoline_header { ...........[ 38]: u64 start; ...........[ 39]: u64 efer; ...........[ 40]: u32 cr4; ...........[ 42]: }; ...........[ 44]: extern struct real_mode_header *real_mode_header; ...........[ 45]: extern unsigned char real_mode_blob_end[]; ...........[ 47]: extern unsigned long init_rsp; ...........[ 48]: extern unsigned long initial_code; ...........[ 49]: extern unsigned long initial_gs; ...........[ 51]: extern unsigned char real_mode_blob[]; ...........[ 52]: extern unsigned char real_mode_relocs[]; ...........[ 58]: extern unsigned char secondary_startup_64[]; ...........[ 61]: void reserve_real_mode(void); ...........[ 62]: void setup_real_mode(void); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h ..........[ 55]: int __acpi_acquire_global_lock(unsigned int *lock); ..........[ 56]: int __acpi_release_global_lock(unsigned int *lock); ..........[ 81]: extern int acpi_lapic; ..........[ 82]: extern int acpi_ioapic; ..........[ 83]: extern int acpi_noirq; ..........[ 84]: extern int acpi_strict; ..........[ 85]: extern int acpi_disabled; ..........[ 86]: extern int acpi_pci_disabled; ..........[ 87]: extern int acpi_skip_timer_override; ..........[ 88]: extern int acpi_use_timer_override; ..........[ 89]: extern int acpi_fix_pin2_polarity; ..........[ 90]: extern int acpi_disable_cmcff; ..........[ 92]: extern u8 acpi_sci_flags; ..........[ 93]: extern int acpi_sci_override_gsi; ..........[ 94]: void acpi_pic_sci_set_trigger(unsigned int, u16); ..........[ 96]: extern int (*__acpi_register_gsi)(struct device *dev, u32 gsi, ..........[ 97]: int trigger, int polarity); ..........[ 99]: static inline __attribute__((no_instrument_function)) void disable_acpi(void) ..........[ 100]: { ..........[ 101]: acpi_disabled = 1; ..........[ 102]: acpi_pci_disabled = 1; ..........[ 103]: acpi_noirq = 1; ..........[ 104]: } ..........[ 106]: extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq); ..........[ 108]: static inline __attribute__((no_instrument_function)) void acpi_noirq_set(void) { acpi_noirq = 1; } ..........[ 109]: static inline __attribute__((no_instrument_function)) void acpi_disable_pci(void) ..........[ 110]: { ..........[ 111]: acpi_pci_disabled = 1; ..........[ 112]: acpi_noirq_set(); ..........[ 113]: } ..........[ 116]: extern int (*acpi_suspend_lowlevel)(void); ..........[ 124]: static inline __attribute__((no_instrument_function)) unsigned int acpi_processor_cstate_check(unsigned int \ .......... max_cstate) ..........[ 125]: { ..........[ 132]: if (boot_cpu_data.x86 == 0x0F && ..........[ 133]: boot_cpu_data.x86_vendor == 2 && ..........[ 134]: boot_cpu_data.x86_model <= 0x05 && ..........[ 135]: boot_cpu_data.x86_mask < 0x0A) ..........[ 136]: return 1; ..........[ 137]: else if (amd_e400_c1e_detected) ..........[ 138]: return 1; ..........[ 139]: else ..........[ 140]: return max_cstate; ..........[ 141]: } ..........[ 143]: static inline __attribute__((no_instrument_function)) bool arch_has_acpi_pdc(void) ..........[ 144]: { ..........[ 145]: struct cpuinfo_x86 *c = &(*({ do { const void *__vpp_verify = (typeof(((&(cpu_info))) + 0))((void *)0); (void)__vpp_verify\ .......... ; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(cpu_info))) *)(&(cpu_info)))); (\ .......... typeof((typeof(*(&(cpu_info))) *)(&(cpu_info)))) (__ptr + (((__per_cpu_offset[0])))); }); })); ..........[ 146]: return (c->x86_vendor == 0 || ..........[ 147]: c->x86_vendor == 5); ..........[ 148]: } ..........[ 150]: static inline __attribute__((no_instrument_function)) void arch_acpi_set_pdc_bits(u32 *buf) ..........[ 151]: { ..........[ 152]: struct cpuinfo_x86 *c = &(*({ do { const void *__vpp_verify = (typeof(((&(cpu_info))) + 0))((void *)0); (void)__vpp_verify\ .......... ; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(cpu_info))) *)(&(cpu_info)))); (\ .......... typeof((typeof(*(&(cpu_info))) *)(&(cpu_info)))) (__ptr + (((__per_cpu_offset[0])))); }); })); ..........[ 154]: buf[2] |= ((0x0010) | (0x0008) | (0x0002) | (0x0100) | (0x0200)); ..........[ 156]: if ((__builtin_constant_p((4*32+ 7)) && ( ((((4*32+ 7))>>5)==0 && (1UL<<(((4*32+ 7))&31) & ((1<<((0*32+ 0) & 31))|\ .......... (1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((0*32+13)) & 31)|(1<<\ .......... ((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((((4*32+ 7))>>5)==1 && \ .......... (1UL<<(((4*32+ 7))&31) & ((1<<((1*32+29) & 31))|0))) || ((((4*32+ 7))>>5)==2 && (1UL<<(((4*32+ 7))&31) & 0)) || (((\ .......... (4*32+ 7))>>5)==3 && (1UL<<(((4*32+ 7))&31) & ((1<<((3*32+20) & 31))))) || ((((4*32+ 7))>>5)==4 && (1UL<<(((4*32+ \ .......... 7))&31) & (0))) || ((((4*32+ 7))>>5)==5 && (1UL<<(((4*32+ 7))&31) & 0)) || ((((4*32+ 7))>>5)==6 && (1UL<<(((4*32+ 7)\ .......... )&31) & 0)) || ((((4*32+ 7))>>5)==7 && (1UL<<(((4*32+ 7))&31) & 0)) || ((((4*32+ 7))>>5)==8 && (1UL<<(((4*32+ 7))&31\ .......... ) & 0)) || ((((4*32+ 7))>>5)==9 && (1UL<<(((4*32+ 7))&31) & 0)) ) ? 1 : (__builtin_constant_p(((4*32+ 7))) ? constant_test_bit\ .......... (((4*32+ 7)), ((unsigned long *)((c)->x86_capability))) : variable_test_bit(((4*32+ 7)), ((unsigned long *)((c\ .......... )->x86_capability)))))) ..........[ 157]: buf[2] |= ((0x0008) | (0x0002) | (0x0020) | (0x0800) | (0x0001)); ..........[ 159]: if ((__builtin_constant_p((0*32+22)) && ( ((((0*32+22))>>5)==0 && (1UL<<(((0*32+22))&31) & ((1<<((0*32+ 0) & 31\ .......... ))|(1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((0*32+13)) & 31)|(\ .......... 1<<((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((((0*32+22))>>5)\ .......... ==1 && (1UL<<(((0*32+22))&31) & ((1<<((1*32+29) & 31))|0))) || ((((0*32+22))>>5)==2 && (1UL<<(((0*32+22))&31) & \ .......... 0)) || ((((0*32+22))>>5)==3 && (1UL<<(((0*32+22))&31) & ((1<<((3*32+20) & 31))))) || ((((0*32+22))>>5)==4 && (1UL\ .......... <<(((0*32+22))&31) & (0))) || ((((0*32+22))>>5)==5 && (1UL<<(((0*32+22))&31) & 0)) || ((((0*32+22))>>5)==6 && (1UL\ .......... <<(((0*32+22))&31) & 0)) || ((((0*32+22))>>5)==7 && (1UL<<(((0*32+22))&31) & 0)) || ((((0*32+22))>>5)==8 && (1UL\ .......... <<(((0*32+22))&31) & 0)) || ((((0*32+22))>>5)==9 && (1UL<<(((0*32+22))&31) & 0)) ) ? 1 : (__builtin_constant_p(((\ .......... 0*32+22))) ? constant_test_bit(((0*32+22)), ((unsigned long *)((c)->x86_capability))) : variable_test_bit((\ .......... (0*32+22)), ((unsigned long *)((c)->x86_capability)))))) ..........[ 160]: buf[2] |= (0x0004); ..........[ 165]: if (!(__builtin_constant_p((4*32+ 3)) && ( ((((4*32+ 3))>>5)==0 && (1UL<<(((4*32+ 3))&31) & ((1<<((0*32+ 0) & 31))\ .......... |(1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((0*32+13)) & 31)|(1<<\ .......... ((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((((4*32+ 3))>>5)==1 && \ .......... (1UL<<(((4*32+ 3))&31) & ((1<<((1*32+29) & 31))|0))) || ((((4*32+ 3))>>5)==2 && (1UL<<(((4*32+ 3))&31) & 0)) || (((\ .......... (4*32+ 3))>>5)==3 && (1UL<<(((4*32+ 3))&31) & ((1<<((3*32+20) & 31))))) || ((((4*32+ 3))>>5)==4 && (1UL<<(((4*32+ \ .......... 3))&31) & (0))) || ((((4*32+ 3))>>5)==5 && (1UL<<(((4*32+ 3))&31) & 0)) || ((((4*32+ 3))>>5)==6 && (1UL<<(((4*32+ 3)\ .......... )&31) & 0)) || ((((4*32+ 3))>>5)==7 && (1UL<<(((4*32+ 3))&31) & 0)) || ((((4*32+ 3))>>5)==8 && (1UL<<(((4*32+ 3))&31\ .......... ) & 0)) || ((((4*32+ 3))>>5)==9 && (1UL<<(((4*32+ 3))&31) & 0)) ) ? 1 : (__builtin_constant_p(((4*32+ 3))) ? constant_test_bit\ .......... (((4*32+ 3)), ((unsigned long *)((c)->x86_capability))) : variable_test_bit(((4*32+ 3)), ((unsigned long *)((c\ .......... )->x86_capability)))))) ..........[ 166]: buf[2] &= ~((0x0200)); ..........[ 167]: } ..........[ 183]: extern int acpi_numa; ..........[ 184]: extern int x86_acpi_numa_init(void); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/acpi.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/clocksource.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/clocksource.h ...........[ 22]: typedef u64 cycle_t; ...........[ 23]: struct clocksource; ...........[ 24]: struct module; ..........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/clocksource.h ...........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/clocksource.h ............[ 13]: struct arch_clocksource_data { ............[ 14]: int vclock_mode; ............[ 15]: }; ............# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/clocksource.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/clocksource.h ...........[ 44]: struct cyclecounter { ...........[ 45]: cycle_t (*read)(const struct cyclecounter *cc); ...........[ 46]: cycle_t mask; ...........[ 47]: u32 mult; ...........[ 48]: u32 shift; ...........[ 49]: }; ...........[ 67]: struct timecounter { ...........[ 68]: const struct cyclecounter *cc; ...........[ 69]: cycle_t cycle_last; ...........[ 70]: u64 nsec; ...........[ 71]: }; ...........[ 81]: static inline __attribute__((no_instrument_function)) u64 cyclecounter_cyc2ns(const struct cyclecounter *cc\ ........... , ...........[ 82]: cycle_t cycles) ...........[ 83]: { ...........[ 84]: u64 ret = (u64)cycles; ...........[ 85]: ret = (ret * cc->mult) >> cc->shift; ...........[ 86]: return ret; ...........[ 87]: } ...........[ 99]: extern void timecounter_init(struct timecounter *tc, ...........[ 100]: const struct cyclecounter *cc, ...........[ 101]: u64 start_tstamp); ...........[ 111]: extern u64 timecounter_read(struct timecounter *tc); ...........[ 127]: extern u64 timecounter_cyc2time(struct timecounter *tc, ...........[ 128]: cycle_t cycle_tstamp); ...........[ 168]: struct clocksource { ...........[ 173]: cycle_t (*read)(struct clocksource *cs); ...........[ 174]: cycle_t cycle_last; ...........[ 175]: cycle_t mask; ...........[ 176]: u32 mult; ...........[ 177]: u32 shift; ...........[ 178]: u64 max_idle_ns; ...........[ 179]: u32 maxadj; ...........[ 181]: struct arch_clocksource_data archdata; ...........[ 184]: const char *name; ...........[ 185]: struct list_head list; ...........[ 186]: int rating; ...........[ 187]: int (*enable)(struct clocksource *cs); ...........[ 188]: void (*disable)(struct clocksource *cs); ...........[ 189]: unsigned long flags; ...........[ 190]: void (*suspend)(struct clocksource *cs); ...........[ 191]: void (*resume)(struct clocksource *cs); ...........[ 196]: struct list_head wd_list; ...........[ 197]: cycle_t cs_last; ...........[ 198]: cycle_t wd_last; ...........[ 200]: struct module *owner; ...........[ 201]: } __attribute__((__aligned__((1 << (6))))); ...........[ 226]: static inline __attribute__((no_instrument_function)) u32 clocksource_khz2mult(u32 khz, u32 shift_constant) ...........[ 227]: { ...........[ 235]: u64 tmp = ((u64)1000000) << shift_constant; ...........[ 237]: tmp += khz/2; ...........[ 238]: ({ uint32_t __base = (khz); uint32_t __rem; __rem = ((uint64_t)(tmp)) % __base; (tmp) = ((uint64_t)(tmp)) / __base; __rem\ ........... ; }); ...........[ 240]: return (u32)tmp; ...........[ 241]: } ...........[ 252]: static inline __attribute__((no_instrument_function)) u32 clocksource_hz2mult(u32 hz, u32 shift_constant) ...........[ 253]: { ...........[ 261]: u64 tmp = ((u64)1000000000) << shift_constant; ...........[ 263]: tmp += hz/2; ...........[ 264]: ({ uint32_t __base = (hz); uint32_t __rem; __rem = ((uint64_t)(tmp)) % __base; (tmp) = ((uint64_t)(tmp)) / __base; __rem\ ........... ; }); ...........[ 266]: return (u32)tmp; ...........[ 267]: } ...........[ 279]: static inline __attribute__((no_instrument_function)) s64 clocksource_cyc2ns(cycle_t cycles, u32 mult, u32 shift\ ........... ) ...........[ 280]: { ...........[ 281]: return ((u64) cycles * mult) >> shift; ...........[ 282]: } ...........[ 285]: extern int clocksource_register(struct clocksource*); ...........[ 286]: extern int clocksource_unregister(struct clocksource*); ...........[ 287]: extern void clocksource_touch_watchdog(void); ...........[ 288]: extern struct clocksource* clocksource_get_next(void); ...........[ 289]: extern void clocksource_change_rating(struct clocksource *cs, int rating); ...........[ 290]: extern void clocksource_suspend(void); ...........[ 291]: extern void clocksource_resume(void); ...........[ 292]: extern struct clocksource * __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function\ ........... )) __attribute__((weak)) clocksource_default_clock(void); ...........[ 293]: extern void clocksource_mark_unstable(struct clocksource *cs); ...........[ 295]: extern u64 ...........[ 296]: clocks_calc_max_nsecs(u32 mult, u32 shift, u32 maxadj, u64 mask); ...........[ 297]: extern void ...........[ 298]: clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec); ...........[ 304]: extern int ...........[ 305]: __clocksource_register_scale(struct clocksource *cs, u32 scale, u32 freq); ...........[ 306]: extern void ...........[ 307]: __clocksource_updatefreq_scale(struct clocksource *cs, u32 scale, u32 freq); ...........[ 309]: static inline __attribute__((no_instrument_function)) int clocksource_register_hz(struct clocksource *cs, u32 \ ........... hz) ...........[ 310]: { ...........[ 311]: return __clocksource_register_scale(cs, 1, hz); ...........[ 312]: } ...........[ 314]: static inline __attribute__((no_instrument_function)) int clocksource_register_khz(struct clocksource *cs, \ ........... u32 khz) ...........[ 315]: { ...........[ 316]: return __clocksource_register_scale(cs, 1000, khz); ...........[ 317]: } ...........[ 319]: static inline __attribute__((no_instrument_function)) void __clocksource_updatefreq_hz(struct clocksource \ ........... *cs, u32 hz) ...........[ 320]: { ...........[ 321]: __clocksource_updatefreq_scale(cs, 1, hz); ...........[ 322]: } ...........[ 324]: static inline __attribute__((no_instrument_function)) void __clocksource_updatefreq_khz(struct clocksource \ ........... *cs, u32 khz) ...........[ 325]: { ...........[ 326]: __clocksource_updatefreq_scale(cs, 1000, khz); ...........[ 327]: } ...........[ 330]: extern int timekeeping_notify(struct clocksource *clock); ...........[ 332]: extern cycle_t clocksource_mmio_readl_up(struct clocksource *); ...........[ 333]: extern cycle_t clocksource_mmio_readl_down(struct clocksource *); ...........[ 334]: extern cycle_t clocksource_mmio_readw_up(struct clocksource *); ...........[ 335]: extern cycle_t clocksource_mmio_readw_down(struct clocksource *); ...........[ 337]: extern int clocksource_mmio_init(void *, const char *, ...........[ 338]: unsigned long, int, unsigned, cycle_t (*)(struct clocksource *)); ...........[ 340]: extern int clocksource_i8253_init(void); ...........[ 342]: struct device_node; ...........[ 343]: typedef void(*clocksource_of_init_fn)(struct device_node *); ...........[ 353]: static inline __attribute__((no_instrument_function)) void clocksource_of_init(void) {} ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/clocksource.h .........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock.h ..........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock-abi.h ...........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock-abi.h ...........[ 25]: struct pvclock_vcpu_time_info { ...........[ 26]: u32 version; ...........[ 27]: u32 pad0; ...........[ 28]: u64 tsc_timestamp; ...........[ 29]: u64 system_time; ...........[ 30]: u32 tsc_to_system_mul; ...........[ 31]: s8 tsc_shift; ...........[ 32]: u8 flags; ...........[ 33]: u8 pad[2]; ...........[ 34]: } __attribute__((__packed__)); ...........[ 36]: struct pvclock_wall_clock { ...........[ 37]: u32 version; ...........[ 38]: u32 sec; ...........[ 39]: u32 nsec; ...........[ 40]: } __attribute__((__packed__)); ...........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock-abi.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock.h ..........[ 8]: cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src); ..........[ 9]: u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src); ..........[ 10]: void pvclock_set_flags(u8 flags); ..........[ 11]: unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src); ..........[ 12]: void pvclock_read_wallclock(struct pvclock_wall_clock *wall, ..........[ 13]: struct pvclock_vcpu_time_info *vcpu, ..........[ 14]: struct timespec *ts); ..........[ 15]: void pvclock_resume(void); ..........[ 17]: void pvclock_touch_watchdogs(void); ..........[ 23]: static inline __attribute__((no_instrument_function)) u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift\ .......... ) ..........[ 24]: { ..........[ 25]: u64 product; ..........[ 29]: ulong tmp; ..........[ 32]: if (shift < 0) ..........[ 33]: delta >>= -shift; ..........[ 34]: else ..........[ 35]: delta <<= shift; ..........[ 49]: __asm__ ( ..........[ 50]: "mulq %[mul_frac] ; shrd $32, %[hi], %[lo]" ..........[ 51]: : [lo]"=a"(product), ..........[ 52]: [hi]"=d"(tmp) ..........[ 53]: : "0"(delta), ..........[ 54]: [mul_frac]"rm"((u64)mul_frac)); ..........[ 59]: return product; ..........[ 60]: } ..........[ 62]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) ..........[ 63]: u64 pvclock_get_nsec_offset(const struct pvclock_vcpu_time_info *src) ..........[ 64]: { ..........[ 65]: u64 delta = __native_read_tsc() - src->tsc_timestamp; ..........[ 66]: return pvclock_scale_delta(delta, src->tsc_to_system_mul, ..........[ 67]: src->tsc_shift); ..........[ 68]: } ..........[ 70]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) ..........[ 71]: unsigned __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src, ..........[ 72]: cycle_t *cycles, u8 *flags) ..........[ 73]: { ..........[ 74]: unsigned version; ..........[ 75]: cycle_t ret, offset; ..........[ 76]: u8 ret_flags; ..........[ 78]: version = src->version; ..........[ 85]: rdtsc_barrier(); ..........[ 86]: offset = pvclock_get_nsec_offset(src); ..........[ 87]: ret = src->system_time + offset; ..........[ 88]: ret_flags = src->flags; ..........[ 89]: rdtsc_barrier(); ..........[ 91]: *cycles = ret; ..........[ 92]: *flags = ret_flags; ..........[ 93]: return version; ..........[ 94]: } ..........[ 96]: struct pvclock_vsyscall_time_info { ..........[ 97]: struct pvclock_vcpu_time_info pvti; ..........[ 98]: } __attribute__((__aligned__((1 << (6))))); ..........[ 103]: int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pvclock_init_vsyscall\ .......... (struct pvclock_vsyscall_time_info *i, ..........[ 104]: int size); ..........[ 105]: struct pvclock_vcpu_time_info *pvclock_get_vsyscall_time_info(int cpu); ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pvclock.h ........# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h .........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/vsyscall.h ..........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/vsyscall.h ..........[ 4]: enum vsyscall_num { ..........[ 5]: __NR_vgettimeofday, ..........[ 6]: __NR_vtime, ..........[ 7]: __NR_vgetcpu, ..........[ 8]: }; ..........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/vsyscall.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h .........[ 74]: enum fixed_addresses { .........[ 79]: VSYSCALL_LAST_PAGE, .........[ 80]: VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE .........[ 81]: + (((-2UL << 20)-(-10UL << 20)) >> 12) - 1, .........[ 82]: VVAR_PAGE, .........[ 83]: VSYSCALL_HPET, .........[ 89]: FIX_DBGP_BASE, .........[ 90]: FIX_EARLYCON_MEM_BASE, .........[ 95]: FIX_APIC_BASE, .........[ 98]: FIX_IO_APIC_BASE_0, .........[ 99]: FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + 128 - 1, .........[ 107]: FIX_RO_IDT, .........[ 118]: FIX_TEXT_POKE1, .........[ 119]: FIX_TEXT_POKE0, .........[ 123]: __end_of_permanent_fixed_addresses, .........[ 135]: FIX_BTMAP_END = .........[ 136]: (__end_of_permanent_fixed_addresses ^ .........[ 137]: (__end_of_permanent_fixed_addresses + (64 * 4) - 1)) & .........[ 138]: -512 .........[ 139]: ? __end_of_permanent_fixed_addresses + (64 * 4) - .........[ 140]: (__end_of_permanent_fixed_addresses & ((64 * 4) - 1)) .........[ 141]: : __end_of_permanent_fixed_addresses, .........[ 142]: FIX_BTMAP_BEGIN = FIX_BTMAP_END + (64 * 4) - 1, .........[ 147]: FIX_TBOOT_BASE, .........[ 149]: __end_of_fixed_addresses .........[ 150]: }; .........[ 153]: extern void reserve_top_address(unsigned long reserve); .........[ 160]: extern int fixmaps_set; .........[ 162]: extern pte_t *kmap_pte; .........[ 163]: extern pgprot_t kmap_prot; .........[ 164]: extern pte_t *pkmap_page_table; .........[ 166]: void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); .........[ 167]: void native_set_fixmap(enum fixed_addresses idx, .........[ 168]: phys_addr_t phys, pgprot_t flags); .........[ 171]: static inline __attribute__((no_instrument_function)) void __set_fixmap(enum fixed_addresses idx, .........[ 172]: phys_addr_t phys, pgprot_t flags) .........[ 173]: { .........[ 174]: native_set_fixmap(idx, phys, flags); .........[ 175]: } .........[ 193]: extern void __this_fixmap_does_not_exist(void); .........[ 200]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned long fix_to_virt\ ......... (const unsigned int idx) .........[ 201]: { .........[ 211]: if (idx >= __end_of_fixed_addresses) .........[ 212]: __this_fixmap_does_not_exist(); .........[ 214]: return (((-2UL << 20)-((1UL) << 12)) - ((idx) << 12)); .........[ 215]: } .........[ 217]: static inline __attribute__((no_instrument_function)) unsigned long virt_to_fix(const unsigned long vaddr) .........[ 218]: { .........[ 219]: do { if (__builtin_expect(!!(vaddr >=(( -2UL << 20)-((1UL) << 12)) || vaddr <((( -2UL << 20)-((1UL) << 12)) -( __end_of_permanent_fixed_addresses \ ......... << 12))), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" \ ......... "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry\ ......... ))); do { } while (1); } while (0); } while(0); .........[ 220]: return ((((-2UL << 20)-((1UL) << 12)) - ((vaddr)&(~(((1UL) << 12)-1)))) >> 12); .........[ 221]: } .........[ 224]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned long .........[ 225]: __set_fixmap_offset(enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags) .........[ 226]: { .........[ 227]: __set_fixmap(idx, phys, flags); .........[ 228]: return fix_to_virt(idx) + (phys & (((1UL) << 12) - 1)); .........[ 229]: } .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/fixmap.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/idle.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/idle.h .........[ 7]: struct notifier_block; .........[ 8]: void idle_notifier_register(struct notifier_block *n); .........[ 9]: void idle_notifier_unregister(struct notifier_block *n); .........[ 12]: void enter_idle(void); .........[ 13]: void exit_idle(void); .........[ 20]: void amd_e400_remove_cpu(int cpu); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/idle.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h ........[ 41]: static inline __attribute__((no_instrument_function)) void generic_apic_probe(void) ........[ 42]: { ........[ 43]: } ........[ 48]: extern unsigned int apic_verbosity; ........[ 49]: extern int local_apic_timer_c2_ok; ........[ 51]: extern int disable_apic; ........[ 52]: extern unsigned int lapic_timer_frequency; ........[ 55]: extern void __inquire_remote_apic(int apicid); ........[ 62]: static inline __attribute__((no_instrument_function)) void default_inquire_remote_apic(int apicid) ........[ 63]: { ........[ 64]: if (apic_verbosity >= 2) ........[ 65]: __inquire_remote_apic(apicid); ........[ 66]: } ........[ 76]: static inline __attribute__((no_instrument_function)) bool apic_from_smp_config(void) ........[ 77]: { ........[ 78]: return smp_found_config && !disable_apic; ........[ 79]: } ........[ 89]: extern int is_vsmp_box(void); ........[ 96]: extern void xapic_wait_icr_idle(void); ........[ 97]: extern u32 safe_xapic_wait_icr_idle(void); ........[ 98]: extern void xapic_icr_write(u32, u32); ........[ 99]: extern int setup_profiling_timer(unsigned int); ........[ 101]: static inline __attribute__((no_instrument_function)) void native_apic_mem_write(u32 reg, u32 v) ........[ 102]: { ........[ 103]: volatile u32 *addr = (volatile u32 *)((fix_to_virt(FIX_APIC_BASE)) + reg); ........[ 107]: asm volatile ("661:\n\t" "movl %0, %1" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ........ " .long " "663""1""f - .\n" " .word " "(3*32+19)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ........ "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ........ "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ........ "xchgl %0, %1" "\n" "664""1" ":\n\t" ".popsection" : "=r"( v) : "i" (0),ASM_OUTPUT2("0"( v), "m"( *addr))); ........[ 108]: } ........[ 110]: static inline __attribute__((no_instrument_function)) u32 native_apic_mem_read(u32 reg) ........[ 111]: { ........[ 112]: return *((volatile u32 *)((fix_to_virt(FIX_APIC_BASE)) + reg)); ........[ 113]: } ........[ 115]: extern void native_apic_wait_icr_idle(void); ........[ 116]: extern u32 native_safe_apic_wait_icr_idle(void); ........[ 117]: extern void native_apic_icr_write(u32 low, u32 id); ........[ 118]: extern u64 native_apic_icr_read(void); ........[ 120]: extern int x2apic_mode; ........[ 128]: static inline __attribute__((no_instrument_function)) void x2apic_wrmsr_fence(void) ........[ 129]: { ........[ 130]: asm volatile("mfence" : : : "memory"); ........[ 131]: } ........[ 133]: static inline __attribute__((no_instrument_function)) void native_apic_msr_write(u32 reg, u32 v) ........[ 134]: { ........[ 135]: if (reg == 0xE0 || reg == 0x20 || reg == 0xD0 || ........[ 136]: reg == 0x30) ........[ 137]: return; ........[ 139]: wrmsr(0x800 + (reg >> 4), v, 0); ........[ 140]: } ........[ 142]: static inline __attribute__((no_instrument_function)) void native_apic_msr_eoi_write(u32 reg, u32 v) ........[ 143]: { ........[ 144]: wrmsr(0x800 + (0xB0 >> 4), 0x0, 0); ........[ 145]: } ........[ 147]: static inline __attribute__((no_instrument_function)) u32 native_apic_msr_read(u32 reg) ........[ 148]: { ........[ 149]: u64 msr; ........[ 151]: if (reg == 0xE0) ........[ 152]: return -1; ........[ 154]: rdmsrl(0x800 + (reg >> 4), msr); ........[ 155]: return (u32)msr; ........[ 156]: } ........[ 158]: static inline __attribute__((no_instrument_function)) void native_x2apic_wait_icr_idle(void) ........[ 159]: { ........[ 161]: return; ........[ 162]: } ........[ 164]: static inline __attribute__((no_instrument_function)) u32 native_safe_x2apic_wait_icr_idle(void) ........[ 165]: { ........[ 167]: return 0; ........[ 168]: } ........[ 170]: static inline __attribute__((no_instrument_function)) void native_x2apic_icr_write(u32 low, u32 id) ........[ 171]: { ........[ 172]: wrmsrl(0x800 + (0x300 >> 4), ((__u64) id) << 32 | low); ........[ 173]: } ........[ 175]: static inline __attribute__((no_instrument_function)) u64 native_x2apic_icr_read(void) ........[ 176]: { ........[ 177]: unsigned long val; ........[ 179]: rdmsrl(0x800 + (0x300 >> 4), val); ........[ 180]: return val; ........[ 181]: } ........[ 183]: extern int x2apic_phys; ........[ 184]: extern int x2apic_preenabled; ........[ 185]: extern void check_x2apic(void); ........[ 186]: extern void enable_x2apic(void); ........[ 187]: extern void x2apic_icr_write(u32 low, u32 id); ........[ 188]: static inline __attribute__((no_instrument_function)) int x2apic_enabled(void) ........[ 189]: { ........[ 190]: u64 msr; ........[ 192]: if (!(__builtin_constant_p((4*32+21)) && ( ((((4*32+21))>>5)==0 && (1UL<<(((4*32+21))&31) & ((1<<((0*32+ 0) & 31\ ........ ))|(1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((0*32+13)) & 31)|(\ ........ 1<<((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((((4*32+21))>>5)\ ........ ==1 && (1UL<<(((4*32+21))&31) & ((1<<((1*32+29) & 31))|0))) || ((((4*32+21))>>5)==2 && (1UL<<(((4*32+21))&31) & \ ........ 0)) || ((((4*32+21))>>5)==3 && (1UL<<(((4*32+21))&31) & ((1<<((3*32+20) & 31))))) || ((((4*32+21))>>5)==4 && (1UL\ ........ <<(((4*32+21))&31) & (0))) || ((((4*32+21))>>5)==5 && (1UL<<(((4*32+21))&31) & 0)) || ((((4*32+21))>>5)==6 && (1UL\ ........ <<(((4*32+21))&31) & 0)) || ((((4*32+21))>>5)==7 && (1UL<<(((4*32+21))&31) & 0)) || ((((4*32+21))>>5)==8 && (1UL\ ........ <<(((4*32+21))&31) & 0)) || ((((4*32+21))>>5)==9 && (1UL<<(((4*32+21))&31) & 0)) ) ? 1 : (__builtin_constant_p(((\ ........ 4*32+21))) ? constant_test_bit(((4*32+21)), ((unsigned long *)((&boot_cpu_data)->x86_capability))) : variable_test_bit\ ........ (((4*32+21)), ((unsigned long *)((&boot_cpu_data)->x86_capability)))))) ........[ 193]: return 0; ........[ 195]: rdmsrl(0x0000001b, msr); ........[ 196]: if (msr & (1UL << 10)) ........[ 197]: return 1; ........[ 198]: return 0; ........[ 199]: } ........[ 202]: static inline __attribute__((no_instrument_function)) void x2apic_force_phys(void) ........[ 203]: { ........[ 204]: x2apic_phys = 1; ........[ 205]: } ........[ 229]: extern void enable_IR_x2apic(void); ........[ 231]: extern int get_physical_broadcast(void); ........[ 233]: extern int lapic_get_maxlvt(void); ........[ 234]: extern void clear_local_APIC(void); ........[ 235]: extern void connect_bsp_APIC(void); ........[ 236]: extern void disconnect_bsp_APIC(int virt_wire_setup); ........[ 237]: extern void disable_local_APIC(void); ........[ 238]: extern void lapic_shutdown(void); ........[ 239]: extern int verify_local_APIC(void); ........[ 240]: extern void sync_Arb_IDs(void); ........[ 241]: extern void init_bsp_APIC(void); ........[ 242]: extern void setup_local_APIC(void); ........[ 243]: extern void end_local_APIC_setup(void); ........[ 244]: extern void bsp_end_local_APIC_setup(void); ........[ 245]: extern void init_apic_mappings(void); ........[ 246]: void register_lapic_address(unsigned long address); ........[ 247]: extern void setup_boot_APIC_clock(void); ........[ 248]: extern void setup_secondary_APIC_clock(void); ........[ 249]: extern int APIC_init_uniprocessor(void); ........[ 250]: extern int apic_force_enable(unsigned long addr); ........[ 256]: extern int apic_is_clustered_box(void); ........[ 264]: extern int setup_APIC_eilvt(u8 lvt_off, u8 vector, u8 msg_type, u8 mask); ........[ 291]: struct apic { ........[ 292]: char *name; ........[ 294]: int (*probe)(void); ........[ 295]: int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); ........[ 296]: int (*apic_id_valid)(int apicid); ........[ 297]: int (*apic_id_registered)(void); ........[ 299]: u32 irq_delivery_mode; ........[ 300]: u32 irq_dest_mode; ........[ 302]: const struct cpumask *(*target_cpus)(void); ........[ 304]: int disable_esr; ........[ 306]: int dest_logical; ........[ 307]: unsigned long (*check_apicid_used)(physid_mask_t *map, int apicid); ........[ 308]: unsigned long (*check_apicid_present)(int apicid); ........[ 310]: void (*vector_allocation_domain)(int cpu, struct cpumask *retmask, ........[ 311]: const struct cpumask *mask); ........[ 312]: void (*init_apic_ldr)(void); ........[ 314]: void (*ioapic_phys_id_map)(physid_mask_t *phys_map, physid_mask_t *retmap); ........[ 316]: void (*setup_apic_routing)(void); ........[ 317]: int (*multi_timer_check)(int apic, int irq); ........[ 318]: int (*cpu_present_to_apicid)(int mps_cpu); ........[ 319]: void (*apicid_to_cpu_present)(int phys_apicid, physid_mask_t *retmap); ........[ 320]: void (*setup_portio_remap)(void); ........[ 321]: int (*check_phys_apicid_present)(int phys_apicid); ........[ 322]: void (*enable_apic_mode)(void); ........[ 323]: int (*phys_pkg_id)(int cpuid_apic, int index_msb); ........[ 330]: int (*mps_oem_check)(struct mpc_table *mpc, char *oem, char *productid); ........[ 332]: unsigned int (*get_apic_id)(unsigned long x); ........[ 333]: unsigned long (*set_apic_id)(unsigned int id); ........[ 334]: unsigned long apic_id_mask; ........[ 336]: int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, ........[ 337]: const struct cpumask *andmask, ........[ 338]: unsigned int *apicid); ........[ 341]: void (*send_IPI_mask)(const struct cpumask *mask, int vector); ........[ 342]: void (*send_IPI_mask_allbutself)(const struct cpumask *mask, ........[ 343]: int vector); ........[ 344]: void (*send_IPI_allbutself)(int vector); ........[ 345]: void (*send_IPI_all)(int vector); ........[ 346]: void (*send_IPI_self)(int vector); ........[ 349]: int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip); ........[ 351]: int trampoline_phys_low; ........[ 352]: int trampoline_phys_high; ........[ 354]: void (*wait_for_init_deassert)(atomic_t *deassert); ........[ 355]: void (*smp_callin_clear_local_apic)(void); ........[ 356]: void (*inquire_remote_apic)(int apicid); ........[ 359]: u32 (*read)(u32 reg); ........[ 360]: void (*write)(u32 reg, u32 v); ........[ 368]: void (*eoi_write)(u32 reg, u32 v); ........[ 369]: u64 (*icr_read)(void); ........[ 370]: void (*icr_write)(u32 low, u32 high); ........[ 371]: void (*wait_icr_idle)(void); ........[ 372]: u32 (*safe_wait_icr_idle)(void); ........[ 395]: }; ........[ 402]: extern struct apic *apic; ........[ 422]: extern struct apic *__apicdrivers[], *__apicdrivers_end[]; ........[ 428]: extern atomic_t init_deasserted; ........[ 429]: extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip); ........[ 434]: static inline __attribute__((no_instrument_function)) u32 apic_read(u32 reg) ........[ 435]: { ........[ 436]: return apic->read(reg); ........[ 437]: } ........[ 439]: static inline __attribute__((no_instrument_function)) void apic_write(u32 reg, u32 val) ........[ 440]: { ........[ 441]: apic->write(reg, val); ........[ 442]: } ........[ 444]: static inline __attribute__((no_instrument_function)) void apic_eoi(void) ........[ 445]: { ........[ 446]: apic->eoi_write(0xB0, 0x0); ........[ 447]: } ........[ 449]: static inline __attribute__((no_instrument_function)) u64 apic_icr_read(void) ........[ 450]: { ........[ 451]: return apic->icr_read(); ........[ 452]: } ........[ 454]: static inline __attribute__((no_instrument_function)) void apic_icr_write(u32 low, u32 high) ........[ 455]: { ........[ 456]: apic->icr_write(low, high); ........[ 457]: } ........[ 459]: static inline __attribute__((no_instrument_function)) void apic_wait_icr_idle(void) ........[ 460]: { ........[ 461]: apic->wait_icr_idle(); ........[ 462]: } ........[ 464]: static inline __attribute__((no_instrument_function)) u32 safe_apic_wait_icr_idle(void) ........[ 465]: { ........[ 466]: return apic->safe_wait_icr_idle(); ........[ 467]: } ........[ 469]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) apic_set_eoi_write\ ........ (void (*eoi_write)(u32 reg, u32 v)); ........[ 484]: static inline __attribute__((no_instrument_function)) void ack_APIC_irq(void) ........[ 485]: { ........[ 490]: apic_eoi(); ........[ 491]: } ........[ 493]: static inline __attribute__((no_instrument_function)) unsigned default_get_apic_id(unsigned long x) ........[ 494]: { ........[ 495]: unsigned int ver = ((apic_read(0x30)) & 0xFFu); ........[ 497]: if (((ver) >= 0x14) || (__builtin_constant_p((3*32+26)) && ( ((((3*32+26))>>5)==0 && (1UL<<(((3*32+26))&31) & ((\ ........ 1<<((0*32+ 0) & 31))|(1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((\ ........ 0*32+13)) & 31)|(1<<((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((\ ........ ((3*32+26))>>5)==1 && (1UL<<(((3*32+26))&31) & ((1<<((1*32+29) & 31))|0))) || ((((3*32+26))>>5)==2 && (1UL<<((\ ........ (3*32+26))&31) & 0)) || ((((3*32+26))>>5)==3 && (1UL<<(((3*32+26))&31) & ((1<<((3*32+20) & 31))))) || ((((3*32+26\ ........ ))>>5)==4 && (1UL<<(((3*32+26))&31) & (0))) || ((((3*32+26))>>5)==5 && (1UL<<(((3*32+26))&31) & 0)) || ((((3*32+\ ........ 26))>>5)==6 && (1UL<<(((3*32+26))&31) & 0)) || ((((3*32+26))>>5)==7 && (1UL<<(((3*32+26))&31) & 0)) || ((((3*32+\ ........ 26))>>5)==8 && (1UL<<(((3*32+26))&31) & 0)) || ((((3*32+26))>>5)==9 && (1UL<<(((3*32+26))&31) & 0)) ) ? 1 : (__builtin_constant_p\ ........ (((3*32+26))) ? constant_test_bit(((3*32+26)), ((unsigned long *)((&boot_cpu_data)->x86_capability))) : variable_test_bit\ ........ (((3*32+26)), ((unsigned long *)((&boot_cpu_data)->x86_capability)))))) ........[ 498]: return (x >> 24) & 0xFF; ........[ 499]: else ........[ 500]: return (x >> 24) & 0x0F; ........[ 501]: } ........[ 510]: extern int default_acpi_madt_oem_check(char *, char *); ........[ 512]: extern void apic_send_IPI_self(int vector); ........[ 514]: extern __attribute__((section(".data..percpu" ""))) __typeof__(int) x2apic_extra_bits; ........[ 516]: extern int default_cpu_present_to_apicid(int mps_cpu); ........[ 517]: extern int default_check_phys_apicid_present(int phys_apicid); ........[ 520]: static inline __attribute__((no_instrument_function)) void default_wait_for_init_deassert(atomic_t *deassert\ ........ ) ........[ 521]: { ........[ 522]: while (!atomic_read(deassert)) ........[ 523]: cpu_relax(); ........[ 524]: return; ........[ 525]: } ........[ 527]: extern void generic_bigsmp_probe(void); ........[ 536]: static inline __attribute__((no_instrument_function)) const struct cpumask *default_target_cpus(void) ........[ 537]: { ........[ 539]: return cpu_online_mask; ........[ 543]: } ........[ 545]: static inline __attribute__((no_instrument_function)) const struct cpumask *online_target_cpus(void) ........[ 546]: { ........[ 547]: return cpu_online_mask; ........[ 548]: } ........[ 550]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(u16) x86_bios_cpu_apicid; extern \ ........ __typeof__(u16) *x86_bios_cpu_apicid_early_ptr; extern __typeof__(u16) x86_bios_cpu_apicid_early_map[]; ........[ 553]: static inline __attribute__((no_instrument_function)) unsigned int read_apic_id(void) ........[ 554]: { ........[ 555]: unsigned int reg; ........[ 557]: reg = apic_read(0x20); ........[ 559]: return apic->get_apic_id(reg); ........[ 560]: } ........[ 562]: static inline __attribute__((no_instrument_function)) int default_apic_id_valid(int apicid) ........[ 563]: { ........[ 564]: return (apicid < 255); ........[ 565]: } ........[ 567]: extern void default_setup_apic_routing(void); ........[ 569]: extern struct apic apic_noop; ........[ 599]: static inline __attribute__((no_instrument_function)) int ........[ 600]: flat_cpu_mask_to_apicid_and(const struct cpumask *cpumask, ........[ 601]: const struct cpumask *andmask, ........[ 602]: unsigned int *apicid) ........[ 603]: { ........[ 604]: unsigned long cpu_mask = ((cpumask)->bits)[0] & ........[ 605]: ((andmask)->bits)[0] & ........[ 606]: ((cpu_online_mask)->bits)[0] & ........[ 607]: 0xFFu; ........[ 609]: if (__builtin_expect(!!(cpu_mask), 1)) { ........[ 610]: *apicid = (unsigned int)cpu_mask; ........[ 611]: return 0; ........[ 612]: } else { ........[ 613]: return -22; ........[ 614]: } ........[ 615]: } ........[ 617]: extern int ........[ 618]: default_cpu_mask_to_apicid_and(const struct cpumask *cpumask, ........[ 619]: const struct cpumask *andmask, ........[ 620]: unsigned int *apicid); ........[ 622]: static inline __attribute__((no_instrument_function)) void ........[ 623]: flat_vector_allocation_domain(int cpu, struct cpumask *retmask, ........[ 624]: const struct cpumask *mask) ........[ 625]: { ........[ 634]: cpumask_clear(retmask); ........[ 635]: ((retmask)->bits)[0] = 0xFFu; ........[ 636]: } ........[ 638]: static inline __attribute__((no_instrument_function)) void ........[ 639]: default_vector_allocation_domain(int cpu, struct cpumask *retmask, ........[ 640]: const struct cpumask *mask) ........[ 641]: { ........[ 642]: cpumask_copy(retmask, (get_cpu_mask(cpu))); ........[ 643]: } ........[ 645]: static inline __attribute__((no_instrument_function)) unsigned long default_check_apicid_used(physid_mask_t \ ........ *map, int apicid) ........[ 646]: { ........[ 647]: return (__builtin_constant_p((apicid)) ? constant_test_bit((apicid), ((*map).mask)) : variable_test_bit((apicid\ ........ ), ((*map).mask))); ........[ 648]: } ........[ 650]: static inline __attribute__((no_instrument_function)) unsigned long default_check_apicid_present(int bit) ........[ 651]: { ........[ 652]: return (__builtin_constant_p((bit)) ? constant_test_bit((bit), ((phys_cpu_present_map).mask)) : variable_test_bit\ ........ ((bit), ((phys_cpu_present_map).mask))); ........[ 653]: } ........[ 655]: static inline __attribute__((no_instrument_function)) void default_ioapic_phys_id_map(physid_mask_t *phys_map\ ........ , physid_mask_t *retmap) ........[ 656]: { ........[ 657]: *retmap = *phys_map; ........[ 658]: } ........[ 660]: static inline __attribute__((no_instrument_function)) int __default_cpu_present_to_apicid(int mps_cpu) ........[ 661]: { ........[ 662]: if (mps_cpu < nr_cpu_ids && (__builtin_constant_p((cpumask_check((mps_cpu)))) ? constant_test_bit((cpumask_check\ ........ ((mps_cpu))), ((((cpu_present_mask))->bits))) : variable_test_bit((cpumask_check((mps_cpu))), ((((cpu_present_mask\ ........ ))->bits))))) ........[ 663]: return (int)(*({ do { const void *__vpp_verify = (typeof(((&(x86_bios_cpu_apicid))) + 0))((void *)0); (void)__vpp_verify\ ........ ; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(x86_bios_cpu_apicid))) *)(&(x86_bios_cpu_apicid\ ........ )))); (typeof((typeof(*(&(x86_bios_cpu_apicid))) *)(&(x86_bios_cpu_apicid)))) (__ptr + (((__per_cpu_offset\ ........ [mps_cpu])))); }); })); ........[ 664]: else ........[ 665]: return 0xFFFFu; ........[ 666]: } ........[ 668]: static inline __attribute__((no_instrument_function)) int ........[ 669]: __default_check_phys_apicid_present(int phys_apicid) ........[ 670]: { ........[ 671]: return (__builtin_constant_p((phys_apicid)) ? constant_test_bit((phys_apicid), ((phys_cpu_present_map).mask\ ........ )) : variable_test_bit((phys_apicid), ((phys_cpu_present_map).mask))); ........[ 672]: } ........[ 686]: extern int default_cpu_present_to_apicid(int mps_cpu); ........[ 687]: extern int default_check_phys_apicid_present(int phys_apicid); ........[ 691]: extern void irq_enter(void); ........[ 692]: extern void irq_exit(void); ........[ 694]: static inline __attribute__((no_instrument_function)) void entering_irq(void) ........[ 695]: { ........[ 696]: irq_enter(); ........[ 697]: exit_idle(); ........[ 698]: } ........[ 700]: static inline __attribute__((no_instrument_function)) void entering_ack_irq(void) ........[ 701]: { ........[ 702]: ack_APIC_irq(); ........[ 703]: entering_irq(); ........[ 704]: } ........[ 706]: static inline __attribute__((no_instrument_function)) void exiting_irq(void) ........[ 707]: { ........[ 708]: irq_exit(); ........[ 709]: } ........[ 711]: static inline __attribute__((no_instrument_function)) void exiting_ack_irq(void) ........[ 712]: { ........[ 713]: irq_exit(); ........[ 715]: ack_APIC_irq(); ........[ 716]: } ........[ 718]: extern void ioapic_zap_locks(void); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/apic.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io_apic.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io_apic.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_vectors.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_vectors.h .........[ 135]: static inline __attribute__((no_instrument_function)) int invalid_vm86_irq(int irq) .........[ 136]: { .........[ 137]: return irq < 3 || irq > 15; .........[ 138]: } .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_vectors.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io_apic.h ........[ 27]: union IO_APIC_reg_00 { ........[ 28]: u32 raw; ........[ 29]: struct { ........[ 30]: u32 __reserved_2 : 14, ........[ 31]: LTS : 1, ........[ 32]: delivery_type : 1, ........[ 33]: __reserved_1 : 8, ........[ 34]: ID : 8; ........[ 35]: } __attribute__ ((packed)) bits; ........[ 36]: }; ........[ 38]: union IO_APIC_reg_01 { ........[ 39]: u32 raw; ........[ 40]: struct { ........[ 41]: u32 version : 8, ........[ 42]: __reserved_2 : 7, ........[ 43]: PRQ : 1, ........[ 44]: entries : 8, ........[ 45]: __reserved_1 : 8; ........[ 46]: } __attribute__ ((packed)) bits; ........[ 47]: }; ........[ 49]: union IO_APIC_reg_02 { ........[ 50]: u32 raw; ........[ 51]: struct { ........[ 52]: u32 __reserved_2 : 24, ........[ 53]: arbitration : 4, ........[ 54]: __reserved_1 : 4; ........[ 55]: } __attribute__ ((packed)) bits; ........[ 56]: }; ........[ 58]: union IO_APIC_reg_03 { ........[ 59]: u32 raw; ........[ 60]: struct { ........[ 61]: u32 boot_DT : 1, ........[ 62]: __reserved_1 : 31; ........[ 63]: } __attribute__ ((packed)) bits; ........[ 64]: }; ........[ 66]: struct IO_APIC_route_entry { ........[ 67]: __u32 vector : 8, ........[ 68]: delivery_mode : 3, ........[ 72]: dest_mode : 1, ........[ 73]: delivery_status : 1, ........[ 74]: polarity : 1, ........[ 75]: irr : 1, ........[ 76]: trigger : 1, ........[ 77]: mask : 1, ........[ 78]: __reserved_2 : 15; ........[ 80]: __u32 __reserved_3 : 24, ........[ 81]: dest : 8; ........[ 82]: } __attribute__ ((packed)); ........[ 84]: struct IR_IO_APIC_route_entry { ........[ 85]: __u64 vector : 8, ........[ 86]: zero : 3, ........[ 87]: index2 : 1, ........[ 88]: delivery_status : 1, ........[ 89]: polarity : 1, ........[ 90]: irr : 1, ........[ 91]: trigger : 1, ........[ 92]: mask : 1, ........[ 93]: reserved : 31, ........[ 94]: format : 1, ........[ 95]: index : 15; ........[ 96]: } __attribute__ ((packed)); ........[ 107]: extern int nr_ioapics; ........[ 109]: extern int mpc_ioapic_id(int ioapic); ........[ 110]: extern unsigned int mpc_ioapic_addr(int ioapic); ........[ 111]: extern struct mp_ioapic_gsi *mp_ioapic_gsi_routing(int ioapic); ........[ 116]: extern int mp_irq_entries; ........[ 119]: extern struct mpc_intsrc mp_irqs[(256 * 4)]; ........[ 122]: extern int mpc_default_type; ........[ 125]: extern int sis_apic_bug; ........[ 128]: extern int skip_ioapic_setup; ........[ 131]: extern int noioapicquirk; ........[ 134]: extern int noioapicreroute; ........[ 137]: extern int timer_through_8259; ........[ 146]: struct io_apic_irq_attr; ........[ 147]: struct irq_cfg; ........[ 148]: extern int io_apic_set_pci_routing(struct device *dev, int irq, ........[ 149]: struct io_apic_irq_attr *irq_attr); ........[ 150]: void setup_IO_APIC_irq_extra(u32 gsi); ........[ 151]: extern void ioapic_insert_resources(void); ........[ 153]: extern int native_setup_ioapic_entry(int, struct IO_APIC_route_entry *, ........[ 154]: unsigned int, int, ........[ 155]: struct io_apic_irq_attr *); ........[ 156]: extern int native_setup_ioapic_entry(int, struct IO_APIC_route_entry *, ........[ 157]: unsigned int, int, ........[ 158]: struct io_apic_irq_attr *); ........[ 159]: extern void eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg); ........[ 161]: extern void native_compose_msi_msg(struct pci_dev *pdev, ........[ 162]: unsigned int irq, unsigned int dest, ........[ 163]: struct msi_msg *msg, u8 hpet_id); ........[ 164]: extern void native_eoi_ioapic_pin(int apic, int pin, int vector); ........[ 165]: int io_apic_setup_irq_pin_once(unsigned int irq, int node, struct io_apic_irq_attr *attr); ........[ 167]: extern int save_ioapic_entries(void); ........[ 168]: extern void mask_ioapic_entries(void); ........[ 169]: extern int restore_ioapic_entries(void); ........[ 171]: extern int get_nr_irqs_gsi(void); ........[ 173]: extern void setup_ioapic_ids_from_mpc(void); ........[ 174]: extern void setup_ioapic_ids_from_mpc_nocheck(void); ........[ 176]: struct mp_ioapic_gsi{ ........[ 177]: u32 gsi_base; ........[ 178]: u32 gsi_end; ........[ 179]: }; ........[ 180]: extern struct mp_ioapic_gsi mp_gsi_routing[]; ........[ 181]: extern u32 gsi_top; ........[ 182]: int mp_find_ioapic(u32 gsi); ........[ 183]: int mp_find_ioapic_pin(int ioapic, u32 gsi); ........[ 184]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) mp_register_ioapic\ ........ (int id, u32 address, u32 gsi_base); ........[ 185]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pre_init_apic_IRQ0\ ........ (void); ........[ 187]: extern void mp_save_irq(struct mpc_intsrc *m); ........[ 189]: extern void disable_ioapic_support(void); ........[ 191]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) native_io_apic_init_mappings\ ........ (void); ........[ 192]: extern unsigned int native_io_apic_read(unsigned int apic, unsigned int reg); ........[ 193]: extern void native_io_apic_write(unsigned int apic, unsigned int reg, unsigned int val); ........[ 194]: extern void native_io_apic_modify(unsigned int apic, unsigned int reg, unsigned int val); ........[ 195]: extern void native_disable_io_apic(void); ........[ 196]: extern void native_io_apic_print_entries(unsigned int apic, unsigned int nr_entries); ........[ 197]: extern void intel_ir_io_apic_print_entries(unsigned int apic, unsigned int nr_entries); ........[ 198]: extern int native_ioapic_set_affinity(struct irq_data *, ........[ 199]: const struct cpumask *, ........[ 200]: bool); ........[ 202]: static inline __attribute__((no_instrument_function)) unsigned int io_apic_read(unsigned int apic, unsigned int \ ........ reg) ........[ 203]: { ........[ 204]: return x86_io_apic_ops.read(apic, reg); ........[ 205]: } ........[ 207]: static inline __attribute__((no_instrument_function)) void io_apic_write(unsigned int apic, unsigned int reg, \ ........ unsigned int value) ........[ 208]: { ........[ 209]: x86_io_apic_ops.write(apic, reg, value); ........[ 210]: } ........[ 211]: static inline __attribute__((no_instrument_function)) void io_apic_modify(unsigned int apic, unsigned int reg\ ........ , unsigned int value) ........[ 212]: { ........[ 213]: x86_io_apic_ops.modify(apic, reg, value); ........[ 214]: } ........[ 216]: extern void io_apic_eoi(unsigned int apic, unsigned int vector); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/io_apic.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cpumask.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cpumask.h ........[ 6]: extern cpumask_var_t cpu_callin_mask; ........[ 7]: extern cpumask_var_t cpu_callout_mask; ........[ 8]: extern cpumask_var_t cpu_initialized_mask; ........[ 9]: extern cpumask_var_t cpu_sibling_setup_mask; ........[ 11]: extern void setup_cpu_local_masks(void); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cpumask.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h .......[ 22]: extern int smp_num_siblings; .......[ 23]: extern unsigned int num_processors; .......[ 25]: static inline __attribute__((no_instrument_function)) bool cpu_has_ht_siblings(void) .......[ 26]: { .......[ 27]: bool has_siblings = false; .......[ 29]: has_siblings = (__builtin_constant_p((0*32+28)) && ( ((((0*32+28))>>5)==0 && (1UL<<(((0*32+28))&31) & ((1<<((\ ....... 0*32+ 0) & 31))|(1<<((0*32+ 3)) & 31)|(1<<((0*32+ 5) & 31))|(1<<((0*32+ 6) & 31))| (1<<((0*32+ 8) & 31))|(1<<((0*32+\ ....... 13)) & 31)|(1<<((0*32+24) & 31))|(1<<((0*32+15) & 31))| (1<<((0*32+25) & 31))|(1<<((0*32+26) & 31))))) || ((((0*32\ ....... +28))>>5)==1 && (1UL<<(((0*32+28))&31) & ((1<<((1*32+29) & 31))|0))) || ((((0*32+28))>>5)==2 && (1UL<<(((0*32+\ ....... 28))&31) & 0)) || ((((0*32+28))>>5)==3 && (1UL<<(((0*32+28))&31) & ((1<<((3*32+20) & 31))))) || ((((0*32+28))>>5\ ....... )==4 && (1UL<<(((0*32+28))&31) & (0))) || ((((0*32+28))>>5)==5 && (1UL<<(((0*32+28))&31) & 0)) || ((((0*32+28))>>\ ....... 5)==6 && (1UL<<(((0*32+28))&31) & 0)) || ((((0*32+28))>>5)==7 && (1UL<<(((0*32+28))&31) & 0)) || ((((0*32+28))>>\ ....... 5)==8 && (1UL<<(((0*32+28))&31) & 0)) || ((((0*32+28))>>5)==9 && (1UL<<(((0*32+28))&31) & 0)) ) ? 1 : (__builtin_constant_p\ ....... (((0*32+28))) ? constant_test_bit(((0*32+28)), ((unsigned long *)((&boot_cpu_data)->x86_capability))) : variable_test_bit\ ....... (((0*32+28)), ((unsigned long *)((&boot_cpu_data)->x86_capability))))) && smp_num_siblings > 1; .......[ 31]: return has_siblings; .......[ 32]: } .......[ 34]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(cpumask_var_t) cpu_sibling_map\ ....... ; .......[ 35]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(cpumask_var_t) cpu_core_map; .......[ 37]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(cpumask_var_t) cpu_llc_shared_map\ ....... ; .......[ 38]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(u16) cpu_llc_id; .......[ 39]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(int) cpu_number; .......[ 41]: static inline __attribute__((no_instrument_function)) struct cpumask *cpu_sibling_mask(int cpu) .......[ 42]: { .......[ 43]: return (*({ do { const void *__vpp_verify = (typeof(((&(cpu_sibling_map))) + 0))((void *)0); (void)__vpp_verify; \ ....... } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(cpu_sibling_map))) *)(&(cpu_sibling_map\ ....... )))); (typeof((typeof(*(&(cpu_sibling_map))) *)(&(cpu_sibling_map)))) (__ptr + (((__per_cpu_offset[cpu]))\ ....... )); }); })); .......[ 44]: } .......[ 46]: static inline __attribute__((no_instrument_function)) struct cpumask *cpu_core_mask(int cpu) .......[ 47]: { .......[ 48]: return (*({ do { const void *__vpp_verify = (typeof(((&(cpu_core_map))) + 0))((void *)0); (void)__vpp_verify; } while \ ....... (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(cpu_core_map))) *)(&(cpu_core_map)))); \ ....... (typeof((typeof(*(&(cpu_core_map))) *)(&(cpu_core_map)))) (__ptr + (((__per_cpu_offset[cpu])))); }); })); .......[ 49]: } .......[ 51]: static inline __attribute__((no_instrument_function)) struct cpumask *cpu_llc_shared_mask(int cpu) .......[ 52]: { .......[ 53]: return (*({ do { const void *__vpp_verify = (typeof(((&(cpu_llc_shared_map))) + 0))((void *)0); (void)__vpp_verify\ ....... ; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(cpu_llc_shared_map))) *)(&(cpu_llc_shared_map\ ....... )))); (typeof((typeof(*(&(cpu_llc_shared_map))) *)(&(cpu_llc_shared_map)))) (__ptr + (((__per_cpu_offset[\ ....... cpu])))); }); })); .......[ 54]: } .......[ 56]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(u16) x86_cpu_to_apicid; extern \ ....... __typeof__(u16) *x86_cpu_to_apicid_early_ptr; extern __typeof__(u16) x86_cpu_to_apicid_early_map[]; .......[ 57]: extern __attribute__((section(".data..percpu" "..readmostly"))) __typeof__(u16) x86_bios_cpu_apicid; extern \ ....... __typeof__(u16) *x86_bios_cpu_apicid_early_ptr; extern __typeof__(u16) x86_bios_cpu_apicid_early_map[]; .......[ 63]: extern unsigned long stack_start; .......[ 65]: struct task_struct; .......[ 67]: struct smp_ops { .......[ 68]: void (*smp_prepare_boot_cpu)(void); .......[ 69]: void (*smp_prepare_cpus)(unsigned max_cpus); .......[ 70]: void (*smp_cpus_done)(unsigned max_cpus); .......[ 72]: void (*stop_other_cpus)(int wait); .......[ 73]: void (*smp_send_reschedule)(int cpu); .......[ 75]: int (*cpu_up)(unsigned cpu, struct task_struct *tidle); .......[ 76]: int (*cpu_disable)(void); .......[ 77]: void (*cpu_die)(unsigned int cpu); .......[ 78]: void (*play_dead)(void); .......[ 80]: void (*send_call_func_ipi)(const struct cpumask *mask); .......[ 81]: void (*send_call_func_single_ipi)(int cpu); .......[ 82]: }; .......[ 85]: extern void set_cpu_sibling_map(int cpu); .......[ 91]: extern struct smp_ops smp_ops; .......[ 93]: static inline __attribute__((no_instrument_function)) void smp_send_stop(void) .......[ 94]: { .......[ 95]: smp_ops.stop_other_cpus(0); .......[ 96]: } .......[ 98]: static inline __attribute__((no_instrument_function)) void stop_other_cpus(void) .......[ 99]: { .......[ 100]: smp_ops.stop_other_cpus(1); .......[ 101]: } .......[ 103]: static inline __attribute__((no_instrument_function)) void smp_prepare_boot_cpu(void) .......[ 104]: { .......[ 105]: smp_ops.smp_prepare_boot_cpu(); .......[ 106]: } .......[ 108]: static inline __attribute__((no_instrument_function)) void smp_prepare_cpus(unsigned int max_cpus) .......[ 109]: { .......[ 110]: smp_ops.smp_prepare_cpus(max_cpus); .......[ 111]: } .......[ 113]: static inline __attribute__((no_instrument_function)) void smp_cpus_done(unsigned int max_cpus) .......[ 114]: { .......[ 115]: smp_ops.smp_cpus_done(max_cpus); .......[ 116]: } .......[ 118]: static inline __attribute__((no_instrument_function)) int __cpu_up(unsigned int cpu, struct task_struct *tidle\ ....... ) .......[ 119]: { .......[ 120]: return smp_ops.cpu_up(cpu, tidle); .......[ 121]: } .......[ 123]: static inline __attribute__((no_instrument_function)) int __cpu_disable(void) .......[ 124]: { .......[ 125]: return smp_ops.cpu_disable(); .......[ 126]: } .......[ 128]: static inline __attribute__((no_instrument_function)) void __cpu_die(unsigned int cpu) .......[ 129]: { .......[ 130]: smp_ops.cpu_die(cpu); .......[ 131]: } .......[ 133]: static inline __attribute__((no_instrument_function)) void play_dead(void) .......[ 134]: { .......[ 135]: smp_ops.play_dead(); .......[ 136]: } .......[ 138]: static inline __attribute__((no_instrument_function)) void smp_send_reschedule(int cpu) .......[ 139]: { .......[ 140]: smp_ops.smp_send_reschedule(cpu); .......[ 141]: } .......[ 143]: static inline __attribute__((no_instrument_function)) void arch_send_call_function_single_ipi(int cpu) .......[ 144]: { .......[ 145]: smp_ops.send_call_func_single_ipi(cpu); .......[ 146]: } .......[ 148]: static inline __attribute__((no_instrument_function)) void arch_send_call_function_ipi_mask(const struct cpumask \ ....... *mask) .......[ 149]: { .......[ 150]: smp_ops.send_call_func_ipi(mask); .......[ 151]: } .......[ 153]: void cpu_disable_common(void); .......[ 154]: void native_smp_prepare_boot_cpu(void); .......[ 155]: void native_smp_prepare_cpus(unsigned int max_cpus); .......[ 156]: void native_smp_cpus_done(unsigned int max_cpus); .......[ 157]: int native_cpu_up(unsigned int cpunum, struct task_struct *tidle); .......[ 158]: int native_cpu_disable(void); .......[ 159]: void native_cpu_die(unsigned int cpu); .......[ 160]: void native_play_dead(void); .......[ 161]: void play_dead_common(void); .......[ 162]: void wbinvd_on_cpu(int cpu); .......[ 163]: int wbinvd_on_all_cpus(void); .......[ 165]: void native_send_call_func_ipi(const struct cpumask *mask); .......[ 166]: void native_send_call_func_single_ipi(int cpu); .......[ 167]: void x86_idle_thread_init(unsigned int cpu, struct task_struct *idle); .......[ 169]: void smp_store_boot_cpu_info(void); .......[ 170]: void smp_store_cpu_info(int id); .......[ 182]: extern unsigned disabled_cpus; .......[ 217]: extern int hard_smp_processor_id(void); .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smp.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/smp.h ......[ 71]: extern void smp_send_stop(void); ......[ 76]: extern void smp_send_reschedule(int cpu); ......[ 82]: extern void smp_prepare_cpus(unsigned int max_cpus); ......[ 87]: extern int __cpu_up(unsigned int cpunum, struct task_struct *tidle); ......[ 92]: extern void smp_cpus_done(unsigned int max_cpus); ......[ 97]: int smp_call_function(smp_call_func_t func, void *info, int wait); ......[ 98]: void smp_call_function_many(const struct cpumask *mask, ......[ 99]: smp_call_func_t func, void *info, bool wait); ......[ 101]: int smp_call_function_any(const struct cpumask *mask, ......[ 102]: smp_call_func_t func, void *info, int wait); ......[ 104]: void kick_all_cpus_sync(void); ......[ 109]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) call_function_init\ ...... (void); ......[ 110]: void generic_smp_call_function_single_interrupt(void); ......[ 118]: void smp_prepare_boot_cpu(void); ......[ 120]: extern unsigned int setup_max_cpus; ......[ 121]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) setup_nr_cpu_ids\ ...... (void); ......[ 122]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) smp_init(\ ...... void); ......[ 185]: extern void arch_disable_smp_support(void); ......[ 187]: void smp_setup_processor_id(void); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/smp.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu.h .....[ 81]: extern void *pcpu_base_addr; .....[ 82]: extern const unsigned long *pcpu_unit_offsets; .....[ 84]: struct pcpu_group_info { .....[ 85]: int nr_units; .....[ 86]: unsigned long base_offset; .....[ 87]: unsigned int *cpu_map; .....[ 89]: }; .....[ 91]: struct pcpu_alloc_info { .....[ 92]: size_t static_size; .....[ 93]: size_t reserved_size; .....[ 94]: size_t dyn_size; .....[ 95]: size_t unit_size; .....[ 96]: size_t atom_size; .....[ 97]: size_t alloc_size; .....[ 98]: size_t __ai_size; .....[ 99]: int nr_groups; .....[ 100]: struct pcpu_group_info groups[]; .....[ 101]: }; .....[ 103]: enum pcpu_fc { .....[ 104]: PCPU_FC_AUTO, .....[ 105]: PCPU_FC_EMBED, .....[ 106]: PCPU_FC_PAGE, .....[ 108]: PCPU_FC_NR, .....[ 109]: }; .....[ 110]: extern const char * const pcpu_fc_names[PCPU_FC_NR]; .....[ 112]: extern enum pcpu_fc pcpu_chosen_fc; .....[ 114]: typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size, .....[ 115]: size_t align); .....[ 116]: typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size); .....[ 117]: typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr); .....[ 118]: typedef int (pcpu_fc_cpu_distance_fn_t)(unsigned int from, unsigned int to); .....[ 120]: extern struct pcpu_alloc_info * __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function\ ..... )) pcpu_alloc_alloc_info(int nr_groups, .....[ 121]: int nr_units); .....[ 122]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pcpu_free_alloc_info\ ..... (struct pcpu_alloc_info *ai); .....[ 124]: extern int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pcpu_setup_first_chunk\ ..... (const struct pcpu_alloc_info *ai, .....[ 125]: void *base_addr); .....[ 128]: extern int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pcpu_embed_first_chunk\ ..... (size_t reserved_size, size_t dyn_size, .....[ 129]: size_t atom_size, .....[ 130]: pcpu_fc_cpu_distance_fn_t cpu_distance_fn, .....[ 131]: pcpu_fc_alloc_fn_t alloc_fn, .....[ 132]: pcpu_fc_free_fn_t free_fn); .....[ 136]: extern int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) pcpu_page_first_chunk\ ..... (size_t reserved_size, .....[ 137]: pcpu_fc_alloc_fn_t alloc_fn, .....[ 138]: pcpu_fc_free_fn_t free_fn, .....[ 139]: pcpu_fc_populate_pte_fn_t populate_pte_fn); .....[ 153]: extern void *__alloc_reserved_percpu(size_t size, size_t align); .....[ 154]: extern bool is_kernel_percpu_address(unsigned long addr); .....[ 159]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) percpu_init_late\ ..... (void); .....[ 161]: extern void *__alloc_percpu(size_t size, size_t align); .....[ 162]: extern void free_percpu(void *__pdata); .....[ 163]: extern phys_addr_t per_cpu_ptr_to_phys(void *addr); .....[ 173]: extern void __bad_size_call_parameter(void); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-rwsem.h ....[ 10]: struct percpu_rw_semaphore { ....[ 11]: unsigned int *fast_read_ctr; ....[ 12]: atomic_t write_ctr; ....[ 13]: struct rw_semaphore rw_sem; ....[ 14]: atomic_t slow_read_ctr; ....[ 15]: wait_queue_head_t write_waitq; ....[ 16]: }; ....[ 18]: extern void percpu_down_read(struct percpu_rw_semaphore *); ....[ 19]: extern void percpu_up_read(struct percpu_rw_semaphore *); ....[ 21]: extern void percpu_down_write(struct percpu_rw_semaphore *); ....[ 22]: extern void percpu_up_write(struct percpu_rw_semaphore *); ....[ 24]: extern int __percpu_init_rwsem(struct percpu_rw_semaphore *, ....[ 25]: const char *, struct lock_class_key *); ....[ 26]: extern void percpu_free_rwsem(struct percpu_rw_semaphore *); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-rwsem.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/blk_types.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/blk_types.h ....[ 12]: struct bio_set; ....[ 13]: struct bio; ....[ 14]: struct bio_integrity_payload; ....[ 15]: struct page; ....[ 16]: struct block_device; ....[ 17]: struct io_context; ....[ 18]: struct cgroup_subsys_state; ....[ 19]: typedef void (bio_end_io_t) (struct bio *, int); ....[ 20]: typedef void (bio_destructor_t) (struct bio *); ....[ 25]: struct bio_vec { ....[ 26]: struct page *bv_page; ....[ 27]: unsigned int bv_len; ....[ 28]: unsigned int bv_offset; ....[ 29]: }; ....[ 35]: struct bio { ....[ 36]: sector_t bi_sector; ....[ 38]: struct bio *bi_next; ....[ 39]: struct block_device *bi_bdev; ....[ 40]: unsigned long bi_flags; ....[ 41]: unsigned long bi_rw; ....[ 45]: unsigned short bi_vcnt; ....[ 46]: unsigned short bi_idx; ....[ 51]: unsigned int bi_phys_segments; ....[ 53]: unsigned int bi_size; ....[ 59]: unsigned int bi_seg_front_size; ....[ 60]: unsigned int bi_seg_back_size; ....[ 62]: bio_end_io_t *bi_end_io; ....[ 64]: void *bi_private; ....[ 70]: struct io_context *bi_ioc; ....[ 71]: struct cgroup_subsys_state *bi_css; ....[ 74]: struct bio_integrity_payload *bi_integrity; ....[ 81]: unsigned int bi_max_vecs; ....[ 83]: atomic_t bi_cnt; ....[ 85]: struct bio_vec *bi_io_vec; ....[ 87]: struct bio_set *bi_pool; ....[ 94]: struct bio_vec bi_inline_vecs[0]; ....[ 95]: }; ....[ 140]: enum rq_flag_bits { ....[ 142]: __REQ_WRITE, ....[ 143]: __REQ_FAILFAST_DEV, ....[ 144]: __REQ_FAILFAST_TRANSPORT, ....[ 145]: __REQ_FAILFAST_DRIVER, ....[ 147]: __REQ_SYNC, ....[ 148]: __REQ_META, ....[ 149]: __REQ_PRIO, ....[ 150]: __REQ_DISCARD, ....[ 151]: __REQ_SECURE, ....[ 152]: __REQ_WRITE_SAME, ....[ 154]: __REQ_NOIDLE, ....[ 155]: __REQ_FUA, ....[ 156]: __REQ_FLUSH, ....[ 159]: __REQ_RAHEAD, ....[ 160]: __REQ_THROTTLED, ....[ 164]: __REQ_SORTED, ....[ 165]: __REQ_SOFTBARRIER, ....[ 166]: __REQ_NOMERGE, ....[ 167]: __REQ_STARTED, ....[ 168]: __REQ_DONTPREP, ....[ 169]: __REQ_QUEUED, ....[ 170]: __REQ_ELVPRIV, ....[ 171]: __REQ_FAILED, ....[ 172]: __REQ_QUIET, ....[ 173]: __REQ_PREEMPT, ....[ 174]: __REQ_ALLOCED, ....[ 175]: __REQ_COPY_USER, ....[ 176]: __REQ_FLUSH_SEQ, ....[ 177]: __REQ_IO_STAT, ....[ 178]: __REQ_MIXED_MERGE, ....[ 179]: __REQ_KERNEL, ....[ 180]: __REQ_PM, ....[ 181]: __REQ_END, ....[ 182]: __REQ_NR_BITS, ....[ 183]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/blk_types.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fs.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fs.h ....[ 38]: struct fstrim_range { ....[ 39]: __u64 start; ....[ 40]: __u64 len; ....[ 41]: __u64 minlen; ....[ 42]: }; ....[ 45]: struct files_stat_struct { ....[ 46]: unsigned long nr_files; ....[ 47]: unsigned long nr_free_files; ....[ 48]: unsigned long max_files; ....[ 49]: }; ....[ 51]: struct inodes_stat_t { ....[ 52]: long nr_inodes; ....[ 53]: long nr_unused; ....[ 54]: long dummy[5]; ....[ 55]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fs.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...[ 36]: struct export_operations; ...[ 37]: struct hd_geometry; ...[ 38]: struct iovec; ...[ 39]: struct nameidata; ...[ 40]: struct kiocb; ...[ 41]: struct kobject; ...[ 42]: struct pipe_inode_info; ...[ 43]: struct poll_table_struct; ...[ 44]: struct kstatfs; ...[ 45]: struct vm_area_struct; ...[ 46]: struct vfsmount; ...[ 47]: struct cred; ...[ 48]: struct swap_info_struct; ...[ 49]: struct seq_file; ...[ 50]: struct workqueue_struct; ...[ 52]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) inode_init\ ... (void); ...[ 53]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) inode_init_early\ ... (void); ...[ 54]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) files_init\ ... (unsigned long); ...[ 56]: extern struct files_stat_struct files_stat; ...[ 57]: extern unsigned long get_max_files(void); ...[ 58]: extern int sysctl_nr_open; ...[ 59]: extern struct inodes_stat_t inodes_stat; ...[ 60]: extern int leases_enable, lease_break_time; ...[ 61]: extern int sysctl_protected_symlinks; ...[ 62]: extern int sysctl_protected_hardlinks; ...[ 64]: struct buffer_head; ...[ 65]: typedef int (get_block_t)(struct inode *inode, sector_t iblock, ...[ 66]: struct buffer_head *bh_result, int create); ...[ 67]: typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, ...[ 68]: ssize_t bytes, void *private); ...[ 226]: struct iattr { ...[ 227]: unsigned int ia_valid; ...[ 228]: umode_t ia_mode; ...[ 229]: kuid_t ia_uid; ...[ 230]: kgid_t ia_gid; ...[ 231]: loff_t ia_size; ...[ 232]: struct timespec ia_atime; ...[ 233]: struct timespec ia_mtime; ...[ 234]: struct timespec ia_ctime; ...[ 241]: struct file *ia_file; ...[ 242]: }; ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu_counter.h .....[ 18]: struct percpu_counter { .....[ 19]: raw_spinlock_t lock; .....[ 20]: s64 count; .....[ 22]: struct list_head list; .....[ 24]: s32 *counters; .....[ 25]: }; .....[ 27]: extern int percpu_counter_batch; .....[ 29]: int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, .....[ 30]: struct lock_class_key *key); .....[ 39]: void percpu_counter_destroy(struct percpu_counter *fbc); .....[ 40]: void percpu_counter_set(struct percpu_counter *fbc, s64 amount); .....[ 41]: void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch); .....[ 42]: s64 __percpu_counter_sum(struct percpu_counter *fbc); .....[ 43]: int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs); .....[ 45]: static inline __attribute__((no_instrument_function)) void percpu_counter_add(struct percpu_counter *fbc, s64 \ ..... amount) .....[ 46]: { .....[ 47]: __percpu_counter_add(fbc, amount, percpu_counter_batch); .....[ 48]: } .....[ 50]: static inline __attribute__((no_instrument_function)) s64 percpu_counter_sum_positive(struct percpu_counter \ ..... *fbc) .....[ 51]: { .....[ 52]: s64 ret = __percpu_counter_sum(fbc); .....[ 53]: return ret < 0 ? 0 : ret; .....[ 54]: } .....[ 56]: static inline __attribute__((no_instrument_function)) s64 percpu_counter_sum(struct percpu_counter *fbc) .....[ 57]: { .....[ 58]: return __percpu_counter_sum(fbc); .....[ 59]: } .....[ 61]: static inline __attribute__((no_instrument_function)) s64 percpu_counter_read(struct percpu_counter *fbc) .....[ 62]: { .....[ 63]: return fbc->count; .....[ 64]: } .....[ 71]: static inline __attribute__((no_instrument_function)) s64 percpu_counter_read_positive(struct percpu_counter \ ..... *fbc) .....[ 72]: { .....[ 73]: s64 ret = fbc->count; .....[ 75]: __asm__ __volatile__("": : :"memory"); .....[ 76]: if (ret >= 0) .....[ 77]: return ret; .....[ 78]: return 0; .....[ 79]: } .....[ 81]: static inline __attribute__((no_instrument_function)) int percpu_counter_initialized(struct percpu_counter \ ..... *fbc) .....[ 82]: { .....[ 83]: return (fbc->counters != ((void *)0)); .....[ 84]: } .....[ 162]: static inline __attribute__((no_instrument_function)) void percpu_counter_inc(struct percpu_counter *fbc) .....[ 163]: { .....[ 164]: percpu_counter_add(fbc, 1); .....[ 165]: } .....[ 167]: static inline __attribute__((no_instrument_function)) void percpu_counter_dec(struct percpu_counter *fbc) .....[ 168]: { .....[ 169]: percpu_counter_add(fbc, -1); .....[ 170]: } .....[ 172]: static inline __attribute__((no_instrument_function)) void percpu_counter_sub(struct percpu_counter *fbc, s64 \ ..... amount) .....[ 173]: { .....[ 174]: percpu_counter_add(fbc, -amount); .....[ 175]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu_counter.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/dqblk_xfs.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/dqblk_xfs.h .....[ 51]: typedef struct fs_disk_quota { .....[ 52]: __s8 d_version; .....[ 53]: __s8 d_flags; .....[ 54]: __u16 d_fieldmask; .....[ 55]: __u32 d_id; .....[ 56]: __u64 d_blk_hardlimit; .....[ 57]: __u64 d_blk_softlimit; .....[ 58]: __u64 d_ino_hardlimit; .....[ 59]: __u64 d_ino_softlimit; .....[ 60]: __u64 d_bcount; .....[ 61]: __u64 d_icount; .....[ 62]: __s32 d_itimer; .....[ 64]: __s32 d_btimer; .....[ 65]: __u16 d_iwarns; .....[ 66]: __u16 d_bwarns; .....[ 67]: __s32 d_padding2; .....[ 68]: __u64 d_rtb_hardlimit; .....[ 69]: __u64 d_rtb_softlimit; .....[ 70]: __u64 d_rtbcount; .....[ 71]: __s32 d_rtbtimer; .....[ 72]: __u16 d_rtbwarns; .....[ 73]: __s16 d_padding3; .....[ 74]: char d_padding4[8]; .....[ 75]: } fs_disk_quota_t; .....[ 147]: typedef struct fs_qfilestat { .....[ 148]: __u64 qfs_ino; .....[ 149]: __u64 qfs_nblks; .....[ 150]: __u32 qfs_nextents; .....[ 151]: } fs_qfilestat_t; .....[ 153]: typedef struct fs_quota_stat { .....[ 154]: __s8 qs_version; .....[ 155]: __u16 qs_flags; .....[ 156]: __s8 qs_pad; .....[ 157]: fs_qfilestat_t qs_uquota; .....[ 158]: fs_qfilestat_t qs_gquota; .....[ 159]: __u32 qs_incoredqs; .....[ 160]: __s32 qs_btimelimit; .....[ 161]: __s32 qs_itimelimit; .....[ 162]: __s32 qs_rtbtimelimit; .....[ 163]: __u16 qs_bwarnlimit; .....[ 164]: __u16 qs_iwarnlimit; .....[ 165]: } fs_quota_stat_t; .....[ 190]: struct fs_qfilestatv { .....[ 191]: __u64 qfs_ino; .....[ 192]: __u64 qfs_nblks; .....[ 193]: __u32 qfs_nextents; .....[ 194]: __u32 qfs_pad; .....[ 195]: }; .....[ 197]: struct fs_quota_statv { .....[ 198]: __s8 qs_version; .....[ 199]: __u8 qs_pad1; .....[ 200]: __u16 qs_flags; .....[ 201]: __u32 qs_incoredqs; .....[ 202]: struct fs_qfilestatv qs_uquota; .....[ 203]: struct fs_qfilestatv qs_gquota; .....[ 204]: struct fs_qfilestatv qs_pquota; .....[ 205]: __s32 qs_btimelimit; .....[ 206]: __s32 qs_itimelimit; .....[ 207]: __s32 qs_rtbtimelimit; .....[ 208]: __u16 qs_bwarnlimit; .....[ 209]: __u16 qs_iwarnlimit; .....[ 210]: __u64 qs_pad2[8]; .....[ 211]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/dqblk_xfs.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_v2.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_v2.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_qtree.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_qtree.h ......[ 17]: struct dquot; ......[ 20]: struct qtree_fmt_operations { ......[ 21]: void (*mem2disk_dqblk)(void *disk, struct dquot *dquot); ......[ 22]: void (*disk2mem_dqblk)(struct dquot *dquot, void *disk); ......[ 23]: int (*is_id)(void *disk, struct dquot *dquot); ......[ 24]: }; ......[ 27]: struct qtree_mem_dqinfo { ......[ 28]: struct super_block *dqi_sb; ......[ 29]: int dqi_type; ......[ 30]: unsigned int dqi_blocks; ......[ 31]: unsigned int dqi_free_blk; ......[ 32]: unsigned int dqi_free_entry; ......[ 33]: unsigned int dqi_blocksize_bits; ......[ 34]: unsigned int dqi_entry_size; ......[ 35]: unsigned int dqi_usable_bs; ......[ 36]: unsigned int dqi_qtree_depth; ......[ 37]: struct qtree_fmt_operations *dqi_ops; ......[ 38]: }; ......[ 40]: int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); ......[ 41]: int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); ......[ 42]: int qtree_delete_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); ......[ 43]: int qtree_release_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); ......[ 44]: int qtree_entry_unused(struct qtree_mem_dqinfo *info, char *disk); ......[ 45]: static inline __attribute__((no_instrument_function)) int qtree_depth(struct qtree_mem_dqinfo *info) ......[ 46]: { ......[ 47]: unsigned int epb = info->dqi_usable_bs >> 2; ......[ 48]: unsigned long long entries = epb; ......[ 49]: int i; ......[ 51]: for (i = 1; entries < (1ULL << 32); i++) ......[ 52]: entries *= epb; ......[ 53]: return i; ......[ 54]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_qtree.h .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_v2.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/projid.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/projid.h .....[ 16]: struct user_namespace; .....[ 17]: extern struct user_namespace init_user_ns; .....[ 19]: typedef __kernel_uid32_t projid_t; .....[ 36]: typedef projid_t kprojid_t; .....[ 38]: static inline __attribute__((no_instrument_function)) projid_t __kprojid_val(kprojid_t projid) .....[ 39]: { .....[ 40]: return projid; .....[ 41]: } .....[ 50]: static inline __attribute__((no_instrument_function)) bool projid_eq(kprojid_t left, kprojid_t right) .....[ 51]: { .....[ 52]: return __kprojid_val(left) == __kprojid_val(right); .....[ 53]: } .....[ 55]: static inline __attribute__((no_instrument_function)) bool projid_lt(kprojid_t left, kprojid_t right) .....[ 56]: { .....[ 57]: return __kprojid_val(left) < __kprojid_val(right); .....[ 58]: } .....[ 60]: static inline __attribute__((no_instrument_function)) bool projid_valid(kprojid_t projid) .....[ 61]: { .....[ 62]: return !projid_eq(projid, ((kprojid_t) -1 )); .....[ 63]: } .....[ 79]: static inline __attribute__((no_instrument_function)) kprojid_t make_kprojid(struct user_namespace *from, projid_t \ ..... projid) .....[ 80]: { .....[ 81]: return ((kprojid_t) projid ); .....[ 82]: } .....[ 84]: static inline __attribute__((no_instrument_function)) projid_t from_kprojid(struct user_namespace *to, kprojid_t \ ..... kprojid) .....[ 85]: { .....[ 86]: return __kprojid_val(kprojid); .....[ 87]: } .....[ 89]: static inline __attribute__((no_instrument_function)) projid_t from_kprojid_munged(struct user_namespace *\ ..... to, kprojid_t kprojid) .....[ 90]: { .....[ 91]: projid_t projid = from_kprojid(to, kprojid); .....[ 92]: if (projid == (projid_t)-1) .....[ 93]: projid = 65534; .....[ 94]: return projid; .....[ 95]: } .....[ 97]: static inline __attribute__((no_instrument_function)) bool kprojid_has_mapping(struct user_namespace *ns, kprojid_t \ ..... projid) .....[ 98]: { .....[ 99]: return true; .....[ 100]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/projid.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/quota.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/quota.h .....[ 88]: enum { .....[ 89]: QIF_BLIMITS_B = 0, .....[ 90]: QIF_SPACE_B, .....[ 91]: QIF_ILIMITS_B, .....[ 92]: QIF_INODES_B, .....[ 93]: QIF_BTIME_B, .....[ 94]: QIF_ITIME_B, .....[ 95]: }; .....[ 108]: struct if_dqblk { .....[ 109]: __u64 dqb_bhardlimit; .....[ 110]: __u64 dqb_bsoftlimit; .....[ 111]: __u64 dqb_curspace; .....[ 112]: __u64 dqb_ihardlimit; .....[ 113]: __u64 dqb_isoftlimit; .....[ 114]: __u64 dqb_curinodes; .....[ 115]: __u64 dqb_btime; .....[ 116]: __u64 dqb_itime; .....[ 117]: __u32 dqb_valid; .....[ 118]: }; .....[ 129]: struct if_dqinfo { .....[ 130]: __u64 dqi_bgrace; .....[ 131]: __u64 dqi_igrace; .....[ 132]: __u32 dqi_flags; .....[ 133]: __u32 dqi_valid; .....[ 134]: }; .....[ 151]: enum { .....[ 152]: QUOTA_NL_C_UNSPEC, .....[ 153]: QUOTA_NL_C_WARNING, .....[ 154]: __QUOTA_NL_C_MAX, .....[ 155]: }; .....[ 158]: enum { .....[ 159]: QUOTA_NL_A_UNSPEC, .....[ 160]: QUOTA_NL_A_QTYPE, .....[ 161]: QUOTA_NL_A_EXCESS_ID, .....[ 162]: QUOTA_NL_A_WARNING, .....[ 163]: QUOTA_NL_A_DEV_MAJOR, .....[ 164]: QUOTA_NL_A_DEV_MINOR, .....[ 165]: QUOTA_NL_A_CAUSED_ID, .....[ 166]: __QUOTA_NL_A_MAX, .....[ 167]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/quota.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ....[ 53]: enum quota_type { ....[ 54]: USRQUOTA = 0, ....[ 55]: GRPQUOTA = 1, ....[ 56]: PRJQUOTA = 2, ....[ 57]: }; ....[ 59]: typedef __kernel_uid32_t qid_t; ....[ 60]: typedef long long qsize_t; ....[ 62]: struct kqid { ....[ 63]: union { ....[ 64]: kuid_t uid; ....[ 65]: kgid_t gid; ....[ 66]: kprojid_t projid; ....[ 67]: }; ....[ 68]: enum quota_type type; ....[ 69]: }; ....[ 71]: extern bool qid_eq(struct kqid left, struct kqid right); ....[ 72]: extern bool qid_lt(struct kqid left, struct kqid right); ....[ 73]: extern qid_t from_kqid(struct user_namespace *to, struct kqid qid); ....[ 74]: extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid); ....[ 75]: extern bool qid_valid(struct kqid qid); ....[ 91]: static inline __attribute__((no_instrument_function)) struct kqid make_kqid(struct user_namespace *from, ....[ 92]: enum quota_type type, qid_t qid) ....[ 93]: { ....[ 94]: struct kqid kqid; ....[ 96]: kqid.type = type; ....[ 97]: switch (type) { ....[ 98]: case USRQUOTA: ....[ 99]: kqid.uid = make_kuid(from, qid); ....[ 100]: break; ....[ 101]: case GRPQUOTA: ....[ 102]: kqid.gid = make_kgid(from, qid); ....[ 103]: break; ....[ 104]: case PRJQUOTA: ....[ 105]: kqid.projid = make_kprojid(from, qid); ....[ 106]: break; ....[ 107]: default: ....[ 108]: do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" \ .... "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry))); do { } while (\ .... 1); } while (0); ....[ 109]: } ....[ 110]: return kqid; ....[ 111]: } ....[ 119]: static inline __attribute__((no_instrument_function)) struct kqid make_kqid_invalid(enum quota_type type) ....[ 120]: { ....[ 121]: struct kqid kqid; ....[ 123]: kqid.type = type; ....[ 124]: switch (type) { ....[ 125]: case USRQUOTA: ....[ 126]: kqid.uid = ((kuid_t) -1 ); ....[ 127]: break; ....[ 128]: case GRPQUOTA: ....[ 129]: kqid.gid = ((kgid_t) -1 ); ....[ 130]: break; ....[ 131]: case PRJQUOTA: ....[ 132]: kqid.projid = ((kprojid_t) -1 ); ....[ 133]: break; ....[ 134]: default: ....[ 135]: do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" \ .... "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry))); do { } while (\ .... 1); } while (0); ....[ 136]: } ....[ 137]: return kqid; ....[ 138]: } ....[ 144]: static inline __attribute__((no_instrument_function)) struct kqid make_kqid_uid(kuid_t uid) ....[ 145]: { ....[ 146]: struct kqid kqid; ....[ 147]: kqid.type = USRQUOTA; ....[ 148]: kqid.uid = uid; ....[ 149]: return kqid; ....[ 150]: } ....[ 156]: static inline __attribute__((no_instrument_function)) struct kqid make_kqid_gid(kgid_t gid) ....[ 157]: { ....[ 158]: struct kqid kqid; ....[ 159]: kqid.type = GRPQUOTA; ....[ 160]: kqid.gid = gid; ....[ 161]: return kqid; ....[ 162]: } ....[ 168]: static inline __attribute__((no_instrument_function)) struct kqid make_kqid_projid(kprojid_t projid) ....[ 169]: { ....[ 170]: struct kqid kqid; ....[ 171]: kqid.type = PRJQUOTA; ....[ 172]: kqid.projid = projid; ....[ 173]: return kqid; ....[ 174]: } ....[ 177]: extern spinlock_t dq_data_lock; ....[ 189]: struct mem_dqblk { ....[ 190]: qsize_t dqb_bhardlimit; ....[ 191]: qsize_t dqb_bsoftlimit; ....[ 192]: qsize_t dqb_curspace; ....[ 193]: qsize_t dqb_rsvspace; ....[ 194]: qsize_t dqb_ihardlimit; ....[ 195]: qsize_t dqb_isoftlimit; ....[ 196]: qsize_t dqb_curinodes; ....[ 197]: time_t dqb_btime; ....[ 198]: time_t dqb_itime; ....[ 199]: }; ....[ 204]: struct quota_format_type; ....[ 206]: struct mem_dqinfo { ....[ 207]: struct quota_format_type *dqi_format; ....[ 208]: int dqi_fmt_id; ....[ 210]: struct list_head dqi_dirty_list; ....[ 211]: unsigned long dqi_flags; ....[ 212]: unsigned int dqi_bgrace; ....[ 213]: unsigned int dqi_igrace; ....[ 214]: qsize_t dqi_maxblimit; ....[ 215]: qsize_t dqi_maxilimit; ....[ 216]: void *dqi_priv; ....[ 217]: }; ....[ 219]: struct super_block; ....[ 229]: extern void mark_info_dirty(struct super_block *sb, int type); ....[ 230]: static inline __attribute__((no_instrument_function)) int info_dirty(struct mem_dqinfo *info) ....[ 231]: { ....[ 232]: return (__builtin_constant_p((31)) ? constant_test_bit((31), (&info->dqi_flags)) : variable_test_bit((31), \ .... (&info->dqi_flags))); ....[ 233]: } ....[ 235]: enum { ....[ 236]: DQST_LOOKUPS, ....[ 237]: DQST_DROPS, ....[ 238]: DQST_READS, ....[ 239]: DQST_WRITES, ....[ 240]: DQST_CACHE_HITS, ....[ 241]: DQST_ALLOC_DQUOTS, ....[ 242]: DQST_FREE_DQUOTS, ....[ 243]: DQST_SYNCS, ....[ 244]: _DQST_DQSTAT_LAST ....[ 245]: }; ....[ 247]: struct dqstats { ....[ 248]: int stat[_DQST_DQSTAT_LAST]; ....[ 249]: struct percpu_counter counter[_DQST_DQSTAT_LAST]; ....[ 250]: }; ....[ 252]: extern struct dqstats *dqstats_pcpu; ....[ 253]: extern struct dqstats dqstats; ....[ 255]: static inline __attribute__((no_instrument_function)) void dqstats_inc(unsigned int type) ....[ 256]: { ....[ 257]: percpu_counter_inc(&dqstats.counter[type]); ....[ 258]: } ....[ 260]: static inline __attribute__((no_instrument_function)) void dqstats_dec(unsigned int type) ....[ 261]: { ....[ 262]: percpu_counter_dec(&dqstats.counter[type]); ....[ 263]: } ....[ 277]: struct dquot { ....[ 278]: struct hlist_node dq_hash; ....[ 279]: struct list_head dq_inuse; ....[ 280]: struct list_head dq_free; ....[ 281]: struct list_head dq_dirty; ....[ 282]: struct mutex dq_lock; ....[ 283]: atomic_t dq_count; ....[ 284]: wait_queue_head_t dq_wait_unused; ....[ 285]: struct super_block *dq_sb; ....[ 286]: struct kqid dq_id; ....[ 287]: loff_t dq_off; ....[ 288]: unsigned long dq_flags; ....[ 289]: struct mem_dqblk dq_dqb; ....[ 290]: }; ....[ 293]: struct quota_format_ops { ....[ 294]: int (*check_quota_file)(struct super_block *sb, int type); ....[ 295]: int (*read_file_info)(struct super_block *sb, int type); ....[ 296]: int (*write_file_info)(struct super_block *sb, int type); ....[ 297]: int (*free_file_info)(struct super_block *sb, int type); ....[ 298]: int (*read_dqblk)(struct dquot *dquot); ....[ 299]: int (*commit_dqblk)(struct dquot *dquot); ....[ 300]: int (*release_dqblk)(struct dquot *dquot); ....[ 301]: }; ....[ 304]: struct dquot_operations { ....[ 305]: int (*write_dquot) (struct dquot *); ....[ 306]: struct dquot *(*alloc_dquot)(struct super_block *, int); ....[ 307]: void (*destroy_dquot)(struct dquot *); ....[ 308]: int (*acquire_dquot) (struct dquot *); ....[ 309]: int (*release_dquot) (struct dquot *); ....[ 310]: int (*mark_dirty) (struct dquot *); ....[ 311]: int (*write_info) (struct super_block *, int); ....[ 314]: qsize_t *(*get_reserved_space) (struct inode *); ....[ 315]: }; ....[ 317]: struct path; ....[ 320]: struct quotactl_ops { ....[ 321]: int (*quota_on)(struct super_block *, int, int, struct path *); ....[ 322]: int (*quota_on_meta)(struct super_block *, int, int); ....[ 323]: int (*quota_off)(struct super_block *, int); ....[ 324]: int (*quota_sync)(struct super_block *, int); ....[ 325]: int (*get_info)(struct super_block *, int, struct if_dqinfo *); ....[ 326]: int (*set_info)(struct super_block *, int, struct if_dqinfo *); ....[ 327]: int (*get_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); ....[ 328]: int (*set_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); ....[ 329]: int (*get_xstate)(struct super_block *, struct fs_quota_stat *); ....[ 330]: int (*set_xstate)(struct super_block *, unsigned int, int); ....[ 331]: int (*get_xstatev)(struct super_block *, struct fs_quota_statv *); ....[ 332]: }; ....[ 334]: struct quota_format_type { ....[ 335]: int qf_fmt_id; ....[ 336]: const struct quota_format_ops *qf_ops; ....[ 337]: struct module *qf_owner; ....[ 338]: struct quota_format_type *qf_next; ....[ 339]: }; ....[ 342]: enum { ....[ 343]: _DQUOT_USAGE_ENABLED = 0, ....[ 344]: _DQUOT_LIMITS_ENABLED, ....[ 345]: _DQUOT_SUSPENDED, ....[ 348]: _DQUOT_STATE_FLAGS ....[ 349]: }; ....[ 367]: static inline __attribute__((no_instrument_function)) unsigned int dquot_state_flag(unsigned int flags, int type\ .... ) ....[ 368]: { ....[ 369]: return flags << _DQUOT_STATE_FLAGS * type; ....[ 370]: } ....[ 372]: static inline __attribute__((no_instrument_function)) unsigned int dquot_generic_flag(unsigned int flags, int \ .... type) ....[ 373]: { ....[ 374]: return (flags >> _DQUOT_STATE_FLAGS * type) & ((1 << _DQUOT_USAGE_ENABLED) | (1 << _DQUOT_LIMITS_ENABLED) | (1 << _DQUOT_SUSPENDED\ .... )); ....[ 375]: } ....[ 378]: extern void quota_send_warning(struct kqid qid, dev_t dev, ....[ 379]: const char warntype); ....[ 388]: struct quota_info { ....[ 389]: unsigned int flags; ....[ 390]: struct mutex dqio_mutex; ....[ 391]: struct mutex dqonoff_mutex; ....[ 392]: struct rw_semaphore dqptr_sem; ....[ 393]: struct inode *files[2]; ....[ 394]: struct mem_dqinfo info[2]; ....[ 395]: const struct quota_format_ops *ops[2]; ....[ 396]: }; ....[ 398]: int register_quota_format(struct quota_format_type *fmt); ....[ 399]: void unregister_quota_format(struct quota_format_type *fmt); ....[ 401]: struct quota_module_name { ....[ 402]: int qm_fmt_id; ....[ 403]: char *qm_mod_name; ....[ 404]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/quota.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...[ 275]: enum positive_aop_returns { ...[ 276]: AOP_WRITEPAGE_ACTIVATE = 0x80000, ...[ 277]: AOP_TRUNCATED_PAGE = 0x80001, ...[ 278]: }; ...[ 289]: struct page; ...[ 290]: struct address_space; ...[ 291]: struct writeback_control; ...[ 293]: struct iov_iter { ...[ 294]: const struct iovec *iov; ...[ 295]: unsigned long nr_segs; ...[ 296]: size_t iov_offset; ...[ 297]: size_t count; ...[ 298]: }; ...[ 300]: size_t iov_iter_copy_from_user_atomic(struct page *page, ...[ 301]: struct iov_iter *i, unsigned long offset, size_t bytes); ...[ 302]: size_t iov_iter_copy_from_user(struct page *page, ...[ 303]: struct iov_iter *i, unsigned long offset, size_t bytes); ...[ 304]: void iov_iter_advance(struct iov_iter *i, size_t bytes); ...[ 305]: int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes); ...[ 306]: size_t iov_iter_single_seg_count(const struct iov_iter *i); ...[ 308]: static inline __attribute__((no_instrument_function)) void iov_iter_init(struct iov_iter *i, ...[ 309]: const struct iovec *iov, unsigned long nr_segs, ...[ 310]: size_t count, size_t written) ...[ 311]: { ...[ 312]: i->iov = iov; ...[ 313]: i->nr_segs = nr_segs; ...[ 314]: i->iov_offset = 0; ...[ 315]: i->count = count + written; ...[ 317]: iov_iter_advance(i, written); ...[ 318]: } ...[ 320]: static inline __attribute__((no_instrument_function)) size_t iov_iter_count(struct iov_iter *i) ...[ 321]: { ...[ 322]: return i->count; ...[ 323]: } ...[ 334]: typedef struct { ...[ 335]: size_t written; ...[ 336]: size_t count; ...[ 337]: union { ...[ 338]: char *buf; ...[ 339]: void *data; ...[ 340]: } arg; ...[ 341]: int error; ...[ 342]: } read_descriptor_t; ...[ 344]: typedef int (*read_actor_t)(read_descriptor_t *, struct page *, ...[ 345]: unsigned long, unsigned long); ...[ 347]: struct address_space_operations { ...[ 348]: int (*writepage)(struct page *page, struct writeback_control *wbc); ...[ 349]: int (*readpage)(struct file *, struct page *); ...[ 352]: int (*writepages)(struct address_space *, struct writeback_control *); ...[ 355]: int (*set_page_dirty)(struct page *page); ...[ 357]: int (*readpages)(struct file *filp, struct address_space *mapping, ...[ 358]: struct list_head *pages, unsigned nr_pages); ...[ 360]: int (*write_begin)(struct file *, struct address_space *mapping, ...[ 361]: loff_t pos, unsigned len, unsigned flags, ...[ 362]: struct page **pagep, void **fsdata); ...[ 363]: int (*write_end)(struct file *, struct address_space *mapping, ...[ 364]: loff_t pos, unsigned len, unsigned copied, ...[ 365]: struct page *page, void *fsdata); ...[ 368]: sector_t (*bmap)(struct address_space *, sector_t); ...[ 369]: void (*invalidatepage) (struct page *, unsigned int, unsigned int); ...[ 370]: int (*releasepage) (struct page *, gfp_t); ...[ 371]: void (*freepage)(struct page *); ...[ 372]: ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, ...[ 373]: loff_t offset, unsigned long nr_segs); ...[ 374]: int (*get_xip_mem)(struct address_space *, unsigned long, int, ...[ 375]: void **, unsigned long *); ...[ 380]: int (*migratepage) (struct address_space *, ...[ 381]: struct page *, struct page *, enum migrate_mode); ...[ 382]: int (*launder_page) (struct page *); ...[ 383]: int (*is_partially_uptodate) (struct page *, read_descriptor_t *, ...[ 384]: unsigned long); ...[ 385]: void (*is_dirty_writeback) (struct page *, bool *, bool *); ...[ 386]: int (*error_remove_page)(struct address_space *, struct page *); ...[ 389]: int (*swap_activate)(struct swap_info_struct *sis, struct file *file, ...[ 390]: sector_t *span); ...[ 391]: void (*swap_deactivate)(struct file *file); ...[ 392]: }; ...[ 394]: extern const struct address_space_operations empty_aops; ...[ 400]: int pagecache_write_begin(struct file *, struct address_space *mapping, ...[ 401]: loff_t pos, unsigned len, unsigned flags, ...[ 402]: struct page **pagep, void **fsdata); ...[ 404]: int pagecache_write_end(struct file *, struct address_space *mapping, ...[ 405]: loff_t pos, unsigned len, unsigned copied, ...[ 406]: struct page *page, void *fsdata); ...[ 408]: struct backing_dev_info; ...[ 409]: struct address_space { ...[ 410]: struct inode *host; ...[ 411]: struct radix_tree_root page_tree; ...[ 412]: spinlock_t tree_lock; ...[ 413]: unsigned int i_mmap_writable; ...[ 414]: struct rb_root i_mmap; ...[ 415]: struct list_head i_mmap_nonlinear; ...[ 416]: struct mutex i_mmap_mutex; ...[ 418]: unsigned long nrpages; ...[ 419]: unsigned long writeback_index; ...[ 420]: const struct address_space_operations *a_ops; ...[ 421]: unsigned long flags; ...[ 422]: struct backing_dev_info *backing_dev_info; ...[ 423]: spinlock_t private_lock; ...[ 424]: struct list_head private_list; ...[ 425]: void *private_data; ...[ 426]: } __attribute__((aligned(sizeof(long)))); ...[ 432]: struct request_queue; ...[ 434]: struct block_device { ...[ 435]: dev_t bd_dev; ...[ 436]: int bd_openers; ...[ 437]: struct inode * bd_inode; ...[ 438]: struct super_block * bd_super; ...[ 439]: struct mutex bd_mutex; ...[ 440]: struct list_head bd_inodes; ...[ 441]: void * bd_claiming; ...[ 442]: void * bd_holder; ...[ 443]: int bd_holders; ...[ 444]: bool bd_write_holder; ...[ 446]: struct list_head bd_holder_disks; ...[ 448]: struct block_device * bd_contains; ...[ 449]: unsigned bd_block_size; ...[ 450]: struct hd_struct * bd_part; ...[ 452]: unsigned bd_part_count; ...[ 453]: int bd_invalidated; ...[ 454]: struct gendisk * bd_disk; ...[ 455]: struct request_queue * bd_queue; ...[ 456]: struct list_head bd_list; ...[ 463]: unsigned long bd_private; ...[ 466]: int bd_fsfreeze_count; ...[ 468]: struct mutex bd_fsfreeze_mutex; ...[ 469]: }; ...[ 479]: int mapping_tagged(struct address_space *mapping, int tag); ...[ 484]: static inline __attribute__((no_instrument_function)) int mapping_mapped(struct address_space *mapping) ...[ 485]: { ...[ 486]: return !((&mapping->i_mmap)->rb_node == ((void *)0)) || ...[ 487]: !list_empty(&mapping->i_mmap_nonlinear); ...[ 488]: } ...[ 496]: static inline __attribute__((no_instrument_function)) int mapping_writably_mapped(struct address_space *mapping\ ... ) ...[ 497]: { ...[ 498]: return mapping->i_mmap_writable != 0; ...[ 499]: } ...[ 512]: struct posix_acl; ...[ 524]: struct inode { ...[ 525]: umode_t i_mode; ...[ 526]: unsigned short i_opflags; ...[ 527]: kuid_t i_uid; ...[ 528]: kgid_t i_gid; ...[ 529]: unsigned int i_flags; ...[ 532]: struct posix_acl *i_acl; ...[ 533]: struct posix_acl *i_default_acl; ...[ 536]: const struct inode_operations *i_op; ...[ 537]: struct super_block *i_sb; ...[ 538]: struct address_space *i_mapping; ...[ 541]: void *i_security; ...[ 545]: unsigned long i_ino; ...[ 553]: union { ...[ 554]: const unsigned int i_nlink; ...[ 555]: unsigned int __i_nlink; ...[ 556]: }; ...[ 557]: dev_t i_rdev; ...[ 558]: loff_t i_size; ...[ 559]: struct timespec i_atime; ...[ 560]: struct timespec i_mtime; ...[ 561]: struct timespec i_ctime; ...[ 562]: spinlock_t i_lock; ...[ 563]: unsigned short i_bytes; ...[ 564]: unsigned int i_blkbits; ...[ 565]: blkcnt_t i_blocks; ...[ 572]: unsigned long i_state; ...[ 573]: struct mutex i_mutex; ...[ 575]: unsigned long dirtied_when; ...[ 577]: struct hlist_node i_hash; ...[ 578]: struct list_head i_wb_list; ...[ 579]: struct list_head i_lru; ...[ 580]: struct list_head i_sb_list; ...[ 581]: union { ...[ 582]: struct hlist_head i_dentry; ...[ 583]: struct callback_head i_rcu; ...[ 584]: }; ...[ 585]: u64 i_version; ...[ 586]: atomic_t i_count; ...[ 587]: atomic_t i_dio_count; ...[ 588]: atomic_t i_writecount; ...[ 589]: const struct file_operations *i_fop; ...[ 590]: struct file_lock *i_flock; ...[ 591]: struct address_space i_data; ...[ 593]: struct dquot *i_dquot[2]; ...[ 595]: struct list_head i_devices; ...[ 596]: union { ...[ 597]: struct pipe_inode_info *i_pipe; ...[ 598]: struct block_device *i_bdev; ...[ 599]: struct cdev *i_cdev; ...[ 600]: }; ...[ 602]: __u32 i_generation; ...[ 605]: __u32 i_fsnotify_mask; ...[ 606]: struct hlist_head i_fsnotify_marks; ...[ 610]: atomic_t i_readcount; ...[ 612]: void *i_private; ...[ 613]: }; ...[ 615]: static inline __attribute__((no_instrument_function)) int inode_unhashed(struct inode *inode) ...[ 616]: { ...[ 617]: return hlist_unhashed(&inode->i_hash); ...[ 618]: } ...[ 634]: enum inode_i_mutex_lock_class ...[ 635]: { ...[ 636]: I_MUTEX_NORMAL, ...[ 637]: I_MUTEX_PARENT, ...[ 638]: I_MUTEX_CHILD, ...[ 639]: I_MUTEX_XATTR, ...[ 640]: I_MUTEX_NONDIR2 ...[ 641]: }; ...[ 643]: void lock_two_nondirectories(struct inode *, struct inode*); ...[ 644]: void unlock_two_nondirectories(struct inode *, struct inode*); ...[ 656]: static inline __attribute__((no_instrument_function)) loff_t i_size_read(const struct inode *inode) ...[ 657]: { ...[ 675]: return inode->i_size; ...[ 677]: } ...[ 684]: static inline __attribute__((no_instrument_function)) void i_size_write(struct inode *inode, loff_t i_size) ...[ 685]: { ...[ 697]: inode->i_size = i_size; ...[ 699]: } ...[ 706]: static inline __attribute__((no_instrument_function)) uid_t i_uid_read(const struct inode *inode) ...[ 707]: { ...[ 708]: return from_kuid(&init_user_ns, inode->i_uid); ...[ 709]: } ...[ 711]: static inline __attribute__((no_instrument_function)) gid_t i_gid_read(const struct inode *inode) ...[ 712]: { ...[ 713]: return from_kgid(&init_user_ns, inode->i_gid); ...[ 714]: } ...[ 716]: static inline __attribute__((no_instrument_function)) void i_uid_write(struct inode *inode, uid_t uid) ...[ 717]: { ...[ 718]: inode->i_uid = make_kuid(&init_user_ns, uid); ...[ 719]: } ...[ 721]: static inline __attribute__((no_instrument_function)) void i_gid_write(struct inode *inode, gid_t gid) ...[ 722]: { ...[ 723]: inode->i_gid = make_kgid(&init_user_ns, gid); ...[ 724]: } ...[ 726]: static inline __attribute__((no_instrument_function)) unsigned iminor(const struct inode *inode) ...[ 727]: { ...[ 728]: return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1))); ...[ 729]: } ...[ 731]: static inline __attribute__((no_instrument_function)) unsigned imajor(const struct inode *inode) ...[ 732]: { ...[ 733]: return ((unsigned int) ((inode->i_rdev) >> 20)); ...[ 734]: } ...[ 736]: extern struct block_device *I_BDEV(struct inode *inode); ...[ 738]: struct fown_struct { ...[ 739]: rwlock_t lock; ...[ 740]: struct pid *pid; ...[ 741]: enum pid_type pid_type; ...[ 742]: kuid_t uid, euid; ...[ 743]: int signum; ...[ 744]: }; ...[ 749]: struct file_ra_state { ...[ 750]: unsigned long start; ...[ 751]: unsigned int size; ...[ 752]: unsigned int async_size; ...[ 755]: unsigned int ra_pages; ...[ 756]: unsigned int mmap_miss; ...[ 757]: loff_t prev_pos; ...[ 758]: }; ...[ 763]: static inline __attribute__((no_instrument_function)) int ra_has_index(struct file_ra_state *ra, unsigned long \ ... index) ...[ 764]: { ...[ 765]: return (index >= ra->start && ...[ 766]: index < ra->start + ra->size); ...[ 767]: } ...[ 772]: struct file { ...[ 773]: union { ...[ 774]: struct llist_node fu_llist; ...[ 775]: struct callback_head fu_rcuhead; ...[ 776]: } f_u; ...[ 777]: struct path f_path; ...[ 779]: struct inode *f_inode; ...[ 780]: const struct file_operations *f_op; ...[ 786]: spinlock_t f_lock; ...[ 787]: atomic_long_t f_count; ...[ 788]: unsigned int f_flags; ...[ 789]: fmode_t f_mode; ...[ 790]: loff_t f_pos; ...[ 791]: struct fown_struct f_owner; ...[ 792]: const struct cred *f_cred; ...[ 793]: struct file_ra_state f_ra; ...[ 795]: u64 f_version; ...[ 797]: void *f_security; ...[ 800]: void *private_data; ...[ 804]: struct list_head f_ep_links; ...[ 805]: struct list_head f_tfile_llink; ...[ 807]: struct address_space *f_mapping; ...[ 811]: }; ...[ 813]: struct file_handle { ...[ 814]: __u32 handle_bytes; ...[ 815]: int handle_type; ...[ 817]: unsigned char f_handle[0]; ...[ 818]: }; ...[ 820]: static inline __attribute__((no_instrument_function)) struct file *get_file(struct file *f) ...[ 821]: { ...[ 822]: atomic_long_inc(&f->f_count); ...[ 823]: return f; ...[ 824]: } ...[ 861]: static inline __attribute__((no_instrument_function)) void file_take_write(struct file *filp) {} ...[ 862]: static inline __attribute__((no_instrument_function)) void file_release_write(struct file *filp) {} ...[ 863]: static inline __attribute__((no_instrument_function)) void file_reset_write(struct file *filp) {} ...[ 864]: static inline __attribute__((no_instrument_function)) void file_check_state(struct file *filp) {} ...[ 865]: static inline __attribute__((no_instrument_function)) int file_check_writeable(struct file *filp) ...[ 866]: { ...[ 867]: return 0; ...[ 868]: } ...[ 905]: typedef struct files_struct *fl_owner_t; ...[ 907]: struct file_lock_operations { ...[ 908]: void (*fl_copy_lock)(struct file_lock *, struct file_lock *); ...[ 909]: void (*fl_release_private)(struct file_lock *); ...[ 910]: }; ...[ 912]: struct lock_manager_operations { ...[ 913]: int (*lm_compare_owner)(struct file_lock *, struct file_lock *); ...[ 914]: unsigned long (*lm_owner_key)(struct file_lock *); ...[ 915]: void (*lm_notify)(struct file_lock *); ...[ 916]: int (*lm_grant)(struct file_lock *, struct file_lock *, int); ...[ 917]: void (*lm_break)(struct file_lock *); ...[ 918]: int (*lm_change)(struct file_lock **, int); ...[ 919]: }; ...[ 921]: struct lock_manager { ...[ 922]: struct list_head list; ...[ 923]: }; ...[ 925]: struct net; ...[ 926]: void locks_start_grace(struct net *, struct lock_manager *); ...[ 927]: void locks_end_grace(struct lock_manager *); ...[ 928]: int locks_in_grace(struct net *); ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/nfs_fs_i.h ....[ 4]: struct nlm_lockowner; ....[ 9]: struct nfs_lock_info { ....[ 10]: u32 state; ....[ 11]: struct nlm_lockowner *owner; ....[ 12]: struct list_head list; ....[ 13]: }; ....[ 15]: struct nfs4_lock_state; ....[ 16]: struct nfs4_lock_info { ....[ 17]: struct nfs4_lock_state *owner; ....[ 18]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/nfs_fs_i.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...[ 951]: struct file_lock { ...[ 952]: struct file_lock *fl_next; ...[ 953]: struct hlist_node fl_link; ...[ 954]: struct list_head fl_block; ...[ 955]: fl_owner_t fl_owner; ...[ 956]: unsigned int fl_flags; ...[ 957]: unsigned char fl_type; ...[ 958]: unsigned int fl_pid; ...[ 959]: int fl_link_cpu; ...[ 960]: struct pid *fl_nspid; ...[ 961]: wait_queue_head_t fl_wait; ...[ 962]: struct file *fl_file; ...[ 963]: loff_t fl_start; ...[ 964]: loff_t fl_end; ...[ 966]: struct fasync_struct * fl_fasync; ...[ 968]: unsigned long fl_break_time; ...[ 969]: unsigned long fl_downgrade_time; ...[ 971]: const struct file_lock_operations *fl_ops; ...[ 972]: const struct lock_manager_operations *fl_lmops; ...[ 973]: union { ...[ 974]: struct nfs_lock_info nfs_fl; ...[ 975]: struct nfs4_lock_info nfs4_fl; ...[ 976]: struct { ...[ 977]: struct list_head link; ...[ 978]: int state; ...[ 979]: } afs; ...[ 980]: } fl_u; ...[ 981]: }; ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fcntl.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fcntl.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fcntl.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fcntl.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/fcntl.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/fcntl.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/fcntl.h .......[ 139]: struct f_owner_ex { .......[ 140]: int type; .......[ 141]: __kernel_pid_t pid; .......[ 142]: }; .......[ 179]: struct flock { .......[ 180]: short l_type; .......[ 181]: short l_whence; .......[ 182]: __kernel_off_t l_start; .......[ 183]: __kernel_off_t l_len; .......[ 184]: __kernel_pid_t l_pid; .......[ 186]: }; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/fcntl.h ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/fcntl.h .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fcntl.h ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fcntl.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ...[ 992]: extern void send_sigio(struct fown_struct *fown, int fd, int band); ...[ 995]: extern int fcntl_getlk(struct file *, struct flock *); ...[ 996]: extern int fcntl_setlk(unsigned int, struct file *, unsigned int, ...[ 997]: struct flock *); ...[ 1005]: extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg); ...[ 1006]: extern int fcntl_getlease(struct file *filp); ...[ 1009]: void locks_free_lock(struct file_lock *fl); ...[ 1010]: extern void locks_init_lock(struct file_lock *); ...[ 1011]: extern struct file_lock * locks_alloc_lock(void); ...[ 1012]: extern void locks_copy_lock(struct file_lock *, struct file_lock *); ...[ 1013]: extern void __locks_copy_lock(struct file_lock *, const struct file_lock *); ...[ 1014]: extern void locks_remove_posix(struct file *, fl_owner_t); ...[ 1015]: extern void locks_remove_flock(struct file *); ...[ 1016]: extern void locks_release_private(struct file_lock *); ...[ 1017]: extern void posix_test_lock(struct file *, struct file_lock *); ...[ 1018]: extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *); ...[ 1019]: extern int posix_lock_file_wait(struct file *, struct file_lock *); ...[ 1020]: extern int posix_unblock_lock(struct file_lock *); ...[ 1021]: extern int vfs_test_lock(struct file *, struct file_lock *); ...[ 1022]: extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *); ...[ 1023]: extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl); ...[ 1024]: extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl); ...[ 1025]: extern int __break_lease(struct inode *inode, unsigned int flags, unsigned int type); ...[ 1026]: extern void lease_get_mtime(struct inode *, struct timespec *time); ...[ 1027]: extern int generic_setlease(struct file *, long, struct file_lock **); ...[ 1028]: extern int vfs_setlease(struct file *, long, struct file_lock **); ...[ 1029]: extern int lease_modify(struct file_lock **, int); ...[ 1030]: extern int lock_may_read(struct inode *, loff_t start, unsigned long count); ...[ 1031]: extern int lock_may_write(struct inode *, loff_t start, unsigned long count); ...[ 1175]: struct fasync_struct { ...[ 1176]: spinlock_t fa_lock; ...[ 1177]: int magic; ...[ 1178]: int fa_fd; ...[ 1179]: struct fasync_struct *fa_next; ...[ 1180]: struct file *fa_file; ...[ 1181]: struct callback_head fa_rcu; ...[ 1182]: }; ...[ 1187]: extern int fasync_helper(int, struct file *, int, struct fasync_struct **); ...[ 1188]: extern struct fasync_struct *fasync_insert_entry(int, struct file *, struct fasync_struct **, struct fasync_struct \ ... *); ...[ 1189]: extern int fasync_remove_entry(struct file *, struct fasync_struct **); ...[ 1190]: extern struct fasync_struct *fasync_alloc(void); ...[ 1191]: extern void fasync_free(struct fasync_struct *); ...[ 1194]: extern void kill_fasync(struct fasync_struct **, int, int); ...[ 1196]: extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force); ...[ 1197]: extern int f_setown(struct file *filp, unsigned long arg, int force); ...[ 1198]: extern void f_delown(struct file *filp); ...[ 1199]: extern pid_t f_getown(struct file *filp); ...[ 1200]: extern int send_sigurg(struct fown_struct *fown); ...[ 1202]: struct mm_struct; ...[ 1214]: extern struct list_head super_blocks; ...[ 1215]: extern spinlock_t sb_lock; ...[ 1218]: enum { ...[ 1219]: SB_UNFROZEN = 0, ...[ 1220]: SB_FREEZE_WRITE = 1, ...[ 1221]: SB_FREEZE_PAGEFAULT = 2, ...[ 1222]: SB_FREEZE_FS = 3, ...[ 1224]: SB_FREEZE_COMPLETE = 4, ...[ 1225]: }; ...[ 1229]: struct sb_writers { ...[ 1231]: struct percpu_counter counter[(SB_FREEZE_COMPLETE - 1)]; ...[ 1232]: wait_queue_head_t wait; ...[ 1234]: int frozen; ...[ 1235]: wait_queue_head_t wait_unfrozen; ...[ 1240]: }; ...[ 1242]: struct super_block { ...[ 1243]: struct list_head s_list; ...[ 1244]: dev_t s_dev; ...[ 1245]: unsigned char s_blocksize_bits; ...[ 1246]: unsigned long s_blocksize; ...[ 1247]: loff_t s_maxbytes; ...[ 1248]: struct file_system_type *s_type; ...[ 1249]: const struct super_operations *s_op; ...[ 1250]: const struct dquot_operations *dq_op; ...[ 1251]: const struct quotactl_ops *s_qcop; ...[ 1252]: const struct export_operations *s_export_op; ...[ 1253]: unsigned long s_flags; ...[ 1254]: unsigned long s_magic; ...[ 1255]: struct dentry *s_root; ...[ 1256]: struct rw_semaphore s_umount; ...[ 1257]: int s_count; ...[ 1258]: atomic_t s_active; ...[ 1260]: void *s_security; ...[ 1262]: const struct xattr_handler **s_xattr; ...[ 1264]: struct list_head s_inodes; ...[ 1265]: struct hlist_bl_head s_anon; ...[ 1266]: struct list_head s_mounts; ...[ 1267]: struct block_device *s_bdev; ...[ 1268]: struct backing_dev_info *s_bdi; ...[ 1269]: struct mtd_info *s_mtd; ...[ 1270]: struct hlist_node s_instances; ...[ 1271]: struct quota_info s_dquot; ...[ 1273]: struct sb_writers s_writers; ...[ 1275]: char s_id[32]; ...[ 1276]: u8 s_uuid[16]; ...[ 1278]: void *s_fs_info; ...[ 1279]: unsigned int s_max_links; ...[ 1280]: fmode_t s_mode; ...[ 1284]: u32 s_time_gran; ...[ 1290]: struct mutex s_vfs_rename_mutex; ...[ 1296]: char *s_subtype; ...[ 1302]: char *s_options; ...[ 1303]: const struct dentry_operations *s_d_op; ...[ 1308]: int cleancache_poolid; ...[ 1310]: struct shrinker s_shrink; ...[ 1313]: atomic_long_t s_remove_count; ...[ 1316]: int s_readonly_remount; ...[ 1319]: struct workqueue_struct *s_dio_done_wq; ...[ 1325]: struct list_lru s_dentry_lru __attribute__((__aligned__((1 << (6))))); ...[ 1326]: struct list_lru s_inode_lru __attribute__((__aligned__((1 << (6))))); ...[ 1327]: struct callback_head rcu; ...[ 1328]: }; ...[ 1330]: extern struct timespec current_fs_time(struct super_block *sb); ...[ 1336]: void __sb_end_write(struct super_block *sb, int level); ...[ 1337]: int __sb_start_write(struct super_block *sb, int level, bool wait); ...[ 1346]: static inline __attribute__((no_instrument_function)) void sb_end_write(struct super_block *sb) ...[ 1347]: { ...[ 1348]: __sb_end_write(sb, SB_FREEZE_WRITE); ...[ 1349]: } ...[ 1358]: static inline __attribute__((no_instrument_function)) void sb_end_pagefault(struct super_block *sb) ...[ 1359]: { ...[ 1360]: __sb_end_write(sb, SB_FREEZE_PAGEFAULT); ...[ 1361]: } ...[ 1370]: static inline __attribute__((no_instrument_function)) void sb_end_intwrite(struct super_block *sb) ...[ 1371]: { ...[ 1372]: __sb_end_write(sb, SB_FREEZE_FS); ...[ 1373]: } ...[ 1394]: static inline __attribute__((no_instrument_function)) void sb_start_write(struct super_block *sb) ...[ 1395]: { ...[ 1396]: __sb_start_write(sb, SB_FREEZE_WRITE, true); ...[ 1397]: } ...[ 1399]: static inline __attribute__((no_instrument_function)) int sb_start_write_trylock(struct super_block *sb) ...[ 1400]: { ...[ 1401]: return __sb_start_write(sb, SB_FREEZE_WRITE, false); ...[ 1402]: } ...[ 1423]: static inline __attribute__((no_instrument_function)) void sb_start_pagefault(struct super_block *sb) ...[ 1424]: { ...[ 1425]: __sb_start_write(sb, SB_FREEZE_PAGEFAULT, true); ...[ 1426]: } ...[ 1441]: static inline __attribute__((no_instrument_function)) void sb_start_intwrite(struct super_block *sb) ...[ 1442]: { ...[ 1443]: __sb_start_write(sb, SB_FREEZE_FS, true); ...[ 1444]: } ...[ 1447]: extern bool inode_owner_or_capable(const struct inode *inode); ...[ 1452]: extern int vfs_create(struct inode *, struct dentry *, umode_t, bool); ...[ 1453]: extern int vfs_mkdir(struct inode *, struct dentry *, umode_t); ...[ 1454]: extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t); ...[ 1455]: extern int vfs_symlink(struct inode *, struct dentry *, const char *); ...[ 1456]: extern int vfs_link(struct dentry *, struct inode *, struct dentry *, struct inode **); ...[ 1457]: extern int vfs_rmdir(struct inode *, struct dentry *); ...[ 1458]: extern int vfs_unlink(struct inode *, struct dentry *, struct inode **); ...[ 1459]: extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *, struct inode **); ...[ 1464]: extern void dentry_unhash(struct dentry *dentry); ...[ 1469]: extern void inode_init_owner(struct inode *inode, const struct inode *dir, ...[ 1470]: umode_t mode); ...[ 1474]: struct fiemap_extent_info { ...[ 1475]: unsigned int fi_flags; ...[ 1476]: unsigned int fi_extents_mapped; ...[ 1477]: unsigned int fi_extents_max; ...[ 1478]: struct fiemap_extent *fi_extents_start; ...[ 1480]: }; ...[ 1481]: int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical, ...[ 1482]: u64 phys, u64 len, u32 flags); ...[ 1483]: int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags); ...[ 1507]: typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned); ...[ 1508]: struct dir_context { ...[ 1509]: const filldir_t actor; ...[ 1510]: loff_t pos; ...[ 1511]: }; ...[ 1513]: struct block_device_operations; ...[ 1521]: struct file_operations { ...[ 1522]: struct module *owner; ...[ 1523]: loff_t (*llseek) (struct file *, loff_t, int); ...[ 1524]: ssize_t (*read) (struct file *, char *, size_t, loff_t *); ...[ 1525]: ssize_t (*write) (struct file *, const char *, size_t, loff_t *); ...[ 1526]: ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); ...[ 1527]: ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); ...[ 1528]: int (*iterate) (struct file *, struct dir_context *); ...[ 1529]: unsigned int (*poll) (struct file *, struct poll_table_struct *); ...[ 1530]: long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); ...[ 1531]: long (*compat_ioctl) (struct file *, unsigned int, unsigned long); ...[ 1532]: int (*mmap) (struct file *, struct vm_area_struct *); ...[ 1533]: int (*open) (struct inode *, struct file *); ...[ 1534]: int (*flush) (struct file *, fl_owner_t id); ...[ 1535]: int (*release) (struct inode *, struct file *); ...[ 1536]: int (*fsync) (struct file *, loff_t, loff_t, int datasync); ...[ 1537]: int (*aio_fsync) (struct kiocb *, int datasync); ...[ 1538]: int (*fasync) (int, struct file *, int); ...[ 1539]: int (*lock) (struct file *, int, struct file_lock *); ...[ 1540]: ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); ...[ 1541]: unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); ...[ 1542]: int (*check_flags)(int); ...[ 1543]: int (*flock) (struct file *, int, struct file_lock *); ...[ 1544]: ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ...[ 1545]: ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); ...[ 1546]: int (*setlease)(struct file *, long, struct file_lock **); ...[ 1547]: long (*fallocate)(struct file *file, int mode, loff_t offset, ...[ 1548]: loff_t len); ...[ 1549]: int (*show_fdinfo)(struct seq_file *m, struct file *f); ...[ 1550]: }; ...[ 1552]: struct inode_operations { ...[ 1553]: struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); ...[ 1554]: void * (*follow_link) (struct dentry *, struct nameidata *); ...[ 1555]: int (*permission) (struct inode *, int); ...[ 1556]: struct posix_acl * (*get_acl)(struct inode *, int); ...[ 1558]: int (*readlink) (struct dentry *, char *,int); ...[ 1559]: void (*put_link) (struct dentry *, struct nameidata *, void *); ...[ 1561]: int (*create) (struct inode *,struct dentry *, umode_t, bool); ...[ 1562]: int (*link) (struct dentry *,struct inode *,struct dentry *); ...[ 1563]: int (*unlink) (struct inode *,struct dentry *); ...[ 1564]: int (*symlink) (struct inode *,struct dentry *,const char *); ...[ 1565]: int (*mkdir) (struct inode *,struct dentry *,umode_t); ...[ 1566]: int (*rmdir) (struct inode *,struct dentry *); ...[ 1567]: int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t); ...[ 1568]: int (*rename) (struct inode *, struct dentry *, ...[ 1569]: struct inode *, struct dentry *); ...[ 1570]: int (*setattr) (struct dentry *, struct iattr *); ...[ 1571]: int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); ...[ 1572]: int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); ...[ 1573]: ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); ...[ 1574]: ssize_t (*listxattr) (struct dentry *, char *, size_t); ...[ 1575]: int (*removexattr) (struct dentry *, const char *); ...[ 1576]: int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, ...[ 1577]: u64 len); ...[ 1578]: int (*update_time)(struct inode *, struct timespec *, int); ...[ 1579]: int (*atomic_open)(struct inode *, struct dentry *, ...[ 1580]: struct file *, unsigned open_flag, ...[ 1581]: umode_t create_mode, int *opened); ...[ 1582]: int (*tmpfile) (struct inode *, struct dentry *, umode_t); ...[ 1583]: } __attribute__((__aligned__((1 << (6))))); ...[ 1585]: ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector, ...[ 1586]: unsigned long nr_segs, unsigned long fast_segs, ...[ 1587]: struct iovec *fast_pointer, ...[ 1588]: struct iovec **ret_pointer); ...[ 1590]: extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *); ...[ 1591]: extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *); ...[ 1592]: extern ssize_t vfs_readv(struct file *, const struct iovec *, ...[ 1593]: unsigned long, loff_t *); ...[ 1594]: extern ssize_t vfs_writev(struct file *, const struct iovec *, ...[ 1595]: unsigned long, loff_t *); ...[ 1597]: struct super_operations { ...[ 1598]: struct inode *(*alloc_inode)(struct super_block *sb); ...[ 1599]: void (*destroy_inode)(struct inode *); ...[ 1601]: void (*dirty_inode) (struct inode *, int flags); ...[ 1602]: int (*write_inode) (struct inode *, struct writeback_control *wbc); ...[ 1603]: int (*drop_inode) (struct inode *); ...[ 1604]: void (*evict_inode) (struct inode *); ...[ 1605]: void (*put_super) (struct super_block *); ...[ 1606]: int (*sync_fs)(struct super_block *sb, int wait); ...[ 1607]: int (*freeze_fs) (struct super_block *); ...[ 1608]: int (*unfreeze_fs) (struct super_block *); ...[ 1609]: int (*statfs) (struct dentry *, struct kstatfs *); ...[ 1610]: int (*remount_fs) (struct super_block *, int *, char *); ...[ 1611]: void (*umount_begin) (struct super_block *); ...[ 1613]: int (*show_options)(struct seq_file *, struct dentry *); ...[ 1614]: int (*show_devname)(struct seq_file *, struct dentry *); ...[ 1615]: int (*show_path)(struct seq_file *, struct dentry *); ...[ 1616]: int (*show_stats)(struct seq_file *, struct dentry *); ...[ 1618]: ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ...[ 1619]: ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); ...[ 1621]: int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t); ...[ 1622]: long (*nr_cached_objects)(struct super_block *, int); ...[ 1623]: long (*free_cached_objects)(struct super_block *, long, int); ...[ 1624]: }; ...[ 1750]: extern void __mark_inode_dirty(struct inode *, int); ...[ 1751]: static inline __attribute__((no_instrument_function)) void mark_inode_dirty(struct inode *inode) ...[ 1752]: { ...[ 1753]: __mark_inode_dirty(inode, ((1 << 0) | (1 << 1) | (1 << 2))); ...[ 1754]: } ...[ 1756]: static inline __attribute__((no_instrument_function)) void mark_inode_dirty_sync(struct inode *inode) ...[ 1757]: { ...[ 1758]: __mark_inode_dirty(inode, (1 << 0)); ...[ 1759]: } ...[ 1761]: extern void inc_nlink(struct inode *inode); ...[ 1762]: extern void drop_nlink(struct inode *inode); ...[ 1763]: extern void clear_nlink(struct inode *inode); ...[ 1764]: extern void set_nlink(struct inode *inode, unsigned int nlink); ...[ 1766]: static inline __attribute__((no_instrument_function)) void inode_inc_link_count(struct inode *inode) ...[ 1767]: { ...[ 1768]: inc_nlink(inode); ...[ 1769]: mark_inode_dirty(inode); ...[ 1770]: } ...[ 1772]: static inline __attribute__((no_instrument_function)) void inode_dec_link_count(struct inode *inode) ...[ 1773]: { ...[ 1774]: drop_nlink(inode); ...[ 1775]: mark_inode_dirty(inode); ...[ 1776]: } ...[ 1786]: static inline __attribute__((no_instrument_function)) void inode_inc_iversion(struct inode *inode) ...[ 1787]: { ...[ 1788]: spin_lock(&inode->i_lock); ...[ 1789]: inode->i_version++; ...[ 1790]: spin_unlock(&inode->i_lock); ...[ 1791]: } ...[ 1793]: enum file_time_flags { ...[ 1794]: S_ATIME = 1, ...[ 1795]: S_MTIME = 2, ...[ 1796]: S_CTIME = 4, ...[ 1797]: S_VERSION = 8, ...[ 1798]: }; ...[ 1800]: extern void touch_atime(const struct path *); ...[ 1801]: static inline __attribute__((no_instrument_function)) void file_accessed(struct file *file) ...[ 1802]: { ...[ 1803]: if (!(file->f_flags & 01000000)) ...[ 1804]: touch_atime(&file->f_path); ...[ 1805]: } ...[ 1807]: int sync_inode(struct inode *inode, struct writeback_control *wbc); ...[ 1808]: int sync_inode_metadata(struct inode *inode, int wait); ...[ 1810]: struct file_system_type { ...[ 1811]: const char *name; ...[ 1812]: int fs_flags; ...[ 1819]: struct dentry *(*mount) (struct file_system_type *, int, ...[ 1820]: const char *, void *); ...[ 1821]: void (*kill_sb) (struct super_block *); ...[ 1822]: struct module *owner; ...[ 1823]: struct file_system_type * next; ...[ 1824]: struct hlist_head fs_supers; ...[ 1826]: struct lock_class_key s_lock_key; ...[ 1827]: struct lock_class_key s_umount_key; ...[ 1828]: struct lock_class_key s_vfs_rename_key; ...[ 1829]: struct lock_class_key s_writers_key[(SB_FREEZE_COMPLETE - 1)]; ...[ 1831]: struct lock_class_key i_lock_key; ...[ 1832]: struct lock_class_key i_mutex_key; ...[ 1833]: struct lock_class_key i_mutex_dir_key; ...[ 1834]: }; ...[ 1838]: extern struct dentry *mount_ns(struct file_system_type *fs_type, int flags, ...[ 1839]: void *data, int (*fill_super)(struct super_block *, void *, int)); ...[ 1840]: extern struct dentry *mount_bdev(struct file_system_type *fs_type, ...[ 1841]: int flags, const char *dev_name, void *data, ...[ 1842]: int (*fill_super)(struct super_block *, void *, int)); ...[ 1843]: extern struct dentry *mount_single(struct file_system_type *fs_type, ...[ 1844]: int flags, void *data, ...[ 1845]: int (*fill_super)(struct super_block *, void *, int)); ...[ 1846]: extern struct dentry *mount_nodev(struct file_system_type *fs_type, ...[ 1847]: int flags, void *data, ...[ 1848]: int (*fill_super)(struct super_block *, void *, int)); ...[ 1849]: extern struct dentry *mount_subtree(struct vfsmount *mnt, const char *path); ...[ 1850]: void generic_shutdown_super(struct super_block *sb); ...[ 1851]: void kill_block_super(struct super_block *sb); ...[ 1852]: void kill_anon_super(struct super_block *sb); ...[ 1853]: void kill_litter_super(struct super_block *sb); ...[ 1854]: void deactivate_super(struct super_block *sb); ...[ 1855]: void deactivate_locked_super(struct super_block *sb); ...[ 1856]: int set_anon_super(struct super_block *s, void *data); ...[ 1857]: int get_anon_bdev(dev_t *); ...[ 1858]: void free_anon_bdev(dev_t); ...[ 1859]: struct super_block *sget(struct file_system_type *type, ...[ 1860]: int (*test)(struct super_block *,void *), ...[ 1861]: int (*set)(struct super_block *,void *), ...[ 1862]: int flags, void *data); ...[ 1863]: extern struct dentry *mount_pseudo(struct file_system_type *, char *, ...[ 1864]: const struct super_operations *ops, ...[ 1865]: const struct dentry_operations *dops, ...[ 1866]: unsigned long); ...[ 1885]: extern int register_filesystem(struct file_system_type *); ...[ 1886]: extern int unregister_filesystem(struct file_system_type *); ...[ 1887]: extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data); ...[ 1889]: extern void kern_unmount(struct vfsmount *mnt); ...[ 1890]: extern int may_umount_tree(struct vfsmount *); ...[ 1891]: extern int may_umount(struct vfsmount *); ...[ 1892]: extern long do_mount(const char *, const char *, const char *, unsigned long, void *); ...[ 1893]: extern struct vfsmount *collect_mounts(struct path *); ...[ 1894]: extern void drop_collected_mounts(struct vfsmount *); ...[ 1895]: extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *, ...[ 1896]: struct vfsmount *); ...[ 1897]: extern int vfs_statfs(struct path *, struct kstatfs *); ...[ 1898]: extern int user_statfs(const char *, struct kstatfs *); ...[ 1899]: extern int fd_statfs(int, struct kstatfs *); ...[ 1900]: extern int vfs_ustat(dev_t, struct kstatfs *); ...[ 1901]: extern int freeze_super(struct super_block *super); ...[ 1902]: extern int thaw_super(struct super_block *super); ...[ 1903]: extern bool our_mnt(struct vfsmount *mnt); ...[ 1904]: extern bool fs_fully_visible(struct file_system_type *); ...[ 1906]: extern int current_umask(void); ...[ 1908]: extern void ihold(struct inode * inode); ...[ 1909]: extern void iput(struct inode *); ...[ 1912]: extern struct kobject *fs_kobj; ...[ 1920]: extern int locks_mandatory_locked(struct inode *); ...[ 1921]: extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t); ...[ 1928]: static inline __attribute__((no_instrument_function)) int __mandatory_lock(struct inode *ino) ...[ 1929]: { ...[ 1930]: return (ino->i_mode & (0002000 | 00010)) == 0002000; ...[ 1931]: } ...[ 1938]: static inline __attribute__((no_instrument_function)) int mandatory_lock(struct inode *ino) ...[ 1939]: { ...[ 1940]: return ((ino)->i_sb->s_flags & (64)) && __mandatory_lock(ino); ...[ 1941]: } ...[ 1943]: static inline __attribute__((no_instrument_function)) int locks_verify_locked(struct inode *inode) ...[ 1944]: { ...[ 1945]: if (mandatory_lock(inode)) ...[ 1946]: return locks_mandatory_locked(inode); ...[ 1947]: return 0; ...[ 1948]: } ...[ 1950]: static inline __attribute__((no_instrument_function)) int locks_verify_truncate(struct inode *inode, ...[ 1951]: struct file *filp, ...[ 1952]: loff_t size) ...[ 1953]: { ...[ 1954]: if (inode->i_flock && mandatory_lock(inode)) ...[ 1955]: return locks_mandatory_area( ...[ 1956]: 2, inode, filp, ...[ 1957]: size < inode->i_size ? size : inode->i_size, ...[ 1958]: (size < inode->i_size ? inode->i_size - size ...[ 1959]: : size - inode->i_size) ...[ 1960]: ); ...[ 1961]: return 0; ...[ 1962]: } ...[ 1964]: static inline __attribute__((no_instrument_function)) int break_lease(struct inode *inode, unsigned int mode) ...[ 1965]: { ...[ 1966]: if (inode->i_flock) ...[ 1967]: return __break_lease(inode, mode, 32); ...[ 1968]: return 0; ...[ 1969]: } ...[ 1971]: static inline __attribute__((no_instrument_function)) int break_deleg(struct inode *inode, unsigned int mode) ...[ 1972]: { ...[ 1973]: if (inode->i_flock) ...[ 1974]: return __break_lease(inode, mode, 4); ...[ 1975]: return 0; ...[ 1976]: } ...[ 1978]: static inline __attribute__((no_instrument_function)) int try_break_deleg(struct inode *inode, struct inode *\ ... *delegated_inode) ...[ 1979]: { ...[ 1980]: int ret; ...[ 1982]: ret = break_deleg(inode, 00000001|00004000); ...[ 1983]: if (ret == -11 && delegated_inode) { ...[ 1984]: *delegated_inode = inode; ...[ 1985]: ihold(inode); ...[ 1986]: } ...[ 1987]: return ret; ...[ 1988]: } ...[ 1990]: static inline __attribute__((no_instrument_function)) int break_deleg_wait(struct inode **delegated_inode) ...[ 1991]: { ...[ 1992]: int ret; ...[ 1994]: ret = break_deleg(*delegated_inode, 00000001); ...[ 1995]: iput(*delegated_inode); ...[ 1996]: *delegated_inode = ((void *)0); ...[ 1997]: return ret; ...[ 1998]: } ...[ 2058]: struct audit_names; ...[ 2059]: struct filename { ...[ 2060]: const char *name; ...[ 2061]: const char *uptr; ...[ 2062]: struct audit_names *aname; ...[ 2063]: bool separate; ...[ 2064]: }; ...[ 2066]: extern long vfs_truncate(struct path *, loff_t); ...[ 2067]: extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs, ...[ 2068]: struct file *filp); ...[ 2069]: extern int do_fallocate(struct file *file, int mode, loff_t offset, ...[ 2070]: loff_t len); ...[ 2071]: extern long do_sys_open(int dfd, const char *filename, int flags, ...[ 2072]: umode_t mode); ...[ 2073]: extern struct file *file_open_name(struct filename *, int, umode_t); ...[ 2074]: extern struct file *filp_open(const char *, int, umode_t); ...[ 2075]: extern struct file *file_open_root(struct dentry *, struct vfsmount *, ...[ 2076]: const char *, int); ...[ 2077]: extern struct file * dentry_open(const struct path *, int, const struct cred *); ...[ 2078]: extern int filp_close(struct file *, fl_owner_t id); ...[ 2080]: extern struct filename *getname(const char *); ...[ 2082]: enum { ...[ 2083]: FILE_CREATED = 1, ...[ 2084]: FILE_OPENED = 2 ...[ 2085]: }; ...[ 2086]: extern int finish_open(struct file *file, struct dentry *dentry, ...[ 2087]: int (*open)(struct inode *, struct file *), ...[ 2088]: int *opened); ...[ 2089]: extern int finish_no_open(struct file *file, struct dentry *dentry); ...[ 2093]: extern int ioctl_preallocate(struct file *filp, void *argp); ...[ 2096]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) vfs_caches_init_early\ ... (void); ...[ 2097]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) vfs_caches_init\ ... (unsigned long); ...[ 2099]: extern struct kmem_cache *names_cachep; ...[ 2101]: extern void final_putname(struct filename *name); ...[ 2108]: extern void putname(struct filename *name); ...[ 2112]: extern int register_blkdev(unsigned int, const char *); ...[ 2113]: extern void unregister_blkdev(unsigned int, const char *); ...[ 2114]: extern struct block_device *bdget(dev_t); ...[ 2115]: extern struct block_device *bdgrab(struct block_device *bdev); ...[ 2116]: extern void bd_set_size(struct block_device *, loff_t size); ...[ 2117]: extern void bd_forget(struct inode *inode); ...[ 2118]: extern void bdput(struct block_device *); ...[ 2119]: extern void invalidate_bdev(struct block_device *); ...[ 2120]: extern void iterate_bdevs(void (*)(struct block_device *, void *), void *); ...[ 2121]: extern int sync_blockdev(struct block_device *bdev); ...[ 2122]: extern void kill_bdev(struct block_device *); ...[ 2123]: extern struct super_block *freeze_bdev(struct block_device *); ...[ 2124]: extern void emergency_thaw_all(void); ...[ 2125]: extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); ...[ 2126]: extern int fsync_bdev(struct block_device *); ...[ 2127]: extern int sb_is_blkdev_sb(struct super_block *sb); ...[ 2153]: extern int sync_filesystem(struct super_block *); ...[ 2154]: extern const struct file_operations def_blk_fops; ...[ 2155]: extern const struct file_operations def_chr_fops; ...[ 2156]: extern const struct file_operations bad_sock_fops; ...[ 2158]: extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long); ...[ 2159]: extern int blkdev_ioctl(struct block_device *, fmode_t, unsigned, unsigned long); ...[ 2160]: extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long); ...[ 2161]: extern int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder); ...[ 2162]: extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode, ...[ 2163]: void *holder); ...[ 2164]: extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, ...[ 2165]: void *holder); ...[ 2166]: extern void blkdev_put(struct block_device *bdev, fmode_t mode); ...[ 2168]: extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk); ...[ 2169]: extern void bd_unlink_disk_holder(struct block_device *bdev, ...[ 2170]: struct gendisk *disk); ...[ 2186]: extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *); ...[ 2187]: extern int register_chrdev_region(dev_t, unsigned, const char *); ...[ 2188]: extern int __register_chrdev(unsigned int major, unsigned int baseminor, ...[ 2189]: unsigned int count, const char *name, ...[ 2190]: const struct file_operations *fops); ...[ 2191]: extern void __unregister_chrdev(unsigned int major, unsigned int baseminor, ...[ 2192]: unsigned int count, const char *name); ...[ 2193]: extern void unregister_chrdev_region(dev_t, unsigned); ...[ 2194]: extern void chrdev_show(struct seq_file *,off_t); ...[ 2196]: static inline __attribute__((no_instrument_function)) int register_chrdev(unsigned int major, const char *name\ ... , ...[ 2197]: const struct file_operations *fops) ...[ 2198]: { ...[ 2199]: return __register_chrdev(major, 0, 256, name, fops); ...[ 2200]: } ...[ 2202]: static inline __attribute__((no_instrument_function)) void unregister_chrdev(unsigned int major, const char *\ ... name) ...[ 2203]: { ...[ 2204]: __unregister_chrdev(major, 0, 256, name); ...[ 2205]: } ...[ 2213]: extern const char *__bdevname(dev_t, char *buffer); ...[ 2214]: extern const char *bdevname(struct block_device *bdev, char *buffer); ...[ 2215]: extern struct block_device *lookup_bdev(const char *); ...[ 2216]: extern void blkdev_show(struct seq_file *,off_t); ...[ 2222]: extern void init_special_inode(struct inode *, umode_t, dev_t); ...[ 2225]: extern void make_bad_inode(struct inode *); ...[ 2226]: extern int is_bad_inode(struct inode *); ...[ 2239]: extern void check_disk_size_change(struct gendisk *disk, ...[ 2240]: struct block_device *bdev); ...[ 2241]: extern int revalidate_disk(struct gendisk *); ...[ 2242]: extern int check_disk_change(struct block_device *); ...[ 2243]: extern int __invalidate_device(struct block_device *, bool); ...[ 2244]: extern int invalidate_partition(struct gendisk *, int); ...[ 2246]: unsigned long invalidate_mapping_pages(struct address_space *mapping, ...[ 2247]: unsigned long start, unsigned long end); ...[ 2249]: static inline __attribute__((no_instrument_function)) void invalidate_remote_inode(struct inode *inode) ...[ 2250]: { ...[ 2251]: if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) || ...[ 2252]: (((inode->i_mode) & 00170000) == 0120000)) ...[ 2253]: invalidate_mapping_pages(inode->i_mapping, 0, -1); ...[ 2254]: } ...[ 2255]: extern int invalidate_inode_pages2(struct address_space *mapping); ...[ 2256]: extern int invalidate_inode_pages2_range(struct address_space *mapping, ...[ 2257]: unsigned long start, unsigned long end); ...[ 2258]: extern int write_inode_now(struct inode *, int); ...[ 2259]: extern int filemap_fdatawrite(struct address_space *); ...[ 2260]: extern int filemap_flush(struct address_space *); ...[ 2261]: extern int filemap_fdatawait(struct address_space *); ...[ 2262]: extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, ...[ 2263]: loff_t lend); ...[ 2264]: extern int filemap_write_and_wait(struct address_space *mapping); ...[ 2265]: extern int filemap_write_and_wait_range(struct address_space *mapping, ...[ 2266]: loff_t lstart, loff_t lend); ...[ 2267]: extern int __filemap_fdatawrite_range(struct address_space *mapping, ...[ 2268]: loff_t start, loff_t end, int sync_mode); ...[ 2269]: extern int filemap_fdatawrite_range(struct address_space *mapping, ...[ 2270]: loff_t start, loff_t end); ...[ 2272]: extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end, ...[ 2273]: int datasync); ...[ 2274]: extern int vfs_fsync(struct file *file, int datasync); ...[ 2275]: extern int generic_write_sync(struct file *file, loff_t pos, loff_t count); ...[ 2276]: extern void emergency_sync(void); ...[ 2277]: extern void emergency_remount(void); ...[ 2279]: extern sector_t bmap(struct inode *, sector_t); ...[ 2281]: extern int notify_change(struct dentry *, struct iattr *, struct inode **); ...[ 2282]: extern int inode_permission(struct inode *, int); ...[ 2283]: extern int generic_permission(struct inode *, int); ...[ 2285]: static inline __attribute__((no_instrument_function)) bool execute_ok(struct inode *inode) ...[ 2286]: { ...[ 2287]: return (inode->i_mode & (00100|00010|00001)) || (((inode->i_mode) & 00170000) == 0040000); ...[ 2288]: } ...[ 2290]: static inline __attribute__((no_instrument_function)) struct inode *file_inode(struct file *f) ...[ 2291]: { ...[ 2292]: return f->f_inode; ...[ 2293]: } ...[ 2295]: static inline __attribute__((no_instrument_function)) void file_start_write(struct file *file) ...[ 2296]: { ...[ 2297]: if (!(((file_inode(file)->i_mode) & 00170000) == 0100000)) ...[ 2298]: return; ...[ 2299]: __sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, true); ...[ 2300]: } ...[ 2302]: static inline __attribute__((no_instrument_function)) bool file_start_write_trylock(struct file *file) ...[ 2303]: { ...[ 2304]: if (!(((file_inode(file)->i_mode) & 00170000) == 0100000)) ...[ 2305]: return true; ...[ 2306]: return __sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, false); ...[ 2307]: } ...[ 2309]: static inline __attribute__((no_instrument_function)) void file_end_write(struct file *file) ...[ 2310]: { ...[ 2311]: if (!(((file_inode(file)->i_mode) & 00170000) == 0100000)) ...[ 2312]: return; ...[ 2313]: __sb_end_write(file_inode(file)->i_sb, SB_FREEZE_WRITE); ...[ 2314]: } ...[ 2332]: static inline __attribute__((no_instrument_function)) int get_write_access(struct inode *inode) ...[ 2333]: { ...[ 2334]: return atomic_inc_unless_negative(&inode->i_writecount) ? 0 : -26; ...[ 2335]: } ...[ 2336]: static inline __attribute__((no_instrument_function)) int deny_write_access(struct file *file) ...[ 2337]: { ...[ 2338]: struct inode *inode = file_inode(file); ...[ 2339]: return atomic_dec_unless_positive(&inode->i_writecount) ? 0 : -26; ...[ 2340]: } ...[ 2341]: static inline __attribute__((no_instrument_function)) void put_write_access(struct inode * inode) ...[ 2342]: { ...[ 2343]: atomic_dec(&inode->i_writecount); ...[ 2344]: } ...[ 2345]: static inline __attribute__((no_instrument_function)) void allow_write_access(struct file *file) ...[ 2346]: { ...[ 2347]: if (file) ...[ 2348]: atomic_inc(&file_inode(file)->i_writecount); ...[ 2349]: } ...[ 2350]: static inline __attribute__((no_instrument_function)) bool inode_is_open_for_write(const struct inode *inode\ ... ) ...[ 2351]: { ...[ 2352]: return atomic_read(&inode->i_writecount) > 0; ...[ 2353]: } ...[ 2356]: static inline __attribute__((no_instrument_function)) void i_readcount_dec(struct inode *inode) ...[ 2357]: { ...[ 2358]: do { if (__builtin_expect(!!(!atomic_read(&inode->i_readcount)), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" \ ... "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__\ ... ), "i" (sizeof(struct bug_entry))); do { } while (1); } while (0); } while(0); ...[ 2359]: atomic_dec(&inode->i_readcount); ...[ 2360]: } ...[ 2361]: static inline __attribute__((no_instrument_function)) void i_readcount_inc(struct inode *inode) ...[ 2362]: { ...[ 2363]: atomic_inc(&inode->i_readcount); ...[ 2364]: } ...[ 2375]: extern int do_pipe_flags(int *, int); ...[ 2377]: extern int kernel_read(struct file *, loff_t, char *, unsigned long); ...[ 2378]: extern ssize_t kernel_write(struct file *, const char *, size_t, loff_t); ...[ 2379]: extern struct file * open_exec(const char *); ...[ 2382]: extern int is_subdir(struct dentry *, struct dentry *); ...[ 2383]: extern int path_is_under(struct path *, struct path *); ...[ 2388]: extern loff_t default_llseek(struct file *file, loff_t offset, int whence); ...[ 2390]: extern loff_t vfs_llseek(struct file *file, loff_t offset, int whence); ...[ 2392]: extern int inode_init_always(struct super_block *, struct inode *); ...[ 2393]: extern void inode_init_once(struct inode *); ...[ 2394]: extern void address_space_init_once(struct address_space *mapping); ...[ 2395]: extern struct inode * igrab(struct inode *); ...[ 2396]: extern ino_t iunique(struct super_block *, ino_t); ...[ 2397]: extern int inode_needs_sync(struct inode *inode); ...[ 2398]: extern int generic_delete_inode(struct inode *inode); ...[ 2399]: static inline __attribute__((no_instrument_function)) int generic_drop_inode(struct inode *inode) ...[ 2400]: { ...[ 2401]: return !inode->i_nlink || inode_unhashed(inode); ...[ 2402]: } ...[ 2404]: extern struct inode *ilookup5_nowait(struct super_block *sb, ...[ 2405]: unsigned long hashval, int (*test)(struct inode *, void *), ...[ 2406]: void *data); ...[ 2407]: extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval, ...[ 2408]: int (*test)(struct inode *, void *), void *data); ...[ 2409]: extern struct inode *ilookup(struct super_block *sb, unsigned long ino); ...[ 2411]: extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set\ ... )(struct inode *, void *), void *); ...[ 2412]: extern struct inode * iget_locked(struct super_block *, unsigned long); ...[ 2413]: extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); ...[ 2414]: extern int insert_inode_locked(struct inode *); ...[ 2418]: static inline __attribute__((no_instrument_function)) void lockdep_annotate_inode_mutex_key(struct inode *\ ... inode) { }; ...[ 2420]: extern void unlock_new_inode(struct inode *); ...[ 2421]: extern unsigned int get_next_ino(void); ...[ 2423]: extern void __iget(struct inode * inode); ...[ 2424]: extern void iget_failed(struct inode *); ...[ 2425]: extern void clear_inode(struct inode *); ...[ 2426]: extern void __destroy_inode(struct inode *); ...[ 2427]: extern struct inode *new_inode_pseudo(struct super_block *sb); ...[ 2428]: extern struct inode *new_inode(struct super_block *sb); ...[ 2429]: extern void free_inode_nonrcu(struct inode *inode); ...[ 2430]: extern int should_remove_suid(struct dentry *); ...[ 2431]: extern int file_remove_suid(struct file *); ...[ 2433]: extern void __insert_inode_hash(struct inode *, unsigned long hashval); ...[ 2434]: static inline __attribute__((no_instrument_function)) void insert_inode_hash(struct inode *inode) ...[ 2435]: { ...[ 2436]: __insert_inode_hash(inode, inode->i_ino); ...[ 2437]: } ...[ 2439]: extern void __remove_inode_hash(struct inode *); ...[ 2440]: static inline __attribute__((no_instrument_function)) void remove_inode_hash(struct inode *inode) ...[ 2441]: { ...[ 2442]: if (!inode_unhashed(inode)) ...[ 2443]: __remove_inode_hash(inode); ...[ 2444]: } ...[ 2446]: extern void inode_sb_list_add(struct inode *inode); ...[ 2449]: extern void submit_bio(int, struct bio *); ...[ 2450]: extern int bdev_read_only(struct block_device *); ...[ 2452]: extern int set_blocksize(struct block_device *, int); ...[ 2453]: extern int sb_set_blocksize(struct super_block *, int); ...[ 2454]: extern int sb_min_blocksize(struct super_block *, int); ...[ 2456]: extern int generic_file_mmap(struct file *, struct vm_area_struct *); ...[ 2457]: extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); ...[ 2458]: extern int generic_file_remap_pages(struct vm_area_struct *, unsigned long addr, ...[ 2459]: unsigned long size, unsigned long pgoff); ...[ 2460]: extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size)\ ... ; ...[ 2461]: int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); ...[ 2462]: extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); ...[ 2463]: extern ssize_t __generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, ...[ 2464]: loff_t *); ...[ 2465]: extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t); ...[ 2466]: extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *, ...[ 2467]: unsigned long *, loff_t, loff_t *, size_t, size_t); ...[ 2468]: extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *, ...[ 2469]: unsigned long, loff_t, loff_t *, size_t, ssize_t); ...[ 2470]: extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos); ...[ 2471]: extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos); ...[ 2472]: extern int generic_segment_checks(const struct iovec *iov, ...[ 2473]: unsigned long *nr_segs, size_t *count, int access_flags); ...[ 2476]: extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, ...[ 2477]: unsigned long nr_segs, loff_t pos); ...[ 2478]: extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end, ...[ 2479]: int datasync); ...[ 2480]: extern void block_sync_page(struct page *page); ...[ 2483]: extern ssize_t generic_file_splice_read(struct file *, loff_t *, ...[ 2484]: struct pipe_inode_info *, size_t, unsigned int); ...[ 2485]: extern ssize_t default_file_splice_read(struct file *, loff_t *, ...[ 2486]: struct pipe_inode_info *, size_t, unsigned int); ...[ 2487]: extern ssize_t generic_file_splice_write(struct pipe_inode_info *, ...[ 2488]: struct file *, loff_t *, size_t, unsigned int); ...[ 2489]: extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, ...[ 2490]: struct file *out, loff_t *, size_t len, unsigned int flags); ...[ 2492]: extern void ...[ 2493]: file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); ...[ 2494]: extern loff_t noop_llseek(struct file *file, loff_t offset, int whence); ...[ 2495]: extern loff_t no_llseek(struct file *file, loff_t offset, int whence); ...[ 2496]: extern loff_t vfs_setpos(struct file *file, loff_t offset, loff_t maxsize); ...[ 2497]: extern loff_t generic_file_llseek(struct file *file, loff_t offset, int whence); ...[ 2498]: extern loff_t generic_file_llseek_size(struct file *file, loff_t offset, ...[ 2499]: int whence, loff_t maxsize, loff_t eof); ...[ 2500]: extern loff_t fixed_size_llseek(struct file *file, loff_t offset, ...[ 2501]: int whence, loff_t size); ...[ 2502]: extern int generic_file_open(struct inode * inode, struct file * filp); ...[ 2503]: extern int nonseekable_open(struct inode * inode, struct file * filp); ...[ 2513]: static inline __attribute__((no_instrument_function)) int xip_truncate_page(struct address_space *mapping, \ ... loff_t from) ...[ 2514]: { ...[ 2515]: return 0; ...[ 2516]: } ...[ 2520]: typedef void (dio_submit_t)(int rw, struct bio *bio, struct inode *inode, ...[ 2521]: loff_t file_offset); ...[ 2523]: enum { ...[ 2525]: DIO_LOCKING = 0x01, ...[ 2528]: DIO_SKIP_HOLES = 0x02, ...[ 2529]: }; ...[ 2531]: void dio_end_io(struct bio *bio, int error); ...[ 2533]: ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, ...[ 2534]: struct block_device *bdev, const struct iovec *iov, loff_t offset, ...[ 2535]: unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, ...[ 2536]: dio_submit_t submit_io, int flags); ...[ 2538]: static inline __attribute__((no_instrument_function)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, ...[ 2539]: struct inode *inode, const struct iovec *iov, loff_t offset, ...[ 2540]: unsigned long nr_segs, get_block_t get_block) ...[ 2541]: { ...[ 2542]: return __blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov, ...[ 2543]: offset, nr_segs, get_block, ((void *)0), ((void *)0), ...[ 2544]: DIO_LOCKING | DIO_SKIP_HOLES); ...[ 2545]: } ...[ 2548]: void inode_dio_wait(struct inode *inode); ...[ 2549]: void inode_dio_done(struct inode *inode); ...[ 2551]: extern const struct file_operations generic_ro_fops; ...[ 2555]: extern int vfs_readlink(struct dentry *, char *, int, const char *); ...[ 2556]: extern int page_readlink(struct dentry *, char *, int); ...[ 2557]: extern void *page_follow_link_light(struct dentry *, struct nameidata *); ...[ 2558]: extern void page_put_link(struct dentry *, struct nameidata *, void *); ...[ 2559]: extern int __page_symlink(struct inode *inode, const char *symname, int len, ...[ 2560]: int nofs); ...[ 2561]: extern int page_symlink(struct inode *inode, const char *symname, int len); ...[ 2562]: extern const struct inode_operations page_symlink_inode_operations; ...[ 2563]: extern void kfree_put_link(struct dentry *, struct nameidata *, void *); ...[ 2564]: extern int generic_readlink(struct dentry *, char *, int); ...[ 2565]: extern void generic_fillattr(struct inode *, struct kstat *); ...[ 2566]: int vfs_getattr_nosec(struct path *path, struct kstat *stat); ...[ 2567]: extern int vfs_getattr(struct path *, struct kstat *); ...[ 2568]: void __inode_add_bytes(struct inode *inode, loff_t bytes); ...[ 2569]: void inode_add_bytes(struct inode *inode, loff_t bytes); ...[ 2570]: void __inode_sub_bytes(struct inode *inode, loff_t bytes); ...[ 2571]: void inode_sub_bytes(struct inode *inode, loff_t bytes); ...[ 2572]: loff_t inode_get_bytes(struct inode *inode); ...[ 2573]: void inode_set_bytes(struct inode *inode, loff_t bytes); ...[ 2575]: extern int vfs_readdir(struct file *, filldir_t, void *); ...[ 2576]: extern int iterate_dir(struct file *, struct dir_context *); ...[ 2578]: extern int vfs_stat(const char *, struct kstat *); ...[ 2579]: extern int vfs_lstat(const char *, struct kstat *); ...[ 2580]: extern int vfs_fstat(unsigned int, struct kstat *); ...[ 2581]: extern int vfs_fstatat(int , const char *, struct kstat *, int); ...[ 2583]: extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, ...[ 2584]: unsigned long arg); ...[ 2585]: extern int __generic_block_fiemap(struct inode *inode, ...[ 2586]: struct fiemap_extent_info *fieinfo, ...[ 2587]: loff_t start, loff_t len, ...[ 2588]: get_block_t *get_block); ...[ 2589]: extern int generic_block_fiemap(struct inode *inode, ...[ 2590]: struct fiemap_extent_info *fieinfo, u64 start, ...[ 2591]: u64 len, get_block_t *get_block); ...[ 2593]: extern void get_filesystem(struct file_system_type *fs); ...[ 2594]: extern void put_filesystem(struct file_system_type *fs); ...[ 2595]: extern struct file_system_type *get_fs_type(const char *name); ...[ 2596]: extern struct super_block *get_super(struct block_device *); ...[ 2597]: extern struct super_block *get_super_thawed(struct block_device *); ...[ 2598]: extern struct super_block *get_active_super(struct block_device *bdev); ...[ 2599]: extern void drop_super(struct super_block *sb); ...[ 2600]: extern void iterate_supers(void (*)(struct super_block *, void *), void *); ...[ 2601]: extern void iterate_supers_type(struct file_system_type *, ...[ 2602]: void (*)(struct super_block *, void *), void *); ...[ 2604]: extern int dcache_dir_open(struct inode *, struct file *); ...[ 2605]: extern int dcache_dir_close(struct inode *, struct file *); ...[ 2606]: extern loff_t dcache_dir_lseek(struct file *, loff_t, int); ...[ 2607]: extern int dcache_readdir(struct file *, struct dir_context *); ...[ 2608]: extern int simple_setattr(struct dentry *, struct iattr *); ...[ 2609]: extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); ...[ 2610]: extern int simple_statfs(struct dentry *, struct kstatfs *); ...[ 2611]: extern int simple_open(struct inode *inode, struct file *file); ...[ 2612]: extern int simple_link(struct dentry *, struct inode *, struct dentry *); ...[ 2613]: extern int simple_unlink(struct inode *, struct dentry *); ...[ 2614]: extern int simple_rmdir(struct inode *, struct dentry *); ...[ 2615]: extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); ...[ 2616]: extern int noop_fsync(struct file *, loff_t, loff_t, int); ...[ 2617]: extern int simple_empty(struct dentry *); ...[ 2618]: extern int simple_readpage(struct file *file, struct page *page); ...[ 2619]: extern int simple_write_begin(struct file *file, struct address_space *mapping, ...[ 2620]: loff_t pos, unsigned len, unsigned flags, ...[ 2621]: struct page **pagep, void **fsdata); ...[ 2622]: extern int simple_write_end(struct file *file, struct address_space *mapping, ...[ 2623]: loff_t pos, unsigned len, unsigned copied, ...[ 2624]: struct page *page, void *fsdata); ...[ 2625]: extern int always_delete_dentry(const struct dentry *); ...[ 2626]: extern struct inode *alloc_anon_inode(struct super_block *); ...[ 2627]: extern const struct dentry_operations simple_dentry_operations; ...[ 2629]: extern struct dentry *simple_lookup(struct inode *, struct dentry *, unsigned int flags); ...[ 2630]: extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *); ...[ 2631]: extern const struct file_operations simple_dir_operations; ...[ 2632]: extern const struct inode_operations simple_dir_inode_operations; ...[ 2633]: struct tree_descr { char *name; const struct file_operations *ops; int mode; }; ...[ 2634]: struct dentry *d_alloc_name(struct dentry *, const char *); ...[ 2635]: extern int simple_fill_super(struct super_block *, unsigned long, struct tree_descr *); ...[ 2636]: extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); ...[ 2637]: extern void simple_release_fs(struct vfsmount **mount, int *count); ...[ 2639]: extern ssize_t simple_read_from_buffer(void *to, size_t count, ...[ 2640]: loff_t *ppos, const void *from, size_t available); ...[ 2641]: extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos, ...[ 2642]: const void *from, size_t count); ...[ 2644]: extern int generic_file_fsync(struct file *, loff_t, loff_t, int); ...[ 2646]: extern int generic_check_addressable(unsigned, u64); ...[ 2649]: extern int buffer_migrate_page(struct address_space *, ...[ 2650]: struct page *, struct page *, ...[ 2651]: enum migrate_mode); ...[ 2656]: extern int inode_change_ok(const struct inode *, struct iattr *); ...[ 2657]: extern int inode_newsize_ok(const struct inode *, loff_t offset); ...[ 2658]: extern void setattr_copy(struct inode *inode, const struct iattr *attr); ...[ 2660]: extern int file_update_time(struct file *file); ...[ 2662]: extern int generic_show_options(struct seq_file *m, struct dentry *root); ...[ 2663]: extern void save_mount_options(struct super_block *sb, char *options); ...[ 2664]: extern void replace_mount_options(struct super_block *sb, char *options); ...[ 2666]: static inline __attribute__((no_instrument_function)) ino_t parent_ino(struct dentry *dentry) ...[ 2667]: { ...[ 2668]: ino_t res; ...[ 2674]: spin_lock(&dentry->d_lockref.lock); ...[ 2675]: res = dentry->d_parent->d_inode->i_ino; ...[ 2676]: spin_unlock(&dentry->d_lockref.lock); ...[ 2677]: return res; ...[ 2678]: } ...[ 2686]: struct simple_transaction_argresp { ...[ 2687]: ssize_t size; ...[ 2688]: char data[0]; ...[ 2689]: }; ...[ 2693]: char *simple_transaction_get(struct file *file, const char *buf, ...[ 2694]: size_t size); ...[ 2695]: ssize_t simple_transaction_read(struct file *file, char *buf, ...[ 2696]: size_t size, loff_t *pos); ...[ 2697]: int simple_transaction_release(struct inode *inode, struct file *file); ...[ 2699]: void simple_transaction_set(struct file *file, size_t n); ...[ 2732]: static inline __attribute__((no_instrument_function)) __attribute__((format(printf, 1, 2))) ...[ 2733]: void __simple_attr_check_format(const char *fmt, ...) ...[ 2734]: { ...[ 2736]: } ...[ 2738]: int simple_attr_open(struct inode *inode, struct file *file, ...[ 2739]: int (*get)(void *, u64 *), int (*set)(void *, u64), ...[ 2740]: const char *fmt); ...[ 2741]: int simple_attr_release(struct inode *inode, struct file *file); ...[ 2742]: ssize_t simple_attr_read(struct file *file, char *buf, ...[ 2743]: size_t len, loff_t *ppos); ...[ 2744]: ssize_t simple_attr_write(struct file *file, const char *buf, ...[ 2745]: size_t len, loff_t *ppos); ...[ 2747]: struct ctl_table; ...[ 2748]: int proc_nr_files(struct ctl_table *table, int write, ...[ 2749]: void *buffer, size_t *lenp, loff_t *ppos); ...[ 2750]: int proc_nr_dentry(struct ctl_table *table, int write, ...[ 2751]: void *buffer, size_t *lenp, loff_t *ppos); ...[ 2752]: int proc_nr_inodes(struct ctl_table *table, int write, ...[ 2753]: void *buffer, size_t *lenp, loff_t *ppos); ...[ 2754]: int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) get_filesystem_list\ ... (char *buf); ...[ 2763]: static inline __attribute__((no_instrument_function)) int is_sxid(umode_t mode) ...[ 2764]: { ...[ 2765]: return (mode & 0004000) || ((mode & 0002000) && (mode & 00010)); ...[ 2766]: } ...[ 2768]: static inline __attribute__((no_instrument_function)) void inode_has_no_xattr(struct inode *inode) ...[ 2769]: { ...[ 2770]: if (!is_sxid(inode->i_mode) && (inode->i_sb->s_flags & (1<<28))) ...[ 2771]: inode->i_flags |= 4096; ...[ 2772]: } ...[ 2774]: static inline __attribute__((no_instrument_function)) bool dir_emit(struct dir_context *ctx, ...[ 2775]: const char *name, int namelen, ...[ 2776]: u64 ino, unsigned type) ...[ 2777]: { ...[ 2778]: return ctx->actor(ctx, name, namelen, ctx->pos, ino, type) == 0; ...[ 2779]: } ...[ 2780]: static inline __attribute__((no_instrument_function)) bool dir_emit_dot(struct file *file, struct dir_context \ ... *ctx) ...[ 2781]: { ...[ 2782]: return ctx->actor(ctx, ".", 1, ctx->pos, ...[ 2783]: file->f_path.dentry->d_inode->i_ino, 4) == 0; ...[ 2784]: } ...[ 2785]: static inline __attribute__((no_instrument_function)) bool dir_emit_dotdot(struct file *file, struct dir_context \ ... *ctx) ...[ 2786]: { ...[ 2787]: return ctx->actor(ctx, "..", 2, ctx->pos, ...[ 2788]: parent_ino(file->f_path.dentry), 4) == 0; ...[ 2789]: } ...[ 2790]: static inline __attribute__((no_instrument_function)) bool dir_emit_dots(struct file *file, struct dir_context \ ... *ctx) ...[ 2791]: { ...[ 2792]: if (ctx->pos == 0) { ...[ 2793]: if (!dir_emit_dot(file, ctx)) ...[ 2794]: return false; ...[ 2795]: ctx->pos = 1; ...[ 2796]: } ...[ 2797]: if (ctx->pos == 1) { ...[ 2798]: if (!dir_emit_dotdot(file, ctx)) ...[ 2799]: return false; ...[ 2800]: ctx->pos = 2; ...[ 2801]: } ...[ 2802]: return true; ...[ 2803]: } ...[ 2804]: static inline __attribute__((no_instrument_function)) bool dir_relax(struct inode *inode) ...[ 2805]: { ...[ 2806]: mutex_unlock(&inode->i_mutex); ...[ 2807]: mutex_lock(&inode->i_mutex); ...[ 2808]: return !((inode)->i_flags & 16); ...[ 2809]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/fs.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proc_fs.h ..[ 10]: struct proc_dir_entry; ..[ 14]: extern void proc_root_init(void); ..[ 15]: extern void proc_flush_task(struct task_struct *); ..[ 17]: extern struct proc_dir_entry *proc_symlink(const char *, ..[ 18]: struct proc_dir_entry *, const char *); ..[ 19]: extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *); ..[ 20]: extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t, ..[ 21]: struct proc_dir_entry *, void *); ..[ 22]: extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t, ..[ 23]: struct proc_dir_entry *); ..[ 25]: extern struct proc_dir_entry *proc_create_data(const char *, umode_t, ..[ 26]: struct proc_dir_entry *, ..[ 27]: const struct file_operations *, ..[ 28]: void *); ..[ 30]: static inline __attribute__((no_instrument_function)) struct proc_dir_entry *proc_create( ..[ 31]: const char *name, umode_t mode, struct proc_dir_entry *parent, ..[ 32]: const struct file_operations *proc_fops) ..[ 33]: { ..[ 34]: return proc_create_data(name, mode, parent, proc_fops, ((void *)0)); ..[ 35]: } ..[ 37]: extern void proc_set_size(struct proc_dir_entry *, loff_t); ..[ 38]: extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t); ..[ 39]: extern void *PDE_DATA(const struct inode *); ..[ 40]: extern void *proc_get_parent_data(const struct inode *); ..[ 41]: extern void proc_remove(struct proc_dir_entry *); ..[ 42]: extern void remove_proc_entry(const char *, struct proc_dir_entry *); ..[ 43]: extern int remove_proc_subtree(const char *, struct proc_dir_entry *); ..[ 73]: static inline __attribute__((no_instrument_function)) struct proc_dir_entry *proc_net_mkdir( ..[ 74]: struct net *net, const char *name, struct proc_dir_entry *parent) ..[ 75]: { ..[ 76]: return proc_mkdir_data(name, 0, parent, net); ..[ 77]: } ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proc_fs.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/notifier.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/notifier.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/srcu.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/srcu.h ...[ 36]: struct srcu_struct_array { ...[ 37]: unsigned long c[2]; ...[ 38]: unsigned long seq[2]; ...[ 39]: }; ...[ 41]: struct rcu_batch { ...[ 42]: struct callback_head *head, **tail; ...[ 43]: }; ...[ 47]: struct srcu_struct { ...[ 48]: unsigned completed; ...[ 49]: struct srcu_struct_array *per_cpu_ref; ...[ 50]: spinlock_t queue_lock; ...[ 51]: bool running; ...[ 53]: struct rcu_batch batch_queue; ...[ 55]: struct rcu_batch batch_check0; ...[ 57]: struct rcu_batch batch_check1; ...[ 58]: struct rcu_batch batch_done; ...[ 59]: struct delayed_work work; ...[ 63]: }; ...[ 80]: int init_srcu_struct(struct srcu_struct *sp); ...[ 85]: void process_srcu(struct work_struct *work); ...[ 130]: void call_srcu(struct srcu_struct *sp, struct callback_head *head, ...[ 131]: void (*func)(struct callback_head *head)); ...[ 133]: void cleanup_srcu_struct(struct srcu_struct *sp); ...[ 134]: int __srcu_read_lock(struct srcu_struct *sp) ; ...[ 135]: void __srcu_read_unlock(struct srcu_struct *sp, int idx) ; ...[ 136]: void synchronize_srcu(struct srcu_struct *sp); ...[ 137]: void synchronize_srcu_expedited(struct srcu_struct *sp); ...[ 138]: long srcu_batches_completed(struct srcu_struct *sp); ...[ 139]: void srcu_barrier(struct srcu_struct *sp); ...[ 167]: static inline __attribute__((no_instrument_function)) int srcu_read_lock_held(struct srcu_struct *sp) ...[ 168]: { ...[ 169]: return 1; ...[ 170]: } ...[ 218]: static inline __attribute__((no_instrument_function)) int srcu_read_lock(struct srcu_struct *sp) ...[ 219]: { ...[ 220]: int retval = __srcu_read_lock(sp); ...[ 222]: do { } while (0); ...[ 223]: return retval; ...[ 224]: } ...[ 233]: static inline __attribute__((no_instrument_function)) void srcu_read_unlock(struct srcu_struct *sp, int idx) ...[ 235]: { ...[ 236]: do { } while (0); ...[ 237]: __srcu_read_unlock(sp, idx); ...[ 238]: } ...[ 249]: static inline __attribute__((no_instrument_function)) void smp_mb__after_srcu_read_unlock(void) ...[ 250]: { ...[ 252]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/srcu.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/notifier.h ..[ 50]: typedef int (*notifier_fn_t)(struct notifier_block *nb, ..[ 51]: unsigned long action, void *data); ..[ 53]: struct notifier_block { ..[ 54]: notifier_fn_t notifier_call; ..[ 55]: struct notifier_block *next; ..[ 56]: int priority; ..[ 57]: }; ..[ 59]: struct atomic_notifier_head { ..[ 60]: spinlock_t lock; ..[ 61]: struct notifier_block *head; ..[ 62]: }; ..[ 64]: struct blocking_notifier_head { ..[ 65]: struct rw_semaphore rwsem; ..[ 66]: struct notifier_block *head; ..[ 67]: }; ..[ 69]: struct raw_notifier_head { ..[ 70]: struct notifier_block *head; ..[ 71]: }; ..[ 73]: struct srcu_notifier_head { ..[ 74]: struct mutex mutex; ..[ 75]: struct srcu_struct srcu; ..[ 76]: struct notifier_block *head; ..[ 77]: }; ..[ 92]: extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); ..[ 118]: extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, ..[ 119]: struct notifier_block *nb); ..[ 120]: extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh, ..[ 121]: struct notifier_block *nb); ..[ 122]: extern int raw_notifier_chain_register(struct raw_notifier_head *nh, ..[ 123]: struct notifier_block *nb); ..[ 124]: extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh, ..[ 125]: struct notifier_block *nb); ..[ 127]: extern int blocking_notifier_chain_cond_register( ..[ 128]: struct blocking_notifier_head *nh, ..[ 129]: struct notifier_block *nb); ..[ 131]: extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, ..[ 132]: struct notifier_block *nb); ..[ 133]: extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, ..[ 134]: struct notifier_block *nb); ..[ 135]: extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh, ..[ 136]: struct notifier_block *nb); ..[ 137]: extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, ..[ 138]: struct notifier_block *nb); ..[ 140]: extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh, ..[ 141]: unsigned long val, void *v); ..[ 142]: extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh, ..[ 143]: unsigned long val, void *v, int nr_to_call, int *nr_calls); ..[ 144]: extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh, ..[ 145]: unsigned long val, void *v); ..[ 146]: extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, ..[ 147]: unsigned long val, void *v, int nr_to_call, int *nr_calls); ..[ 148]: extern int raw_notifier_call_chain(struct raw_notifier_head *nh, ..[ 149]: unsigned long val, void *v); ..[ 150]: extern int __raw_notifier_call_chain(struct raw_notifier_head *nh, ..[ 151]: unsigned long val, void *v, int nr_to_call, int *nr_calls); ..[ 152]: extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh, ..[ 153]: unsigned long val, void *v); ..[ 154]: extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh, ..[ 155]: unsigned long val, void *v, int nr_to_call, int *nr_calls); ..[ 168]: static inline __attribute__((no_instrument_function)) int notifier_from_errno(int err) ..[ 169]: { ..[ 170]: if (err) ..[ 171]: return 0x8000 | (0x0001 - err); ..[ 173]: return 0x0001; ..[ 174]: } ..[ 177]: static inline __attribute__((no_instrument_function)) int notifier_to_errno(int ret) ..[ 178]: { ..[ 179]: ret &= ~0x8000; ..[ 180]: return ret > 0x0001 ? 0x0001 - ret : 0; ..[ 181]: } ..[ 212]: extern struct blocking_notifier_head reboot_notifier_list; ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/notifier.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..[ 7]: struct sched_param { ..[ 8]: int sched_priority; ..[ 9]: }; .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm_types.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm_types.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/page-debug-flags.h ....[ 14]: enum page_debug_flags { ....[ 15]: PAGE_DEBUG_FLAG_POISON, ....[ 16]: PAGE_DEBUG_FLAG_GUARD, ....[ 17]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/page-debug-flags.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm_types.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uprobes.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uprobes.h ....[ 30]: struct vm_area_struct; ....[ 31]: struct mm_struct; ....[ 32]: struct inode; ....[ 33]: struct notifier_block; ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uprobes.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uprobes.h .....[ 28]: typedef u8 uprobe_opcode_t; .....[ 36]: struct arch_uprobe { .....[ 37]: u16 fixups; .....[ 38]: union { .....[ 39]: u8 insn[16]; .....[ 40]: u8 ixol[16]; .....[ 41]: }; .....[ 43]: unsigned long rip_rela_target_address; .....[ 45]: }; .....[ 47]: struct arch_uprobe_task { .....[ 49]: unsigned long saved_scratch_register; .....[ 51]: unsigned int saved_trap_nr; .....[ 52]: unsigned int saved_tf; .....[ 53]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uprobes.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uprobes.h ....[ 44]: enum uprobe_filter_ctx { ....[ 45]: UPROBE_FILTER_REGISTER, ....[ 46]: UPROBE_FILTER_UNREGISTER, ....[ 47]: UPROBE_FILTER_MMAP, ....[ 48]: }; ....[ 50]: struct uprobe_consumer { ....[ 51]: int (*handler)(struct uprobe_consumer *self, struct pt_regs *regs); ....[ 52]: int (*ret_handler)(struct uprobe_consumer *self, ....[ 53]: unsigned long func, ....[ 54]: struct pt_regs *regs); ....[ 55]: bool (*filter)(struct uprobe_consumer *self, ....[ 56]: enum uprobe_filter_ctx ctx, ....[ 57]: struct mm_struct *mm); ....[ 59]: struct uprobe_consumer *next; ....[ 60]: }; ....[ 138]: struct uprobes_state { ....[ 139]: }; ....[ 140]: static inline __attribute__((no_instrument_function)) int ....[ 141]: uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) ....[ 142]: { ....[ 143]: return -38; ....[ 144]: } ....[ 145]: static inline __attribute__((no_instrument_function)) int ....[ 146]: uprobe_apply(struct inode *inode, loff_t offset, struct uprobe_consumer *uc, bool add) ....[ 147]: { ....[ 148]: return -38; ....[ 149]: } ....[ 150]: static inline __attribute__((no_instrument_function)) void ....[ 151]: uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) ....[ 152]: { ....[ 153]: } ....[ 154]: static inline __attribute__((no_instrument_function)) int uprobe_mmap(struct vm_area_struct *vma) ....[ 155]: { ....[ 156]: return 0; ....[ 157]: } ....[ 158]: static inline __attribute__((no_instrument_function)) void ....[ 159]: uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end) ....[ 160]: { ....[ 161]: } ....[ 162]: static inline __attribute__((no_instrument_function)) void uprobe_start_dup_mmap(void) ....[ 163]: { ....[ 164]: } ....[ 165]: static inline __attribute__((no_instrument_function)) void uprobe_end_dup_mmap(void) ....[ 166]: { ....[ 167]: } ....[ 168]: static inline __attribute__((no_instrument_function)) void ....[ 169]: uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm) ....[ 170]: { ....[ 171]: } ....[ 172]: static inline __attribute__((no_instrument_function)) void uprobe_notify_resume(struct pt_regs *regs) ....[ 173]: { ....[ 174]: } ....[ 175]: static inline __attribute__((no_instrument_function)) bool uprobe_deny_signal(void) ....[ 176]: { ....[ 177]: return false; ....[ 178]: } ....[ 179]: static inline __attribute__((no_instrument_function)) unsigned long uprobe_get_swbp_addr(struct pt_regs *regs\ .... ) ....[ 180]: { ....[ 181]: return 0; ....[ 182]: } ....[ 183]: static inline __attribute__((no_instrument_function)) void uprobe_free_utask(struct task_struct *t) ....[ 184]: { ....[ 185]: } ....[ 186]: static inline __attribute__((no_instrument_function)) void uprobe_copy_process(struct task_struct *t, unsigned \ .... long flags) ....[ 187]: { ....[ 188]: } ....[ 189]: static inline __attribute__((no_instrument_function)) void uprobe_clear_state(struct mm_struct *mm) ....[ 190]: { ....[ 191]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/uprobes.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm_types.h ...[ 24]: struct address_space; ...[ 44]: struct page { ...[ 46]: unsigned long flags; ...[ 48]: union { ...[ 49]: struct address_space *mapping; ...[ 56]: void *s_mem; ...[ 57]: }; ...[ 60]: struct { ...[ 61]: union { ...[ 62]: unsigned long index; ...[ 63]: void *freelist; ...[ 64]: bool pfmemalloc; ...[ 73]: }; ...[ 75]: union { ...[ 79]: unsigned long counters; ...[ 89]: struct { ...[ 91]: union { ...[ 108]: atomic_t _mapcount; ...[ 110]: struct { ...[ 111]: unsigned inuse:16; ...[ 112]: unsigned objects:15; ...[ 113]: unsigned frozen:1; ...[ 114]: }; ...[ 115]: int units; ...[ 116]: }; ...[ 117]: atomic_t _count; ...[ 118]: }; ...[ 119]: unsigned int active; ...[ 120]: }; ...[ 121]: }; ...[ 124]: union { ...[ 125]: struct list_head lru; ...[ 128]: struct { ...[ 129]: struct page *next; ...[ 131]: int pages; ...[ 132]: int pobjects; ...[ 137]: }; ...[ 139]: struct list_head list; ...[ 140]: struct slab *slab_page; ...[ 141]: struct callback_head callback_head; ...[ 147]: }; ...[ 150]: union { ...[ 151]: unsigned long private; ...[ 162]: spinlock_t ptl; ...[ 165]: struct kmem_cache *slab_cache; ...[ 166]: struct page *first_page; ...[ 167]: }; ...[ 198]: } ...[ 204]: __attribute__((aligned(2 * sizeof(unsigned long)))) ...[ 206]: ; ...[ 208]: struct page_frag { ...[ 209]: struct page *page; ...[ 211]: __u32 offset; ...[ 212]: __u32 size; ...[ 217]: }; ...[ 219]: typedef unsigned long vm_flags_t; ...[ 226]: struct vm_region { ...[ 227]: struct rb_node vm_rb; ...[ 228]: vm_flags_t vm_flags; ...[ 229]: unsigned long vm_start; ...[ 230]: unsigned long vm_end; ...[ 231]: unsigned long vm_top; ...[ 232]: unsigned long vm_pgoff; ...[ 233]: struct file *vm_file; ...[ 235]: int vm_usage; ...[ 236]: bool vm_icache_flushed : 1; ...[ 238]: }; ...[ 246]: struct vm_area_struct { ...[ 249]: unsigned long vm_start; ...[ 250]: unsigned long vm_end; ...[ 254]: struct vm_area_struct *vm_next, *vm_prev; ...[ 256]: struct rb_node vm_rb; ...[ 264]: unsigned long rb_subtree_gap; ...[ 268]: struct mm_struct *vm_mm; ...[ 269]: pgprot_t vm_page_prot; ...[ 270]: unsigned long vm_flags; ...[ 277]: union { ...[ 278]: struct { ...[ 279]: struct rb_node rb; ...[ 280]: unsigned long rb_subtree_last; ...[ 281]: } linear; ...[ 282]: struct list_head nonlinear; ...[ 283]: } shared; ...[ 291]: struct list_head anon_vma_chain; ...[ 293]: struct anon_vma *anon_vma; ...[ 296]: const struct vm_operations_struct *vm_ops; ...[ 299]: unsigned long vm_pgoff; ...[ 301]: struct file * vm_file; ...[ 302]: void * vm_private_data; ...[ 308]: struct mempolicy *vm_policy; ...[ 310]: }; ...[ 312]: struct core_thread { ...[ 313]: struct task_struct *task; ...[ 314]: struct core_thread *next; ...[ 315]: }; ...[ 317]: struct core_state { ...[ 318]: atomic_t nr_threads; ...[ 319]: struct core_thread dumper; ...[ 320]: struct completion startup; ...[ 321]: }; ...[ 323]: enum { ...[ 324]: MM_FILEPAGES, ...[ 325]: MM_ANONPAGES, ...[ 326]: MM_SWAPENTS, ...[ 327]: NR_MM_COUNTERS ...[ 328]: }; ...[ 333]: struct task_rss_stat { ...[ 334]: int events; ...[ 335]: int count[NR_MM_COUNTERS]; ...[ 336]: }; ...[ 339]: struct mm_rss_stat { ...[ 340]: atomic_long_t count[NR_MM_COUNTERS]; ...[ 341]: }; ...[ 343]: struct kioctx_table; ...[ 344]: struct mm_struct { ...[ 345]: struct vm_area_struct * mmap; ...[ 346]: struct rb_root mm_rb; ...[ 347]: struct vm_area_struct * mmap_cache; ...[ 349]: unsigned long (*get_unmapped_area) (struct file *filp, ...[ 350]: unsigned long addr, unsigned long len, ...[ 351]: unsigned long pgoff, unsigned long flags); ...[ 353]: unsigned long mmap_base; ...[ 354]: unsigned long mmap_legacy_base; ...[ 355]: unsigned long task_size; ...[ 356]: unsigned long highest_vm_end; ...[ 357]: pgd_t * pgd; ...[ 358]: atomic_t mm_users; ...[ 359]: atomic_t mm_count; ...[ 360]: atomic_long_t nr_ptes; ...[ 361]: int map_count; ...[ 363]: spinlock_t page_table_lock; ...[ 364]: struct rw_semaphore mmap_sem; ...[ 366]: struct list_head mmlist; ...[ 372]: unsigned long hiwater_rss; ...[ 373]: unsigned long hiwater_vm; ...[ 375]: unsigned long total_vm; ...[ 376]: unsigned long locked_vm; ...[ 377]: unsigned long pinned_vm; ...[ 378]: unsigned long shared_vm; ...[ 379]: unsigned long exec_vm; ...[ 380]: unsigned long stack_vm; ...[ 381]: unsigned long def_flags; ...[ 382]: unsigned long start_code, end_code, start_data, end_data; ...[ 383]: unsigned long start_brk, brk, start_stack; ...[ 384]: unsigned long arg_start, arg_end, env_start, env_end; ...[ 386]: unsigned long saved_auxv[(2*(2 + 20 + 1))]; ...[ 392]: struct mm_rss_stat rss_stat; ...[ 394]: struct linux_binfmt *binfmt; ...[ 396]: cpumask_var_t cpu_vm_mask_var; ...[ 399]: mm_context_t context; ...[ 401]: unsigned long flags; ...[ 403]: struct core_state *core_state; ...[ 405]: spinlock_t ioctx_lock; ...[ 406]: struct kioctx_table *ioctx_table; ...[ 423]: struct file *exe_file; ...[ 425]: struct mmu_notifier_mm *mmu_notifier_mm; ...[ 455]: struct uprobes_state uprobes_state; ...[ 456]: }; ...[ 458]: static inline __attribute__((no_instrument_function)) void mm_init_cpumask(struct mm_struct *mm) ...[ 459]: { ...[ 463]: } ...[ 466]: static inline __attribute__((no_instrument_function)) cpumask_t *mm_cpumask(struct mm_struct *mm) ...[ 467]: { ...[ 468]: return mm->cpu_vm_mask_var; ...[ 469]: } ...[ 500]: static inline __attribute__((no_instrument_function)) bool mm_tlb_flush_pending(struct mm_struct *mm) ...[ 501]: { ...[ 502]: return false; ...[ 503]: } ...[ 504]: static inline __attribute__((no_instrument_function)) void set_tlb_flush_pending(struct mm_struct *mm) ...[ 505]: { ...[ 506]: } ...[ 507]: static inline __attribute__((no_instrument_function)) void clear_tlb_flush_pending(struct mm_struct *mm) ...[ 508]: { ...[ 509]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm_types.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt_mask.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt_mask.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hardirq.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hardirq.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/gfp.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/gfp.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pageblock-flags.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pageblock-flags.h ........[ 29]: enum pageblock_bits { ........[ 30]: PB_migrate, ........[ 31]: PB_migrate_end = PB_migrate + 3 - 1, ........[ 36]: NR_PAGEBLOCK_BITS ........[ 37]: }; ........[ 63]: struct page; ........[ 66]: unsigned long get_pageblock_flags_group(struct page *page, ........[ 67]: int start_bitidx, int end_bitidx); ........[ 68]: void set_pageblock_flags_group(struct page *page, unsigned long flags, ........[ 69]: int start_bitidx, int end_bitidx); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pageblock-flags.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......[ 38]: enum { .......[ 39]: MIGRATE_UNMOVABLE, .......[ 40]: MIGRATE_RECLAIMABLE, .......[ 41]: MIGRATE_MOVABLE, .......[ 42]: MIGRATE_PCPTYPES, .......[ 43]: MIGRATE_RESERVE = MIGRATE_PCPTYPES, .......[ 61]: MIGRATE_ISOLATE, .......[ 63]: MIGRATE_TYPES .......[ 64]: }; .......[ 76]: extern int page_group_by_mobility_disabled; .......[ 78]: static inline __attribute__((no_instrument_function)) int get_pageblock_migratetype(struct page *page) .......[ 79]: { .......[ 80]: return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end); .......[ 81]: } .......[ 83]: struct free_area { .......[ 84]: struct list_head free_list[MIGRATE_TYPES]; .......[ 85]: unsigned long nr_free; .......[ 86]: }; .......[ 88]: struct pglist_data; .......[ 97]: struct zone_padding { .......[ 98]: char x[0]; .......[ 99]: } __attribute__((__aligned__(1 << (6)))); .......[ 105]: enum zone_stat_item { .......[ 107]: NR_FREE_PAGES, .......[ 108]: NR_ALLOC_BATCH, .......[ 109]: NR_LRU_BASE, .......[ 110]: NR_INACTIVE_ANON = NR_LRU_BASE, .......[ 111]: NR_ACTIVE_ANON, .......[ 112]: NR_INACTIVE_FILE, .......[ 113]: NR_ACTIVE_FILE, .......[ 114]: NR_UNEVICTABLE, .......[ 115]: NR_MLOCK, .......[ 116]: NR_ANON_PAGES, .......[ 117]: NR_FILE_MAPPED, .......[ 119]: NR_FILE_PAGES, .......[ 120]: NR_FILE_DIRTY, .......[ 121]: NR_WRITEBACK, .......[ 122]: NR_SLAB_RECLAIMABLE, .......[ 123]: NR_SLAB_UNRECLAIMABLE, .......[ 124]: NR_PAGETABLE, .......[ 125]: NR_KERNEL_STACK, .......[ 127]: NR_UNSTABLE_NFS, .......[ 128]: NR_BOUNCE, .......[ 129]: NR_VMSCAN_WRITE, .......[ 130]: NR_VMSCAN_IMMEDIATE, .......[ 131]: NR_WRITEBACK_TEMP, .......[ 132]: NR_ISOLATED_ANON, .......[ 133]: NR_ISOLATED_FILE, .......[ 134]: NR_SHMEM, .......[ 135]: NR_DIRTIED, .......[ 136]: NR_WRITTEN, .......[ 138]: NUMA_HIT, .......[ 139]: NUMA_MISS, .......[ 140]: NUMA_FOREIGN, .......[ 141]: NUMA_INTERLEAVE_HIT, .......[ 142]: NUMA_LOCAL, .......[ 143]: NUMA_OTHER, .......[ 145]: NR_ANON_TRANSPARENT_HUGEPAGES, .......[ 146]: NR_FREE_CMA_PAGES, .......[ 147]: NR_VM_ZONE_STAT_ITEMS }; .......[ 162]: enum lru_list { .......[ 163]: LRU_INACTIVE_ANON = 0, .......[ 164]: LRU_ACTIVE_ANON = 0 + 1, .......[ 165]: LRU_INACTIVE_FILE = 0 + 2, .......[ 166]: LRU_ACTIVE_FILE = 0 + 2 + 1, .......[ 167]: LRU_UNEVICTABLE, .......[ 168]: NR_LRU_LISTS .......[ 169]: }; .......[ 175]: static inline __attribute__((no_instrument_function)) int is_file_lru(enum lru_list lru) .......[ 176]: { .......[ 177]: return (lru == LRU_INACTIVE_FILE || lru == LRU_ACTIVE_FILE); .......[ 178]: } .......[ 180]: static inline __attribute__((no_instrument_function)) int is_active_lru(enum lru_list lru) .......[ 181]: { .......[ 182]: return (lru == LRU_ACTIVE_ANON || lru == LRU_ACTIVE_FILE); .......[ 183]: } .......[ 185]: static inline __attribute__((no_instrument_function)) int is_unevictable_lru(enum lru_list lru) .......[ 186]: { .......[ 187]: return (lru == LRU_UNEVICTABLE); .......[ 188]: } .......[ 190]: struct zone_reclaim_stat { .......[ 199]: unsigned long recent_rotated[2]; .......[ 200]: unsigned long recent_scanned[2]; .......[ 201]: }; .......[ 203]: struct lruvec { .......[ 204]: struct list_head lists[NR_LRU_LISTS]; .......[ 205]: struct zone_reclaim_stat reclaim_stat; .......[ 209]: }; .......[ 226]: typedef unsigned isolate_mode_t; .......[ 228]: enum zone_watermarks { .......[ 229]: WMARK_MIN, .......[ 230]: WMARK_LOW, .......[ 231]: WMARK_HIGH, .......[ 232]: NR_WMARK .......[ 233]: }; .......[ 239]: struct per_cpu_pages { .......[ 240]: int count; .......[ 241]: int high; .......[ 242]: int batch; .......[ 245]: struct list_head lists[MIGRATE_PCPTYPES]; .......[ 246]: }; .......[ 248]: struct per_cpu_pageset { .......[ 249]: struct per_cpu_pages pcp; .......[ 251]: s8 expire; .......[ 254]: s8 stat_threshold; .......[ 255]: s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS]; .......[ 257]: }; .......[ 261]: enum zone_type { .......[ 281]: ZONE_DMA, .......[ 289]: ZONE_DMA32, .......[ 296]: ZONE_NORMAL, .......[ 308]: ZONE_MOVABLE, .......[ 309]: __MAX_NR_ZONES .......[ 310]: }; .......[ 314]: struct zone { .......[ 318]: unsigned long watermark[NR_WMARK]; .......[ 325]: unsigned long percpu_drift_mark; .......[ 335]: unsigned long lowmem_reserve[4]; .......[ 341]: unsigned long dirty_balance_reserve; .......[ 344]: int node; .......[ 348]: unsigned long min_unmapped_pages; .......[ 349]: unsigned long min_slab_pages; .......[ 351]: struct per_cpu_pageset *pageset; .......[ 355]: spinlock_t lock; .......[ 368]: struct free_area free_area[11]; .......[ 389]: struct zone_padding _pad1_; .......[ 392]: spinlock_t lru_lock; .......[ 393]: struct lruvec lruvec; .......[ 395]: unsigned long pages_scanned; .......[ 396]: unsigned long flags; .......[ 399]: atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; .......[ 405]: unsigned int inactive_ratio; .......[ 408]: struct zone_padding _pad2_; .......[ 435]: wait_queue_head_t * wait_table; .......[ 436]: unsigned long wait_table_hash_nr_entries; .......[ 437]: unsigned long wait_table_bits; .......[ 442]: struct pglist_data *zone_pgdat; .......[ 444]: unsigned long zone_start_pfn; .......[ 488]: unsigned long spanned_pages; .......[ 489]: unsigned long present_pages; .......[ 490]: unsigned long managed_pages; .......[ 495]: const char *name; .......[ 496]: } __attribute__((__aligned__(1 << (6)))); .......[ 498]: typedef enum { .......[ 499]: ZONE_RECLAIM_LOCKED, .......[ 500]: ZONE_OOM_LOCKED, .......[ 501]: ZONE_CONGESTED, .......[ 504]: ZONE_TAIL_LRU_DIRTY, .......[ 508]: ZONE_WRITEBACK, .......[ 511]: } zone_flags_t; .......[ 513]: static inline __attribute__((no_instrument_function)) void zone_set_flag(struct zone *zone, zone_flags_t flag\ ....... ) .......[ 514]: { .......[ 515]: set_bit(flag, &zone->flags); .......[ 516]: } .......[ 518]: static inline __attribute__((no_instrument_function)) int zone_test_and_set_flag(struct zone *zone, zone_flags_t \ ....... flag) .......[ 519]: { .......[ 520]: return test_and_set_bit(flag, &zone->flags); .......[ 521]: } .......[ 523]: static inline __attribute__((no_instrument_function)) void zone_clear_flag(struct zone *zone, zone_flags_t flag\ ....... ) .......[ 524]: { .......[ 525]: clear_bit(flag, &zone->flags); .......[ 526]: } .......[ 528]: static inline __attribute__((no_instrument_function)) int zone_is_reclaim_congested(const struct zone *zone\ ....... ) .......[ 529]: { .......[ 530]: return (__builtin_constant_p((ZONE_CONGESTED)) ? constant_test_bit((ZONE_CONGESTED), (&zone->flags)) : variable_test_bit\ ....... ((ZONE_CONGESTED), (&zone->flags))); .......[ 531]: } .......[ 533]: static inline __attribute__((no_instrument_function)) int zone_is_reclaim_dirty(const struct zone *zone) .......[ 534]: { .......[ 535]: return (__builtin_constant_p((ZONE_TAIL_LRU_DIRTY)) ? constant_test_bit((ZONE_TAIL_LRU_DIRTY), (&zone->flags\ ....... )) : variable_test_bit((ZONE_TAIL_LRU_DIRTY), (&zone->flags))); .......[ 536]: } .......[ 538]: static inline __attribute__((no_instrument_function)) int zone_is_reclaim_writeback(const struct zone *zone\ ....... ) .......[ 539]: { .......[ 540]: return (__builtin_constant_p((ZONE_WRITEBACK)) ? constant_test_bit((ZONE_WRITEBACK), (&zone->flags)) : variable_test_bit\ ....... ((ZONE_WRITEBACK), (&zone->flags))); .......[ 541]: } .......[ 543]: static inline __attribute__((no_instrument_function)) int zone_is_reclaim_locked(const struct zone *zone) .......[ 544]: { .......[ 545]: return (__builtin_constant_p((ZONE_RECLAIM_LOCKED)) ? constant_test_bit((ZONE_RECLAIM_LOCKED), (&zone->flags\ ....... )) : variable_test_bit((ZONE_RECLAIM_LOCKED), (&zone->flags))); .......[ 546]: } .......[ 548]: static inline __attribute__((no_instrument_function)) int zone_is_oom_locked(const struct zone *zone) .......[ 549]: { .......[ 550]: return (__builtin_constant_p((ZONE_OOM_LOCKED)) ? constant_test_bit((ZONE_OOM_LOCKED), (&zone->flags)) : variable_test_bit\ ....... ((ZONE_OOM_LOCKED), (&zone->flags))); .......[ 551]: } .......[ 553]: static inline __attribute__((no_instrument_function)) unsigned long zone_end_pfn(const struct zone *zone) .......[ 554]: { .......[ 555]: return zone->zone_start_pfn + zone->spanned_pages; .......[ 556]: } .......[ 558]: static inline __attribute__((no_instrument_function)) bool zone_spans_pfn(const struct zone *zone, unsigned long \ ....... pfn) .......[ 559]: { .......[ 560]: return zone->zone_start_pfn <= pfn && pfn < zone_end_pfn(zone); .......[ 561]: } .......[ 563]: static inline __attribute__((no_instrument_function)) bool zone_is_initialized(struct zone *zone) .......[ 564]: { .......[ 565]: return !!zone->wait_table; .......[ 566]: } .......[ 568]: static inline __attribute__((no_instrument_function)) bool zone_is_empty(struct zone *zone) .......[ 569]: { .......[ 570]: return zone->spanned_pages == 0; .......[ 571]: } .......[ 654]: struct zonelist_cache { .......[ 655]: unsigned short z_to_n[((1 << 6) * 4)]; .......[ 656]: unsigned long fullzones[(((((1 << 6) * 4)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; .......[ 657]: unsigned long last_full_zap; .......[ 658]: }; .......[ 668]: struct zoneref { .......[ 669]: struct zone *zone; .......[ 670]: int zone_idx; .......[ 671]: }; .......[ 690]: struct zonelist { .......[ 691]: struct zonelist_cache *zlcache_ptr; .......[ 692]: struct zoneref _zonerefs[((1 << 6) * 4) + 1]; .......[ 694]: struct zonelist_cache zlcache; .......[ 696]: }; .......[ 699]: struct node_active_region { .......[ 700]: unsigned long start_pfn; .......[ 701]: unsigned long end_pfn; .......[ 702]: int nid; .......[ 703]: }; .......[ 708]: extern struct page *mem_map; .......[ 722]: struct bootmem_data; .......[ 723]: typedef struct pglist_data { .......[ 724]: struct zone node_zones[4]; .......[ 725]: struct zonelist node_zonelists[2]; .......[ 726]: int nr_zones; .......[ 749]: unsigned long node_start_pfn; .......[ 750]: unsigned long node_present_pages; .......[ 751]: unsigned long node_spanned_pages; .......[ 753]: int node_id; .......[ 754]: nodemask_t reclaim_nodes; .......[ 755]: wait_queue_head_t kswapd_wait; .......[ 756]: wait_queue_head_t pfmemalloc_wait; .......[ 757]: struct task_struct *kswapd; .......[ 758]: int kswapd_max_order; .......[ 759]: enum zone_type classzone_idx; .......[ 773]: } pg_data_t; .......[ 787]: static inline __attribute__((no_instrument_function)) unsigned long pgdat_end_pfn(pg_data_t *pgdat) .......[ 788]: { .......[ 789]: return pgdat->node_start_pfn + pgdat->node_spanned_pages; .......[ 790]: } .......[ 792]: static inline __attribute__((no_instrument_function)) bool pgdat_is_empty(pg_data_t *pgdat) .......[ 793]: { .......[ 794]: return !pgdat->node_start_pfn && !pgdat->node_spanned_pages; .......[ 795]: } ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memory_hotplug.h ........[ 9]: struct page; ........[ 10]: struct zone; ........[ 11]: struct pglist_data; ........[ 12]: struct mem_section; ........[ 13]: struct memory_block; ........[ 203]: static inline __attribute__((no_instrument_function)) void pgdat_resize_lock(struct pglist_data *p, unsigned \ ........ long *f) {} ........[ 204]: static inline __attribute__((no_instrument_function)) void pgdat_resize_unlock(struct pglist_data *p, unsigned \ ........ long *f) {} ........[ 205]: static inline __attribute__((no_instrument_function)) void pgdat_resize_init(struct pglist_data *pgdat) {} ........[ 207]: static inline __attribute__((no_instrument_function)) unsigned zone_span_seqbegin(struct zone *zone) ........[ 208]: { ........[ 209]: return 0; ........[ 210]: } ........[ 211]: static inline __attribute__((no_instrument_function)) int zone_span_seqretry(struct zone *zone, unsigned iv) ........[ 212]: { ........[ 213]: return 0; ........[ 214]: } ........[ 215]: static inline __attribute__((no_instrument_function)) void zone_span_writelock(struct zone *zone) {} ........[ 216]: static inline __attribute__((no_instrument_function)) void zone_span_writeunlock(struct zone *zone) {} ........[ 217]: static inline __attribute__((no_instrument_function)) void zone_seqlock_init(struct zone *zone) {} ........[ 219]: static inline __attribute__((no_instrument_function)) int mhp_notimplemented(const char *func) ........[ 220]: { ........[ 221]: printk("\001" "4" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func); ........[ 222]: dump_stack(); ........[ 223]: return -38; ........[ 224]: } ........[ 226]: static inline __attribute__((no_instrument_function)) void register_page_bootmem_info_node(struct pglist_data \ ........ *pgdat) ........[ 227]: { ........[ 228]: } ........[ 230]: static inline __attribute__((no_instrument_function)) int try_online_node(int nid) ........[ 231]: { ........[ 232]: return 0; ........[ 233]: } ........[ 235]: static inline __attribute__((no_instrument_function)) void lock_memory_hotplug(void) {} ........[ 236]: static inline __attribute__((no_instrument_function)) void unlock_memory_hotplug(void) {} ........[ 248]: static inline __attribute__((no_instrument_function)) int is_mem_section_removable(unsigned long pfn, ........[ 249]: unsigned long nr_pages) ........[ 250]: { ........[ 251]: return 0; ........[ 252]: } ........[ 254]: static inline __attribute__((no_instrument_function)) void try_offline_node(int nid) {} ........[ 256]: static inline __attribute__((no_instrument_function)) int offline_pages(unsigned long start_pfn, unsigned long \ ........ nr_pages) ........[ 257]: { ........[ 258]: return -22; ........[ 259]: } ........[ 261]: static inline __attribute__((no_instrument_function)) void remove_memory(int nid, u64 start, u64 size) {} ........[ 264]: extern int walk_memory_range(unsigned long start_pfn, unsigned long end_pfn, ........[ 265]: void *arg, int (*func)(struct memory_block *, void *)); ........[ 266]: extern int add_memory(int nid, u64 start, u64 size); ........[ 267]: extern int arch_add_memory(int nid, u64 start, u64 size); ........[ 268]: extern int offline_pages(unsigned long start_pfn, unsigned long nr_pages); ........[ 269]: extern bool is_memblock_offlined(struct memory_block *mem); ........[ 270]: extern void remove_memory(int nid, u64 start, u64 size); ........[ 271]: extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn); ........[ 272]: extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms); ........[ 273]: extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map, ........[ 274]: unsigned long pnum); ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memory_hotplug.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......[ 799]: extern struct mutex zonelists_mutex; .......[ 800]: void build_all_zonelists(pg_data_t *pgdat, struct zone *zone); .......[ 801]: void wakeup_kswapd(struct zone *zone, int order, enum zone_type classzone_idx); .......[ 802]: bool zone_watermark_ok(struct zone *z, int order, unsigned long mark, .......[ 803]: int classzone_idx, int alloc_flags); .......[ 804]: bool zone_watermark_ok_safe(struct zone *z, int order, unsigned long mark, .......[ 805]: int classzone_idx, int alloc_flags); .......[ 806]: enum memmap_context { .......[ 807]: MEMMAP_EARLY, .......[ 808]: MEMMAP_HOTPLUG, .......[ 809]: }; .......[ 810]: extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn, .......[ 811]: unsigned long size, .......[ 812]: enum memmap_context context); .......[ 814]: extern void lruvec_init(struct lruvec *lruvec); .......[ 816]: static inline __attribute__((no_instrument_function)) struct zone *lruvec_zone(struct lruvec *lruvec) .......[ 817]: { .......[ 821]: return ({ const typeof( ((struct zone *)0)->lruvec ) *__mptr = (lruvec); (struct zone *)( (char *)__mptr - __builtin_offsetof\ ....... (struct zone,lruvec) );}); .......[ 823]: } .......[ 826]: void memory_present(int nid, unsigned long start, unsigned long end); .......[ 834]: static inline __attribute__((no_instrument_function)) int local_memory_node(int node_id) { return node_id; }; .......[ 846]: static inline __attribute__((no_instrument_function)) int populated_zone(struct zone *zone) .......[ 847]: { .......[ 848]: return (!!zone->present_pages); .......[ 849]: } .......[ 851]: extern int movable_zone; .......[ 853]: static inline __attribute__((no_instrument_function)) int zone_movable_is_highmem(void) .......[ 854]: { .......[ 858]: return 0; .......[ 860]: } .......[ 862]: static inline __attribute__((no_instrument_function)) int is_highmem_idx(enum zone_type idx) .......[ 863]: { .......[ 868]: return 0; .......[ 870]: } .......[ 878]: static inline __attribute__((no_instrument_function)) int is_highmem(struct zone *zone) .......[ 879]: { .......[ 886]: return 0; .......[ 888]: } .......[ 891]: struct ctl_table; .......[ 892]: int min_free_kbytes_sysctl_handler(struct ctl_table *, int, .......[ 893]: void *, size_t *, loff_t *); .......[ 894]: extern int sysctl_lowmem_reserve_ratio[4-1]; .......[ 895]: int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, .......[ 896]: void *, size_t *, loff_t *); .......[ 897]: int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, .......[ 898]: void *, size_t *, loff_t *); .......[ 899]: int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, .......[ 900]: void *, size_t *, loff_t *); .......[ 901]: int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int, .......[ 902]: void *, size_t *, loff_t *); .......[ 904]: extern int numa_zonelist_order_handler(struct ctl_table *, int, .......[ 905]: void *, size_t *, loff_t *); .......[ 906]: extern char numa_zonelist_order[]; ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmzone.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmzone.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmzone_64.h .........[ 12]: extern struct pglist_data *node_data[]; .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmzone_64.h ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mmzone.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .......[ 921]: extern struct pglist_data *first_online_pgdat(void); .......[ 922]: extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat); .......[ 923]: extern struct zone *next_zone(struct zone *zone); .......[ 953]: static inline __attribute__((no_instrument_function)) struct zone *zonelist_zone(struct zoneref *zoneref) .......[ 954]: { .......[ 955]: return zoneref->zone; .......[ 956]: } .......[ 958]: static inline __attribute__((no_instrument_function)) int zonelist_zone_idx(struct zoneref *zoneref) .......[ 959]: { .......[ 960]: return zoneref->zone_idx; .......[ 961]: } .......[ 963]: static inline __attribute__((no_instrument_function)) int zonelist_node_idx(struct zoneref *zoneref) .......[ 964]: { .......[ 967]: return zoneref->zone->node; .......[ 971]: } .......[ 986]: struct zoneref *next_zones_zonelist(struct zoneref *z, .......[ 987]: enum zone_type highest_zoneidx, .......[ 988]: nodemask_t *nodes, .......[ 989]: struct zone **zone); .......[ 1003]: static inline __attribute__((no_instrument_function)) struct zoneref *first_zones_zonelist(struct zonelist \ ....... *zonelist, .......[ 1004]: enum zone_type highest_zoneidx, .......[ 1005]: nodemask_t *nodes, .......[ 1006]: struct zone **zone) .......[ 1007]: { .......[ 1008]: return next_zones_zonelist(zonelist->_zonerefs, highest_zoneidx, nodes, .......[ 1009]: zone); .......[ 1010]: } .......[ 1085]: struct page; .......[ 1086]: struct page_cgroup; .......[ 1087]: struct mem_section { .......[ 1100]: unsigned long section_mem_map; .......[ 1103]: unsigned long *pageblock_flags; .......[ 1116]: }; .......[ 1129]: extern struct mem_section *mem_section[((((1UL << (46 - 27))) + ((((1UL) << 12) / sizeof (struct mem_section))) - 1) / \ ....... ((((1UL) << 12) / sizeof (struct mem_section))))]; .......[ 1134]: static inline __attribute__((no_instrument_function)) struct mem_section *__nr_to_section(unsigned long nr) .......[ 1135]: { .......[ 1136]: if (!mem_section[((nr) / (((1UL) << 12) / sizeof (struct mem_section)))]) .......[ 1137]: return ((void *)0); .......[ 1138]: return &mem_section[((nr) / (((1UL) << 12) / sizeof (struct mem_section)))][nr & ((((1UL) << 12) / sizeof (struct mem_section\ ....... )) - 1)]; .......[ 1139]: } .......[ 1140]: extern int __section_nr(struct mem_section* ms); .......[ 1141]: extern unsigned long usemap_size(void); .......[ 1154]: static inline __attribute__((no_instrument_function)) struct page *__section_mem_map_addr(struct mem_section \ ....... *section) .......[ 1155]: { .......[ 1156]: unsigned long map = section->section_mem_map; .......[ 1157]: map &= (~((1UL<<2)-1)); .......[ 1158]: return (struct page *)map; .......[ 1159]: } .......[ 1161]: static inline __attribute__((no_instrument_function)) int present_section(struct mem_section *section) .......[ 1162]: { .......[ 1163]: return (section && (section->section_mem_map & (1UL<<0))); .......[ 1164]: } .......[ 1166]: static inline __attribute__((no_instrument_function)) int present_section_nr(unsigned long nr) .......[ 1167]: { .......[ 1168]: return present_section(__nr_to_section(nr)); .......[ 1169]: } .......[ 1171]: static inline __attribute__((no_instrument_function)) int valid_section(struct mem_section *section) .......[ 1172]: { .......[ 1173]: return (section && (section->section_mem_map & (1UL<<1))); .......[ 1174]: } .......[ 1176]: static inline __attribute__((no_instrument_function)) int valid_section_nr(unsigned long nr) .......[ 1177]: { .......[ 1178]: return valid_section(__nr_to_section(nr)); .......[ 1179]: } .......[ 1181]: static inline __attribute__((no_instrument_function)) struct mem_section *__pfn_to_section(unsigned long pfn\ ....... ) .......[ 1182]: { .......[ 1183]: return __nr_to_section(((pfn) >> (27 - 12))); .......[ 1184]: } .......[ 1187]: static inline __attribute__((no_instrument_function)) int pfn_valid(unsigned long pfn) .......[ 1188]: { .......[ 1189]: if (((pfn) >> (27 - 12)) >= (1UL << (46 - 27))) .......[ 1190]: return 0; .......[ 1191]: return valid_section(__nr_to_section(((pfn) >> (27 - 12)))); .......[ 1192]: } .......[ 1195]: static inline __attribute__((no_instrument_function)) int pfn_present(unsigned long pfn) .......[ 1196]: { .......[ 1197]: if (((pfn) >> (27 - 12)) >= (1UL << (46 - 27))) .......[ 1198]: return 0; .......[ 1199]: return present_section(__nr_to_section(((pfn) >> (27 - 12)))); .......[ 1200]: } .......[ 1218]: void sparse_init(void); .......[ 1225]: bool early_pfn_in_nid(unsigned long pfn, int nid); .......[ 1234]: void memory_present(int nid, unsigned long start, unsigned long end); .......[ 1235]: unsigned long __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) node_memmap_size_bytes\ ....... (int, unsigned long, unsigned long); .......[ 1268]: static inline __attribute__((no_instrument_function)) int memmap_valid_within(unsigned long pfn, .......[ 1269]: struct page *page, struct zone *zone) .......[ 1270]: { .......[ 1271]: return 1; .......[ 1272]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mmzone.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/gfp.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/topology.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/topology.h .......[ 49]: int arch_update_cpu_topology(void); .......[ 185]: extern __attribute__((section(".data..percpu" ""))) __typeof__(int) numa_node; .......[ 189]: static inline __attribute__((no_instrument_function)) int numa_node_id(void) .......[ 190]: { .......[ 191]: return ({ typeof((numa_node)) pscr_ret__; do { const void *__vpp_verify = (typeof((&((numa_node))) + 0))((void *)\ ....... 0); (void)__vpp_verify; } while (0); switch(sizeof((numa_node))) { case 1: pscr_ret__ = ({ typeof(((numa_node))) \ ....... pfo_ret__; switch (sizeof(((numa_node)))) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"\ ....... ((numa_node))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break\ ....... ; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; case 8: asm("mov" "q "\ ....... "%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; default: __bad_percpu_size(); } pfo_ret__\ ....... ; });break; case 2: pscr_ret__ = ({ typeof(((numa_node))) pfo_ret__; switch (sizeof(((numa_node)))) { case 1: asm(\ ....... "mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"((numa_node))); break; case 2: asm("mov" "w ""%%""gs"\ ....... ":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" \ ....... (pfo_ret__) : "m"((numa_node))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((\ ....... numa_node))); break; default: __bad_percpu_size(); } pfo_ret__; });break; case 4: pscr_ret__ = ({ typeof(((numa_node\ ....... ))) pfo_ret__; switch (sizeof(((numa_node)))) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__\ ....... ) : "m"((numa_node))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node)\ ....... )); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; case 8: asm\ ....... ("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; default: __bad_percpu_size(\ ....... ); } pfo_ret__; });break; case 8: pscr_ret__ = ({ typeof(((numa_node))) pfo_ret__; switch (sizeof(((numa_node)))\ ....... ) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"((numa_node))); break; case 2: asm("mov" \ ....... "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" \ ....... "1"",%0" : "=r" (pfo_ret__) : "m"((numa_node))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__\ ....... ) : "m"((numa_node))); break; default: __bad_percpu_size(); } pfo_ret__; });break; default: __bad_size_call_parameter\ ....... ();break; } pscr_ret__; }); .......[ 192]: } .......[ 196]: static inline __attribute__((no_instrument_function)) int cpu_to_node(int cpu) .......[ 197]: { .......[ 198]: return (*({ do { const void *__vpp_verify = (typeof(((&(numa_node))) + 0))((void *)0); (void)__vpp_verify; } while \ ....... (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(numa_node))) *)(&(numa_node)))); (typeof\ ....... ((typeof(*(&(numa_node))) *)(&(numa_node)))) (__ptr + (((__per_cpu_offset[cpu])))); }); })); .......[ 199]: } .......[ 203]: static inline __attribute__((no_instrument_function)) void set_numa_node(int node) .......[ 204]: { .......[ 205]: do { do { const void *__vpp_verify = (typeof((&((numa_node))) + 0))((void *)0); (void)__vpp_verify; } while (0); switch\ ....... (sizeof((numa_node))) { case 1: do { typedef typeof(((numa_node))) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = \ ....... ((node)); (void)pto_tmp__; } switch (sizeof(((numa_node)))) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" \ ....... (((numa_node))) : "qi" ((pto_T__)((node)))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node\ ....... ))) : "ri" ((pto_T__)((node)))); break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "ri" \ ....... ((pto_T__)((node)))); break; case 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "re" ((pto_T__\ ....... )((node)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((numa_node))) \ ....... pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((node)); (void)pto_tmp__; } switch (sizeof(((numa_node)))) { case \ ....... 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "qi" ((pto_T__)((node)))); break; case 2: asm("mov" \ ....... "w %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "ri" ((pto_T__)((node)))); break; case 4: asm("mov" "l %1,""%%"\ ....... "gs"":" "%P" "0" : "+m" (((numa_node))) : "ri" ((pto_T__)((node)))); break; case 8: asm("mov" "q %1,""%%""gs"":" "%P" \ ....... "0" : "+m" (((numa_node))) : "re" ((pto_T__)((node)))); break; default: __bad_percpu_size(); } } while (0);break; \ ....... case 4: do { typedef typeof(((numa_node))) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((node)); (void)pto_tmp__\ ....... ; } switch (sizeof(((numa_node)))) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "qi" ((pto_T__\ ....... )((node)))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "ri" ((pto_T__)((node)\ ....... ))); break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "ri" ((pto_T__)((node)))); break\ ....... ; case 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "re" ((pto_T__)((node)))); break; default\ ....... : __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((numa_node))) pto_T__; if (0) { pto_T__ pto_tmp__\ ....... ; pto_tmp__ = ((node)); (void)pto_tmp__; } switch (sizeof(((numa_node)))) { case 1: asm("mov" "b %1,""%%""gs"":" \ ....... "%P" "0" : "+m" (((numa_node))) : "qi" ((pto_T__)((node)))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : \ ....... "+m" (((numa_node))) : "ri" ((pto_T__)((node)))); break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node\ ....... ))) : "ri" ((pto_T__)((node)))); break; case 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" (((numa_node))) : "re" \ ....... ((pto_T__)((node)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter\ ....... ();break; } } while (0); .......[ 206]: } .......[ 210]: static inline __attribute__((no_instrument_function)) void set_cpu_numa_node(int cpu, int node) .......[ 211]: { .......[ 212]: (*({ do { const void *__vpp_verify = (typeof(((&(numa_node))) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ \ ....... unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(numa_node))) *)(&(numa_node)))); (typeof((typeof\ ....... (*(&(numa_node))) *)(&(numa_node)))) (__ptr + (((__per_cpu_offset[cpu])))); }); })) = node; .......[ 213]: } .......[ 270]: static inline __attribute__((no_instrument_function)) int numa_mem_id(void) .......[ 271]: { .......[ 272]: return numa_node_id(); .......[ 273]: } .......[ 277]: static inline __attribute__((no_instrument_function)) int cpu_to_mem(int cpu) .......[ 278]: { .......[ 279]: return cpu_to_node(cpu); .......[ 280]: } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/topology.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/gfp.h ......[ 10]: struct vm_area_struct; ......[ 157]: static inline __attribute__((no_instrument_function)) int allocflags_to_migratetype(gfp_t gfp_flags) ......[ 158]: { ......[ 159]: ({ 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(__FILE__, __LINE__); __builtin_expect(\ ...... !!(__ret_warn_on), 0); }); ......[ 161]: if (__builtin_expect(!!(page_group_by_mobility_disabled), 0)) ......[ 162]: return MIGRATE_UNMOVABLE; ......[ 165]: return (((gfp_flags & (( gfp_t)0x08u)) != 0) << 1) | ......[ 166]: ((gfp_flags & (( gfp_t)0x80000u)) != 0); ......[ 167]: } ......[ 252]: static inline __attribute__((no_instrument_function)) enum zone_type gfp_zone(gfp_t flags) ......[ 253]: { ......[ 254]: enum zone_type z; ......[ 255]: int bit = ( int) (flags & ((( gfp_t)0x01u)|(( gfp_t)0x02u)|(( gfp_t)0x04u)|(( gfp_t)0x08u))); ......[ 257]: z = (( (ZONE_NORMAL << 0 * 2) | (ZONE_DMA << 0x01u * 2) | (ZONE_NORMAL << 0x02u * 2) | (ZONE_DMA32 << 0x04u * 2) | (ZONE_NORMAL \ ...... << 0x08u * 2) | (ZONE_DMA << (0x08u | 0x01u) * 2) | (ZONE_MOVABLE << (0x08u | 0x02u) * 2) | (ZONE_DMA32 << (0x08u | 0x04u) * 2) \ ...... ) >> (bit * 2)) & ......[ 258]: ((1 << 2) - 1); ......[ 259]: ((void)(sizeof(( long)((( 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)))); ......[ 260]: return z; ......[ 261]: } ......[ 270]: static inline __attribute__((no_instrument_function)) int gfp_zonelist(gfp_t flags) ......[ 271]: { ......[ 272]: if ((1 || 0) && __builtin_expect(!!(flags & (( gfp_t)0x40000u)), 0)) ......[ 273]: return 1; ......[ 275]: return 0; ......[ 276]: } ......[ 287]: static inline __attribute__((no_instrument_function)) struct zonelist *node_zonelist(int nid, gfp_t flags) ......[ 288]: { ......[ 289]: return (node_data[nid])->node_zonelists + gfp_zonelist(flags); ......[ 290]: } ......[ 293]: static inline __attribute__((no_instrument_function)) void arch_free_page(struct page *page, int order) { } ......[ 296]: static inline __attribute__((no_instrument_function)) void arch_alloc_page(struct page *page, int order) { } ......[ 299]: struct page * ......[ 300]: __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, ......[ 301]: struct zonelist *zonelist, nodemask_t *nodemask); ......[ 303]: static inline __attribute__((no_instrument_function)) struct page * ......[ 304]: __alloc_pages(gfp_t gfp_mask, unsigned int order, ......[ 305]: struct zonelist *zonelist) ......[ 306]: { ......[ 307]: return __alloc_pages_nodemask(gfp_mask, order, zonelist, ((void *)0)); ......[ 308]: } ......[ 310]: static inline __attribute__((no_instrument_function)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask, ......[ 311]: unsigned int order) ......[ 312]: { ......[ 314]: if (nid < 0) ......[ 315]: nid = numa_node_id(); ......[ 317]: return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask)); ......[ 318]: } ......[ 320]: static inline __attribute__((no_instrument_function)) struct page *alloc_pages_exact_node(int nid, gfp_t gfp_mask\ ...... , ......[ 321]: unsigned int order) ......[ 322]: { ......[ 323]: ((void)(sizeof(( long)(nid < 0 || nid >=( 1 << 6) || !node_state((nid), N_ONLINE))))); ......[ 325]: return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask)); ......[ 326]: } ......[ 329]: extern struct page *alloc_pages_current(gfp_t gfp_mask, unsigned order); ......[ 331]: static inline __attribute__((no_instrument_function)) struct page * ......[ 332]: alloc_pages(gfp_t gfp_mask, unsigned int order) ......[ 333]: { ......[ 334]: return alloc_pages_current(gfp_mask, order); ......[ 335]: } ......[ 336]: extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order, ......[ 337]: struct vm_area_struct *vma, unsigned long addr, ......[ 338]: int node); ......[ 351]: extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); ......[ 352]: extern unsigned long get_zeroed_page(gfp_t gfp_mask); ......[ 354]: void *alloc_pages_exact(size_t size, gfp_t gfp_mask); ......[ 355]: void free_pages_exact(void *virt, size_t size); ......[ 357]: void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); ......[ 365]: extern void __free_pages(struct page *page, unsigned int order); ......[ 366]: extern void free_pages(unsigned long addr, unsigned int order); ......[ 367]: extern void free_hot_cold_page(struct page *page, int cold); ......[ 368]: extern void free_hot_cold_page_list(struct list_head *list, int cold); ......[ 370]: extern void __free_memcg_kmem_pages(struct page *page, unsigned int order); ......[ 371]: extern void free_memcg_kmem_pages(unsigned long addr, unsigned int order); ......[ 376]: void page_alloc_init(void); ......[ 377]: void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp); ......[ 378]: void drain_all_pages(void); ......[ 379]: void drain_local_pages(void *dummy); ......[ 388]: extern gfp_t gfp_allowed_mask; ......[ 391]: bool gfp_pfmemalloc_allowed(gfp_t gfp_mask); ......[ 393]: extern void pm_restrict_gfp_mask(void); ......[ 394]: extern void pm_restore_gfp_mask(void); ......[ 397]: extern bool pm_suspended_storage(void); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/gfp.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqreturn.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqreturn.h ......[ 10]: enum irqreturn { ......[ 11]: IRQ_NONE = (0 << 0), ......[ 12]: IRQ_HANDLED = (1 << 0), ......[ 13]: IRQ_WAKE_THREAD = (1 << 1), ......[ 14]: }; ......[ 16]: typedef enum irqreturn irqreturn_t; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqreturn.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqnr.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqnr.h ......[ 7]: extern int nr_irqs; ......[ 8]: extern struct irq_desc *irq_to_desc(unsigned int irq); ......[ 9]: unsigned int irq_get_next_irq(unsigned int offset); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqnr.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq.h ......[ 13]: static inline __attribute__((no_instrument_function)) int irq_canonicalize(int irq) ......[ 14]: { ......[ 15]: return ((irq == 2) ? 9 : irq); ......[ 16]: } ......[ 28]: extern void fixup_irqs(void); ......[ 29]: extern void irq_force_complete_move(int); ......[ 32]: extern void (*x86_platform_ipi_callback)(void); ......[ 33]: extern void native_init_IRQ(void); ......[ 34]: extern bool handle_irq(unsigned irq, struct pt_regs *regs); ......[ 36]: extern unsigned int do_IRQ(struct pt_regs *regs); ......[ 39]: extern unsigned long used_vectors[(((256) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ......[ 40]: extern int vector_used_by_percpu_irq(unsigned int vector); ......[ 42]: extern void init_ISA_irqs(void); ......[ 45]: void arch_trigger_all_cpu_backtrace(void); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_regs.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_regs.h ......[ 14]: extern __attribute__((section(".data..percpu" ""))) __typeof__(struct pt_regs *) irq_regs; ......[ 16]: static inline __attribute__((no_instrument_function)) struct pt_regs *get_irq_regs(void) ......[ 17]: { ......[ 18]: return ({ typeof((irq_regs)) pscr_ret__; do { const void *__vpp_verify = (typeof((&((irq_regs))) + 0))((void *)0)\ ...... ; (void)__vpp_verify; } while (0); switch(sizeof((irq_regs))) { case 1: pscr_ret__ = ({ typeof(((irq_regs))) pfo_ret__\ ...... ; switch (sizeof(((irq_regs)))) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"((irq_regs\ ...... ))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; case 4: asm\ ...... ("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; case 8: asm("mov" "q ""%%""gs"\ ...... ":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; default: __bad_percpu_size(); } pfo_ret__; });break\ ...... ; case 2: pscr_ret__ = ({ typeof(((irq_regs))) pfo_ret__; switch (sizeof(((irq_regs)))) { case 1: asm("mov" "b ""%%"\ ...... "gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"((irq_regs))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" \ ...... : "=r" (pfo_ret__) : "m"((irq_regs))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"\ ...... ((irq_regs))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break\ ...... ; default: __bad_percpu_size(); } pfo_ret__; });break; case 4: pscr_ret__ = ({ typeof(((irq_regs))) pfo_ret__; switch \ ...... (sizeof(((irq_regs)))) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" : "=q" (pfo_ret__) : "m"((irq_regs))); break\ ...... ; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; case 4: asm("mov" "l "\ ...... "%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"\ ...... ",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; default: __bad_percpu_size(); } pfo_ret__; });break; case 8: pscr_ret__ \ ...... = ({ typeof(((irq_regs))) pfo_ret__; switch (sizeof(((irq_regs)))) { case 1: asm("mov" "b ""%%""gs"":" "%P" "1"",%0" \ ...... : "=q" (pfo_ret__) : "m"((irq_regs))); break; case 2: asm("mov" "w ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"\ ...... ((irq_regs))); break; case 4: asm("mov" "l ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break\ ...... ; case 8: asm("mov" "q ""%%""gs"":" "%P" "1"",%0" : "=r" (pfo_ret__) : "m"((irq_regs))); break; default: __bad_percpu_size\ ...... (); } pfo_ret__; });break; default: __bad_size_call_parameter();break; } pscr_ret__; }); ......[ 19]: } ......[ 21]: static inline __attribute__((no_instrument_function)) struct pt_regs *set_irq_regs(struct pt_regs *new_regs\ ...... ) ......[ 22]: { ......[ 23]: struct pt_regs *old_regs; ......[ 25]: old_regs = get_irq_regs(); ......[ 26]: do { do { const void *__vpp_verify = (typeof((&((irq_regs))) + 0))((void *)0); (void)__vpp_verify; } while (0); switch\ ...... (sizeof((irq_regs))) { case 1: do { typedef typeof(((irq_regs))) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((\ ...... new_regs)); (void)pto_tmp__; } switch (sizeof(((irq_regs)))) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" \ ...... (((irq_regs))) : "qi" ((pto_T__)((new_regs)))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs\ ...... ))) : "ri" ((pto_T__)((new_regs)))); break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" \ ...... ((pto_T__)((new_regs)))); break; case 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "re" ((pto_T__\ ...... )((new_regs)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((irq_regs\ ...... ))) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((new_regs)); (void)pto_tmp__; } switch (sizeof(((irq_regs))\ ...... )) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "qi" ((pto_T__)((new_regs)))); break; case \ ...... 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" ((pto_T__)((new_regs)))); break; case 4: asm\ ...... ("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" ((pto_T__)((new_regs)))); break; case 8: asm("mov" \ ...... "q %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "re" ((pto_T__)((new_regs)))); break; default: __bad_percpu_size\ ...... (); } } while (0);break; case 4: do { typedef typeof(((irq_regs))) pto_T__; if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((new_regs\ ...... )); (void)pto_tmp__; } switch (sizeof(((irq_regs)))) { case 1: asm("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs\ ...... ))) : "qi" ((pto_T__)((new_regs)))); break; case 2: asm("mov" "w %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" \ ...... ((pto_T__)((new_regs)))); break; case 4: asm("mov" "l %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" ((pto_T__\ ...... )((new_regs)))); break; case 8: asm("mov" "q %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "re" ((pto_T__)((new_regs\ ...... )))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((irq_regs))) pto_T__; \ ...... if (0) { pto_T__ pto_tmp__; pto_tmp__ = ((new_regs)); (void)pto_tmp__; } switch (sizeof(((irq_regs)))) { case 1: asm\ ...... ("mov" "b %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "qi" ((pto_T__)((new_regs)))); break; case 2: asm("mov" \ ...... "w %1,""%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" ((pto_T__)((new_regs)))); break; case 4: asm("mov" "l %1,"\ ...... "%%""gs"":" "%P" "0" : "+m" (((irq_regs))) : "ri" ((pto_T__)((new_regs)))); break; case 8: asm("mov" "q %1,""%%""gs"\ ...... ":" "%P" "0" : "+m" (((irq_regs))) : "re" ((pto_T__)((new_regs)))); break; default: __bad_percpu_size(); } } while \ ...... (0);break; default: __bad_size_call_parameter();break; } } while (0); ......[ 28]: return old_regs; ......[ 29]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/irq_regs.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....[ 28]: struct seq_file; .....[ 29]: struct module; .....[ 30]: struct irq_desc; .....[ 31]: struct irq_data; .....[ 32]: typedef void (*irq_flow_handler_t)(unsigned int irq, .....[ 33]: struct irq_desc *desc); .....[ 34]: typedef void (*irq_preflow_handler_t)(struct irq_data *data); .....[ 77]: enum { .....[ 78]: IRQ_TYPE_NONE = 0x00000000, .....[ 79]: IRQ_TYPE_EDGE_RISING = 0x00000001, .....[ 80]: IRQ_TYPE_EDGE_FALLING = 0x00000002, .....[ 81]: IRQ_TYPE_EDGE_BOTH = (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING), .....[ 82]: IRQ_TYPE_LEVEL_HIGH = 0x00000004, .....[ 83]: IRQ_TYPE_LEVEL_LOW = 0x00000008, .....[ 84]: IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH), .....[ 85]: IRQ_TYPE_SENSE_MASK = 0x0000000f, .....[ 86]: IRQ_TYPE_DEFAULT = IRQ_TYPE_SENSE_MASK, .....[ 88]: IRQ_TYPE_PROBE = 0x00000010, .....[ 90]: IRQ_LEVEL = (1 << 8), .....[ 91]: IRQ_PER_CPU = (1 << 9), .....[ 92]: IRQ_NOPROBE = (1 << 10), .....[ 93]: IRQ_NOREQUEST = (1 << 11), .....[ 94]: IRQ_NOAUTOEN = (1 << 12), .....[ 95]: IRQ_NO_BALANCING = (1 << 13), .....[ 96]: IRQ_MOVE_PCNTXT = (1 << 14), .....[ 97]: IRQ_NESTED_THREAD = (1 << 15), .....[ 98]: IRQ_NOTHREAD = (1 << 16), .....[ 99]: IRQ_PER_CPU_DEVID = (1 << 17), .....[ 100]: IRQ_IS_POLLED = (1 << 18), .....[ 101]: }; .....[ 117]: enum { .....[ 118]: IRQ_SET_MASK_OK = 0, .....[ 119]: IRQ_SET_MASK_OK_NOCOPY, .....[ 120]: }; .....[ 122]: struct msi_desc; .....[ 123]: struct irq_domain; .....[ 146]: struct irq_data { .....[ 147]: u32 mask; .....[ 148]: unsigned int irq; .....[ 149]: unsigned long hwirq; .....[ 150]: unsigned int node; .....[ 151]: unsigned int state_use_accessors; .....[ 152]: struct irq_chip *chip; .....[ 153]: struct irq_domain *domain; .....[ 154]: void *handler_data; .....[ 155]: void *chip_data; .....[ 156]: struct msi_desc *msi_desc; .....[ 157]: cpumask_var_t affinity; .....[ 158]: }; .....[ 177]: enum { .....[ 178]: IRQD_TRIGGER_MASK = 0xf, .....[ 179]: IRQD_SETAFFINITY_PENDING = (1 << 8), .....[ 180]: IRQD_NO_BALANCING = (1 << 10), .....[ 181]: IRQD_PER_CPU = (1 << 11), .....[ 182]: IRQD_AFFINITY_SET = (1 << 12), .....[ 183]: IRQD_LEVEL = (1 << 13), .....[ 184]: IRQD_WAKEUP_STATE = (1 << 14), .....[ 185]: IRQD_MOVE_PCNTXT = (1 << 15), .....[ 186]: IRQD_IRQ_DISABLED = (1 << 16), .....[ 187]: IRQD_IRQ_MASKED = (1 << 17), .....[ 188]: IRQD_IRQ_INPROGRESS = (1 << 18), .....[ 189]: }; .....[ 191]: static inline __attribute__((no_instrument_function)) bool irqd_is_setaffinity_pending(struct irq_data *d) .....[ 192]: { .....[ 193]: return d->state_use_accessors & IRQD_SETAFFINITY_PENDING; .....[ 194]: } .....[ 196]: static inline __attribute__((no_instrument_function)) bool irqd_is_per_cpu(struct irq_data *d) .....[ 197]: { .....[ 198]: return d->state_use_accessors & IRQD_PER_CPU; .....[ 199]: } .....[ 201]: static inline __attribute__((no_instrument_function)) bool irqd_can_balance(struct irq_data *d) .....[ 202]: { .....[ 203]: return !(d->state_use_accessors & (IRQD_PER_CPU | IRQD_NO_BALANCING)); .....[ 204]: } .....[ 206]: static inline __attribute__((no_instrument_function)) bool irqd_affinity_was_set(struct irq_data *d) .....[ 207]: { .....[ 208]: return d->state_use_accessors & IRQD_AFFINITY_SET; .....[ 209]: } .....[ 211]: static inline __attribute__((no_instrument_function)) void irqd_mark_affinity_was_set(struct irq_data *d) .....[ 212]: { .....[ 213]: d->state_use_accessors |= IRQD_AFFINITY_SET; .....[ 214]: } .....[ 216]: static inline __attribute__((no_instrument_function)) u32 irqd_get_trigger_type(struct irq_data *d) .....[ 217]: { .....[ 218]: return d->state_use_accessors & IRQD_TRIGGER_MASK; .....[ 219]: } .....[ 224]: static inline __attribute__((no_instrument_function)) void irqd_set_trigger_type(struct irq_data *d, u32 type\ ..... ) .....[ 225]: { .....[ 226]: d->state_use_accessors &= ~IRQD_TRIGGER_MASK; .....[ 227]: d->state_use_accessors |= type & IRQD_TRIGGER_MASK; .....[ 228]: } .....[ 230]: static inline __attribute__((no_instrument_function)) bool irqd_is_level_type(struct irq_data *d) .....[ 231]: { .....[ 232]: return d->state_use_accessors & IRQD_LEVEL; .....[ 233]: } .....[ 235]: static inline __attribute__((no_instrument_function)) bool irqd_is_wakeup_set(struct irq_data *d) .....[ 236]: { .....[ 237]: return d->state_use_accessors & IRQD_WAKEUP_STATE; .....[ 238]: } .....[ 240]: static inline __attribute__((no_instrument_function)) bool irqd_can_move_in_process_context(struct irq_data \ ..... *d) .....[ 241]: { .....[ 242]: return d->state_use_accessors & IRQD_MOVE_PCNTXT; .....[ 243]: } .....[ 245]: static inline __attribute__((no_instrument_function)) bool irqd_irq_disabled(struct irq_data *d) .....[ 246]: { .....[ 247]: return d->state_use_accessors & IRQD_IRQ_DISABLED; .....[ 248]: } .....[ 250]: static inline __attribute__((no_instrument_function)) bool irqd_irq_masked(struct irq_data *d) .....[ 251]: { .....[ 252]: return d->state_use_accessors & IRQD_IRQ_MASKED; .....[ 253]: } .....[ 255]: static inline __attribute__((no_instrument_function)) bool irqd_irq_inprogress(struct irq_data *d) .....[ 256]: { .....[ 257]: return d->state_use_accessors & IRQD_IRQ_INPROGRESS; .....[ 258]: } .....[ 265]: static inline __attribute__((no_instrument_function)) void irqd_set_chained_irq_inprogress(struct irq_data \ ..... *d) .....[ 266]: { .....[ 267]: d->state_use_accessors |= IRQD_IRQ_INPROGRESS; .....[ 268]: } .....[ 270]: static inline __attribute__((no_instrument_function)) void irqd_clr_chained_irq_inprogress(struct irq_data \ ..... *d) .....[ 271]: { .....[ 272]: d->state_use_accessors &= ~IRQD_IRQ_INPROGRESS; .....[ 273]: } .....[ 275]: static inline __attribute__((no_instrument_function)) irq_hw_number_t irqd_to_hwirq(struct irq_data *d) .....[ 276]: { .....[ 277]: return d->hwirq; .....[ 278]: } .....[ 308]: struct irq_chip { .....[ 309]: const char *name; .....[ 310]: unsigned int (*irq_startup)(struct irq_data *data); .....[ 311]: void (*irq_shutdown)(struct irq_data *data); .....[ 312]: void (*irq_enable)(struct irq_data *data); .....[ 313]: void (*irq_disable)(struct irq_data *data); .....[ 315]: void (*irq_ack)(struct irq_data *data); .....[ 316]: void (*irq_mask)(struct irq_data *data); .....[ 317]: void (*irq_mask_ack)(struct irq_data *data); .....[ 318]: void (*irq_unmask)(struct irq_data *data); .....[ 319]: void (*irq_eoi)(struct irq_data *data); .....[ 321]: int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force); .....[ 322]: int (*irq_retrigger)(struct irq_data *data); .....[ 323]: int (*irq_set_type)(struct irq_data *data, unsigned int flow_type); .....[ 324]: int (*irq_set_wake)(struct irq_data *data, unsigned int on); .....[ 326]: void (*irq_bus_lock)(struct irq_data *data); .....[ 327]: void (*irq_bus_sync_unlock)(struct irq_data *data); .....[ 329]: void (*irq_cpu_online)(struct irq_data *data); .....[ 330]: void (*irq_cpu_offline)(struct irq_data *data); .....[ 332]: void (*irq_suspend)(struct irq_data *data); .....[ 333]: void (*irq_resume)(struct irq_data *data); .....[ 334]: void (*irq_pm_shutdown)(struct irq_data *data); .....[ 336]: void (*irq_calc_mask)(struct irq_data *data); .....[ 338]: void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); .....[ 340]: unsigned long flags; .....[ 341]: }; .....[ 353]: enum { .....[ 354]: IRQCHIP_SET_TYPE_MASKED = (1 << 0), .....[ 355]: IRQCHIP_EOI_IF_HANDLED = (1 << 1), .....[ 356]: IRQCHIP_MASK_ON_SUSPEND = (1 << 2), .....[ 357]: IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), .....[ 358]: IRQCHIP_SKIP_SET_WAKE = (1 << 4), .....[ 359]: IRQCHIP_ONESHOT_SAFE = (1 << 5), .....[ 360]: }; ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqdesc.h ......[ 11]: struct irq_affinity_notify; ......[ 12]: struct proc_dir_entry; ......[ 13]: struct module; ......[ 14]: struct irq_desc; ......[ 40]: struct irq_desc { ......[ 41]: struct irq_data irq_data; ......[ 42]: unsigned int *kstat_irqs; ......[ 43]: irq_flow_handler_t handle_irq; ......[ 47]: struct irqaction *action; ......[ 48]: unsigned int status_use_accessors; ......[ 49]: unsigned int core_internal_state__do_not_mess_with_it; ......[ 50]: unsigned int depth; ......[ 51]: unsigned int wake_depth; ......[ 52]: unsigned int irq_count; ......[ 53]: unsigned long last_unhandled; ......[ 54]: unsigned int irqs_unhandled; ......[ 55]: raw_spinlock_t lock; ......[ 56]: struct cpumask *percpu_enabled; ......[ 58]: const struct cpumask *affinity_hint; ......[ 59]: struct irq_affinity_notify *affinity_notify; ......[ 61]: cpumask_var_t pending_mask; ......[ 64]: unsigned long threads_oneshot; ......[ 65]: atomic_t threads_active; ......[ 66]: wait_queue_head_t wait_for_threads; ......[ 68]: struct proc_dir_entry *dir; ......[ 70]: int parent_irq; ......[ 71]: struct module *owner; ......[ 72]: const char *name; ......[ 73]: } __attribute__((__aligned__(1 << (6)))); ......[ 79]: static inline __attribute__((no_instrument_function)) struct irq_data *irq_desc_get_irq_data(struct irq_desc \ ...... *desc) ......[ 80]: { ......[ 81]: return &desc->irq_data; ......[ 82]: } ......[ 84]: static inline __attribute__((no_instrument_function)) struct irq_chip *irq_desc_get_chip(struct irq_desc *desc\ ...... ) ......[ 85]: { ......[ 86]: return desc->irq_data.chip; ......[ 87]: } ......[ 89]: static inline __attribute__((no_instrument_function)) void *irq_desc_get_chip_data(struct irq_desc *desc) ......[ 90]: { ......[ 91]: return desc->irq_data.chip_data; ......[ 92]: } ......[ 94]: static inline __attribute__((no_instrument_function)) void *irq_desc_get_handler_data(struct irq_desc *desc\ ...... ) ......[ 95]: { ......[ 96]: return desc->irq_data.handler_data; ......[ 97]: } ......[ 99]: static inline __attribute__((no_instrument_function)) struct msi_desc *irq_desc_get_msi_desc(struct irq_desc \ ...... *desc) ......[ 100]: { ......[ 101]: return desc->irq_data.msi_desc; ......[ 102]: } ......[ 110]: static inline __attribute__((no_instrument_function)) void generic_handle_irq_desc(unsigned int irq, struct \ ...... irq_desc *desc) ......[ 111]: { ......[ 112]: desc->handle_irq(irq, desc); ......[ 113]: } ......[ 115]: int generic_handle_irq(unsigned int irq); ......[ 118]: static inline __attribute__((no_instrument_function)) int irq_has_action(unsigned int irq) ......[ 119]: { ......[ 120]: struct irq_desc *desc = irq_to_desc(irq); ......[ 121]: return desc->action != ((void *)0); ......[ 122]: } ......[ 125]: static inline __attribute__((no_instrument_function)) void __irq_set_handler_locked(unsigned int irq, ......[ 126]: irq_flow_handler_t handler) ......[ 127]: { ......[ 128]: struct irq_desc *desc; ......[ 130]: desc = irq_to_desc(irq); ......[ 131]: desc->handle_irq = handler; ......[ 132]: } ......[ 135]: static inline __attribute__((no_instrument_function)) void ......[ 136]: __irq_set_chip_handler_name_locked(unsigned int irq, struct irq_chip *chip, ......[ 137]: irq_flow_handler_t handler, const char *name) ......[ 138]: { ......[ 139]: struct irq_desc *desc; ......[ 141]: desc = irq_to_desc(irq); ......[ 142]: irq_desc_get_irq_data(desc)->chip = chip; ......[ 143]: desc->handle_irq = handler; ......[ 144]: desc->name = name; ......[ 145]: } ......[ 147]: static inline __attribute__((no_instrument_function)) int irq_balancing_disabled(unsigned int irq) ......[ 148]: { ......[ 149]: struct irq_desc *desc; ......[ 151]: desc = irq_to_desc(irq); ......[ 152]: return desc->status_use_accessors & (IRQ_PER_CPU | IRQ_NO_BALANCING); ......[ 153]: } ......[ 155]: static inline __attribute__((no_instrument_function)) void ......[ 156]: irq_set_lockdep_class(unsigned int irq, struct lock_class_key *class) ......[ 157]: { ......[ 158]: struct irq_desc *desc = irq_to_desc(irq); ......[ 160]: if (desc) ......[ 161]: do { (void)(class); } while (0); ......[ 162]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irqdesc.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/profile.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/profile.h .......[ 16]: struct proc_dir_entry; .......[ 17]: struct pt_regs; .......[ 18]: struct notifier_block; .......[ 21]: void create_prof_cpu_mask(void); .......[ 22]: int create_proc_profile(void); .......[ 34]: enum profile_type { .......[ 35]: PROFILE_TASK_EXIT, .......[ 36]: PROFILE_MUNMAP .......[ 37]: }; .......[ 41]: extern int prof_on __attribute__((__section__(".data..read_mostly"))); .......[ 44]: int profile_init(void); .......[ 45]: int profile_setup(char *str); .......[ 46]: void profile_tick(int type); .......[ 51]: void profile_hits(int type, void *ip, unsigned int nr_hits); .......[ 56]: static inline __attribute__((no_instrument_function)) void profile_hit(int type, void *ip) .......[ 57]: { .......[ 61]: if (__builtin_expect(!!(prof_on == type), 0)) .......[ 62]: profile_hits(type, ip, 1); .......[ 63]: } .......[ 65]: struct task_struct; .......[ 66]: struct mm_struct; .......[ 69]: void profile_task_exit(struct task_struct * task); .......[ 74]: int profile_handoff_task(struct task_struct * task); .......[ 77]: void profile_munmap(unsigned long addr); .......[ 79]: int task_handoff_register(struct notifier_block * n); .......[ 80]: int task_handoff_unregister(struct notifier_block * n); .......[ 82]: int profile_event_register(enum profile_type, struct notifier_block * n); .......[ 83]: int profile_event_unregister(enum profile_type, struct notifier_block * n); .......[ 85]: struct pt_regs; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/profile.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sections.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sections.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/sections.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/sections.h ........[ 26]: extern char _text[], _stext[], _etext[]; ........[ 27]: extern char _data[], _sdata[], _edata[]; ........[ 28]: extern char __bss_start[], __bss_stop[]; ........[ 29]: extern char __init_begin[], __init_end[]; ........[ 30]: extern char _sinittext[], _einittext[]; ........[ 31]: extern char _end[]; ........[ 32]: extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[]; ........[ 33]: extern char __kprobes_text_start[], __kprobes_text_end[]; ........[ 34]: extern char __entry_text_start[], __entry_text_end[]; ........[ 35]: extern char __start_rodata[], __end_rodata[]; ........[ 38]: extern char __ctors_start[], __ctors_end[]; ........[ 49]: static inline __attribute__((no_instrument_function)) int arch_is_kernel_text(unsigned long addr) ........[ 50]: { ........[ 51]: return 0; ........[ 52]: } ........[ 56]: static inline __attribute__((no_instrument_function)) int arch_is_kernel_data(unsigned long addr) ........[ 57]: { ........[ 58]: return 0; ........[ 59]: } ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/sections.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sections.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smap.h .........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smap.h .........[ 61]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void clac(void) .........[ 62]: { .........[ 64]: asm volatile ("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" : : : "memory"); .........[ 65]: } .........[ 67]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void stac(void) .........[ 68]: { .........[ 70]: asm volatile ("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" : : : "memory"); .........[ 71]: } .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/smap.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h ........[ 97]: struct exception_table_entry { ........[ 98]: int insn, fixup; ........[ 99]: }; ........[ 104]: extern int fixup_exception(struct pt_regs *regs); ........[ 105]: extern int early_fixup_exception(unsigned long *ip); ........[ 122]: extern int __get_user_1(void); ........[ 123]: extern int __get_user_2(void); ........[ 124]: extern int __get_user_4(void); ........[ 125]: extern int __get_user_8(void); ........[ 126]: extern int __get_user_bad(void); ........[ 219]: extern void __put_user_bad(void); ........[ 225]: extern void __put_user_1(void); ........[ 226]: extern void __put_user_2(void); ........[ 227]: extern void __put_user_4(void); ........[ 228]: extern void __put_user_8(void); ........[ 406]: struct __large_struct { unsigned long buf[100]; }; ........[ 517]: extern unsigned long ........[ 518]: copy_from_user_nmi(void *to, const void *from, unsigned long n); ........[ 519]: extern long ........[ 520]: strncpy_from_user(char *dst, const char *src, long count); ........[ 522]: extern long strlen_user(const char *str); ........[ 523]: extern long strnlen_user(const char *str, long n); ........[ 525]: unsigned long clear_user(void *mem, unsigned long len); ........[ 526]: unsigned long __clear_user(void *mem, unsigned long len); .......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h ........# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess_64.h .........[ 19]: unsigned long .........[ 20]: copy_user_enhanced_fast_string(void *to, const void *from, unsigned len); .........[ 21]: unsigned long .........[ 22]: copy_user_generic_string(void *to, const void *from, unsigned len); .........[ 23]: unsigned long .........[ 24]: copy_user_generic_unrolled(void *to, const void *from, unsigned len); .........[ 26]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) unsigned long .........[ 27]: copy_user_generic(void *to, const void *from, unsigned len) .........[ 28]: { .........[ 29]: unsigned ret; .........[ 44]: asm volatile ("661:\n\t" "call %P[old]" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(3*32+16)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" " .long 661b - .\n" " .long " "663""2""f - .\n" " .word " "(9*32+ 9)" "\n" " .byte " "662b-661b" "\n" \ ......... " .byte " "664""2""f-""663""2""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" \ ......... "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" " .byte 0xff + (" "664""2""f-""663""2""f" ") - (" "662b-661b" \ ......... ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" "call %P[new1]" "\n" \ ......... "664""1" ":\n\t" "663""2"":\n\t" "call %P[new2]" "\n" "664""2" ":\n\t" ".popsection" : "=a"( ret) : [old] "i" (copy_user_generic_unrolled\ ......... ), [new1] "i" (copy_user_generic_string), [new2] "i" (copy_user_enhanced_fast_string),"1"( to)); .........[ 45]: return ret; .........[ 46]: } .........[ 48]: unsigned long .........[ 49]: copy_in_user(void *to, const void *from, unsigned len); .........[ 51]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) .........[ 52]: int __copy_from_user_nocheck(void *dst, const void *src, unsigned size) .........[ 53]: { .........[ 54]: int ret = 0; .........[ 56]: if (!__builtin_constant_p(size)) .........[ 57]: return copy_user_generic(dst, ( void *)src, size); .........[ 58]: switch (size) { .........[ 59]: case 1:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""b"" %2,%""b""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""b"" %""b""1,%""b""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=q"(*(u8 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u8 *)src))), "i" (1), "0" (ret)); .........[ 61]: return ret; .........[ 62]: case 2:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %2,%""w""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""w"" %""w""1,%""w""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u16 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u16 *)src))), "i" (2), "0" (ret)); .........[ 64]: return ret; .........[ 65]: case 4:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""l"" %2,%""k""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""l"" %""k""1,%""k""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u32 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u32 *)src))), "i" (4), "0" (ret)); .........[ 67]: return ret; .........[ 68]: case 8:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %2,%""""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""q"" %""""1,%""""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u64 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u64 *)src))), "i" (8), "0" (ret)); .........[ 70]: return ret; .........[ 71]: case 10: .........[ 73]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %2,%""""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""q"" %""""1,%""""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u64 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u64 *)src))), "i" (10), "0" (ret)); .........[ 74]: if (__builtin_expect(!!(ret), 0)) .........[ 75]: return ret; .........[ 78]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %2,%""w""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""w"" %""w""1,%""w""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u16 *)(8 +( char *)dst)) \ ......... : "m" ((*(struct __large_struct *)((u16 *)(8 +( char *)src)))), "i" (2), "0" (ret)); .........[ 79]: return ret; .........[ 80]: case 16: .........[ 82]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %2,%""""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""q"" %""""1,%""""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u64 *)dst) : "m" ((*(struct \ ......... __large_struct *)((u64 *)src))), "i" (16), "0" (ret)); .........[ 83]: if (__builtin_expect(!!(ret), 0)) .........[ 84]: return ret; .........[ 87]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %2,%""""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""q"" %""""1,%""""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(*(u64 *)(8 +( char *)dst)) \ ......... : "m" ((*(struct __large_struct *)((u64 *)(8 +( char *)src)))), "i" (8), "0" (ret)); .........[ 88]: return ret; .........[ 89]: default: .........[ 90]: return copy_user_generic(dst, ( void *)src, size); .........[ 91]: } .........[ 92]: } .........[ 94]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) .........[ 95]: int __copy_from_user(void *dst, const void *src, unsigned size) .........[ 96]: { .........[ 97]: might_fault(); .........[ 98]: return __copy_from_user_nocheck(dst, src, size); .........[ 99]: } .........[ 101]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) .........[ 102]: int __copy_to_user_nocheck(void *dst, const void *src, unsigned size) .........[ 103]: { .........[ 104]: int ret = 0; .........[ 106]: if (!__builtin_constant_p(size)) .........[ 107]: return copy_user_generic(( void *)dst, src, size); .........[ 108]: switch (size) { .........[ 109]: case 1:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""b"" %""b""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "iq"(*(u8 *)src), "m" ((*(struct __large_struct *)((u8 *)dst))), "i" \ ......... (1), "0" (ret)); .........[ 111]: return ret; .........[ 112]: case 2:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %""w""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "ir"(*(u16 *)src), "m" ((*(struct __large_struct *)((u16 *)dst))), \ ......... "i" (2), "0" (ret)); .........[ 114]: return ret; .........[ 115]: case 4:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""l"" %""k""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "ir"(*(u32 *)src), "m" ((*(struct __large_struct *)((u32 *)dst))), \ ......... "i" (4), "0" (ret)); .........[ 117]: return ret; .........[ 118]: case 8:asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %""""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "er"(*(u64 *)src), "m" ((*(struct __large_struct *)((u64 *)dst))), \ ......... "i" (8), "0" (ret)); .........[ 120]: return ret; .........[ 121]: case 10: .........[ 123]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %""""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "er"(*(u64 *)src), "m" ((*(struct __large_struct *)((u64 *)dst))), \ ......... "i" (10), "0" (ret)); .........[ 124]: if (__builtin_expect(!!(ret), 0)) .........[ 125]: return ret; .........[ 126]: asm("":::"memory"); .........[ 128]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %""w""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "ir"(4[(u16 *)src]), "m" ((*(struct __large_struct *)(4 +( u16 *)dst\ ......... ))), "i" (2), "0" (ret)); .........[ 129]: return ret; .........[ 130]: case 16: .........[ 132]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %""""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "er"(*(u64 *)src), "m" ((*(struct __large_struct *)((u64 *)dst))), \ ......... "i" (16), "0" (ret)); .........[ 133]: if (__builtin_expect(!!(ret), 0)) .........[ 134]: return ret; .........[ 135]: asm("":::"memory"); .........[ 137]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %""""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "er"(1[(u64 *)src]), "m" ((*(struct __large_struct *)(1 +( u64 *)dst\ ......... ))), "i" (8), "0" (ret)); .........[ 138]: return ret; .........[ 139]: default: .........[ 140]: return copy_user_generic(( void *)dst, src, size); .........[ 141]: } .........[ 142]: } .........[ 144]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) .........[ 145]: int __copy_to_user(void *dst, const void *src, unsigned size) .........[ 146]: { .........[ 147]: might_fault(); .........[ 148]: return __copy_to_user_nocheck(dst, src, size); .........[ 149]: } .........[ 151]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) .........[ 152]: int __copy_in_user(void *dst, const void *src, unsigned size) .........[ 153]: { .........[ 154]: int ret = 0; .........[ 156]: might_fault(); .........[ 157]: if (!__builtin_constant_p(size)) .........[ 158]: return copy_user_generic(( void *)dst, .........[ 159]: ( void *)src, size); .........[ 160]: switch (size) { .........[ 161]: case 1: { .........[ 162]: u8 tmp; .........[ 164]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""b"" %2,%""b""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""b"" %""b""1,%""b""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=q"(tmp) : "m" ((*(struct __large_struct \ ......... *)((u8 *)src))), "i" (1), "0" (ret)); .........[ 165]: if (__builtin_expect(!!(!ret), 1)) .........[ 167]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""b"" %""b""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "iq"(tmp), "m" ((*(struct __large_struct *)((u8 *)dst))), "i" (1), "0" \ ......... (ret)); .........[ 168]: return ret; .........[ 169]: } .........[ 170]: case 2: { .........[ 171]: u16 tmp; .........[ 173]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %2,%""w""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""w"" %""w""1,%""w""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(tmp) : "m" ((*(struct __large_struct \ ......... *)((u16 *)src))), "i" (2), "0" (ret)); .........[ 174]: if (__builtin_expect(!!(!ret), 1)) .........[ 176]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""w"" %""w""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "ir"(tmp), "m" ((*(struct __large_struct *)((u16 *)dst))), "i" (2), \ ......... "0" (ret)); .........[ 177]: return ret; .........[ 178]: } .........[ 180]: case 4: { .........[ 181]: u32 tmp; .........[ 183]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""l"" %2,%""k""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""l"" %""k""1,%""k""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(tmp) : "m" ((*(struct __large_struct \ ......... *)((u32 *)src))), "i" (4), "0" (ret)); .........[ 184]: if (__builtin_expect(!!(!ret), 1)) .........[ 186]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""l"" %""k""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "ir"(tmp), "m" ((*(struct __large_struct *)((u32 *)dst))), "i" (4), \ ......... "0" (ret)); .........[ 187]: return ret; .........[ 188]: } .........[ 189]: case 8: { .........[ 190]: u64 tmp; .........[ 192]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %2,%""""1\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " xor""q"" %""""1,%""""1\n" " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" \ ......... " .long (" "1b" ") - .\n" " .long (" "3b" ") - .\n" " .popsection\n" : "=r" (ret), "=r"(tmp) : "m" ((*(struct __large_struct \ ......... *)((u64 *)src))), "i" (8), "0" (ret)); .........[ 193]: if (__builtin_expect(!!(!ret), 1)) .........[ 195]: asm volatile("661:\n\t" ".byte " "0x66" "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" \ ......... " .long " "663""1""f - .\n" " .word " "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663"\ ......... "1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" " .byte 0xff + (" "664""1""f-""663"\ ......... "1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" "663""1"":\n\t" \ ......... ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" "1: mov""q"" %""""1,%2\n" "2: " "661:\n\t" ".byte " "0x66" \ ......... "\n" "\n662:\n" ".pushsection .altinstructions,\"a\"\n" " .long 661b - .\n" " .long " "663""1""f - .\n" " .word " \ ......... "(9*32+20)" "\n" " .byte " "662b-661b" "\n" " .byte " "664""1""f-""663""1""f" "\n" ".popsection\n" ".pushsection .discard,\"aw\",@progbits\n" \ ......... " .byte 0xff + (" "664""1""f-""663""1""f" ") - (" "662b-661b" ")\n" ".popsection\n" ".pushsection .altinstr_replacement, \"ax\"\n" \ ......... "663""1"":\n\t" ".byte 0x0f" "\n" "664""1" ":\n\t" ".popsection" "\n" ".section .fixup,\"ax\"\n" "3: mov %3,%0\n" \ ......... " jmp 2b\n" ".previous\n" " .pushsection \"__ex_table\",\"a\"\n" " .balign 8\n" " .long (" "1b" ") - .\n" " .long (" \ ......... "3b" ") - .\n" " .popsection\n" : "=r"(ret) : "er"(tmp), "m" ((*(struct __large_struct *)((u64 *)dst))), "i" (8), \ ......... "0" (ret)); .........[ 196]: return ret; .........[ 197]: } .........[ 198]: default: .........[ 199]: return copy_user_generic(( void *)dst, .........[ 200]: ( void *)src, size); .........[ 201]: } .........[ 202]: } .........[ 204]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int .........[ 205]: __copy_from_user_inatomic(void *dst, const void *src, unsigned size) .........[ 206]: { .........[ 207]: return __copy_from_user_nocheck(dst, ( const void *)src, size); .........[ 208]: } .........[ 210]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int .........[ 211]: __copy_to_user_inatomic(void *dst, const void *src, unsigned size) .........[ 212]: { .........[ 213]: return __copy_to_user_nocheck(( void *)dst, src, size); .........[ 214]: } .........[ 216]: extern long __copy_user_nocache(void *dst, const void *src, .........[ 217]: unsigned size, int zerorest); .........[ 219]: static inline __attribute__((no_instrument_function)) int .........[ 220]: __copy_from_user_nocache(void *dst, const void *src, unsigned size) .........[ 221]: { .........[ 222]: might_fault(); .........[ 223]: return __copy_user_nocache(dst, src, size, 1); .........[ 224]: } .........[ 226]: static inline __attribute__((no_instrument_function)) int .........[ 227]: __copy_from_user_inatomic_nocache(void *dst, const void *src, .........[ 228]: unsigned size) .........[ 229]: { .........[ 230]: return __copy_user_nocache(dst, src, size, 0); .........[ 231]: } .........[ 233]: unsigned long .........[ 234]: copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); .........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess_64.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h ........[ 545]: unsigned long _copy_from_user(void *to, const void *from, ........[ 546]: unsigned n); ........[ 547]: unsigned long _copy_to_user(void *to, const void *from, ........[ 548]: unsigned n); ........[ 556]: extern void ........[ 557]: copy_from_user_overflow(void); ........[ 558]: extern void ........[ 559]: copy_to_user_overflow(void) __asm__("copy_from_user_overflow"); ........[ 577]: static inline __attribute__((no_instrument_function)) void ........[ 578]: __copy_from_user_overflow(int size, unsigned long count) ........[ 579]: { ........[ 580]: ({ int __ret_warn_on = !!(1); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_fmt(__FILE__, __LINE__\ ........ , "Buffer overflow detected (%d < %lu)!\n"); __builtin_expect(!!(__ret_warn_on), 0); }); ........[ 581]: } ........[ 587]: static inline __attribute__((no_instrument_function)) unsigned long ........[ 588]: copy_from_user(void *to, const void *from, unsigned long n) ........[ 589]: { ........[ 590]: int sz = -1; ........[ 592]: might_fault(); ........[ 612]: if (__builtin_expect(!!(sz < 0 || sz >= n), 1)) ........[ 613]: n = _copy_from_user(to, from, n); ........[ 614]: else if(__builtin_constant_p(n)) ........[ 615]: copy_from_user_overflow(); ........[ 616]: else ........[ 617]: __copy_from_user_overflow(sz, n); ........[ 619]: return n; ........[ 620]: } ........[ 622]: static inline __attribute__((no_instrument_function)) unsigned long ........[ 623]: copy_to_user(void *to, const void *from, unsigned long n) ........[ 624]: { ........[ 625]: int sz = -1; ........[ 627]: might_fault(); ........[ 630]: if (__builtin_expect(!!(sz < 0 || sz >= n), 1)) ........[ 631]: n = _copy_to_user(to, from, n); ........[ 632]: else if(__builtin_constant_p(n)) ........[ 633]: copy_to_user_overflow(); ........[ 634]: else ........[ 635]: __copy_from_user_overflow(sz, n); ........[ 637]: return n; ........[ 638]: } ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/uaccess.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sections.h .......[ 7]: extern char __brk_base[], __brk_limit[]; .......[ 8]: extern struct exception_table_entry __stop___ex_table[]; .......[ 11]: extern char __end_rodata_hpage_align[]; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sections.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h ......[ 29]: extern void apic_timer_interrupt(void); ......[ 30]: extern void x86_platform_ipi(void); ......[ 31]: extern void kvm_posted_intr_ipi(void); ......[ 32]: extern void error_interrupt(void); ......[ 33]: extern void irq_work_interrupt(void); ......[ 35]: extern void spurious_interrupt(void); ......[ 36]: extern void thermal_interrupt(void); ......[ 37]: extern void reschedule_interrupt(void); ......[ 39]: extern void invalidate_interrupt(void); ......[ 40]: extern void invalidate_interrupt0(void); ......[ 41]: extern void invalidate_interrupt1(void); ......[ 42]: extern void invalidate_interrupt2(void); ......[ 43]: extern void invalidate_interrupt3(void); ......[ 44]: extern void invalidate_interrupt4(void); ......[ 45]: extern void invalidate_interrupt5(void); ......[ 46]: extern void invalidate_interrupt6(void); ......[ 47]: extern void invalidate_interrupt7(void); ......[ 48]: extern void invalidate_interrupt8(void); ......[ 49]: extern void invalidate_interrupt9(void); ......[ 50]: extern void invalidate_interrupt10(void); ......[ 51]: extern void invalidate_interrupt11(void); ......[ 52]: extern void invalidate_interrupt12(void); ......[ 53]: extern void invalidate_interrupt13(void); ......[ 54]: extern void invalidate_interrupt14(void); ......[ 55]: extern void invalidate_interrupt15(void); ......[ 56]: extern void invalidate_interrupt16(void); ......[ 57]: extern void invalidate_interrupt17(void); ......[ 58]: extern void invalidate_interrupt18(void); ......[ 59]: extern void invalidate_interrupt19(void); ......[ 60]: extern void invalidate_interrupt20(void); ......[ 61]: extern void invalidate_interrupt21(void); ......[ 62]: extern void invalidate_interrupt22(void); ......[ 63]: extern void invalidate_interrupt23(void); ......[ 64]: extern void invalidate_interrupt24(void); ......[ 65]: extern void invalidate_interrupt25(void); ......[ 66]: extern void invalidate_interrupt26(void); ......[ 67]: extern void invalidate_interrupt27(void); ......[ 68]: extern void invalidate_interrupt28(void); ......[ 69]: extern void invalidate_interrupt29(void); ......[ 70]: extern void invalidate_interrupt30(void); ......[ 71]: extern void invalidate_interrupt31(void); ......[ 73]: extern void irq_move_cleanup_interrupt(void); ......[ 74]: extern void reboot_interrupt(void); ......[ 75]: extern void threshold_interrupt(void); ......[ 77]: extern void call_function_interrupt(void); ......[ 78]: extern void call_function_single_interrupt(void); ......[ 82]: extern void trace_apic_timer_interrupt(void); ......[ 83]: extern void trace_x86_platform_ipi(void); ......[ 84]: extern void trace_error_interrupt(void); ......[ 85]: extern void trace_irq_work_interrupt(void); ......[ 86]: extern void trace_spurious_interrupt(void); ......[ 87]: extern void trace_thermal_interrupt(void); ......[ 88]: extern void trace_reschedule_interrupt(void); ......[ 89]: extern void trace_threshold_interrupt(void); ......[ 90]: extern void trace_call_function_interrupt(void); ......[ 91]: extern void trace_call_function_single_interrupt(void); ......[ 99]: extern unsigned long io_apic_irqs; ......[ 101]: extern void init_VISWS_APIC_irqs(void); ......[ 102]: extern void setup_IO_APIC(void); ......[ 103]: extern void disable_IO_APIC(void); ......[ 105]: struct io_apic_irq_attr { ......[ 106]: int ioapic; ......[ 107]: int ioapic_pin; ......[ 108]: int trigger; ......[ 109]: int polarity; ......[ 110]: }; ......[ 112]: static inline __attribute__((no_instrument_function)) void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr\ ...... , ......[ 113]: int ioapic, int ioapic_pin, ......[ 114]: int trigger, int polarity) ......[ 115]: { ......[ 116]: irq_attr->ioapic = ioapic; ......[ 117]: irq_attr->ioapic_pin = ioapic_pin; ......[ 118]: irq_attr->trigger = trigger; ......[ 119]: irq_attr->polarity = polarity; ......[ 120]: } ......[ 123]: struct irq_2_iommu { ......[ 124]: struct intel_iommu *iommu; ......[ 125]: u16 irte_index; ......[ 126]: u16 sub_handle; ......[ 127]: u8 irte_mask; ......[ 128]: }; ......[ 131]: struct irq_2_irte { ......[ 132]: u16 devid; ......[ 133]: u16 index; ......[ 134]: }; ......[ 141]: struct irq_cfg { ......[ 142]: struct irq_pin_list *irq_2_pin; ......[ 143]: cpumask_var_t domain; ......[ 144]: cpumask_var_t old_domain; ......[ 145]: u8 vector; ......[ 146]: u8 move_in_progress : 1; ......[ 148]: u8 remapped : 1; ......[ 149]: union { ......[ 150]: struct irq_2_iommu irq_2_iommu; ......[ 151]: struct irq_2_irte irq_2_irte; ......[ 152]: }; ......[ 154]: }; ......[ 156]: extern int assign_irq_vector(int, struct irq_cfg *, const struct cpumask *); ......[ 157]: extern void send_cleanup_vector(struct irq_cfg *); ......[ 159]: struct irq_data; ......[ 160]: int __ioapic_set_affinity(struct irq_data *, const struct cpumask *, ......[ 161]: unsigned int *dest_id); ......[ 162]: extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin, struct io_apic_irq_attr *irq_attr); ......[ 163]: extern void setup_ioapic_dest(void); ......[ 165]: extern void enable_IO_APIC(void); ......[ 168]: extern atomic_t irq_err_count; ......[ 169]: extern atomic_t irq_mis_count; ......[ 172]: extern void eisa_set_level_irq(unsigned int irq); ......[ 175]: extern void smp_apic_timer_interrupt(struct pt_regs *); ......[ 176]: extern void smp_spurious_interrupt(struct pt_regs *); ......[ 177]: extern void smp_x86_platform_ipi(struct pt_regs *); ......[ 178]: extern void smp_error_interrupt(struct pt_regs *); ......[ 180]: extern void smp_irq_move_cleanup_interrupt(void); ......[ 183]: extern void smp_reschedule_interrupt(struct pt_regs *); ......[ 184]: extern void smp_call_function_interrupt(struct pt_regs *); ......[ 185]: extern void smp_call_function_single_interrupt(struct pt_regs *); ......[ 186]: extern void smp_invalidate_interrupt(struct pt_regs *); ......[ 189]: extern void (*__attribute__ ((__section__(".init.rodata"))) interrupt[256-0x20])(void); ......[ 194]: typedef int vector_irq_t[256]; ......[ 195]: extern __attribute__((section(".data..percpu" ""))) __typeof__(vector_irq_t) vector_irq; ......[ 196]: extern void setup_vector_irq(int cpu); ......[ 199]: extern void lock_vector_lock(void); ......[ 200]: extern void unlock_vector_lock(void); ......[ 201]: extern void __setup_vector_irq(int cpu); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h .....[ 380]: struct irqaction; .....[ 381]: extern int setup_irq(unsigned int irq, struct irqaction *new); .....[ 382]: extern void remove_irq(unsigned int irq, struct irqaction *act); .....[ 383]: extern int setup_percpu_irq(unsigned int irq, struct irqaction *new); .....[ 384]: extern void remove_percpu_irq(unsigned int irq, struct irqaction *act); .....[ 386]: extern void irq_cpu_online(void); .....[ 387]: extern void irq_cpu_offline(void); .....[ 388]: extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); .....[ 391]: void irq_move_irq(struct irq_data *data); .....[ 392]: void irq_move_masked_irq(struct irq_data *data); .....[ 398]: extern int no_irq_affinity; .....[ 403]: static inline __attribute__((no_instrument_function)) int irq_set_parent(int irq, int parent_irq) .....[ 404]: { .....[ 405]: return 0; .....[ 406]: } .....[ 413]: extern void handle_level_irq(unsigned int irq, struct irq_desc *desc); .....[ 414]: extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); .....[ 415]: extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc); .....[ 416]: extern void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc); .....[ 417]: extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc); .....[ 418]: extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc); .....[ 419]: extern void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc); .....[ 420]: extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); .....[ 421]: extern void handle_nested_irq(unsigned int irq); .....[ 424]: extern void note_interrupt(unsigned int irq, struct irq_desc *desc, .....[ 425]: irqreturn_t action_ret); .....[ 429]: extern int noirqdebug_setup(char *str); .....[ 432]: extern int can_request_irq(unsigned int irq, unsigned long irqflags); .....[ 435]: extern struct irq_chip no_irq_chip; .....[ 436]: extern struct irq_chip dummy_irq_chip; .....[ 438]: extern void .....[ 439]: irq_set_chip_and_handler_name(unsigned int irq, struct irq_chip *chip, .....[ 440]: irq_flow_handler_t handle, const char *name); .....[ 442]: static inline __attribute__((no_instrument_function)) void irq_set_chip_and_handler(unsigned int irq, struct \ ..... irq_chip *chip, .....[ 443]: irq_flow_handler_t handle) .....[ 444]: { .....[ 445]: irq_set_chip_and_handler_name(irq, chip, handle, ((void *)0)); .....[ 446]: } .....[ 448]: extern int irq_set_percpu_devid(unsigned int irq); .....[ 450]: extern void .....[ 451]: __irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained, .....[ 452]: const char *name); .....[ 454]: static inline __attribute__((no_instrument_function)) void .....[ 455]: irq_set_handler(unsigned int irq, irq_flow_handler_t handle) .....[ 456]: { .....[ 457]: __irq_set_handler(irq, handle, 0, ((void *)0)); .....[ 458]: } .....[ 465]: static inline __attribute__((no_instrument_function)) void .....[ 466]: irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle) .....[ 467]: { .....[ 468]: __irq_set_handler(irq, handle, 1, ((void *)0)); .....[ 469]: } .....[ 471]: void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set); .....[ 473]: static inline __attribute__((no_instrument_function)) void irq_set_status_flags(unsigned int irq, unsigned long \ ..... set) .....[ 474]: { .....[ 475]: irq_modify_status(irq, 0, set); .....[ 476]: } .....[ 478]: static inline __attribute__((no_instrument_function)) void irq_clear_status_flags(unsigned int irq, unsigned \ ..... long clr) .....[ 479]: { .....[ 480]: irq_modify_status(irq, clr, 0); .....[ 481]: } .....[ 483]: static inline __attribute__((no_instrument_function)) void irq_set_noprobe(unsigned int irq) .....[ 484]: { .....[ 485]: irq_modify_status(irq, 0, IRQ_NOPROBE); .....[ 486]: } .....[ 488]: static inline __attribute__((no_instrument_function)) void irq_set_probe(unsigned int irq) .....[ 489]: { .....[ 490]: irq_modify_status(irq, IRQ_NOPROBE, 0); .....[ 491]: } .....[ 493]: static inline __attribute__((no_instrument_function)) void irq_set_nothread(unsigned int irq) .....[ 494]: { .....[ 495]: irq_modify_status(irq, 0, IRQ_NOTHREAD); .....[ 496]: } .....[ 498]: static inline __attribute__((no_instrument_function)) void irq_set_thread(unsigned int irq) .....[ 499]: { .....[ 500]: irq_modify_status(irq, IRQ_NOTHREAD, 0); .....[ 501]: } .....[ 503]: static inline __attribute__((no_instrument_function)) void irq_set_nested_thread(unsigned int irq, bool nest\ ..... ) .....[ 504]: { .....[ 505]: if (nest) .....[ 506]: irq_set_status_flags(irq, IRQ_NESTED_THREAD); .....[ 507]: else .....[ 508]: irq_clear_status_flags(irq, IRQ_NESTED_THREAD); .....[ 509]: } .....[ 511]: static inline __attribute__((no_instrument_function)) void irq_set_percpu_devid_flags(unsigned int irq) .....[ 512]: { .....[ 513]: irq_set_status_flags(irq, .....[ 514]: IRQ_NOAUTOEN | IRQ_PER_CPU | IRQ_NOTHREAD | .....[ 515]: IRQ_NOPROBE | IRQ_PER_CPU_DEVID); .....[ 516]: } .....[ 519]: extern unsigned int create_irq_nr(unsigned int irq_want, int node); .....[ 520]: extern unsigned int __create_irqs(unsigned int from, unsigned int count, .....[ 521]: int node); .....[ 522]: extern int create_irq(void); .....[ 523]: extern void destroy_irq(unsigned int irq); .....[ 524]: extern void destroy_irqs(unsigned int irq, unsigned int count); .....[ 530]: extern void dynamic_irq_cleanup(unsigned int irq); .....[ 531]: static inline __attribute__((no_instrument_function)) void dynamic_irq_init(unsigned int irq) .....[ 532]: { .....[ 533]: dynamic_irq_cleanup(irq); .....[ 534]: } .....[ 537]: extern int irq_set_chip(unsigned int irq, struct irq_chip *chip); .....[ 538]: extern int irq_set_handler_data(unsigned int irq, void *data); .....[ 539]: extern int irq_set_chip_data(unsigned int irq, void *data); .....[ 540]: extern int irq_set_irq_type(unsigned int irq, unsigned int type); .....[ 541]: extern int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry); .....[ 542]: extern int irq_set_msi_desc_off(unsigned int irq_base, unsigned int irq_offset, .....[ 543]: struct msi_desc *entry); .....[ 544]: extern struct irq_data *irq_get_irq_data(unsigned int irq); .....[ 546]: static inline __attribute__((no_instrument_function)) struct irq_chip *irq_get_chip(unsigned int irq) .....[ 547]: { .....[ 548]: struct irq_data *d = irq_get_irq_data(irq); .....[ 549]: return d ? d->chip : ((void *)0); .....[ 550]: } .....[ 552]: static inline __attribute__((no_instrument_function)) struct irq_chip *irq_data_get_irq_chip(struct irq_data \ ..... *d) .....[ 553]: { .....[ 554]: return d->chip; .....[ 555]: } .....[ 557]: static inline __attribute__((no_instrument_function)) void *irq_get_chip_data(unsigned int irq) .....[ 558]: { .....[ 559]: struct irq_data *d = irq_get_irq_data(irq); .....[ 560]: return d ? d->chip_data : ((void *)0); .....[ 561]: } .....[ 563]: static inline __attribute__((no_instrument_function)) void *irq_data_get_irq_chip_data(struct irq_data *d) .....[ 564]: { .....[ 565]: return d->chip_data; .....[ 566]: } .....[ 568]: static inline __attribute__((no_instrument_function)) void *irq_get_handler_data(unsigned int irq) .....[ 569]: { .....[ 570]: struct irq_data *d = irq_get_irq_data(irq); .....[ 571]: return d ? d->handler_data : ((void *)0); .....[ 572]: } .....[ 574]: static inline __attribute__((no_instrument_function)) void *irq_data_get_irq_handler_data(struct irq_data \ ..... *d) .....[ 575]: { .....[ 576]: return d->handler_data; .....[ 577]: } .....[ 579]: static inline __attribute__((no_instrument_function)) struct msi_desc *irq_get_msi_desc(unsigned int irq) .....[ 580]: { .....[ 581]: struct irq_data *d = irq_get_irq_data(irq); .....[ 582]: return d ? d->msi_desc : ((void *)0); .....[ 583]: } .....[ 585]: static inline __attribute__((no_instrument_function)) struct msi_desc *irq_data_get_msi(struct irq_data *d) .....[ 586]: { .....[ 587]: return d->msi_desc; .....[ 588]: } .....[ 590]: static inline __attribute__((no_instrument_function)) u32 irq_get_trigger_type(unsigned int irq) .....[ 591]: { .....[ 592]: struct irq_data *d = irq_get_irq_data(irq); .....[ 593]: return d ? irqd_get_trigger_type(d) : 0; .....[ 594]: } .....[ 596]: int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, .....[ 597]: struct module *owner); .....[ 615]: void irq_free_descs(unsigned int irq, unsigned int cnt); .....[ 616]: int irq_reserve_irqs(unsigned int from, unsigned int cnt); .....[ 618]: static inline __attribute__((no_instrument_function)) void irq_free_desc(unsigned int irq) .....[ 619]: { .....[ 620]: irq_free_descs(irq, 1); .....[ 621]: } .....[ 623]: static inline __attribute__((no_instrument_function)) int irq_reserve_irq(unsigned int irq) .....[ 624]: { .....[ 625]: return irq_reserve_irqs(irq, 1); .....[ 626]: } .....[ 645]: struct irq_chip_regs { .....[ 646]: unsigned long enable; .....[ 647]: unsigned long disable; .....[ 648]: unsigned long mask; .....[ 649]: unsigned long ack; .....[ 650]: unsigned long eoi; .....[ 651]: unsigned long type; .....[ 652]: unsigned long polarity; .....[ 653]: }; .....[ 668]: struct irq_chip_type { .....[ 669]: struct irq_chip chip; .....[ 670]: struct irq_chip_regs regs; .....[ 671]: irq_flow_handler_t handler; .....[ 672]: u32 type; .....[ 673]: u32 mask_cache_priv; .....[ 674]: u32 *mask_cache; .....[ 675]: }; .....[ 702]: struct irq_chip_generic { .....[ 703]: raw_spinlock_t lock; .....[ 704]: void *reg_base; .....[ 705]: unsigned int irq_base; .....[ 706]: unsigned int irq_cnt; .....[ 707]: u32 mask_cache; .....[ 708]: u32 type_cache; .....[ 709]: u32 polarity_cache; .....[ 710]: u32 wake_enabled; .....[ 711]: u32 wake_active; .....[ 712]: unsigned int num_ct; .....[ 713]: void *private; .....[ 714]: unsigned long installed; .....[ 715]: unsigned long unused; .....[ 716]: struct irq_domain *domain; .....[ 717]: struct list_head list; .....[ 718]: struct irq_chip_type chip_types[0]; .....[ 719]: }; .....[ 730]: enum irq_gc_flags { .....[ 731]: IRQ_GC_INIT_MASK_CACHE = 1 << 0, .....[ 732]: IRQ_GC_INIT_NESTED_LOCK = 1 << 1, .....[ 733]: IRQ_GC_MASK_CACHE_PER_TYPE = 1 << 2, .....[ 734]: IRQ_GC_NO_MASK = 1 << 3, .....[ 735]: }; .....[ 746]: struct irq_domain_chip_generic { .....[ 747]: unsigned int irqs_per_chip; .....[ 748]: unsigned int num_chips; .....[ 749]: unsigned int irq_flags_to_clear; .....[ 750]: unsigned int irq_flags_to_set; .....[ 751]: enum irq_gc_flags gc_flags; .....[ 752]: struct irq_chip_generic *gc[0]; .....[ 753]: }; .....[ 756]: void irq_gc_noop(struct irq_data *d); .....[ 757]: void irq_gc_mask_disable_reg(struct irq_data *d); .....[ 758]: void irq_gc_mask_set_bit(struct irq_data *d); .....[ 759]: void irq_gc_mask_clr_bit(struct irq_data *d); .....[ 760]: void irq_gc_unmask_enable_reg(struct irq_data *d); .....[ 761]: void irq_gc_ack_set_bit(struct irq_data *d); .....[ 762]: void irq_gc_ack_clr_bit(struct irq_data *d); .....[ 763]: void irq_gc_mask_disable_reg_and_ack(struct irq_data *d); .....[ 764]: void irq_gc_eoi(struct irq_data *d); .....[ 765]: int irq_gc_set_wake(struct irq_data *d, unsigned int on); .....[ 768]: struct irq_chip_generic * .....[ 769]: irq_alloc_generic_chip(const char *name, int nr_ct, unsigned int irq_base, .....[ 770]: void *reg_base, irq_flow_handler_t handler); .....[ 771]: void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk, .....[ 772]: enum irq_gc_flags flags, unsigned int clr, .....[ 773]: unsigned int set); .....[ 774]: int irq_setup_alt_chip(struct irq_data *d, unsigned int type); .....[ 775]: void irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk, .....[ 776]: unsigned int clr, unsigned int set); .....[ 778]: struct irq_chip_generic *irq_get_domain_generic_chip(struct irq_domain *d, unsigned int hw_irq); .....[ 779]: int irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip, .....[ 780]: int num_ct, const char *name, .....[ 781]: irq_flow_handler_t handler, .....[ 782]: unsigned int clr, unsigned int set, .....[ 783]: enum irq_gc_flags flags); .....[ 786]: static inline __attribute__((no_instrument_function)) struct irq_chip_type *irq_data_get_chip_type(struct \ ..... irq_data *d) .....[ 787]: { .....[ 788]: return ({ const typeof( ((struct irq_chip_type *)0)->chip ) *__mptr = (d->chip); (struct irq_chip_type *)( (char *)\ ..... __mptr - __builtin_offsetof(struct irq_chip_type,chip) );}); .....[ 789]: } .....[ 794]: static inline __attribute__((no_instrument_function)) void irq_gc_lock(struct irq_chip_generic *gc) .....[ 795]: { .....[ 796]: _raw_spin_lock(&gc->lock); .....[ 797]: } .....[ 799]: static inline __attribute__((no_instrument_function)) void irq_gc_unlock(struct irq_chip_generic *gc) .....[ 800]: { .....[ 801]: __raw_spin_unlock(&gc->lock); .....[ 802]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/irq.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hardirq.h ....[ 7]: typedef struct { ....[ 8]: unsigned int __softirq_pending; ....[ 9]: unsigned int __nmi_count; ....[ 11]: unsigned int apic_timer_irqs; ....[ 12]: unsigned int irq_spurious_count; ....[ 13]: unsigned int icr_read_retry_count; ....[ 16]: unsigned int kvm_posted_intr_ipis; ....[ 18]: unsigned int x86_platform_ipis; ....[ 19]: unsigned int apic_perf_irqs; ....[ 20]: unsigned int apic_irq_work_irqs; ....[ 22]: unsigned int irq_resched_count; ....[ 23]: unsigned int irq_call_count; ....[ 28]: unsigned int irq_tlb_count; ....[ 31]: unsigned int irq_thermal_count; ....[ 34]: unsigned int irq_threshold_count; ....[ 36]: } __attribute__((__aligned__((1 << (6))))) irq_cpustat_t; ....[ 38]: extern __attribute__((section(".data..percpu" "..shared_aligned"))) __typeof__(irq_cpustat_t) irq_stat __attribute__\ .... ((__aligned__((1 << (6))))); ....[ 55]: extern void ack_bad_irq(unsigned int irq); ....[ 57]: extern u64 arch_irq_stat_cpu(unsigned int cpu); ....[ 60]: extern u64 arch_irq_stat(void); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hardirq.h ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/preempt_mask.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cputime.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cputime.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime_jiffies.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime_jiffies.h .....[ 4]: typedef unsigned long cputime_t; .....[ 11]: typedef u64 cputime64_t; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime_jiffies.h ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/cputime.h ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cputime.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sem.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sem.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ipc.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ipc.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ipc.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ipc.h ......[ 9]: struct ipc_perm ......[ 10]: { ......[ 11]: __kernel_key_t key; ......[ 12]: __kernel_uid_t uid; ......[ 13]: __kernel_gid_t gid; ......[ 14]: __kernel_uid_t cuid; ......[ 15]: __kernel_gid_t cgid; ......[ 16]: __kernel_mode_t mode; ......[ 17]: unsigned short seq; ......[ 18]: }; .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ipc.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ipcbuf.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ipcbuf.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/ipcbuf.h ........[ 19]: struct ipc64_perm { ........[ 20]: __kernel_key_t key; ........[ 21]: __kernel_uid32_t uid; ........[ 22]: __kernel_gid32_t gid; ........[ 23]: __kernel_uid32_t cuid; ........[ 24]: __kernel_gid32_t cgid; ........[ 25]: __kernel_mode_t mode; ........[ 27]: unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; ........[ 28]: unsigned short seq; ........[ 29]: unsigned short __pad2; ........[ 30]: unsigned long __unused1; ........[ 31]: unsigned long __unused2; ........[ 32]: }; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/ipcbuf.h .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/ipcbuf.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ipc.h ......[ 57]: struct ipc_kludge { ......[ 58]: struct msgbuf *msgp; ......[ 59]: long msgtyp; ......[ 60]: }; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/ipc.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ipc.h .....[ 11]: struct kern_ipc_perm .....[ 12]: { .....[ 13]: spinlock_t lock; .....[ 14]: int deleted; .....[ 15]: int id; .....[ 16]: key_t key; .....[ 17]: kuid_t uid; .....[ 18]: kgid_t gid; .....[ 19]: kuid_t cuid; .....[ 20]: kgid_t cgid; .....[ 21]: umode_t mode; .....[ 22]: unsigned long seq; .....[ 23]: void *security; .....[ 24]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ipc.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ....[ 23]: struct semid_ds { ....[ 24]: struct ipc_perm sem_perm; ....[ 25]: __kernel_time_t sem_otime; ....[ 26]: __kernel_time_t sem_ctime; ....[ 27]: struct sem *sem_base; ....[ 28]: struct sem_queue *sem_pending; ....[ 29]: struct sem_queue **sem_pending_last; ....[ 30]: struct sem_undo *undo; ....[ 31]: unsigned short sem_nsems; ....[ 32]: }; ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/sembuf.h .....[ 13]: struct semid64_ds { .....[ 14]: struct ipc64_perm sem_perm; .....[ 15]: __kernel_time_t sem_otime; .....[ 16]: unsigned long __unused1; .....[ 17]: __kernel_time_t sem_ctime; .....[ 18]: unsigned long __unused2; .....[ 19]: unsigned long sem_nsems; .....[ 20]: unsigned long __unused3; .....[ 21]: unsigned long __unused4; .....[ 22]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/sembuf.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ....[ 38]: struct sembuf { ....[ 39]: unsigned short sem_num; ....[ 40]: short sem_op; ....[ 41]: short sem_flg; ....[ 42]: }; ....[ 45]: union semun { ....[ 46]: int val; ....[ 47]: struct semid_ds *buf; ....[ 48]: unsigned short *array; ....[ 49]: struct seminfo *__buf; ....[ 50]: void *__pad; ....[ 51]: }; ....[ 53]: struct seminfo { ....[ 54]: int semmap; ....[ 55]: int semmni; ....[ 56]: int semmns; ....[ 57]: int semmnu; ....[ 58]: int semmsl; ....[ 59]: int semopm; ....[ 60]: int semume; ....[ 61]: int semusz; ....[ 62]: int semvmx; ....[ 63]: int semaem; ....[ 64]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sem.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sem.h ...[ 9]: struct task_struct; ...[ 12]: struct sem_array { ...[ 13]: struct kern_ipc_perm __attribute__((__aligned__((1 << (6))))) ...[ 14]: sem_perm; ...[ 15]: time_t sem_ctime; ...[ 16]: struct sem *sem_base; ...[ 17]: struct list_head pending_alter; ...[ 19]: struct list_head pending_const; ...[ 21]: struct list_head list_id; ...[ 22]: int sem_nsems; ...[ 23]: int complex_count; ...[ 24]: }; ...[ 28]: struct sysv_sem { ...[ 29]: struct sem_undo_list *undo_list; ...[ 30]: }; ...[ 32]: extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); ...[ 33]: extern void exit_sem(struct task_struct *tsk); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sem.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/signal.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/signal.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/signal.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/signal.h .....[ 10]: struct siginfo; ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/signal.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/signal-defs.h ......[ 17]: typedef void __signalfn_t(int); ......[ 18]: typedef __signalfn_t *__sighandler_t; ......[ 20]: typedef void __restorefn_t(void); ......[ 21]: typedef __restorefn_t *__sigrestore_t; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/signal-defs.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/signal.h .....[ 127]: typedef struct sigaltstack { .....[ 128]: void *ss_sp; .....[ 129]: int ss_flags; .....[ 130]: size_t ss_size; .....[ 131]: } stack_t; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/signal.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/signal.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/siginfo.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/siginfo.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/siginfo.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/siginfo.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/siginfo.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/siginfo.h .......[ 7]: typedef union sigval { .......[ 8]: int sival_int; .......[ 9]: void *sival_ptr; .......[ 10]: } sigval_t; .......[ 48]: typedef struct siginfo { .......[ 49]: int si_signo; .......[ 50]: int si_errno; .......[ 51]: int si_code; .......[ 53]: union { .......[ 54]: int _pad[((128 - (4 * sizeof(int))) / sizeof(int))]; .......[ 57]: struct { .......[ 58]: __kernel_pid_t _pid; .......[ 59]: __kernel_uid32_t _uid; .......[ 60]: } _kill; .......[ 63]: struct { .......[ 64]: __kernel_timer_t _tid; .......[ 65]: int _overrun; .......[ 66]: char _pad[sizeof( __kernel_uid32_t) - sizeof(int)]; .......[ 67]: sigval_t _sigval; .......[ 68]: int _sys_private; .......[ 69]: } _timer; .......[ 72]: struct { .......[ 73]: __kernel_pid_t _pid; .......[ 74]: __kernel_uid32_t _uid; .......[ 75]: sigval_t _sigval; .......[ 76]: } _rt; .......[ 79]: struct { .......[ 80]: __kernel_pid_t _pid; .......[ 81]: __kernel_uid32_t _uid; .......[ 82]: int _status; .......[ 83]: __kernel_clock_t _utime; .......[ 84]: __kernel_clock_t _stime; .......[ 85]: } _sigchld; .......[ 88]: struct { .......[ 89]: void *_addr; .......[ 93]: short _addr_lsb; .......[ 94]: } _sigfault; .......[ 97]: struct { .......[ 98]: long _band; .......[ 99]: int _fd; .......[ 100]: } _sigpoll; .......[ 103]: struct { .......[ 104]: void *_call_addr; .......[ 105]: int _syscall; .......[ 106]: unsigned int _arch; .......[ 107]: } _sigsys; .......[ 108]: } _sifields; .......[ 109]: } siginfo_t; .......[ 278]: typedef struct sigevent { .......[ 279]: sigval_t sigev_value; .......[ 280]: int sigev_signo; .......[ 281]: int sigev_notify; .......[ 282]: union { .......[ 283]: int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))]; .......[ 284]: int _tid; .......[ 286]: struct { .......[ 287]: void (*_function)(sigval_t); .......[ 288]: void *_attribute; .......[ 289]: } _sigev_thread; .......[ 290]: } _sigev_un; .......[ 291]: } sigevent_t; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/siginfo.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/siginfo.h ......[ 17]: struct siginfo; ......[ 18]: void do_schedule_next_timer(struct siginfo *info); ......[ 24]: static inline __attribute__((no_instrument_function)) void copy_siginfo(struct siginfo *to, struct siginfo *from\ ...... ) ......[ 25]: { ......[ 26]: if (from->si_code < 0) ......[ 27]: ({ size_t __len = (sizeof(*to)); void *__ret; if (__builtin_constant_p(sizeof(*to)) && __len >= 64) __ret = __memcpy\ ...... ((to), (from), __len); else __ret = __builtin_memcpy((to), (from), __len); __ret; }); ......[ 28]: else ......[ 30]: ({ size_t __len = ((4 * sizeof(int)) + sizeof(from->_sifields._sigchld)); void *__ret; if (__builtin_constant_p(\ ...... (4 * sizeof(int)) + sizeof(from->_sifields._sigchld)) && __len >= 64) __ret = __memcpy((to), (from), __len); else __ret \ ...... = __builtin_memcpy((to), (from), __len); __ret; }); ......[ 31]: } ......[ 35]: extern int copy_siginfo_to_user(struct siginfo *to, const struct siginfo *from); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/siginfo.h .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/uapi/asm/siginfo.h ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/signal.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h ...[ 7]: struct task_struct; ...[ 10]: extern int print_fatal_signals; ...[ 15]: struct sigqueue { ...[ 16]: struct list_head list; ...[ 17]: int flags; ...[ 18]: siginfo_t info; ...[ 19]: struct user_struct *user; ...[ 20]: }; ...[ 25]: struct sigpending { ...[ 26]: struct list_head list; ...[ 27]: sigset_t signal; ...[ 28]: }; ...[ 39]: static inline __attribute__((no_instrument_function)) void sigaddset(sigset_t *set, int _sig) ...[ 40]: { ...[ 41]: unsigned long sig = _sig - 1; ...[ 42]: if (_NSIG_WORDS == 1) ...[ 43]: set->sig[0] |= 1UL << sig; ...[ 44]: else ...[ 45]: set->sig[sig / _NSIG_BPW] |= 1UL << (sig % _NSIG_BPW); ...[ 46]: } ...[ 48]: static inline __attribute__((no_instrument_function)) void sigdelset(sigset_t *set, int _sig) ...[ 49]: { ...[ 50]: unsigned long sig = _sig - 1; ...[ 51]: if (_NSIG_WORDS == 1) ...[ 52]: set->sig[0] &= ~(1UL << sig); ...[ 53]: else ...[ 54]: set->sig[sig / _NSIG_BPW] &= ~(1UL << (sig % _NSIG_BPW)); ...[ 55]: } ...[ 57]: static inline __attribute__((no_instrument_function)) int sigismember(sigset_t *set, int _sig) ...[ 58]: { ...[ 59]: unsigned long sig = _sig - 1; ...[ 60]: if (_NSIG_WORDS == 1) ...[ 61]: return 1 & (set->sig[0] >> sig); ...[ 62]: else ...[ 63]: return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); ...[ 64]: } ...[ 66]: static inline __attribute__((no_instrument_function)) int sigfindinword(unsigned long word) ...[ 67]: { ...[ 68]: return ffz(~word); ...[ 69]: } ...[ 73]: static inline __attribute__((no_instrument_function)) int sigisemptyset(sigset_t *set) ...[ 74]: { ...[ 75]: extern void _NSIG_WORDS_is_unsupported_size(void); ...[ 76]: switch (_NSIG_WORDS) { ...[ 77]: case 4: ...[ 78]: return (set->sig[3] | set->sig[2] | ...[ 79]: set->sig[1] | set->sig[0]) == 0; ...[ 80]: case 2: ...[ 81]: return (set->sig[1] | set->sig[0]) == 0; ...[ 82]: case 1: ...[ 83]: return set->sig[0] == 0; ...[ 84]: default: ...[ 85]: _NSIG_WORDS_is_unsupported_size(); ...[ 86]: return 0; ...[ 87]: } ...[ 88]: } ...[ 120]: static 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 (_NSIG_WORDS\ ... ) { 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(); } } ...[ 123]: static 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 (_NSIG_WORDS\ ... ) { 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(); } } ...[ 126]: static 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 (_NSIG_WORDS\ ... ) { 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]: static inline __attribute__((no_instrument_function)) void signotset(sigset_t *set) { extern void _NSIG_WORDS_is_unsupported_size\ ... (void); switch (_NSIG_WORDS) { 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\ ... (); } } ...[ 155]: static inline __attribute__((no_instrument_function)) void sigemptyset(sigset_t *set) ...[ 156]: { ...[ 157]: switch (_NSIG_WORDS) { ...[ 158]: default: ...[ 159]: memset(set, 0, sizeof(sigset_t)); ...[ 160]: break; ...[ 161]: case 2: set->sig[1] = 0; ...[ 162]: case 1: set->sig[0] = 0; ...[ 163]: break; ...[ 164]: } ...[ 165]: } ...[ 167]: static inline __attribute__((no_instrument_function)) void sigfillset(sigset_t *set) ...[ 168]: { ...[ 169]: switch (_NSIG_WORDS) { ...[ 170]: default: ...[ 171]: memset(set, -1, sizeof(sigset_t)); ...[ 172]: break; ...[ 173]: case 2: set->sig[1] = -1; ...[ 174]: case 1: set->sig[0] = -1; ...[ 175]: break; ...[ 176]: } ...[ 177]: } ...[ 181]: static inline __attribute__((no_instrument_function)) void sigaddsetmask(sigset_t *set, unsigned long mask) ...[ 182]: { ...[ 183]: set->sig[0] |= mask; ...[ 184]: } ...[ 186]: static inline __attribute__((no_instrument_function)) void sigdelsetmask(sigset_t *set, unsigned long mask) ...[ 187]: { ...[ 188]: set->sig[0] &= ~mask; ...[ 189]: } ...[ 191]: static inline __attribute__((no_instrument_function)) int sigtestsetmask(sigset_t *set, unsigned long mask) ...[ 192]: { ...[ 193]: return (set->sig[0] & mask) != 0; ...[ 194]: } ...[ 196]: static inline __attribute__((no_instrument_function)) void siginitset(sigset_t *set, unsigned long mask) ...[ 197]: { ...[ 198]: set->sig[0] = mask; ...[ 199]: switch (_NSIG_WORDS) { ...[ 200]: default: ...[ 201]: memset(&set->sig[1], 0, sizeof(long)*(_NSIG_WORDS-1)); ...[ 202]: break; ...[ 203]: case 2: set->sig[1] = 0; ...[ 204]: case 1: ; ...[ 205]: } ...[ 206]: } ...[ 208]: static inline __attribute__((no_instrument_function)) void siginitsetinv(sigset_t *set, unsigned long mask) ...[ 209]: { ...[ 210]: set->sig[0] = ~mask; ...[ 211]: switch (_NSIG_WORDS) { ...[ 212]: default: ...[ 213]: memset(&set->sig[1], -1, sizeof(long)*(_NSIG_WORDS-1)); ...[ 214]: break; ...[ 215]: case 2: set->sig[1] = -1; ...[ 216]: case 1: ; ...[ 217]: } ...[ 218]: } ...[ 222]: static inline __attribute__((no_instrument_function)) void init_sigpending(struct sigpending *sig) ...[ 223]: { ...[ 224]: sigemptyset(&sig->signal); ...[ 225]: INIT_LIST_HEAD(&sig->list); ...[ 226]: } ...[ 228]: extern void flush_sigqueue(struct sigpending *queue); ...[ 231]: static inline __attribute__((no_instrument_function)) int valid_signal(unsigned long sig) ...[ 232]: { ...[ 233]: return sig <= _NSIG ? 1 : 0; ...[ 234]: } ...[ 236]: struct timespec; ...[ 237]: struct pt_regs; ...[ 239]: extern int next_signal(struct sigpending *pending, sigset_t *mask); ...[ 240]: extern int do_send_sig_info(int sig, struct siginfo *info, ...[ 241]: struct task_struct *p, bool group); ...[ 242]: extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p); ...[ 243]: extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *); ...[ 244]: extern int do_sigtimedwait(const sigset_t *, siginfo_t *, ...[ 245]: const struct timespec *); ...[ 246]: extern int sigprocmask(int, sigset_t *, sigset_t *); ...[ 247]: extern void set_current_blocked(sigset_t *); ...[ 248]: extern void __set_current_blocked(const sigset_t *); ...[ 249]: extern int show_unhandled_signals; ...[ 250]: extern int sigsuspend(sigset_t *); ...[ 252]: struct sigaction { ...[ 254]: __sighandler_t sa_handler; ...[ 255]: unsigned long sa_flags; ...[ 263]: sigset_t sa_mask; ...[ 264]: }; ...[ 266]: struct k_sigaction { ...[ 267]: struct sigaction sa; ...[ 271]: }; ...[ 282]: struct ksignal { ...[ 283]: struct k_sigaction ka; ...[ 284]: siginfo_t info; ...[ 285]: int sig; ...[ 286]: }; ...[ 288]: extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie\ ... ); ...[ 289]: extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); ...[ 290]: extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping\ ... ); ...[ 291]: extern void exit_signals(struct task_struct *tsk); ...[ 305]: extern struct kmem_cache *sighand_cachep; ...[ 307]: int unhandled_signal(struct task_struct *tsk, int sig); ...[ 432]: void signals_init(void); ...[ 434]: int restore_altstack(const stack_t *); ...[ 435]: int __save_altstack(stack_t *, unsigned long); ...[ 446]: struct seq_file; ...[ 447]: extern void render_sigset_t(struct seq_file *, const char *, sigset_t *); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proportions.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proportions.h ...[ 16]: struct prop_global { ...[ 22]: int shift; ...[ 29]: struct percpu_counter events; ...[ 30]: }; ...[ 37]: struct prop_descriptor { ...[ 38]: int index; ...[ 39]: struct prop_global pg[2]; ...[ 40]: struct mutex mutex; ...[ 41]: }; ...[ 43]: int prop_descriptor_init(struct prop_descriptor *pd, int shift); ...[ 44]: void prop_change_shift(struct prop_descriptor *pd, int new_shift); ...[ 50]: struct prop_local_percpu { ...[ 54]: struct percpu_counter events; ...[ 59]: int shift; ...[ 60]: unsigned long period; ...[ 61]: raw_spinlock_t lock; ...[ 62]: }; ...[ 64]: int prop_local_init_percpu(struct prop_local_percpu *pl); ...[ 65]: void prop_local_destroy_percpu(struct prop_local_percpu *pl); ...[ 66]: void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl); ...[ 67]: void prop_fraction_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl, ...[ 68]: long *numerator, long *denominator); ...[ 70]: static inline __attribute__((no_instrument_function)) ...[ 71]: void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl) ...[ 72]: { ...[ 73]: unsigned long flags; ...[ 75]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save\ ... (); } while (0); do { } while (0); } while (0); ...[ 76]: __prop_inc_percpu(pd, pl); ...[ 77]: 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); ...[ 78]: } ...[ 93]: void __prop_inc_percpu_max(struct prop_descriptor *pd, ...[ 94]: struct prop_local_percpu *pl, long frac); ...[ 101]: struct prop_local_single { ...[ 105]: unsigned long events; ...[ 111]: unsigned long period; ...[ 112]: int shift; ...[ 113]: raw_spinlock_t lock; ...[ 114]: }; ...[ 120]: int prop_local_init_single(struct prop_local_single *pl); ...[ 121]: void prop_local_destroy_single(struct prop_local_single *pl); ...[ 122]: void __prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl); ...[ 123]: void prop_fraction_single(struct prop_descriptor *pd, struct prop_local_single *pl, ...[ 124]: long *numerator, long *denominator); ...[ 126]: static inline __attribute__((no_instrument_function)) ...[ 127]: void prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl) ...[ 128]: { ...[ 129]: unsigned long flags; ...[ 131]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = arch_local_irq_save\ ... (); } while (0); do { } while (0); } while (0); ...[ 132]: __prop_inc_single(pd, pl); ...[ 133]: 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); ...[ 134]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/proportions.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seccomp.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seccomp.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/seccomp.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/seccomp.h ....[ 40]: struct seccomp_data { ....[ 41]: int nr; ....[ 42]: __u32 arch; ....[ 43]: __u64 instruction_pointer; ....[ 44]: __u64 args[6]; ....[ 45]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/seccomp.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seccomp.h ...[ 11]: struct seccomp_filter; ...[ 23]: struct seccomp { ...[ 24]: int mode; ...[ 25]: struct seccomp_filter *filter; ...[ 26]: }; ...[ 28]: extern int __secure_computing(int); ...[ 29]: static inline __attribute__((no_instrument_function)) int secure_computing(int this_syscall) ...[ 30]: { ...[ 31]: if (__builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 8)), 0)) ...[ 32]: return __secure_computing(this_syscall); ...[ 33]: return 0; ...[ 34]: } ...[ 37]: static inline __attribute__((no_instrument_function)) void secure_computing_strict(int this_syscall) ...[ 38]: { ...[ 39]: do { if (__builtin_expect(!!(secure_computing(this_syscall) != 0), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" \ ... "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__\ ... ), "i" (sizeof(struct bug_entry))); do { } while (1); } while (0); } while(0); ...[ 40]: } ...[ 42]: extern long prctl_get_seccomp(void); ...[ 43]: extern long prctl_set_seccomp(unsigned long, char *); ...[ 45]: static inline __attribute__((no_instrument_function)) int seccomp_mode(struct seccomp *s) ...[ 46]: { ...[ 47]: return s->mode; ...[ 48]: } ...[ 77]: extern void put_seccomp_filter(struct task_struct *tsk); ...[ 78]: extern void get_seccomp_filter(struct task_struct *tsk); ...[ 79]: extern u32 seccomp_bpf_load(int off); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/seccomp.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rtmutex.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rtmutex.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/plist.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/plist.h ....[ 81]: struct plist_head { ....[ 82]: struct list_head node_list; ....[ 83]: }; ....[ 85]: struct plist_node { ....[ 86]: int prio; ....[ 87]: struct list_head prio_list; ....[ 88]: struct list_head node_list; ....[ 89]: }; ....[ 116]: static inline __attribute__((no_instrument_function)) void ....[ 117]: plist_head_init(struct plist_head *head) ....[ 118]: { ....[ 119]: INIT_LIST_HEAD(&head->node_list); ....[ 120]: } ....[ 127]: static inline __attribute__((no_instrument_function)) void plist_node_init(struct plist_node *node, int prio\ .... ) ....[ 128]: { ....[ 129]: node->prio = prio; ....[ 130]: INIT_LIST_HEAD(&node->prio_list); ....[ 131]: INIT_LIST_HEAD(&node->node_list); ....[ 132]: } ....[ 134]: extern void plist_add(struct plist_node *node, struct plist_head *head); ....[ 135]: extern void plist_del(struct plist_node *node, struct plist_head *head); ....[ 181]: static inline __attribute__((no_instrument_function)) int plist_head_empty(const struct plist_head *head) ....[ 182]: { ....[ 183]: return list_empty(&head->node_list); ....[ 184]: } ....[ 190]: static inline __attribute__((no_instrument_function)) int plist_node_empty(const struct plist_node *node) ....[ 191]: { ....[ 192]: return list_empty(&node->node_list); ....[ 193]: } ....[ 237]: static inline __attribute__((no_instrument_function)) struct plist_node *plist_first(const struct plist_head \ .... *head) ....[ 238]: { ....[ 239]: 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) );}); ....[ 241]: } ....[ 249]: static inline __attribute__((no_instrument_function)) struct plist_node *plist_last(const struct plist_head \ .... *head) ....[ 250]: { ....[ 251]: 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) );}); ....[ 253]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/plist.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rtmutex.h ...[ 19]: extern int max_lock_depth; ...[ 28]: struct rt_mutex { ...[ 29]: raw_spinlock_t wait_lock; ...[ 30]: struct plist_head wait_list; ...[ 31]: struct task_struct *owner; ...[ 38]: }; ...[ 40]: struct rt_mutex_waiter; ...[ 41]: struct hrtimer_sleeper; ...[ 48]: static inline __attribute__((no_instrument_function)) int rt_mutex_debug_check_no_locks_freed(const void *\ ... from, ...[ 49]: unsigned long len) ...[ 50]: { ...[ 51]: return 0; ...[ 52]: } ...[ 82]: static inline __attribute__((no_instrument_function)) int rt_mutex_is_locked(struct rt_mutex *lock) ...[ 83]: { ...[ 84]: return lock->owner != ((void *)0); ...[ 85]: } ...[ 87]: extern void __rt_mutex_init(struct rt_mutex *lock, const char *name); ...[ 88]: extern void rt_mutex_destroy(struct rt_mutex *lock); ...[ 90]: extern void rt_mutex_lock(struct rt_mutex *lock); ...[ 91]: extern int rt_mutex_lock_interruptible(struct rt_mutex *lock, ...[ 92]: int detect_deadlock); ...[ 93]: extern int rt_mutex_timed_lock(struct rt_mutex *lock, ...[ 94]: struct hrtimer_sleeper *timeout, ...[ 95]: int detect_deadlock); ...[ 97]: extern int rt_mutex_trylock(struct rt_mutex *lock); ...[ 99]: extern void rt_mutex_unlock(struct rt_mutex *lock); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/rtmutex.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/resource.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/resource.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/resource.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/resource.h ....[ 23]: struct rusage { ....[ 24]: struct timeval ru_utime; ....[ 25]: struct timeval ru_stime; ....[ 26]: long ru_maxrss; ....[ 27]: long ru_ixrss; ....[ 28]: long ru_idrss; ....[ 29]: long ru_isrss; ....[ 30]: long ru_minflt; ....[ 31]: long ru_majflt; ....[ 32]: long ru_nswap; ....[ 33]: long ru_inblock; ....[ 34]: long ru_oublock; ....[ 35]: long ru_msgsnd; ....[ 36]: long ru_msgrcv; ....[ 37]: long ru_nsignals; ....[ 38]: long ru_nvcsw; ....[ 39]: long ru_nivcsw; ....[ 40]: }; ....[ 42]: struct rlimit { ....[ 43]: unsigned long rlim_cur; ....[ 44]: unsigned long rlim_max; ....[ 45]: }; ....[ 49]: struct rlimit64 { ....[ 50]: __u64 rlim_cur; ....[ 51]: __u64 rlim_max; ....[ 52]: }; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/resource.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/resource.h ...[ 7]: struct task_struct; ...[ 9]: int getrusage(struct task_struct *p, int who, struct rusage *ru); ...[ 10]: int do_prlimit(struct task_struct *tsk, unsigned int resource, ...[ 11]: struct rlimit *new_rlim, struct rlimit *old_rlim); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/resource.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hrtimer.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hrtimer.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timerqueue.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timerqueue.h ....[ 8]: struct timerqueue_node { ....[ 9]: struct rb_node node; ....[ 10]: ktime_t expires; ....[ 11]: }; ....[ 13]: struct timerqueue_head { ....[ 14]: struct rb_root head; ....[ 15]: struct timerqueue_node *next; ....[ 16]: }; ....[ 19]: extern void timerqueue_add(struct timerqueue_head *head, ....[ 20]: struct timerqueue_node *node); ....[ 21]: extern void timerqueue_del(struct timerqueue_head *head, ....[ 22]: struct timerqueue_node *node); ....[ 23]: extern struct timerqueue_node *timerqueue_iterate_next( ....[ 24]: struct timerqueue_node *node); ....[ 34]: static inline __attribute__((no_instrument_function)) ....[ 35]: struct timerqueue_node *timerqueue_getnext(struct timerqueue_head *head) ....[ 36]: { ....[ 37]: return head->next; ....[ 38]: } ....[ 40]: static inline __attribute__((no_instrument_function)) void timerqueue_init(struct timerqueue_node *node) ....[ 41]: { ....[ 42]: ((&node->node)->__rb_parent_color = (unsigned long)(&node->node)); ....[ 43]: } ....[ 45]: static inline __attribute__((no_instrument_function)) void timerqueue_init_head(struct timerqueue_head *head\ .... ) ....[ 46]: { ....[ 47]: head->head = (struct rb_root) { ((void *)0), }; ....[ 48]: head->next = ((void *)0); ....[ 49]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/timerqueue.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hrtimer.h ...[ 27]: struct hrtimer_clock_base; ...[ 28]: struct hrtimer_cpu_base; ...[ 33]: enum hrtimer_mode { ...[ 34]: HRTIMER_MODE_ABS = 0x0, ...[ 35]: HRTIMER_MODE_REL = 0x1, ...[ 36]: HRTIMER_MODE_PINNED = 0x02, ...[ 37]: HRTIMER_MODE_ABS_PINNED = 0x02, ...[ 38]: HRTIMER_MODE_REL_PINNED = 0x03, ...[ 39]: }; ...[ 44]: enum hrtimer_restart { ...[ 45]: HRTIMER_NORESTART, ...[ 46]: HRTIMER_RESTART, ...[ 47]: }; ...[ 108]: struct hrtimer { ...[ 109]: struct timerqueue_node node; ...[ 110]: ktime_t _softexpires; ...[ 111]: enum hrtimer_restart (*function)(struct hrtimer *); ...[ 112]: struct hrtimer_clock_base *base; ...[ 113]: unsigned long state; ...[ 115]: int start_pid; ...[ 116]: void *start_site; ...[ 117]: char start_comm[16]; ...[ 119]: }; ...[ 128]: struct hrtimer_sleeper { ...[ 129]: struct hrtimer timer; ...[ 130]: struct task_struct *task; ...[ 131]: }; ...[ 145]: struct hrtimer_clock_base { ...[ 146]: struct hrtimer_cpu_base *cpu_base; ...[ 147]: int index; ...[ 148]: clockid_t clockid; ...[ 149]: struct timerqueue_head active; ...[ 150]: ktime_t resolution; ...[ 151]: ktime_t (*get_time)(void); ...[ 152]: ktime_t softirq_time; ...[ 153]: ktime_t offset; ...[ 154]: }; ...[ 156]: enum hrtimer_base_type { ...[ 157]: HRTIMER_BASE_MONOTONIC, ...[ 158]: HRTIMER_BASE_REALTIME, ...[ 159]: HRTIMER_BASE_BOOTTIME, ...[ 160]: HRTIMER_BASE_TAI, ...[ 161]: HRTIMER_MAX_CLOCK_BASES, ...[ 162]: }; ...[ 180]: struct hrtimer_cpu_base { ...[ 181]: raw_spinlock_t lock; ...[ 182]: unsigned int active_bases; ...[ 183]: unsigned int clock_was_set; ...[ 185]: ktime_t expires_next; ...[ 186]: int hres_active; ...[ 187]: int hang_detected; ...[ 188]: unsigned long nr_events; ...[ 189]: unsigned long nr_retries; ...[ 190]: unsigned long nr_hangs; ...[ 191]: ktime_t max_hang_time; ...[ 193]: struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES]; ...[ 194]: }; ...[ 196]: static inline __attribute__((no_instrument_function)) void hrtimer_set_expires(struct hrtimer *timer, ktime_t \ ... time) ...[ 197]: { ...[ 198]: timer->node.expires = time; ...[ 199]: timer->_softexpires = time; ...[ 200]: } ...[ 202]: static inline __attribute__((no_instrument_function)) void hrtimer_set_expires_range(struct hrtimer *timer\ ... , ktime_t time, ktime_t delta) ...[ 203]: { ...[ 204]: timer->_softexpires = time; ...[ 205]: timer->node.expires = ktime_add_safe(time, delta); ...[ 206]: } ...[ 208]: static inline __attribute__((no_instrument_function)) void hrtimer_set_expires_range_ns(struct hrtimer *timer\ ... , ktime_t time, unsigned long delta) ...[ 209]: { ...[ 210]: timer->_softexpires = time; ...[ 211]: timer->node.expires = ktime_add_safe(time, ns_to_ktime(delta)); ...[ 212]: } ...[ 214]: static inline __attribute__((no_instrument_function)) void hrtimer_set_expires_tv64(struct hrtimer *timer, \ ... s64 tv64) ...[ 215]: { ...[ 216]: timer->node.expires.tv64 = tv64; ...[ 217]: timer->_softexpires.tv64 = tv64; ...[ 218]: } ...[ 220]: static inline __attribute__((no_instrument_function)) void hrtimer_add_expires(struct hrtimer *timer, ktime_t \ ... time) ...[ 221]: { ...[ 222]: timer->node.expires = ktime_add_safe(timer->node.expires, time); ...[ 223]: timer->_softexpires = ktime_add_safe(timer->_softexpires, time); ...[ 224]: } ...[ 226]: static inline __attribute__((no_instrument_function)) void hrtimer_add_expires_ns(struct hrtimer *timer, u64 \ ... ns) ...[ 227]: { ...[ 228]: timer->node.expires = ({ (ktime_t){ .tv64 = (timer->node.expires).tv64 + (ns) }; }); ...[ 229]: timer->_softexpires = ({ (ktime_t){ .tv64 = (timer->_softexpires).tv64 + (ns) }; }); ...[ 230]: } ...[ 232]: static inline __attribute__((no_instrument_function)) ktime_t hrtimer_get_expires(const struct hrtimer *timer\ ... ) ...[ 233]: { ...[ 234]: return timer->node.expires; ...[ 235]: } ...[ 237]: static inline __attribute__((no_instrument_function)) ktime_t hrtimer_get_softexpires(const struct hrtimer \ ... *timer) ...[ 238]: { ...[ 239]: return timer->_softexpires; ...[ 240]: } ...[ 242]: static inline __attribute__((no_instrument_function)) s64 hrtimer_get_expires_tv64(const struct hrtimer *timer\ ... ) ...[ 243]: { ...[ 244]: return timer->node.expires.tv64; ...[ 245]: } ...[ 246]: static inline __attribute__((no_instrument_function)) s64 hrtimer_get_softexpires_tv64(const struct hrtimer \ ... *timer) ...[ 247]: { ...[ 248]: return timer->_softexpires.tv64; ...[ 249]: } ...[ 251]: static inline __attribute__((no_instrument_function)) s64 hrtimer_get_expires_ns(const struct hrtimer *timer\ ... ) ...[ 252]: { ...[ 253]: return ((timer->node.expires).tv64); ...[ 254]: } ...[ 256]: static inline __attribute__((no_instrument_function)) ktime_t hrtimer_expires_remaining(const struct hrtimer \ ... *timer) ...[ 257]: { ...[ 258]: return ({ (ktime_t){ .tv64 = (timer->node.expires).tv64 - (timer->base->get_time()).tv64 }; }); ...[ 259]: } ...[ 262]: struct clock_event_device; ...[ 264]: extern void hrtimer_interrupt(struct clock_event_device *dev); ...[ 269]: static inline __attribute__((no_instrument_function)) ktime_t hrtimer_cb_get_time(struct hrtimer *timer) ...[ 270]: { ...[ 271]: return timer->base->get_time(); ...[ 272]: } ...[ 274]: static inline __attribute__((no_instrument_function)) int hrtimer_is_hres_active(struct hrtimer *timer) ...[ 275]: { ...[ 276]: return timer->base->cpu_base->hres_active; ...[ 277]: } ...[ 279]: extern void hrtimer_peek_ahead_timers(void); ...[ 292]: extern void clock_was_set_delayed(void); ...[ 319]: extern void clock_was_set(void); ...[ 321]: extern void timerfd_clock_was_set(void); ...[ 325]: extern void hrtimers_resume(void); ...[ 327]: extern ktime_t ktime_get(void); ...[ 328]: extern ktime_t ktime_get_real(void); ...[ 329]: extern ktime_t ktime_get_boottime(void); ...[ 330]: extern ktime_t ktime_get_monotonic_offset(void); ...[ 331]: extern ktime_t ktime_get_clocktai(void); ...[ 332]: extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot, ...[ 333]: ktime_t *offs_tai); ...[ 335]: extern __attribute__((section(".data..percpu" ""))) __typeof__(struct tick_device) tick_cpu_device; ...[ 341]: extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, ...[ 342]: enum hrtimer_mode mode); ...[ 350]: static inline __attribute__((no_instrument_function)) void hrtimer_init_on_stack(struct hrtimer *timer, ...[ 351]: clockid_t which_clock, ...[ 352]: enum hrtimer_mode mode) ...[ 353]: { ...[ 354]: hrtimer_init(timer, which_clock, mode); ...[ 355]: } ...[ 356]: static inline __attribute__((no_instrument_function)) void destroy_hrtimer_on_stack(struct hrtimer *timer) \ ... { } ...[ 360]: extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, ...[ 361]: const enum hrtimer_mode mode); ...[ 362]: extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, ...[ 363]: unsigned long range_ns, const enum hrtimer_mode mode); ...[ 364]: extern int ...[ 365]: __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, ...[ 366]: unsigned long delta_ns, ...[ 367]: const enum hrtimer_mode mode, int wakeup); ...[ 369]: extern int hrtimer_cancel(struct hrtimer *timer); ...[ 370]: extern int hrtimer_try_to_cancel(struct hrtimer *timer); ...[ 372]: static inline __attribute__((no_instrument_function)) int hrtimer_start_expires(struct hrtimer *timer, ...[ 373]: enum hrtimer_mode mode) ...[ 374]: { ...[ 375]: unsigned long delta; ...[ 376]: ktime_t soft, hard; ...[ 377]: soft = hrtimer_get_softexpires(timer); ...[ 378]: hard = hrtimer_get_expires(timer); ...[ 379]: delta = ((({ (ktime_t){ .tv64 = (hard).tv64 - (soft).tv64 }; })).tv64); ...[ 380]: return hrtimer_start_range_ns(timer, soft, delta, mode); ...[ 381]: } ...[ 383]: static inline __attribute__((no_instrument_function)) int hrtimer_restart(struct hrtimer *timer) ...[ 384]: { ...[ 385]: return hrtimer_start_expires(timer, HRTIMER_MODE_ABS); ...[ 386]: } ...[ 389]: extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); ...[ 390]: extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); ...[ 392]: extern ktime_t hrtimer_get_next_event(void); ...[ 399]: static inline __attribute__((no_instrument_function)) int hrtimer_active(const struct hrtimer *timer) ...[ 400]: { ...[ 401]: return timer->state != 0x00; ...[ 402]: } ...[ 407]: static inline __attribute__((no_instrument_function)) int hrtimer_is_queued(struct hrtimer *timer) ...[ 408]: { ...[ 409]: return timer->state & 0x01; ...[ 410]: } ...[ 416]: static inline __attribute__((no_instrument_function)) int hrtimer_callback_running(struct hrtimer *timer) ...[ 417]: { ...[ 418]: return timer->state & 0x02; ...[ 419]: } ...[ 422]: extern u64 ...[ 423]: hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval); ...[ 426]: static inline __attribute__((no_instrument_function)) u64 hrtimer_forward_now(struct hrtimer *timer, ...[ 427]: ktime_t interval) ...[ 428]: { ...[ 429]: return hrtimer_forward(timer, timer->base->get_time(), interval); ...[ 430]: } ...[ 433]: extern long hrtimer_nanosleep(struct timespec *rqtp, ...[ 434]: struct timespec *rmtp, ...[ 435]: const enum hrtimer_mode mode, ...[ 436]: const clockid_t clockid); ...[ 437]: extern long hrtimer_nanosleep_restart(struct restart_block *restart_block); ...[ 439]: extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, ...[ 440]: struct task_struct *tsk); ...[ 442]: extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta, ...[ 443]: const enum hrtimer_mode mode); ...[ 444]: extern int schedule_hrtimeout_range_clock(ktime_t *expires, ...[ 445]: unsigned long delta, const enum hrtimer_mode mode, int clock); ...[ 446]: extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode); ...[ 449]: extern void hrtimer_run_queues(void); ...[ 450]: extern void hrtimer_run_pending(void); ...[ 453]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) hrtimers_init\ ... (void); ...[ 462]: extern void sysrq_timer_list_show(void); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hrtimer.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/task_io_accounting.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/task_io_accounting.h ...[ 11]: struct task_io_accounting { ...[ 14]: u64 rchar; ...[ 16]: u64 wchar; ...[ 18]: u64 syscr; ...[ 20]: u64 syscw; ...[ 28]: u64 read_bytes; ...[ 34]: u64 write_bytes; ...[ 43]: u64 cancelled_write_bytes; ...[ 45]: }; ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/task_io_accounting.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/latencytop.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/latencytop.h ...[ 13]: struct task_struct; ...[ 20]: struct latency_record { ...[ 21]: unsigned long backtrace[12]; ...[ 22]: unsigned int count; ...[ 23]: unsigned long time; ...[ 24]: unsigned long max; ...[ 25]: }; ...[ 29]: extern int latencytop_enabled; ...[ 30]: void __account_scheduler_latency(struct task_struct *task, int usecs, int inter); ...[ 31]: static inline __attribute__((no_instrument_function)) void ...[ 32]: account_scheduler_latency(struct task_struct *task, int usecs, int inter) ...[ 33]: { ...[ 34]: if (__builtin_expect(!!(latencytop_enabled), 0)) ...[ 35]: __account_scheduler_latency(task, usecs, inter); ...[ 36]: } ...[ 38]: void clear_all_latency_tracing(struct task_struct *p); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/latencytop.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cred.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cred.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/key.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/key.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysctl.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysctl.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysctl.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysctl.h ......[ 29]: struct completion; ......[ 36]: struct __sysctl_args { ......[ 37]: int *name; ......[ 38]: int nlen; ......[ 39]: void *oldval; ......[ 40]: size_t *oldlenp; ......[ 41]: void *newval; ......[ 42]: size_t newlen; ......[ 43]: unsigned long __attribute__((unused))[4]; ......[ 44]: }; ......[ 50]: enum ......[ 51]: { ......[ 52]: CTL_KERN=1, ......[ 53]: CTL_VM=2, ......[ 54]: CTL_NET=3, ......[ 55]: CTL_PROC=4, ......[ 56]: CTL_FS=5, ......[ 57]: CTL_DEBUG=6, ......[ 58]: CTL_DEV=7, ......[ 59]: CTL_BUS=8, ......[ 60]: CTL_ABI=9, ......[ 61]: CTL_CPU=10, ......[ 62]: CTL_ARLAN=254, ......[ 63]: CTL_S390DBF=5677, ......[ 64]: CTL_SUNRPC=7249, ......[ 65]: CTL_PM=9899, ......[ 66]: CTL_FRV=9898, ......[ 67]: }; ......[ 70]: enum ......[ 71]: { ......[ 72]: CTL_BUS_ISA=1 ......[ 73]: }; ......[ 76]: enum ......[ 77]: { ......[ 78]: INOTIFY_MAX_USER_INSTANCES=1, ......[ 79]: INOTIFY_MAX_USER_WATCHES=2, ......[ 80]: INOTIFY_MAX_QUEUED_EVENTS=3 ......[ 81]: }; ......[ 84]: enum ......[ 85]: { ......[ 86]: KERN_OSTYPE=1, ......[ 87]: KERN_OSRELEASE=2, ......[ 88]: KERN_OSREV=3, ......[ 89]: KERN_VERSION=4, ......[ 90]: KERN_SECUREMASK=5, ......[ 91]: KERN_PROF=6, ......[ 92]: KERN_NODENAME=7, ......[ 93]: KERN_DOMAINNAME=8, ......[ 95]: KERN_PANIC=15, ......[ 96]: KERN_REALROOTDEV=16, ......[ 98]: KERN_SPARC_REBOOT=21, ......[ 99]: KERN_CTLALTDEL=22, ......[ 100]: KERN_PRINTK=23, ......[ 101]: KERN_NAMETRANS=24, ......[ 102]: KERN_PPC_HTABRECLAIM=25, ......[ 103]: KERN_PPC_ZEROPAGED=26, ......[ 104]: KERN_PPC_POWERSAVE_NAP=27, ......[ 105]: KERN_MODPROBE=28, ......[ 106]: KERN_SG_BIG_BUFF=29, ......[ 107]: KERN_ACCT=30, ......[ 108]: KERN_PPC_L2CR=31, ......[ 110]: KERN_RTSIGNR=32, ......[ 111]: KERN_RTSIGMAX=33, ......[ 113]: KERN_SHMMAX=34, ......[ 114]: KERN_MSGMAX=35, ......[ 115]: KERN_MSGMNB=36, ......[ 116]: KERN_MSGPOOL=37, ......[ 117]: KERN_SYSRQ=38, ......[ 118]: KERN_MAX_THREADS=39, ......[ 119]: KERN_RANDOM=40, ......[ 120]: KERN_SHMALL=41, ......[ 121]: KERN_MSGMNI=42, ......[ 122]: KERN_SEM=43, ......[ 123]: KERN_SPARC_STOP_A=44, ......[ 124]: KERN_SHMMNI=45, ......[ 125]: KERN_OVERFLOWUID=46, ......[ 126]: KERN_OVERFLOWGID=47, ......[ 127]: KERN_SHMPATH=48, ......[ 128]: KERN_HOTPLUG=49, ......[ 129]: KERN_IEEE_EMULATION_WARNINGS=50, ......[ 130]: KERN_S390_USER_DEBUG_LOGGING=51, ......[ 131]: KERN_CORE_USES_PID=52, ......[ 132]: KERN_TAINTED=53, ......[ 133]: KERN_CADPID=54, ......[ 134]: KERN_PIDMAX=55, ......[ 135]: KERN_CORE_PATTERN=56, ......[ 136]: KERN_PANIC_ON_OOPS=57, ......[ 137]: KERN_HPPA_PWRSW=58, ......[ 138]: KERN_HPPA_UNALIGNED=59, ......[ 139]: KERN_PRINTK_RATELIMIT=60, ......[ 140]: KERN_PRINTK_RATELIMIT_BURST=61, ......[ 141]: KERN_PTY=62, ......[ 142]: KERN_NGROUPS_MAX=63, ......[ 143]: KERN_SPARC_SCONS_PWROFF=64, ......[ 144]: KERN_HZ_TIMER=65, ......[ 145]: KERN_UNKNOWN_NMI_PANIC=66, ......[ 146]: KERN_BOOTLOADER_TYPE=67, ......[ 147]: KERN_RANDOMIZE=68, ......[ 148]: KERN_SETUID_DUMPABLE=69, ......[ 149]: KERN_SPIN_RETRY=70, ......[ 150]: KERN_ACPI_VIDEO_FLAGS=71, ......[ 151]: KERN_IA64_UNALIGNED=72, ......[ 152]: KERN_COMPAT_LOG=73, ......[ 153]: KERN_MAX_LOCK_DEPTH=74, ......[ 154]: KERN_NMI_WATCHDOG=75, ......[ 155]: KERN_PANIC_ON_NMI=76, ......[ 156]: }; ......[ 161]: enum ......[ 162]: { ......[ 163]: VM_UNUSED1=1, ......[ 164]: VM_UNUSED2=2, ......[ 165]: VM_UNUSED3=3, ......[ 166]: VM_UNUSED4=4, ......[ 167]: VM_OVERCOMMIT_MEMORY=5, ......[ 168]: VM_UNUSED5=6, ......[ 169]: VM_UNUSED7=7, ......[ 170]: VM_UNUSED8=8, ......[ 171]: VM_UNUSED9=9, ......[ 172]: VM_PAGE_CLUSTER=10, ......[ 173]: VM_DIRTY_BACKGROUND=11, ......[ 174]: VM_DIRTY_RATIO=12, ......[ 175]: VM_DIRTY_WB_CS=13, ......[ 176]: VM_DIRTY_EXPIRE_CS=14, ......[ 177]: VM_NR_PDFLUSH_THREADS=15, ......[ 178]: VM_OVERCOMMIT_RATIO=16, ......[ 179]: VM_PAGEBUF=17, ......[ 180]: VM_HUGETLB_PAGES=18, ......[ 181]: VM_SWAPPINESS=19, ......[ 182]: VM_LOWMEM_RESERVE_RATIO=20, ......[ 183]: VM_MIN_FREE_KBYTES=21, ......[ 184]: VM_MAX_MAP_COUNT=22, ......[ 185]: VM_LAPTOP_MODE=23, ......[ 186]: VM_BLOCK_DUMP=24, ......[ 187]: VM_HUGETLB_GROUP=25, ......[ 188]: VM_VFS_CACHE_PRESSURE=26, ......[ 189]: VM_LEGACY_VA_LAYOUT=27, ......[ 190]: VM_SWAP_TOKEN_TIMEOUT=28, ......[ 191]: VM_DROP_PAGECACHE=29, ......[ 192]: VM_PERCPU_PAGELIST_FRACTION=30, ......[ 193]: VM_ZONE_RECLAIM_MODE=31, ......[ 194]: VM_MIN_UNMAPPED=32, ......[ 195]: VM_PANIC_ON_OOM=33, ......[ 196]: VM_VDSO_ENABLED=34, ......[ 197]: VM_MIN_SLAB=35, ......[ 198]: }; ......[ 202]: enum ......[ 203]: { ......[ 204]: NET_CORE=1, ......[ 205]: NET_ETHER=2, ......[ 206]: NET_802=3, ......[ 207]: NET_UNIX=4, ......[ 208]: NET_IPV4=5, ......[ 209]: NET_IPX=6, ......[ 210]: NET_ATALK=7, ......[ 211]: NET_NETROM=8, ......[ 212]: NET_AX25=9, ......[ 213]: NET_BRIDGE=10, ......[ 214]: NET_ROSE=11, ......[ 215]: NET_IPV6=12, ......[ 216]: NET_X25=13, ......[ 217]: NET_TR=14, ......[ 218]: NET_DECNET=15, ......[ 219]: NET_ECONET=16, ......[ 220]: NET_SCTP=17, ......[ 221]: NET_LLC=18, ......[ 222]: NET_NETFILTER=19, ......[ 223]: NET_DCCP=20, ......[ 224]: NET_IRDA=412, ......[ 225]: }; ......[ 228]: enum ......[ 229]: { ......[ 230]: RANDOM_POOLSIZE=1, ......[ 231]: RANDOM_ENTROPY_COUNT=2, ......[ 232]: RANDOM_READ_THRESH=3, ......[ 233]: RANDOM_WRITE_THRESH=4, ......[ 234]: RANDOM_BOOT_ID=5, ......[ 235]: RANDOM_UUID=6 ......[ 236]: }; ......[ 239]: enum ......[ 240]: { ......[ 241]: PTY_MAX=1, ......[ 242]: PTY_NR=2 ......[ 243]: }; ......[ 246]: enum ......[ 247]: { ......[ 248]: BUS_ISA_MEM_BASE=1, ......[ 249]: BUS_ISA_PORT_BASE=2, ......[ 250]: BUS_ISA_PORT_SHIFT=3 ......[ 251]: }; ......[ 254]: enum ......[ 255]: { ......[ 256]: NET_CORE_WMEM_MAX=1, ......[ 257]: NET_CORE_RMEM_MAX=2, ......[ 258]: NET_CORE_WMEM_DEFAULT=3, ......[ 259]: NET_CORE_RMEM_DEFAULT=4, ......[ 261]: NET_CORE_MAX_BACKLOG=6, ......[ 262]: NET_CORE_FASTROUTE=7, ......[ 263]: NET_CORE_MSG_COST=8, ......[ 264]: NET_CORE_MSG_BURST=9, ......[ 265]: NET_CORE_OPTMEM_MAX=10, ......[ 266]: NET_CORE_HOT_LIST_LENGTH=11, ......[ 267]: NET_CORE_DIVERT_VERSION=12, ......[ 268]: NET_CORE_NO_CONG_THRESH=13, ......[ 269]: NET_CORE_NO_CONG=14, ......[ 270]: NET_CORE_LO_CONG=15, ......[ 271]: NET_CORE_MOD_CONG=16, ......[ 272]: NET_CORE_DEV_WEIGHT=17, ......[ 273]: NET_CORE_SOMAXCONN=18, ......[ 274]: NET_CORE_BUDGET=19, ......[ 275]: NET_CORE_AEVENT_ETIME=20, ......[ 276]: NET_CORE_AEVENT_RSEQTH=21, ......[ 277]: NET_CORE_WARNINGS=22, ......[ 278]: }; ......[ 286]: enum ......[ 287]: { ......[ 288]: NET_UNIX_DESTROY_DELAY=1, ......[ 289]: NET_UNIX_DELETE_DELAY=2, ......[ 290]: NET_UNIX_MAX_DGRAM_QLEN=3, ......[ 291]: }; ......[ 294]: enum ......[ 295]: { ......[ 296]: NET_NF_CONNTRACK_MAX=1, ......[ 297]: NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, ......[ 298]: NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, ......[ 299]: NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, ......[ 300]: NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, ......[ 301]: NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, ......[ 302]: NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, ......[ 303]: NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, ......[ 304]: NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, ......[ 305]: NET_NF_CONNTRACK_UDP_TIMEOUT=10, ......[ 306]: NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, ......[ 307]: NET_NF_CONNTRACK_ICMP_TIMEOUT=12, ......[ 308]: NET_NF_CONNTRACK_GENERIC_TIMEOUT=13, ......[ 309]: NET_NF_CONNTRACK_BUCKETS=14, ......[ 310]: NET_NF_CONNTRACK_LOG_INVALID=15, ......[ 311]: NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, ......[ 312]: NET_NF_CONNTRACK_TCP_LOOSE=17, ......[ 313]: NET_NF_CONNTRACK_TCP_BE_LIBERAL=18, ......[ 314]: NET_NF_CONNTRACK_TCP_MAX_RETRANS=19, ......[ 315]: NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, ......[ 316]: NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, ......[ 317]: NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, ......[ 318]: NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, ......[ 319]: NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, ......[ 320]: NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, ......[ 321]: NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, ......[ 322]: NET_NF_CONNTRACK_COUNT=27, ......[ 323]: NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28, ......[ 324]: NET_NF_CONNTRACK_FRAG6_TIMEOUT=29, ......[ 325]: NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30, ......[ 326]: NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31, ......[ 327]: NET_NF_CONNTRACK_CHECKSUM=32, ......[ 328]: }; ......[ 331]: enum ......[ 332]: { ......[ 334]: NET_IPV4_FORWARD=8, ......[ 335]: NET_IPV4_DYNADDR=9, ......[ 337]: NET_IPV4_CONF=16, ......[ 338]: NET_IPV4_NEIGH=17, ......[ 339]: NET_IPV4_ROUTE=18, ......[ 340]: NET_IPV4_FIB_HASH=19, ......[ 341]: NET_IPV4_NETFILTER=20, ......[ 343]: NET_IPV4_TCP_TIMESTAMPS=33, ......[ 344]: NET_IPV4_TCP_WINDOW_SCALING=34, ......[ 345]: NET_IPV4_TCP_SACK=35, ......[ 346]: NET_IPV4_TCP_RETRANS_COLLAPSE=36, ......[ 347]: NET_IPV4_DEFAULT_TTL=37, ......[ 348]: NET_IPV4_AUTOCONFIG=38, ......[ 349]: NET_IPV4_NO_PMTU_DISC=39, ......[ 350]: NET_IPV4_TCP_SYN_RETRIES=40, ......[ 351]: NET_IPV4_IPFRAG_HIGH_THRESH=41, ......[ 352]: NET_IPV4_IPFRAG_LOW_THRESH=42, ......[ 353]: NET_IPV4_IPFRAG_TIME=43, ......[ 354]: NET_IPV4_TCP_MAX_KA_PROBES=44, ......[ 355]: NET_IPV4_TCP_KEEPALIVE_TIME=45, ......[ 356]: NET_IPV4_TCP_KEEPALIVE_PROBES=46, ......[ 357]: NET_IPV4_TCP_RETRIES1=47, ......[ 358]: NET_IPV4_TCP_RETRIES2=48, ......[ 359]: NET_IPV4_TCP_FIN_TIMEOUT=49, ......[ 360]: NET_IPV4_IP_MASQ_DEBUG=50, ......[ 361]: NET_TCP_SYNCOOKIES=51, ......[ 362]: NET_TCP_STDURG=52, ......[ 363]: NET_TCP_RFC1337=53, ......[ 364]: NET_TCP_SYN_TAILDROP=54, ......[ 365]: NET_TCP_MAX_SYN_BACKLOG=55, ......[ 366]: NET_IPV4_LOCAL_PORT_RANGE=56, ......[ 367]: NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, ......[ 368]: NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, ......[ 369]: NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, ......[ 370]: NET_IPV4_ICMP_DESTUNREACH_RATE=60, ......[ 371]: NET_IPV4_ICMP_TIMEEXCEED_RATE=61, ......[ 372]: NET_IPV4_ICMP_PARAMPROB_RATE=62, ......[ 373]: NET_IPV4_ICMP_ECHOREPLY_RATE=63, ......[ 374]: NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, ......[ 375]: NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, ......[ 376]: NET_TCP_TW_RECYCLE=66, ......[ 377]: NET_IPV4_ALWAYS_DEFRAG=67, ......[ 378]: NET_IPV4_TCP_KEEPALIVE_INTVL=68, ......[ 379]: NET_IPV4_INET_PEER_THRESHOLD=69, ......[ 380]: NET_IPV4_INET_PEER_MINTTL=70, ......[ 381]: NET_IPV4_INET_PEER_MAXTTL=71, ......[ 382]: NET_IPV4_INET_PEER_GC_MINTIME=72, ......[ 383]: NET_IPV4_INET_PEER_GC_MAXTIME=73, ......[ 384]: NET_TCP_ORPHAN_RETRIES=74, ......[ 385]: NET_TCP_ABORT_ON_OVERFLOW=75, ......[ 386]: NET_TCP_SYNACK_RETRIES=76, ......[ 387]: NET_TCP_MAX_ORPHANS=77, ......[ 388]: NET_TCP_MAX_TW_BUCKETS=78, ......[ 389]: NET_TCP_FACK=79, ......[ 390]: NET_TCP_REORDERING=80, ......[ 391]: NET_TCP_ECN=81, ......[ 392]: NET_TCP_DSACK=82, ......[ 393]: NET_TCP_MEM=83, ......[ 394]: NET_TCP_WMEM=84, ......[ 395]: NET_TCP_RMEM=85, ......[ 396]: NET_TCP_APP_WIN=86, ......[ 397]: NET_TCP_ADV_WIN_SCALE=87, ......[ 398]: NET_IPV4_NONLOCAL_BIND=88, ......[ 399]: NET_IPV4_ICMP_RATELIMIT=89, ......[ 400]: NET_IPV4_ICMP_RATEMASK=90, ......[ 401]: NET_TCP_TW_REUSE=91, ......[ 402]: NET_TCP_FRTO=92, ......[ 403]: NET_TCP_LOW_LATENCY=93, ......[ 404]: NET_IPV4_IPFRAG_SECRET_INTERVAL=94, ......[ 405]: NET_IPV4_IGMP_MAX_MSF=96, ......[ 406]: NET_TCP_NO_METRICS_SAVE=97, ......[ 407]: NET_TCP_DEFAULT_WIN_SCALE=105, ......[ 408]: NET_TCP_MODERATE_RCVBUF=106, ......[ 409]: NET_TCP_TSO_WIN_DIVISOR=107, ......[ 410]: NET_TCP_BIC_BETA=108, ......[ 411]: NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, ......[ 412]: NET_TCP_CONG_CONTROL=110, ......[ 413]: NET_TCP_ABC=111, ......[ 414]: NET_IPV4_IPFRAG_MAX_DIST=112, ......[ 415]: NET_TCP_MTU_PROBING=113, ......[ 416]: NET_TCP_BASE_MSS=114, ......[ 417]: NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115, ......[ 418]: NET_TCP_DMA_COPYBREAK=116, ......[ 419]: NET_TCP_SLOW_START_AFTER_IDLE=117, ......[ 420]: NET_CIPSOV4_CACHE_ENABLE=118, ......[ 421]: NET_CIPSOV4_CACHE_BUCKET_SIZE=119, ......[ 422]: NET_CIPSOV4_RBM_OPTFMT=120, ......[ 423]: NET_CIPSOV4_RBM_STRICTVALID=121, ......[ 424]: NET_TCP_AVAIL_CONG_CONTROL=122, ......[ 425]: NET_TCP_ALLOWED_CONG_CONTROL=123, ......[ 426]: NET_TCP_MAX_SSTHRESH=124, ......[ 427]: NET_TCP_FRTO_RESPONSE=125, ......[ 428]: }; ......[ 430]: enum { ......[ 431]: NET_IPV4_ROUTE_FLUSH=1, ......[ 432]: NET_IPV4_ROUTE_MIN_DELAY=2, ......[ 433]: NET_IPV4_ROUTE_MAX_DELAY=3, ......[ 434]: NET_IPV4_ROUTE_GC_THRESH=4, ......[ 435]: NET_IPV4_ROUTE_MAX_SIZE=5, ......[ 436]: NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, ......[ 437]: NET_IPV4_ROUTE_GC_TIMEOUT=7, ......[ 438]: NET_IPV4_ROUTE_GC_INTERVAL=8, ......[ 439]: NET_IPV4_ROUTE_REDIRECT_LOAD=9, ......[ 440]: NET_IPV4_ROUTE_REDIRECT_NUMBER=10, ......[ 441]: NET_IPV4_ROUTE_REDIRECT_SILENCE=11, ......[ 442]: NET_IPV4_ROUTE_ERROR_COST=12, ......[ 443]: NET_IPV4_ROUTE_ERROR_BURST=13, ......[ 444]: NET_IPV4_ROUTE_GC_ELASTICITY=14, ......[ 445]: NET_IPV4_ROUTE_MTU_EXPIRES=15, ......[ 446]: NET_IPV4_ROUTE_MIN_PMTU=16, ......[ 447]: NET_IPV4_ROUTE_MIN_ADVMSS=17, ......[ 448]: NET_IPV4_ROUTE_SECRET_INTERVAL=18, ......[ 449]: NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19, ......[ 450]: }; ......[ 452]: enum ......[ 453]: { ......[ 454]: NET_PROTO_CONF_ALL=-2, ......[ 455]: NET_PROTO_CONF_DEFAULT=-3 ......[ 458]: }; ......[ 460]: enum ......[ 461]: { ......[ 462]: NET_IPV4_CONF_FORWARDING=1, ......[ 463]: NET_IPV4_CONF_MC_FORWARDING=2, ......[ 464]: NET_IPV4_CONF_PROXY_ARP=3, ......[ 465]: NET_IPV4_CONF_ACCEPT_REDIRECTS=4, ......[ 466]: NET_IPV4_CONF_SECURE_REDIRECTS=5, ......[ 467]: NET_IPV4_CONF_SEND_REDIRECTS=6, ......[ 468]: NET_IPV4_CONF_SHARED_MEDIA=7, ......[ 469]: NET_IPV4_CONF_RP_FILTER=8, ......[ 470]: NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, ......[ 471]: NET_IPV4_CONF_BOOTP_RELAY=10, ......[ 472]: NET_IPV4_CONF_LOG_MARTIANS=11, ......[ 473]: NET_IPV4_CONF_TAG=12, ......[ 474]: NET_IPV4_CONF_ARPFILTER=13, ......[ 475]: NET_IPV4_CONF_MEDIUM_ID=14, ......[ 476]: NET_IPV4_CONF_NOXFRM=15, ......[ 477]: NET_IPV4_CONF_NOPOLICY=16, ......[ 478]: NET_IPV4_CONF_FORCE_IGMP_VERSION=17, ......[ 479]: NET_IPV4_CONF_ARP_ANNOUNCE=18, ......[ 480]: NET_IPV4_CONF_ARP_IGNORE=19, ......[ 481]: NET_IPV4_CONF_PROMOTE_SECONDARIES=20, ......[ 482]: NET_IPV4_CONF_ARP_ACCEPT=21, ......[ 483]: NET_IPV4_CONF_ARP_NOTIFY=22, ......[ 484]: }; ......[ 487]: enum ......[ 488]: { ......[ 489]: NET_IPV4_NF_CONNTRACK_MAX=1, ......[ 490]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, ......[ 491]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, ......[ 492]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, ......[ 493]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, ......[ 494]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, ......[ 495]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, ......[ 496]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, ......[ 497]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, ......[ 498]: NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, ......[ 499]: NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, ......[ 500]: NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, ......[ 501]: NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, ......[ 502]: NET_IPV4_NF_CONNTRACK_BUCKETS=14, ......[ 503]: NET_IPV4_NF_CONNTRACK_LOG_INVALID=15, ......[ 504]: NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, ......[ 505]: NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17, ......[ 506]: NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18, ......[ 507]: NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19, ......[ 508]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, ......[ 509]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, ......[ 510]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, ......[ 511]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, ......[ 512]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, ......[ 513]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, ......[ 514]: NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, ......[ 515]: NET_IPV4_NF_CONNTRACK_COUNT=27, ......[ 516]: NET_IPV4_NF_CONNTRACK_CHECKSUM=28, ......[ 517]: }; ......[ 520]: enum { ......[ 521]: NET_IPV6_CONF=16, ......[ 522]: NET_IPV6_NEIGH=17, ......[ 523]: NET_IPV6_ROUTE=18, ......[ 524]: NET_IPV6_ICMP=19, ......[ 525]: NET_IPV6_BINDV6ONLY=20, ......[ 526]: NET_IPV6_IP6FRAG_HIGH_THRESH=21, ......[ 527]: NET_IPV6_IP6FRAG_LOW_THRESH=22, ......[ 528]: NET_IPV6_IP6FRAG_TIME=23, ......[ 529]: NET_IPV6_IP6FRAG_SECRET_INTERVAL=24, ......[ 530]: NET_IPV6_MLD_MAX_MSF=25, ......[ 531]: }; ......[ 533]: enum { ......[ 534]: NET_IPV6_ROUTE_FLUSH=1, ......[ 535]: NET_IPV6_ROUTE_GC_THRESH=2, ......[ 536]: NET_IPV6_ROUTE_MAX_SIZE=3, ......[ 537]: NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, ......[ 538]: NET_IPV6_ROUTE_GC_TIMEOUT=5, ......[ 539]: NET_IPV6_ROUTE_GC_INTERVAL=6, ......[ 540]: NET_IPV6_ROUTE_GC_ELASTICITY=7, ......[ 541]: NET_IPV6_ROUTE_MTU_EXPIRES=8, ......[ 542]: NET_IPV6_ROUTE_MIN_ADVMSS=9, ......[ 543]: NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10 ......[ 544]: }; ......[ 546]: enum { ......[ 547]: NET_IPV6_FORWARDING=1, ......[ 548]: NET_IPV6_HOP_LIMIT=2, ......[ 549]: NET_IPV6_MTU=3, ......[ 550]: NET_IPV6_ACCEPT_RA=4, ......[ 551]: NET_IPV6_ACCEPT_REDIRECTS=5, ......[ 552]: NET_IPV6_AUTOCONF=6, ......[ 553]: NET_IPV6_DAD_TRANSMITS=7, ......[ 554]: NET_IPV6_RTR_SOLICITS=8, ......[ 555]: NET_IPV6_RTR_SOLICIT_INTERVAL=9, ......[ 556]: NET_IPV6_RTR_SOLICIT_DELAY=10, ......[ 557]: NET_IPV6_USE_TEMPADDR=11, ......[ 558]: NET_IPV6_TEMP_VALID_LFT=12, ......[ 559]: NET_IPV6_TEMP_PREFERED_LFT=13, ......[ 560]: NET_IPV6_REGEN_MAX_RETRY=14, ......[ 561]: NET_IPV6_MAX_DESYNC_FACTOR=15, ......[ 562]: NET_IPV6_MAX_ADDRESSES=16, ......[ 563]: NET_IPV6_FORCE_MLD_VERSION=17, ......[ 564]: NET_IPV6_ACCEPT_RA_DEFRTR=18, ......[ 565]: NET_IPV6_ACCEPT_RA_PINFO=19, ......[ 566]: NET_IPV6_ACCEPT_RA_RTR_PREF=20, ......[ 567]: NET_IPV6_RTR_PROBE_INTERVAL=21, ......[ 568]: NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, ......[ 569]: NET_IPV6_PROXY_NDP=23, ......[ 570]: NET_IPV6_ACCEPT_SOURCE_ROUTE=25, ......[ 571]: __NET_IPV6_MAX ......[ 572]: }; ......[ 575]: enum { ......[ 576]: NET_IPV6_ICMP_RATELIMIT=1 ......[ 577]: }; ......[ 580]: enum { ......[ 581]: NET_NEIGH_MCAST_SOLICIT=1, ......[ 582]: NET_NEIGH_UCAST_SOLICIT=2, ......[ 583]: NET_NEIGH_APP_SOLICIT=3, ......[ 584]: NET_NEIGH_RETRANS_TIME=4, ......[ 585]: NET_NEIGH_REACHABLE_TIME=5, ......[ 586]: NET_NEIGH_DELAY_PROBE_TIME=6, ......[ 587]: NET_NEIGH_GC_STALE_TIME=7, ......[ 588]: NET_NEIGH_UNRES_QLEN=8, ......[ 589]: NET_NEIGH_PROXY_QLEN=9, ......[ 590]: NET_NEIGH_ANYCAST_DELAY=10, ......[ 591]: NET_NEIGH_PROXY_DELAY=11, ......[ 592]: NET_NEIGH_LOCKTIME=12, ......[ 593]: NET_NEIGH_GC_INTERVAL=13, ......[ 594]: NET_NEIGH_GC_THRESH1=14, ......[ 595]: NET_NEIGH_GC_THRESH2=15, ......[ 596]: NET_NEIGH_GC_THRESH3=16, ......[ 597]: NET_NEIGH_RETRANS_TIME_MS=17, ......[ 598]: NET_NEIGH_REACHABLE_TIME_MS=18, ......[ 599]: }; ......[ 602]: enum { ......[ 603]: NET_DCCP_DEFAULT=1, ......[ 604]: }; ......[ 607]: enum { ......[ 608]: NET_IPX_PPROP_BROADCASTING=1, ......[ 609]: NET_IPX_FORWARDING=2 ......[ 610]: }; ......[ 613]: enum { ......[ 614]: NET_LLC2=1, ......[ 615]: NET_LLC_STATION=2, ......[ 616]: }; ......[ 619]: enum { ......[ 620]: NET_LLC2_TIMEOUT=1, ......[ 621]: }; ......[ 624]: enum { ......[ 625]: NET_LLC_STATION_ACK_TIMEOUT=1, ......[ 626]: }; ......[ 629]: enum { ......[ 630]: NET_LLC2_ACK_TIMEOUT=1, ......[ 631]: NET_LLC2_P_TIMEOUT=2, ......[ 632]: NET_LLC2_REJ_TIMEOUT=3, ......[ 633]: NET_LLC2_BUSY_TIMEOUT=4, ......[ 634]: }; ......[ 637]: enum { ......[ 638]: NET_ATALK_AARP_EXPIRY_TIME=1, ......[ 639]: NET_ATALK_AARP_TICK_TIME=2, ......[ 640]: NET_ATALK_AARP_RETRANSMIT_LIMIT=3, ......[ 641]: NET_ATALK_AARP_RESOLVE_TIME=4 ......[ 642]: }; ......[ 646]: enum { ......[ 647]: NET_NETROM_DEFAULT_PATH_QUALITY=1, ......[ 648]: NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, ......[ 649]: NET_NETROM_NETWORK_TTL_INITIALISER=3, ......[ 650]: NET_NETROM_TRANSPORT_TIMEOUT=4, ......[ 651]: NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, ......[ 652]: NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, ......[ 653]: NET_NETROM_TRANSPORT_BUSY_DELAY=7, ......[ 654]: NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, ......[ 655]: NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, ......[ 656]: NET_NETROM_ROUTING_CONTROL=10, ......[ 657]: NET_NETROM_LINK_FAILS_COUNT=11, ......[ 658]: NET_NETROM_RESET=12 ......[ 659]: }; ......[ 662]: enum { ......[ 663]: NET_AX25_IP_DEFAULT_MODE=1, ......[ 664]: NET_AX25_DEFAULT_MODE=2, ......[ 665]: NET_AX25_BACKOFF_TYPE=3, ......[ 666]: NET_AX25_CONNECT_MODE=4, ......[ 667]: NET_AX25_STANDARD_WINDOW=5, ......[ 668]: NET_AX25_EXTENDED_WINDOW=6, ......[ 669]: NET_AX25_T1_TIMEOUT=7, ......[ 670]: NET_AX25_T2_TIMEOUT=8, ......[ 671]: NET_AX25_T3_TIMEOUT=9, ......[ 672]: NET_AX25_IDLE_TIMEOUT=10, ......[ 673]: NET_AX25_N2=11, ......[ 674]: NET_AX25_PACLEN=12, ......[ 675]: NET_AX25_PROTOCOL=13, ......[ 676]: NET_AX25_DAMA_SLAVE_TIMEOUT=14 ......[ 677]: }; ......[ 680]: enum { ......[ 681]: NET_ROSE_RESTART_REQUEST_TIMEOUT=1, ......[ 682]: NET_ROSE_CALL_REQUEST_TIMEOUT=2, ......[ 683]: NET_ROSE_RESET_REQUEST_TIMEOUT=3, ......[ 684]: NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, ......[ 685]: NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, ......[ 686]: NET_ROSE_ROUTING_CONTROL=6, ......[ 687]: NET_ROSE_LINK_FAIL_TIMEOUT=7, ......[ 688]: NET_ROSE_MAX_VCS=8, ......[ 689]: NET_ROSE_WINDOW_SIZE=9, ......[ 690]: NET_ROSE_NO_ACTIVITY_TIMEOUT=10 ......[ 691]: }; ......[ 694]: enum { ......[ 695]: NET_X25_RESTART_REQUEST_TIMEOUT=1, ......[ 696]: NET_X25_CALL_REQUEST_TIMEOUT=2, ......[ 697]: NET_X25_RESET_REQUEST_TIMEOUT=3, ......[ 698]: NET_X25_CLEAR_REQUEST_TIMEOUT=4, ......[ 699]: NET_X25_ACK_HOLD_BACK_TIMEOUT=5, ......[ 700]: NET_X25_FORWARD=6 ......[ 701]: }; ......[ 704]: enum ......[ 705]: { ......[ 706]: NET_TR_RIF_TIMEOUT=1 ......[ 707]: }; ......[ 710]: enum { ......[ 711]: NET_DECNET_NODE_TYPE = 1, ......[ 712]: NET_DECNET_NODE_ADDRESS = 2, ......[ 713]: NET_DECNET_NODE_NAME = 3, ......[ 714]: NET_DECNET_DEFAULT_DEVICE = 4, ......[ 715]: NET_DECNET_TIME_WAIT = 5, ......[ 716]: NET_DECNET_DN_COUNT = 6, ......[ 717]: NET_DECNET_DI_COUNT = 7, ......[ 718]: NET_DECNET_DR_COUNT = 8, ......[ 719]: NET_DECNET_DST_GC_INTERVAL = 9, ......[ 720]: NET_DECNET_CONF = 10, ......[ 721]: NET_DECNET_NO_FC_MAX_CWND = 11, ......[ 722]: NET_DECNET_MEM = 12, ......[ 723]: NET_DECNET_RMEM = 13, ......[ 724]: NET_DECNET_WMEM = 14, ......[ 725]: NET_DECNET_DEBUG_LEVEL = 255 ......[ 726]: }; ......[ 729]: enum { ......[ 730]: NET_DECNET_CONF_LOOPBACK = -2, ......[ 731]: NET_DECNET_CONF_DDCMP = -3, ......[ 732]: NET_DECNET_CONF_PPP = -4, ......[ 733]: NET_DECNET_CONF_X25 = -5, ......[ 734]: NET_DECNET_CONF_GRE = -6, ......[ 735]: NET_DECNET_CONF_ETHER = -7 ......[ 738]: }; ......[ 741]: enum { ......[ 742]: NET_DECNET_CONF_DEV_PRIORITY = 1, ......[ 743]: NET_DECNET_CONF_DEV_T1 = 2, ......[ 744]: NET_DECNET_CONF_DEV_T2 = 3, ......[ 745]: NET_DECNET_CONF_DEV_T3 = 4, ......[ 746]: NET_DECNET_CONF_DEV_FORWARDING = 5, ......[ 747]: NET_DECNET_CONF_DEV_BLKSIZE = 6, ......[ 748]: NET_DECNET_CONF_DEV_STATE = 7 ......[ 749]: }; ......[ 752]: enum { ......[ 753]: NET_SCTP_RTO_INITIAL = 1, ......[ 754]: NET_SCTP_RTO_MIN = 2, ......[ 755]: NET_SCTP_RTO_MAX = 3, ......[ 756]: NET_SCTP_RTO_ALPHA = 4, ......[ 757]: NET_SCTP_RTO_BETA = 5, ......[ 758]: NET_SCTP_VALID_COOKIE_LIFE = 6, ......[ 759]: NET_SCTP_ASSOCIATION_MAX_RETRANS = 7, ......[ 760]: NET_SCTP_PATH_MAX_RETRANS = 8, ......[ 761]: NET_SCTP_MAX_INIT_RETRANSMITS = 9, ......[ 762]: NET_SCTP_HB_INTERVAL = 10, ......[ 763]: NET_SCTP_PRESERVE_ENABLE = 11, ......[ 764]: NET_SCTP_MAX_BURST = 12, ......[ 765]: NET_SCTP_ADDIP_ENABLE = 13, ......[ 766]: NET_SCTP_PRSCTP_ENABLE = 14, ......[ 767]: NET_SCTP_SNDBUF_POLICY = 15, ......[ 768]: NET_SCTP_SACK_TIMEOUT = 16, ......[ 769]: NET_SCTP_RCVBUF_POLICY = 17, ......[ 770]: }; ......[ 773]: enum { ......[ 774]: NET_BRIDGE_NF_CALL_ARPTABLES = 1, ......[ 775]: NET_BRIDGE_NF_CALL_IPTABLES = 2, ......[ 776]: NET_BRIDGE_NF_CALL_IP6TABLES = 3, ......[ 777]: NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4, ......[ 778]: NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5, ......[ 779]: }; ......[ 782]: enum { ......[ 783]: NET_IRDA_DISCOVERY=1, ......[ 784]: NET_IRDA_DEVNAME=2, ......[ 785]: NET_IRDA_DEBUG=3, ......[ 786]: NET_IRDA_FAST_POLL=4, ......[ 787]: NET_IRDA_DISCOVERY_SLOTS=5, ......[ 788]: NET_IRDA_DISCOVERY_TIMEOUT=6, ......[ 789]: NET_IRDA_SLOT_TIMEOUT=7, ......[ 790]: NET_IRDA_MAX_BAUD_RATE=8, ......[ 791]: NET_IRDA_MIN_TX_TURN_TIME=9, ......[ 792]: NET_IRDA_MAX_TX_DATA_SIZE=10, ......[ 793]: NET_IRDA_MAX_TX_WINDOW=11, ......[ 794]: NET_IRDA_MAX_NOREPLY_TIME=12, ......[ 795]: NET_IRDA_WARN_NOREPLY_TIME=13, ......[ 796]: NET_IRDA_LAP_KEEPALIVE_TIME=14, ......[ 797]: }; ......[ 801]: enum ......[ 802]: { ......[ 803]: FS_NRINODE=1, ......[ 804]: FS_STATINODE=2, ......[ 805]: FS_MAXINODE=3, ......[ 806]: FS_NRDQUOT=4, ......[ 807]: FS_MAXDQUOT=5, ......[ 808]: FS_NRFILE=6, ......[ 809]: FS_MAXFILE=7, ......[ 810]: FS_DENTRY=8, ......[ 811]: FS_NRSUPER=9, ......[ 812]: FS_MAXSUPER=10, ......[ 813]: FS_OVERFLOWUID=11, ......[ 814]: FS_OVERFLOWGID=12, ......[ 815]: FS_LEASES=13, ......[ 816]: FS_DIR_NOTIFY=14, ......[ 817]: FS_LEASE_TIME=15, ......[ 818]: FS_DQSTATS=16, ......[ 819]: FS_XFS=17, ......[ 820]: FS_AIO_NR=18, ......[ 821]: FS_AIO_MAX_NR=19, ......[ 822]: FS_INOTIFY=20, ......[ 823]: FS_OCFS2=988, ......[ 824]: }; ......[ 827]: enum { ......[ 828]: FS_DQ_LOOKUPS = 1, ......[ 829]: FS_DQ_DROPS = 2, ......[ 830]: FS_DQ_READS = 3, ......[ 831]: FS_DQ_WRITES = 4, ......[ 832]: FS_DQ_CACHE_HITS = 5, ......[ 833]: FS_DQ_ALLOCATED = 6, ......[ 834]: FS_DQ_FREE = 7, ......[ 835]: FS_DQ_SYNCS = 8, ......[ 836]: FS_DQ_WARNINGS = 9, ......[ 837]: }; ......[ 842]: enum { ......[ 843]: DEV_CDROM=1, ......[ 844]: DEV_HWMON=2, ......[ 845]: DEV_PARPORT=3, ......[ 846]: DEV_RAID=4, ......[ 847]: DEV_MAC_HID=5, ......[ 848]: DEV_SCSI=6, ......[ 849]: DEV_IPMI=7, ......[ 850]: }; ......[ 853]: enum { ......[ 854]: DEV_CDROM_INFO=1, ......[ 855]: DEV_CDROM_AUTOCLOSE=2, ......[ 856]: DEV_CDROM_AUTOEJECT=3, ......[ 857]: DEV_CDROM_DEBUG=4, ......[ 858]: DEV_CDROM_LOCK=5, ......[ 859]: DEV_CDROM_CHECK_MEDIA=6 ......[ 860]: }; ......[ 863]: enum { ......[ 864]: DEV_PARPORT_DEFAULT=-3 ......[ 865]: }; ......[ 868]: enum { ......[ 869]: DEV_RAID_SPEED_LIMIT_MIN=1, ......[ 870]: DEV_RAID_SPEED_LIMIT_MAX=2 ......[ 871]: }; ......[ 874]: enum { ......[ 875]: DEV_PARPORT_DEFAULT_TIMESLICE=1, ......[ 876]: DEV_PARPORT_DEFAULT_SPINTIME=2 ......[ 877]: }; ......[ 880]: enum { ......[ 881]: DEV_PARPORT_SPINTIME=1, ......[ 882]: DEV_PARPORT_BASE_ADDR=2, ......[ 883]: DEV_PARPORT_IRQ=3, ......[ 884]: DEV_PARPORT_DMA=4, ......[ 885]: DEV_PARPORT_MODES=5, ......[ 886]: DEV_PARPORT_DEVICES=6, ......[ 887]: DEV_PARPORT_AUTOPROBE=16 ......[ 888]: }; ......[ 891]: enum { ......[ 892]: DEV_PARPORT_DEVICES_ACTIVE=-3, ......[ 893]: }; ......[ 896]: enum { ......[ 897]: DEV_PARPORT_DEVICE_TIMESLICE=1, ......[ 898]: }; ......[ 901]: enum { ......[ 902]: DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, ......[ 903]: DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, ......[ 904]: DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, ......[ 905]: DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, ......[ 906]: DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, ......[ 907]: DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 ......[ 908]: }; ......[ 911]: enum { ......[ 912]: DEV_SCSI_LOGGING_LEVEL=1, ......[ 913]: }; ......[ 916]: enum { ......[ 917]: DEV_IPMI_POWEROFF_POWERCYCLE=1, ......[ 918]: }; ......[ 921]: enum ......[ 922]: { ......[ 923]: ABI_DEFHANDLER_COFF=1, ......[ 924]: ABI_DEFHANDLER_ELF=2, ......[ 925]: ABI_DEFHANDLER_LCALL7=3, ......[ 926]: ABI_DEFHANDLER_LIBCSO=4, ......[ 927]: ABI_TRACE=5, ......[ 928]: ABI_FAKE_UTSNAME=6, ......[ 929]: }; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/sysctl.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysctl.h .....[ 31]: struct ctl_table; .....[ 32]: struct nsproxy; .....[ 33]: struct ctl_table_root; .....[ 34]: struct ctl_table_header; .....[ 35]: struct ctl_dir; .....[ 37]: typedef struct ctl_table ctl_table; .....[ 39]: typedef int proc_handler (struct ctl_table *ctl, int write, .....[ 40]: void *buffer, size_t *lenp, loff_t *ppos); .....[ 42]: extern int proc_dostring(struct ctl_table *, int, .....[ 43]: void *, size_t *, loff_t *); .....[ 44]: extern int proc_dointvec(struct ctl_table *, int, .....[ 45]: void *, size_t *, loff_t *); .....[ 46]: extern int proc_dointvec_minmax(struct ctl_table *, int, .....[ 47]: void *, size_t *, loff_t *); .....[ 48]: extern int proc_dointvec_jiffies(struct ctl_table *, int, .....[ 49]: void *, size_t *, loff_t *); .....[ 50]: extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int, .....[ 51]: void *, size_t *, loff_t *); .....[ 52]: extern int proc_dointvec_ms_jiffies(struct ctl_table *, int, .....[ 53]: void *, size_t *, loff_t *); .....[ 54]: extern int proc_doulongvec_minmax(struct ctl_table *, int, .....[ 55]: void *, size_t *, loff_t *); .....[ 56]: extern int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int, .....[ 57]: void *, size_t *, loff_t *); .....[ 58]: extern int proc_do_large_bitmap(struct ctl_table *, int, .....[ 59]: void *, size_t *, loff_t *); .....[ 89]: struct ctl_table_poll { .....[ 90]: atomic_t event; .....[ 91]: wait_queue_head_t wait; .....[ 92]: }; .....[ 94]: static inline __attribute__((no_instrument_function)) void *proc_sys_poll_event(struct ctl_table_poll *poll\ ..... ) .....[ 95]: { .....[ 96]: return (void *)(unsigned long)atomic_read(&poll->event); .....[ 97]: } .....[ 107]: struct ctl_table .....[ 108]: { .....[ 109]: const char *procname; .....[ 110]: void *data; .....[ 111]: int maxlen; .....[ 112]: umode_t mode; .....[ 113]: struct ctl_table *child; .....[ 114]: proc_handler *proc_handler; .....[ 115]: struct ctl_table_poll *poll; .....[ 116]: void *extra1; .....[ 117]: void *extra2; .....[ 118]: }; .....[ 120]: struct ctl_node { .....[ 121]: struct rb_node node; .....[ 122]: struct ctl_table_header *header; .....[ 123]: }; .....[ 127]: struct ctl_table_header .....[ 128]: { .....[ 129]: union { .....[ 130]: struct { .....[ 131]: struct ctl_table *ctl_table; .....[ 132]: int used; .....[ 133]: int count; .....[ 134]: int nreg; .....[ 135]: }; .....[ 136]: struct callback_head rcu; .....[ 137]: }; .....[ 138]: struct completion *unregistering; .....[ 139]: struct ctl_table *ctl_table_arg; .....[ 140]: struct ctl_table_root *root; .....[ 141]: struct ctl_table_set *set; .....[ 142]: struct ctl_dir *parent; .....[ 143]: struct ctl_node *node; .....[ 144]: }; .....[ 146]: struct ctl_dir { .....[ 148]: struct ctl_table_header header; .....[ 149]: struct rb_root root; .....[ 150]: }; .....[ 152]: struct ctl_table_set { .....[ 153]: int (*is_seen)(struct ctl_table_set *); .....[ 154]: struct ctl_dir dir; .....[ 155]: }; .....[ 157]: struct ctl_table_root { .....[ 158]: struct ctl_table_set default_set; .....[ 159]: struct ctl_table_set *(*lookup)(struct ctl_table_root *root, .....[ 160]: struct nsproxy *namespaces); .....[ 161]: int (*permissions)(struct ctl_table_header *head, struct ctl_table *table); .....[ 162]: }; .....[ 165]: struct ctl_path { .....[ 166]: const char *procname; .....[ 167]: }; .....[ 171]: void proc_sys_poll_notify(struct ctl_table_poll *poll); .....[ 173]: extern void setup_sysctl_set(struct ctl_table_set *p, .....[ 174]: struct ctl_table_root *root, .....[ 175]: int (*is_seen)(struct ctl_table_set *)); .....[ 176]: extern void retire_sysctl_set(struct ctl_table_set *set); .....[ 178]: void register_sysctl_root(struct ctl_table_root *root); .....[ 179]: struct ctl_table_header *__register_sysctl_table( .....[ 180]: struct ctl_table_set *set, .....[ 181]: const char *path, struct ctl_table *table); .....[ 182]: struct ctl_table_header *__register_sysctl_paths( .....[ 183]: struct ctl_table_set *set, .....[ 184]: const struct ctl_path *path, struct ctl_table *table); .....[ 185]: struct ctl_table_header *register_sysctl(const char *path, struct ctl_table *table); .....[ 186]: struct ctl_table_header *register_sysctl_table(struct ctl_table * table); .....[ 187]: struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path, .....[ 188]: struct ctl_table *table); .....[ 190]: void unregister_sysctl_table(struct ctl_table_header * table); .....[ 192]: extern int sysctl_init(void); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysctl.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/key.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/assoc_array.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/assoc_array.h .....[ 26]: struct assoc_array { .....[ 27]: struct assoc_array_ptr *root; .....[ 28]: unsigned long nr_leaves_on_tree; .....[ 29]: }; .....[ 34]: struct assoc_array_ops { .....[ 36]: unsigned long (*get_key_chunk)(const void *index_key, int level); .....[ 39]: unsigned long (*get_object_key_chunk)(const void *object, int level); .....[ 42]: bool (*compare_object)(const void *object, const void *index_key); .....[ 47]: int (*diff_objects)(const void *object, const void *index_key); .....[ 50]: void (*free_object)(void *object); .....[ 51]: }; .....[ 56]: struct assoc_array_edit; .....[ 58]: static inline __attribute__((no_instrument_function)) void assoc_array_init(struct assoc_array *array) .....[ 59]: { .....[ 60]: array->root = ((void *)0); .....[ 61]: array->nr_leaves_on_tree = 0; .....[ 62]: } .....[ 64]: extern int assoc_array_iterate(const struct assoc_array *array, .....[ 65]: int (*iterator)(const void *object, .....[ 66]: void *iterator_data), .....[ 67]: void *iterator_data); .....[ 68]: extern void *assoc_array_find(const struct assoc_array *array, .....[ 69]: const struct assoc_array_ops *ops, .....[ 70]: const void *index_key); .....[ 71]: extern void assoc_array_destroy(struct assoc_array *array, .....[ 72]: const struct assoc_array_ops *ops); .....[ 73]: extern struct assoc_array_edit *assoc_array_insert(struct assoc_array *array, .....[ 74]: const struct assoc_array_ops *ops, .....[ 75]: const void *index_key, .....[ 76]: void *object); .....[ 77]: extern void assoc_array_insert_set_object(struct assoc_array_edit *edit, .....[ 78]: void *object); .....[ 79]: extern struct assoc_array_edit *assoc_array_delete(struct assoc_array *array, .....[ 80]: const struct assoc_array_ops *ops, .....[ 81]: const void *index_key); .....[ 82]: extern struct assoc_array_edit *assoc_array_clear(struct assoc_array *array, .....[ 83]: const struct assoc_array_ops *ops); .....[ 84]: extern void assoc_array_apply_edit(struct assoc_array_edit *edit); .....[ 85]: extern void assoc_array_cancel_edit(struct assoc_array_edit *edit); .....[ 86]: extern int assoc_array_gc(struct assoc_array *array, .....[ 87]: const struct assoc_array_ops *ops, .....[ 88]: bool (*iterator)(void *object, void *iterator_data), .....[ 89]: void *iterator_data); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/assoc_array.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/key.h ....[ 31]: typedef int32_t key_serial_t; ....[ 34]: typedef uint32_t key_perm_t; ....[ 36]: struct key; ....[ 76]: struct seq_file; ....[ 77]: struct user_struct; ....[ 78]: struct signal_struct; ....[ 79]: struct cred; ....[ 81]: struct key_type; ....[ 82]: struct key_owner; ....[ 83]: struct keyring_list; ....[ 84]: struct keyring_name; ....[ 86]: struct keyring_index_key { ....[ 87]: struct key_type *type; ....[ 88]: const char *description; ....[ 89]: size_t desc_len; ....[ 90]: }; ....[ 106]: typedef struct __key_reference_with_attributes *key_ref_t; ....[ 108]: static inline __attribute__((no_instrument_function)) key_ref_t make_key_ref(const struct key *key, ....[ 109]: bool possession) ....[ 110]: { ....[ 111]: return (key_ref_t) ((unsigned long) key | possession); ....[ 112]: } ....[ 114]: static inline __attribute__((no_instrument_function)) struct key *key_ref_to_ptr(const key_ref_t key_ref) ....[ 115]: { ....[ 116]: return (struct key *) ((unsigned long) key_ref & ~1UL); ....[ 117]: } ....[ 119]: static inline __attribute__((no_instrument_function)) bool is_key_possessed(const key_ref_t key_ref) ....[ 120]: { ....[ 121]: return (unsigned long) key_ref & 1UL; ....[ 122]: } ....[ 132]: struct key { ....[ 133]: atomic_t usage; ....[ 134]: key_serial_t serial; ....[ 135]: union { ....[ 136]: struct list_head graveyard_link; ....[ 137]: struct rb_node serial_node; ....[ 138]: }; ....[ 139]: struct rw_semaphore sem; ....[ 140]: struct key_user *user; ....[ 141]: void *security; ....[ 142]: union { ....[ 143]: time_t expiry; ....[ 144]: time_t revoked_at; ....[ 145]: }; ....[ 146]: time_t last_used_at; ....[ 147]: kuid_t uid; ....[ 148]: kgid_t gid; ....[ 149]: key_perm_t perm; ....[ 150]: unsigned short quotalen; ....[ 151]: unsigned short datalen; ....[ 162]: unsigned long flags; ....[ 179]: union { ....[ 180]: struct keyring_index_key index_key; ....[ 181]: struct { ....[ 182]: struct key_type *type; ....[ 183]: char *description; ....[ 184]: }; ....[ 185]: }; ....[ 190]: union { ....[ 191]: struct list_head link; ....[ 192]: unsigned long x[2]; ....[ 193]: void *p[2]; ....[ 194]: int reject_error; ....[ 195]: } type_data; ....[ 201]: union { ....[ 202]: union { ....[ 203]: unsigned long value; ....[ 204]: void *rcudata; ....[ 205]: void *data; ....[ 206]: void *data2[2]; ....[ 207]: } payload; ....[ 208]: struct assoc_array keys; ....[ 209]: }; ....[ 210]: }; ....[ 212]: extern struct key *key_alloc(struct key_type *type, ....[ 213]: const char *desc, ....[ 214]: kuid_t uid, kgid_t gid, ....[ 215]: const struct cred *cred, ....[ 216]: key_perm_t perm, ....[ 217]: unsigned long flags); ....[ 225]: extern void key_revoke(struct key *key); ....[ 226]: extern void key_invalidate(struct key *key); ....[ 227]: extern void key_put(struct key *key); ....[ 229]: static inline __attribute__((no_instrument_function)) struct key *__key_get(struct key *key) ....[ 230]: { ....[ 231]: atomic_inc(&key->usage); ....[ 232]: return key; ....[ 233]: } ....[ 235]: static inline __attribute__((no_instrument_function)) struct key *key_get(struct key *key) ....[ 236]: { ....[ 237]: return key ? __key_get(key) : key; ....[ 238]: } ....[ 240]: static inline __attribute__((no_instrument_function)) void key_ref_put(key_ref_t key_ref) ....[ 241]: { ....[ 242]: key_put(key_ref_to_ptr(key_ref)); ....[ 243]: } ....[ 245]: extern struct key *request_key(struct key_type *type, ....[ 246]: const char *description, ....[ 247]: const char *callout_info); ....[ 249]: extern struct key *request_key_with_auxdata(struct key_type *type, ....[ 250]: const char *description, ....[ 251]: const void *callout_info, ....[ 252]: size_t callout_len, ....[ 253]: void *aux); ....[ 255]: extern struct key *request_key_async(struct key_type *type, ....[ 256]: const char *description, ....[ 257]: const void *callout_info, ....[ 258]: size_t callout_len); ....[ 260]: extern struct key *request_key_async_with_auxdata(struct key_type *type, ....[ 261]: const char *description, ....[ 262]: const void *callout_info, ....[ 263]: size_t callout_len, ....[ 264]: void *aux); ....[ 266]: extern int wait_for_key_construction(struct key *key, bool intr); ....[ 268]: extern int key_validate(const struct key *key); ....[ 270]: extern key_ref_t key_create_or_update(key_ref_t keyring, ....[ 271]: const char *type, ....[ 272]: const char *description, ....[ 273]: const void *payload, ....[ 274]: size_t plen, ....[ 275]: key_perm_t perm, ....[ 276]: unsigned long flags); ....[ 278]: extern int key_update(key_ref_t key, ....[ 279]: const void *payload, ....[ 280]: size_t plen); ....[ 282]: extern int key_link(struct key *keyring, ....[ 283]: struct key *key); ....[ 285]: extern int key_unlink(struct key *keyring, ....[ 286]: struct key *key); ....[ 288]: extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, ....[ 289]: const struct cred *cred, ....[ 290]: key_perm_t perm, ....[ 291]: unsigned long flags, ....[ 292]: struct key *dest); ....[ 294]: extern int keyring_clear(struct key *keyring); ....[ 296]: extern key_ref_t keyring_search(key_ref_t keyring, ....[ 297]: struct key_type *type, ....[ 298]: const char *description); ....[ 300]: extern int keyring_add_key(struct key *keyring, ....[ 301]: struct key *key); ....[ 303]: extern struct key *key_lookup(key_serial_t id); ....[ 305]: static inline __attribute__((no_instrument_function)) key_serial_t key_serial(const struct key *key) ....[ 306]: { ....[ 307]: return key ? key->serial : 0; ....[ 308]: } ....[ 310]: extern void key_set_timeout(struct key *, unsigned); ....[ 319]: static inline __attribute__((no_instrument_function)) bool key_is_instantiated(const struct key *key) ....[ 320]: { ....[ 321]: return (__builtin_constant_p((0)) ? constant_test_bit((0), (&key->flags)) : variable_test_bit((0), (&key->flags\ .... ))) && ....[ 322]: !(__builtin_constant_p((5)) ? constant_test_bit((5), (&key->flags)) : variable_test_bit((5), (&key->flags)\ .... )); ....[ 323]: } ....[ 335]: extern ctl_table key_sysctls[]; ....[ 340]: extern int install_thread_keyring_to_cred(struct cred *cred); ....[ 341]: extern void key_fsuid_changed(struct task_struct *tsk); ....[ 342]: extern void key_fsgid_changed(struct task_struct *tsk); ....[ 343]: extern void key_init(void); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/key.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cred.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/selinux.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/selinux.h ....[ 17]: struct selinux_audit_rule; ....[ 18]: struct audit_context; ....[ 19]: struct kern_ipc_perm; ....[ 26]: bool selinux_is_enabled(void); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/selinux.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cred.h ...[ 22]: struct user_struct; ...[ 23]: struct cred; ...[ 24]: struct inode; ...[ 32]: struct group_info { ...[ 33]: atomic_t usage; ...[ 34]: int ngroups; ...[ 35]: int nblocks; ...[ 36]: kgid_t small_block[32]; ...[ 37]: kgid_t *blocks[0]; ...[ 38]: }; ...[ 49]: static inline __attribute__((no_instrument_function)) struct group_info *get_group_info(struct group_info *\ ... gi) ...[ 50]: { ...[ 51]: atomic_inc(&gi->usage); ...[ 52]: return gi; ...[ 53]: } ...[ 65]: extern struct group_info *groups_alloc(int); ...[ 66]: extern struct group_info init_groups; ...[ 67]: extern void groups_free(struct group_info *); ...[ 68]: extern int set_current_groups(struct group_info *); ...[ 69]: extern int set_groups(struct cred *, struct group_info *); ...[ 70]: extern int groups_search(const struct group_info *, kgid_t); ...[ 76]: extern int in_group_p(kgid_t); ...[ 77]: extern int in_egroup_p(kgid_t); ...[ 102]: struct cred { ...[ 103]: atomic_t usage; ...[ 111]: kuid_t uid; ...[ 112]: kgid_t gid; ...[ 113]: kuid_t suid; ...[ 114]: kgid_t sgid; ...[ 115]: kuid_t euid; ...[ 116]: kgid_t egid; ...[ 117]: kuid_t fsuid; ...[ 118]: kgid_t fsgid; ...[ 119]: unsigned securebits; ...[ 120]: kernel_cap_t cap_inheritable; ...[ 121]: kernel_cap_t cap_permitted; ...[ 122]: kernel_cap_t cap_effective; ...[ 123]: kernel_cap_t cap_bset; ...[ 125]: unsigned char jit_keyring; ...[ 127]: struct key *session_keyring; ...[ 128]: struct key *process_keyring; ...[ 129]: struct key *thread_keyring; ...[ 130]: struct key *request_key_auth; ...[ 133]: void *security; ...[ 135]: struct user_struct *user; ...[ 136]: struct user_namespace *user_ns; ...[ 137]: struct group_info *group_info; ...[ 138]: struct callback_head rcu; ...[ 139]: }; ...[ 141]: extern void __put_cred(struct cred *); ...[ 142]: extern void exit_creds(struct task_struct *); ...[ 143]: extern int copy_creds(struct task_struct *, unsigned long); ...[ 144]: extern const struct cred *get_task_cred(struct task_struct *); ...[ 145]: extern struct cred *cred_alloc_blank(void); ...[ 146]: extern struct cred *prepare_creds(void); ...[ 147]: extern struct cred *prepare_exec_creds(void); ...[ 148]: extern int commit_creds(struct cred *); ...[ 149]: extern void abort_creds(struct cred *); ...[ 150]: extern const struct cred *override_creds(const struct cred *); ...[ 151]: extern void revert_creds(const struct cred *); ...[ 152]: extern struct cred *prepare_kernel_cred(struct task_struct *); ...[ 153]: extern int change_create_files_as(struct cred *, struct inode *); ...[ 154]: extern int set_security_override(struct cred *, u32); ...[ 155]: extern int set_security_override_from_ctx(struct cred *, const char *); ...[ 156]: extern int set_create_files_as(struct cred *, struct inode *); ...[ 157]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) cred_init\ ... (void); ...[ 188]: static inline __attribute__((no_instrument_function)) void validate_creds(const struct cred *cred) ...[ 189]: { ...[ 190]: } ...[ 191]: static inline __attribute__((no_instrument_function)) void validate_creds_for_do_exit(struct task_struct *\ ... tsk) ...[ 192]: { ...[ 193]: } ...[ 194]: static inline __attribute__((no_instrument_function)) void validate_process_creds(void) ...[ 195]: { ...[ 196]: } ...[ 206]: static inline __attribute__((no_instrument_function)) struct cred *get_new_cred(struct cred *cred) ...[ 207]: { ...[ 208]: atomic_inc(&cred->usage); ...[ 209]: return cred; ...[ 210]: } ...[ 225]: static inline __attribute__((no_instrument_function)) const struct cred *get_cred(const struct cred *cred) ...[ 226]: { ...[ 227]: struct cred *nonconst_cred = (struct cred *) cred; ...[ 228]: validate_creds(cred); ...[ 229]: return get_new_cred(nonconst_cred); ...[ 230]: } ...[ 243]: static inline __attribute__((no_instrument_function)) void put_cred(const struct cred *_cred) ...[ 244]: { ...[ 245]: struct cred *cred = (struct cred *) _cred; ...[ 247]: validate_creds(cred); ...[ 248]: if (atomic_dec_and_test(&(cred)->usage)) ...[ 249]: __put_cred(cred); ...[ 250]: } ...[ 343]: extern struct user_namespace init_user_ns; ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cred.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h ..[ 59]: struct exec_domain; ..[ 60]: struct futex_pi_state; ..[ 61]: struct robust_list_head; ..[ 62]: struct bio_list; ..[ 63]: struct fs_struct; ..[ 64]: struct perf_event_context; ..[ 65]: struct blk_plug; ..[ 83]: extern unsigned long avenrun[]; ..[ 84]: extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift); ..[ 98]: extern unsigned long total_forks; ..[ 99]: extern int nr_threads; ..[ 100]: extern __attribute__((section(".data..percpu" ""))) __typeof__(unsigned long) process_counts; ..[ 101]: extern int nr_processes(void); ..[ 102]: extern unsigned long nr_running(void); ..[ 103]: extern unsigned long nr_iowait(void); ..[ 104]: extern unsigned long nr_iowait_cpu(int cpu); ..[ 105]: extern unsigned long this_cpu_load(void); ..[ 108]: extern void calc_global_load(unsigned long ticks); ..[ 109]: extern void update_cpu_load_nohz(void); ..[ 111]: extern unsigned long get_parent_ip(unsigned long addr); ..[ 113]: extern void dump_cpu_task(int cpu); ..[ 115]: struct seq_file; ..[ 116]: struct cfs_rq; ..[ 117]: struct task_group; ..[ 119]: extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m); ..[ 120]: extern void proc_sched_set_task(struct task_struct *p); ..[ 121]: extern void ..[ 122]: print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq); ..[ 152]: extern char ___assert_task_state[1 - 2*!!( ..[ 153]: sizeof("RSDTtZXxKWP")-1 != ( __builtin_constant_p(1024) ? ( (1024) < 1 ? ____ilog2_NaN() : (1024) & (1ULL << 63) ? 63 : \ .. (1024) & (1ULL << 62) ? 62 : (1024) & (1ULL << 61) ? 61 : (1024) & (1ULL << 60) ? 60 : (1024) & (1ULL << 59) ? 59 : (1024) & (1ULL << 58\ .. ) ? 58 : (1024) & (1ULL << 57) ? 57 : (1024) & (1ULL << 56) ? 56 : (1024) & (1ULL << 55) ? 55 : (1024) & (1ULL << 54) ? 54 : (1024) & (1ULL \ .. << 53) ? 53 : (1024) & (1ULL << 52) ? 52 : (1024) & (1ULL << 51) ? 51 : (1024) & (1ULL << 50) ? 50 : (1024) & (1ULL << 49) ? 49 : (1024) & \ .. (1ULL << 48) ? 48 : (1024) & (1ULL << 47) ? 47 : (1024) & (1ULL << 46) ? 46 : (1024) & (1ULL << 45) ? 45 : (1024) & (1ULL << 44) ? 44 : (1024\ .. ) & (1ULL << 43) ? 43 : (1024) & (1ULL << 42) ? 42 : (1024) & (1ULL << 41) ? 41 : (1024) & (1ULL << 40) ? 40 : (1024) & (1ULL << 39) ? 39 : \ .. (1024) & (1ULL << 38) ? 38 : (1024) & (1ULL << 37) ? 37 : (1024) & (1ULL << 36) ? 36 : (1024) & (1ULL << 35) ? 35 : (1024) & (1ULL << 34\ .. ) ? 34 : (1024) & (1ULL << 33) ? 33 : (1024) & (1ULL << 32) ? 32 : (1024) & (1ULL << 31) ? 31 : (1024) & (1ULL << 30) ? 30 : (1024) & (1ULL \ .. << 29) ? 29 : (1024) & (1ULL << 28) ? 28 : (1024) & (1ULL << 27) ? 27 : (1024) & (1ULL << 26) ? 26 : (1024) & (1ULL << 25) ? 25 : (1024) & \ .. (1ULL << 24) ? 24 : (1024) & (1ULL << 23) ? 23 : (1024) & (1ULL << 22) ? 22 : (1024) & (1ULL << 21) ? 21 : (1024) & (1ULL << 20) ? 20 : (1024\ .. ) & (1ULL << 19) ? 19 : (1024) & (1ULL << 18) ? 18 : (1024) & (1ULL << 17) ? 17 : (1024) & (1ULL << 16) ? 16 : (1024) & (1ULL << 15) ? 15 : \ .. (1024) & (1ULL << 14) ? 14 : (1024) & (1ULL << 13) ? 13 : (1024) & (1ULL << 12) ? 12 : (1024) & (1ULL << 11) ? 11 : (1024) & (1ULL << 10\ .. ) ? 10 : (1024) & (1ULL << 9) ? 9 : (1024) & (1ULL << 8) ? 8 : (1024) & (1ULL << 7) ? 7 : (1024) & (1ULL << 6) ? 6 : (1024) & (1ULL << 5) ? 5 : \ .. (1024) & (1ULL << 4) ? 4 : (1024) & (1ULL << 3) ? 3 : (1024) & (1ULL << 2) ? 2 : (1024) & (1ULL << 1) ? 1 : (1024) & (1ULL << 0) ? 0 : ____ilog2_NaN\ .. () ) : (sizeof(1024) <= 4) ? __ilog2_u32(1024) : __ilog2_u64(1024) )+1)]; ..[ 210]: extern rwlock_t tasklist_lock; ..[ 211]: extern spinlock_t mmlist_lock; ..[ 213]: struct task_struct; ..[ 219]: extern void sched_init(void); ..[ 220]: extern void sched_init_smp(void); ..[ 221]: extern void schedule_tail(struct task_struct *prev); ..[ 222]: extern void init_idle(struct task_struct *idle, int cpu); ..[ 223]: extern void init_idle_bootup_task(struct task_struct *idle); ..[ 225]: extern int runqueue_is_locked(int cpu); ..[ 228]: extern void nohz_balance_enter_idle(int cpu); ..[ 229]: extern void set_cpu_sd_state_idle(void); ..[ 230]: extern int get_nohz_timer_target(void); ..[ 239]: extern void show_state_filter(unsigned long state_filter); ..[ 241]: static inline __attribute__((no_instrument_function)) void show_state(void) ..[ 242]: { ..[ 243]: show_state_filter(0); ..[ 244]: } ..[ 246]: extern void show_regs(struct pt_regs *); ..[ 253]: extern void show_stack(struct task_struct *task, unsigned long *sp); ..[ 255]: void io_schedule(void); ..[ 256]: long io_schedule_timeout(long timeout); ..[ 258]: extern void cpu_init (void); ..[ 259]: extern void trap_init(void); ..[ 260]: extern void update_process_times(int user); ..[ 261]: extern void scheduler_tick(void); ..[ 263]: extern void sched_show_task(struct task_struct *p); ..[ 275]: static inline __attribute__((no_instrument_function)) void touch_softlockup_watchdog(void) ..[ 276]: { ..[ 277]: } ..[ 278]: static inline __attribute__((no_instrument_function)) void touch_softlockup_watchdog_sync(void) ..[ 279]: { ..[ 280]: } ..[ 281]: static inline __attribute__((no_instrument_function)) void touch_all_softlockup_watchdogs(void) ..[ 282]: { ..[ 283]: } ..[ 284]: static inline __attribute__((no_instrument_function)) void lockup_detector_init(void) ..[ 285]: { ..[ 286]: } ..[ 290]: void reset_hung_task_detector(void); ..[ 301]: extern char __sched_text_start[], __sched_text_end[]; ..[ 304]: extern int in_sched_functions(unsigned long addr); ..[ 307]: extern signed long schedule_timeout(signed long timeout); ..[ 308]: extern signed long schedule_timeout_interruptible(signed long timeout); ..[ 309]: extern signed long schedule_timeout_killable(signed long timeout); ..[ 310]: extern signed long schedule_timeout_uninterruptible(signed long timeout); ..[ 311]: void schedule(void); ..[ 312]: extern void schedule_preempt_disabled(void); ..[ 314]: struct nsproxy; ..[ 315]: struct user_namespace; ..[ 318]: extern void arch_pick_mmap_layout(struct mm_struct *mm); ..[ 319]: extern unsigned long ..[ 320]: arch_get_unmapped_area(struct file *, unsigned long, unsigned long, ..[ 321]: unsigned long, unsigned long); ..[ 322]: extern unsigned long ..[ 323]: arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, ..[ 324]: unsigned long len, unsigned long pgoff, ..[ 325]: unsigned long flags); ..[ 331]: extern void set_dumpable(struct mm_struct *mm, int value); ..[ 332]: extern int get_dumpable(struct mm_struct *mm); ..[ 378]: struct sighand_struct { ..[ 379]: atomic_t count; ..[ 380]: struct k_sigaction action[_NSIG]; ..[ 381]: spinlock_t siglock; ..[ 382]: wait_queue_head_t signalfd_wqh; ..[ 383]: }; ..[ 385]: struct pacct_struct { ..[ 386]: int ac_flag; ..[ 387]: long ac_exitcode; ..[ 388]: unsigned long ac_mem; ..[ 389]: cputime_t ac_utime, ac_stime; ..[ 390]: unsigned long ac_minflt, ac_majflt; ..[ 391]: }; ..[ 393]: struct cpu_itimer { ..[ 394]: cputime_t expires; ..[ 395]: cputime_t incr; ..[ 396]: u32 error; ..[ 397]: u32 incr_error; ..[ 398]: }; ..[ 407]: struct cputime { ..[ 408]: cputime_t utime; ..[ 409]: cputime_t stime; ..[ 410]: }; ..[ 426]: struct task_cputime { ..[ 427]: cputime_t utime; ..[ 428]: cputime_t stime; ..[ 429]: unsigned long long sum_exec_runtime; ..[ 430]: }; ..[ 468]: struct thread_group_cputimer { ..[ 469]: struct task_cputime cputime; ..[ 470]: int running; ..[ 471]: raw_spinlock_t lock; ..[ 472]: }; ..[ 475]: struct autogroup; ..[ 484]: struct signal_struct { ..[ 485]: atomic_t sigcnt; ..[ 486]: atomic_t live; ..[ 487]: int nr_threads; ..[ 489]: wait_queue_head_t wait_chldexit; ..[ 492]: struct task_struct *curr_target; ..[ 495]: struct sigpending shared_pending; ..[ 498]: int group_exit_code; ..[ 504]: int notify_count; ..[ 505]: struct task_struct *group_exit_task; ..[ 508]: int group_stop_count; ..[ 509]: unsigned int flags; ..[ 520]: unsigned int is_child_subreaper:1; ..[ 521]: unsigned int has_child_subreaper:1; ..[ 524]: int posix_timer_id; ..[ 525]: struct list_head posix_timers; ..[ 528]: struct hrtimer real_timer; ..[ 529]: struct pid *leader_pid; ..[ 530]: ktime_t it_real_incr; ..[ 537]: struct cpu_itimer it[2]; ..[ 543]: struct thread_group_cputimer cputimer; ..[ 546]: struct task_cputime cputime_expires; ..[ 548]: struct list_head cpu_timers[3]; ..[ 550]: struct pid *tty_old_pgrp; ..[ 553]: int leader; ..[ 555]: struct tty_struct *tty; ..[ 566]: cputime_t utime, stime, cutime, cstime; ..[ 567]: cputime_t gtime; ..[ 568]: cputime_t cgtime; ..[ 570]: struct cputime prev_cputime; ..[ 572]: unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw; ..[ 573]: unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt; ..[ 574]: unsigned long inblock, oublock, cinblock, coublock; ..[ 575]: unsigned long maxrss, cmaxrss; ..[ 576]: struct task_io_accounting ioac; ..[ 584]: unsigned long long sum_sched_runtime; ..[ 595]: struct rlimit rlim[16]; ..[ 598]: struct pacct_struct pacct; ..[ 601]: struct taskstats *stats; ..[ 604]: unsigned audit_tty; ..[ 605]: unsigned audit_tty_log_passwd; ..[ 606]: struct tty_audit_buf *tty_audit_buf; ..[ 618]: struct rw_semaphore group_rwsem; ..[ 621]: oom_flags_t oom_flags; ..[ 622]: short oom_score_adj; ..[ 623]: short oom_score_adj_min; ..[ 626]: struct mutex cred_guard_mutex; ..[ 629]: }; ..[ 648]: static inline __attribute__((no_instrument_function)) int signal_group_exit(const struct signal_struct *sig\ .. ) ..[ 649]: { ..[ 650]: return (sig->flags & 0x00000004) || ..[ 651]: (sig->group_exit_task != ((void *)0)); ..[ 652]: } ..[ 657]: struct user_struct { ..[ 658]: atomic_t __count; ..[ 659]: atomic_t processes; ..[ 660]: atomic_t files; ..[ 661]: atomic_t sigpending; ..[ 663]: atomic_t inotify_watches; ..[ 664]: atomic_t inotify_devs; ..[ 667]: atomic_t fanotify_listeners; ..[ 670]: atomic_long_t epoll_watches; ..[ 674]: unsigned long mq_bytes; ..[ 676]: unsigned long locked_shm; ..[ 679]: struct key *uid_keyring; ..[ 680]: struct key *session_keyring; ..[ 684]: struct hlist_node uidhash_node; ..[ 685]: kuid_t uid; ..[ 688]: atomic_long_t locked_vm; ..[ 690]: }; ..[ 692]: extern int uids_sysfs_init(void); ..[ 694]: extern struct user_struct *find_user(kuid_t); ..[ 696]: extern struct user_struct root_user; ..[ 700]: struct backing_dev_info; ..[ 701]: struct reclaim_state; ..[ 704]: struct sched_info { ..[ 706]: unsigned long pcount; ..[ 707]: unsigned long long run_delay; ..[ 710]: unsigned long long last_arrival, ..[ 711]: last_queued; ..[ 712]: }; ..[ 716]: struct task_delay_info { ..[ 717]: spinlock_t lock; ..[ 718]: unsigned int flags; ..[ 735]: struct timespec blkio_start, blkio_end; ..[ 736]: u64 blkio_delay; ..[ 737]: u64 swapin_delay; ..[ 738]: u32 blkio_count; ..[ 740]: u32 swapin_count; ..[ 743]: struct timespec freepages_start, freepages_end; ..[ 744]: u64 freepages_delay; ..[ 745]: u32 freepages_count; ..[ 746]: }; ..[ 749]: static inline __attribute__((no_instrument_function)) int sched_info_on(void) ..[ 750]: { ..[ 752]: return 1; ..[ 759]: } ..[ 761]: enum cpu_idle_type { ..[ 762]: CPU_IDLE, ..[ 763]: CPU_NOT_IDLE, ..[ 764]: CPU_NEWLY_IDLE, ..[ 765]: CPU_MAX_IDLE_TYPES ..[ 766]: }; ..[ 792]: extern int __attribute__((weak)) arch_sd_sibiling_asym_packing(void); ..[ 794]: struct sched_domain_attr { ..[ 795]: int relax_domain_level; ..[ 796]: }; ..[ 802]: extern int sched_domain_level_max; ..[ 804]: struct sched_group; ..[ 806]: struct sched_domain { ..[ 808]: struct sched_domain *parent; ..[ 809]: struct sched_domain *child; ..[ 810]: struct sched_group *groups; ..[ 811]: unsigned long min_interval; ..[ 812]: unsigned long max_interval; ..[ 813]: unsigned int busy_factor; ..[ 814]: unsigned int imbalance_pct; ..[ 815]: unsigned int cache_nice_tries; ..[ 816]: unsigned int busy_idx; ..[ 817]: unsigned int idle_idx; ..[ 818]: unsigned int newidle_idx; ..[ 819]: unsigned int wake_idx; ..[ 820]: unsigned int forkexec_idx; ..[ 821]: unsigned int smt_gain; ..[ 823]: int nohz_idle; ..[ 824]: int flags; ..[ 825]: int level; ..[ 828]: unsigned long last_balance; ..[ 829]: unsigned int balance_interval; ..[ 830]: unsigned int nr_balance_failed; ..[ 833]: u64 max_newidle_lb_cost; ..[ 834]: unsigned long next_decay_max_lb_cost; ..[ 838]: unsigned int lb_count[CPU_MAX_IDLE_TYPES]; ..[ 839]: unsigned int lb_failed[CPU_MAX_IDLE_TYPES]; ..[ 840]: unsigned int lb_balanced[CPU_MAX_IDLE_TYPES]; ..[ 841]: unsigned int lb_imbalance[CPU_MAX_IDLE_TYPES]; ..[ 842]: unsigned int lb_gained[CPU_MAX_IDLE_TYPES]; ..[ 843]: unsigned int lb_hot_gained[CPU_MAX_IDLE_TYPES]; ..[ 844]: unsigned int lb_nobusyg[CPU_MAX_IDLE_TYPES]; ..[ 845]: unsigned int lb_nobusyq[CPU_MAX_IDLE_TYPES]; ..[ 848]: unsigned int alb_count; ..[ 849]: unsigned int alb_failed; ..[ 850]: unsigned int alb_pushed; ..[ 853]: unsigned int sbe_count; ..[ 854]: unsigned int sbe_balanced; ..[ 855]: unsigned int sbe_pushed; ..[ 858]: unsigned int sbf_count; ..[ 859]: unsigned int sbf_balanced; ..[ 860]: unsigned int sbf_pushed; ..[ 863]: unsigned int ttwu_wake_remote; ..[ 864]: unsigned int ttwu_move_affine; ..[ 865]: unsigned int ttwu_move_balance; ..[ 868]: char *name; ..[ 870]: union { ..[ 871]: void *private; ..[ 872]: struct callback_head rcu; ..[ 873]: }; ..[ 875]: unsigned int span_weight; ..[ 883]: unsigned long span[0]; ..[ 884]: }; ..[ 886]: static inline __attribute__((no_instrument_function)) struct cpumask *sched_domain_span(struct sched_domain \ .. *sd) ..[ 887]: { ..[ 888]: return ((struct cpumask *)(1 ? (sd->span) : (void *)sizeof(__check_is_bitmap(sd->span)))); ..[ 889]: } ..[ 891]: extern void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[], ..[ 892]: struct sched_domain_attr *dattr_new); ..[ 895]: cpumask_var_t *alloc_sched_domains(unsigned int ndoms); ..[ 896]: void free_sched_domains(cpumask_var_t doms[], unsigned int ndoms); ..[ 898]: bool cpus_share_cache(int this_cpu, int that_cpu); ..[ 918]: struct io_context; ..[ 924]: static inline __attribute__((no_instrument_function)) void prefetch_stack(struct task_struct *t) { } ..[ 927]: struct audit_context; ..[ 928]: struct mempolicy; ..[ 929]: struct pipe_inode_info; ..[ 930]: struct uts_namespace; ..[ 932]: struct load_weight { ..[ 933]: unsigned long weight; ..[ 934]: u32 inv_weight; ..[ 935]: }; ..[ 937]: struct sched_avg { ..[ 943]: u32 runnable_avg_sum, runnable_avg_period; ..[ 944]: u64 last_runnable_update; ..[ 945]: s64 decay_count; ..[ 946]: unsigned long load_avg_contrib; ..[ 947]: }; ..[ 950]: struct sched_statistics { ..[ 951]: u64 wait_start; ..[ 952]: u64 wait_max; ..[ 953]: u64 wait_count; ..[ 954]: u64 wait_sum; ..[ 955]: u64 iowait_count; ..[ 956]: u64 iowait_sum; ..[ 958]: u64 sleep_start; ..[ 959]: u64 sleep_max; ..[ 960]: s64 sum_sleep_runtime; ..[ 962]: u64 block_start; ..[ 963]: u64 block_max; ..[ 964]: u64 exec_max; ..[ 965]: u64 slice_max; ..[ 967]: u64 nr_migrations_cold; ..[ 968]: u64 nr_failed_migrations_affine; ..[ 969]: u64 nr_failed_migrations_running; ..[ 970]: u64 nr_failed_migrations_hot; ..[ 971]: u64 nr_forced_migrations; ..[ 973]: u64 nr_wakeups; ..[ 974]: u64 nr_wakeups_sync; ..[ 975]: u64 nr_wakeups_migrate; ..[ 976]: u64 nr_wakeups_local; ..[ 977]: u64 nr_wakeups_remote; ..[ 978]: u64 nr_wakeups_affine; ..[ 979]: u64 nr_wakeups_affine_attempts; ..[ 980]: u64 nr_wakeups_passive; ..[ 981]: u64 nr_wakeups_idle; ..[ 982]: }; ..[ 985]: struct sched_entity { ..[ 986]: struct load_weight load; ..[ 987]: struct rb_node run_node; ..[ 988]: struct list_head group_node; ..[ 989]: unsigned int on_rq; ..[ 991]: u64 exec_start; ..[ 992]: u64 sum_exec_runtime; ..[ 993]: u64 vruntime; ..[ 994]: u64 prev_sum_exec_runtime; ..[ 996]: u64 nr_migrations; ..[ 999]: struct sched_statistics statistics; ..[ 1003]: struct sched_entity *parent; ..[ 1005]: struct cfs_rq *cfs_rq; ..[ 1007]: struct cfs_rq *my_q; ..[ 1012]: struct sched_avg avg; ..[ 1014]: }; ..[ 1016]: struct sched_rt_entity { ..[ 1017]: struct list_head run_list; ..[ 1018]: unsigned long timeout; ..[ 1019]: unsigned long watchdog_stamp; ..[ 1020]: unsigned int time_slice; ..[ 1022]: struct sched_rt_entity *back; ..[ 1024]: struct sched_rt_entity *parent; ..[ 1026]: struct rt_rq *rt_rq; ..[ 1028]: struct rt_rq *my_q; ..[ 1030]: }; ..[ 1033]: struct rcu_node; ..[ 1035]: enum perf_event_task_context { ..[ 1036]: perf_invalid_context = -1, ..[ 1037]: perf_hw_context = 0, ..[ 1038]: perf_sw_context, ..[ 1039]: perf_nr_task_contexts, ..[ 1040]: }; ..[ 1042]: struct task_struct { ..[ 1043]: volatile long state; ..[ 1044]: void *stack; ..[ 1045]: atomic_t usage; ..[ 1046]: unsigned int flags; ..[ 1047]: unsigned int ptrace; ..[ 1050]: struct llist_node wake_entry; ..[ 1051]: int on_cpu; ..[ 1052]: struct task_struct *last_wakee; ..[ 1053]: unsigned long wakee_flips; ..[ 1054]: unsigned long wakee_flip_decay_ts; ..[ 1056]: int wake_cpu; ..[ 1058]: int on_rq; ..[ 1060]: int prio, static_prio, normal_prio; ..[ 1061]: unsigned int rt_priority; ..[ 1062]: const struct sched_class *sched_class; ..[ 1063]: struct sched_entity se; ..[ 1064]: struct sched_rt_entity rt; ..[ 1066]: struct task_group *sched_task_group; ..[ 1071]: struct hlist_head preempt_notifiers; ..[ 1075]: unsigned int btrace_seq; ..[ 1078]: unsigned int policy; ..[ 1079]: int nr_cpus_allowed; ..[ 1080]: cpumask_t cpus_allowed; ..[ 1095]: struct sched_info sched_info; ..[ 1098]: struct list_head tasks; ..[ 1100]: struct plist_node pushable_tasks; ..[ 1103]: struct mm_struct *mm, *active_mm; ..[ 1108]: struct task_rss_stat rss_stat; ..[ 1111]: int exit_state; ..[ 1112]: int exit_code, exit_signal; ..[ 1113]: int pdeath_signal; ..[ 1114]: unsigned int jobctl; ..[ 1117]: unsigned int personality; ..[ 1119]: unsigned did_exec:1; ..[ 1120]: unsigned in_execve:1; ..[ 1122]: unsigned in_iowait:1; ..[ 1125]: unsigned no_new_privs:1; ..[ 1128]: unsigned sched_reset_on_fork:1; ..[ 1129]: unsigned sched_contributes_to_load:1; ..[ 1131]: pid_t pid; ..[ 1132]: pid_t tgid; ..[ 1136]: unsigned long stack_canary; ..[ 1143]: struct task_struct *real_parent; ..[ 1144]: struct task_struct *parent; ..[ 1148]: struct list_head children; ..[ 1149]: struct list_head sibling; ..[ 1150]: struct task_struct *group_leader; ..[ 1157]: struct list_head ptraced; ..[ 1158]: struct list_head ptrace_entry; ..[ 1161]: struct pid_link pids[PIDTYPE_MAX]; ..[ 1162]: struct list_head thread_group; ..[ 1164]: struct completion *vfork_done; ..[ 1165]: int *set_child_tid; ..[ 1166]: int *clear_child_tid; ..[ 1168]: cputime_t utime, stime, utimescaled, stimescaled; ..[ 1169]: cputime_t gtime; ..[ 1171]: struct cputime prev_cputime; ..[ 1182]: unsigned long nvcsw, nivcsw; ..[ 1183]: struct timespec start_time; ..[ 1184]: struct timespec real_start_time; ..[ 1186]: unsigned long min_flt, maj_flt; ..[ 1188]: struct task_cputime cputime_expires; ..[ 1189]: struct list_head cpu_timers[3]; ..[ 1192]: const struct cred *real_cred; ..[ 1194]: const struct cred *cred; ..[ 1196]: char comm[16]; ..[ 1201]: int link_count, total_link_count; ..[ 1204]: struct sysv_sem sysvsem; ..[ 1208]: unsigned long last_switch_count; ..[ 1211]: struct thread_struct thread; ..[ 1213]: struct fs_struct *fs; ..[ 1215]: struct files_struct *files; ..[ 1217]: struct nsproxy *nsproxy; ..[ 1219]: struct signal_struct *signal; ..[ 1220]: struct sighand_struct *sighand; ..[ 1222]: sigset_t blocked, real_blocked; ..[ 1223]: sigset_t saved_sigmask; ..[ 1224]: struct sigpending pending; ..[ 1226]: unsigned long sas_ss_sp; ..[ 1227]: size_t sas_ss_size; ..[ 1228]: int (*notifier)(void *priv); ..[ 1229]: void *notifier_data; ..[ 1230]: sigset_t *notifier_mask; ..[ 1231]: struct callback_head *task_works; ..[ 1233]: struct audit_context *audit_context; ..[ 1235]: kuid_t loginuid; ..[ 1236]: unsigned int sessionid; ..[ 1238]: struct seccomp seccomp; ..[ 1241]: u32 parent_exec_id; ..[ 1242]: u32 self_exec_id; ..[ 1245]: spinlock_t alloc_lock; ..[ 1248]: raw_spinlock_t pi_lock; ..[ 1252]: struct plist_head pi_waiters; ..[ 1254]: struct rt_mutex_waiter *pi_blocked_on; ..[ 1286]: void *journal_info; ..[ 1289]: struct bio_list *bio_list; ..[ 1293]: struct blk_plug *plug; ..[ 1297]: struct reclaim_state *reclaim_state; ..[ 1299]: struct backing_dev_info *backing_dev_info; ..[ 1301]: struct io_context *io_context; ..[ 1303]: unsigned long ptrace_message; ..[ 1304]: siginfo_t *last_siginfo; ..[ 1305]: struct task_io_accounting ioac; ..[ 1307]: u64 acct_rss_mem1; ..[ 1308]: u64 acct_vm_mem1; ..[ 1309]: cputime_t acct_timexpd; ..[ 1312]: nodemask_t mems_allowed; ..[ 1313]: seqcount_t mems_allowed_seq; ..[ 1314]: int cpuset_mem_spread_rotor; ..[ 1315]: int cpuset_slab_spread_rotor; ..[ 1319]: struct css_set *cgroups; ..[ 1321]: struct list_head cg_list; ..[ 1324]: struct robust_list_head *robust_list; ..[ 1326]: struct compat_robust_list_head *compat_robust_list; ..[ 1328]: struct list_head pi_state_list; ..[ 1329]: struct futex_pi_state *pi_state_cache; ..[ 1332]: struct perf_event_context *perf_event_ctxp[perf_nr_task_contexts]; ..[ 1333]: struct mutex perf_event_mutex; ..[ 1334]: struct list_head perf_event_list; ..[ 1337]: struct mempolicy *mempolicy; ..[ 1338]: short il_next; ..[ 1339]: short pref_node_fork; ..[ 1380]: struct callback_head rcu; ..[ 1385]: struct pipe_inode_info *splice_pipe; ..[ 1387]: struct page_frag task_frag; ..[ 1390]: struct task_delay_info *delays; ..[ 1399]: int nr_dirtied; ..[ 1400]: int nr_dirtied_pause; ..[ 1401]: unsigned long dirty_paused_when; ..[ 1404]: int latency_record_count; ..[ 1405]: struct latency_record latency_record[32]; ..[ 1411]: unsigned long timer_slack_ns; ..[ 1412]: unsigned long default_timer_slack_ns; ..[ 1416]: int curr_ret_stack; ..[ 1418]: struct ftrace_ret_stack *ret_stack; ..[ 1420]: unsigned long long ftrace_timestamp; ..[ 1425]: atomic_t trace_overrun; ..[ 1427]: atomic_t tracing_graph_pause; ..[ 1431]: unsigned long trace; ..[ 1433]: unsigned long trace_recursion; ..[ 1457]: }; ..[ 1475]: static inline __attribute__((no_instrument_function)) void task_numa_fault(int last_node, int node, int pages\ .. , ..[ 1476]: int flags) ..[ 1477]: { ..[ 1478]: } ..[ 1479]: static inline __attribute__((no_instrument_function)) pid_t task_numa_group_id(struct task_struct *p) ..[ 1480]: { ..[ 1481]: return 0; ..[ 1482]: } ..[ 1483]: static inline __attribute__((no_instrument_function)) void set_numabalancing_state(bool enabled) ..[ 1484]: { ..[ 1485]: } ..[ 1486]: static inline __attribute__((no_instrument_function)) void task_numa_free(struct task_struct *p) ..[ 1487]: { ..[ 1488]: } ..[ 1491]: static inline __attribute__((no_instrument_function)) struct pid *task_pid(struct task_struct *task) ..[ 1492]: { ..[ 1493]: return task->pids[PIDTYPE_PID].pid; ..[ 1494]: } ..[ 1496]: static inline __attribute__((no_instrument_function)) struct pid *task_tgid(struct task_struct *task) ..[ 1497]: { ..[ 1498]: return task->group_leader->pids[PIDTYPE_PID].pid; ..[ 1499]: } ..[ 1506]: static inline __attribute__((no_instrument_function)) struct pid *task_pgrp(struct task_struct *task) ..[ 1507]: { ..[ 1508]: return task->group_leader->pids[PIDTYPE_PGID].pid; ..[ 1509]: } ..[ 1511]: static inline __attribute__((no_instrument_function)) struct pid *task_session(struct task_struct *task) ..[ 1512]: { ..[ 1513]: return task->group_leader->pids[PIDTYPE_SID].pid; ..[ 1514]: } ..[ 1516]: struct pid_namespace; ..[ 1531]: pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, ..[ 1532]: struct pid_namespace *ns); ..[ 1534]: static inline __attribute__((no_instrument_function)) pid_t task_pid_nr(struct task_struct *tsk) ..[ 1535]: { ..[ 1536]: return tsk->pid; ..[ 1537]: } ..[ 1539]: static inline __attribute__((no_instrument_function)) pid_t task_pid_nr_ns(struct task_struct *tsk, ..[ 1540]: struct pid_namespace *ns) ..[ 1541]: { ..[ 1542]: return __task_pid_nr_ns(tsk, PIDTYPE_PID, ns); ..[ 1543]: } ..[ 1545]: static inline __attribute__((no_instrument_function)) pid_t task_pid_vnr(struct task_struct *tsk) ..[ 1546]: { ..[ 1547]: return __task_pid_nr_ns(tsk, PIDTYPE_PID, ((void *)0)); ..[ 1548]: } ..[ 1551]: static inline __attribute__((no_instrument_function)) pid_t task_tgid_nr(struct task_struct *tsk) ..[ 1552]: { ..[ 1553]: return tsk->tgid; ..[ 1554]: } ..[ 1556]: pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns); ..[ 1558]: static inline __attribute__((no_instrument_function)) pid_t task_tgid_vnr(struct task_struct *tsk) ..[ 1559]: { ..[ 1560]: return pid_vnr(task_tgid(tsk)); ..[ 1561]: } ..[ 1564]: static inline __attribute__((no_instrument_function)) pid_t task_pgrp_nr_ns(struct task_struct *tsk, ..[ 1565]: struct pid_namespace *ns) ..[ 1566]: { ..[ 1567]: return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns); ..[ 1568]: } ..[ 1570]: static inline __attribute__((no_instrument_function)) pid_t task_pgrp_vnr(struct task_struct *tsk) ..[ 1571]: { ..[ 1572]: return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ((void *)0)); ..[ 1573]: } ..[ 1576]: static inline __attribute__((no_instrument_function)) pid_t task_session_nr_ns(struct task_struct *tsk, ..[ 1577]: struct pid_namespace *ns) ..[ 1578]: { ..[ 1579]: return __task_pid_nr_ns(tsk, PIDTYPE_SID, ns); ..[ 1580]: } ..[ 1582]: static inline __attribute__((no_instrument_function)) pid_t task_session_vnr(struct task_struct *tsk) ..[ 1583]: { ..[ 1584]: return __task_pid_nr_ns(tsk, PIDTYPE_SID, ((void *)0)); ..[ 1585]: } ..[ 1588]: static inline __attribute__((no_instrument_function)) pid_t task_pgrp_nr(struct task_struct *tsk) ..[ 1589]: { ..[ 1590]: return task_pgrp_nr_ns(tsk, &init_pid_ns); ..[ 1591]: } ..[ 1603]: static inline __attribute__((no_instrument_function)) int pid_alive(struct task_struct *p) ..[ 1604]: { ..[ 1605]: return p->pids[PIDTYPE_PID].pid != ((void *)0); ..[ 1606]: } ..[ 1616]: static inline __attribute__((no_instrument_function)) int is_global_init(struct task_struct *tsk) ..[ 1617]: { ..[ 1618]: return tsk->pid == 1; ..[ 1619]: } ..[ 1621]: extern struct pid *cad_pid; ..[ 1623]: extern void free_task(struct task_struct *tsk); ..[ 1626]: extern void __put_task_struct(struct task_struct *t); ..[ 1628]: static inline __attribute__((no_instrument_function)) void put_task_struct(struct task_struct *t) ..[ 1629]: { ..[ 1630]: if (atomic_dec_and_test(&t->usage)) ..[ 1631]: __put_task_struct(t); ..[ 1632]: } ..[ 1641]: static inline __attribute__((no_instrument_function)) void task_cputime(struct task_struct *t, ..[ 1642]: cputime_t *utime, cputime_t *stime) ..[ 1643]: { ..[ 1644]: if (utime) ..[ 1645]: *utime = t->utime; ..[ 1646]: if (stime) ..[ 1647]: *stime = t->stime; ..[ 1648]: } ..[ 1650]: static inline __attribute__((no_instrument_function)) void task_cputime_scaled(struct task_struct *t, ..[ 1651]: cputime_t *utimescaled, ..[ 1652]: cputime_t *stimescaled) ..[ 1653]: { ..[ 1654]: if (utimescaled) ..[ 1655]: *utimescaled = t->utimescaled; ..[ 1656]: if (stimescaled) ..[ 1657]: *stimescaled = t->stimescaled; ..[ 1658]: } ..[ 1660]: static inline __attribute__((no_instrument_function)) cputime_t task_gtime(struct task_struct *t) ..[ 1661]: { ..[ 1662]: return t->gtime; ..[ 1663]: } ..[ 1665]: extern void task_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st); ..[ 1666]: extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st); ..[ 1728]: static inline __attribute__((no_instrument_function)) gfp_t memalloc_noio_flags(gfp_t flags) ..[ 1729]: { ..[ 1730]: if (__builtin_expect(!!(get_current()->flags & 0x00080000), 0)) ..[ 1731]: flags &= ~(( gfp_t)0x40u); ..[ 1732]: return flags; ..[ 1733]: } ..[ 1735]: static inline __attribute__((no_instrument_function)) unsigned int memalloc_noio_save(void) ..[ 1736]: { ..[ 1737]: unsigned int flags = get_current()->flags & 0x00080000; ..[ 1738]: get_current()->flags |= 0x00080000; ..[ 1739]: return flags; ..[ 1740]: } ..[ 1742]: static inline __attribute__((no_instrument_function)) void memalloc_noio_restore(unsigned int flags) ..[ 1743]: { ..[ 1744]: get_current()->flags = (get_current()->flags & ~0x00080000) | flags; ..[ 1745]: } ..[ 1771]: extern bool task_set_jobctl_pending(struct task_struct *task, ..[ 1772]: unsigned int mask); ..[ 1773]: extern void task_clear_jobctl_trapping(struct task_struct *task); ..[ 1774]: extern void task_clear_jobctl_pending(struct task_struct *task, ..[ 1775]: unsigned int mask); ..[ 1797]: static inline __attribute__((no_instrument_function)) void rcu_copy_process(struct task_struct *p) ..[ 1798]: { ..[ 1799]: } ..[ 1803]: static inline __attribute__((no_instrument_function)) void tsk_restore_flags(struct task_struct *task, ..[ 1804]: unsigned long orig_flags, unsigned long flags) ..[ 1805]: { ..[ 1806]: task->flags &= ~flags; ..[ 1807]: task->flags |= orig_flags & flags; ..[ 1808]: } ..[ 1811]: extern void do_set_cpus_allowed(struct task_struct *p, ..[ 1812]: const struct cpumask *new_mask); ..[ 1814]: extern int set_cpus_allowed_ptr(struct task_struct *p, ..[ 1815]: const struct cpumask *new_mask); ..[ 1831]: void calc_load_enter_idle(void); ..[ 1832]: void calc_load_exit_idle(void); ..[ 1839]: static inline __attribute__((no_instrument_function)) int set_cpus_allowed(struct task_struct *p, cpumask_t \ .. new_mask) ..[ 1840]: { ..[ 1841]: return set_cpus_allowed_ptr(p, &new_mask); ..[ 1842]: } ..[ 1853]: extern unsigned long long __attribute__((no_instrument_function)) sched_clock(void); ..[ 1857]: extern u64 cpu_clock(int cpu); ..[ 1858]: extern u64 local_clock(void); ..[ 1859]: extern u64 sched_clock_cpu(int cpu); ..[ 1862]: extern void sched_clock_init(void); ..[ 1883]: extern int sched_clock_stable; ..[ 1885]: extern void sched_clock_tick(void); ..[ 1886]: extern void sched_clock_idle_sleep_event(void); ..[ 1887]: extern void sched_clock_idle_wakeup_event(u64 delta_ns); ..[ 1899]: static inline __attribute__((no_instrument_function)) void enable_sched_clock_irqtime(void) {} ..[ 1900]: static inline __attribute__((no_instrument_function)) void disable_sched_clock_irqtime(void) {} ..[ 1903]: extern unsigned long long ..[ 1904]: task_sched_runtime(struct task_struct *task); ..[ 1908]: extern void sched_exec(void); ..[ 1913]: extern void sched_clock_idle_sleep_event(void); ..[ 1914]: extern void sched_clock_idle_wakeup_event(u64 delta_ns); ..[ 1917]: extern void idle_task_exit(void); ..[ 1923]: extern void wake_up_nohz_cpu(int cpu); ..[ 1932]: static inline __attribute__((no_instrument_function)) bool sched_can_stop_tick(void) { return false; } ..[ 1945]: static inline __attribute__((no_instrument_function)) void sched_autogroup_create_attach(struct task_struct \ .. *p) { } ..[ 1946]: static inline __attribute__((no_instrument_function)) void sched_autogroup_detach(struct task_struct *p) { } ..[ 1947]: static inline __attribute__((no_instrument_function)) void sched_autogroup_fork(struct signal_struct *sig) \ .. { } ..[ 1948]: static inline __attribute__((no_instrument_function)) void sched_autogroup_exit(struct signal_struct *sig) \ .. { } ..[ 1951]: extern bool yield_to(struct task_struct *p, bool preempt); ..[ 1952]: extern void set_user_nice(struct task_struct *p, long nice); ..[ 1953]: extern int task_prio(const struct task_struct *p); ..[ 1954]: extern int task_nice(const struct task_struct *p); ..[ 1955]: extern int can_nice(const struct task_struct *p, const int nice); ..[ 1956]: extern int task_curr(const struct task_struct *p); ..[ 1957]: extern int idle_cpu(int cpu); ..[ 1958]: extern int sched_setscheduler(struct task_struct *, int, ..[ 1959]: const struct sched_param *); ..[ 1960]: extern int sched_setscheduler_nocheck(struct task_struct *, int, ..[ 1961]: const struct sched_param *); ..[ 1962]: extern struct task_struct *idle_task(int cpu); ..[ 1969]: static inline __attribute__((no_instrument_function)) bool is_idle_task(const struct task_struct *p) ..[ 1970]: { ..[ 1971]: return p->pid == 0; ..[ 1972]: } ..[ 1973]: extern struct task_struct *curr_task(int cpu); ..[ 1974]: extern void set_curr_task(int cpu, struct task_struct *p); ..[ 1976]: void yield(void); ..[ 1981]: extern struct exec_domain default_exec_domain; ..[ 1983]: union thread_union { ..[ 1984]: struct thread_info thread_info; ..[ 1985]: unsigned long stack[(((1UL) << 12) << 1)/sizeof(long)]; ..[ 1986]: }; ..[ 1989]: static inline __attribute__((no_instrument_function)) int kstack_end(void *addr) ..[ 1990]: { ..[ 1994]: return !(((unsigned long)addr+sizeof(void*)-1) & ((((1UL) << 12) << 1)-sizeof(void*))); ..[ 1995]: } ..[ 1998]: extern union thread_union init_thread_union; ..[ 1999]: extern struct task_struct init_task; ..[ 2001]: extern struct mm_struct init_mm; ..[ 2003]: extern struct pid_namespace init_pid_ns; ..[ 2016]: extern struct task_struct *find_task_by_vpid(pid_t nr); ..[ 2017]: extern struct task_struct *find_task_by_pid_ns(pid_t nr, ..[ 2018]: struct pid_namespace *ns); ..[ 2021]: extern struct user_struct * alloc_uid(kuid_t); ..[ 2022]: static inline __attribute__((no_instrument_function)) struct user_struct *get_uid(struct user_struct *u) ..[ 2023]: { ..[ 2024]: atomic_inc(&u->__count); ..[ 2025]: return u; ..[ 2026]: } ..[ 2027]: extern void free_uid(struct user_struct *); ..[ 2031]: extern void xtime_update(unsigned long ticks); ..[ 2033]: extern int wake_up_state(struct task_struct *tsk, unsigned int state); ..[ 2034]: extern int wake_up_process(struct task_struct *tsk); ..[ 2035]: extern void wake_up_new_task(struct task_struct *tsk); ..[ 2037]: extern void kick_process(struct task_struct *tsk); ..[ 2041]: extern void sched_fork(unsigned long clone_flags, struct task_struct *p); ..[ 2042]: extern void sched_dead(struct task_struct *p); ..[ 2044]: extern void proc_caches_init(void); ..[ 2045]: extern void flush_signals(struct task_struct *); ..[ 2046]: extern void __flush_signals(struct task_struct *); ..[ 2047]: extern void ignore_signals(struct task_struct *); ..[ 2048]: extern void flush_signal_handlers(struct task_struct *, int force_default); ..[ 2049]: extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info); ..[ 2051]: static inline __attribute__((no_instrument_function)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t \ .. *mask, siginfo_t *info) ..[ 2052]: { ..[ 2053]: unsigned long flags; ..[ 2054]: int ret; ..[ 2056]: 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); ..[ 2057]: ret = dequeue_signal(tsk, mask, info); ..[ 2058]: spin_unlock_irqrestore(&tsk->sighand->siglock, flags); ..[ 2060]: return ret; ..[ 2061]: } ..[ 2063]: extern void block_all_signals(int (*notifier)(void *priv), void *priv, ..[ 2064]: sigset_t *mask); ..[ 2065]: extern void unblock_all_signals(void); ..[ 2066]: extern void release_task(struct task_struct * p); ..[ 2067]: extern int send_sig_info(int, struct siginfo *, struct task_struct *); ..[ 2068]: extern int force_sigsegv(int, struct task_struct *); ..[ 2069]: extern int force_sig_info(int, struct siginfo *, struct task_struct *); ..[ 2070]: extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); ..[ 2071]: extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); ..[ 2072]: extern int kill_pid_info_as_cred(int, struct siginfo *, struct pid *, ..[ 2073]: const struct cred *, u32); ..[ 2074]: extern int kill_pgrp(struct pid *pid, int sig, int priv); ..[ 2075]: extern int kill_pid(struct pid *pid, int sig, int priv); ..[ 2076]: extern int kill_proc_info(int, struct siginfo *, pid_t); ..[ 2077]: extern bool do_notify_parent(struct task_struct *, int); ..[ 2078]: extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent); ..[ 2079]: extern void force_sig(int, struct task_struct *); ..[ 2080]: extern int send_sig(int, struct task_struct *, int); ..[ 2081]: extern int zap_other_threads(struct task_struct *p); ..[ 2082]: extern struct sigqueue *sigqueue_alloc(void); ..[ 2083]: extern void sigqueue_free(struct sigqueue *); ..[ 2084]: extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group); ..[ 2085]: extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); ..[ 2087]: static inline __attribute__((no_instrument_function)) void restore_saved_sigmask(void) ..[ 2088]: { ..[ 2089]: if (test_and_clear_restore_sigmask()) ..[ 2090]: __set_current_blocked(&get_current()->saved_sigmask); ..[ 2091]: } ..[ 2093]: static inline __attribute__((no_instrument_function)) sigset_t *sigmask_to_save(void) ..[ 2094]: { ..[ 2095]: sigset_t *res = &get_current()->blocked; ..[ 2096]: if (__builtin_expect(!!(test_restore_sigmask()), 0)) ..[ 2097]: res = &get_current()->saved_sigmask; ..[ 2098]: return res; ..[ 2099]: } ..[ 2101]: static inline __attribute__((no_instrument_function)) int kill_cad_pid(int sig, int priv) ..[ 2102]: { ..[ 2103]: return kill_pid(cad_pid, sig, priv); ..[ 2104]: } ..[ 2114]: static inline __attribute__((no_instrument_function)) int on_sig_stack(unsigned long sp) ..[ 2115]: { ..[ 2120]: return sp > get_current()->sas_ss_sp && ..[ 2121]: sp - get_current()->sas_ss_sp <= get_current()->sas_ss_size; ..[ 2123]: } ..[ 2125]: static inline __attribute__((no_instrument_function)) int sas_ss_flags(unsigned long sp) ..[ 2126]: { ..[ 2127]: return (get_current()->sas_ss_size == 0 ? 2 ..[ 2128]: : on_sig_stack(sp) ? 1 : 0); ..[ 2129]: } ..[ 2131]: static inline __attribute__((no_instrument_function)) unsigned long sigsp(unsigned long sp, struct ksignal *ksig\ .. ) ..[ 2132]: { ..[ 2133]: if (__builtin_expect(!!((ksig->ka.sa.sa_flags & 0x08000000u)), 0) && ! sas_ss_flags(sp)) ..[ 2137]: return get_current()->sas_ss_sp + get_current()->sas_ss_size; ..[ 2139]: return sp; ..[ 2140]: } ..[ 2145]: extern struct mm_struct * mm_alloc(void); ..[ 2148]: extern void __mmdrop(struct mm_struct *); ..[ 2149]: static inline __attribute__((no_instrument_function)) void mmdrop(struct mm_struct * mm) ..[ 2150]: { ..[ 2151]: if (__builtin_expect(!!(atomic_dec_and_test(&mm->mm_count)), 0)) ..[ 2152]: __mmdrop(mm); ..[ 2153]: } ..[ 2156]: extern void mmput(struct mm_struct *); ..[ 2158]: extern struct mm_struct *get_task_mm(struct task_struct *task); ..[ 2164]: extern struct mm_struct *mm_access(struct task_struct *task, unsigned int mode); ..[ 2166]: extern void mm_release(struct task_struct *, struct mm_struct *); ..[ 2168]: extern struct mm_struct *dup_mm(struct task_struct *tsk); ..[ 2170]: extern int copy_thread(unsigned long, unsigned long, unsigned long, ..[ 2171]: struct task_struct *); ..[ 2172]: extern void flush_thread(void); ..[ 2173]: extern void exit_thread(void); ..[ 2175]: extern void exit_files(struct task_struct *); ..[ 2176]: extern void __cleanup_sighand(struct sighand_struct *); ..[ 2178]: extern void exit_itimers(struct signal_struct *); ..[ 2179]: extern void flush_itimer_signals(void); ..[ 2181]: extern void do_group_exit(int); ..[ 2183]: extern int allow_signal(int); ..[ 2184]: extern int disallow_signal(int); ..[ 2186]: extern int do_execve(const char *, ..[ 2187]: const char * const *, ..[ 2188]: const char * const *); ..[ 2189]: extern long do_fork(unsigned long, unsigned long, unsigned long, int *, int *); ..[ 2190]: struct task_struct *fork_idle(int); ..[ 2191]: extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); ..[ 2193]: extern void set_task_comm(struct task_struct *tsk, char *from); ..[ 2194]: extern char *get_task_comm(char *to, struct task_struct *tsk); ..[ 2197]: void scheduler_ipi(void); ..[ 2198]: extern unsigned long wait_task_inactive(struct task_struct *, long match_state); ..[ 2214]: extern bool current_is_single_threaded(void); ..[ 2226]: static inline __attribute__((no_instrument_function)) int get_nr_threads(struct task_struct *tsk) ..[ 2227]: { ..[ 2228]: return tsk->signal->nr_threads; ..[ 2229]: } ..[ 2231]: static inline __attribute__((no_instrument_function)) bool thread_group_leader(struct task_struct *p) ..[ 2232]: { ..[ 2233]: return p->exit_signal >= 0; ..[ 2234]: } ..[ 2242]: static inline __attribute__((no_instrument_function)) bool has_group_leader_pid(struct task_struct *p) ..[ 2243]: { ..[ 2244]: return task_pid(p) == p->signal->leader_pid; ..[ 2245]: } ..[ 2247]: static inline __attribute__((no_instrument_function)) ..[ 2248]: bool same_thread_group(struct task_struct *p1, struct task_struct *p2) ..[ 2249]: { ..[ 2250]: return p1->signal == p2->signal; ..[ 2251]: } ..[ 2253]: static inline __attribute__((no_instrument_function)) struct task_struct *next_thread(const struct task_struct \ .. *p) ..[ 2254]: { ..[ 2255]: 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) );}); }); ..[ 2257]: } ..[ 2259]: static inline __attribute__((no_instrument_function)) int thread_group_empty(struct task_struct *p) ..[ 2260]: { ..[ 2261]: return list_empty(&p->thread_group); ..[ 2262]: } ..[ 2277]: static inline __attribute__((no_instrument_function)) void task_lock(struct task_struct *p) ..[ 2278]: { ..[ 2279]: spin_lock(&p->alloc_lock); ..[ 2280]: } ..[ 2282]: static inline __attribute__((no_instrument_function)) void task_unlock(struct task_struct *p) ..[ 2283]: { ..[ 2284]: spin_unlock(&p->alloc_lock); ..[ 2285]: } ..[ 2287]: extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk, ..[ 2288]: unsigned long *flags); ..[ 2290]: static inline __attribute__((no_instrument_function)) struct sighand_struct *lock_task_sighand(struct task_struct \ .. *tsk, ..[ 2291]: unsigned long *flags) ..[ 2292]: { ..[ 2293]: struct sighand_struct *ret; ..[ 2295]: ret = __lock_task_sighand(tsk, flags); ..[ 2296]: (void)(ret); ..[ 2297]: return ret; ..[ 2298]: } ..[ 2300]: static inline __attribute__((no_instrument_function)) void unlock_task_sighand(struct task_struct *tsk, ..[ 2301]: unsigned long *flags) ..[ 2302]: { ..[ 2303]: spin_unlock_irqrestore(&tsk->sighand->siglock, *flags); ..[ 2304]: } ..[ 2307]: static inline __attribute__((no_instrument_function)) void threadgroup_change_begin(struct task_struct *tsk\ .. ) ..[ 2308]: { ..[ 2309]: down_read(&tsk->signal->group_rwsem); ..[ 2310]: } ..[ 2311]: static inline __attribute__((no_instrument_function)) void threadgroup_change_end(struct task_struct *tsk) ..[ 2312]: { ..[ 2313]: up_read(&tsk->signal->group_rwsem); ..[ 2314]: } ..[ 2332]: static inline __attribute__((no_instrument_function)) void threadgroup_lock(struct task_struct *tsk) ..[ 2333]: { ..[ 2334]: down_write(&tsk->signal->group_rwsem); ..[ 2335]: } ..[ 2343]: static inline __attribute__((no_instrument_function)) void threadgroup_unlock(struct task_struct *tsk) ..[ 2344]: { ..[ 2345]: up_write(&tsk->signal->group_rwsem); ..[ 2346]: } ..[ 2359]: static inline __attribute__((no_instrument_function)) void setup_thread_stack(struct task_struct *p, struct \ .. task_struct *org) ..[ 2360]: { ..[ 2361]: *((struct thread_info *)(p)->stack) = *((struct thread_info *)(org)->stack); ..[ 2362]: ((struct thread_info *)(p)->stack)->task = p; ..[ 2363]: } ..[ 2365]: static inline __attribute__((no_instrument_function)) unsigned long *end_of_stack(struct task_struct *p) ..[ 2366]: { ..[ 2367]: return (unsigned long *)(((struct thread_info *)(p)->stack) + 1); ..[ 2368]: } ..[ 2372]: static inline __attribute__((no_instrument_function)) int object_is_on_stack(void *obj) ..[ 2373]: { ..[ 2374]: void *stack = ((get_current())->stack); ..[ 2376]: return (obj >= stack) && (obj < (stack + (((1UL) << 12) << 1))); ..[ 2377]: } ..[ 2379]: extern void thread_info_cache_init(void); ..[ 2397]: static inline __attribute__((no_instrument_function)) void set_tsk_thread_flag(struct task_struct *tsk, int \ .. flag) ..[ 2398]: { ..[ 2399]: set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); ..[ 2400]: } ..[ 2402]: static inline __attribute__((no_instrument_function)) void clear_tsk_thread_flag(struct task_struct *tsk, int \ .. flag) ..[ 2403]: { ..[ 2404]: clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); ..[ 2405]: } ..[ 2407]: static inline __attribute__((no_instrument_function)) int test_and_set_tsk_thread_flag(struct task_struct \ .. *tsk, int flag) ..[ 2408]: { ..[ 2409]: return test_and_set_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); ..[ 2410]: } ..[ 2412]: static inline __attribute__((no_instrument_function)) int test_and_clear_tsk_thread_flag(struct task_struct \ .. *tsk, int flag) ..[ 2413]: { ..[ 2414]: return test_and_clear_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); ..[ 2415]: } ..[ 2417]: static inline __attribute__((no_instrument_function)) int test_tsk_thread_flag(struct task_struct *tsk, int \ .. flag) ..[ 2418]: { ..[ 2419]: return test_ti_thread_flag(((struct thread_info *)(tsk)->stack), flag); ..[ 2420]: } ..[ 2422]: static inline __attribute__((no_instrument_function)) void set_tsk_need_resched(struct task_struct *tsk) ..[ 2423]: { ..[ 2424]: set_tsk_thread_flag(tsk,3); ..[ 2425]: } ..[ 2427]: static inline __attribute__((no_instrument_function)) void clear_tsk_need_resched(struct task_struct *tsk) ..[ 2428]: { ..[ 2429]: clear_tsk_thread_flag(tsk,3); ..[ 2430]: } ..[ 2432]: static inline __attribute__((no_instrument_function)) int test_tsk_need_resched(struct task_struct *tsk) ..[ 2433]: { ..[ 2434]: return __builtin_expect(!!(test_tsk_thread_flag(tsk,3)), 0); ..[ 2435]: } ..[ 2437]: static inline __attribute__((no_instrument_function)) int restart_syscall(void) ..[ 2438]: { ..[ 2439]: set_tsk_thread_flag(get_current(), 2); ..[ 2440]: return -513; ..[ 2441]: } ..[ 2443]: static inline __attribute__((no_instrument_function)) int signal_pending(struct task_struct *p) ..[ 2444]: { ..[ 2445]: return __builtin_expect(!!(test_tsk_thread_flag(p,2)), 0); ..[ 2446]: } ..[ 2448]: static inline __attribute__((no_instrument_function)) int __fatal_signal_pending(struct task_struct *p) ..[ 2449]: { ..[ 2450]: return __builtin_expect(!!(sigismember(&p->pending.signal, 9)), 0); ..[ 2451]: } ..[ 2453]: static inline __attribute__((no_instrument_function)) int fatal_signal_pending(struct task_struct *p) ..[ 2454]: { ..[ 2455]: return signal_pending(p) && __fatal_signal_pending(p); ..[ 2456]: } ..[ 2458]: static inline __attribute__((no_instrument_function)) int signal_pending_state(long state, struct task_struct \ .. *p) ..[ 2459]: { ..[ 2460]: if (!(state & (1 | 128))) ..[ 2461]: return 0; ..[ 2462]: if (!signal_pending(p)) ..[ 2463]: return 0; ..[ 2465]: return (state & 1) || __fatal_signal_pending(p); ..[ 2466]: } ..[ 2475]: extern int _cond_resched(void); ..[ 2482]: extern int __cond_resched_lock(spinlock_t *lock); ..[ 2495]: extern int __cond_resched_softirq(void); ..[ 2502]: static inline __attribute__((no_instrument_function)) void cond_resched_rcu(void) ..[ 2503]: { ..[ 2505]: rcu_read_unlock(); ..[ 2506]: ({ __might_sleep(__FILE__, __LINE__, 0); _cond_resched(); }); ..[ 2507]: rcu_read_lock(); ..[ 2509]: } ..[ 2516]: static inline __attribute__((no_instrument_function)) int spin_needbreak(spinlock_t *lock) ..[ 2517]: { ..[ 2521]: return 0; ..[ 2523]: } ..[ 2532]: static inline __attribute__((no_instrument_function)) int tsk_is_polling(struct task_struct *p) ..[ 2533]: { ..[ 2534]: return ((struct thread_info *)(p)->stack)->status & 0x0004; ..[ 2535]: } ..[ 2536]: static inline __attribute__((no_instrument_function)) void __current_set_polling(void) ..[ 2537]: { ..[ 2538]: current_thread_info()->status |= 0x0004; ..[ 2539]: } ..[ 2541]: static inline __attribute__((no_instrument_function)) bool current_set_polling_and_test(void) ..[ 2542]: { ..[ 2543]: __current_set_polling(); ..[ 2549]: asm volatile("mfence":::"memory"); ..[ 2551]: return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 3)), 0); ..[ 2552]: } ..[ 2554]: static inline __attribute__((no_instrument_function)) void __current_clr_polling(void) ..[ 2555]: { ..[ 2556]: current_thread_info()->status &= ~0x0004; ..[ 2557]: } ..[ 2559]: static inline __attribute__((no_instrument_function)) bool current_clr_polling_and_test(void) ..[ 2560]: { ..[ 2561]: __current_clr_polling(); ..[ 2567]: asm volatile("mfence":::"memory"); ..[ 2569]: return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 3)), 0); ..[ 2570]: } ..[ 2630]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) bool need_resched(void\ .. ) ..[ 2631]: { ..[ 2632]: return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 3)), 0); ..[ 2633]: } ..[ 2638]: void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times); ..[ 2639]: void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times); ..[ 2641]: static inline __attribute__((no_instrument_function)) void thread_group_cputime_init(struct signal_struct \ .. *sig) ..[ 2642]: { ..[ 2643]: do { *(&sig->cputimer.lock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while (0); ..[ 2644]: } ..[ 2652]: extern void recalc_sigpending_and_wake(struct task_struct *t); ..[ 2653]: extern void recalc_sigpending(void); ..[ 2655]: extern void signal_wake_up_state(struct task_struct *t, unsigned int state); ..[ 2657]: static inline __attribute__((no_instrument_function)) void signal_wake_up(struct task_struct *t, bool resume\ .. ) ..[ 2658]: { ..[ 2659]: signal_wake_up_state(t, resume ? 128 : 0); ..[ 2660]: } ..[ 2661]: static inline __attribute__((no_instrument_function)) void ptrace_signal_wake_up(struct task_struct *t, bool \ .. resume) ..[ 2662]: { ..[ 2663]: signal_wake_up_state(t, resume ? 8 : 0); ..[ 2664]: } ..[ 2671]: static inline __attribute__((no_instrument_function)) unsigned int task_cpu(const struct task_struct *p) ..[ 2672]: { ..[ 2673]: return ((struct thread_info *)(p)->stack)->cpu; ..[ 2674]: } ..[ 2676]: static inline __attribute__((no_instrument_function)) int task_node(const struct task_struct *p) ..[ 2677]: { ..[ 2678]: return cpu_to_node(task_cpu(p)); ..[ 2679]: } ..[ 2681]: extern void set_task_cpu(struct task_struct *p, unsigned int cpu); ..[ 2696]: extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); ..[ 2697]: extern long sched_getaffinity(pid_t pid, struct cpumask *mask); ..[ 2700]: extern struct task_group root_task_group; ..[ 2703]: extern int task_can_switch_user(struct user_struct *up, ..[ 2704]: struct task_struct *tsk); ..[ 2707]: static inline __attribute__((no_instrument_function)) void add_rchar(struct task_struct *tsk, ssize_t amt) ..[ 2708]: { ..[ 2709]: tsk->ioac.rchar += amt; ..[ 2710]: } ..[ 2712]: static inline __attribute__((no_instrument_function)) void add_wchar(struct task_struct *tsk, ssize_t amt) ..[ 2713]: { ..[ 2714]: tsk->ioac.wchar += amt; ..[ 2715]: } ..[ 2717]: static inline __attribute__((no_instrument_function)) void inc_syscr(struct task_struct *tsk) ..[ 2718]: { ..[ 2719]: tsk->ioac.syscr++; ..[ 2720]: } ..[ 2722]: static inline __attribute__((no_instrument_function)) void inc_syscw(struct task_struct *tsk) ..[ 2723]: { ..[ 2724]: tsk->ioac.syscw++; ..[ 2725]: } ..[ 2752]: static inline __attribute__((no_instrument_function)) void mm_update_next_owner(struct mm_struct *mm) ..[ 2753]: { ..[ 2754]: } ..[ 2756]: static inline __attribute__((no_instrument_function)) void mm_init_owner(struct mm_struct *mm, struct task_struct \ .. *p) ..[ 2757]: { ..[ 2758]: } ..[ 2761]: static inline __attribute__((no_instrument_function)) unsigned long task_rlimit(const struct task_struct *tsk\ .. , ..[ 2762]: unsigned int limit) ..[ 2763]: { ..[ 2764]: return (*(volatile typeof(tsk->signal->rlim[limit].rlim_cur) *)&(tsk->signal->rlim[limit].rlim_cur)); ..[ 2765]: } ..[ 2767]: static inline __attribute__((no_instrument_function)) unsigned long task_rlimit_max(const struct task_struct \ .. *tsk, ..[ 2768]: unsigned int limit) ..[ 2769]: { ..[ 2770]: return (*(volatile typeof(tsk->signal->rlim[limit].rlim_max) *)&(tsk->signal->rlim[limit].rlim_max)); ..[ 2771]: } ..[ 2773]: static inline __attribute__((no_instrument_function)) unsigned long rlimit(unsigned int limit) ..[ 2774]: { ..[ 2775]: return task_rlimit(get_current(), limit); ..[ 2776]: } ..[ 2778]: static inline __attribute__((no_instrument_function)) unsigned long rlimit_max(unsigned int limit) ..[ 2779]: { ..[ 2780]: return task_rlimit_max(get_current(), limit); ..[ 2781]: } ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sched.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpu.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpu.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/node.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/node.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ioport.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ioport.h .....[ 18]: struct resource { .....[ 19]: resource_size_t start; .....[ 20]: resource_size_t end; .....[ 21]: const char *name; .....[ 22]: unsigned long flags; .....[ 23]: struct resource *parent, *sibling, *child; .....[ 24]: }; .....[ 138]: extern struct resource ioport_resource; .....[ 139]: extern struct resource iomem_resource; .....[ 141]: extern struct resource *request_resource_conflict(struct resource *root, struct resource *new); .....[ 142]: extern int request_resource(struct resource *root, struct resource *new); .....[ 143]: extern int release_resource(struct resource *new); .....[ 144]: void release_child_resources(struct resource *new); .....[ 145]: extern void reserve_region_with_split(struct resource *root, .....[ 146]: resource_size_t start, resource_size_t end, .....[ 147]: const char *name); .....[ 148]: extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new); .....[ 149]: extern int insert_resource(struct resource *parent, struct resource *new); .....[ 150]: extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new); .....[ 151]: extern void arch_remove_reservations(struct resource *avail); .....[ 152]: extern int allocate_resource(struct resource *root, struct resource *new, .....[ 153]: resource_size_t size, resource_size_t min, .....[ 154]: resource_size_t max, resource_size_t align, .....[ 155]: resource_size_t (*alignf)(void *, .....[ 156]: const struct resource *, .....[ 157]: resource_size_t, .....[ 158]: resource_size_t), .....[ 159]: void *alignf_data); .....[ 160]: struct resource *lookup_resource(struct resource *root, resource_size_t start); .....[ 161]: int adjust_resource(struct resource *res, resource_size_t start, .....[ 162]: resource_size_t size); .....[ 163]: resource_size_t resource_alignment(struct resource *res); .....[ 164]: static inline __attribute__((no_instrument_function)) resource_size_t resource_size(const struct resource *\ ..... res) .....[ 165]: { .....[ 166]: return res->end - res->start + 1; .....[ 167]: } .....[ 168]: static inline __attribute__((no_instrument_function)) unsigned long resource_type(const struct resource *res\ ..... ) .....[ 169]: { .....[ 170]: return res->flags & 0x00001f00; .....[ 171]: } .....[ 182]: extern struct resource * __request_region(struct resource *, .....[ 183]: resource_size_t start, .....[ 184]: resource_size_t n, .....[ 185]: const char *name, int flags); .....[ 192]: extern int __check_region(struct resource *, resource_size_t, resource_size_t); .....[ 193]: extern void __release_region(struct resource *, resource_size_t, .....[ 194]: resource_size_t); .....[ 200]: static inline __attribute__((no_instrument_function)) int check_region(resource_size_t s, .....[ 201]: resource_size_t n) .....[ 202]: { .....[ 203]: return __check_region(&ioport_resource, s, n); .....[ 204]: } .....[ 207]: struct device; .....[ 213]: extern struct resource * __devm_request_region(struct device *dev, .....[ 214]: struct resource *parent, resource_size_t start, .....[ 215]: resource_size_t n, const char *name); .....[ 222]: extern void __devm_release_region(struct device *dev, struct resource *parent, .....[ 223]: resource_size_t start, resource_size_t n); .....[ 224]: extern int iomem_map_sanity_check(resource_size_t addr, unsigned long size); .....[ 225]: extern int iomem_is_exclusive(u64 addr); .....[ 227]: extern int .....[ 228]: walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, .....[ 229]: void *arg, int (*func)(unsigned long, unsigned long, void *)); .....[ 232]: static inline __attribute__((no_instrument_function)) bool resource_overlaps(struct resource *r1, struct resource \ ..... *r2) .....[ 233]: { .....[ 234]: return (r1->start <= r2->end && r1->end >= r2->start); .....[ 235]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ioport.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysfs.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysfs.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject_ns.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject_ns.h .......[ 20]: struct sock; .......[ 21]: struct kobject; .......[ 27]: enum kobj_ns_type { .......[ 28]: KOBJ_NS_TYPE_NONE = 0, .......[ 29]: KOBJ_NS_TYPE_NET, .......[ 30]: KOBJ_NS_TYPES .......[ 31]: }; .......[ 40]: struct kobj_ns_type_operations { .......[ 41]: enum kobj_ns_type type; .......[ 42]: bool (*current_may_mount)(void); .......[ 43]: void *(*grab_current_ns)(void); .......[ 44]: const void *(*netlink_ns)(struct sock *sk); .......[ 45]: const void *(*initial_ns)(void); .......[ 46]: void (*drop_ns)(void *); .......[ 47]: }; .......[ 49]: int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); .......[ 50]: int kobj_ns_type_registered(enum kobj_ns_type type); .......[ 51]: const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); .......[ 52]: const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); .......[ 54]: bool kobj_ns_current_may_mount(enum kobj_ns_type type); .......[ 55]: void *kobj_ns_grab_current(enum kobj_ns_type type); .......[ 56]: const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk); .......[ 57]: const void *kobj_ns_initial(enum kobj_ns_type type); .......[ 58]: void kobj_ns_drop(enum kobj_ns_type type, void *ns); .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject_ns.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysfs.h ......[ 23]: struct kobject; ......[ 24]: struct module; ......[ 25]: struct bin_attribute; ......[ 26]: enum kobj_ns_type; ......[ 28]: struct attribute { ......[ 29]: const char *name; ......[ 30]: umode_t mode; ......[ 36]: }; ......[ 59]: struct attribute_group { ......[ 60]: const char *name; ......[ 61]: umode_t (*is_visible)(struct kobject *, ......[ 62]: struct attribute *, int); ......[ 63]: struct attribute **attrs; ......[ 64]: struct bin_attribute **bin_attrs; ......[ 65]: }; ......[ 116]: struct file; ......[ 117]: struct vm_area_struct; ......[ 119]: struct bin_attribute { ......[ 120]: struct attribute attr; ......[ 121]: size_t size; ......[ 122]: void *private; ......[ 123]: ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, ......[ 124]: char *, loff_t, size_t); ......[ 125]: ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, ......[ 126]: char *, loff_t, size_t); ......[ 127]: int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, ......[ 128]: struct vm_area_struct *vma); ......[ 129]: }; ......[ 173]: struct sysfs_ops { ......[ 174]: ssize_t (*show)(struct kobject *, struct attribute *, char *); ......[ 175]: ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); ......[ 176]: }; ......[ 178]: struct sysfs_dirent; ......[ 182]: int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *), ......[ 183]: void *data, struct module *owner); ......[ 185]: int sysfs_create_dir_ns(struct kobject *kobj, const void *ns); ......[ 186]: void sysfs_remove_dir(struct kobject *kobj); ......[ 187]: int sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name, ......[ 188]: const void *new_ns); ......[ 189]: int sysfs_move_dir_ns(struct kobject *kobj, ......[ 190]: struct kobject *new_parent_kobj, ......[ 191]: const void *new_ns); ......[ 193]: int sysfs_create_file_ns(struct kobject *kobj, ......[ 194]: const struct attribute *attr, ......[ 195]: const void *ns); ......[ 196]: int sysfs_create_files(struct kobject *kobj, ......[ 197]: const struct attribute **attr); ......[ 198]: int sysfs_chmod_file(struct kobject *kobj, ......[ 199]: const struct attribute *attr, umode_t mode); ......[ 200]: void sysfs_remove_file_ns(struct kobject *kobj, const struct attribute *attr, ......[ 201]: const void *ns); ......[ 202]: void sysfs_remove_files(struct kobject *kobj, const struct attribute **attr); ......[ 204]: int sysfs_create_bin_file(struct kobject *kobj, ......[ 205]: const struct bin_attribute *attr); ......[ 206]: void sysfs_remove_bin_file(struct kobject *kobj, ......[ 207]: const struct bin_attribute *attr); ......[ 209]: int sysfs_create_link(struct kobject *kobj, struct kobject *target, ......[ 210]: const char *name); ......[ 211]: int sysfs_create_link_nowarn(struct kobject *kobj, ......[ 212]: struct kobject *target, ......[ 213]: const char *name); ......[ 214]: void sysfs_remove_link(struct kobject *kobj, const char *name); ......[ 216]: int sysfs_rename_link_ns(struct kobject *kobj, struct kobject *target, ......[ 217]: const char *old_name, const char *new_name, ......[ 218]: const void *new_ns); ......[ 220]: void sysfs_delete_link(struct kobject *dir, struct kobject *targ, ......[ 221]: const char *name); ......[ 223]: int sysfs_create_group(struct kobject *kobj, ......[ 224]: const struct attribute_group *grp); ......[ 225]: int sysfs_create_groups(struct kobject *kobj, ......[ 226]: const struct attribute_group **groups); ......[ 227]: int sysfs_update_group(struct kobject *kobj, ......[ 228]: const struct attribute_group *grp); ......[ 229]: void sysfs_remove_group(struct kobject *kobj, ......[ 230]: const struct attribute_group *grp); ......[ 231]: void sysfs_remove_groups(struct kobject *kobj, ......[ 232]: const struct attribute_group **groups); ......[ 233]: int sysfs_add_file_to_group(struct kobject *kobj, ......[ 234]: const struct attribute *attr, const char *group); ......[ 235]: void sysfs_remove_file_from_group(struct kobject *kobj, ......[ 236]: const struct attribute *attr, const char *group); ......[ 237]: int sysfs_merge_group(struct kobject *kobj, ......[ 238]: const struct attribute_group *grp); ......[ 239]: void sysfs_unmerge_group(struct kobject *kobj, ......[ 240]: const struct attribute_group *grp); ......[ 241]: int sysfs_add_link_to_group(struct kobject *kobj, const char *group_name, ......[ 242]: struct kobject *target, const char *link_name); ......[ 243]: void sysfs_remove_link_from_group(struct kobject *kobj, const char *group_name, ......[ 244]: const char *link_name); ......[ 246]: void sysfs_notify(struct kobject *kobj, const char *dir, const char *attr); ......[ 247]: void sysfs_notify_dirent(struct sysfs_dirent *sd); ......[ 248]: struct sysfs_dirent *sysfs_get_dirent_ns(struct sysfs_dirent *parent_sd, ......[ 249]: const unsigned char *name, ......[ 250]: const void *ns); ......[ 251]: struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd); ......[ 252]: void sysfs_put(struct sysfs_dirent *sd); ......[ 254]: int sysfs_init(void); ......[ 446]: static inline __attribute__((no_instrument_function)) int sysfs_create_file(struct kobject *kobj, ......[ 447]: const struct attribute *attr) ......[ 448]: { ......[ 449]: return sysfs_create_file_ns(kobj, attr, ((void *)0)); ......[ 450]: } ......[ 452]: static inline __attribute__((no_instrument_function)) void sysfs_remove_file(struct kobject *kobj, ......[ 453]: const struct attribute *attr) ......[ 454]: { ......[ 455]: return sysfs_remove_file_ns(kobj, attr, ((void *)0)); ......[ 456]: } ......[ 458]: static inline __attribute__((no_instrument_function)) int sysfs_rename_link(struct kobject *kobj, struct kobject \ ...... *target, ......[ 459]: const char *old_name, const char *new_name) ......[ 460]: { ......[ 461]: return sysfs_rename_link_ns(kobj, target, old_name, new_name, ((void *)0)); ......[ 462]: } ......[ 464]: static inline __attribute__((no_instrument_function)) struct sysfs_dirent * ......[ 465]: sysfs_get_dirent(struct sysfs_dirent *parent_sd, const unsigned char *name) ......[ 466]: { ......[ 467]: return sysfs_get_dirent_ns(parent_sd, name, ((void *)0)); ......[ 468]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/sysfs.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kref.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kref.h ......[ 24]: struct kref { ......[ 25]: atomic_t refcount; ......[ 26]: }; ......[ 32]: static inline __attribute__((no_instrument_function)) void kref_init(struct kref *kref) ......[ 33]: { ......[ 34]: atomic_set(&kref->refcount, 1); ......[ 35]: } ......[ 41]: static inline __attribute__((no_instrument_function)) void kref_get(struct kref *kref) ......[ 42]: { ......[ 47]: ({ static bool __attribute__ ((__section__(".data.unlikely"))) __warned; int __ret_warn_once = !!((atomic_add_return\ ...... (1, &kref->refcount)) < 2); if (__builtin_expect(!!(__ret_warn_once), 0)) if (({ int __ret_warn_on = !!(!__warned\ ...... ); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null(__FILE__, __LINE__); __builtin_expect(!!\ ...... (__ret_warn_on), 0); })) __warned = true; __builtin_expect(!!(__ret_warn_once), 0); }); ......[ 48]: } ......[ 68]: static inline __attribute__((no_instrument_function)) int kref_sub(struct kref *kref, unsigned int count, ......[ 69]: void (*release)(struct kref *kref)) ......[ 70]: { ......[ 71]: ({ int __ret_warn_on = !!(release == ((void *)0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null\ ...... (__FILE__, __LINE__); __builtin_expect(!!(__ret_warn_on), 0); }); ......[ 73]: if (atomic_sub_and_test((int) count, &kref->refcount)) { ......[ 74]: release(kref); ......[ 75]: return 1; ......[ 76]: } ......[ 77]: return 0; ......[ 78]: } ......[ 97]: static inline __attribute__((no_instrument_function)) int kref_put(struct kref *kref, void (*release)(struct \ ...... kref *kref)) ......[ 98]: { ......[ 99]: return kref_sub(kref, 1, release); ......[ 100]: } ......[ 115]: static inline __attribute__((no_instrument_function)) int kref_put_spinlock_irqsave(struct kref *kref, ......[ 116]: void (*release)(struct kref *kref), ......[ 117]: spinlock_t *lock) ......[ 118]: { ......[ 119]: unsigned long flags; ......[ 121]: ({ int __ret_warn_on = !!(release == ((void *)0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null\ ...... (__FILE__, __LINE__); __builtin_expect(!!(__ret_warn_on), 0); }); ......[ 122]: if (atomic_add_unless(&kref->refcount, -1, 1)) ......[ 123]: return 0; ......[ 124]: do { do { ({ unsigned long __dummy; typeof(flags) __dummy2; (void)(&__dummy == &__dummy2); 1; }); flags = _raw_spin_lock_irqsave\ ...... (spinlock_check(lock)); } while (0); } while (0); ......[ 125]: if (atomic_dec_and_test(&kref->refcount)) { ......[ 126]: release(kref); ......[ 127]: 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); ......[ 128]: return 1; ......[ 129]: } ......[ 130]: spin_unlock_irqrestore(lock, flags); ......[ 131]: return 0; ......[ 132]: } ......[ 134]: static inline __attribute__((no_instrument_function)) int kref_put_mutex(struct kref *kref, ......[ 135]: void (*release)(struct kref *kref), ......[ 136]: struct mutex *lock) ......[ 137]: { ......[ 138]: ({ int __ret_warn_on = !!(release == ((void *)0)); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null\ ...... (__FILE__, __LINE__); __builtin_expect(!!(__ret_warn_on), 0); }); ......[ 139]: if (__builtin_expect(!!(!atomic_add_unless(&kref->refcount, -1, 1)), 0)) { ......[ 140]: mutex_lock(lock); ......[ 141]: if (__builtin_expect(!!(!atomic_dec_and_test(&kref->refcount)), 0)) { ......[ 142]: mutex_unlock(lock); ......[ 143]: return 0; ......[ 144]: } ......[ 145]: release(kref); ......[ 146]: return 1; ......[ 147]: } ......[ 148]: return 0; ......[ 149]: } ......[ 167]: static inline __attribute__((no_instrument_function)) int kref_get_unless_zero(struct kref *kref) ......[ 168]: { ......[ 169]: return atomic_add_unless(&kref->refcount, 1, 0); ......[ 170]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kref.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject.h .....[ 36]: extern char uevent_helper[]; .....[ 39]: extern u64 uevent_seqnum; .....[ 51]: enum kobject_action { .....[ 52]: KOBJ_ADD, .....[ 53]: KOBJ_REMOVE, .....[ 54]: KOBJ_CHANGE, .....[ 55]: KOBJ_MOVE, .....[ 56]: KOBJ_ONLINE, .....[ 57]: KOBJ_OFFLINE, .....[ 58]: KOBJ_MAX .....[ 59]: }; .....[ 61]: struct kobject { .....[ 62]: const char *name; .....[ 63]: struct list_head entry; .....[ 64]: struct kobject *parent; .....[ 65]: struct kset *kset; .....[ 66]: struct kobj_type *ktype; .....[ 67]: struct sysfs_dirent *sd; .....[ 68]: struct kref kref; .....[ 72]: unsigned int state_initialized:1; .....[ 73]: unsigned int state_in_sysfs:1; .....[ 74]: unsigned int state_add_uevent_sent:1; .....[ 75]: unsigned int state_remove_uevent_sent:1; .....[ 76]: unsigned int uevent_suppress:1; .....[ 77]: }; .....[ 79]: extern __attribute__((format(printf, 2, 3))) .....[ 80]: int kobject_set_name(struct kobject *kobj, const char *name, ...); .....[ 81]: extern int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, .....[ 82]: va_list vargs); .....[ 84]: static inline __attribute__((no_instrument_function)) const char *kobject_name(const struct kobject *kobj) .....[ 85]: { .....[ 86]: return kobj->name; .....[ 87]: } .....[ 89]: extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype); .....[ 90]: extern __attribute__((format(printf, 3, 4))) .....[ 91]: int kobject_add(struct kobject *kobj, struct kobject *parent, .....[ 92]: const char *fmt, ...); .....[ 93]: extern __attribute__((format(printf, 4, 5))) .....[ 94]: int kobject_init_and_add(struct kobject *kobj, .....[ 95]: struct kobj_type *ktype, struct kobject *parent, .....[ 96]: const char *fmt, ...); .....[ 98]: extern void kobject_del(struct kobject *kobj); .....[ 100]: extern struct kobject * kobject_create(void); .....[ 101]: extern struct kobject * kobject_create_and_add(const char *name, .....[ 102]: struct kobject *parent); .....[ 104]: extern int kobject_rename(struct kobject *, const char *new_name); .....[ 105]: extern int kobject_move(struct kobject *, struct kobject *); .....[ 107]: extern struct kobject *kobject_get(struct kobject *kobj); .....[ 108]: extern void kobject_put(struct kobject *kobj); .....[ 110]: extern const void *kobject_namespace(struct kobject *kobj); .....[ 111]: extern char *kobject_get_path(struct kobject *kobj, gfp_t flag); .....[ 113]: struct kobj_type { .....[ 114]: void (*release)(struct kobject *kobj); .....[ 115]: const struct sysfs_ops *sysfs_ops; .....[ 116]: struct attribute **default_attrs; .....[ 117]: const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj); .....[ 118]: const void *(*namespace)(struct kobject *kobj); .....[ 119]: }; .....[ 121]: struct kobj_uevent_env { .....[ 122]: char *envp[32]; .....[ 123]: int envp_idx; .....[ 124]: char buf[2048]; .....[ 125]: int buflen; .....[ 126]: }; .....[ 128]: struct kset_uevent_ops { .....[ 129]: int (* const filter)(struct kset *kset, struct kobject *kobj); .....[ 130]: const char *(* const name)(struct kset *kset, struct kobject *kobj); .....[ 131]: int (* const uevent)(struct kset *kset, struct kobject *kobj, .....[ 132]: struct kobj_uevent_env *env); .....[ 133]: }; .....[ 135]: struct kobj_attribute { .....[ 136]: struct attribute attr; .....[ 137]: ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr, .....[ 138]: char *buf); .....[ 139]: ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr, .....[ 140]: const char *buf, size_t count); .....[ 141]: }; .....[ 143]: extern const struct sysfs_ops kobj_sysfs_ops; .....[ 145]: struct sock; .....[ 164]: struct kset { .....[ 165]: struct list_head list; .....[ 166]: spinlock_t list_lock; .....[ 167]: struct kobject kobj; .....[ 168]: const struct kset_uevent_ops *uevent_ops; .....[ 169]: }; .....[ 171]: extern void kset_init(struct kset *kset); .....[ 172]: extern int kset_register(struct kset *kset); .....[ 173]: extern void kset_unregister(struct kset *kset); .....[ 174]: extern struct kset * kset_create_and_add(const char *name, .....[ 175]: const struct kset_uevent_ops *u, .....[ 176]: struct kobject *parent_kobj); .....[ 178]: static inline __attribute__((no_instrument_function)) struct kset *to_kset(struct kobject *kobj) .....[ 179]: { .....[ 180]: return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof\ ..... (struct kset,kobj) );}) : ((void *)0); .....[ 181]: } .....[ 183]: static inline __attribute__((no_instrument_function)) struct kset *kset_get(struct kset *k) .....[ 184]: { .....[ 185]: return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0); .....[ 186]: } .....[ 188]: static inline __attribute__((no_instrument_function)) void kset_put(struct kset *k) .....[ 189]: { .....[ 190]: kobject_put(&k->kobj); .....[ 191]: } .....[ 193]: static inline __attribute__((no_instrument_function)) struct kobj_type *get_ktype(struct kobject *kobj) .....[ 194]: { .....[ 195]: return kobj->ktype; .....[ 196]: } .....[ 198]: extern struct kobject *kset_find_obj(struct kset *, const char *); .....[ 201]: extern struct kobject *kernel_kobj; .....[ 203]: extern struct kobject *mm_kobj; .....[ 205]: extern struct kobject *hypervisor_kobj; .....[ 207]: extern struct kobject *power_kobj; .....[ 209]: extern struct kobject *firmware_kobj; .....[ 211]: int kobject_uevent(struct kobject *kobj, enum kobject_action action); .....[ 212]: int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, .....[ 213]: char *envp[]); .....[ 215]: __attribute__((format(printf, 2, 3))) .....[ 216]: int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...); .....[ 218]: int kobject_action_type(const char *buf, size_t count, .....[ 219]: enum kobject_action *type); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kobject.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/klist.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/klist.h .....[ 19]: struct klist_node; .....[ 20]: struct klist { .....[ 21]: spinlock_t k_lock; .....[ 22]: struct list_head k_list; .....[ 23]: void (*get)(struct klist_node *); .....[ 24]: void (*put)(struct klist_node *); .....[ 25]: } __attribute__ ((aligned (sizeof(void *)))); .....[ 36]: extern void klist_init(struct klist *k, void (*get)(struct klist_node *), .....[ 37]: void (*put)(struct klist_node *)); .....[ 39]: struct klist_node { .....[ 40]: void *n_klist; .....[ 41]: struct list_head n_node; .....[ 42]: struct kref n_ref; .....[ 43]: }; .....[ 45]: extern void klist_add_tail(struct klist_node *n, struct klist *k); .....[ 46]: extern void klist_add_head(struct klist_node *n, struct klist *k); .....[ 47]: extern void klist_add_after(struct klist_node *n, struct klist_node *pos); .....[ 48]: extern void klist_add_before(struct klist_node *n, struct klist_node *pos); .....[ 50]: extern void klist_del(struct klist_node *n); .....[ 51]: extern void klist_remove(struct klist_node *n); .....[ 53]: extern int klist_node_attached(struct klist_node *n); .....[ 56]: struct klist_iter { .....[ 57]: struct klist *i_klist; .....[ 58]: struct klist_node *i_cur; .....[ 59]: }; .....[ 62]: extern void klist_iter_init(struct klist *k, struct klist_iter *i); .....[ 63]: extern void klist_iter_init_node(struct klist *k, struct klist_iter *i, .....[ 64]: struct klist_node *n); .....[ 65]: extern void klist_iter_exit(struct klist_iter *i); .....[ 66]: extern struct klist_node *klist_next(struct klist_iter *i); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/klist.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pinctrl/devinfo.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pinctrl/devinfo.h .....[ 43]: static inline __attribute__((no_instrument_function)) int pinctrl_bind_pins(struct device *dev) .....[ 44]: { .....[ 45]: return 0; .....[ 46]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pinctrl/devinfo.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ratelimit.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ratelimit.h .....[ 10]: struct ratelimit_state { .....[ 11]: raw_spinlock_t lock; .....[ 13]: int interval; .....[ 14]: int burst; .....[ 15]: int printed; .....[ 16]: int missed; .....[ 17]: unsigned long begin; .....[ 18]: }; .....[ 28]: static inline __attribute__((no_instrument_function)) void ratelimit_state_init(struct ratelimit_state *rs\ ..... , .....[ 29]: int interval, int burst) .....[ 30]: { .....[ 31]: do { *(&rs->lock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while (0); .....[ 32]: rs->interval = interval; .....[ 33]: rs->burst = burst; .....[ 34]: rs->printed = 0; .....[ 35]: rs->missed = 0; .....[ 36]: rs->begin = 0; .....[ 37]: } .....[ 39]: extern struct ratelimit_state printk_ratelimit_state; .....[ 41]: extern int ___ratelimit(struct ratelimit_state *rs, const char *func); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ratelimit.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/device.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/device.h .....[ 4]: struct dev_archdata { .....[ 6]: struct dma_map_ops *dma_ops; .....[ 9]: void *iommu; .....[ 11]: }; .....[ 13]: struct pdev_archdata { .....[ 14]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/device.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....[ 32]: struct device; ....[ 33]: struct device_private; ....[ 34]: struct device_driver; ....[ 35]: struct driver_private; ....[ 36]: struct module; ....[ 37]: struct class; ....[ 38]: struct subsys_private; ....[ 39]: struct bus_type; ....[ 40]: struct device_node; ....[ 41]: struct iommu_ops; ....[ 42]: struct iommu_group; ....[ 44]: struct bus_attribute { ....[ 45]: struct attribute attr; ....[ 46]: ssize_t (*show)(struct bus_type *bus, char *buf); ....[ 47]: ssize_t (*store)(struct bus_type *bus, const char *buf, size_t count); ....[ 48]: }; ....[ 57]: extern int bus_create_file(struct bus_type *, ....[ 58]: struct bus_attribute *); ....[ 59]: extern void bus_remove_file(struct bus_type *, struct bus_attribute *); ....[ 104]: struct bus_type { ....[ 105]: const char *name; ....[ 106]: const char *dev_name; ....[ 107]: struct device *dev_root; ....[ 108]: struct device_attribute *dev_attrs; ....[ 109]: const struct attribute_group **bus_groups; ....[ 110]: const struct attribute_group **dev_groups; ....[ 111]: const struct attribute_group **drv_groups; ....[ 113]: int (*match)(struct device *dev, struct device_driver *drv); ....[ 114]: int (*uevent)(struct device *dev, struct kobj_uevent_env *env); ....[ 115]: int (*probe)(struct device *dev); ....[ 116]: int (*remove)(struct device *dev); ....[ 117]: void (*shutdown)(struct device *dev); ....[ 119]: int (*online)(struct device *dev); ....[ 120]: int (*offline)(struct device *dev); ....[ 122]: int (*suspend)(struct device *dev, pm_message_t state); ....[ 123]: int (*resume)(struct device *dev); ....[ 125]: const struct dev_pm_ops *pm; ....[ 127]: struct iommu_ops *iommu_ops; ....[ 129]: struct subsys_private *p; ....[ 130]: struct lock_class_key lock_key; ....[ 131]: }; ....[ 133]: extern int bus_register(struct bus_type *bus); ....[ 135]: extern void bus_unregister(struct bus_type *bus); ....[ 137]: extern int bus_rescan_devices(struct bus_type *bus); ....[ 140]: struct subsys_dev_iter { ....[ 141]: struct klist_iter ki; ....[ 142]: const struct device_type *type; ....[ 143]: }; ....[ 144]: void subsys_dev_iter_init(struct subsys_dev_iter *iter, ....[ 145]: struct bus_type *subsys, ....[ 146]: struct device *start, ....[ 147]: const struct device_type *type); ....[ 148]: struct device *subsys_dev_iter_next(struct subsys_dev_iter *iter); ....[ 149]: void subsys_dev_iter_exit(struct subsys_dev_iter *iter); ....[ 151]: int bus_for_each_dev(struct bus_type *bus, struct device *start, void *data, ....[ 152]: int (*fn)(struct device *dev, void *data)); ....[ 153]: struct device *bus_find_device(struct bus_type *bus, struct device *start, ....[ 154]: void *data, ....[ 155]: int (*match)(struct device *dev, void *data)); ....[ 156]: struct device *bus_find_device_by_name(struct bus_type *bus, ....[ 157]: struct device *start, ....[ 158]: const char *name); ....[ 159]: struct device *subsys_find_device_by_id(struct bus_type *bus, unsigned int id, ....[ 160]: struct device *hint); ....[ 161]: int bus_for_each_drv(struct bus_type *bus, struct device_driver *start, ....[ 162]: void *data, int (*fn)(struct device_driver *, void *)); ....[ 163]: void bus_sort_breadthfirst(struct bus_type *bus, ....[ 164]: int (*compare)(const struct device *a, ....[ 165]: const struct device *b)); ....[ 172]: struct notifier_block; ....[ 174]: extern int bus_register_notifier(struct bus_type *bus, ....[ 175]: struct notifier_block *nb); ....[ 176]: extern int bus_unregister_notifier(struct bus_type *bus, ....[ 177]: struct notifier_block *nb); ....[ 193]: extern struct kset *bus_get_kset(struct bus_type *bus); ....[ 194]: extern struct klist *bus_get_device_klist(struct bus_type *bus); ....[ 228]: struct device_driver { ....[ 229]: const char *name; ....[ 230]: struct bus_type *bus; ....[ 232]: struct module *owner; ....[ 233]: const char *mod_name; ....[ 235]: bool suppress_bind_attrs; ....[ 237]: const struct of_device_id *of_match_table; ....[ 238]: const struct acpi_device_id *acpi_match_table; ....[ 240]: int (*probe) (struct device *dev); ....[ 241]: int (*remove) (struct device *dev); ....[ 242]: void (*shutdown) (struct device *dev); ....[ 243]: int (*suspend) (struct device *dev, pm_message_t state); ....[ 244]: int (*resume) (struct device *dev); ....[ 245]: const struct attribute_group **groups; ....[ 247]: const struct dev_pm_ops *pm; ....[ 249]: struct driver_private *p; ....[ 250]: }; ....[ 253]: extern int driver_register(struct device_driver *drv); ....[ 254]: extern void driver_unregister(struct device_driver *drv); ....[ 256]: extern struct device_driver *driver_find(const char *name, ....[ 257]: struct bus_type *bus); ....[ 258]: extern int driver_probe_done(void); ....[ 259]: extern void wait_for_device_probe(void); ....[ 264]: struct driver_attribute { ....[ 265]: struct attribute attr; ....[ 266]: ssize_t (*show)(struct device_driver *driver, char *buf); ....[ 267]: ssize_t (*store)(struct device_driver *driver, const char *buf, ....[ 268]: size_t count); ....[ 269]: }; ....[ 280]: extern int driver_create_file(struct device_driver *driver, ....[ 281]: const struct driver_attribute *attr); ....[ 282]: extern void driver_remove_file(struct device_driver *driver, ....[ 283]: const struct driver_attribute *attr); ....[ 285]: extern int driver_for_each_device(struct device_driver *drv, ....[ 286]: struct device *start, ....[ 287]: void *data, ....[ 288]: int (*fn)(struct device *dev, ....[ 289]: void *)); ....[ 290]: struct device *driver_find_device(struct device_driver *drv, ....[ 291]: struct device *start, void *data, ....[ 292]: int (*match)(struct device *dev, void *data)); ....[ 307]: struct subsys_interface { ....[ 308]: const char *name; ....[ 309]: struct bus_type *subsys; ....[ 310]: struct list_head node; ....[ 311]: int (*add_dev)(struct device *dev, struct subsys_interface *sif); ....[ 312]: int (*remove_dev)(struct device *dev, struct subsys_interface *sif); ....[ 313]: }; ....[ 315]: int subsys_interface_register(struct subsys_interface *sif); ....[ 316]: void subsys_interface_unregister(struct subsys_interface *sif); ....[ 318]: int subsys_system_register(struct bus_type *subsys, ....[ 319]: const struct attribute_group **groups); ....[ 320]: int subsys_virtual_register(struct bus_type *subsys, ....[ 321]: const struct attribute_group **groups); ....[ 351]: struct class { ....[ 352]: const char *name; ....[ 353]: struct module *owner; ....[ 355]: struct class_attribute *class_attrs; ....[ 356]: const struct attribute_group **dev_groups; ....[ 357]: struct kobject *dev_kobj; ....[ 359]: int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env); ....[ 360]: char *(*devnode)(struct device *dev, umode_t *mode); ....[ 362]: void (*class_release)(struct class *class); ....[ 363]: void (*dev_release)(struct device *dev); ....[ 365]: int (*suspend)(struct device *dev, pm_message_t state); ....[ 366]: int (*resume)(struct device *dev); ....[ 368]: const struct kobj_ns_type_operations *ns_type; ....[ 369]: const void *(*namespace)(struct device *dev); ....[ 371]: const struct dev_pm_ops *pm; ....[ 373]: struct subsys_private *p; ....[ 374]: }; ....[ 376]: struct class_dev_iter { ....[ 377]: struct klist_iter ki; ....[ 378]: const struct device_type *type; ....[ 379]: }; ....[ 381]: extern struct kobject *sysfs_dev_block_kobj; ....[ 382]: extern struct kobject *sysfs_dev_char_kobj; ....[ 383]: extern int __class_register(struct class *class, ....[ 384]: struct lock_class_key *key); ....[ 385]: extern void class_unregister(struct class *class); ....[ 395]: struct class_compat; ....[ 396]: struct class_compat *class_compat_register(const char *name); ....[ 397]: void class_compat_unregister(struct class_compat *cls); ....[ 398]: int class_compat_create_link(struct class_compat *cls, struct device *dev, ....[ 399]: struct device *device_link); ....[ 400]: void class_compat_remove_link(struct class_compat *cls, struct device *dev, ....[ 401]: struct device *device_link); ....[ 403]: extern void class_dev_iter_init(struct class_dev_iter *iter, ....[ 404]: struct class *class, ....[ 405]: struct device *start, ....[ 406]: const struct device_type *type); ....[ 407]: extern struct device *class_dev_iter_next(struct class_dev_iter *iter); ....[ 408]: extern void class_dev_iter_exit(struct class_dev_iter *iter); ....[ 410]: extern int class_for_each_device(struct class *class, struct device *start, ....[ 411]: void *data, ....[ 412]: int (*fn)(struct device *dev, void *data)); ....[ 413]: extern struct device *class_find_device(struct class *class, ....[ 414]: struct device *start, const void *data, ....[ 415]: int (*match)(struct device *, const void *)); ....[ 417]: struct class_attribute { ....[ 418]: struct attribute attr; ....[ 419]: ssize_t (*show)(struct class *class, struct class_attribute *attr, ....[ 420]: char *buf); ....[ 421]: ssize_t (*store)(struct class *class, struct class_attribute *attr, ....[ 422]: const char *buf, size_t count); ....[ 423]: }; ....[ 432]: extern int class_create_file_ns(struct class *class, ....[ 433]: const struct class_attribute *attr, ....[ 434]: const void *ns); ....[ 435]: extern void class_remove_file_ns(struct class *class, ....[ 436]: const struct class_attribute *attr, ....[ 437]: const void *ns); ....[ 439]: static inline __attribute__((no_instrument_function)) int class_create_file(struct class *class, ....[ 440]: const struct class_attribute *attr) ....[ 441]: { ....[ 442]: return class_create_file_ns(class, attr, ((void *)0)); ....[ 443]: } ....[ 445]: static inline __attribute__((no_instrument_function)) void class_remove_file(struct class *class, ....[ 446]: const struct class_attribute *attr) ....[ 447]: { ....[ 448]: return class_remove_file_ns(class, attr, ((void *)0)); ....[ 449]: } ....[ 452]: struct class_attribute_string { ....[ 453]: struct class_attribute attr; ....[ 454]: char *str; ....[ 455]: }; ....[ 464]: extern ssize_t show_class_attr_string(struct class *class, struct class_attribute *attr, ....[ 465]: char *buf); ....[ 467]: struct class_interface { ....[ 468]: struct list_head node; ....[ 469]: struct class *class; ....[ 471]: int (*add_dev) (struct device *, struct class_interface *); ....[ 472]: void (*remove_dev) (struct device *, struct class_interface *); ....[ 473]: }; ....[ 475]: extern int class_interface_register(struct class_interface *); ....[ 476]: extern void class_interface_unregister(struct class_interface *); ....[ 478]: extern struct class * __class_create(struct module *owner, ....[ 479]: const char *name, ....[ 480]: struct lock_class_key *key); ....[ 481]: extern void class_destroy(struct class *cls); ....[ 500]: struct device_type { ....[ 501]: const char *name; ....[ 502]: const struct attribute_group **groups; ....[ 503]: int (*uevent)(struct device *dev, struct kobj_uevent_env *env); ....[ 504]: char *(*devnode)(struct device *dev, umode_t *mode, ....[ 505]: kuid_t *uid, kgid_t *gid); ....[ 506]: void (*release)(struct device *dev); ....[ 508]: const struct dev_pm_ops *pm; ....[ 509]: }; ....[ 512]: struct device_attribute { ....[ 513]: struct attribute attr; ....[ 514]: ssize_t (*show)(struct device *dev, struct device_attribute *attr, ....[ 515]: char *buf); ....[ 516]: ssize_t (*store)(struct device *dev, struct device_attribute *attr, ....[ 517]: const char *buf, size_t count); ....[ 518]: }; ....[ 520]: struct dev_ext_attribute { ....[ 521]: struct device_attribute attr; ....[ 522]: void *var; ....[ 523]: }; ....[ 525]: ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr, ....[ 526]: char *buf); ....[ 527]: ssize_t device_store_ulong(struct device *dev, struct device_attribute *attr, ....[ 528]: const char *buf, size_t count); ....[ 529]: ssize_t device_show_int(struct device *dev, struct device_attribute *attr, ....[ 530]: char *buf); ....[ 531]: ssize_t device_store_int(struct device *dev, struct device_attribute *attr, ....[ 532]: const char *buf, size_t count); ....[ 533]: ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, ....[ 534]: char *buf); ....[ 535]: ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, ....[ 536]: const char *buf, size_t count); ....[ 559]: extern int device_create_file(struct device *device, ....[ 560]: const struct device_attribute *entry); ....[ 561]: extern void device_remove_file(struct device *dev, ....[ 562]: const struct device_attribute *attr); ....[ 563]: extern int device_create_bin_file(struct device *dev, ....[ 564]: const struct bin_attribute *attr); ....[ 565]: extern void device_remove_bin_file(struct device *dev, ....[ 566]: const struct bin_attribute *attr); ....[ 567]: extern int device_schedule_callback_owner(struct device *dev, ....[ 568]: void (*func)(struct device *dev), struct module *owner); ....[ 575]: typedef void (*dr_release_t)(struct device *dev, void *res); ....[ 576]: typedef int (*dr_match_t)(struct device *dev, void *res, void *match_data); ....[ 584]: extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp); ....[ 586]: extern void devres_for_each_res(struct device *dev, dr_release_t release, ....[ 587]: dr_match_t match, void *match_data, ....[ 588]: void (*fn)(struct device *, void *, void *), ....[ 589]: void *data); ....[ 590]: extern void devres_free(void *res); ....[ 591]: extern void devres_add(struct device *dev, void *res); ....[ 592]: extern void *devres_find(struct device *dev, dr_release_t release, ....[ 593]: dr_match_t match, void *match_data); ....[ 594]: extern void *devres_get(struct device *dev, void *new_res, ....[ 595]: dr_match_t match, void *match_data); ....[ 596]: extern void *devres_remove(struct device *dev, dr_release_t release, ....[ 597]: dr_match_t match, void *match_data); ....[ 598]: extern int devres_destroy(struct device *dev, dr_release_t release, ....[ 599]: dr_match_t match, void *match_data); ....[ 600]: extern int devres_release(struct device *dev, dr_release_t release, ....[ 601]: dr_match_t match, void *match_data); ....[ 604]: extern void * devres_open_group(struct device *dev, void *id, ....[ 605]: gfp_t gfp); ....[ 606]: extern void devres_close_group(struct device *dev, void *id); ....[ 607]: extern void devres_remove_group(struct device *dev, void *id); ....[ 608]: extern int devres_release_group(struct device *dev, void *id); ....[ 611]: extern void *devm_kmalloc(struct device *dev, size_t size, gfp_t gfp); ....[ 612]: static inline __attribute__((no_instrument_function)) void *devm_kzalloc(struct device *dev, size_t size, gfp_t \ .... gfp) ....[ 613]: { ....[ 614]: return devm_kmalloc(dev, size, gfp | (( gfp_t)0x8000u)); ....[ 615]: } ....[ 616]: static inline __attribute__((no_instrument_function)) void *devm_kmalloc_array(struct device *dev, ....[ 617]: size_t n, size_t size, gfp_t flags) ....[ 618]: { ....[ 619]: if (size != 0 && n > (~(size_t)0) / size) ....[ 620]: return ((void *)0); ....[ 621]: return devm_kmalloc(dev, n * size, flags); ....[ 622]: } ....[ 623]: static inline __attribute__((no_instrument_function)) void *devm_kcalloc(struct device *dev, ....[ 624]: size_t n, size_t size, gfp_t flags) ....[ 625]: { ....[ 626]: return devm_kmalloc_array(dev, n, size, flags | (( gfp_t)0x8000u)); ....[ 627]: } ....[ 628]: extern void devm_kfree(struct device *dev, void *p); ....[ 630]: void *devm_ioremap_resource(struct device *dev, struct resource *res); ....[ 631]: void *devm_request_and_ioremap(struct device *dev, ....[ 632]: struct resource *res); ....[ 635]: int devm_add_action(struct device *dev, void (*action)(void *), void *data); ....[ 636]: void devm_remove_action(struct device *dev, void (*action)(void *), void *data); ....[ 638]: struct device_dma_parameters { ....[ 643]: unsigned int max_segment_size; ....[ 644]: unsigned long segment_boundary_mask; ....[ 645]: }; ....[ 647]: struct acpi_device; ....[ 649]: struct acpi_dev_node { ....[ 651]: struct acpi_device *companion; ....[ 653]: }; ....[ 722]: struct device { ....[ 723]: struct device *parent; ....[ 725]: struct device_private *p; ....[ 727]: struct kobject kobj; ....[ 728]: const char *init_name; ....[ 729]: const struct device_type *type; ....[ 731]: struct mutex mutex; ....[ 735]: struct bus_type *bus; ....[ 736]: struct device_driver *driver; ....[ 738]: void *platform_data; ....[ 740]: struct dev_pm_info power; ....[ 741]: struct dev_pm_domain *pm_domain; ....[ 748]: int numa_node; ....[ 750]: u64 *dma_mask; ....[ 751]: u64 coherent_dma_mask; ....[ 757]: struct device_dma_parameters *dma_parms; ....[ 759]: struct list_head dma_pools; ....[ 761]: struct dma_coherent_mem *dma_mem; ....[ 768]: struct dev_archdata archdata; ....[ 770]: struct device_node *of_node; ....[ 771]: struct acpi_dev_node acpi_node; ....[ 773]: dev_t devt; ....[ 774]: u32 id; ....[ 776]: spinlock_t devres_lock; ....[ 777]: struct list_head devres_head; ....[ 779]: struct klist_node knode_class; ....[ 780]: struct class *class; ....[ 781]: const struct attribute_group **groups; ....[ 783]: void (*release)(struct device *dev); ....[ 784]: struct iommu_group *iommu_group; ....[ 786]: bool offline_disabled:1; ....[ 787]: bool offline:1; ....[ 788]: }; ....[ 790]: static inline __attribute__((no_instrument_function)) struct device *kobj_to_dev(struct kobject *kobj) ....[ 791]: { ....[ 792]: return ({ const typeof( ((struct device *)0)->kobj ) *__mptr = (kobj); (struct device *)( (char *)__mptr - __builtin_offsetof\ .... (struct device,kobj) );}); ....[ 793]: } ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm_wakeup.h .....[ 46]: struct wakeup_source { .....[ 47]: const char *name; .....[ 48]: struct list_head entry; .....[ 49]: spinlock_t lock; .....[ 50]: struct timer_list timer; .....[ 51]: unsigned long timer_expires; .....[ 52]: ktime_t total_time; .....[ 53]: ktime_t max_time; .....[ 54]: ktime_t last_time; .....[ 55]: ktime_t start_prevent_time; .....[ 56]: ktime_t prevent_sleep_time; .....[ 57]: unsigned long event_count; .....[ 58]: unsigned long active_count; .....[ 59]: unsigned long relax_count; .....[ 60]: unsigned long expire_count; .....[ 61]: unsigned long wakeup_count; .....[ 62]: bool active:1; .....[ 63]: bool autosleep_enabled:1; .....[ 64]: }; .....[ 72]: static inline __attribute__((no_instrument_function)) bool device_can_wakeup(struct device *dev) .....[ 73]: { .....[ 74]: return dev->power.can_wakeup; .....[ 75]: } .....[ 77]: static inline __attribute__((no_instrument_function)) bool device_may_wakeup(struct device *dev) .....[ 78]: { .....[ 79]: return dev->power.can_wakeup && !!dev->power.wakeup; .....[ 80]: } .....[ 83]: extern void wakeup_source_prepare(struct wakeup_source *ws, const char *name); .....[ 84]: extern struct wakeup_source *wakeup_source_create(const char *name); .....[ 85]: extern void wakeup_source_drop(struct wakeup_source *ws); .....[ 86]: extern void wakeup_source_destroy(struct wakeup_source *ws); .....[ 87]: extern void wakeup_source_add(struct wakeup_source *ws); .....[ 88]: extern void wakeup_source_remove(struct wakeup_source *ws); .....[ 89]: extern struct wakeup_source *wakeup_source_register(const char *name); .....[ 90]: extern void wakeup_source_unregister(struct wakeup_source *ws); .....[ 91]: extern int device_wakeup_enable(struct device *dev); .....[ 92]: extern int device_wakeup_disable(struct device *dev); .....[ 93]: extern void device_set_wakeup_capable(struct device *dev, bool capable); .....[ 94]: extern int device_init_wakeup(struct device *dev, bool val); .....[ 95]: extern int device_set_wakeup_enable(struct device *dev, bool enable); .....[ 96]: extern void __pm_stay_awake(struct wakeup_source *ws); .....[ 97]: extern void pm_stay_awake(struct device *dev); .....[ 98]: extern void __pm_relax(struct wakeup_source *ws); .....[ 99]: extern void pm_relax(struct device *dev); .....[ 100]: extern void __pm_wakeup_event(struct wakeup_source *ws, unsigned int msec); .....[ 101]: extern void pm_wakeup_event(struct device *dev, unsigned int msec); .....[ 182]: static inline __attribute__((no_instrument_function)) void wakeup_source_init(struct wakeup_source *ws, .....[ 183]: const char *name) .....[ 184]: { .....[ 185]: wakeup_source_prepare(ws, name); .....[ 186]: wakeup_source_add(ws); .....[ 187]: } .....[ 189]: static inline __attribute__((no_instrument_function)) void wakeup_source_trash(struct wakeup_source *ws) .....[ 190]: { .....[ 191]: wakeup_source_remove(ws); .....[ 192]: wakeup_source_drop(ws); .....[ 193]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/pm_wakeup.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ....[ 798]: static inline __attribute__((no_instrument_function)) const char *dev_name(const struct device *dev) ....[ 799]: { ....[ 801]: if (dev->init_name) ....[ 802]: return dev->init_name; ....[ 804]: return kobject_name(&dev->kobj); ....[ 805]: } ....[ 807]: extern __attribute__((format(printf, 2, 3))) ....[ 808]: int dev_set_name(struct device *dev, const char *name, ...); ....[ 811]: static inline __attribute__((no_instrument_function)) int dev_to_node(struct device *dev) ....[ 812]: { ....[ 813]: return dev->numa_node; ....[ 814]: } ....[ 815]: static inline __attribute__((no_instrument_function)) void set_dev_node(struct device *dev, int node) ....[ 816]: { ....[ 817]: dev->numa_node = node; ....[ 818]: } ....[ 829]: static inline __attribute__((no_instrument_function)) struct pm_subsys_data *dev_to_psd(struct device *dev) ....[ 830]: { ....[ 831]: return dev ? dev->power.subsys_data : ((void *)0); ....[ 832]: } ....[ 834]: static inline __attribute__((no_instrument_function)) unsigned int dev_get_uevent_suppress(const struct device \ .... *dev) ....[ 835]: { ....[ 836]: return dev->kobj.uevent_suppress; ....[ 837]: } ....[ 839]: static inline __attribute__((no_instrument_function)) void dev_set_uevent_suppress(struct device *dev, int val\ .... ) ....[ 840]: { ....[ 841]: dev->kobj.uevent_suppress = val; ....[ 842]: } ....[ 844]: static inline __attribute__((no_instrument_function)) int device_is_registered(struct device *dev) ....[ 845]: { ....[ 846]: return dev->kobj.state_in_sysfs; ....[ 847]: } ....[ 849]: static inline __attribute__((no_instrument_function)) void device_enable_async_suspend(struct device *dev) ....[ 850]: { ....[ 851]: if (!dev->power.is_prepared) ....[ 852]: dev->power.async_suspend = true; ....[ 853]: } ....[ 855]: static inline __attribute__((no_instrument_function)) void device_disable_async_suspend(struct device *dev\ .... ) ....[ 856]: { ....[ 857]: if (!dev->power.is_prepared) ....[ 858]: dev->power.async_suspend = false; ....[ 859]: } ....[ 861]: static inline __attribute__((no_instrument_function)) bool device_async_suspend_enabled(struct device *dev\ .... ) ....[ 862]: { ....[ 863]: return !!dev->power.async_suspend; ....[ 864]: } ....[ 866]: static inline __attribute__((no_instrument_function)) void pm_suspend_ignore_children(struct device *dev, bool \ .... enable) ....[ 867]: { ....[ 868]: dev->power.ignore_children = enable; ....[ 869]: } ....[ 871]: static inline __attribute__((no_instrument_function)) void dev_pm_syscore_device(struct device *dev, bool val\ .... ) ....[ 872]: { ....[ 874]: dev->power.syscore = val; ....[ 876]: } ....[ 878]: static inline __attribute__((no_instrument_function)) void device_lock(struct device *dev) ....[ 879]: { ....[ 880]: mutex_lock(&dev->mutex); ....[ 881]: } ....[ 883]: static inline __attribute__((no_instrument_function)) int device_trylock(struct device *dev) ....[ 884]: { ....[ 885]: return mutex_trylock(&dev->mutex); ....[ 886]: } ....[ 888]: static inline __attribute__((no_instrument_function)) void device_unlock(struct device *dev) ....[ 889]: { ....[ 890]: mutex_unlock(&dev->mutex); ....[ 891]: } ....[ 893]: void driver_init(void); ....[ 898]: extern int device_register(struct device *dev); ....[ 899]: extern void device_unregister(struct device *dev); ....[ 900]: extern void device_initialize(struct device *dev); ....[ 901]: extern int device_add(struct device *dev); ....[ 902]: extern void device_del(struct device *dev); ....[ 903]: extern int device_for_each_child(struct device *dev, void *data, ....[ 904]: int (*fn)(struct device *dev, void *data)); ....[ 905]: extern struct device *device_find_child(struct device *dev, void *data, ....[ 906]: int (*match)(struct device *dev, void *data)); ....[ 907]: extern int device_rename(struct device *dev, const char *new_name); ....[ 908]: extern int device_move(struct device *dev, struct device *new_parent, ....[ 909]: enum dpm_order dpm_order); ....[ 910]: extern const char *device_get_devnode(struct device *dev, ....[ 911]: umode_t *mode, kuid_t *uid, kgid_t *gid, ....[ 912]: const char **tmp); ....[ 913]: extern void *dev_get_drvdata(const struct device *dev); ....[ 914]: extern int dev_set_drvdata(struct device *dev, void *data); ....[ 916]: static inline __attribute__((no_instrument_function)) bool device_supports_offline(struct device *dev) ....[ 917]: { ....[ 918]: return dev->bus && dev->bus->offline && dev->bus->online; ....[ 919]: } ....[ 921]: extern void lock_device_hotplug(void); ....[ 922]: extern void unlock_device_hotplug(void); ....[ 923]: extern int lock_device_hotplug_sysfs(void); ....[ 924]: extern int device_offline(struct device *dev); ....[ 925]: extern int device_online(struct device *dev); ....[ 929]: extern struct device *__root_device_register(const char *name, ....[ 930]: struct module *owner); ....[ 939]: extern void root_device_unregister(struct device *root); ....[ 941]: static inline __attribute__((no_instrument_function)) void *dev_get_platdata(const struct device *dev) ....[ 942]: { ....[ 943]: return dev->platform_data; ....[ 944]: } ....[ 950]: extern int device_bind_driver(struct device *dev); ....[ 951]: extern void device_release_driver(struct device *dev); ....[ 952]: extern int device_attach(struct device *dev); ....[ 953]: extern int driver_attach(struct device_driver *drv); ....[ 954]: extern int device_reprobe(struct device *dev); ....[ 959]: extern struct device *device_create_vargs(struct class *cls, ....[ 960]: struct device *parent, ....[ 961]: dev_t devt, ....[ 962]: void *drvdata, ....[ 963]: const char *fmt, ....[ 964]: va_list vargs); ....[ 965]: extern __attribute__((format(printf, 5, 6))) ....[ 966]: struct device *device_create(struct class *cls, struct device *parent, ....[ 967]: dev_t devt, void *drvdata, ....[ 968]: const char *fmt, ...); ....[ 969]: extern __attribute__((format(printf, 6, 7))) ....[ 970]: struct device *device_create_with_groups(struct class *cls, ....[ 971]: struct device *parent, dev_t devt, void *drvdata, ....[ 972]: const struct attribute_group **groups, ....[ 973]: const char *fmt, ...); ....[ 974]: extern void device_destroy(struct class *cls, dev_t devt); ....[ 982]: extern int (*platform_notify)(struct device *dev); ....[ 984]: extern int (*platform_notify_remove)(struct device *dev); ....[ 991]: extern struct device *get_device(struct device *dev); ....[ 992]: extern void put_device(struct device *dev); ....[ 995]: extern int devtmpfs_create_node(struct device *dev); ....[ 996]: extern int devtmpfs_delete_node(struct device *dev); ....[ 997]: extern int devtmpfs_mount(const char *mntdir); ....[ 1005]: extern void device_shutdown(void); ....[ 1008]: extern const char *dev_driver_string(const struct device *dev); ....[ 1013]: extern __attribute__((format(printf, 3, 0))) ....[ 1014]: int dev_vprintk_emit(int level, const struct device *dev, ....[ 1015]: const char *fmt, va_list args); ....[ 1016]: extern __attribute__((format(printf, 3, 4))) ....[ 1017]: int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...); ....[ 1019]: extern __attribute__((format(printf, 3, 4))) ....[ 1020]: int dev_printk(const char *level, const struct device *dev, ....[ 1021]: const char *fmt, ...); ....[ 1022]: extern __attribute__((format(printf, 2, 3))) ....[ 1023]: int dev_emerg(const struct device *dev, const char *fmt, ...); ....[ 1024]: extern __attribute__((format(printf, 2, 3))) ....[ 1025]: int dev_alert(const struct device *dev, const char *fmt, ...); ....[ 1026]: extern __attribute__((format(printf, 2, 3))) ....[ 1027]: int dev_crit(const struct device *dev, const char *fmt, ...); ....[ 1028]: extern __attribute__((format(printf, 2, 3))) ....[ 1029]: int dev_err(const struct device *dev, const char *fmt, ...); ....[ 1030]: extern __attribute__((format(printf, 2, 3))) ....[ 1031]: int dev_warn(const struct device *dev, const char *fmt, ...); ....[ 1032]: extern __attribute__((format(printf, 2, 3))) ....[ 1033]: int dev_notice(const struct device *dev, const char *fmt, ...); ....[ 1034]: extern __attribute__((format(printf, 2, 3))) ....[ 1035]: int _dev_info(const struct device *dev, const char *fmt, ...); ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/device.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/node.h ...[ 21]: struct node { ...[ 22]: struct device dev; ...[ 27]: }; ...[ 29]: struct memory_block; ...[ 30]: extern struct node *node_devices[]; ...[ 31]: typedef void (*node_registration_func_t)(struct node *); ...[ 33]: extern void unregister_node(struct node *node); ...[ 35]: extern int register_one_node(int nid); ...[ 36]: extern void unregister_one_node(int nid); ...[ 37]: extern int register_cpu_under_node(unsigned int cpu, unsigned int nid); ...[ 38]: extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid); ...[ 39]: extern int register_mem_sect_under_node(struct memory_block *mem_blk, ...[ 40]: int nid); ...[ 41]: extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk, ...[ 42]: unsigned long phys_index); ...[ 45]: extern void register_hugetlbfs_with_node(node_registration_func_t doregister, ...[ 46]: node_registration_func_t unregister); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/node.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpu.h ..[ 20]: struct device; ..[ 21]: struct device_node; ..[ 23]: struct cpu { ..[ 24]: int node_id; ..[ 25]: int hotpluggable; ..[ 26]: struct device dev; ..[ 27]: }; ..[ 29]: extern int register_cpu(struct cpu *cpu, int num); ..[ 30]: extern struct device *get_cpu_device(unsigned cpu); ..[ 31]: extern bool cpu_is_hotpluggable(unsigned cpu); ..[ 32]: extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id); ..[ 33]: extern bool arch_find_n_match_cpu_physical_id(struct device_node *cpun, ..[ 34]: int cpu, unsigned int *thread); ..[ 36]: extern int cpu_add_dev_attr(struct device_attribute *attr); ..[ 37]: extern void cpu_remove_dev_attr(struct device_attribute *attr); ..[ 39]: extern int cpu_add_dev_attr_group(struct attribute_group *attrs); ..[ 40]: extern void cpu_remove_dev_attr_group(struct attribute_group *attrs); ..[ 43]: extern void unregister_cpu(struct cpu *cpu); ..[ 44]: extern ssize_t arch_cpu_probe(const char *, size_t); ..[ 45]: extern ssize_t arch_cpu_release(const char *, size_t); ..[ 47]: struct notifier_block; ..[ 50]: extern int arch_cpu_uevent(struct device *dev, struct kobj_uevent_env *env); ..[ 51]: extern ssize_t arch_print_cpu_modalias(struct device *dev, ..[ 52]: struct device_attribute *attr, ..[ 53]: char *bufptr); ..[ 59]: enum { ..[ 71]: CPU_PRI_SCHED_ACTIVE = ((int)(~0U>>1)), ..[ 72]: CPU_PRI_CPUSET_ACTIVE = ((int)(~0U>>1)) - 1, ..[ 73]: CPU_PRI_SCHED_INACTIVE = (-((int)(~0U>>1)) - 1) + 1, ..[ 74]: CPU_PRI_CPUSET_INACTIVE = (-((int)(~0U>>1)) - 1), ..[ 77]: CPU_PRI_PERF = 20, ..[ 78]: CPU_PRI_MIGRATION = 10, ..[ 80]: CPU_PRI_WORKQUEUE_UP = 5, ..[ 81]: CPU_PRI_WORKQUEUE_DOWN = -5, ..[ 82]: }; ..[ 129]: extern int register_cpu_notifier(struct notifier_block *nb); ..[ 130]: extern void unregister_cpu_notifier(struct notifier_block *nb); ..[ 147]: int cpu_up(unsigned int cpu); ..[ 148]: void notify_cpu_starting(unsigned int cpu); ..[ 149]: extern void cpu_maps_update_begin(void); ..[ 150]: extern void cpu_maps_update_done(void); ..[ 174]: extern struct bus_type cpu_subsys; ..[ 179]: extern void cpu_hotplug_begin(void); ..[ 180]: extern void cpu_hotplug_done(void); ..[ 181]: extern void get_online_cpus(void); ..[ 182]: extern void put_online_cpus(void); ..[ 183]: extern void cpu_hotplug_disable(void); ..[ 184]: extern void cpu_hotplug_enable(void); ..[ 188]: void clear_tasks_mm_cpumask(int cpu); ..[ 189]: int cpu_down(unsigned int cpu); ..[ 206]: extern int disable_nonboot_cpus(void); ..[ 207]: extern void enable_nonboot_cpus(void); ..[ 213]: enum cpuhp_state { ..[ 214]: CPUHP_OFFLINE, ..[ 215]: CPUHP_ONLINE, ..[ 216]: }; ..[ 218]: void cpu_startup_entry(enum cpuhp_state state); ..[ 219]: void cpu_idle(void); ..[ 221]: void cpu_idle_poll_ctrl(bool enable); ..[ 223]: void arch_cpu_idle(void); ..[ 224]: void arch_cpu_idle_prepare(void); ..[ 225]: void arch_cpu_idle_enter(void); ..[ 226]: void arch_cpu_idle_exit(void); ..[ 227]: void arch_cpu_idle_dead(void); ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cpu.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/oom.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/oom.h ..[ 10]: struct zonelist; ..[ 11]: struct notifier_block; ..[ 12]: struct mem_cgroup; ..[ 13]: struct task_struct; ..[ 18]: enum oom_constraint { ..[ 19]: CONSTRAINT_NONE, ..[ 20]: CONSTRAINT_CPUSET, ..[ 21]: CONSTRAINT_MEMORY_POLICY, ..[ 22]: CONSTRAINT_MEMCG, ..[ 23]: }; ..[ 25]: enum oom_scan_t { ..[ 26]: OOM_SCAN_OK, ..[ 27]: OOM_SCAN_CONTINUE, ..[ 28]: OOM_SCAN_ABORT, ..[ 29]: OOM_SCAN_SELECT, ..[ 30]: }; ..[ 35]: static inline __attribute__((no_instrument_function)) void set_current_oom_origin(void) ..[ 36]: { ..[ 37]: get_current()->signal->oom_flags |= (( oom_flags_t)0x1); ..[ 38]: } ..[ 40]: static inline __attribute__((no_instrument_function)) void clear_current_oom_origin(void) ..[ 41]: { ..[ 42]: get_current()->signal->oom_flags &= ~(( oom_flags_t)0x1); ..[ 43]: } ..[ 45]: static inline __attribute__((no_instrument_function)) bool oom_task_origin(const struct task_struct *p) ..[ 46]: { ..[ 47]: return !!(p->signal->oom_flags & (( oom_flags_t)0x1)); ..[ 48]: } ..[ 50]: extern unsigned long oom_badness(struct task_struct *p, ..[ 51]: struct mem_cgroup *memcg, const nodemask_t *nodemask, ..[ 52]: unsigned long totalpages); ..[ 53]: extern void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, ..[ 54]: unsigned int points, unsigned long totalpages, ..[ 55]: struct mem_cgroup *memcg, nodemask_t *nodemask, ..[ 56]: const char *message); ..[ 58]: extern int try_set_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); ..[ 59]: extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); ..[ 61]: extern void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask, ..[ 62]: int order, const nodemask_t *nodemask); ..[ 64]: extern enum oom_scan_t oom_scan_process_thread(struct task_struct *task, ..[ 65]: unsigned long totalpages, const nodemask_t *nodemask, ..[ 66]: bool force_kill); ..[ 68]: extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, ..[ 69]: int order, nodemask_t *mask, bool force_kill); ..[ 70]: extern int register_oom_notifier(struct notifier_block *nb); ..[ 71]: extern int unregister_oom_notifier(struct notifier_block *nb); ..[ 73]: extern bool oom_killer_disabled; ..[ 75]: static inline __attribute__((no_instrument_function)) void oom_killer_disable(void) ..[ 76]: { ..[ 77]: oom_killer_disabled = true; ..[ 78]: } ..[ 80]: static inline __attribute__((no_instrument_function)) void oom_killer_enable(void) ..[ 81]: { ..[ 82]: oom_killer_disabled = false; ..[ 83]: } ..[ 85]: static inline __attribute__((no_instrument_function)) bool oom_gfp_allowed(gfp_t gfp_mask) ..[ 86]: { ..[ 87]: return (gfp_mask & (( gfp_t)0x80u)) && !(gfp_mask & (( gfp_t)0x1000u)); ..[ 88]: } ..[ 90]: extern struct task_struct *find_lock_task_mm(struct task_struct *p); ..[ 93]: extern int sysctl_oom_dump_tasks; ..[ 94]: extern int sysctl_oom_kill_allocating_task; ..[ 95]: extern int sysctl_panic_on_oom; ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/oom.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kthread.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kthread.h ..[ 7]: __attribute__((format(printf, 4, 5))) ..[ 8]: struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), ..[ 9]: void *data, ..[ 10]: int node, ..[ 11]: const char namefmt[], ...); ..[ 17]: struct task_struct *kthread_create_on_cpu(int (*threadfn)(void *data), ..[ 18]: void *data, ..[ 19]: unsigned int cpu, ..[ 20]: const char *namefmt); ..[ 40]: void kthread_bind(struct task_struct *k, unsigned int cpu); ..[ 41]: int kthread_stop(struct task_struct *k); ..[ 42]: bool kthread_should_stop(void); ..[ 43]: bool kthread_should_park(void); ..[ 44]: bool kthread_freezable_should_stop(bool *was_frozen); ..[ 45]: void *kthread_data(struct task_struct *k); ..[ 46]: void *probe_kthread_data(struct task_struct *k); ..[ 47]: int kthread_park(struct task_struct *k); ..[ 48]: void kthread_unpark(struct task_struct *k); ..[ 49]: void kthread_parkme(void); ..[ 51]: int kthreadd(void *unused); ..[ 52]: extern struct task_struct *kthreadd_task; ..[ 53]: extern int tsk_fork_get_node(struct task_struct *tsk); ..[ 63]: struct kthread_work; ..[ 64]: typedef void (*kthread_work_func_t)(struct kthread_work *work); ..[ 66]: struct kthread_worker { ..[ 67]: spinlock_t lock; ..[ 68]: struct list_head work_list; ..[ 69]: struct task_struct *task; ..[ 70]: struct kthread_work *current_work; ..[ 71]: }; ..[ 73]: struct kthread_work { ..[ 74]: struct list_head node; ..[ 75]: kthread_work_func_t func; ..[ 76]: wait_queue_head_t done; ..[ 77]: struct kthread_worker *worker; ..[ 78]: }; ..[ 116]: extern void __init_kthread_worker(struct kthread_worker *worker, ..[ 117]: const char *name, struct lock_class_key *key); ..[ 133]: int kthread_worker_fn(void *worker_ptr); ..[ 135]: bool queue_kthread_work(struct kthread_worker *worker, ..[ 136]: struct kthread_work *work); ..[ 137]: void flush_kthread_work(struct kthread_work *work); ..[ 138]: void flush_kthread_worker(struct kthread_worker *worker); ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kthread.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stop_machine.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stop_machine.h ..[ 19]: typedef int (*cpu_stop_fn_t)(void *arg); ..[ 23]: struct cpu_stop_work { ..[ 24]: struct list_head list; ..[ 25]: cpu_stop_fn_t fn; ..[ 26]: void *arg; ..[ 27]: struct cpu_stop_done *done; ..[ 28]: }; ..[ 30]: int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg); ..[ 31]: int stop_two_cpus(unsigned int cpu1, unsigned int cpu2, cpu_stop_fn_t fn, void *arg); ..[ 32]: void stop_one_cpu_nowait(unsigned int cpu, cpu_stop_fn_t fn, void *arg, ..[ 33]: struct cpu_stop_work *work_buf); ..[ 34]: int stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg); ..[ 35]: int try_stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg); ..[ 115]: int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus); ..[ 126]: int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus); ..[ 128]: int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data, ..[ 129]: const struct cpumask *cpus); ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/stop_machine.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swap.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swap.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/cgroupstats.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/cgroupstats.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/taskstats.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/taskstats.h .......[ 40]: struct taskstats { .......[ 46]: __u16 version; .......[ 47]: __u32 ac_exitcode; .......[ 52]: __u8 ac_flag; .......[ 53]: __u8 ac_nice; .......[ 71]: __u64 cpu_count __attribute__((aligned(8))); .......[ 72]: __u64 cpu_delay_total; .......[ 79]: __u64 blkio_count; .......[ 80]: __u64 blkio_delay_total; .......[ 83]: __u64 swapin_count; .......[ 84]: __u64 swapin_delay_total; .......[ 92]: __u64 cpu_run_real_total; .......[ 100]: __u64 cpu_run_virtual_total; .......[ 105]: char ac_comm[32]; .......[ 106]: __u8 ac_sched __attribute__((aligned(8))); .......[ 108]: __u8 ac_pad[3]; .......[ 109]: __u32 ac_uid __attribute__((aligned(8))); .......[ 111]: __u32 ac_gid; .......[ 112]: __u32 ac_pid; .......[ 113]: __u32 ac_ppid; .......[ 114]: __u32 ac_btime; .......[ 115]: __u64 ac_etime __attribute__((aligned(8))); .......[ 117]: __u64 ac_utime; .......[ 118]: __u64 ac_stime; .......[ 119]: __u64 ac_minflt; .......[ 120]: __u64 ac_majflt; .......[ 130]: __u64 coremem; .......[ 134]: __u64 virtmem; .......[ 139]: __u64 hiwater_rss; .......[ 140]: __u64 hiwater_vm; .......[ 143]: __u64 read_char; .......[ 144]: __u64 write_char; .......[ 145]: __u64 read_syscalls; .......[ 146]: __u64 write_syscalls; .......[ 151]: __u64 read_bytes; .......[ 152]: __u64 write_bytes; .......[ 153]: __u64 cancelled_write_bytes; .......[ 155]: __u64 nvcsw; .......[ 156]: __u64 nivcsw; .......[ 159]: __u64 ac_utimescaled; .......[ 160]: __u64 ac_stimescaled; .......[ 161]: __u64 cpu_scaled_run_real_total; .......[ 164]: __u64 freepages_count; .......[ 165]: __u64 freepages_delay_total; .......[ 166]: }; .......[ 175]: enum { .......[ 176]: TASKSTATS_CMD_UNSPEC = 0, .......[ 177]: TASKSTATS_CMD_GET, .......[ 178]: TASKSTATS_CMD_NEW, .......[ 179]: __TASKSTATS_CMD_MAX, .......[ 180]: }; .......[ 184]: enum { .......[ 185]: TASKSTATS_TYPE_UNSPEC = 0, .......[ 186]: TASKSTATS_TYPE_PID, .......[ 187]: TASKSTATS_TYPE_TGID, .......[ 188]: TASKSTATS_TYPE_STATS, .......[ 189]: TASKSTATS_TYPE_AGGR_PID, .......[ 190]: TASKSTATS_TYPE_AGGR_TGID, .......[ 191]: TASKSTATS_TYPE_NULL, .......[ 192]: __TASKSTATS_TYPE_MAX, .......[ 193]: }; .......[ 197]: enum { .......[ 198]: TASKSTATS_CMD_ATTR_UNSPEC = 0, .......[ 199]: TASKSTATS_CMD_ATTR_PID, .......[ 200]: TASKSTATS_CMD_ATTR_TGID, .......[ 201]: TASKSTATS_CMD_ATTR_REGISTER_CPUMASK, .......[ 202]: TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK, .......[ 203]: __TASKSTATS_CMD_ATTR_MAX, .......[ 204]: }; .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/taskstats.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/cgroupstats.h ......[ 31]: struct cgroupstats { ......[ 32]: __u64 nr_sleeping; ......[ 33]: __u64 nr_running; ......[ 34]: __u64 nr_stopped; ......[ 35]: __u64 nr_uninterruptible; ......[ 37]: __u64 nr_io_wait; ......[ 38]: }; ......[ 46]: enum { ......[ 47]: CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX, ......[ 48]: CGROUPSTATS_CMD_GET, ......[ 49]: CGROUPSTATS_CMD_NEW, ......[ 50]: __CGROUPSTATS_CMD_MAX, ......[ 51]: }; ......[ 55]: enum { ......[ 56]: CGROUPSTATS_TYPE_UNSPEC = 0, ......[ 57]: CGROUPSTATS_TYPE_CGROUP_STATS, ......[ 58]: __CGROUPSTATS_TYPE_MAX, ......[ 59]: }; ......[ 63]: enum { ......[ 64]: CGROUPSTATS_CMD_ATTR_UNSPEC = 0, ......[ 65]: CGROUPSTATS_CMD_ATTR_FD, ......[ 66]: __CGROUPSTATS_CMD_ATTR_MAX, ......[ 67]: }; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/cgroupstats.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/prio_heap.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/prio_heap.h ......[ 18]: struct ptr_heap { ......[ 19]: void **ptrs; ......[ 20]: int max; ......[ 21]: int size; ......[ 22]: int (*gt)(void *, void *); ......[ 23]: }; ......[ 32]: extern int heap_init(struct ptr_heap *heap, size_t size, gfp_t gfp_mask, ......[ 33]: int (*gt)(void *, void *)); ......[ 39]: void heap_free(struct ptr_heap *heap); ......[ 54]: extern void *heap_insert(struct ptr_heap *heap, void *p); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/prio_heap.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/idr.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/idr.h ......[ 30]: struct idr_layer { ......[ 31]: int prefix; ......[ 32]: unsigned long bitmap[((((1 << 8)) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; ......[ 33]: struct idr_layer *ary[1<<8]; ......[ 34]: int count; ......[ 35]: int layer; ......[ 36]: struct callback_head callback_head; ......[ 37]: }; ......[ 39]: struct idr { ......[ 40]: struct idr_layer *hint; ......[ 41]: struct idr_layer *top; ......[ 42]: struct idr_layer *id_free; ......[ 43]: int layers; ......[ 44]: int id_free_cnt; ......[ 45]: int cur; ......[ 46]: spinlock_t lock; ......[ 47]: }; ......[ 76]: void *idr_find_slowpath(struct idr *idp, int id); ......[ 77]: void idr_preload(gfp_t gfp_mask); ......[ 78]: int idr_alloc(struct idr *idp, void *ptr, int start, int end, gfp_t gfp_mask); ......[ 79]: int idr_alloc_cyclic(struct idr *idr, void *ptr, int start, int end, gfp_t gfp_mask); ......[ 80]: int idr_for_each(struct idr *idp, ......[ 81]: int (*fn)(int id, void *p, void *data), void *data); ......[ 82]: void *idr_get_next(struct idr *idp, int *nextid); ......[ 83]: void *idr_replace(struct idr *idp, void *ptr, int id); ......[ 84]: void idr_remove(struct idr *idp, int id); ......[ 85]: void idr_free(struct idr *idp, int id); ......[ 86]: void idr_destroy(struct idr *idp); ......[ 87]: void idr_init(struct idr *idp); ......[ 95]: static inline __attribute__((no_instrument_function)) void idr_preload_end(void) ......[ 96]: { ......[ 97]: __asm__ __volatile__("": : :"memory"); ......[ 98]: } ......[ 112]: static inline __attribute__((no_instrument_function)) void *idr_find(struct idr *idr, int id) ......[ 113]: { ......[ 114]: struct idr_layer *hint = ({ typeof(*(idr->hint)) *_________p1 = (typeof(*(idr->hint))* )(*(volatile typeof((idr\ ...... ->hint)) *)&((idr->hint))); do { } while (0); ; do { } while (0); ((typeof(*(idr->hint)) *)(_________p1)); }); ......[ 116]: if (hint && (id & ~((1 << 8)-1)) == hint->prefix) ......[ 117]: return ({ typeof(*(hint->ary[id &(( 1 << 8)-1)])) *_________p1 = (typeof(*(hint->ary[id &(( 1 << 8)-1)]))* )(*(volatile \ ...... typeof((hint->ary[id &(( 1 << 8)-1)])) *)&((hint->ary[id &(( 1 << 8)-1)]))); do { } while (0); ; do { } while (0); ((typeof\ ...... (*(hint->ary[id &(( 1 << 8)-1)])) *)(_________p1)); }); ......[ 119]: return idr_find_slowpath(idr, id); ......[ 120]: } ......[ 139]: int __idr_pre_get(struct idr *idp, gfp_t gfp_mask); ......[ 140]: int __idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); ......[ 141]: void __idr_remove_all(struct idr *idp); ......[ 151]: static inline __attribute__((no_instrument_function)) int idr_pre_get(struct idr *idp, gfp_t gfp_mask) ......[ 152]: { ......[ 153]: return __idr_pre_get(idp, gfp_mask); ......[ 154]: } ......[ 166]: static inline __attribute__((no_instrument_function)) int idr_get_new_above(struct idr *idp, void *ptr, ......[ 167]: int starting_id, int *id) ......[ 168]: { ......[ 169]: return __idr_get_new_above(idp, ptr, starting_id, id); ......[ 170]: } ......[ 181]: static inline __attribute__((no_instrument_function)) int idr_get_new(struct idr *idp, void *ptr, int *id) ......[ 182]: { ......[ 183]: return __idr_get_new_above(idp, ptr, 0, id); ......[ 184]: } ......[ 193]: static inline __attribute__((no_instrument_function)) void idr_remove_all(struct idr *idp) ......[ 194]: { ......[ 195]: __idr_remove_all(idp); ......[ 196]: } ......[ 209]: struct ida_bitmap { ......[ 210]: long nr_busy; ......[ 211]: unsigned long bitmap[(128 / sizeof(long) - 1)]; ......[ 212]: }; ......[ 214]: struct ida { ......[ 215]: struct idr idr; ......[ 216]: struct ida_bitmap *free_bitmap; ......[ 217]: }; ......[ 222]: int ida_pre_get(struct ida *ida, gfp_t gfp_mask); ......[ 223]: int ida_get_new_above(struct ida *ida, int starting_id, int *p_id); ......[ 224]: void ida_remove(struct ida *ida, int id); ......[ 225]: void ida_destroy(struct ida *ida); ......[ 226]: void ida_init(struct ida *ida); ......[ 228]: int ida_simple_get(struct ida *ida, unsigned int start, unsigned int end, ......[ 229]: gfp_t gfp_mask); ......[ 230]: void ida_simple_remove(struct ida *ida, unsigned int id); ......[ 239]: static inline __attribute__((no_instrument_function)) int ida_get_new(struct ida *ida, int *p_id) ......[ 240]: { ......[ 241]: return ida_get_new_above(ida, 0, p_id); ......[ 242]: } ......[ 244]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) idr_init_cache(\ ...... void); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/idr.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/xattr.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/xattr.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kmemleak.h ........# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kmemleak.h ........[ 61]: static inline __attribute__((no_instrument_function)) void kmemleak_init(void) ........[ 62]: { ........[ 63]: } ........[ 64]: static inline __attribute__((no_instrument_function)) void kmemleak_alloc(const void *ptr, size_t size, int min_count\ ........ , ........[ 65]: gfp_t gfp) ........[ 66]: { ........[ 67]: } ........[ 68]: static inline __attribute__((no_instrument_function)) void kmemleak_alloc_recursive(const void *ptr, size_t \ ........ size, ........[ 69]: int min_count, unsigned long flags, ........[ 70]: gfp_t gfp) ........[ 71]: { ........[ 72]: } ........[ 73]: static inline __attribute__((no_instrument_function)) void kmemleak_alloc_percpu(const void *ptr, size_t size\ ........ ) ........[ 74]: { ........[ 75]: } ........[ 76]: static inline __attribute__((no_instrument_function)) void kmemleak_free(const void *ptr) ........[ 77]: { ........[ 78]: } ........[ 79]: static inline __attribute__((no_instrument_function)) void kmemleak_free_part(const void *ptr, size_t size) ........[ 80]: { ........[ 81]: } ........[ 82]: static inline __attribute__((no_instrument_function)) void kmemleak_free_recursive(const void *ptr, unsigned \ ........ long flags) ........[ 83]: { ........[ 84]: } ........[ 85]: static inline __attribute__((no_instrument_function)) void kmemleak_free_percpu(const void *ptr) ........[ 86]: { ........[ 87]: } ........[ 88]: static inline __attribute__((no_instrument_function)) void kmemleak_not_leak(const void *ptr) ........[ 89]: { ........[ 90]: } ........[ 91]: static inline __attribute__((no_instrument_function)) void kmemleak_ignore(const void *ptr) ........[ 92]: { ........[ 93]: } ........[ 94]: static inline __attribute__((no_instrument_function)) void kmemleak_scan_area(const void *ptr, size_t size, gfp_t \ ........ gfp) ........[ 95]: { ........[ 96]: } ........[ 97]: static inline __attribute__((no_instrument_function)) void kmemleak_erase(void **ptr) ........[ 98]: { ........[ 99]: } ........[ 100]: static inline __attribute__((no_instrument_function)) void kmemleak_no_scan(const void *ptr) ........[ 101]: { ........[ 102]: } ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/kmemleak.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h .......[ 108]: struct mem_cgroup; .......[ 112]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) kmem_cache_init\ ....... (void); .......[ 113]: int slab_is_available(void); .......[ 115]: struct kmem_cache *kmem_cache_create(const char *, size_t, size_t, .......[ 116]: unsigned long, .......[ 117]: void (*)(void *)); .......[ 118]: struct kmem_cache * .......[ 119]: kmem_cache_create_memcg(struct mem_cgroup *, const char *, size_t, size_t, .......[ 120]: unsigned long, void (*)(void *), struct kmem_cache *); .......[ 121]: void kmem_cache_destroy(struct kmem_cache *); .......[ 122]: int kmem_cache_shrink(struct kmem_cache *); .......[ 123]: void kmem_cache_free(struct kmem_cache *, void *); .......[ 140]: void * __krealloc(const void *, size_t, gfp_t); .......[ 141]: void * krealloc(const void *, size_t, gfp_t); .......[ 142]: void kfree(const void *); .......[ 143]: void kzfree(const void *); .......[ 144]: size_t ksize(const void *); .......[ 246]: extern struct kmem_cache *kmalloc_caches[(12 + 1) + 1]; .......[ 248]: extern struct kmem_cache *kmalloc_dma_caches[(12 + 1) + 1]; .......[ 259]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int kmalloc_index(size_t \ ....... size) .......[ 260]: { .......[ 261]: if (!size) .......[ 262]: return 0; .......[ 264]: if (size <= (1 << 3)) .......[ 265]: return 3; .......[ 267]: if ((1 << 3) <= 32 && size > 64 && size <= 96) .......[ 268]: return 1; .......[ 269]: if ((1 << 3) <= 64 && size > 128 && size <= 192) .......[ 270]: return 2; .......[ 271]: if (size <= 8) return 3; .......[ 272]: if (size <= 16) return 4; .......[ 273]: if (size <= 32) return 5; .......[ 274]: if (size <= 64) return 6; .......[ 275]: if (size <= 128) return 7; .......[ 276]: if (size <= 256) return 8; .......[ 277]: if (size <= 512) return 9; .......[ 278]: if (size <= 1024) return 10; .......[ 279]: if (size <= 2 * 1024) return 11; .......[ 280]: if (size <= 4 * 1024) return 12; .......[ 281]: if (size <= 8 * 1024) return 13; .......[ 282]: if (size <= 16 * 1024) return 14; .......[ 283]: if (size <= 32 * 1024) return 15; .......[ 284]: if (size <= 64 * 1024) return 16; .......[ 285]: if (size <= 128 * 1024) return 17; .......[ 286]: if (size <= 256 * 1024) return 18; .......[ 287]: if (size <= 512 * 1024) return 19; .......[ 288]: if (size <= 1024 * 1024) return 20; .......[ 289]: if (size <= 2 * 1024 * 1024) return 21; .......[ 290]: if (size <= 4 * 1024 * 1024) return 22; .......[ 291]: if (size <= 8 * 1024 * 1024) return 23; .......[ 292]: if (size <= 16 * 1024 * 1024) return 24; .......[ 293]: if (size <= 32 * 1024 * 1024) return 25; .......[ 294]: if (size <= 64 * 1024 * 1024) return 26; .......[ 295]: do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" \ ....... "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry))); do { } while (\ ....... 1); } while (0); .......[ 298]: return -1; .......[ 299]: } .......[ 302]: void *__kmalloc(size_t size, gfp_t flags); .......[ 303]: void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags); .......[ 306]: void *__kmalloc_node(size_t size, gfp_t flags, int node); .......[ 307]: void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); .......[ 321]: extern void *kmem_cache_alloc_trace(struct kmem_cache *, gfp_t, size_t); .......[ 324]: extern void *kmem_cache_alloc_node_trace(struct kmem_cache *s, .......[ 325]: gfp_t gfpflags, .......[ 326]: int node, size_t size); ......# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h .......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slub_def.h ........[ 11]: enum stat_item { ........[ 12]: ALLOC_FASTPATH, ........[ 13]: ALLOC_SLOWPATH, ........[ 14]: FREE_FASTPATH, ........[ 15]: FREE_SLOWPATH, ........[ 16]: FREE_FROZEN, ........[ 17]: FREE_ADD_PARTIAL, ........[ 18]: FREE_REMOVE_PARTIAL, ........[ 19]: ALLOC_FROM_PARTIAL, ........[ 20]: ALLOC_SLAB, ........[ 21]: ALLOC_REFILL, ........[ 22]: ALLOC_NODE_MISMATCH, ........[ 23]: FREE_SLAB, ........[ 24]: CPUSLAB_FLUSH, ........[ 25]: DEACTIVATE_FULL, ........[ 26]: DEACTIVATE_EMPTY, ........[ 27]: DEACTIVATE_TO_HEAD, ........[ 28]: DEACTIVATE_TO_TAIL, ........[ 29]: DEACTIVATE_REMOTE_FREES, ........[ 30]: DEACTIVATE_BYPASS, ........[ 31]: ORDER_FALLBACK, ........[ 32]: CMPXCHG_DOUBLE_CPU_FAIL, ........[ 33]: CMPXCHG_DOUBLE_FAIL, ........[ 34]: CPU_PARTIAL_ALLOC, ........[ 35]: CPU_PARTIAL_FREE, ........[ 36]: CPU_PARTIAL_NODE, ........[ 37]: CPU_PARTIAL_DRAIN, ........[ 38]: NR_SLUB_STAT_ITEMS }; ........[ 40]: struct kmem_cache_cpu { ........[ 41]: void **freelist; ........[ 42]: unsigned long tid; ........[ 43]: struct page *page; ........[ 44]: struct page *partial; ........[ 48]: }; ........[ 55]: struct kmem_cache_order_objects { ........[ 56]: unsigned long x; ........[ 57]: }; ........[ 62]: struct kmem_cache { ........[ 63]: struct kmem_cache_cpu *cpu_slab; ........[ 65]: unsigned long flags; ........[ 66]: unsigned long min_partial; ........[ 67]: int size; ........[ 68]: int object_size; ........[ 69]: int offset; ........[ 70]: int cpu_partial; ........[ 71]: struct kmem_cache_order_objects oo; ........[ 74]: struct kmem_cache_order_objects max; ........[ 75]: struct kmem_cache_order_objects min; ........[ 76]: gfp_t allocflags; ........[ 77]: int refcount; ........[ 78]: void (*ctor)(void *); ........[ 79]: int inuse; ........[ 80]: int align; ........[ 81]: int reserved; ........[ 82]: const char *name; ........[ 83]: struct list_head list; ........[ 85]: struct kobject kobj; ........[ 96]: int remote_node_defrag_ratio; ........[ 98]: struct kmem_cache_node *node[(1 << 6)]; ........[ 99]: }; ........# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slub_def.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h .......[ 361]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void * .......[ 362]: kmalloc_order(size_t size, gfp_t flags, unsigned int order) .......[ 363]: { .......[ 364]: void *ret; .......[ 366]: flags |= ((( gfp_t)0x4000u) | (( gfp_t)0x100000u)); .......[ 367]: ret = (void *) __get_free_pages(flags, order); .......[ 368]: kmemleak_alloc(ret, size, 1, flags); .......[ 369]: return ret; .......[ 370]: } .......[ 373]: extern void *kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order); .......[ 382]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void *kmalloc_large(\ ....... size_t size, gfp_t flags) .......[ 383]: { .......[ 384]: unsigned int order = ( __builtin_constant_p(size) ? ( ((size) == 0UL) ? 64 - 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) ); .......[ 385]: return kmalloc_order_trace(size, flags, order); .......[ 386]: } .......[ 441]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void *kmalloc(size_t \ ....... size, gfp_t flags) .......[ 442]: { .......[ 443]: if (__builtin_constant_p(size)) { .......[ 444]: if (size > (1UL << (12 + 1))) .......[ 445]: return kmalloc_large(size, flags); .......[ 447]: if (!(flags & (( gfp_t)0x01u))) { .......[ 448]: int index = kmalloc_index(size); .......[ 450]: if (!index) .......[ 451]: return ((void *)16); .......[ 453]: return kmem_cache_alloc_trace(kmalloc_caches[index], .......[ 454]: flags, size); .......[ 455]: } .......[ 457]: } .......[ 458]: return __kmalloc(size, flags); .......[ 459]: } .......[ 466]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) int kmalloc_size(int \ ....... n) .......[ 467]: { .......[ 469]: if (n > 2) .......[ 470]: return 1 << n; .......[ 472]: if (n == 1 && (1 << 3) <= 32) .......[ 473]: return 96; .......[ 475]: if (n == 2 && (1 << 3) <= 64) .......[ 476]: return 192; .......[ 478]: return 0; .......[ 479]: } .......[ 481]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void *kmalloc_node(size_t \ ....... size, gfp_t flags, int node) .......[ 482]: { .......[ 484]: if (__builtin_constant_p(size) && .......[ 485]: size <= (1UL << (12 + 1)) && !(flags & (( gfp_t)0x01u))) { .......[ 486]: int i = kmalloc_index(size); .......[ 488]: if (!i) .......[ 489]: return ((void *)16); .......[ 491]: return kmem_cache_alloc_node_trace(kmalloc_caches[i], .......[ 492]: flags, node, size); .......[ 493]: } .......[ 495]: return __kmalloc_node(size, flags, node); .......[ 496]: } .......[ 528]: struct memcg_cache_params { .......[ 529]: bool is_root_cache; .......[ 530]: union { .......[ 531]: struct kmem_cache *memcg_caches[0]; .......[ 532]: struct { .......[ 533]: struct mem_cgroup *memcg; .......[ 534]: struct list_head list; .......[ 535]: struct kmem_cache *root_cache; .......[ 536]: bool dead; .......[ 537]: atomic_t nr_pages; .......[ 538]: struct work_struct destroy; .......[ 539]: }; .......[ 540]: }; .......[ 541]: }; .......[ 543]: int memcg_update_all_caches(int num_memcgs); .......[ 545]: struct seq_file; .......[ 546]: int cache_show(struct kmem_cache *s, struct seq_file *m); .......[ 547]: void print_slabinfo_header(struct seq_file *m); .......[ 555]: static inline __attribute__((no_instrument_function)) void *kmalloc_array(size_t n, size_t size, gfp_t flags) .......[ 556]: { .......[ 557]: if (size != 0 && n > (~(size_t)0) / size) .......[ 558]: return ((void *)0); .......[ 559]: return __kmalloc(n * size, flags); .......[ 560]: } .......[ 568]: static inline __attribute__((no_instrument_function)) void *kcalloc(size_t n, size_t size, gfp_t flags) .......[ 569]: { .......[ 570]: return kmalloc_array(n, size, flags | (( gfp_t)0x8000u)); .......[ 571]: } .......[ 584]: extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); .......[ 604]: extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); .......[ 623]: static inline __attribute__((no_instrument_function)) void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags\ ....... ) .......[ 624]: { .......[ 625]: return kmem_cache_alloc(k, flags | (( gfp_t)0x8000u)); .......[ 626]: } .......[ 633]: static inline __attribute__((no_instrument_function)) void *kzalloc(size_t size, gfp_t flags) .......[ 634]: { .......[ 635]: return kmalloc(size, flags | (( gfp_t)0x8000u)); .......[ 636]: } .......[ 644]: static inline __attribute__((no_instrument_function)) void *kzalloc_node(size_t size, gfp_t flags, int node) .......[ 645]: { .......[ 646]: return kmalloc_node(size, flags | (( gfp_t)0x8000u), node); .......[ 647]: } .......[ 652]: static inline __attribute__((no_instrument_function)) unsigned int kmem_cache_size(struct kmem_cache *s) .......[ 653]: { .......[ 654]: return s->object_size; .......[ 655]: } .......[ 657]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) kmem_cache_init_late\ ....... (void); .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/slab.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/xattr.h ......[ 19]: struct inode; ......[ 20]: struct dentry; ......[ 22]: struct xattr_handler { ......[ 23]: const char *prefix; ......[ 24]: int flags; ......[ 25]: size_t (*list)(struct dentry *dentry, char *list, size_t list_size, ......[ 26]: const char *name, size_t name_len, int handler_flags); ......[ 27]: int (*get)(struct dentry *dentry, const char *name, void *buffer, ......[ 28]: size_t size, int handler_flags); ......[ 29]: int (*set)(struct dentry *dentry, const char *name, const void *buffer, ......[ 30]: size_t size, int flags, int handler_flags); ......[ 31]: }; ......[ 33]: struct xattr { ......[ 34]: const char *name; ......[ 35]: void *value; ......[ 36]: size_t value_len; ......[ 37]: }; ......[ 39]: ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t); ......[ 40]: ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t); ......[ 41]: ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size); ......[ 42]: int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int); ......[ 43]: int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int); ......[ 44]: int vfs_removexattr(struct dentry *, const char *); ......[ 46]: ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size); ......[ 47]: ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size); ......[ 48]: int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags); ......[ 49]: int generic_removexattr(struct dentry *dentry, const char *name); ......[ 50]: ssize_t vfs_getxattr_alloc(struct dentry *dentry, const char *name, ......[ 51]: char **xattr_value, size_t size, gfp_t flags); ......[ 52]: int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name, ......[ 53]: const char *value, size_t size, gfp_t flags); ......[ 55]: struct simple_xattrs { ......[ 56]: struct list_head head; ......[ 57]: spinlock_t lock; ......[ 58]: }; ......[ 60]: struct simple_xattr { ......[ 61]: struct list_head list; ......[ 62]: char *name; ......[ 63]: size_t size; ......[ 64]: char value[0]; ......[ 65]: }; ......[ 70]: static inline __attribute__((no_instrument_function)) void simple_xattrs_init(struct simple_xattrs *xattrs\ ...... ) ......[ 71]: { ......[ 72]: INIT_LIST_HEAD(&xattrs->head); ......[ 73]: do { spinlock_check(&xattrs->lock); do { *(&(&xattrs->lock)->rlock) = (raw_spinlock_t) { .raw_lock = { { 0 } }, }; } while \ ...... (0); } while (0); ......[ 74]: } ......[ 79]: static inline __attribute__((no_instrument_function)) void simple_xattrs_free(struct simple_xattrs *xattrs\ ...... ) ......[ 80]: { ......[ 81]: struct simple_xattr *xattr, *node; ......[ 83]: for (xattr = ({ const typeof( ((typeof(*xattr) *)0)->list ) *__mptr = ((&xattrs->head)->next); (typeof(*xattr) *)\ ...... ( (char *)__mptr - __builtin_offsetof(typeof(*xattr),list) );}), node = ({ const typeof( ((typeof(*(xattr)) *)0)\ ...... ->list ) *__mptr = ((xattr)->list.next); (typeof(*(xattr)) *)( (char *)__mptr - __builtin_offsetof(typeof(*(xattr\ ...... )),list) );}); &xattr->list != (&xattrs->head); xattr = node, node = ({ const typeof( ((typeof(*(node)) *)0)->list \ ...... ) *__mptr = ((node)->list.next); (typeof(*(node)) *)( (char *)__mptr - __builtin_offsetof(typeof(*(node)),list\ ...... ) );})) { ......[ 84]: kfree(xattr->name); ......[ 85]: kfree(xattr); ......[ 86]: } ......[ 87]: } ......[ 89]: struct simple_xattr *simple_xattr_alloc(const void *value, size_t size); ......[ 90]: int simple_xattr_get(struct simple_xattrs *xattrs, const char *name, ......[ 91]: void *buffer, size_t size); ......[ 92]: int simple_xattr_set(struct simple_xattrs *xattrs, const char *name, ......[ 93]: const void *value, size_t size, int flags); ......[ 94]: int simple_xattr_remove(struct simple_xattrs *xattrs, const char *name); ......[ 95]: ssize_t simple_xattr_list(struct simple_xattrs *xattrs, char *buffer, ......[ 96]: size_t size); ......[ 97]: void simple_xattr_list_add(struct simple_xattrs *xattrs, ......[ 98]: struct simple_xattr *new_xattr); ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/xattr.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-refcount.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-refcount.h ......[ 53]: struct percpu_ref; ......[ 54]: typedef void (percpu_ref_func_t)(struct percpu_ref *); ......[ 56]: struct percpu_ref { ......[ 57]: atomic_t count; ......[ 64]: unsigned *pcpu_count; ......[ 65]: percpu_ref_func_t *release; ......[ 66]: percpu_ref_func_t *confirm_kill; ......[ 67]: struct callback_head rcu; ......[ 68]: }; ......[ 70]: int percpu_ref_init(struct percpu_ref *ref, ......[ 71]: percpu_ref_func_t *release); ......[ 72]: void percpu_ref_cancel_init(struct percpu_ref *ref); ......[ 73]: void percpu_ref_kill_and_confirm(struct percpu_ref *ref, ......[ 74]: percpu_ref_func_t *confirm_kill); ......[ 86]: static inline __attribute__((no_instrument_function)) void percpu_ref_kill(struct percpu_ref *ref) ......[ 87]: { ......[ 88]: return percpu_ref_kill_and_confirm(ref, ((void *)0)); ......[ 89]: } ......[ 104]: static inline __attribute__((no_instrument_function)) void percpu_ref_get(struct percpu_ref *ref) ......[ 105]: { ......[ 106]: unsigned *pcpu_count; ......[ 108]: rcu_read_lock_sched(); ......[ 110]: pcpu_count = (*(volatile typeof(ref->pcpu_count) *)&(ref->pcpu_count)); ......[ 112]: if (__builtin_expect(!!((((unsigned long) pcpu_count) & ((1 << 2) - 1)) == 0), 1)) ......[ 113]: do { do { const void *__vpp_verify = (typeof((&(((*pcpu_count)))) + 0))((void *)0); (void)__vpp_verify; } while (0)\ ...... ; switch(sizeof(((*pcpu_count)))) { case 1: do { typedef typeof((((*pcpu_count)))) pao_T__; const int pao_ID__ = (\ ...... __builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)\ ...... ); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" \ ...... "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))\ ...... ))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__)((1)))); break; case 2: \ ...... if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decw "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count\ ...... )))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count\ ...... ))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addl %1, "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((\ ...... ((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" ((pao_T__)((1))\ ...... )); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof((((*pcpu_count)))) pao_T__\ ...... ; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__\ ...... ; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm("incb "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((\ ...... ((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__)((1))\ ...... )); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof((((*pcpu_count\ ...... )))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ \ ...... pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm\ ...... ("incb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" \ ...... : "+m" ((((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__\ ...... )((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof((((*pcpu_count\ ...... )))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ \ ...... pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm\ ...... ("incb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" \ ...... : "+m" ((((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__\ ...... )((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter\ ...... ();break; } } while (0); ......[ 114]: else ......[ 115]: atomic_inc(&ref->count); ......[ 117]: rcu_read_unlock_sched(); ......[ 118]: } ......[ 132]: static inline __attribute__((no_instrument_function)) bool percpu_ref_tryget(struct percpu_ref *ref) ......[ 133]: { ......[ 134]: unsigned *pcpu_count; ......[ 135]: int ret = false; ......[ 137]: rcu_read_lock_sched(); ......[ 139]: pcpu_count = (*(volatile typeof(ref->pcpu_count) *)&(ref->pcpu_count)); ......[ 141]: if (__builtin_expect(!!((((unsigned long) pcpu_count) & ((1 << 2) - 1)) == 0), 1)) { ......[ 142]: do { do { const void *__vpp_verify = (typeof((&(((*pcpu_count)))) + 0))((void *)0); (void)__vpp_verify; } while (0)\ ...... ; switch(sizeof(((*pcpu_count)))) { case 1: do { typedef typeof((((*pcpu_count)))) pao_T__; const int pao_ID__ = (\ ...... __builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)\ ...... ); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" \ ...... "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))\ ...... ))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__)((1)))); break; case 2: \ ...... if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decw "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count\ ...... )))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count\ ...... ))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addl %1, "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((\ ...... ((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" ((pao_T__)((1))\ ...... )); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof((((*pcpu_count)))) pao_T__\ ...... ; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__\ ...... ; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm("incb "\ ...... "%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((\ ...... ((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__)((1))\ ...... )); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof((((*pcpu_count\ ...... )))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ \ ...... pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm\ ...... ("incb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" \ ...... : "+m" ((((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__\ ...... )((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof((((*pcpu_count\ ...... )))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ \ ...... pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((*pcpu_count))))) { case 1: if (pao_ID__ == 1) asm\ ...... ("incb ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" \ ...... : "+m" ((((*pcpu_count))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "qi" ((pao_T__\ ...... )((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ \ ...... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ ...... ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else \ ...... asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" \ ...... "%P" "0" : "+m" ((((*pcpu_count))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((*pcpu_count)))) : "re" (\ ...... (pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter\ ...... ();break; } } while (0); ......[ 143]: ret = true; ......[ 144]: } ......[ 146]: rcu_read_unlock_sched(); ......[ 148]: return ret; ......[ 149]: } ......[ 158]: static inline __attribute__((no_instrument_function)) void percpu_ref_put(struct percpu_ref *ref) ......[ 159]: { ......[ 160]: unsigned *pcpu_count; ......[ 162]: rcu_read_lock_sched(); ......[ 164]: pcpu_count = (*(volatile typeof(ref->pcpu_count) *)&(ref->pcpu_count)); ......[ 166]: if (__builtin_expect(!!((((unsigned long) pcpu_count) & ((1 << 2) - 1)) == 0), 1)) ......[ 167]: do { do { const void *__vpp_verify = (typeof((&((((*pcpu_count))))) + 0))((void *)0); (void)__vpp_verify; } while (\ ...... 0); switch(sizeof((((*pcpu_count))))) { case 1: do { typedef typeof(((((*pcpu_count))))) pao_T__; const int pao_ID__ \ ...... = (__builtin_constant_p((-(typeof((*pcpu_count)))(1))) && (((-(typeof((*pcpu_count)))(1))) == 1 || ((-(typeof\ ...... ((*pcpu_count)))(1))) == -1)) ? (int)((-(typeof((*pcpu_count)))(1))) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = \ ...... ((-(typeof((*pcpu_count)))(1))); (void)pao_tmp__; } switch (sizeof(((((*pcpu_count)))))) { case 1: if (pao_ID__ \ ...... == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"\ ...... ":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))\ ...... ) : "qi" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" \ ...... "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count\ ...... )))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if \ ...... (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addl %1, ""%%""gs"":" \ ...... "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 8: if (pao_ID__ \ ...... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"\ ...... ":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))\ ...... ) : "re" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; default: __bad_percpu_size(); } } while (0);break\ ...... ; case 2: do { typedef typeof(((((*pcpu_count))))) pao_T__; const int pao_ID__ = (__builtin_constant_p((-(typeof\ ...... ((*pcpu_count)))(1))) && (((-(typeof((*pcpu_count)))(1))) == 1 || ((-(typeof((*pcpu_count)))(1))) == -1)) ? (int\ ...... )((-(typeof((*pcpu_count)))(1))) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((-(typeof((*pcpu_count)))(1))); \ ...... (void)pao_tmp__; } switch (sizeof(((((*pcpu_count)))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" \ ...... "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count\ ...... )))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "qi" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if \ ...... (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addw %1, ""%%""gs"":" \ ...... "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 4: if (pao_ID__ \ ...... == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"\ ...... ":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))\ ...... ) : "ri" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" \ ...... "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count\ ...... )))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "re" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((*pcpu_count\ ...... ))))) pao_T__; const int pao_ID__ = (__builtin_constant_p((-(typeof((*pcpu_count)))(1))) && (((-(typeof((*pcpu_count\ ...... )))(1))) == 1 || ((-(typeof((*pcpu_count)))(1))) == -1)) ? (int)((-(typeof((*pcpu_count)))(1))) : 0; if (0) { pao_T__ \ ...... pao_tmp__; pao_tmp__ = ((-(typeof((*pcpu_count)))(1))); (void)pao_tmp__; } switch (sizeof(((((*pcpu_count))\ ...... )))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == \ ...... -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" \ ...... (((((*pcpu_count))))) : "qi" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 2: if (pao_ID__ == 1) asm\ ...... ("incw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" \ ...... "0" : "+m" (((((*pcpu_count)))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" (\ ...... (pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : \ ...... "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))\ ...... ))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if \ ...... (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addq %1, ""%%""gs"":" \ ...... "%P" "0" : "+m" (((((*pcpu_count))))) : "re" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; default: __bad_percpu_size\ ...... (); } } while (0);break; case 8: do { typedef typeof(((((*pcpu_count))))) pao_T__; const int pao_ID__ = (__builtin_constant_p\ ...... ((-(typeof((*pcpu_count)))(1))) && (((-(typeof((*pcpu_count)))(1))) == 1 || ((-(typeof((*pcpu_count)))(1))\ ...... ) == -1)) ? (int)((-(typeof((*pcpu_count)))(1))) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((-(typeof((*pcpu_count\ ...... )))(1))); (void)pao_tmp__; } switch (sizeof(((((*pcpu_count)))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"\ ...... ":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count\ ...... )))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "qi" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if \ ...... (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addw %1, ""%%""gs"":" \ ...... "%P" "0" : "+m" (((((*pcpu_count))))) : "ri" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 4: if (pao_ID__ \ ...... == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"\ ...... ":" "%P" "0" : "+m" (((((*pcpu_count)))))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))\ ...... ) : "ri" ((pao_T__)((-(typeof((*pcpu_count)))(1))))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" \ ...... "0" : "+m" (((((*pcpu_count)))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count\ ...... )))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((((*pcpu_count))))) : "re" ((pao_T__)((-(typeof((*pcpu_count\ ...... )))(1))))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break\ ...... ; } } while (0); ......[ 168]: else if (__builtin_expect(!!(atomic_dec_and_test(&ref->count)), 0)) ......[ 169]: ref->release(ref); ......[ 171]: rcu_read_unlock_sched(); ......[ 172]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/percpu-refcount.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....[ 27]: struct cgroupfs_root; .....[ 28]: struct cgroup_subsys; .....[ 29]: struct inode; .....[ 30]: struct cgroup; .....[ 31]: struct css_id; .....[ 32]: struct eventfd_ctx; .....[ 34]: extern int cgroup_init_early(void); .....[ 35]: extern int cgroup_init(void); .....[ 36]: extern void cgroup_fork(struct task_struct *p); .....[ 37]: extern void cgroup_post_fork(struct task_struct *p); .....[ 38]: extern void cgroup_exit(struct task_struct *p, int run_callbacks); .....[ 39]: extern int cgroupstats_build(struct cgroupstats *stats, .....[ 40]: struct dentry *dentry); .....[ 41]: extern int cgroup_load_subsys(struct cgroup_subsys *ss); .....[ 42]: extern void cgroup_unload_subsys(struct cgroup_subsys *ss); .....[ 44]: extern int proc_cgroup_show(struct seq_file *, void *); .....[ 52]: enum cgroup_subsys_id { ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup_subsys.h ......[ 7]: cpuset_subsys_id, ......[ 15]: cpu_cgroup_subsys_id, ......[ 19]: cpuacct_subsys_id, ......[ 27]: devices_subsys_id, ......[ 31]: freezer_subsys_id, ......[ 35]: net_cls_subsys_id, ......[ 39]: blkio_subsys_id, ......[ 43]: perf_subsys_id, ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup_subsys.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....[ 56]: CGROUP_BUILTIN_SUBSYS_COUNT, .....[ 58]: __CGROUP_SUBSYS_TEMP_PLACEHOLDER = CGROUP_BUILTIN_SUBSYS_COUNT - 1, .....[ 63]: CGROUP_SUBSYS_COUNT, .....[ 64]: }; .....[ 68]: struct cgroup_subsys_state { .....[ 70]: struct cgroup *cgroup; .....[ 73]: struct cgroup_subsys *ss; .....[ 76]: struct percpu_ref refcnt; .....[ 79]: struct cgroup_subsys_state *parent; .....[ 81]: unsigned long flags; .....[ 83]: struct css_id *id; .....[ 86]: struct callback_head callback_head; .....[ 87]: struct work_struct destroy_work; .....[ 88]: }; .....[ 91]: enum { .....[ 92]: CSS_ROOT = (1 << 0), .....[ 93]: CSS_ONLINE = (1 << 1), .....[ 94]: }; .....[ 102]: static inline __attribute__((no_instrument_function)) void css_get(struct cgroup_subsys_state *css) .....[ 103]: { .....[ 105]: if (!(css->flags & CSS_ROOT)) .....[ 106]: percpu_ref_get(&css->refcnt); .....[ 107]: } .....[ 119]: static inline __attribute__((no_instrument_function)) bool css_tryget(struct cgroup_subsys_state *css) .....[ 120]: { .....[ 121]: if (css->flags & CSS_ROOT) .....[ 122]: return true; .....[ 123]: return percpu_ref_tryget(&css->refcnt); .....[ 124]: } .....[ 132]: static inline __attribute__((no_instrument_function)) void css_put(struct cgroup_subsys_state *css) .....[ 133]: { .....[ 134]: if (!(css->flags & CSS_ROOT)) .....[ 135]: percpu_ref_put(&css->refcnt); .....[ 136]: } .....[ 139]: enum { .....[ 141]: CGRP_DEAD, .....[ 146]: CGRP_RELEASABLE, .....[ 148]: CGRP_NOTIFY_ON_RELEASE, .....[ 154]: CGRP_CPUSET_CLONE_CHILDREN, .....[ 156]: CGRP_SANE_BEHAVIOR, .....[ 157]: }; .....[ 159]: struct cgroup_name { .....[ 160]: struct callback_head callback_head; .....[ 161]: char name[]; .....[ 162]: }; .....[ 164]: struct cgroup { .....[ 165]: unsigned long flags; .....[ 173]: int id; .....[ 176]: int nr_css; .....[ 182]: struct list_head sibling; .....[ 183]: struct list_head children; .....[ 184]: struct list_head files; .....[ 186]: struct cgroup *parent; .....[ 187]: struct dentry *dentry; .....[ 195]: u64 serial_nr; .....[ 208]: struct cgroup_name *name; .....[ 211]: struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT]; .....[ 213]: struct cgroupfs_root *root; .....[ 219]: struct list_head cset_links; .....[ 226]: struct list_head release_list; .....[ 232]: struct list_head pidlists; .....[ 233]: struct mutex pidlist_mutex; .....[ 236]: struct cgroup_subsys_state dummy_css; .....[ 239]: struct callback_head callback_head; .....[ 240]: struct work_struct destroy_work; .....[ 243]: struct list_head event_list; .....[ 244]: spinlock_t event_list_lock; .....[ 247]: struct simple_xattrs xattrs; .....[ 248]: }; .....[ 253]: enum { .....[ 298]: CGRP_ROOT_SANE_BEHAVIOR = (1 << 0), .....[ 300]: CGRP_ROOT_NOPREFIX = (1 << 1), .....[ 301]: CGRP_ROOT_XATTR = (1 << 2), .....[ 304]: CGRP_ROOT_OPTION_MASK = (1 << 16) - 1, .....[ 306]: CGRP_ROOT_SUBSYS_BOUND = (1 << 16), .....[ 307]: }; .....[ 314]: struct cgroupfs_root { .....[ 315]: struct super_block *sb; .....[ 318]: unsigned long subsys_mask; .....[ 321]: int hierarchy_id; .....[ 324]: struct list_head subsys_list; .....[ 327]: struct cgroup top_cgroup; .....[ 330]: int number_of_cgroups; .....[ 333]: struct list_head root_list; .....[ 336]: unsigned long flags; .....[ 339]: struct idr cgroup_idr; .....[ 342]: char release_agent_path[4096]; .....[ 345]: char name[64]; .....[ 346]: }; .....[ 356]: struct css_set { .....[ 359]: atomic_t refcount; .....[ 365]: struct hlist_node hlist; .....[ 371]: struct list_head tasks; .....[ 377]: struct list_head cgrp_links; .....[ 385]: struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT]; .....[ 388]: struct callback_head callback_head; .....[ 389]: }; .....[ 396]: struct cgroup_map_cb { .....[ 397]: int (*fill)(struct cgroup_map_cb *cb, const char *key, u64 value); .....[ 398]: void *state; .....[ 399]: }; .....[ 410]: enum { .....[ 411]: CFTYPE_ONLY_ON_ROOT = (1 << 0), .....[ 412]: CFTYPE_NOT_ON_ROOT = (1 << 1), .....[ 413]: CFTYPE_INSANE = (1 << 2), .....[ 414]: CFTYPE_NO_PREFIX = (1 << 3), .....[ 415]: }; .....[ 419]: struct cftype { .....[ 425]: char name[64]; .....[ 426]: int private; .....[ 431]: umode_t mode; .....[ 437]: size_t max_write_len; .....[ 440]: unsigned int flags; .....[ 446]: struct cgroup_subsys *ss; .....[ 448]: int (*open)(struct inode *inode, struct file *file); .....[ 449]: ssize_t (*read)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 450]: struct file *file, .....[ 451]: char *buf, size_t nbytes, loff_t *ppos); .....[ 456]: u64 (*read_u64)(struct cgroup_subsys_state *css, struct cftype *cft); .....[ 460]: s64 (*read_s64)(struct cgroup_subsys_state *css, struct cftype *cft); .....[ 467]: int (*read_map)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 468]: struct cgroup_map_cb *cb); .....[ 473]: int (*read_seq_string)(struct cgroup_subsys_state *css, .....[ 474]: struct cftype *cft, struct seq_file *m); .....[ 476]: ssize_t (*write)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 477]: struct file *file, .....[ 478]: const char *buf, size_t nbytes, loff_t *ppos); .....[ 485]: int (*write_u64)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 486]: u64 val); .....[ 490]: int (*write_s64)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 491]: s64 val); .....[ 498]: int (*write_string)(struct cgroup_subsys_state *css, struct cftype *cft, .....[ 499]: const char *buffer); .....[ 506]: int (*trigger)(struct cgroup_subsys_state *css, unsigned int event); .....[ 508]: int (*release)(struct inode *inode, struct file *file); .....[ 516]: int (*register_event)(struct cgroup_subsys_state *css, .....[ 517]: struct cftype *cft, struct eventfd_ctx *eventfd, .....[ 518]: const char *args); .....[ 525]: void (*unregister_event)(struct cgroup_subsys_state *css, .....[ 526]: struct cftype *cft, .....[ 527]: struct eventfd_ctx *eventfd); .....[ 528]: }; .....[ 535]: struct cftype_set { .....[ 536]: struct list_head node; .....[ 537]: struct cftype *cfts; .....[ 538]: }; .....[ 544]: static inline __attribute__((no_instrument_function)) bool cgroup_sane_behavior(const struct cgroup *cgrp) .....[ 545]: { .....[ 546]: return cgrp->root->flags & CGRP_ROOT_SANE_BEHAVIOR; .....[ 547]: } .....[ 550]: static inline __attribute__((no_instrument_function)) const char *cgroup_name(const struct cgroup *cgrp) .....[ 551]: { .....[ 552]: return ({ typeof(*(cgrp->name)) *_________p1 = (typeof(*(cgrp->name))* )(*(volatile typeof((cgrp->name)) *)&\ ..... ((cgrp->name))); do { } while (0); ; do { } while (0); ((typeof(*(cgrp->name)) *)(_________p1)); })->name; .....[ 553]: } .....[ 555]: int cgroup_add_cftypes(struct cgroup_subsys *ss, struct cftype *cfts); .....[ 556]: int cgroup_rm_cftypes(struct cftype *cfts); .....[ 558]: bool cgroup_is_descendant(struct cgroup *cgrp, struct cgroup *ancestor); .....[ 560]: int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen); .....[ 561]: int task_cgroup_path(struct task_struct *task, char *buf, size_t buflen); .....[ 563]: int cgroup_task_count(const struct cgroup *cgrp); .....[ 569]: struct cgroup_taskset; .....[ 570]: struct task_struct *cgroup_taskset_first(struct cgroup_taskset *tset); .....[ 571]: struct task_struct *cgroup_taskset_next(struct cgroup_taskset *tset); .....[ 572]: struct cgroup_subsys_state *cgroup_taskset_cur_css(struct cgroup_taskset *tset, .....[ 573]: int subsys_id); .....[ 574]: int cgroup_taskset_size(struct cgroup_taskset *tset); .....[ 594]: struct cgroup_subsys { .....[ 595]: struct cgroup_subsys_state *(*css_alloc)(struct cgroup_subsys_state *parent_css); .....[ 596]: int (*css_online)(struct cgroup_subsys_state *css); .....[ 597]: void (*css_offline)(struct cgroup_subsys_state *css); .....[ 598]: void (*css_free)(struct cgroup_subsys_state *css); .....[ 600]: int (*can_attach)(struct cgroup_subsys_state *css, .....[ 601]: struct cgroup_taskset *tset); .....[ 602]: void (*cancel_attach)(struct cgroup_subsys_state *css, .....[ 603]: struct cgroup_taskset *tset); .....[ 604]: void (*attach)(struct cgroup_subsys_state *css, .....[ 605]: struct cgroup_taskset *tset); .....[ 606]: void (*fork)(struct task_struct *task); .....[ 607]: void (*exit)(struct cgroup_subsys_state *css, .....[ 608]: struct cgroup_subsys_state *old_css, .....[ 609]: struct task_struct *task); .....[ 610]: void (*bind)(struct cgroup_subsys_state *root_css); .....[ 612]: int subsys_id; .....[ 613]: int disabled; .....[ 614]: int early_init; .....[ 628]: bool broken_hierarchy; .....[ 629]: bool warned_broken_hierarchy; .....[ 632]: const char *name; .....[ 638]: struct cgroupfs_root *root; .....[ 639]: struct list_head sibling; .....[ 642]: struct list_head cftsets; .....[ 645]: struct cftype *base_cftypes; .....[ 646]: struct cftype_set base_cftset; .....[ 649]: struct module *module; .....[ 650]: }; ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup_subsys.h ......[ 7]: extern struct cgroup_subsys cpuset_subsys; ......[ 15]: extern struct cgroup_subsys cpu_cgroup_subsys; ......[ 19]: extern struct cgroup_subsys cpuacct_subsys; ......[ 27]: extern struct cgroup_subsys devices_subsys; ......[ 31]: extern struct cgroup_subsys freezer_subsys; ......[ 35]: extern struct cgroup_subsys net_cls_subsys; ......[ 39]: extern struct cgroup_subsys blkio_subsys; ......[ 43]: extern struct cgroup_subsys perf_subsys; ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup_subsys.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h .....[ 665]: static inline __attribute__((no_instrument_function)) .....[ 666]: struct cgroup_subsys_state *css_parent(struct cgroup_subsys_state *css) .....[ 667]: { .....[ 668]: return css->parent; .....[ 669]: } .....[ 713]: static inline __attribute__((no_instrument_function)) struct css_set *task_css_set(struct task_struct *task\ ..... ) .....[ 714]: { .....[ 715]: return ({ typeof(*((task)->cgroups)) *_________p1 = (typeof(*((task)->cgroups))* )(*(volatile typeof(((task\ ..... )->cgroups)) *)&(((task)->cgroups))); do { } while (0); ; do { } while (0); ((typeof(*((task)->cgroups)) *)(_________p1\ ..... )); }); .....[ 716]: } .....[ 725]: static inline __attribute__((no_instrument_function)) struct cgroup_subsys_state *task_css(struct task_struct \ ..... *task, .....[ 726]: int subsys_id) .....[ 727]: { .....[ 728]: return ({ typeof(*(((task))->cgroups)) *_________p1 = (typeof(*(((task))->cgroups))* )(*(volatile typeof(((\ ..... (task))->cgroups)) *)&((((task))->cgroups))); do { } while (0); ; do { } while (0); ((typeof(*(((task))->cgroups)\ ..... ) *)(_________p1)); })->subsys[(subsys_id)]; .....[ 729]: } .....[ 731]: static inline __attribute__((no_instrument_function)) struct cgroup *task_cgroup(struct task_struct *task, .....[ 732]: int subsys_id) .....[ 733]: { .....[ 734]: return task_css(task, subsys_id)->cgroup; .....[ 735]: } .....[ 737]: struct cgroup_subsys_state *css_next_child(struct cgroup_subsys_state *pos, .....[ 738]: struct cgroup_subsys_state *parent); .....[ 740]: struct cgroup_subsys_state *css_from_id(int id, struct cgroup_subsys *ss); .....[ 764]: struct cgroup_subsys_state * .....[ 765]: css_next_descendant_pre(struct cgroup_subsys_state *pos, .....[ 766]: struct cgroup_subsys_state *css); .....[ 768]: struct cgroup_subsys_state * .....[ 769]: css_rightmost_descendant(struct cgroup_subsys_state *pos); .....[ 832]: struct cgroup_subsys_state * .....[ 833]: css_next_descendant_post(struct cgroup_subsys_state *pos, .....[ 834]: struct cgroup_subsys_state *css); .....[ 851]: struct css_task_iter { .....[ 852]: struct cgroup_subsys_state *origin_css; .....[ 853]: struct list_head *cset_link; .....[ 854]: struct list_head *task; .....[ 855]: }; .....[ 857]: void css_task_iter_start(struct cgroup_subsys_state *css, .....[ 858]: struct css_task_iter *it); .....[ 859]: struct task_struct *css_task_iter_next(struct css_task_iter *it); .....[ 860]: void css_task_iter_end(struct css_task_iter *it); .....[ 862]: int css_scan_tasks(struct cgroup_subsys_state *css, .....[ 863]: bool (*test)(struct task_struct *, void *), .....[ 864]: void (*process)(struct task_struct *, void *), .....[ 865]: void *data, struct ptr_heap *heap); .....[ 867]: int cgroup_attach_task_all(struct task_struct *from, struct task_struct *); .....[ 868]: int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from); .....[ 870]: struct cgroup_subsys_state *css_from_dir(struct dentry *dentry, .....[ 871]: struct cgroup_subsys *ss); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/cgroup.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vm_event_item.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vm_event_item.h .....[ 24]: enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, .....[ 25]: PGALLOC_DMA, PGALLOC_DMA32, PGALLOC_NORMAL , PGALLOC_MOVABLE, .....[ 26]: PGFREE, PGACTIVATE, PGDEACTIVATE, .....[ 27]: PGFAULT, PGMAJFAULT, .....[ 28]: PGREFILL_DMA, PGREFILL_DMA32, PGREFILL_NORMAL , PGREFILL_MOVABLE, .....[ 29]: PGSTEAL_KSWAPD_DMA, PGSTEAL_KSWAPD_DMA32, PGSTEAL_KSWAPD_NORMAL , PGSTEAL_KSWAPD_MOVABLE, .....[ 30]: PGSTEAL_DIRECT_DMA, PGSTEAL_DIRECT_DMA32, PGSTEAL_DIRECT_NORMAL , PGSTEAL_DIRECT_MOVABLE, .....[ 31]: PGSCAN_KSWAPD_DMA, PGSCAN_KSWAPD_DMA32, PGSCAN_KSWAPD_NORMAL , PGSCAN_KSWAPD_MOVABLE, .....[ 32]: PGSCAN_DIRECT_DMA, PGSCAN_DIRECT_DMA32, PGSCAN_DIRECT_NORMAL , PGSCAN_DIRECT_MOVABLE, .....[ 33]: PGSCAN_DIRECT_THROTTLE, .....[ 35]: PGSCAN_ZONE_RECLAIM_FAILED, .....[ 37]: PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, .....[ 38]: KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, .....[ 39]: PAGEOUTRUN, ALLOCSTALL, PGROTATED, .....[ 48]: PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, .....[ 56]: HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, .....[ 58]: UNEVICTABLE_PGCULLED, .....[ 59]: UNEVICTABLE_PGSCANNED, .....[ 60]: UNEVICTABLE_PGRESCUED, .....[ 61]: UNEVICTABLE_PGMLOCKED, .....[ 62]: UNEVICTABLE_PGMUNLOCKED, .....[ 63]: UNEVICTABLE_PGCLEARED, .....[ 64]: UNEVICTABLE_PGSTRANDED, .....[ 75]: NR_TLB_REMOTE_FLUSH, .....[ 76]: NR_TLB_REMOTE_FLUSH_RECEIVED, .....[ 78]: NR_TLB_LOCAL_FLUSH_ALL, .....[ 79]: NR_TLB_LOCAL_FLUSH_ONE, .....[ 80]: NR_VM_EVENT_ITEMS .....[ 81]: }; .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vm_event_item.h ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hardirq.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hardirq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ftrace_irq.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ftrace_irq.h ......[ 9]: static inline __attribute__((no_instrument_function)) void ftrace_nmi_enter(void) { } ......[ 10]: static inline __attribute__((no_instrument_function)) void ftrace_nmi_exit(void) { } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/ftrace_irq.h ....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hardirq.h .....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vtime.h .....# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vtime.h ......# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/context_tracking_state.h .......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/context_tracking_state.h .......[ 7]: struct context_tracking { .......[ 14]: bool active; .......[ 15]: enum ctx_state { .......[ 16]: IN_KERNEL = 0, .......[ 17]: IN_USER, .......[ 18]: } state; .......[ 19]: }; .......[ 35]: static inline __attribute__((no_instrument_function)) bool context_tracking_in_user(void) { return false; } .......[ 36]: static inline __attribute__((no_instrument_function)) bool context_tracking_active(void) { return false; } .......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/context_tracking_state.h ......# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vtime.h ......[ 10]: struct task_struct; ......[ 32]: static inline __attribute__((no_instrument_function)) bool vtime_accounting_enabled(void) { return false; } ......[ 69]: static inline __attribute__((no_instrument_function)) void vtime_task_switch(struct task_struct *prev) { } ......[ 70]: static inline __attribute__((no_instrument_function)) void vtime_account_system(struct task_struct *tsk) { } ......[ 71]: static inline __attribute__((no_instrument_function)) void vtime_account_user(struct task_struct *tsk) { } ......[ 72]: static inline __attribute__((no_instrument_function)) void vtime_account_irq_enter(struct task_struct *tsk\ ...... ) { } ......[ 95]: static inline __attribute__((no_instrument_function)) void vtime_account_irq_exit(struct task_struct *tsk) ......[ 96]: { ......[ 98]: vtime_account_system(tsk); ......[ 99]: } ......[ 100]: static inline __attribute__((no_instrument_function)) void vtime_user_enter(struct task_struct *tsk) { } ......[ 101]: static inline __attribute__((no_instrument_function)) void vtime_user_exit(struct task_struct *tsk) { } ......[ 102]: static inline __attribute__((no_instrument_function)) void vtime_guest_enter(struct task_struct *tsk) { } ......[ 103]: static inline __attribute__((no_instrument_function)) void vtime_guest_exit(struct task_struct *tsk) { } ......[ 104]: static inline __attribute__((no_instrument_function)) void vtime_init_idle(struct task_struct *tsk, int cpu) \ ...... { } ......[ 110]: static inline __attribute__((no_instrument_function)) void irqtime_account_irq(struct task_struct *tsk) { } ......[ 113]: static inline __attribute__((no_instrument_function)) void account_irq_enter_time(struct task_struct *tsk) ......[ 114]: { ......[ 115]: vtime_account_irq_enter(tsk); ......[ 116]: irqtime_account_irq(tsk); ......[ 117]: } ......[ 119]: static inline __attribute__((no_instrument_function)) void account_irq_exit_time(struct task_struct *tsk) ......[ 120]: { ......[ 121]: vtime_account_irq_exit(tsk); ......[ 122]: irqtime_account_irq(tsk); ......[ 123]: } ......# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vtime.h .....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hardirq.h .....[ 10]: extern void synchronize_irq(unsigned int irq); .....[ 23]: extern void rcu_nmi_enter(void); .....[ 24]: extern void rcu_nmi_exit(void); .....[ 43]: extern void irq_enter(void); .....[ 58]: extern void irq_exit(void); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/hardirq.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ....[ 27]: struct mem_cgroup; ....[ 28]: struct page_cgroup; ....[ 29]: struct page; ....[ 30]: struct mm_struct; ....[ 31]: struct kmem_cache; ....[ 37]: enum mem_cgroup_stat_index { ....[ 41]: MEM_CGROUP_STAT_CACHE, ....[ 42]: MEM_CGROUP_STAT_RSS, ....[ 43]: MEM_CGROUP_STAT_RSS_HUGE, ....[ 44]: MEM_CGROUP_STAT_FILE_MAPPED, ....[ 45]: MEM_CGROUP_STAT_WRITEBACK, ....[ 46]: MEM_CGROUP_STAT_SWAP, ....[ 47]: MEM_CGROUP_STAT_NSTATS, ....[ 48]: }; ....[ 50]: struct mem_cgroup_reclaim_cookie { ....[ 51]: struct zone *zone; ....[ 52]: int priority; ....[ 53]: unsigned int generation; ....[ 54]: }; ....[ 235]: struct mem_cgroup; ....[ 237]: static inline __attribute__((no_instrument_function)) int mem_cgroup_newpage_charge(struct page *page, ....[ 238]: struct mm_struct *mm, gfp_t gfp_mask) ....[ 239]: { ....[ 240]: return 0; ....[ 241]: } ....[ 243]: static inline __attribute__((no_instrument_function)) int mem_cgroup_cache_charge(struct page *page, ....[ 244]: struct mm_struct *mm, gfp_t gfp_mask) ....[ 245]: { ....[ 246]: return 0; ....[ 247]: } ....[ 249]: static inline __attribute__((no_instrument_function)) int mem_cgroup_try_charge_swapin(struct mm_struct *mm\ .... , ....[ 250]: struct page *page, gfp_t gfp_mask, struct mem_cgroup **memcgp) ....[ 251]: { ....[ 252]: return 0; ....[ 253]: } ....[ 255]: static inline __attribute__((no_instrument_function)) void mem_cgroup_commit_charge_swapin(struct page *page\ .... , ....[ 256]: struct mem_cgroup *memcg) ....[ 257]: { ....[ 258]: } ....[ 260]: static inline __attribute__((no_instrument_function)) void mem_cgroup_cancel_charge_swapin(struct mem_cgroup \ .... *memcg) ....[ 261]: { ....[ 262]: } ....[ 264]: static inline __attribute__((no_instrument_function)) void mem_cgroup_uncharge_start(void) ....[ 265]: { ....[ 266]: } ....[ 268]: static inline __attribute__((no_instrument_function)) void mem_cgroup_uncharge_end(void) ....[ 269]: { ....[ 270]: } ....[ 272]: static inline __attribute__((no_instrument_function)) void mem_cgroup_uncharge_page(struct page *page) ....[ 273]: { ....[ 274]: } ....[ 276]: static inline __attribute__((no_instrument_function)) void mem_cgroup_uncharge_cache_page(struct page *page\ .... ) ....[ 277]: { ....[ 278]: } ....[ 280]: static inline __attribute__((no_instrument_function)) struct lruvec *mem_cgroup_zone_lruvec(struct zone *zone\ .... , ....[ 281]: struct mem_cgroup *memcg) ....[ 282]: { ....[ 283]: return &zone->lruvec; ....[ 284]: } ....[ 286]: static inline __attribute__((no_instrument_function)) struct lruvec *mem_cgroup_page_lruvec(struct page *page\ .... , ....[ 287]: struct zone *zone) ....[ 288]: { ....[ 289]: return &zone->lruvec; ....[ 290]: } ....[ 292]: static inline __attribute__((no_instrument_function)) struct mem_cgroup *try_get_mem_cgroup_from_page(struct \ .... page *page) ....[ 293]: { ....[ 294]: return ((void *)0); ....[ 295]: } ....[ 297]: static inline __attribute__((no_instrument_function)) struct mem_cgroup *try_get_mem_cgroup_from_mm(struct \ .... mm_struct *mm) ....[ 298]: { ....[ 299]: return ((void *)0); ....[ 300]: } ....[ 302]: static inline __attribute__((no_instrument_function)) bool mm_match_cgroup(struct mm_struct *mm, ....[ 303]: struct mem_cgroup *memcg) ....[ 304]: { ....[ 305]: return true; ....[ 306]: } ....[ 308]: static inline __attribute__((no_instrument_function)) bool task_in_mem_cgroup(struct task_struct *task, ....[ 309]: const struct mem_cgroup *memcg) ....[ 310]: { ....[ 311]: return true; ....[ 312]: } ....[ 314]: static inline __attribute__((no_instrument_function)) struct cgroup_subsys_state ....[ 315]: *mem_cgroup_css(struct mem_cgroup *memcg) ....[ 316]: { ....[ 317]: return ((void *)0); ....[ 318]: } ....[ 320]: static inline __attribute__((no_instrument_function)) void ....[ 321]: mem_cgroup_prepare_migration(struct page *page, struct page *newpage, ....[ 322]: struct mem_cgroup **memcgp) ....[ 323]: { ....[ 324]: } ....[ 326]: static inline __attribute__((no_instrument_function)) void mem_cgroup_end_migration(struct mem_cgroup *memcg\ .... , ....[ 327]: struct page *oldpage, struct page *newpage, bool migration_ok) ....[ 328]: { ....[ 329]: } ....[ 331]: static inline __attribute__((no_instrument_function)) struct mem_cgroup * ....[ 332]: mem_cgroup_iter(struct mem_cgroup *root, ....[ 333]: struct mem_cgroup *prev, ....[ 334]: struct mem_cgroup_reclaim_cookie *reclaim) ....[ 335]: { ....[ 336]: return ((void *)0); ....[ 337]: } ....[ 339]: static inline __attribute__((no_instrument_function)) void mem_cgroup_iter_break(struct mem_cgroup *root, ....[ 340]: struct mem_cgroup *prev) ....[ 341]: { ....[ 342]: } ....[ 344]: static inline __attribute__((no_instrument_function)) bool mem_cgroup_disabled(void) ....[ 345]: { ....[ 346]: return true; ....[ 347]: } ....[ 349]: static inline __attribute__((no_instrument_function)) int ....[ 350]: mem_cgroup_inactive_anon_is_low(struct lruvec *lruvec) ....[ 351]: { ....[ 352]: return 1; ....[ 353]: } ....[ 355]: static inline __attribute__((no_instrument_function)) unsigned long ....[ 356]: mem_cgroup_get_lru_size(struct lruvec *lruvec, enum lru_list lru) ....[ 357]: { ....[ 358]: return 0; ....[ 359]: } ....[ 361]: static inline __attribute__((no_instrument_function)) void ....[ 362]: mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, ....[ 363]: int increment) ....[ 364]: { ....[ 365]: } ....[ 367]: static inline __attribute__((no_instrument_function)) void ....[ 368]: mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) ....[ 369]: { ....[ 370]: } ....[ 372]: static inline __attribute__((no_instrument_function)) void mem_cgroup_begin_update_page_stat(struct page *\ .... page, ....[ 373]: bool *locked, unsigned long *flags) ....[ 374]: { ....[ 375]: } ....[ 377]: static inline __attribute__((no_instrument_function)) void mem_cgroup_end_update_page_stat(struct page *page\ .... , ....[ 378]: bool *locked, unsigned long *flags) ....[ 379]: { ....[ 380]: } ....[ 382]: static inline __attribute__((no_instrument_function)) void mem_cgroup_oom_enable(void) ....[ 383]: { ....[ 384]: } ....[ 386]: static inline __attribute__((no_instrument_function)) void mem_cgroup_oom_disable(void) ....[ 387]: { ....[ 388]: } ....[ 390]: static inline __attribute__((no_instrument_function)) bool task_in_memcg_oom(struct task_struct *p) ....[ 391]: { ....[ 392]: return false; ....[ 393]: } ....[ 395]: static inline __attribute__((no_instrument_function)) bool mem_cgroup_oom_synchronize(bool wait) ....[ 396]: { ....[ 397]: return false; ....[ 398]: } ....[ 400]: static inline __attribute__((no_instrument_function)) void mem_cgroup_inc_page_stat(struct page *page, ....[ 401]: enum mem_cgroup_stat_index idx) ....[ 402]: { ....[ 403]: } ....[ 405]: static inline __attribute__((no_instrument_function)) void mem_cgroup_dec_page_stat(struct page *page, ....[ 406]: enum mem_cgroup_stat_index idx) ....[ 407]: { ....[ 408]: } ....[ 410]: static inline __attribute__((no_instrument_function)) ....[ 411]: unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, ....[ 412]: gfp_t gfp_mask, ....[ 413]: unsigned long *total_scanned) ....[ 414]: { ....[ 415]: return 0; ....[ 416]: } ....[ 418]: static inline __attribute__((no_instrument_function)) void mem_cgroup_split_huge_fixup(struct page *head) ....[ 419]: { ....[ 420]: } ....[ 422]: static inline __attribute__((no_instrument_function)) ....[ 423]: void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx) ....[ 424]: { ....[ 425]: } ....[ 426]: static inline __attribute__((no_instrument_function)) void mem_cgroup_replace_page_cache(struct page *oldpage\ .... , ....[ 427]: struct page *newpage) ....[ 428]: { ....[ 429]: } ....[ 433]: static inline __attribute__((no_instrument_function)) bool ....[ 434]: mem_cgroup_bad_page_check(struct page *page) ....[ 435]: { ....[ 436]: return false; ....[ 437]: } ....[ 439]: static inline __attribute__((no_instrument_function)) void ....[ 440]: mem_cgroup_print_bad_page(struct page *page) ....[ 441]: { ....[ 442]: } ....[ 445]: enum { ....[ 446]: UNDER_LIMIT, ....[ 447]: SOFT_LIMIT, ....[ 448]: OVER_LIMIT, ....[ 449]: }; ....[ 451]: struct sock; ....[ 456]: static inline __attribute__((no_instrument_function)) void sock_update_memcg(struct sock *sk) ....[ 457]: { ....[ 458]: } ....[ 459]: static inline __attribute__((no_instrument_function)) void sock_release_memcg(struct sock *sk) ....[ 460]: { ....[ 461]: } ....[ 618]: static inline __attribute__((no_instrument_function)) bool memcg_kmem_enabled(void) ....[ 619]: { ....[ 620]: return false; ....[ 621]: } ....[ 623]: static inline __attribute__((no_instrument_function)) bool ....[ 624]: memcg_kmem_newpage_charge(gfp_t gfp, struct mem_cgroup **memcg, int order) ....[ 625]: { ....[ 626]: return true; ....[ 627]: } ....[ 629]: static inline __attribute__((no_instrument_function)) void memcg_kmem_uncharge_pages(struct page *page, int \ .... order) ....[ 630]: { ....[ 631]: } ....[ 633]: static inline __attribute__((no_instrument_function)) void ....[ 634]: memcg_kmem_commit_charge(struct page *page, struct mem_cgroup *memcg, int order) ....[ 635]: { ....[ 636]: } ....[ 638]: static inline __attribute__((no_instrument_function)) int memcg_cache_id(struct mem_cgroup *memcg) ....[ 639]: { ....[ 640]: return -1; ....[ 641]: } ....[ 643]: static inline __attribute__((no_instrument_function)) int ....[ 644]: memcg_register_cache(struct mem_cgroup *memcg, struct kmem_cache *s, ....[ 645]: struct kmem_cache *root_cache) ....[ 646]: { ....[ 647]: return 0; ....[ 648]: } ....[ 650]: static inline __attribute__((no_instrument_function)) void memcg_release_cache(struct kmem_cache *cachep) ....[ 651]: { ....[ 652]: } ....[ 654]: static inline __attribute__((no_instrument_function)) void memcg_cache_list_add(struct mem_cgroup *memcg, ....[ 655]: struct kmem_cache *s) ....[ 656]: { ....[ 657]: } ....[ 659]: static inline __attribute__((no_instrument_function)) struct kmem_cache * ....[ 660]: memcg_kmem_get_cache(struct kmem_cache *cachep, gfp_t gfp) ....[ 661]: { ....[ 662]: return cachep; ....[ 663]: } ....[ 665]: static inline __attribute__((no_instrument_function)) void kmem_cache_destroy_memcg_children(struct kmem_cache \ .... *s) ....[ 666]: { ....[ 667]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/memcontrol.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swap.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/page-flags.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/page-flags.h ....[ 74]: enum pageflags { ....[ 75]: PG_locked, ....[ 76]: PG_error, ....[ 77]: PG_referenced, ....[ 78]: PG_uptodate, ....[ 79]: PG_dirty, ....[ 80]: PG_lru, ....[ 81]: PG_active, ....[ 82]: PG_slab, ....[ 83]: PG_owner_priv_1, ....[ 84]: PG_arch_1, ....[ 85]: PG_reserved, ....[ 86]: PG_private, ....[ 87]: PG_private_2, ....[ 88]: PG_writeback, ....[ 90]: PG_head, ....[ 91]: PG_tail, ....[ 95]: PG_swapcache, ....[ 96]: PG_mappedtodisk, ....[ 97]: PG_reclaim, ....[ 98]: PG_swapbacked, ....[ 99]: PG_unevictable, ....[ 101]: PG_mlocked, ....[ 104]: PG_uncached, ....[ 107]: PG_hwpoison, ....[ 112]: __NR_PAGEFLAGS, ....[ 115]: PG_checked = PG_owner_priv_1, ....[ 121]: PG_fscache = PG_private_2, ....[ 124]: PG_pinned = PG_owner_priv_1, ....[ 125]: PG_savepinned = PG_dirty, ....[ 128]: PG_slob_free = PG_private, ....[ 129]: }; ....[ 196]: struct page; ....[ 198]: static inline __attribute__((no_instrument_function)) int PageLocked(const struct page *page) { return (__builtin_constant_p\ .... ((PG_locked)) ? constant_test_bit((PG_locked), (&page->flags)) : variable_test_bit((PG_locked), (&page->flags\ .... ))); } ....[ 199]: static inline __attribute__((no_instrument_function)) int PageError(const struct page *page) { return (__builtin_constant_p\ .... ((PG_error)) ? constant_test_bit((PG_error), (&page->flags)) : variable_test_bit((PG_error), (&page->flags\ .... ))); } static inline __attribute__((no_instrument_function)) void SetPageError(struct page *page) { set_bit(PG_error\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageError(struct page *page\ .... ) { clear_bit(PG_error, &page->flags); } static inline __attribute__((no_instrument_function)) int TestClearPageError\ .... (struct page *page) { return test_and_clear_bit(PG_error, &page->flags); } ....[ 200]: static inline __attribute__((no_instrument_function)) int PageReferenced(const struct page *page) { return (__builtin_constant_p\ .... ((PG_referenced)) ? constant_test_bit((PG_referenced), (&page->flags)) : variable_test_bit((PG_referenced\ .... ), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageReferenced(struct page \ .... *page) { set_bit(PG_referenced, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageReferenced\ .... (struct page *page) { clear_bit(PG_referenced, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int TestClearPageReferenced(struct page *page) { return test_and_clear_bit(PG_referenced, &page->flags); } ....[ 201]: static inline __attribute__((no_instrument_function)) int PageDirty(const struct page *page) { return (__builtin_constant_p\ .... ((PG_dirty)) ? constant_test_bit((PG_dirty), (&page->flags)) : variable_test_bit((PG_dirty), (&page->flags\ .... ))); } static inline __attribute__((no_instrument_function)) void SetPageDirty(struct page *page) { set_bit(PG_dirty\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageDirty(struct page *page\ .... ) { clear_bit(PG_dirty, &page->flags); } static inline __attribute__((no_instrument_function)) int TestSetPageDirty\ .... (struct page *page) { return test_and_set_bit(PG_dirty, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int TestClearPageDirty(struct page *page) { return test_and_clear_bit(PG_dirty, &page->flags); } static inline \ .... __attribute__((no_instrument_function)) void __ClearPageDirty(struct page *page) { __clear_bit(PG_dirty, &page\ .... ->flags); } ....[ 202]: static inline __attribute__((no_instrument_function)) int PageLRU(const struct page *page) { return (__builtin_constant_p\ .... ((PG_lru)) ? constant_test_bit((PG_lru), (&page->flags)) : variable_test_bit((PG_lru), (&page->flags))); } static \ .... inline __attribute__((no_instrument_function)) void SetPageLRU(struct page *page) { set_bit(PG_lru, &page->flags\ .... ); } static inline __attribute__((no_instrument_function)) void ClearPageLRU(struct page *page) { clear_bit(PG_lru\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void __ClearPageLRU(struct page *page\ .... ) { __clear_bit(PG_lru, &page->flags); } ....[ 203]: static inline __attribute__((no_instrument_function)) int PageActive(const struct page *page) { return (__builtin_constant_p\ .... ((PG_active)) ? constant_test_bit((PG_active), (&page->flags)) : variable_test_bit((PG_active), (&page->flags\ .... ))); } static inline __attribute__((no_instrument_function)) void SetPageActive(struct page *page) { set_bit(PG_active\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageActive(struct page *page\ .... ) { clear_bit(PG_active, &page->flags); } static inline __attribute__((no_instrument_function)) void __ClearPageActive\ .... (struct page *page) { __clear_bit(PG_active, &page->flags); } ....[ 204]: static inline __attribute__((no_instrument_function)) int TestClearPageActive(struct page *page) { return test_and_clear_bit\ .... (PG_active, &page->flags); } ....[ 205]: static inline __attribute__((no_instrument_function)) int PageSlab(const struct page *page) { return (__builtin_constant_p\ .... ((PG_slab)) ? constant_test_bit((PG_slab), (&page->flags)) : variable_test_bit((PG_slab), (&page->flags)))\ .... ; } static inline __attribute__((no_instrument_function)) void __SetPageSlab(struct page *page) { __set_bit(PG_slab\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void __ClearPageSlab(struct page *page\ .... ) { __clear_bit(PG_slab, &page->flags); } ....[ 206]: static inline __attribute__((no_instrument_function)) int PageChecked(const struct page *page) { return (__builtin_constant_p\ .... ((PG_checked)) ? constant_test_bit((PG_checked), (&page->flags)) : variable_test_bit((PG_checked), (&page->\ .... flags))); } static inline __attribute__((no_instrument_function)) void SetPageChecked(struct page *page) { set_bit\ .... (PG_checked, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageChecked(struct \ .... page *page) { clear_bit(PG_checked, &page->flags); } ....[ 207]: static inline __attribute__((no_instrument_function)) int PagePinned(const struct page *page) { return (__builtin_constant_p\ .... ((PG_pinned)) ? constant_test_bit((PG_pinned), (&page->flags)) : variable_test_bit((PG_pinned), (&page->flags\ .... ))); } static inline __attribute__((no_instrument_function)) void SetPagePinned(struct page *page) { set_bit(PG_pinned\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPagePinned(struct page *page\ .... ) { clear_bit(PG_pinned, &page->flags); } static inline __attribute__((no_instrument_function)) int TestSetPagePinned\ .... (struct page *page) { return test_and_set_bit(PG_pinned, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int TestClearPagePinned(struct page *page) { return test_and_clear_bit(PG_pinned, &page->flags); } ....[ 208]: static inline __attribute__((no_instrument_function)) int PageSavePinned(const struct page *page) { return (__builtin_constant_p\ .... ((PG_savepinned)) ? constant_test_bit((PG_savepinned), (&page->flags)) : variable_test_bit((PG_savepinned\ .... ), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageSavePinned(struct page \ .... *page) { set_bit(PG_savepinned, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageSavePinned\ .... (struct page *page) { clear_bit(PG_savepinned, &page->flags); }; ....[ 209]: static inline __attribute__((no_instrument_function)) int PageReserved(const struct page *page) { return (__builtin_constant_p\ .... ((PG_reserved)) ? constant_test_bit((PG_reserved), (&page->flags)) : variable_test_bit((PG_reserved), (&page\ .... ->flags))); } static inline __attribute__((no_instrument_function)) void SetPageReserved(struct page *page) { \ .... set_bit(PG_reserved, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageReserved\ .... (struct page *page) { clear_bit(PG_reserved, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) void __ClearPageReserved(struct page *page) { __clear_bit(PG_reserved, &page->flags); } ....[ 210]: static inline __attribute__((no_instrument_function)) int PageSwapBacked(const struct page *page) { return (__builtin_constant_p\ .... ((PG_swapbacked)) ? constant_test_bit((PG_swapbacked), (&page->flags)) : variable_test_bit((PG_swapbacked\ .... ), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageSwapBacked(struct page \ .... *page) { set_bit(PG_swapbacked, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageSwapBacked\ .... (struct page *page) { clear_bit(PG_swapbacked, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) void __ClearPageSwapBacked(struct page *page) { __clear_bit(PG_swapbacked, &page->flags); } ....[ 212]: static inline __attribute__((no_instrument_function)) int PageSlobFree(const struct page *page) { return (__builtin_constant_p\ .... ((PG_slob_free)) ? constant_test_bit((PG_slob_free), (&page->flags)) : variable_test_bit((PG_slob_free), (\ .... &page->flags))); } static inline __attribute__((no_instrument_function)) void __SetPageSlobFree(struct page \ .... *page) { __set_bit(PG_slob_free, &page->flags); } static inline __attribute__((no_instrument_function)) void \ .... __ClearPageSlobFree(struct page *page) { __clear_bit(PG_slob_free, &page->flags); } ....[ 219]: static inline __attribute__((no_instrument_function)) int PagePrivate(const struct page *page) { return (__builtin_constant_p\ .... ((PG_private)) ? constant_test_bit((PG_private), (&page->flags)) : variable_test_bit((PG_private), (&page->\ .... flags))); } static inline __attribute__((no_instrument_function)) void SetPagePrivate(struct page *page) { set_bit\ .... (PG_private, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPagePrivate(struct \ .... page *page) { clear_bit(PG_private, &page->flags); } static inline __attribute__((no_instrument_function)) void \ .... __SetPagePrivate(struct page *page) { __set_bit(PG_private, &page->flags); } ....[ 220]: static inline __attribute__((no_instrument_function)) void __ClearPagePrivate(struct page *page) { __clear_bit\ .... (PG_private, &page->flags); } ....[ 221]: static inline __attribute__((no_instrument_function)) int PagePrivate2(const struct page *page) { return (__builtin_constant_p\ .... ((PG_private_2)) ? constant_test_bit((PG_private_2), (&page->flags)) : variable_test_bit((PG_private_2), (\ .... &page->flags))); } static inline __attribute__((no_instrument_function)) void SetPagePrivate2(struct page *page\ .... ) { set_bit(PG_private_2, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPagePrivate2\ .... (struct page *page) { clear_bit(PG_private_2, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int TestSetPagePrivate2(struct page *page) { return test_and_set_bit(PG_private_2, &page->flags); } static inline \ .... __attribute__((no_instrument_function)) int TestClearPagePrivate2(struct page *page) { return test_and_clear_bit\ .... (PG_private_2, &page->flags); } ....[ 222]: static inline __attribute__((no_instrument_function)) int PageOwnerPriv1(const struct page *page) { return (__builtin_constant_p\ .... ((PG_owner_priv_1)) ? constant_test_bit((PG_owner_priv_1), (&page->flags)) : variable_test_bit((PG_owner_priv_1\ .... ), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageOwnerPriv1(struct page \ .... *page) { set_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__((no_instrument_function)) void \ .... ClearPageOwnerPriv1(struct page *page) { clear_bit(PG_owner_priv_1, &page->flags); } static inline __attribute__\ .... ((no_instrument_function)) int TestClearPageOwnerPriv1(struct page *page) { return test_and_clear_bit(PG_owner_priv_1\ .... , &page->flags); } ....[ 228]: static inline __attribute__((no_instrument_function)) int PageWriteback(const struct page *page) { return (__builtin_constant_p\ .... ((PG_writeback)) ? constant_test_bit((PG_writeback), (&page->flags)) : variable_test_bit((PG_writeback), (\ .... &page->flags))); } static inline __attribute__((no_instrument_function)) int TestSetPageWriteback(struct page \ .... *page) { return test_and_set_bit(PG_writeback, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int TestClearPageWriteback(struct page *page) { return test_and_clear_bit(PG_writeback, &page->flags); } ....[ 229]: static inline __attribute__((no_instrument_function)) int PageMappedToDisk(const struct page *page) { return (\ .... __builtin_constant_p((PG_mappedtodisk)) ? constant_test_bit((PG_mappedtodisk), (&page->flags)) : variable_test_bit\ .... ((PG_mappedtodisk), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageMappedToDisk\ .... (struct page *page) { set_bit(PG_mappedtodisk, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) void ClearPageMappedToDisk(struct page *page) { clear_bit(PG_mappedtodisk, &page->flags); } ....[ 232]: static inline __attribute__((no_instrument_function)) int PageReclaim(const struct page *page) { return (__builtin_constant_p\ .... ((PG_reclaim)) ? constant_test_bit((PG_reclaim), (&page->flags)) : variable_test_bit((PG_reclaim), (&page->\ .... flags))); } static inline __attribute__((no_instrument_function)) void SetPageReclaim(struct page *page) { set_bit\ .... (PG_reclaim, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageReclaim(struct \ .... page *page) { clear_bit(PG_reclaim, &page->flags); } static inline __attribute__((no_instrument_function)) int \ .... TestClearPageReclaim(struct page *page) { return test_and_clear_bit(PG_reclaim, &page->flags); } ....[ 233]: static inline __attribute__((no_instrument_function)) int PageReadahead(const struct page *page) { return (__builtin_constant_p\ .... ((PG_reclaim)) ? constant_test_bit((PG_reclaim), (&page->flags)) : variable_test_bit((PG_reclaim), (&page->\ .... flags))); } static inline __attribute__((no_instrument_function)) void SetPageReadahead(struct page *page) { set_bit\ .... (PG_reclaim, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageReadahead\ .... (struct page *page) { clear_bit(PG_reclaim, &page->flags); } ....[ 242]: static inline __attribute__((no_instrument_function)) int PageHighMem(const struct page *page) { return 0; } ....[ 246]: static inline __attribute__((no_instrument_function)) int PageSwapCache(const struct page *page) { return (__builtin_constant_p\ .... ((PG_swapcache)) ? constant_test_bit((PG_swapcache), (&page->flags)) : variable_test_bit((PG_swapcache), (\ .... &page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageSwapCache(struct page *\ .... page) { set_bit(PG_swapcache, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageSwapCache\ .... (struct page *page) { clear_bit(PG_swapcache, &page->flags); } ....[ 252]: static inline __attribute__((no_instrument_function)) int PageUnevictable(const struct page *page) { return (__builtin_constant_p\ .... ((PG_unevictable)) ? constant_test_bit((PG_unevictable), (&page->flags)) : variable_test_bit((PG_unevictable\ .... ), (&page->flags))); } static inline __attribute__((no_instrument_function)) void SetPageUnevictable(struct \ .... page *page) { set_bit(PG_unevictable, &page->flags); } static inline __attribute__((no_instrument_function)) \ .... void ClearPageUnevictable(struct page *page) { clear_bit(PG_unevictable, &page->flags); } static inline __attribute__\ .... ((no_instrument_function)) void __ClearPageUnevictable(struct page *page) { __clear_bit(PG_unevictable, &page\ .... ->flags); } ....[ 253]: static inline __attribute__((no_instrument_function)) int TestClearPageUnevictable(struct page *page) { return \ .... test_and_clear_bit(PG_unevictable, &page->flags); } ....[ 256]: static inline __attribute__((no_instrument_function)) int PageMlocked(const struct page *page) { return (__builtin_constant_p\ .... ((PG_mlocked)) ? constant_test_bit((PG_mlocked), (&page->flags)) : variable_test_bit((PG_mlocked), (&page->\ .... flags))); } static inline __attribute__((no_instrument_function)) void SetPageMlocked(struct page *page) { set_bit\ .... (PG_mlocked, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageMlocked(struct \ .... page *page) { clear_bit(PG_mlocked, &page->flags); } static inline __attribute__((no_instrument_function)) void \ .... __ClearPageMlocked(struct page *page) { __clear_bit(PG_mlocked, &page->flags); } ....[ 257]: static inline __attribute__((no_instrument_function)) int TestSetPageMlocked(struct page *page) { return test_and_set_bit\ .... (PG_mlocked, &page->flags); } static inline __attribute__((no_instrument_function)) int TestClearPageMlocked\ .... (struct page *page) { return test_and_clear_bit(PG_mlocked, &page->flags); } static inline __attribute__((no_instrument_function\ .... )) int __TestClearPageMlocked(struct page *page) { return __test_and_clear_bit(PG_mlocked, &page->flags); } ....[ 264]: static inline __attribute__((no_instrument_function)) int PageUncached(const struct page *page) { return (__builtin_constant_p\ .... ((PG_uncached)) ? constant_test_bit((PG_uncached), (&page->flags)) : variable_test_bit((PG_uncached), (&page\ .... ->flags))); } static inline __attribute__((no_instrument_function)) void SetPageUncached(struct page *page) { \ .... set_bit(PG_uncached, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageUncached\ .... (struct page *page) { clear_bit(PG_uncached, &page->flags); } ....[ 270]: static inline __attribute__((no_instrument_function)) int PageHWPoison(const struct page *page) { return (__builtin_constant_p\ .... ((PG_hwpoison)) ? constant_test_bit((PG_hwpoison), (&page->flags)) : variable_test_bit((PG_hwpoison), (&page\ .... ->flags))); } static inline __attribute__((no_instrument_function)) void SetPageHWPoison(struct page *page) { \ .... set_bit(PG_hwpoison, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageHWPoison\ .... (struct page *page) { clear_bit(PG_hwpoison, &page->flags); } ....[ 271]: static inline __attribute__((no_instrument_function)) int TestSetPageHWPoison(struct page *page) { return test_and_set_bit\ .... (PG_hwpoison, &page->flags); } static inline __attribute__((no_instrument_function)) int TestClearPageHWPoison\ .... (struct page *page) { return test_and_clear_bit(PG_hwpoison, &page->flags); } ....[ 278]: u64 stable_page_flags(struct page *page); ....[ 280]: static inline __attribute__((no_instrument_function)) int PageUptodate(struct page *page) ....[ 281]: { ....[ 282]: int ret = (__builtin_constant_p((PG_uptodate)) ? constant_test_bit((PG_uptodate), (&(page)->flags)) : variable_test_bit\ .... ((PG_uptodate), (&(page)->flags))); ....[ 292]: if (ret) ....[ 293]: __asm__ __volatile__("": : :"memory"); ....[ 295]: return ret; ....[ 296]: } ....[ 298]: static inline __attribute__((no_instrument_function)) void __SetPageUptodate(struct page *page) ....[ 299]: { ....[ 300]: __asm__ __volatile__("": : :"memory"); ....[ 301]: __set_bit(PG_uptodate, &(page)->flags); ....[ 302]: } ....[ 304]: static inline __attribute__((no_instrument_function)) void SetPageUptodate(struct page *page) ....[ 305]: { ....[ 311]: __asm__ __volatile__("": : :"memory"); ....[ 312]: set_bit(PG_uptodate, &(page)->flags); ....[ 313]: } ....[ 315]: static inline __attribute__((no_instrument_function)) void ClearPageUptodate(struct page *page) { clear_bit(\ .... PG_uptodate, &page->flags); } ....[ 317]: extern void cancel_dirty_page(struct page *page, unsigned int account_size); ....[ 319]: int test_clear_page_writeback(struct page *page); ....[ 320]: int test_set_page_writeback(struct page *page); ....[ 322]: static inline __attribute__((no_instrument_function)) void set_page_writeback(struct page *page) ....[ 323]: { ....[ 324]: test_set_page_writeback(page); ....[ 325]: } ....[ 336]: static inline __attribute__((no_instrument_function)) int PageHead(const struct page *page) { return (__builtin_constant_p\ .... ((PG_head)) ? constant_test_bit((PG_head), (&page->flags)) : variable_test_bit((PG_head), (&page->flags)))\ .... ; } static inline __attribute__((no_instrument_function)) void __SetPageHead(struct page *page) { __set_bit(PG_head\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void __ClearPageHead(struct page *page\ .... ) { __clear_bit(PG_head, &page->flags); } static inline __attribute__((no_instrument_function)) void ClearPageHead\ .... (struct page *page) { clear_bit(PG_head, &page->flags); } ....[ 337]: static inline __attribute__((no_instrument_function)) int PageTail(const struct page *page) { return (__builtin_constant_p\ .... ((PG_tail)) ? constant_test_bit((PG_tail), (&page->flags)) : variable_test_bit((PG_tail), (&page->flags)))\ .... ; } static inline __attribute__((no_instrument_function)) void __SetPageTail(struct page *page) { __set_bit(PG_tail\ .... , &page->flags); } static inline __attribute__((no_instrument_function)) void __ClearPageTail(struct page *page\ .... ) { __clear_bit(PG_tail, &page->flags); } ....[ 339]: static inline __attribute__((no_instrument_function)) int PageCompound(struct page *page) ....[ 340]: { ....[ 341]: return page->flags & ((1L << PG_head) | (1L << PG_tail)); ....[ 343]: } ....[ 441]: static inline __attribute__((no_instrument_function)) int PageTransHuge(struct page *page) ....[ 442]: { ....[ 443]: return 0; ....[ 444]: } ....[ 446]: static inline __attribute__((no_instrument_function)) int PageTransCompound(struct page *page) ....[ 447]: { ....[ 448]: return 0; ....[ 449]: } ....[ 451]: static inline __attribute__((no_instrument_function)) int PageTransTail(struct page *page) ....[ 452]: { ....[ 453]: return 0; ....[ 454]: } ....[ 461]: static inline __attribute__((no_instrument_function)) int PageSlabPfmemalloc(struct page *page) ....[ 462]: { ....[ 463]: ((void)(sizeof(( long)(!PageSlab(page))))); ....[ 464]: return PageActive(page); ....[ 465]: } ....[ 467]: static inline __attribute__((no_instrument_function)) void SetPageSlabPfmemalloc(struct page *page) ....[ 468]: { ....[ 469]: ((void)(sizeof(( long)(!PageSlab(page))))); ....[ 470]: SetPageActive(page); ....[ 471]: } ....[ 473]: static inline __attribute__((no_instrument_function)) void __ClearPageSlabPfmemalloc(struct page *page) ....[ 474]: { ....[ 475]: ((void)(sizeof(( long)(!PageSlab(page))))); ....[ 476]: __ClearPageActive(page); ....[ 477]: } ....[ 479]: static inline __attribute__((no_instrument_function)) void ClearPageSlabPfmemalloc(struct page *page) ....[ 480]: { ....[ 481]: ((void)(sizeof(( long)(!PageSlab(page))))); ....[ 482]: ClearPageActive(page); ....[ 483]: } ....[ 525]: static inline __attribute__((no_instrument_function)) int page_has_private(struct page *page) ....[ 526]: { ....[ 527]: return !!(page->flags & (1 << PG_private | 1 << PG_private_2)); ....[ 528]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/page-flags.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swap.h ...[ 16]: struct notifier_block; ...[ 18]: struct bio; ...[ 31]: static inline __attribute__((no_instrument_function)) int current_is_kswapd(void) ...[ 32]: { ...[ 33]: return get_current()->flags & 0x00040000; ...[ 34]: } ...[ 88]: union swap_header { ...[ 89]: struct { ...[ 90]: char reserved[((1UL) << 12) - 10]; ...[ 91]: char magic[10]; ...[ 92]: } magic; ...[ 93]: struct { ...[ 94]: char bootbits[1024]; ...[ 95]: __u32 version; ...[ 96]: __u32 last_page; ...[ 97]: __u32 nr_badpages; ...[ 98]: unsigned char sws_uuid[16]; ...[ 99]: unsigned char sws_volume[16]; ...[ 100]: __u32 padding[117]; ...[ 101]: __u32 badpages[1]; ...[ 102]: } info; ...[ 103]: }; ...[ 109]: typedef struct { ...[ 110]: unsigned long val; ...[ 111]: } swp_entry_t; ...[ 117]: struct reclaim_state { ...[ 118]: unsigned long reclaimed_slab; ...[ 119]: }; ...[ 123]: struct address_space; ...[ 124]: struct sysinfo; ...[ 125]: struct writeback_control; ...[ 126]: struct zone; ...[ 136]: struct swap_extent { ...[ 137]: struct list_head list; ...[ 138]: unsigned long start_page; ...[ 139]: unsigned long nr_pages; ...[ 140]: sector_t start_block; ...[ 141]: }; ...[ 150]: enum { ...[ 151]: SWP_USED = (1 << 0), ...[ 152]: SWP_WRITEOK = (1 << 1), ...[ 153]: SWP_DISCARDABLE = (1 << 2), ...[ 154]: SWP_DISCARDING = (1 << 3), ...[ 155]: SWP_SOLIDSTATE = (1 << 4), ...[ 156]: SWP_CONTINUED = (1 << 5), ...[ 157]: SWP_BLKDEV = (1 << 6), ...[ 158]: SWP_FILE = (1 << 7), ...[ 159]: SWP_AREA_DISCARD = (1 << 8), ...[ 160]: SWP_PAGE_DISCARD = (1 << 9), ...[ 162]: SWP_SCANNING = (1 << 10), ...[ 163]: }; ...[ 194]: struct swap_cluster_info { ...[ 195]: unsigned int data:24; ...[ 196]: unsigned int flags:8; ...[ 197]: }; ...[ 206]: struct percpu_cluster { ...[ 207]: struct swap_cluster_info index; ...[ 208]: unsigned int next; ...[ 209]: }; ...[ 214]: struct swap_info_struct { ...[ 215]: unsigned long flags; ...[ 216]: signed short prio; ...[ 217]: signed char type; ...[ 218]: signed char next; ...[ 219]: unsigned int max; ...[ 220]: unsigned char *swap_map; ...[ 221]: struct swap_cluster_info *cluster_info; ...[ 222]: struct swap_cluster_info free_cluster_head; ...[ 223]: struct swap_cluster_info free_cluster_tail; ...[ 224]: unsigned int lowest_bit; ...[ 225]: unsigned int highest_bit; ...[ 226]: unsigned int pages; ...[ 227]: unsigned int inuse_pages; ...[ 228]: unsigned int cluster_next; ...[ 229]: unsigned int cluster_nr; ...[ 230]: struct percpu_cluster *percpu_cluster; ...[ 231]: struct swap_extent *curr_swap_extent; ...[ 232]: struct swap_extent first_swap_extent; ...[ 233]: struct block_device *bdev; ...[ 234]: struct file *swap_file; ...[ 235]: unsigned int old_block_size; ...[ 240]: spinlock_t lock; ...[ 253]: struct work_struct discard_work; ...[ 254]: struct swap_cluster_info discard_cluster_head; ...[ 255]: struct swap_cluster_info discard_cluster_tail; ...[ 256]: }; ...[ 258]: struct swap_list_t { ...[ 259]: int head; ...[ 260]: int next; ...[ 261]: }; ...[ 264]: extern unsigned long totalram_pages; ...[ 265]: extern unsigned long totalreserve_pages; ...[ 266]: extern unsigned long dirty_balance_reserve; ...[ 267]: extern unsigned long nr_free_buffer_pages(void); ...[ 268]: extern unsigned long nr_free_pagecache_pages(void); ...[ 275]: extern void __lru_cache_add(struct page *); ...[ 276]: extern void lru_cache_add(struct page *); ...[ 277]: extern void lru_add_page_tail(struct page *page, struct page *page_tail, ...[ 278]: struct lruvec *lruvec, struct list_head *head); ...[ 279]: extern void activate_page(struct page *); ...[ 280]: extern void mark_page_accessed(struct page *); ...[ 281]: extern void lru_add_drain(void); ...[ 282]: extern void lru_add_drain_cpu(int cpu); ...[ 283]: extern void lru_add_drain_all(void); ...[ 284]: extern void rotate_reclaimable_page(struct page *page); ...[ 285]: extern void deactivate_page(struct page *page); ...[ 286]: extern void swap_setup(void); ...[ 288]: extern void add_page_to_unevictable_list(struct page *page); ...[ 294]: static inline __attribute__((no_instrument_function)) void lru_cache_add_anon(struct page *page) ...[ 295]: { ...[ 296]: ClearPageActive(page); ...[ 297]: __lru_cache_add(page); ...[ 298]: } ...[ 300]: static inline __attribute__((no_instrument_function)) void lru_cache_add_file(struct page *page) ...[ 301]: { ...[ 302]: ClearPageActive(page); ...[ 303]: __lru_cache_add(page); ...[ 304]: } ...[ 307]: extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, ...[ 308]: gfp_t gfp_mask, nodemask_t *mask); ...[ 309]: extern int __isolate_lru_page(struct page *page, isolate_mode_t mode); ...[ 310]: extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem, ...[ 311]: gfp_t gfp_mask, bool noswap); ...[ 312]: extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, ...[ 313]: gfp_t gfp_mask, bool noswap, ...[ 314]: struct zone *zone, ...[ 315]: unsigned long *nr_scanned); ...[ 316]: extern unsigned long shrink_all_memory(unsigned long nr_pages); ...[ 317]: extern int vm_swappiness; ...[ 318]: extern int remove_mapping(struct address_space *mapping, struct page *page); ...[ 319]: extern unsigned long vm_total_pages; ...[ 322]: extern int zone_reclaim_mode; ...[ 323]: extern int sysctl_min_unmapped_ratio; ...[ 324]: extern int sysctl_min_slab_ratio; ...[ 325]: extern int zone_reclaim(struct zone *, gfp_t, unsigned int); ...[ 334]: extern int page_evictable(struct page *page); ...[ 335]: extern void check_move_unevictable_pages(struct page **, int nr_pages); ...[ 337]: extern unsigned long scan_unevictable_pages; ...[ 338]: extern int scan_unevictable_handler(struct ctl_table *, int, ...[ 339]: void *, size_t *, loff_t *); ...[ 341]: extern int scan_unevictable_register_node(struct node *node); ...[ 342]: extern void scan_unevictable_unregister_node(struct node *node); ...[ 353]: extern int kswapd_run(int nid); ...[ 354]: extern void kswapd_stop(int nid); ...[ 358]: static inline __attribute__((no_instrument_function)) int mem_cgroup_swappiness(struct mem_cgroup *mem) ...[ 359]: { ...[ 360]: return vm_swappiness; ...[ 361]: } ...[ 366]: static inline __attribute__((no_instrument_function)) void mem_cgroup_uncharge_swap(swp_entry_t ent) ...[ 367]: { ...[ 368]: } ...[ 372]: extern int swap_readpage(struct page *); ...[ 373]: extern int swap_writepage(struct page *page, struct writeback_control *wbc); ...[ 374]: extern void end_swap_bio_write(struct bio *bio, int err); ...[ 375]: extern int __swap_writepage(struct page *page, struct writeback_control *wbc, ...[ 376]: void (*end_write_func)(struct bio *, int)); ...[ 377]: extern int swap_set_page_dirty(struct page *page); ...[ 378]: extern void end_swap_bio_read(struct bio *bio, int err); ...[ 380]: int add_swap_extent(struct swap_info_struct *sis, unsigned long start_page, ...[ 381]: unsigned long nr_pages, sector_t start_block); ...[ 382]: int generic_swapfile_activate(struct swap_info_struct *, struct file *, ...[ 383]: sector_t *); ...[ 386]: extern struct address_space swapper_spaces[]; ...[ 388]: extern unsigned long total_swapcache_pages(void); ...[ 389]: extern void show_swap_cache_info(void); ...[ 390]: extern int add_to_swap(struct page *, struct list_head *list); ...[ 391]: extern int add_to_swap_cache(struct page *, swp_entry_t, gfp_t); ...[ 392]: extern int __add_to_swap_cache(struct page *page, swp_entry_t entry); ...[ 393]: extern void __delete_from_swap_cache(struct page *); ...[ 394]: extern void delete_from_swap_cache(struct page *); ...[ 395]: extern void free_page_and_swap_cache(struct page *); ...[ 396]: extern void free_pages_and_swap_cache(struct page **, int); ...[ 397]: extern struct page *lookup_swap_cache(swp_entry_t); ...[ 398]: extern struct page *read_swap_cache_async(swp_entry_t, gfp_t, ...[ 399]: struct vm_area_struct *vma, unsigned long addr); ...[ 400]: extern struct page *swapin_readahead(swp_entry_t, gfp_t, ...[ 401]: struct vm_area_struct *vma, unsigned long addr); ...[ 404]: extern atomic_long_t nr_swap_pages; ...[ 405]: extern long total_swap_pages; ...[ 408]: static inline __attribute__((no_instrument_function)) bool vm_swap_full(void) ...[ 409]: { ...[ 410]: return atomic_long_read(&nr_swap_pages) * 2 < total_swap_pages; ...[ 411]: } ...[ 413]: static inline __attribute__((no_instrument_function)) long get_nr_swap_pages(void) ...[ 414]: { ...[ 415]: return atomic_long_read(&nr_swap_pages); ...[ 416]: } ...[ 418]: extern void si_swapinfo(struct sysinfo *); ...[ 419]: extern swp_entry_t get_swap_page(void); ...[ 420]: extern swp_entry_t get_swap_page_of_type(int); ...[ 421]: extern int add_swap_count_continuation(swp_entry_t, gfp_t); ...[ 422]: extern void swap_shmem_alloc(swp_entry_t); ...[ 423]: extern int swap_duplicate(swp_entry_t); ...[ 424]: extern int swapcache_prepare(swp_entry_t); ...[ 425]: extern void swap_free(swp_entry_t); ...[ 426]: extern void swapcache_free(swp_entry_t, struct page *page); ...[ 427]: extern int free_swap_and_cache(swp_entry_t); ...[ 428]: extern int swap_type_of(dev_t, sector_t, struct block_device **); ...[ 429]: extern unsigned int count_swap_pages(int, int); ...[ 430]: extern sector_t map_swap_page(struct page *, struct block_device **); ...[ 431]: extern sector_t swapdev_block(int, unsigned long); ...[ 432]: extern int page_swapcount(struct page *); ...[ 433]: extern struct swap_info_struct *page_swap_info(struct page *); ...[ 434]: extern int reuse_swap_page(struct page *); ...[ 435]: extern int try_to_free_swap(struct page *); ...[ 436]: struct backing_dev_info; ...[ 442]: static inline __attribute__((no_instrument_function)) void ...[ 443]: mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout) ...[ 444]: { ...[ 445]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/swap.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debug_locks.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debug_locks.h ....[ 8]: struct task_struct; ....[ 10]: extern int debug_locks; ....[ 11]: extern int debug_locks_silent; ....[ 14]: static inline __attribute__((no_instrument_function)) int __debug_locks_off(void) ....[ 15]: { ....[ 16]: return ({ __typeof__ (*((&debug_locks))) __ret = ((0)); switch (sizeof(*((&debug_locks)))) { case 1: asm volatile \ .... ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&debug_locks))) : : "memory", "cc"); break; case 2: asm volatile ("" \ .... "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&debug_locks))) : : "memory", "cc"); break; case 4: asm volatile ("" "xchg" \ .... "l %0, %1\n" : "+r" (__ret), "+m" (*((&debug_locks))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" "q %q0, %1\n" \ .... : "+r" (__ret), "+m" (*((&debug_locks))) : : "memory", "cc"); break; default: __xchg_wrong_size(); } __ret; }); ....[ 17]: } ....[ 22]: extern int debug_locks_off(void); ....[ 48]: struct task_struct; ....[ 56]: static inline __attribute__((no_instrument_function)) void debug_show_all_locks(void) ....[ 57]: { ....[ 58]: } ....[ 60]: static inline __attribute__((no_instrument_function)) void debug_show_held_locks(struct task_struct *task) ....[ 61]: { ....[ 62]: } ....[ 64]: static inline __attribute__((no_instrument_function)) void ....[ 65]: debug_check_no_locks_freed(const void *from, unsigned long len) ....[ 66]: { ....[ 67]: } ....[ 69]: static inline __attribute__((no_instrument_function)) void ....[ 70]: debug_check_no_locks_held(void) ....[ 71]: { ....[ 72]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/debug_locks.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...[ 21]: struct mempolicy; ...[ 22]: struct anon_vma; ...[ 23]: struct anon_vma_chain; ...[ 24]: struct file_ra_state; ...[ 25]: struct user_struct; ...[ 26]: struct writeback_control; ...[ 36]: static inline __attribute__((no_instrument_function)) void set_max_mapnr(unsigned long limit) { } ...[ 39]: extern unsigned long totalram_pages; ...[ 40]: extern void * high_memory; ...[ 41]: extern int page_cluster; ...[ 44]: extern int sysctl_legacy_va_layout; ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable.h ....[ 25]: extern unsigned long empty_zero_page[((1UL) << 12) / sizeof(unsigned long)] ....[ 26]: ; ....[ 29]: extern spinlock_t pgd_lock; ....[ 30]: extern struct list_head pgd_list; ....[ 32]: extern struct mm_struct *pgd_page_get_mm(struct page *page); ....[ 91]: static inline __attribute__((no_instrument_function)) int pte_dirty(pte_t pte) ....[ 92]: { ....[ 93]: return pte_flags(pte) & (((pteval_t)(1)) << 6); ....[ 94]: } ....[ 96]: static inline __attribute__((no_instrument_function)) int pte_young(pte_t pte) ....[ 97]: { ....[ 98]: return pte_flags(pte) & (((pteval_t)(1)) << 5); ....[ 99]: } ....[ 101]: static inline __attribute__((no_instrument_function)) int pmd_young(pmd_t pmd) ....[ 102]: { ....[ 103]: return pmd_flags(pmd) & (((pteval_t)(1)) << 5); ....[ 104]: } ....[ 106]: static inline __attribute__((no_instrument_function)) int pte_write(pte_t pte) ....[ 107]: { ....[ 108]: return pte_flags(pte) & (((pteval_t)(1)) << 1); ....[ 109]: } ....[ 111]: static inline __attribute__((no_instrument_function)) int pte_file(pte_t pte) ....[ 112]: { ....[ 113]: return pte_flags(pte) & (((pteval_t)(1)) << 6); ....[ 114]: } ....[ 116]: static inline __attribute__((no_instrument_function)) int pte_huge(pte_t pte) ....[ 117]: { ....[ 118]: return pte_flags(pte) & (((pteval_t)(1)) << 7); ....[ 119]: } ....[ 121]: static inline __attribute__((no_instrument_function)) int pte_global(pte_t pte) ....[ 122]: { ....[ 123]: return pte_flags(pte) & (((pteval_t)(1)) << 8); ....[ 124]: } ....[ 126]: static inline __attribute__((no_instrument_function)) int pte_exec(pte_t pte) ....[ 127]: { ....[ 128]: return !(pte_flags(pte) & (((pteval_t)(1)) << 63)); ....[ 129]: } ....[ 131]: static inline __attribute__((no_instrument_function)) int pte_special(pte_t pte) ....[ 132]: { ....[ 133]: return pte_flags(pte) & (((pteval_t)(1)) << 9); ....[ 134]: } ....[ 136]: static inline __attribute__((no_instrument_function)) unsigned long pte_pfn(pte_t pte) ....[ 137]: { ....[ 138]: return (native_pte_val(pte) & ((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)\ .... )))) >> 12; ....[ 139]: } ....[ 141]: static inline __attribute__((no_instrument_function)) unsigned long pmd_pfn(pmd_t pmd) ....[ 142]: { ....[ 143]: return (native_pmd_val(pmd) & ((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)\ .... )))) >> 12; ....[ 144]: } ....[ 146]: static inline __attribute__((no_instrument_function)) unsigned long pud_pfn(pud_t pud) ....[ 147]: { ....[ 148]: return (native_pud_val(pud) & ((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)\ .... )))) >> 12; ....[ 149]: } ....[ 153]: static inline __attribute__((no_instrument_function)) int pmd_large(pmd_t pte) ....[ 154]: { ....[ 155]: return pmd_flags(pte) & (((pteval_t)(1)) << 7); ....[ 156]: } ....[ 175]: static inline __attribute__((no_instrument_function)) pte_t pte_set_flags(pte_t pte, pteval_t set) ....[ 176]: { ....[ 177]: pteval_t v = native_pte_val(pte); ....[ 179]: return native_make_pte(v | set); ....[ 180]: } ....[ 182]: static inline __attribute__((no_instrument_function)) pte_t pte_clear_flags(pte_t pte, pteval_t clear) ....[ 183]: { ....[ 184]: pteval_t v = native_pte_val(pte); ....[ 186]: return native_make_pte(v & ~clear); ....[ 187]: } ....[ 189]: static inline __attribute__((no_instrument_function)) pte_t pte_mkclean(pte_t pte) ....[ 190]: { ....[ 191]: return pte_clear_flags(pte, (((pteval_t)(1)) << 6)); ....[ 192]: } ....[ 194]: static inline __attribute__((no_instrument_function)) pte_t pte_mkold(pte_t pte) ....[ 195]: { ....[ 196]: return pte_clear_flags(pte, (((pteval_t)(1)) << 5)); ....[ 197]: } ....[ 199]: static inline __attribute__((no_instrument_function)) pte_t pte_wrprotect(pte_t pte) ....[ 200]: { ....[ 201]: return pte_clear_flags(pte, (((pteval_t)(1)) << 1)); ....[ 202]: } ....[ 204]: static inline __attribute__((no_instrument_function)) pte_t pte_mkexec(pte_t pte) ....[ 205]: { ....[ 206]: return pte_clear_flags(pte, (((pteval_t)(1)) << 63)); ....[ 207]: } ....[ 209]: static inline __attribute__((no_instrument_function)) pte_t pte_mkdirty(pte_t pte) ....[ 210]: { ....[ 211]: return pte_set_flags(pte, (((pteval_t)(1)) << 6) | (((pteval_t)(0)))); ....[ 212]: } ....[ 214]: static inline __attribute__((no_instrument_function)) pte_t pte_mkyoung(pte_t pte) ....[ 215]: { ....[ 216]: return pte_set_flags(pte, (((pteval_t)(1)) << 5)); ....[ 217]: } ....[ 219]: static inline __attribute__((no_instrument_function)) pte_t pte_mkwrite(pte_t pte) ....[ 220]: { ....[ 221]: return pte_set_flags(pte, (((pteval_t)(1)) << 1)); ....[ 222]: } ....[ 224]: static inline __attribute__((no_instrument_function)) pte_t pte_mkhuge(pte_t pte) ....[ 225]: { ....[ 226]: return pte_set_flags(pte, (((pteval_t)(1)) << 7)); ....[ 227]: } ....[ 229]: static inline __attribute__((no_instrument_function)) pte_t pte_clrhuge(pte_t pte) ....[ 230]: { ....[ 231]: return pte_clear_flags(pte, (((pteval_t)(1)) << 7)); ....[ 232]: } ....[ 234]: static inline __attribute__((no_instrument_function)) pte_t pte_mkglobal(pte_t pte) ....[ 235]: { ....[ 236]: return pte_set_flags(pte, (((pteval_t)(1)) << 8)); ....[ 237]: } ....[ 239]: static inline __attribute__((no_instrument_function)) pte_t pte_clrglobal(pte_t pte) ....[ 240]: { ....[ 241]: return pte_clear_flags(pte, (((pteval_t)(1)) << 8)); ....[ 242]: } ....[ 244]: static inline __attribute__((no_instrument_function)) pte_t pte_mkspecial(pte_t pte) ....[ 245]: { ....[ 246]: return pte_set_flags(pte, (((pteval_t)(1)) << 9)); ....[ 247]: } ....[ 249]: static inline __attribute__((no_instrument_function)) pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set) ....[ 250]: { ....[ 251]: pmdval_t v = native_pmd_val(pmd); ....[ 253]: return native_make_pmd(v | set); ....[ 254]: } ....[ 256]: static inline __attribute__((no_instrument_function)) pmd_t pmd_clear_flags(pmd_t pmd, pmdval_t clear) ....[ 257]: { ....[ 258]: pmdval_t v = native_pmd_val(pmd); ....[ 260]: return native_make_pmd(v & ~clear); ....[ 261]: } ....[ 263]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mkold(pmd_t pmd) ....[ 264]: { ....[ 265]: return pmd_clear_flags(pmd, (((pteval_t)(1)) << 5)); ....[ 266]: } ....[ 268]: static inline __attribute__((no_instrument_function)) pmd_t pmd_wrprotect(pmd_t pmd) ....[ 269]: { ....[ 270]: return pmd_clear_flags(pmd, (((pteval_t)(1)) << 1)); ....[ 271]: } ....[ 273]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mkdirty(pmd_t pmd) ....[ 274]: { ....[ 275]: return pmd_set_flags(pmd, (((pteval_t)(1)) << 6) | (((pteval_t)(0)))); ....[ 276]: } ....[ 278]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mkhuge(pmd_t pmd) ....[ 279]: { ....[ 280]: return pmd_set_flags(pmd, (((pteval_t)(1)) << 7)); ....[ 281]: } ....[ 283]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mkyoung(pmd_t pmd) ....[ 284]: { ....[ 285]: return pmd_set_flags(pmd, (((pteval_t)(1)) << 5)); ....[ 286]: } ....[ 288]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mkwrite(pmd_t pmd) ....[ 289]: { ....[ 290]: return pmd_set_flags(pmd, (((pteval_t)(1)) << 1)); ....[ 291]: } ....[ 293]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mknotpresent(pmd_t pmd) ....[ 294]: { ....[ 295]: return pmd_clear_flags(pmd, (((pteval_t)(1)) << 0)); ....[ 296]: } ....[ 298]: static inline __attribute__((no_instrument_function)) int pte_soft_dirty(pte_t pte) ....[ 299]: { ....[ 300]: return pte_flags(pte) & (((pteval_t)(0))); ....[ 301]: } ....[ 303]: static inline __attribute__((no_instrument_function)) int pmd_soft_dirty(pmd_t pmd) ....[ 304]: { ....[ 305]: return pmd_flags(pmd) & (((pteval_t)(0))); ....[ 306]: } ....[ 308]: static inline __attribute__((no_instrument_function)) pte_t pte_mksoft_dirty(pte_t pte) ....[ 309]: { ....[ 310]: return pte_set_flags(pte, (((pteval_t)(0)))); ....[ 311]: } ....[ 313]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mksoft_dirty(pmd_t pmd) ....[ 314]: { ....[ 315]: return pmd_set_flags(pmd, (((pteval_t)(0)))); ....[ 316]: } ....[ 318]: static inline __attribute__((no_instrument_function)) pte_t pte_file_clear_soft_dirty(pte_t pte) ....[ 319]: { ....[ 320]: return pte_clear_flags(pte, (((pteval_t)(0)))); ....[ 321]: } ....[ 323]: static inline __attribute__((no_instrument_function)) pte_t pte_file_mksoft_dirty(pte_t pte) ....[ 324]: { ....[ 325]: return pte_set_flags(pte, (((pteval_t)(0)))); ....[ 326]: } ....[ 328]: static inline __attribute__((no_instrument_function)) int pte_file_soft_dirty(pte_t pte) ....[ 329]: { ....[ 330]: return pte_flags(pte) & (((pteval_t)(0))); ....[ 331]: } ....[ 337]: static inline __attribute__((no_instrument_function)) pgprotval_t massage_pgprot(pgprot_t pgprot) ....[ 338]: { ....[ 339]: pgprotval_t protval = ((pgprot).pgprot); ....[ 341]: if (protval & (((pteval_t)(1)) << 0)) ....[ 342]: protval &= __supported_pte_mask; ....[ 344]: return protval; ....[ 345]: } ....[ 347]: static inline __attribute__((no_instrument_function)) pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) ....[ 348]: { ....[ 349]: return native_make_pte(((phys_addr_t)page_nr << 12) | massage_pgprot(pgprot)); ....[ 351]: } ....[ 353]: static inline __attribute__((no_instrument_function)) pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) ....[ 354]: { ....[ 355]: return native_make_pmd(((phys_addr_t)page_nr << 12) | massage_pgprot(pgprot)); ....[ 357]: } ....[ 359]: static inline __attribute__((no_instrument_function)) pte_t pte_modify(pte_t pte, pgprot_t newprot) ....[ 360]: { ....[ 361]: pteval_t val = native_pte_val(pte); ....[ 367]: val &= (((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)))) | (((pteval_t)(1)) << \ .... 4) | (((pteval_t)(1)) << 3) | (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << 5) | (((pteval_t)(1)) << 6)); ....[ 368]: val |= massage_pgprot(newprot) & ~(((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46\ .... ) - 1)))) | (((pteval_t)(1)) << 4) | (((pteval_t)(1)) << 3) | (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << 5) | (((pteval_t\ .... )(1)) << 6)); ....[ 370]: return native_make_pte(val); ....[ 371]: } ....[ 373]: static inline __attribute__((no_instrument_function)) pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) ....[ 374]: { ....[ 375]: pmdval_t val = native_pmd_val(pmd); ....[ 377]: val &= ((((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)))) | (((pteval_t)(1)) \ .... << 4) | (((pteval_t)(1)) << 3) | (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << 5) | (((pteval_t)(1)) << 6)) | (((pteval_t\ .... )(1)) << 7)); ....[ 378]: val |= massage_pgprot(newprot) & ~((((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46\ .... ) - 1)))) | (((pteval_t)(1)) << 4) | (((pteval_t)(1)) << 3) | (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << 5) | (((pteval_t\ .... )(1)) << 6)) | (((pteval_t)(1)) << 7)); ....[ 380]: return native_make_pmd(val); ....[ 381]: } ....[ 385]: static inline __attribute__((no_instrument_function)) pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot\ .... ) ....[ 386]: { ....[ 387]: pgprotval_t preservebits = ((oldprot).pgprot) & (((pteval_t)(((signed long)(~(((1UL) << 12)-1))) & ((phys_addr_t\ .... )((1ULL << 46) - 1)))) | (((pteval_t)(1)) << 4) | (((pteval_t)(1)) << 3) | (((pteval_t)(1)) << 9) | (((pteval_t)(1)) << \ .... 5) | (((pteval_t)(1)) << 6)); ....[ 388]: pgprotval_t addbits = ((newprot).pgprot); ....[ 389]: return ((pgprot_t) { (preservebits | addbits) } ); ....[ 390]: } ....[ 396]: static inline __attribute__((no_instrument_function)) int is_new_memtype_allowed(u64 paddr, unsigned long size\ .... , ....[ 397]: unsigned long flags, ....[ 398]: unsigned long new_flags) ....[ 399]: { ....[ 403]: if (x86_platform.is_untracked_pat_range(paddr, paddr + size)) ....[ 404]: return 1; ....[ 412]: if ((flags == ((((pteval_t)(1)) << 4)) && ....[ 413]: new_flags == (0)) || ....[ 414]: (flags == ((((pteval_t)(1)) << 3)) && ....[ 415]: new_flags == (0))) { ....[ 416]: return 0; ....[ 417]: } ....[ 419]: return 1; ....[ 420]: } ....[ 422]: pmd_t *populate_extra_pmd(unsigned long vaddr); ....[ 423]: pte_t *populate_extra_pte(unsigned long vaddr); ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64.h .....[ 17]: extern pud_t level3_kernel_pgt[512]; .....[ 18]: extern pud_t level3_ident_pgt[512]; .....[ 19]: extern pmd_t level2_kernel_pgt[512]; .....[ 20]: extern pmd_t level2_fixmap_pgt[512]; .....[ 21]: extern pmd_t level2_ident_pgt[512]; .....[ 22]: extern pgd_t init_level4_pgt[]; .....[ 26]: extern void paging_init(void); .....[ 41]: struct mm_struct; .....[ 43]: void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); .....[ 46]: static inline __attribute__((no_instrument_function)) void native_pte_clear(struct mm_struct *mm, unsigned long \ ..... addr, .....[ 47]: pte_t *ptep) .....[ 48]: { .....[ 49]: *ptep = native_make_pte(0); .....[ 50]: } .....[ 52]: static inline __attribute__((no_instrument_function)) void native_set_pte(pte_t *ptep, pte_t pte) .....[ 53]: { .....[ 54]: *ptep = pte; .....[ 55]: } .....[ 57]: static inline __attribute__((no_instrument_function)) void native_set_pte_atomic(pte_t *ptep, pte_t pte) .....[ 58]: { .....[ 59]: native_set_pte(ptep, pte); .....[ 60]: } .....[ 62]: static inline __attribute__((no_instrument_function)) void native_set_pmd(pmd_t *pmdp, pmd_t pmd) .....[ 63]: { .....[ 64]: *pmdp = pmd; .....[ 65]: } .....[ 67]: static inline __attribute__((no_instrument_function)) void native_pmd_clear(pmd_t *pmd) .....[ 68]: { .....[ 69]: native_set_pmd(pmd, native_make_pmd(0)); .....[ 70]: } .....[ 72]: static inline __attribute__((no_instrument_function)) pte_t native_ptep_get_and_clear(pte_t *xp) .....[ 73]: { .....[ 75]: return native_make_pte(({ __typeof__ (*((&xp->pte))) __ret = ((0)); switch (sizeof(*((&xp->pte)))) { case 1: asm \ ..... volatile ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&xp->pte))) : : "memory", "cc"); break; case 2: asm volatile \ ..... ("" "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&xp->pte))) : : "memory", "cc"); break; case 4: asm volatile ("" "xchg" \ ..... "l %0, %1\n" : "+r" (__ret), "+m" (*((&xp->pte))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" "q %q0, %1\n" \ ..... : "+r" (__ret), "+m" (*((&xp->pte))) : : "memory", "cc"); break; default: __xchg_wrong_size(); } __ret; })); .....[ 83]: } .....[ 85]: static inline __attribute__((no_instrument_function)) pmd_t native_pmdp_get_and_clear(pmd_t *xp) .....[ 86]: { .....[ 88]: return native_make_pmd(({ __typeof__ (*((&xp->pmd))) __ret = ((0)); switch (sizeof(*((&xp->pmd)))) { case 1: asm \ ..... volatile ("" "xchg" "b %b0, %1\n" : "+q" (__ret), "+m" (*((&xp->pmd))) : : "memory", "cc"); break; case 2: asm volatile \ ..... ("" "xchg" "w %w0, %1\n" : "+r" (__ret), "+m" (*((&xp->pmd))) : : "memory", "cc"); break; case 4: asm volatile ("" "xchg" \ ..... "l %0, %1\n" : "+r" (__ret), "+m" (*((&xp->pmd))) : : "memory", "cc"); break; case 8: asm volatile ("" "xchg" "q %q0, %1\n" \ ..... : "+r" (__ret), "+m" (*((&xp->pmd))) : : "memory", "cc"); break; default: __xchg_wrong_size(); } __ret; })); .....[ 96]: } .....[ 98]: static inline __attribute__((no_instrument_function)) void native_set_pud(pud_t *pudp, pud_t pud) .....[ 99]: { .....[ 100]: *pudp = pud; .....[ 101]: } .....[ 103]: static inline __attribute__((no_instrument_function)) void native_pud_clear(pud_t *pud) .....[ 104]: { .....[ 105]: native_set_pud(pud, native_make_pud(0)); .....[ 106]: } .....[ 108]: static inline __attribute__((no_instrument_function)) void native_set_pgd(pgd_t *pgdp, pgd_t pgd) .....[ 109]: { .....[ 110]: *pgdp = pgd; .....[ 111]: } .....[ 113]: static inline __attribute__((no_instrument_function)) void native_pgd_clear(pgd_t *pgd) .....[ 114]: { .....[ 115]: native_set_pgd(pgd, native_make_pgd(0)); .....[ 116]: } .....[ 118]: extern void sync_global_pgds(unsigned long start, unsigned long end); .....[ 128]: static inline __attribute__((no_instrument_function)) int pgd_large(pgd_t pgd) { return 0; } .....[ 165]: extern int kern_addr_valid(unsigned long addr); .....[ 166]: extern void cleanup_highmap(void); .....[ 185]: extern void init_extra_mapping_uc(unsigned long phys, unsigned long size); .....[ 186]: extern void init_extra_mapping_wb(unsigned long phys, unsigned long size); .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64.h ....# Back in FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable.h ....[ 437]: static inline __attribute__((no_instrument_function)) int pte_none(pte_t pte) ....[ 438]: { ....[ 439]: return !pte.pte; ....[ 440]: } ....[ 443]: static inline __attribute__((no_instrument_function)) int pte_same(pte_t a, pte_t b) ....[ 444]: { ....[ 445]: return a.pte == b.pte; ....[ 446]: } ....[ 448]: static inline __attribute__((no_instrument_function)) int pte_present(pte_t a) ....[ 449]: { ....[ 450]: return pte_flags(a) & ((((pteval_t)(1)) << 0) | (((pteval_t)(1)) << 8) | ....[ 451]: (((pteval_t)(1)) << 8)); ....[ 452]: } ....[ 455]: static inline __attribute__((no_instrument_function)) bool pte_accessible(struct mm_struct *mm, pte_t a) ....[ 456]: { ....[ 457]: if (pte_flags(a) & (((pteval_t)(1)) << 0)) ....[ 458]: return true; ....[ 460]: if ((pte_flags(a) & ((((pteval_t)(1)) << 8) | (((pteval_t)(1)) << 8))) && ....[ 461]: mm_tlb_flush_pending(mm)) ....[ 462]: return true; ....[ 464]: return false; ....[ 465]: } ....[ 467]: static inline __attribute__((no_instrument_function)) int pte_hidden(pte_t pte) ....[ 468]: { ....[ 469]: return pte_flags(pte) & (((pteval_t)(0))); ....[ 470]: } ....[ 472]: static inline __attribute__((no_instrument_function)) int pmd_present(pmd_t pmd) ....[ 473]: { ....[ 480]: return pmd_flags(pmd) & ((((pteval_t)(1)) << 0) | (((pteval_t)(1)) << 8) | (((pteval_t)(1)) << 7) | ....[ 481]: (((pteval_t)(1)) << 8)); ....[ 482]: } ....[ 484]: static inline __attribute__((no_instrument_function)) int pmd_none(pmd_t pmd) ....[ 485]: { ....[ 488]: return (unsigned long)native_pmd_val(pmd) == 0; ....[ 489]: } ....[ 491]: static inline __attribute__((no_instrument_function)) unsigned long pmd_page_vaddr(pmd_t pmd) ....[ 492]: { ....[ 493]: return (unsigned long)((void *)((unsigned long)(native_pmd_val(pmd) & ((pteval_t)(((signed long)(~(((1UL) << \ .... 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)))))+((unsigned long)(0xffff880000000000UL)))); ....[ 494]: } ....[ 508]: static inline __attribute__((no_instrument_function)) unsigned long pmd_index(unsigned long address) ....[ 509]: { ....[ 510]: return (address >> 21) & (512 - 1); ....[ 511]: } ....[ 528]: static inline __attribute__((no_instrument_function)) unsigned long pte_index(unsigned long address) ....[ 529]: { ....[ 530]: return (address >> 12) & (512 - 1); ....[ 531]: } ....[ 533]: static inline __attribute__((no_instrument_function)) pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address\ .... ) ....[ 534]: { ....[ 535]: return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address); ....[ 536]: } ....[ 538]: static inline __attribute__((no_instrument_function)) int pmd_bad(pmd_t pmd) ....[ 539]: { ....[ 545]: return (pmd_flags(pmd) & ~(((pteval_t)(1)) << 2)) != ((((pteval_t)(1)) << 0) | (((pteval_t)(1)) << 1) | (((pteval_t\ .... )(1)) << 5) | (((pteval_t)(1)) << 6)); ....[ 546]: } ....[ 548]: static inline __attribute__((no_instrument_function)) unsigned long pages_to_mb(unsigned long npg) ....[ 549]: { ....[ 550]: return npg >> (20 - 12); ....[ 551]: } ....[ 554]: static inline __attribute__((no_instrument_function)) int pud_none(pud_t pud) ....[ 555]: { ....[ 556]: return native_pud_val(pud) == 0; ....[ 557]: } ....[ 559]: static inline __attribute__((no_instrument_function)) int pud_present(pud_t pud) ....[ 560]: { ....[ 561]: return pud_flags(pud) & (((pteval_t)(1)) << 0); ....[ 562]: } ....[ 564]: static inline __attribute__((no_instrument_function)) unsigned long pud_page_vaddr(pud_t pud) ....[ 565]: { ....[ 566]: return (unsigned long)((void *)((unsigned long)((unsigned long)native_pud_val(pud) & ((pteval_t)(((signed long\ .... )(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)))))+((unsigned long)(0xffff880000000000UL)))); ....[ 567]: } ....[ 576]: static inline __attribute__((no_instrument_function)) pmd_t *pmd_offset(pud_t *pud, unsigned long address) ....[ 577]: { ....[ 578]: return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(address); ....[ 579]: } ....[ 581]: static inline __attribute__((no_instrument_function)) int pud_large(pud_t pud) ....[ 582]: { ....[ 583]: return (native_pud_val(pud) & ((((pteval_t)(1)) << 7) | (((pteval_t)(1)) << 0))) == ....[ 584]: ((((pteval_t)(1)) << 7) | (((pteval_t)(1)) << 0)); ....[ 585]: } ....[ 587]: static inline __attribute__((no_instrument_function)) int pud_bad(pud_t pud) ....[ 588]: { ....[ 589]: return (pud_flags(pud) & ~(((((pteval_t)(1)) << 0) | (((pteval_t)(1)) << 1) | (((pteval_t)(1)) << 5) | (((pteval_t)\ .... (1)) << 6)) | (((pteval_t)(1)) << 2))) != 0; ....[ 590]: } ....[ 599]: static inline __attribute__((no_instrument_function)) int pgd_present(pgd_t pgd) ....[ 600]: { ....[ 601]: return pgd_flags(pgd) & (((pteval_t)(1)) << 0); ....[ 602]: } ....[ 604]: static inline __attribute__((no_instrument_function)) unsigned long pgd_page_vaddr(pgd_t pgd) ....[ 605]: { ....[ 606]: return (unsigned long)((void *)((unsigned long)((unsigned long)native_pgd_val(pgd) & ((pteval_t)(((signed long\ .... )(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1)))))+((unsigned long)(0xffff880000000000UL)))); ....[ 607]: } ....[ 616]: static inline __attribute__((no_instrument_function)) unsigned long pud_index(unsigned long address) ....[ 617]: { ....[ 618]: return (address >> 30) & (512 - 1); ....[ 619]: } ....[ 621]: static inline __attribute__((no_instrument_function)) pud_t *pud_offset(pgd_t *pgd, unsigned long address) ....[ 622]: { ....[ 623]: return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address); ....[ 624]: } ....[ 626]: static inline __attribute__((no_instrument_function)) int pgd_bad(pgd_t pgd) ....[ 627]: { ....[ 628]: return (pgd_flags(pgd) & ~(((pteval_t)(1)) << 2)) != ((((pteval_t)(1)) << 0) | (((pteval_t)(1)) << 1) | (((pteval_t\ .... )(1)) << 5) | (((pteval_t)(1)) << 6)); ....[ 629]: } ....[ 631]: static inline __attribute__((no_instrument_function)) int pgd_none(pgd_t pgd) ....[ 632]: { ....[ 633]: return !native_pgd_val(pgd); ....[ 634]: } ....[ 664]: extern int direct_gbpages; ....[ 665]: void init_mem_mapping(void); ....[ 666]: void early_alloc_pgt_buf(void); ....[ 669]: static inline __attribute__((no_instrument_function)) pte_t native_local_ptep_get_and_clear(pte_t *ptep) ....[ 670]: { ....[ 671]: pte_t res = *ptep; ....[ 674]: native_pte_clear(((void *)0), 0, ptep); ....[ 675]: return res; ....[ 676]: } ....[ 678]: static inline __attribute__((no_instrument_function)) pmd_t native_local_pmdp_get_and_clear(pmd_t *pmdp) ....[ 679]: { ....[ 680]: pmd_t res = *pmdp; ....[ 682]: native_pmd_clear(pmdp); ....[ 683]: return res; ....[ 684]: } ....[ 686]: static inline __attribute__((no_instrument_function)) void native_set_pte_at(struct mm_struct *mm, unsigned \ .... long addr, ....[ 687]: pte_t *ptep , pte_t pte) ....[ 688]: { ....[ 689]: native_set_pte(ptep, pte); ....[ 690]: } ....[ 692]: static inline __attribute__((no_instrument_function)) void native_set_pmd_at(struct mm_struct *mm, unsigned \ .... long addr, ....[ 693]: pmd_t *pmdp , pmd_t pmd) ....[ 694]: { ....[ 695]: native_set_pmd(pmdp, pmd); ....[ 696]: } ....[ 723]: struct vm_area_struct; ....[ 726]: extern int ptep_set_access_flags(struct vm_area_struct *vma, ....[ 727]: unsigned long address, pte_t *ptep, ....[ 728]: pte_t entry, int dirty); ....[ 731]: extern int ptep_test_and_clear_young(struct vm_area_struct *vma, ....[ 732]: unsigned long addr, pte_t *ptep); ....[ 735]: extern int ptep_clear_flush_young(struct vm_area_struct *vma, ....[ 736]: unsigned long address, pte_t *ptep); ....[ 739]: static inline __attribute__((no_instrument_function)) pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned \ .... long addr, ....[ 740]: pte_t *ptep) ....[ 741]: { ....[ 742]: pte_t pte = native_ptep_get_and_clear(ptep); ....[ 743]: do { } while (0); ....[ 744]: return pte; ....[ 745]: } ....[ 748]: static inline __attribute__((no_instrument_function)) pte_t ptep_get_and_clear_full(struct mm_struct *mm, ....[ 749]: unsigned long addr, pte_t *ptep, ....[ 750]: int full) ....[ 751]: { ....[ 752]: pte_t pte; ....[ 753]: if (full) { ....[ 758]: pte = native_local_ptep_get_and_clear(ptep); ....[ 759]: } else { ....[ 760]: pte = ptep_get_and_clear(mm, addr, ptep); ....[ 761]: } ....[ 762]: return pte; ....[ 763]: } ....[ 766]: static inline __attribute__((no_instrument_function)) void ptep_set_wrprotect(struct mm_struct *mm, ....[ 767]: unsigned long addr, pte_t *ptep) ....[ 768]: { ....[ 769]: clear_bit(1, (unsigned long *)&ptep->pte); ....[ 770]: do { } while (0); ....[ 771]: } ....[ 778]: extern int pmdp_set_access_flags(struct vm_area_struct *vma, ....[ 779]: unsigned long address, pmd_t *pmdp, ....[ 780]: pmd_t entry, int dirty); ....[ 783]: extern int pmdp_test_and_clear_young(struct vm_area_struct *vma, ....[ 784]: unsigned long addr, pmd_t *pmdp); ....[ 787]: extern int pmdp_clear_flush_young(struct vm_area_struct *vma, ....[ 788]: unsigned long address, pmd_t *pmdp); ....[ 792]: extern void pmdp_splitting_flush(struct vm_area_struct *vma, ....[ 793]: unsigned long addr, pmd_t *pmdp); ....[ 796]: static inline __attribute__((no_instrument_function)) int pmd_write(pmd_t pmd) ....[ 797]: { ....[ 798]: return pmd_flags(pmd) & (((pteval_t)(1)) << 1); ....[ 799]: } ....[ 802]: static inline __attribute__((no_instrument_function)) pmd_t pmdp_get_and_clear(struct mm_struct *mm, unsigned \ .... long addr, ....[ 803]: pmd_t *pmdp) ....[ 804]: { ....[ 805]: pmd_t pmd = native_pmdp_get_and_clear(pmdp); ....[ 806]: do { } while (0); ....[ 807]: return pmd; ....[ 808]: } ....[ 811]: static inline __attribute__((no_instrument_function)) void pmdp_set_wrprotect(struct mm_struct *mm, ....[ 812]: unsigned long addr, pmd_t *pmdp) ....[ 813]: { ....[ 814]: clear_bit(1, (unsigned long *)pmdp); ....[ 815]: do { } while (0); ....[ 816]: } ....[ 828]: static inline __attribute__((no_instrument_function)) void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) ....[ 829]: { ....[ 830]: ({ size_t __len = (count * sizeof(pgd_t)); void *__ret; if (__builtin_constant_p(count * sizeof(pgd_t)) && __len >= \ .... 64) __ret = __memcpy((dst), (src), __len); else __ret = __builtin_memcpy((dst), (src), __len); __ret; }); ....[ 831]: } ....[ 834]: static inline __attribute__((no_instrument_function)) int page_level_shift(enum pg_level level) ....[ 835]: { ....[ 836]: return (12 - ( __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) )) + level * ( __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) ); ....[ 837]: } ....[ 838]: static inline __attribute__((no_instrument_function)) unsigned long page_level_size(enum pg_level level) ....[ 839]: { ....[ 840]: return 1UL << page_level_shift(level); ....[ 841]: } ....[ 842]: static inline __attribute__((no_instrument_function)) unsigned long page_level_mask(enum pg_level level) ....[ 843]: { ....[ 844]: return ~(page_level_size(level) - 1); ....[ 845]: } ....[ 851]: static inline __attribute__((no_instrument_function)) void update_mmu_cache(struct vm_area_struct *vma, ....[ 852]: unsigned long addr, pte_t *ptep) ....[ 853]: { ....[ 854]: } ....[ 855]: static inline __attribute__((no_instrument_function)) void update_mmu_cache_pmd(struct vm_area_struct *vma\ .... , ....[ 856]: unsigned long addr, pmd_t *pmd) ....[ 857]: { ....[ 858]: } ....[ 860]: static inline __attribute__((no_instrument_function)) pte_t pte_swp_mksoft_dirty(pte_t pte) ....[ 861]: { ....[ 862]: ((void)(sizeof(( long)(pte_present(pte))))); ....[ 863]: return pte_set_flags(pte, (((pteval_t)(0)))); ....[ 864]: } ....[ 866]: static inline __attribute__((no_instrument_function)) int pte_swp_soft_dirty(pte_t pte) ....[ 867]: { ....[ 868]: ((void)(sizeof(( long)(pte_present(pte))))); ....[ 869]: return pte_flags(pte) & (((pteval_t)(0))); ....[ 870]: } ....[ 872]: static inline __attribute__((no_instrument_function)) pte_t pte_swp_clear_soft_dirty(pte_t pte) ....[ 873]: { ....[ 874]: ((void)(sizeof(( long)(pte_present(pte))))); ....[ 875]: return pte_clear_flags(pte, (((pteval_t)(0)))); ....[ 876]: } ...# Holding FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable.h ....# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/pgtable.h .....[ 123]: static inline __attribute__((no_instrument_function)) void pte_clear_not_present_full(struct mm_struct *mm\ ..... , .....[ 124]: unsigned long address, .....[ 125]: pte_t *ptep, .....[ 126]: int full) .....[ 127]: { .....[ 128]: native_pte_clear(mm, address, ptep); .....[ 129]: } .....[ 133]: extern pte_t ptep_clear_flush(struct vm_area_struct *vma, .....[ 134]: unsigned long address, .....[ 135]: pte_t *ptep); .....[ 139]: extern pmd_t pmdp_clear_flush(struct vm_area_struct *vma, .....[ 140]: unsigned long address, .....[ 141]: pmd_t *pmdp); .....[ 176]: extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, .....[ 177]: pgtable_t pgtable); .....[ 181]: extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); .....[ 185]: extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, .....[ 186]: pmd_t *pmdp); .....[ 203]: static inline __attribute__((no_instrument_function)) int pmd_same(pmd_t pmd_a, pmd_t pmd_b) .....[ 204]: { .....[ 205]: do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" \ ..... "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry))); do { } while (\ ..... 1); } while (0); .....[ 206]: return 0; .....[ 207]: } .....[ 265]: void pgd_clear_bad(pgd_t *); .....[ 266]: void pud_clear_bad(pud_t *); .....[ 267]: void pmd_clear_bad(pmd_t *); .....[ 269]: static inline __attribute__((no_instrument_function)) int pgd_none_or_clear_bad(pgd_t *pgd) .....[ 270]: { .....[ 271]: if (pgd_none(*pgd)) .....[ 272]: return 1; .....[ 273]: if (__builtin_expect(!!(pgd_bad(*pgd)), 0)) { .....[ 274]: pgd_clear_bad(pgd); .....[ 275]: return 1; .....[ 276]: } .....[ 277]: return 0; .....[ 278]: } .....[ 280]: static inline __attribute__((no_instrument_function)) int pud_none_or_clear_bad(pud_t *pud) .....[ 281]: { .....[ 282]: if (pud_none(*pud)) .....[ 283]: return 1; .....[ 284]: if (__builtin_expect(!!(pud_bad(*pud)), 0)) { .....[ 285]: pud_clear_bad(pud); .....[ 286]: return 1; .....[ 287]: } .....[ 288]: return 0; .....[ 289]: } .....[ 291]: static inline __attribute__((no_instrument_function)) int pmd_none_or_clear_bad(pmd_t *pmd) .....[ 292]: { .....[ 293]: if (pmd_none(*pmd)) .....[ 294]: return 1; .....[ 295]: if (__builtin_expect(!!(pmd_bad(*pmd)), 0)) { .....[ 296]: pmd_clear_bad(pmd); .....[ 297]: return 1; .....[ 298]: } .....[ 299]: return 0; .....[ 300]: } .....[ 302]: static inline __attribute__((no_instrument_function)) pte_t __ptep_modify_prot_start(struct mm_struct *mm, .....[ 303]: unsigned long addr, .....[ 304]: pte_t *ptep) .....[ 305]: { .....[ 311]: return ptep_get_and_clear(mm, addr, ptep); .....[ 312]: } .....[ 314]: static inline __attribute__((no_instrument_function)) void __ptep_modify_prot_commit(struct mm_struct *mm, .....[ 315]: unsigned long addr, .....[ 316]: pte_t *ptep, pte_t pte) .....[ 317]: { .....[ 322]: native_set_pte_at(mm, addr, ptep, pte); .....[ 323]: } .....[ 340]: static inline __attribute__((no_instrument_function)) pte_t ptep_modify_prot_start(struct mm_struct *mm, .....[ 341]: unsigned long addr, .....[ 342]: pte_t *ptep) .....[ 343]: { .....[ 344]: return __ptep_modify_prot_start(mm, addr, ptep); .....[ 345]: } .....[ 351]: static inline __attribute__((no_instrument_function)) void ptep_modify_prot_commit(struct mm_struct *mm, .....[ 352]: unsigned long addr, .....[ 353]: pte_t *ptep, pte_t pte) .....[ 354]: { .....[ 355]: __ptep_modify_prot_commit(mm, addr, ptep, pte); .....[ 356]: } .....[ 495]: extern int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, .....[ 496]: unsigned long pfn, unsigned long addr, .....[ 497]: unsigned long size); .....[ 498]: extern int track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, .....[ 499]: unsigned long pfn); .....[ 500]: extern int track_pfn_copy(struct vm_area_struct *vma); .....[ 501]: extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, .....[ 502]: unsigned long size); .....[ 516]: static inline __attribute__((no_instrument_function)) int is_zero_pfn(unsigned long pfn) .....[ 517]: { .....[ 518]: extern unsigned long zero_pfn; .....[ 519]: return pfn == zero_pfn; .....[ 520]: } .....[ 522]: static inline __attribute__((no_instrument_function)) unsigned long my_zero_pfn(unsigned long addr) .....[ 523]: { .....[ 524]: extern unsigned long zero_pfn; .....[ 525]: return zero_pfn; .....[ 526]: } .....[ 532]: static inline __attribute__((no_instrument_function)) int pmd_trans_huge(pmd_t pmd) .....[ 533]: { .....[ 534]: return 0; .....[ 535]: } .....[ 536]: static inline __attribute__((no_instrument_function)) int pmd_trans_splitting(pmd_t pmd) .....[ 537]: { .....[ 538]: return 0; .....[ 539]: } .....[ 550]: static inline __attribute__((no_instrument_function)) pmd_t pmd_read_atomic(pmd_t *pmdp) .....[ 551]: { .....[ 557]: return *pmdp; .....[ 558]: } .....[ 582]: static inline __attribute__((no_instrument_function)) int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd) .....[ 583]: { .....[ 584]: pmd_t pmdval = pmd_read_atomic(pmd); .....[ 602]: if (pmd_none(pmdval) || pmd_trans_huge(pmdval)) .....[ 603]: return 1; .....[ 604]: if (__builtin_expect(!!(pmd_bad(pmdval)), 0)) { .....[ 605]: pmd_clear_bad(pmd); .....[ 606]: return 1; .....[ 607]: } .....[ 608]: return 0; .....[ 609]: } .....[ 624]: static inline __attribute__((no_instrument_function)) int pmd_trans_unstable(pmd_t *pmd) .....[ 625]: { .....[ 629]: return 0; .....[ 631]: } .....[ 708]: static inline __attribute__((no_instrument_function)) int pmd_numa(pmd_t pmd) .....[ 709]: { .....[ 710]: return 0; .....[ 711]: } .....[ 713]: static inline __attribute__((no_instrument_function)) int pte_numa(pte_t pte) .....[ 714]: { .....[ 715]: return 0; .....[ 716]: } .....[ 718]: static inline __attribute__((no_instrument_function)) pte_t pte_mknonnuma(pte_t pte) .....[ 719]: { .....[ 720]: return pte; .....[ 721]: } .....[ 723]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mknonnuma(pmd_t pmd) .....[ 724]: { .....[ 725]: return pmd; .....[ 726]: } .....[ 728]: static inline __attribute__((no_instrument_function)) pte_t pte_mknuma(pte_t pte) .....[ 729]: { .....[ 730]: return pte; .....[ 731]: } .....[ 733]: static inline __attribute__((no_instrument_function)) pmd_t pmd_mknuma(pmd_t pmd) .....[ 734]: { .....[ 735]: return pmd; .....[ 736]: } .....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/pgtable.h ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...[ 57]: extern unsigned long sysctl_user_reserve_kbytes; ...[ 58]: extern unsigned long sysctl_admin_reserve_kbytes; ...[ 77]: extern struct kmem_cache *vm_area_cachep; ...[ 174]: extern pgprot_t protection_map[16]; ...[ 193]: struct vm_fault { ...[ 194]: unsigned int flags; ...[ 195]: unsigned long pgoff; ...[ 196]: void *virtual_address; ...[ 198]: struct page *page; ...[ 203]: }; ...[ 210]: struct vm_operations_struct { ...[ 211]: void (*open)(struct vm_area_struct * area); ...[ 212]: void (*close)(struct vm_area_struct * area); ...[ 213]: int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf); ...[ 217]: int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf); ...[ 222]: int (*access)(struct vm_area_struct *vma, unsigned long addr, ...[ 223]: void *buf, int len, int write); ...[ 232]: int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new); ...[ 244]: struct mempolicy *(*get_policy)(struct vm_area_struct *vma, ...[ 245]: unsigned long addr); ...[ 246]: int (*migrate)(struct vm_area_struct *vma, const nodemask_t *from, ...[ 247]: const nodemask_t *to, unsigned long flags); ...[ 250]: int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr, ...[ 251]: unsigned long size, unsigned long pgoff); ...[ 252]: }; ...[ 254]: struct mmu_gather; ...[ 255]: struct inode; ...[ 261]: static inline __attribute__((no_instrument_function)) void set_freepage_migratetype(struct page *page, int migratetype\ ... ) ...[ 262]: { ...[ 263]: page->index = migratetype; ...[ 264]: } ...[ 267]: static inline __attribute__((no_instrument_function)) int get_freepage_migratetype(struct page *page) ...[ 268]: { ...[ 269]: return page->index; ...[ 270]: } ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/huge_mm.h ....[ 4]: extern int do_huge_pmd_anonymous_page(struct mm_struct *mm, ....[ 5]: struct vm_area_struct *vma, ....[ 6]: unsigned long address, pmd_t *pmd, ....[ 7]: unsigned int flags); ....[ 8]: extern int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, ....[ 9]: pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, ....[ 10]: struct vm_area_struct *vma); ....[ 11]: extern void huge_pmd_set_accessed(struct mm_struct *mm, ....[ 12]: struct vm_area_struct *vma, ....[ 13]: unsigned long address, pmd_t *pmd, ....[ 14]: pmd_t orig_pmd, int dirty); ....[ 15]: extern int do_huge_pmd_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, ....[ 16]: unsigned long address, pmd_t *pmd, ....[ 17]: pmd_t orig_pmd); ....[ 18]: extern struct page *follow_trans_huge_pmd(struct vm_area_struct *vma, ....[ 19]: unsigned long addr, ....[ 20]: pmd_t *pmd, ....[ 21]: unsigned int flags); ....[ 22]: extern int zap_huge_pmd(struct mmu_gather *tlb, ....[ 23]: struct vm_area_struct *vma, ....[ 24]: pmd_t *pmd, unsigned long addr); ....[ 25]: extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, ....[ 26]: unsigned long addr, unsigned long end, ....[ 27]: unsigned char *vec); ....[ 28]: extern int move_huge_pmd(struct vm_area_struct *vma, ....[ 29]: struct vm_area_struct *new_vma, ....[ 30]: unsigned long old_addr, ....[ 31]: unsigned long new_addr, unsigned long old_end, ....[ 32]: pmd_t *old_pmd, pmd_t *new_pmd); ....[ 33]: extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, ....[ 34]: unsigned long addr, pgprot_t newprot, ....[ 35]: int prot_numa); ....[ 37]: enum transparent_hugepage_flag { ....[ 38]: TRANSPARENT_HUGEPAGE_FLAG, ....[ 39]: TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG, ....[ 40]: TRANSPARENT_HUGEPAGE_DEFRAG_FLAG, ....[ 41]: TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, ....[ 42]: TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG, ....[ 43]: TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG, ....[ 47]: }; ....[ 49]: enum page_check_address_pmd_flag { ....[ 50]: PAGE_CHECK_ADDRESS_PMD_FLAG, ....[ 51]: PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG, ....[ 52]: PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG, ....[ 53]: }; ....[ 54]: extern pmd_t *page_check_address_pmd(struct page *page, ....[ 55]: struct mm_struct *mm, ....[ 56]: unsigned long address, ....[ 57]: enum page_check_address_pmd_flag flag, ....[ 58]: spinlock_t **ptl); ....[ 191]: static inline __attribute__((no_instrument_function)) int ....[ 192]: split_huge_page_to_list(struct page *page, struct list_head *list) ....[ 193]: { ....[ 194]: return 0; ....[ 195]: } ....[ 196]: static inline __attribute__((no_instrument_function)) int split_huge_page(struct page *page) ....[ 197]: { ....[ 198]: return 0; ....[ 199]: } ....[ 207]: static inline __attribute__((no_instrument_function)) int hugepage_madvise(struct vm_area_struct *vma, ....[ 208]: unsigned long *vm_flags, int advice) ....[ 209]: { ....[ 210]: do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" \ .... "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry))); do { } while (\ .... 1); } while (0); ....[ 211]: return 0; ....[ 212]: } ....[ 213]: static inline __attribute__((no_instrument_function)) void vma_adjust_trans_huge(struct vm_area_struct *vma\ .... , ....[ 214]: unsigned long start, ....[ 215]: unsigned long end, ....[ 216]: long adjust_next) ....[ 217]: { ....[ 218]: } ....[ 219]: static inline __attribute__((no_instrument_function)) int pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct \ .... *vma, ....[ 220]: spinlock_t **ptl) ....[ 221]: { ....[ 222]: return 0; ....[ 223]: } ....[ 225]: static inline __attribute__((no_instrument_function)) int do_huge_pmd_numa_page(struct mm_struct *mm, struct \ .... vm_area_struct *vma, ....[ 226]: unsigned long addr, pmd_t pmd, pmd_t *pmdp) ....[ 227]: { ....[ 228]: return 0; ....[ 229]: } ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/huge_mm.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...[ 295]: static inline __attribute__((no_instrument_function)) int put_page_testzero(struct page *page) ...[ 296]: { ...[ 297]: ((void)(sizeof(( long)(atomic_read(&page->_count) == 0)))); ...[ 298]: return atomic_dec_and_test(&page->_count); ...[ 299]: } ...[ 307]: static inline __attribute__((no_instrument_function)) int get_page_unless_zero(struct page *page) ...[ 308]: { ...[ 309]: return atomic_add_unless((&page->_count), 1, 0); ...[ 310]: } ...[ 319]: static inline __attribute__((no_instrument_function)) int put_page_unless_one(struct page *page) ...[ 320]: { ...[ 321]: return atomic_add_unless(&page->_count, -1, 1); ...[ 322]: } ...[ 324]: extern int page_is_ram(unsigned long pfn); ...[ 327]: struct page *vmalloc_to_page(const void *addr); ...[ 328]: unsigned long vmalloc_to_pfn(const void *addr); ...[ 336]: static inline __attribute__((no_instrument_function)) int is_vmalloc_addr(const void *x) ...[ 337]: { ...[ 339]: unsigned long addr = (unsigned long)x; ...[ 341]: return addr >= (0xffffc90000000000UL) && addr < (0xffffe8ffffffffffUL); ...[ 345]: } ...[ 347]: extern int is_vmalloc_or_module_addr(const void *x); ...[ 355]: static inline __attribute__((no_instrument_function)) void compound_lock(struct page *page) ...[ 356]: { ...[ 361]: } ...[ 363]: static inline __attribute__((no_instrument_function)) void compound_unlock(struct page *page) ...[ 364]: { ...[ 369]: } ...[ 371]: static inline __attribute__((no_instrument_function)) unsigned long compound_lock_irqsave(struct page *page\ ... ) ...[ 372]: { ...[ 373]: unsigned long flags = flags; ...[ 378]: return flags; ...[ 379]: } ...[ 381]: static inline __attribute__((no_instrument_function)) void compound_unlock_irqrestore(struct page *page, ...[ 382]: unsigned long flags) ...[ 383]: { ...[ 388]: } ...[ 390]: static inline __attribute__((no_instrument_function)) struct page *compound_head(struct page *page) ...[ 391]: { ...[ 392]: if (__builtin_expect(!!(PageTail(page)), 0)) ...[ 393]: return page->first_page; ...[ 394]: return page; ...[ 395]: } ...[ 402]: static inline __attribute__((no_instrument_function)) void page_mapcount_reset(struct page *page) ...[ 403]: { ...[ 404]: atomic_set(&(page)->_mapcount, -1); ...[ 405]: } ...[ 407]: static inline __attribute__((no_instrument_function)) int page_mapcount(struct page *page) ...[ 408]: { ...[ 409]: return atomic_read(&(page)->_mapcount) + 1; ...[ 410]: } ...[ 412]: static inline __attribute__((no_instrument_function)) int page_count(struct page *page) ...[ 413]: { ...[ 414]: return atomic_read(&compound_head(page)->_count); ...[ 415]: } ...[ 417]: static inline __attribute__((no_instrument_function)) void get_huge_page_tail(struct page *page) ...[ 418]: { ...[ 423]: ((void)(sizeof(( long)(page_mapcount(page) < 0)))); ...[ 424]: ((void)(sizeof(( long)(atomic_read(&page->_count) != 0)))); ...[ 425]: atomic_inc(&page->_mapcount); ...[ 426]: } ...[ 428]: extern bool __get_page_tail(struct page *page); ...[ 430]: static inline __attribute__((no_instrument_function)) void get_page(struct page *page) ...[ 431]: { ...[ 432]: if (__builtin_expect(!!(PageTail(page)), 0)) ...[ 433]: if (__builtin_expect(!!(__get_page_tail(page)), 1)) ...[ 434]: return; ...[ 439]: ((void)(sizeof(( long)(atomic_read(&page->_count) <= 0)))); ...[ 440]: atomic_inc(&page->_count); ...[ 441]: } ...[ 443]: static inline __attribute__((no_instrument_function)) struct page *virt_to_head_page(const void *x) ...[ 444]: { ...[ 445]: struct page *page = (((struct page *)(0xffffea0000000000UL)) + (__phys_addr_nodebug((unsigned long)(x)) >> 12))\ ... ; ...[ 446]: return compound_head(page); ...[ 447]: } ...[ 453]: static inline __attribute__((no_instrument_function)) void init_page_count(struct page *page) ...[ 454]: { ...[ 455]: atomic_set(&page->_count, 1); ...[ 456]: } ...[ 469]: static inline __attribute__((no_instrument_function)) int PageBuddy(struct page *page) ...[ 470]: { ...[ 471]: return atomic_read(&page->_mapcount) == (-128); ...[ 472]: } ...[ 474]: static inline __attribute__((no_instrument_function)) void __SetPageBuddy(struct page *page) ...[ 475]: { ...[ 476]: ((void)(sizeof(( long)(atomic_read(&page->_mapcount) != -1)))); ...[ 477]: atomic_set(&page->_mapcount, (-128)); ...[ 478]: } ...[ 480]: static inline __attribute__((no_instrument_function)) void __ClearPageBuddy(struct page *page) ...[ 481]: { ...[ 482]: ((void)(sizeof(( long)(!PageBuddy(page))))); ...[ 483]: atomic_set(&page->_mapcount, -1); ...[ 484]: } ...[ 486]: void put_page(struct page *page); ...[ 487]: void put_pages_list(struct list_head *pages); ...[ 489]: void split_page(struct page *page, unsigned int order); ...[ 490]: int split_free_page(struct page *page); ...[ 497]: typedef void compound_page_dtor(struct page *); ...[ 499]: static inline __attribute__((no_instrument_function)) void set_compound_page_dtor(struct page *page, ...[ 500]: compound_page_dtor *dtor) ...[ 501]: { ...[ 502]: page[1].lru.next = (void *)dtor; ...[ 503]: } ...[ 505]: static inline __attribute__((no_instrument_function)) compound_page_dtor *get_compound_page_dtor(struct page \ ... *page) ...[ 506]: { ...[ 507]: return (compound_page_dtor *)page[1].lru.next; ...[ 508]: } ...[ 510]: static inline __attribute__((no_instrument_function)) int compound_order(struct page *page) ...[ 511]: { ...[ 512]: if (!PageHead(page)) ...[ 513]: return 0; ...[ 514]: return (unsigned long)page[1].lru.prev; ...[ 515]: } ...[ 517]: static inline __attribute__((no_instrument_function)) void set_compound_order(struct page *page, unsigned long \ ... order) ...[ 518]: { ...[ 519]: page[1].lru.prev = (void *)order; ...[ 520]: } ...[ 529]: static inline __attribute__((no_instrument_function)) pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *\ ... vma) ...[ 530]: { ...[ 531]: if (__builtin_expect(!!(vma->vm_flags & 0x00000002), 1)) ...[ 532]: pte = pte_mkwrite(pte); ...[ 533]: return pte; ...[ 534]: } ...[ 641]: static inline __attribute__((no_instrument_function)) enum zone_type page_zonenum(const struct page *page) ...[ 642]: { ...[ 643]: return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 6) - 2) * (2 != 0))) & ((1UL << 2) - 1); ...[ 644]: } ...[ 658]: static inline __attribute__((no_instrument_function)) int page_zone_id(struct page *page) ...[ 659]: { ...[ 660]: return (page->flags >> (((((sizeof(unsigned long)*8) - 0) < ((((sizeof(unsigned long)*8) - 0) - 6) - 2))? ((sizeof(unsigned \ ... long)*8) - 0) : ((((sizeof(unsigned long)*8) - 0) - 6) - 2)) * (((46 - 27) + 2) != 0))) & ((1UL << ((46 - 27) + 2)) - 1); ...[ 661]: } ...[ 663]: static inline __attribute__((no_instrument_function)) int zone_to_nid(struct zone *zone) ...[ 664]: { ...[ 666]: return zone->node; ...[ 670]: } ...[ 673]: extern int page_to_nid(const struct page *page); ...[ 749]: static inline __attribute__((no_instrument_function)) int page_cpupid_xchg_last(struct page *page, int cpupid\ ... ) ...[ 750]: { ...[ 751]: return page_to_nid(page); ...[ 752]: } ...[ 754]: static inline __attribute__((no_instrument_function)) int page_cpupid_last(struct page *page) ...[ 755]: { ...[ 756]: return page_to_nid(page); ...[ 757]: } ...[ 759]: static inline __attribute__((no_instrument_function)) int cpupid_to_nid(int cpupid) ...[ 760]: { ...[ 761]: return -1; ...[ 762]: } ...[ 764]: static inline __attribute__((no_instrument_function)) int cpupid_to_pid(int cpupid) ...[ 765]: { ...[ 766]: return -1; ...[ 767]: } ...[ 769]: static inline __attribute__((no_instrument_function)) int cpupid_to_cpu(int cpupid) ...[ 770]: { ...[ 771]: return -1; ...[ 772]: } ...[ 774]: static inline __attribute__((no_instrument_function)) int cpu_pid_to_cpupid(int nid, int pid) ...[ 775]: { ...[ 776]: return -1; ...[ 777]: } ...[ 779]: static inline __attribute__((no_instrument_function)) bool cpupid_pid_unset(int cpupid) ...[ 780]: { ...[ 781]: return 1; ...[ 782]: } ...[ 784]: static inline __attribute__((no_instrument_function)) void page_cpupid_reset_last(struct page *page) ...[ 785]: { ...[ 786]: } ...[ 788]: static inline __attribute__((no_instrument_function)) bool cpupid_match_pid(struct task_struct *task, int cpupid\ ... ) ...[ 789]: { ...[ 790]: return false; ...[ 791]: } ...[ 794]: static inline __attribute__((no_instrument_function)) struct zone *page_zone(const struct page *page) ...[ 795]: { ...[ 796]: return &(node_data[page_to_nid(page)])->node_zones[page_zonenum(page)]; ...[ 797]: } ...[ 812]: static inline __attribute__((no_instrument_function)) void set_page_zone(struct page *page, enum zone_type zone\ ... ) ...[ 813]: { ...[ 814]: page->flags &= ~(((1UL << 2) - 1) << (((((sizeof(unsigned long)*8) - 0) - 6) - 2) * (2 != 0))); ...[ 815]: page->flags |= (zone & ((1UL << 2) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 6) - 2) * (2 != 0)); ...[ 816]: } ...[ 818]: static inline __attribute__((no_instrument_function)) void set_page_node(struct page *page, unsigned long node\ ... ) ...[ 819]: { ...[ 820]: page->flags &= ~(((1UL << 6) - 1) << ((((sizeof(unsigned long)*8) - 0) - 6) * (6 != 0))); ...[ 821]: page->flags |= (node & ((1UL << 6) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 6) * (6 != 0)); ...[ 822]: } ...[ 824]: static inline __attribute__((no_instrument_function)) void set_page_links(struct page *page, enum zone_type zone\ ... , ...[ 825]: unsigned long node, unsigned long pfn) ...[ 826]: { ...[ 827]: set_page_zone(page, zone); ...[ 828]: set_page_node(page, node); ...[ 832]: } ..# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vmstat.h ....[ 11]: extern int sysctl_stat_interval; ....[ 24]: struct vm_event_state { ....[ 25]: unsigned long event[NR_VM_EVENT_ITEMS]; ....[ 26]: }; ....[ 28]: extern __attribute__((section(".data..percpu" ""))) __typeof__(struct vm_event_state) vm_event_states; ....[ 30]: static inline __attribute__((no_instrument_function)) void __count_vm_event(enum vm_event_item item) ....[ 31]: { ....[ 32]: do { do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item])))) + 0))((void *)0); (void)__vpp_verify\ .... ; } while (0); switch(sizeof(((vm_event_states.event[item])))) { case 1: do { typedef typeof((((vm_event_states\ .... .event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1\ .... )) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((vm_event_states.event[\ .... item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm\ .... ("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" ((pao_T__)((1)))); break; case \ .... 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ \ .... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addw %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) \ .... asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decl "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%"\ .... "gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" \ .... "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef \ .... typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) \ .... == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(\ .... (((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item\ .... ]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" ((pao_T__)(\ .... (1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])\ .... )))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else \ .... asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break\ .... ; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (\ .... pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addl %1, "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ .... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decq "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (\ .... 0);break; case 4: do { typedef typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p\ .... ((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch \ .... (sizeof((((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (\ .... (((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" \ .... ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event\ .... [item]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1))\ .... )); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))))\ .... ; else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm(\ .... "addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case \ .... 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ \ .... == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size\ .... (); } } while (0);break; case 8: do { typedef typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ \ .... = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((\ .... 1)); (void)pao_tmp__; } switch (sizeof((((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" \ .... "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" \ .... ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event\ .... [item]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1))\ .... )); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))))\ .... ; else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm(\ .... "addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default\ .... : __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ....[ 33]: } ....[ 35]: static inline __attribute__((no_instrument_function)) void count_vm_event(enum vm_event_item item) ....[ 36]: { ....[ 37]: do { do { const void *__vpp_verify = (typeof((&(((vm_event_states.event[item])))) + 0))((void *)0); (void)__vpp_verify\ .... ; } while (0); switch(sizeof(((vm_event_states.event[item])))) { case 1: do { typedef typeof((((vm_event_states\ .... .event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1\ .... )) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof((((vm_event_states.event[\ .... item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm\ .... ("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" ((pao_T__)((1)))); break; case \ .... 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ \ .... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addw %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) \ .... asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decl "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%"\ .... "gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" \ .... "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef \ .... typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) \ .... == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(\ .... (((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item\ .... ]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" ((pao_T__)(\ .... (1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])\ .... )))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else \ .... asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break\ .... ; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (\ .... pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addl %1, "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ \ .... == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decq "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (\ .... 0);break; case 4: do { typedef typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ = (__builtin_constant_p\ .... ((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch \ .... (sizeof((((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (\ .... (((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "qi" \ .... ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event\ .... [item]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1))\ .... )); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))))\ .... ; else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm(\ .... "addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1)))); break; case \ .... 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ \ .... == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addq %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size\ .... (); } } while (0);break; case 8: do { typedef typeof((((vm_event_states.event[item])))) pao_T__; const int pao_ID__ \ .... = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? (int)((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((\ .... 1)); (void)pao_tmp__; } switch (sizeof((((vm_event_states.event[item]))))) { case 1: if (pao_ID__ == 1) asm("incb "\ .... "%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" \ .... "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" \ .... ((((vm_event_states.event[item]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states\ .... .event[item]))))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" \ .... ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event\ .... [item]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))\ .... )); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "ri" ((pao_T__)((1))\ .... )); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))))\ .... ; else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item]))))); else asm(\ .... "addq %1, ""%%""gs"":" "%P" "0" : "+m" ((((vm_event_states.event[item])))) : "re" ((pao_T__)((1)))); break; default\ .... : __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); ....[ 38]: } ....[ 40]: static inline __attribute__((no_instrument_function)) void __count_vm_events(enum vm_event_item item, long delta\ .... ) ....[ 41]: { ....[ 42]: do { do { const void *__vpp_verify = (typeof((&((vm_event_states.event[item]))) + 0))((void *)0); (void)__vpp_verify\ .... ; } while (0); switch(sizeof((vm_event_states.event[item]))) { case 1: do { typedef typeof(((vm_event_states.event\ .... [item]))) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int\ .... )((delta)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states\ .... .event[item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break\ .... ; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ \ .... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == \ .... 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "re" ((pao_T__)((delta)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do \ .... { typedef typeof(((vm_event_states.event[item]))) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta\ .... )) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void\ .... )pao_tmp__; } switch (sizeof(((vm_event_states.event[item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : \ .... "+m" (((vm_event_states.event[item])))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.\ .... event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__\ .... )((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break\ .... ; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ \ .... == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addq %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__)((delta)))); break; default: __bad_percpu_size\ .... (); } } while (0);break; case 4: do { typedef typeof(((vm_event_states.event[item]))) pao_T__; const int pao_ID__ = \ .... (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta)) : 0; if (0) { pao_T__ pao_tmp__\ .... ; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states.event[item])))) { case 1: if (pao_ID__ \ .... == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decb "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__\ .... )((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__)((delta)))); break\ .... ; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((vm_event_states.event[item]))\ .... ) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta\ .... )) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states.event\ .... [item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))))\ .... ; else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addb %1, "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ \ .... == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "ri" ((pao_T__)((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__\ .... )((delta)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();\ .... break; } } while (0); ....[ 43]: } ....[ 45]: static inline __attribute__((no_instrument_function)) void count_vm_events(enum vm_event_item item, long delta\ .... ) ....[ 46]: { ....[ 47]: do { do { const void *__vpp_verify = (typeof((&((vm_event_states.event[item]))) + 0))((void *)0); (void)__vpp_verify\ .... ; } while (0); switch(sizeof((vm_event_states.event[item]))) { case 1: do { typedef typeof(((vm_event_states.event\ .... [item]))) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int\ .... )((delta)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states\ .... .event[item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break\ .... ; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ \ .... == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == \ .... 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "re" ((pao_T__)((delta)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do \ .... { typedef typeof(((vm_event_states.event[item]))) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta\ .... )) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void\ .... )pao_tmp__; } switch (sizeof(((vm_event_states.event[item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : \ .... "+m" (((vm_event_states.event[item])))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.\ .... event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__\ .... )((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break\ .... ; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ \ .... == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addq %1, ""%%""gs"\ .... ":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__)((delta)))); break; default: __bad_percpu_size\ .... (); } } while (0);break; case 4: do { typedef typeof(((vm_event_states.event[item]))) pao_T__; const int pao_ID__ = \ .... (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta)) : 0; if (0) { pao_T__ pao_tmp__\ .... ; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states.event[item])))) { case 1: if (pao_ID__ \ .... == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decb "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addb %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "ri" ((pao_T__\ .... )((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item\ .... ])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm\ .... ("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__)((delta)))); break\ .... ; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((vm_event_states.event[item]))\ .... ) pao_T__; const int pao_ID__ = (__builtin_constant_p((delta)) && (((delta)) == 1 || ((delta)) == -1)) ? (int)((delta\ .... )) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((delta)); (void)pao_tmp__; } switch (sizeof(((vm_event_states.event\ .... [item])))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))))\ .... ; else if (pao_ID__ == -1) asm("decb ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addb %1, "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "qi" ((pao_T__)((delta)))); break; case 2: if (pao_ID__ \ .... == 1) asm("incw ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decw "\ .... "%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else asm("addw %1, ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item]))) : "ri" ((pao_T__)((delta)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%"\ .... "gs"":" "%P" "0" : "+m" (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":" "%P" \ .... "0" : "+m" (((vm_event_states.event[item])))); else asm("addl %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item]))) : "ri" ((pao_T__)((delta)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":" "%P" "0" : "+m" \ .... (((vm_event_states.event[item])))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states\ .... .event[item])))); else asm("addq %1, ""%%""gs"":" "%P" "0" : "+m" (((vm_event_states.event[item]))) : "re" ((pao_T__\ .... )((delta)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();\ .... break; } } while (0); ....[ 48]: } ....[ 50]: extern void all_vm_events(unsigned long *); ....[ 52]: extern void vm_events_fold_cpu(int cpu); ....[ 93]: extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; ....[ 95]: static inline __attribute__((no_instrument_function)) void zone_page_state_add(long x, struct zone *zone, ....[ 96]: enum zone_stat_item item) ....[ 97]: { ....[ 98]: atomic_long_add(x, &zone->vm_stat[item]); ....[ 99]: atomic_long_add(x, &vm_stat[item]); ....[ 100]: } ....[ 102]: static inline __attribute__((no_instrument_function)) unsigned long global_page_state(enum zone_stat_item item\ .... ) ....[ 103]: { ....[ 104]: long x = atomic_long_read(&vm_stat[item]); ....[ 106]: if (x < 0) ....[ 107]: x = 0; ....[ 109]: return x; ....[ 110]: } ....[ 112]: static inline __attribute__((no_instrument_function)) unsigned long zone_page_state(struct zone *zone, ....[ 113]: enum zone_stat_item item) ....[ 114]: { ....[ 115]: long x = atomic_long_read(&zone->vm_stat[item]); ....[ 117]: if (x < 0) ....[ 118]: x = 0; ....[ 120]: return x; ....[ 121]: } ....[ 129]: static inline __attribute__((no_instrument_function)) unsigned long zone_page_state_snapshot(struct zone *zone\ .... , ....[ 130]: enum zone_stat_item item) ....[ 131]: { ....[ 132]: long x = atomic_long_read(&zone->vm_stat[item]); ....[ 135]: int cpu; ....[ 136]: for (((cpu)) = -1; ((cpu)) = cpumask_next(((cpu)), (cpu_online_mask)), ((cpu)) < nr_cpu_ids;) ....[ 137]: x += ({ do { const void *__vpp_verify = (typeof((((zone->pageset))) + 0))((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]; ....[ 139]: if (x < 0) ....[ 140]: x = 0; ....[ 142]: return x; ....[ 143]: } ....[ 145]: extern unsigned long global_reclaimable_pages(void); ....[ 153]: static inline __attribute__((no_instrument_function)) unsigned long node_page_state(int node, ....[ 154]: enum zone_stat_item item) ....[ 155]: { ....[ 156]: struct zone *zones = (node_data[node])->node_zones; ....[ 158]: return ....[ 160]: zone_page_state(&zones[ZONE_DMA], item) + ....[ 163]: zone_page_state(&zones[ZONE_DMA32], item) + ....[ 168]: zone_page_state(&zones[ZONE_NORMAL], item) + ....[ 169]: zone_page_state(&zones[ZONE_MOVABLE], item); ....[ 170]: } ....[ 172]: extern void zone_statistics(struct zone *, struct zone *, gfp_t gfp); ....[ 184]: extern void inc_zone_state(struct zone *, enum zone_stat_item); ....[ 187]: void __mod_zone_page_state(struct zone *, enum zone_stat_item item, int); ....[ 188]: void __inc_zone_page_state(struct page *, enum zone_stat_item); ....[ 189]: void __dec_zone_page_state(struct page *, enum zone_stat_item); ....[ 191]: void mod_zone_page_state(struct zone *, enum zone_stat_item, int); ....[ 192]: void inc_zone_page_state(struct page *, enum zone_stat_item); ....[ 193]: void dec_zone_page_state(struct page *, enum zone_stat_item); ....[ 195]: extern void inc_zone_state(struct zone *, enum zone_stat_item); ....[ 196]: extern void __inc_zone_state(struct zone *, enum zone_stat_item); ....[ 197]: extern void dec_zone_state(struct zone *, enum zone_stat_item); ....[ 198]: extern void __dec_zone_state(struct zone *, enum zone_stat_item); ....[ 200]: void cpu_vm_stats_fold(int cpu); ....[ 201]: void refresh_zone_stat_thresholds(void); ....[ 203]: void drain_zonestat(struct zone *zone, struct per_cpu_pageset *); ....[ 205]: int calculate_pressure_threshold(struct zone *zone); ....[ 206]: int calculate_normal_threshold(struct zone *zone); ....[ 207]: void set_pgdat_percpu_threshold(pg_data_t *pgdat, ....[ 208]: int (*calculate_pressure)(struct zone *)); ....[ 263]: static inline __attribute__((no_instrument_function)) void __mod_zone_freepage_state(struct zone *zone, int \ .... nr_pages, ....[ 264]: int migratetype) ....[ 265]: { ....[ 266]: __mod_zone_page_state(zone, NR_FREE_PAGES, nr_pages); ....[ 267]: if (false) ....[ 268]: __mod_zone_page_state(zone, NR_FREE_CMA_PAGES, nr_pages); ....[ 269]: } ....[ 271]: extern const char * const vmstat_text[]; ....# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/vmstat.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h ...[ 839]: static inline __attribute__((no_instrument_function)) __attribute__((always_inline)) void *lowmem_page_address\ ... (const struct page *page) ...[ 840]: { ...[ 841]: return ((void *)((unsigned long)(((phys_addr_t)((unsigned long)((page) - ((struct page *)(0xffffea0000000000UL\ ... )))) << 12))+((unsigned long)(0xffff880000000000UL)))); ...[ 842]: } ...[ 889]: extern struct address_space *page_mapping(struct page *page); ...[ 892]: static inline __attribute__((no_instrument_function)) void *page_rmapping(struct page *page) ...[ 893]: { ...[ 894]: return (void *)((unsigned long)page->mapping & ~(1 | 2)); ...[ 895]: } ...[ 897]: extern struct address_space *__page_file_mapping(struct page *); ...[ 899]: static inline __attribute__((no_instrument_function)) ...[ 900]: struct address_space *page_file_mapping(struct page *page) ...[ 901]: { ...[ 902]: if (__builtin_expect(!!(PageSwapCache(page)), 0)) ...[ 903]: return __page_file_mapping(page); ...[ 905]: return page->mapping; ...[ 906]: } ...[ 908]: static inline __attribute__((no_instrument_function)) int PageAnon(struct page *page) ...[ 909]: { ...[ 910]: return ((unsigned long)page->mapping & 1) != 0; ...[ 911]: } ...[ 917]: static inline __attribute__((no_instrument_function)) unsigned long page_index(struct page *page) ...[ 918]: { ...[ 919]: if (__builtin_expect(!!(PageSwapCache(page)), 0)) ...[ 920]: return ((page)->private); ...[ 921]: return page->index; ...[ 922]: } ...[ 924]: extern unsigned long __page_file_index(struct page *page); ...[ 930]: static inline __attribute__((no_instrument_function)) unsigned long page_file_index(struct page *page) ...[ 931]: { ...[ 932]: if (__builtin_expect(!!(PageSwapCache(page)), 0)) ...[ 933]: return __page_file_index(page); ...[ 935]: return page->index; ...[ 936]: } ...[ 941]: static inline __attribute__((no_instrument_function)) int page_mapped(struct page *page) ...[ 942]: { ...[ 943]: return atomic_read(&(page)->_mapcount) >= 0; ...[ 944]: } ...[ 978]: extern void pagefault_out_of_memory(void); ...[ 989]: extern void show_free_areas(unsigned int flags); ...[ 990]: extern bool skip_free_areas_node(unsigned int flags, int nid); ...[ 992]: int shmem_zero_setup(struct vm_area_struct *); ...[ 994]: extern int can_do_mlock(void); ...[ 995]: extern int user_shm_lock(size_t, struct user_struct *); ...[ 996]: extern void user_shm_unlock(size_t, struct user_struct *); ...[ 1001]: struct zap_details { ...[ 1002]: struct vm_area_struct *nonlinear_vma; ...[ 1003]: struct address_space *check_mapping; ...[ 1004]: unsigned long first_index; ...[ 1005]: unsigned long last_index; ...[ 1006]: }; ...[ 1008]: struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, ...[ 1009]: pte_t pte); ...[ 1011]: int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, ...[ 1012]: unsigned long size); ...[ 1013]: void zap_page_range(struct vm_area_struct *vma, unsigned long address, ...[ 1014]: unsigned long size, struct zap_details *); ...[ 1015]: void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, ...[ 1016]: unsigned long start, unsigned long end); ...[ 1034]: struct mm_walk { ...[ 1035]: int (*pgd_entry)(pgd_t *pgd, unsigned long addr, ...[ 1036]: unsigned long next, struct mm_walk *walk); ...[ 1037]: int (*pud_entry)(pud_t *pud, unsigned long addr, ...[ 1038]: unsigned long next, struct mm_walk *walk); ...[ 1039]: int (*pmd_entry)(pmd_t *pmd, unsigned long addr, ...[ 1040]: unsigned long next, struct mm_walk *walk); ...[ 1041]: int (*pte_entry)(pte_t *pte, unsigned long addr, ...[ 1042]: unsigned long next, struct mm_walk *walk); ...[ 1043]: int (*pte_hole)(unsigned long addr, unsigned long next, ...[ 1044]: struct mm_walk *walk); ...[ 1045]: int (*hugetlb_entry)(pte_t *pte, unsigned long hmask, ...[ 1046]: unsigned long addr, unsigned long next, ...[ 1047]: struct mm_walk *walk); ...[ 1048]: struct mm_struct *mm; ...[ 1049]: void *private; ...[ 1050]: }; ...[ 1052]: int walk_page_range(unsigned long addr, unsigned long end, ...[ 1053]: struct mm_walk *walk); ...[ 1054]: void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, ...[ 1055]: unsigned long end, unsigned long floor, unsigned long ceiling); ...[ 1056]: int copy_page_range(struct mm_struct *dst, struct mm_struct *src, ...[ 1057]: struct vm_area_struct *vma); ...[ 1058]: void unmap_mapping_range(struct address_space *mapping, ...[ 1059]: loff_t const holebegin, loff_t const holelen, int even_cows); ...[ 1060]: int follow_pfn(struct vm_area_struct *vma, unsigned long address, ...[ 1061]: unsigned long *pfn); ...[ 1062]: int follow_phys(struct vm_area_struct *vma, unsigned long address, ...[ 1063]: unsigned int flags, unsigned long *prot, resource_size_t *phys); ...[ 1064]: int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, ...[ 1065]: void *buf, int len, int write); ...[ 1067]: static inline __attribute__((no_instrument_function)) void unmap_shared_mapping_range(struct address_space \ ... *mapping, ...[ 1068]: loff_t const holebegin, loff_t const holelen) ...[ 1069]: { ...[ 1070]: unmap_mapping_range(mapping, holebegin, holelen, 0); ...[ 1071]: } ...[ 1073]: extern void truncate_pagecache(struct inode *inode, loff_t new); ...[ 1074]: extern void truncate_setsize(struct inode *inode, loff_t newsize); ...[ 1075]: void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end); ...[ 1076]: int truncate_inode_page(struct address_space *mapping, struct page *page); ...[ 1077]: int generic_error_remove_page(struct address_space *mapping, struct page *page); ...[ 1078]: int invalidate_inode_page(struct page *page); ...[ 1081]: extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, ...[ 1082]: unsigned long address, unsigned int flags); ...[ 1083]: extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, ...[ 1084]: unsigned long address, unsigned int fault_flags); ...[ 1104]: extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write); ...[ 1105]: extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, ...[ 1106]: void *buf, int len, int write); ...[ 1108]: long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, ...[ 1109]: unsigned long start, unsigned long nr_pages, ...[ 1110]: unsigned int foll_flags, struct page **pages, ...[ 1111]: struct vm_area_struct **vmas, int *nonblocking); ...[ 1112]: long get_user_pages(struct task_struct *tsk, struct mm_struct *mm, ...[ 1113]: unsigned long start, unsigned long nr_pages, ...[ 1114]: int write, int force, struct page **pages, ...[ 1115]: struct vm_area_struct **vmas); ...[ 1116]: int get_user_pages_fast(unsigned long start, int nr_pages, int write, ...[ 1117]: struct page **pages); ...[ 1118]: struct kvec; ...[ 1119]: int get_kernel_pages(const struct kvec *iov, int nr_pages, int write, ...[ 1120]: struct page **pages); ...[ 1121]: int get_kernel_page(unsigned long start, int write, struct page **pages); ...[ 1122]: struct page *get_dump_page(unsigned long addr); ...[ 1124]: extern int try_to_release_page(struct page * page, gfp_t gfp_mask); ...[ 1125]: extern void do_invalidatepage(struct page *page, unsigned int offset, ...[ 1126]: unsigned int length); ...[ 1128]: int __set_page_dirty_nobuffers(struct page *page); ...[ 1129]: int __set_page_dirty_no_writeback(struct page *page); ...[ 1130]: int redirty_page_for_writepage(struct writeback_control *wbc, ...[ 1131]: struct page *page); ...[ 1132]: void account_page_dirtied(struct page *page, struct address_space *mapping); ...[ 1133]: void account_page_writeback(struct page *page); ...[ 1134]: int set_page_dirty(struct page *page); ...[ 1135]: int set_page_dirty_lock(struct page *page); ...[ 1136]: int clear_page_dirty_for_io(struct page *page); ...[ 1139]: static inline __attribute__((no_instrument_function)) int vma_growsdown(struct vm_area_struct *vma, unsigned \ ... long addr) ...[ 1140]: { ...[ 1141]: return vma && (vma->vm_end == addr) && (vma->vm_flags & 0x00000100); ...[ 1142]: } ...[ 1144]: static inline __attribute__((no_instrument_function)) int stack_guard_page_start(struct vm_area_struct *vma\ ... , ...[ 1145]: unsigned long addr) ...[ 1146]: { ...[ 1147]: return (vma->vm_flags & 0x00000100) && ...[ 1148]: (vma->vm_start == addr) && ...[ 1149]: !vma_growsdown(vma->vm_prev, addr); ...[ 1150]: } ...[ 1153]: static inline __attribute__((no_instrument_function)) int vma_growsup(struct vm_area_struct *vma, unsigned long \ ... addr) ...[ 1154]: { ...[ 1155]: return vma && (vma->vm_start == addr) && (vma->vm_flags & 0x00000000); ...[ 1156]: } ...[ 1158]: static inline __attribute__((no_instrument_function)) int stack_guard_page_end(struct vm_area_struct *vma, ...[ 1159]: unsigned long addr) ...[ 1160]: { ...[ 1161]: return (vma->vm_flags & 0x00000000) && ...[ 1162]: (vma->vm_end == addr) && ...[ 1163]: !vma_growsup(vma->vm_next, addr); ...[ 1164]: } ...[ 1166]: extern pid_t ...[ 1167]: vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group); ...[ 1169]: extern unsigned long move_page_tables(struct vm_area_struct *vma, ...[ 1170]: unsigned long old_addr, struct vm_area_struct *new_vma, ...[ 1171]: unsigned long new_addr, unsigned long len, ...[ 1172]: bool need_rmap_locks); ...[ 1173]: extern unsigned long change_protection(struct vm_area_struct *vma, unsigned long start, ...[ 1174]: unsigned long end, pgprot_t newprot, ...[ 1175]: int dirty_accountable, int prot_numa); ...[ 1176]: extern int mprotect_fixup(struct vm_area_struct *vma, ...[ 1177]: struct vm_area_struct **pprev, unsigned long start, ...[ 1178]: unsigned long end, unsigned long newflags); ...[ 1183]: int __get_user_pages_fast(unsigned long start, int nr_pages, int write, ...[ 1184]: struct page **pages); ...[ 1188]: static inline __attribute__((no_instrument_function)) unsigned long get_mm_counter(struct mm_struct *mm, int \ ... member) ...[ 1189]: { ...[ 1190]: long val = atomic_long_read(&mm->rss_stat.count[member]); ...[ 1197]: if (val < 0) ...[ 1198]: val = 0; ...[ 1200]: return (unsigned long)val; ...[ 1201]: } ...[ 1203]: static inline __attribute__((no_instrument_function)) void add_mm_counter(struct mm_struct *mm, int member, long \ ... value) ...[ 1204]: { ...[ 1205]: atomic_long_add(value, &mm->rss_stat.count[member]); ...[ 1206]: } ...[ 1208]: static inline __attribute__((no_instrument_function)) void inc_mm_counter(struct mm_struct *mm, int member) ...[ 1209]: { ...[ 1210]: atomic_long_inc(&mm->rss_stat.count[member]); ...[ 1211]: } ...[ 1213]: static inline __attribute__((no_instrument_function)) void dec_mm_counter(struct mm_struct *mm, int member) ...[ 1214]: { ...[ 1215]: atomic_long_dec(&mm->rss_stat.count[member]); ...[ 1216]: } ...[ 1218]: static inline __attribute__((no_instrument_function)) unsigned long get_mm_rss(struct mm_struct *mm) ...[ 1219]: { ...[ 1220]: return get_mm_counter(mm, MM_FILEPAGES) + ...[ 1221]: get_mm_counter(mm, MM_ANONPAGES); ...[ 1222]: } ...[ 1224]: static inline __attribute__((no_instrument_function)) unsigned long get_mm_hiwater_rss(struct mm_struct *mm\ ... ) ...[ 1225]: { ...[ 1226]: 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; }); ...[ 1227]: } ...[ 1229]: static inline __attribute__((no_instrument_function)) unsigned long get_mm_hiwater_vm(struct mm_struct *mm) ...[ 1230]: { ...[ 1231]: return ({ typeof(mm->hiwater_vm) _max1 = (mm->hiwater_vm); typeof(mm->total_vm) _max2 = (mm->total_vm); (void) \ ... (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; }); ...[ 1232]: } ...[ 1234]: static inline __attribute__((no_instrument_function)) void update_hiwater_rss(struct mm_struct *mm) ...[ 1235]: { ...[ 1236]: unsigned long _rss = get_mm_rss(mm); ...[ 1238]: if ((mm)->hiwater_rss < _rss) ...[ 1239]: (mm)->hiwater_rss = _rss; ...[ 1240]: } ...[ 1242]: static inline __attribute__((no_instrument_function)) void update_hiwater_vm(struct mm_struct *mm) ...[ 1243]: { ...[ 1244]: if (mm->hiwater_vm < mm->total_vm) ...[ 1245]: mm->hiwater_vm = mm->total_vm; ...[ 1246]: } ...[ 1248]: static inline __attribute__((no_instrument_function)) void setmax_mm_hiwater_rss(unsigned long *maxrss, ...[ 1249]: struct mm_struct *mm) ...[ 1250]: { ...[ 1251]: unsigned long hiwater_rss = get_mm_hiwater_rss(mm); ...[ 1253]: if (*maxrss < hiwater_rss) ...[ 1254]: *maxrss = hiwater_rss; ...[ 1255]: } ...[ 1258]: void sync_mm_rss(struct mm_struct *mm); ...[ 1265]: int vma_wants_writenotify(struct vm_area_struct *vma); ...[ 1267]: extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr, ...[ 1268]: spinlock_t **ptl); ...[ 1269]: static inline __attribute__((no_instrument_function)) pte_t *get_locked_pte(struct mm_struct *mm, unsigned long \ ... addr, ...[ 1270]: spinlock_t **ptl) ...[ 1271]: { ...[ 1272]: pte_t *ptep; ...[ 1273]: (ptep = __get_locked_pte(mm, addr, ptl)); ...[ 1274]: return ptep; ...[ 1275]: } ...[ 1284]: int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); ...[ 1294]: int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); ...[ 1297]: int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, ...[ 1298]: pmd_t *pmd, unsigned long address); ...[ 1299]: int __pte_alloc_kernel(pmd_t *pmd, unsigned long address); ...[ 1306]: static inline __attribute__((no_instrument_function)) pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned \ ... long address) ...[ 1307]: { ...[ 1308]: return (__builtin_expect(!!(pgd_none(*pgd)), 0) && __pud_alloc(mm, pgd, address))? ...[ 1309]: ((void *)0): pud_offset(pgd, address); ...[ 1310]: } ...[ 1312]: static inline __attribute__((no_instrument_function)) pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned \ ... long address) ...[ 1313]: { ...[ 1314]: return (__builtin_expect(!!(pud_none(*pud)), 0) && __pmd_alloc(mm, pud, address))? ...[ 1315]: ((void *)0): pmd_offset(pud, address); ...[ 1316]: } ...[ 1329]: static inline __attribute__((no_instrument_function)) bool ptlock_alloc(struct page *page) ...[ 1330]: { ...[ 1331]: return true; ...[ 1332]: } ...[ 1334]: static inline __attribute__((no_instrument_function)) void ptlock_free(struct page *page) ...[ 1335]: { ...[ 1336]: } ...[ 1338]: static inline __attribute__((no_instrument_function)) spinlock_t *ptlock_ptr(struct page *page) ...[ 1339]: { ...[ 1340]: return &page->ptl; ...[ 1341]: } ...[ 1344]: static inline __attribute__((no_instrument_function)) spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd\ ... ) ...[ 1345]: { ...[ 1346]: return ptlock_ptr((((struct page *)(0xffffea0000000000UL)) + ((native_pmd_val(*pmd) & ((pteval_t)(((signed long\ ... )(~(((1UL) << 12)-1))) & ((phys_addr_t)((1ULL << 46) - 1))))) >> 12))); ...[ 1347]: } ...[ 1349]: static inline __attribute__((no_instrument_function)) bool ptlock_init(struct page *page) ...[ 1350]: { ...[ 1359]: ((void)(sizeof(( long)(*(unsigned long *)&page->ptl)))); ...[ 1360]: if (!ptlock_alloc(page)) ...[ 1361]: return false; ...[ 1362]: do { spinlock_check(ptlock_ptr(page)); do { *(&(ptlock_ptr(page))->rlock) = (raw_spinlock_t) { .raw_lock = { { 0 } \ ... }, }; } while (0); } while (0); ...[ 1363]: return true; ...[ 1364]: } ...[ 1367]: static inline __attribute__((no_instrument_function)) void pte_lock_deinit(struct page *page) ...[ 1368]: { ...[ 1369]: page->mapping = ((void *)0); ...[ 1370]: ptlock_free(page); ...[ 1371]: } ...[ 1385]: static inline __attribute__((no_instrument_function)) bool pgtable_page_ctor(struct page *page) ...[ 1386]: { ...[ 1387]: inc_zone_page_state(page, NR_PAGETABLE); ...[ 1388]: return ptlock_init(page); ...[ 1389]: } ...[ 1391]: static inline __attribute__((no_instrument_function)) void pgtable_page_dtor(struct page *page) ...[ 1392]: { ...[ 1393]: pte_lock_deinit(page); ...[ 1394]: dec_zone_page_state(page, NR_PAGETABLE); ...[ 1395]: } ...[ 1427]: static inline __attribute__((no_instrument_function)) spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd\ ... ) ...[ 1428]: { ...[ 1429]: return ptlock_ptr((((struct page *)(0xffffea0000000000UL)) + (__phys_addr_nodebug((unsigned long)(pmd)) >> 12\ ... ))); ...[ 1430]: } ...[ 1432]: static inline __attribute__((no_instrument_function)) bool pgtable_pmd_page_ctor(struct page *page) ...[ 1433]: { ...[ 1437]: return ptlock_init(page); ...[ 1438]: } ...[ 1440]: static inline __attribute__((no_instrument_function)) void pgtable_pmd_page_dtor(struct page *page) ...[ 1441]: { ...[ 1445]: ptlock_free(page); ...[ 1446]: } ...[ 1464]: static inline __attribute__((no_instrument_function)) spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd) ...[ 1465]: { ...[ 1466]: spinlock_t *ptl = pmd_lockptr(mm, pmd); ...[ 1467]: spin_lock(ptl); ...[ 1468]: return ptl; ...[ 1469]: } ...[ 1471]: extern void free_area_init(unsigned long * zones_size); ...[ 1472]: extern void free_area_init_node(int nid, unsigned long * zones_size, ...[ 1473]: unsigned long zone_start_pfn, unsigned long *zholes_size); ...[ 1474]: extern void free_initmem(void); ...[ 1482]: extern unsigned long free_reserved_area(void *start, void *end, ...[ 1483]: int poison, char *s); ...[ 1493]: extern void adjust_managed_page_count(struct page *page, long count); ...[ 1494]: extern void mem_init_print_info(const char *str); ...[ 1497]: static inline __attribute__((no_instrument_function)) void __free_reserved_page(struct page *page) ...[ 1498]: { ...[ 1499]: ClearPageReserved(page); ...[ 1500]: init_page_count(page); ...[ 1501]: __free_pages((page), 0); ...[ 1502]: } ...[ 1504]: static inline __attribute__((no_instrument_function)) void free_reserved_page(struct page *page) ...[ 1505]: { ...[ 1506]: __free_reserved_page(page); ...[ 1507]: adjust_managed_page_count(page, 1); ...[ 1508]: } ...[ 1510]: static inline __attribute__((no_instrument_function)) void mark_page_reserved(struct page *page) ...[ 1511]: { ...[ 1512]: SetPageReserved(page); ...[ 1513]: adjust_managed_page_count(page, -1); ...[ 1514]: } ...[ 1522]: static inline __attribute__((no_instrument_function)) unsigned long free_initmem_default(int poison) ...[ 1523]: { ...[ 1524]: extern char __init_begin[], __init_end[]; ...[ 1526]: return free_reserved_area(&__init_begin, &__init_end, ...[ 1527]: poison, "unused kernel"); ...[ 1528]: } ...[ 1530]: static inline __attribute__((no_instrument_function)) unsigned long get_num_physpages(void) ...[ 1531]: { ...[ 1532]: int nid; ...[ 1533]: unsigned long phys_pages = 0; ...[ 1535]: for (((nid)) = __first_node(&(node_states[N_ONLINE])); ((nid)) < (1 << 6); ((nid)) = __next_node((((nid))), &((node_states\ ... [N_ONLINE])))) ...[ 1536]: phys_pages += ((node_data[nid])->node_present_pages); ...[ 1538]: return phys_pages; ...[ 1539]: } ...[ 1568]: extern void free_area_init_nodes(unsigned long *max_zone_pfn); ...[ 1569]: unsigned long node_map_pfn_alignment(void); ...[ 1570]: unsigned long __absent_pages_in_range(int nid, unsigned long start_pfn, ...[ 1571]: unsigned long end_pfn); ...[ 1572]: extern unsigned long absent_pages_in_range(unsigned long start_pfn, ...[ 1573]: unsigned long end_pfn); ...[ 1574]: extern void get_pfn_range_for_nid(unsigned int nid, ...[ 1575]: unsigned long *start_pfn, unsigned long *end_pfn); ...[ 1576]: extern unsigned long find_min_pfn_with_active_regions(void); ...[ 1577]: extern void free_bootmem_with_active_regions(int nid, ...[ 1578]: unsigned long max_low_pfn); ...[ 1579]: extern void sparse_memory_present_with_active_regions(int nid); ...[ 1591]: extern int __attribute__ ((__section__(".meminit.text"))) __attribute__((no_instrument_function)) early_pfn_to_nid\ ... (unsigned long pfn); ...[ 1598]: extern void set_dma_reserve(unsigned long new_dma_reserve); ...[ 1599]: extern void memmap_init_zone(unsigned long, int, unsigned long, ...[ 1600]: unsigned long, enum memmap_context); ...[ 1601]: extern void setup_per_zone_wmarks(void); ...[ 1602]: extern int __attribute__ ((__section__(".meminit.text"))) __attribute__((no_instrument_function)) init_per_zone_wmark_min\ ... (void); ...[ 1603]: extern void mem_init(void); ...[ 1604]: extern void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) mmap_init\ ... (void); ...[ 1605]: extern void show_mem(unsigned int flags); ...[ 1606]: extern void si_meminfo(struct sysinfo * val); ...[ 1607]: extern void si_meminfo_node(struct sysinfo *val, int nid); ...[ 1609]: extern __attribute__((format(printf, 3, 4))) ...[ 1610]: void warn_alloc_failed(gfp_t gfp_mask, int order, const char *fmt, ...); ...[ 1612]: extern void setup_per_cpu_pageset(void); ...[ 1614]: extern void zone_pcp_update(struct zone *zone); ...[ 1615]: extern void zone_pcp_reset(struct zone *zone); ...[ 1618]: extern int min_free_kbytes; ...[ 1621]: extern atomic_long_t mmap_pages_allocated; ...[ 1622]: extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t); ...[ 1625]: void vma_interval_tree_insert(struct vm_area_struct *node, ...[ 1626]: struct rb_root *root); ...[ 1627]: void vma_interval_tree_insert_after(struct vm_area_struct *node, ...[ 1628]: struct vm_area_struct *prev, ...[ 1629]: struct rb_root *root); ...[ 1630]: void vma_interval_tree_remove(struct vm_area_struct *node, ...[ 1631]: struct rb_root *root); ...[ 1632]: struct vm_area_struct *vma_interval_tree_iter_first(struct rb_root *root, ...[ 1633]: unsigned long start, unsigned long last); ...[ 1634]: struct vm_area_struct *vma_interval_tree_iter_next(struct vm_area_struct *node, ...[ 1635]: unsigned long start, unsigned long last); ...[ 1641]: static inline __attribute__((no_instrument_function)) void vma_nonlinear_insert(struct vm_area_struct *vma\ ... , ...[ 1642]: struct list_head *list) ...[ 1643]: { ...[ 1644]: list_add_tail(&vma->shared.nonlinear, list); ...[ 1645]: } ...[ 1647]: void anon_vma_interval_tree_insert(struct anon_vma_chain *node, ...[ 1648]: struct rb_root *root); ...[ 1649]: void anon_vma_interval_tree_remove(struct anon_vma_chain *node, ...[ 1650]: struct rb_root *root); ...[ 1651]: struct anon_vma_chain *anon_vma_interval_tree_iter_first( ...[ 1652]: struct rb_root *root, unsigned long start, unsigned long last); ...[ 1653]: struct anon_vma_chain *anon_vma_interval_tree_iter_next( ...[ 1654]: struct anon_vma_chain *node, unsigned long start, unsigned long last); ...[ 1664]: extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); ...[ 1665]: extern int vma_adjust(struct vm_area_struct *vma, unsigned long start, ...[ 1666]: unsigned long end, unsigned long pgoff, struct vm_area_struct *insert); ...[ 1667]: extern struct vm_area_struct *vma_merge(struct mm_struct *, ...[ 1668]: struct vm_area_struct *prev, unsigned long addr, unsigned long end, ...[ 1669]: unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long, ...[ 1670]: struct mempolicy *); ...[ 1671]: extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); ...[ 1672]: extern int split_vma(struct mm_struct *, ...[ 1673]: struct vm_area_struct *, unsigned long addr, int new_below); ...[ 1674]: extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); ...[ 1675]: extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, ...[ 1676]: struct rb_node **, struct rb_node *); ...[ 1677]: extern void unlink_file_vma(struct vm_area_struct *); ...[ 1678]: extern struct vm_area_struct *copy_vma(struct vm_area_struct **, ...[ 1679]: unsigned long addr, unsigned long len, unsigned long pgoff, ...[ 1680]: bool *need_rmap_locks); ...[ 1681]: extern void exit_mmap(struct mm_struct *); ...[ 1683]: extern int mm_take_all_locks(struct mm_struct *mm); ...[ 1684]: extern void mm_drop_all_locks(struct mm_struct *mm); ...[ 1686]: extern void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file); ...[ 1687]: extern struct file *get_mm_exe_file(struct mm_struct *mm); ...[ 1689]: extern int may_expand_vm(struct mm_struct *mm, unsigned long npages); ...[ 1690]: extern int install_special_mapping(struct mm_struct *mm, ...[ 1691]: unsigned long addr, unsigned long len, ...[ 1692]: unsigned long flags, struct page **pages); ...[ 1694]: extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long)\ ... ; ...[ 1696]: extern unsigned long mmap_region(struct file *file, unsigned long addr, ...[ 1697]: unsigned long len, vm_flags_t vm_flags, unsigned long pgoff); ...[ 1698]: extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, ...[ 1699]: unsigned long len, unsigned long prot, unsigned long flags, ...[ 1700]: unsigned long pgoff, unsigned long *populate); ...[ 1701]: extern int do_munmap(struct mm_struct *, unsigned long, size_t); ...[ 1704]: extern int __mm_populate(unsigned long addr, unsigned long len, ...[ 1705]: int ignore_errors); ...[ 1706]: static inline __attribute__((no_instrument_function)) void mm_populate(unsigned long addr, unsigned long len) ...[ 1707]: { ...[ 1709]: (void) __mm_populate(addr, len, 1); ...[ 1710]: } ...[ 1716]: extern unsigned long vm_brk(unsigned long, unsigned long); ...[ 1717]: extern int vm_munmap(unsigned long, size_t); ...[ 1718]: extern unsigned long vm_mmap(struct file *, unsigned long, ...[ 1719]: unsigned long, unsigned long, ...[ 1720]: unsigned long, unsigned long); ...[ 1722]: struct vm_unmapped_area_info { ...[ 1724]: unsigned long flags; ...[ 1725]: unsigned long length; ...[ 1726]: unsigned long low_limit; ...[ 1727]: unsigned long high_limit; ...[ 1728]: unsigned long align_mask; ...[ 1729]: unsigned long align_offset; ...[ 1730]: }; ...[ 1732]: extern unsigned long unmapped_area(struct vm_unmapped_area_info *info); ...[ 1733]: extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info); ...[ 1744]: static inline __attribute__((no_instrument_function)) unsigned long ...[ 1745]: vm_unmapped_area(struct vm_unmapped_area_info *info) ...[ 1746]: { ...[ 1747]: if (!(info->flags & 1)) ...[ 1748]: return unmapped_area(info); ...[ 1749]: else ...[ 1750]: return unmapped_area_topdown(info); ...[ 1751]: } ...[ 1754]: extern void truncate_inode_pages(struct address_space *, loff_t); ...[ 1755]: extern void truncate_inode_pages_range(struct address_space *, ...[ 1756]: loff_t lstart, loff_t lend); ...[ 1759]: extern int filemap_fault(struct vm_area_struct *, struct vm_fault *); ...[ 1760]: extern int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); ...[ 1763]: int write_one_page(struct page *page, int wait); ...[ 1764]: void task_dirty_inc(struct task_struct *tsk); ...[ 1770]: int force_page_cache_readahead(struct address_space *mapping, struct file *filp, ...[ 1771]: unsigned long offset, unsigned long nr_to_read); ...[ 1773]: void page_cache_sync_readahead(struct address_space *mapping, ...[ 1774]: struct file_ra_state *ra, ...[ 1775]: struct file *filp, ...[ 1776]: unsigned long offset, ...[ 1777]: unsigned long size); ...[ 1779]: void page_cache_async_readahead(struct address_space *mapping, ...[ 1780]: struct file_ra_state *ra, ...[ 1781]: struct file *filp, ...[ 1782]: struct page *pg, ...[ 1783]: unsigned long offset, ...[ 1784]: unsigned long size); ...[ 1786]: unsigned long max_sane_readahead(unsigned long nr); ...[ 1787]: unsigned long ra_submit(struct file_ra_state *ra, ...[ 1788]: struct address_space *mapping, ...[ 1789]: struct file *filp); ...[ 1792]: extern int expand_stack(struct vm_area_struct *vma, unsigned long address); ...[ 1795]: extern int expand_downwards(struct vm_area_struct *vma, ...[ 1796]: unsigned long address); ...[ 1804]: extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); ...[ 1805]: extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, ...[ 1806]: struct vm_area_struct **pprev); ...[ 1810]: static inline __attribute__((no_instrument_function)) struct vm_area_struct * find_vma_intersection(struct \ ... mm_struct * mm, unsigned long start_addr, unsigned long end_addr) ...[ 1811]: { ...[ 1812]: struct vm_area_struct * vma = find_vma(mm,start_addr); ...[ 1814]: if (vma && end_addr <= vma->vm_start) ...[ 1815]: vma = ((void *)0); ...[ 1816]: return vma; ...[ 1817]: } ...[ 1819]: static inline __attribute__((no_instrument_function)) unsigned long vma_pages(struct vm_area_struct *vma) ...[ 1820]: { ...[ 1821]: return (vma->vm_end - vma->vm_start) >> 12; ...[ 1822]: } ...[ 1825]: static inline __attribute__((no_instrument_function)) struct vm_area_struct *find_exact_vma(struct mm_struct \ ... *mm, ...[ 1826]: unsigned long vm_start, unsigned long vm_end) ...[ 1827]: { ...[ 1828]: struct vm_area_struct *vma = find_vma(mm, vm_start); ...[ 1830]: if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end)) ...[ 1831]: vma = ((void *)0); ...[ 1833]: return vma; ...[ 1834]: } ...[ 1837]: pgprot_t vm_get_page_prot(unsigned long vm_flags); ...[ 1850]: struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); ...[ 1851]: int remap_pfn_range(struct vm_area_struct *, unsigned long addr, ...[ 1852]: unsigned long pfn, unsigned long size, pgprot_t); ...[ 1853]: int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); ...[ 1854]: int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr, ...[ 1855]: unsigned long pfn); ...[ 1856]: int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr, ...[ 1857]: unsigned long pfn); ...[ 1858]: int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len); ...[ 1861]: struct page *follow_page_mask(struct vm_area_struct *vma, ...[ 1862]: unsigned long address, unsigned int foll_flags, ...[ 1863]: unsigned int *page_mask); ...[ 1865]: static inline __attribute__((no_instrument_function)) struct page *follow_page(struct vm_area_struct *vma, ...[ 1866]: unsigned long address, unsigned int foll_flags) ...[ 1867]: { ...[ 1868]: unsigned int unused_page_mask; ...[ 1869]: return follow_page_mask(vma, address, foll_flags, &unused_page_mask); ...[ 1870]: } ...[ 1885]: typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr, ...[ 1886]: void *data); ...[ 1887]: extern int apply_to_page_range(struct mm_struct *mm, unsigned long address, ...[ 1888]: unsigned long size, pte_fn_t fn, void *data); ...[ 1891]: void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); ...[ 1906]: static inline __attribute__((no_instrument_function)) void ...[ 1907]: kernel_map_pages(struct page *page, int numpages, int enable) {} ...[ 1909]: static inline __attribute__((no_instrument_function)) bool kernel_page_present(struct page *page) { return true\ ... ; } ...[ 1913]: extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm); ...[ 1915]: int in_gate_area_no_mm(unsigned long addr); ...[ 1916]: int in_gate_area(struct mm_struct *mm, unsigned long addr); ...[ 1923]: extern int sysctl_drop_caches; ...[ 1924]: int drop_caches_sysctl_handler(struct ctl_table *, int, ...[ 1925]: void *, size_t *, loff_t *); ...[ 1928]: unsigned long shrink_slab(struct shrink_control *shrink, ...[ 1929]: unsigned long nr_pages_scanned, ...[ 1930]: unsigned long lru_pages); ...[ 1935]: extern int randomize_va_space; ...[ 1938]: const char * arch_vma_name(struct vm_area_struct *vma); ...[ 1939]: void print_vma_addr(char *prefix, unsigned long rip); ...[ 1941]: void sparse_mem_maps_populate_node(struct page **map_map, ...[ 1942]: unsigned long pnum_begin, ...[ 1943]: unsigned long pnum_end, ...[ 1944]: unsigned long map_count, ...[ 1945]: int nodeid); ...[ 1947]: struct page *sparse_mem_map_populate(unsigned long pnum, int nid); ...[ 1948]: pgd_t *vmemmap_pgd_populate(unsigned long addr, int node); ...[ 1949]: pud_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node); ...[ 1950]: pmd_t *vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node); ...[ 1951]: pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node); ...[ 1952]: void *vmemmap_alloc_block(unsigned long size, int node); ...[ 1953]: void *vmemmap_alloc_block_buf(unsigned long size, int node); ...[ 1954]: void vmemmap_verify(pte_t *, int, unsigned long, unsigned long); ...[ 1955]: int vmemmap_populate_basepages(unsigned long start, unsigned long end, ...[ 1956]: int node); ...[ 1957]: int vmemmap_populate(unsigned long start, unsigned long end, int node); ...[ 1958]: void vmemmap_populate_print_last(void); ...[ 1962]: void register_page_bootmem_memmap(unsigned long section_nr, struct page *map, ...[ 1963]: unsigned long size); ...[ 1965]: enum mf_flags { ...[ 1966]: MF_COUNT_INCREASED = 1 << 0, ...[ 1967]: MF_ACTION_REQUIRED = 1 << 1, ...[ 1968]: MF_MUST_KILL = 1 << 2, ...[ 1969]: MF_SOFT_OFFLINE = 1 << 3, ...[ 1970]: }; ...[ 1971]: extern int memory_failure(unsigned long pfn, int trapno, int flags); ...[ 1972]: extern void memory_failure_queue(unsigned long pfn, int trapno, int flags); ...[ 1973]: extern int unpoison_memory(unsigned long pfn); ...[ 1974]: extern int sysctl_memory_failure_early_kill; ...[ 1975]: extern int sysctl_memory_failure_recovery; ...[ 1976]: extern void shake_page(struct page *p, int access); ...[ 1977]: extern atomic_long_t num_poisoned_pages; ...[ 1978]: extern int soft_offline_page(struct page *page, int flags); ...[ 1980]: extern void dump_page(struct page *page); ...[ 1983]: extern void clear_huge_page(struct page *page, ...[ 1984]: unsigned long addr, ...[ 1985]: unsigned int pages_per_huge_page); ...[ 1986]: extern void copy_user_huge_page(struct page *dst, struct page *src, ...[ 1987]: unsigned long addr, struct vm_area_struct *vma, ...[ 1988]: unsigned int pages_per_huge_page); ...[ 2004]: static inline __attribute__((no_instrument_function)) unsigned int debug_guardpage_minorder(void) { return 0\ ... ; } ...[ 2005]: static inline __attribute__((no_instrument_function)) bool page_is_guard(struct page *page) { return false; } ...[ 2009]: void __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) setup_nr_node_ids\ ... (void); ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/mm.h .# Holding FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h ..# Starting FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/freezer.h ...# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/freezer.h ...[ 12]: extern atomic_t system_freezing_cnt; ...[ 13]: extern bool pm_freezing; ...[ 14]: extern bool pm_nosig_freezing; ...[ 19]: extern unsigned int freeze_timeout_msecs; ...[ 24]: static inline __attribute__((no_instrument_function)) bool frozen(struct task_struct *p) ...[ 25]: { ...[ 26]: return p->flags & 0x00010000; ...[ 27]: } ...[ 29]: extern bool freezing_slow_path(struct task_struct *p); ...[ 34]: static inline __attribute__((no_instrument_function)) bool freezing(struct task_struct *p) ...[ 35]: { ...[ 36]: if (__builtin_expect(!!(!atomic_read(&system_freezing_cnt)), 1)) ...[ 37]: return false; ...[ 38]: return freezing_slow_path(p); ...[ 39]: } ...[ 42]: extern void __thaw_task(struct task_struct *t); ...[ 44]: extern bool __refrigerator(bool check_kthr_stop); ...[ 45]: extern int freeze_processes(void); ...[ 46]: extern int freeze_kernel_threads(void); ...[ 47]: extern void thaw_processes(void); ...[ 48]: extern void thaw_kernel_threads(void); ...[ 54]: static inline __attribute__((no_instrument_function)) bool try_to_freeze_unsafe(void) ...[ 55]: { ...[ 56]: do { _cond_resched(); } while (0); ...[ 57]: if (__builtin_expect(!!(!freezing(get_current())), 1)) ...[ 58]: return false; ...[ 59]: return __refrigerator(false); ...[ 60]: } ...[ 62]: static inline __attribute__((no_instrument_function)) bool try_to_freeze(void) ...[ 63]: { ...[ 64]: if (!(get_current()->flags & 0x00008000)) ...[ 65]: debug_check_no_locks_held(); ...[ 66]: return try_to_freeze_unsafe(); ...[ 67]: } ...[ 69]: extern bool freeze_task(struct task_struct *p); ...[ 70]: extern bool set_freezable(void); ...[ 73]: extern bool cgroup_freezing(struct task_struct *task); ...[ 106]: static inline __attribute__((no_instrument_function)) void freezer_do_not_count(void) ...[ 107]: { ...[ 108]: get_current()->flags |= 0x40000000; ...[ 109]: } ...[ 118]: static inline __attribute__((no_instrument_function)) void freezer_count(void) ...[ 119]: { ...[ 120]: get_current()->flags &= ~0x40000000; ...[ 126]: asm volatile("mfence":::"memory"); ...[ 127]: try_to_freeze(); ...[ 128]: } ...[ 131]: static inline __attribute__((no_instrument_function)) void freezer_count_unsafe(void) ...[ 132]: { ...[ 133]: get_current()->flags &= ~0x40000000; ...[ 134]: asm volatile("mfence":::"memory"); ...[ 135]: try_to_freeze_unsafe(); ...[ 136]: } ...[ 148]: static inline __attribute__((no_instrument_function)) bool freezer_should_skip(struct task_struct *p) ...[ 149]: { ...[ 157]: asm volatile("mfence":::"memory"); ...[ 158]: return p->flags & 0x40000000; ...[ 159]: } ...[ 168]: static inline __attribute__((no_instrument_function)) void freezable_schedule(void) ...[ 169]: { ...[ 170]: freezer_do_not_count(); ...[ 171]: schedule(); ...[ 172]: freezer_count(); ...[ 173]: } ...[ 176]: static inline __attribute__((no_instrument_function)) void freezable_schedule_unsafe(void) ...[ 177]: { ...[ 178]: freezer_do_not_count(); ...[ 179]: schedule(); ...[ 180]: freezer_count_unsafe(); ...[ 181]: } ...[ 187]: static inline __attribute__((no_instrument_function)) long freezable_schedule_timeout(long timeout) ...[ 188]: { ...[ 189]: long __retval; ...[ 190]: freezer_do_not_count(); ...[ 191]: __retval = schedule_timeout(timeout); ...[ 192]: freezer_count(); ...[ 193]: return __retval; ...[ 194]: } ...[ 200]: static inline __attribute__((no_instrument_function)) long freezable_schedule_timeout_interruptible(long \ ... timeout) ...[ 201]: { ...[ 202]: long __retval; ...[ 203]: freezer_do_not_count(); ...[ 204]: __retval = schedule_timeout_interruptible(timeout); ...[ 205]: freezer_count(); ...[ 206]: return __retval; ...[ 207]: } ...[ 210]: static inline __attribute__((no_instrument_function)) long freezable_schedule_timeout_killable(long timeout\ ... ) ...[ 211]: { ...[ 212]: long __retval; ...[ 213]: freezer_do_not_count(); ...[ 214]: __retval = schedule_timeout_killable(timeout); ...[ 215]: freezer_count(); ...[ 216]: return __retval; ...[ 217]: } ...[ 220]: static inline __attribute__((no_instrument_function)) long freezable_schedule_timeout_killable_unsafe(long \ ... timeout) ...[ 221]: { ...[ 222]: long __retval; ...[ 223]: freezer_do_not_count(); ...[ 224]: __retval = schedule_timeout_killable(timeout); ...[ 225]: freezer_count_unsafe(); ...[ 226]: return __retval; ...[ 227]: } ...[ 233]: static inline __attribute__((no_instrument_function)) int freezable_schedule_hrtimeout_range(ktime_t *expires\ ... , ...[ 234]: unsigned long delta, const enum hrtimer_mode mode) ...[ 235]: { ...[ 236]: int __retval; ...[ 237]: freezer_do_not_count(); ...[ 238]: __retval = schedule_hrtimeout_range(expires, delta, mode); ...[ 239]: freezer_count(); ...[ 240]: return __retval; ...[ 241]: } ...# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/freezer.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h ..[ 13]: extern void pm_set_vt_switch(int); ..[ 21]: extern int pm_prepare_console(void); ..[ 22]: extern void pm_restore_console(void); ..[ 34]: typedef int suspend_state_t; ..[ 43]: enum suspend_stat_step { ..[ 44]: SUSPEND_FREEZE = 1, ..[ 45]: SUSPEND_PREPARE, ..[ 46]: SUSPEND_SUSPEND, ..[ 47]: SUSPEND_SUSPEND_LATE, ..[ 48]: SUSPEND_SUSPEND_NOIRQ, ..[ 49]: SUSPEND_RESUME_NOIRQ, ..[ 50]: SUSPEND_RESUME_EARLY, ..[ 51]: SUSPEND_RESUME ..[ 52]: }; ..[ 54]: struct suspend_stats { ..[ 55]: int success; ..[ 56]: int fail; ..[ 57]: int failed_freeze; ..[ 58]: int failed_prepare; ..[ 59]: int failed_suspend; ..[ 60]: int failed_suspend_late; ..[ 61]: int failed_suspend_noirq; ..[ 62]: int failed_resume; ..[ 63]: int failed_resume_early; ..[ 64]: int failed_resume_noirq; ..[ 66]: int last_failed_dev; ..[ 67]: char failed_devs[2][40]; ..[ 68]: int last_failed_errno; ..[ 69]: int errno[2]; ..[ 70]: int last_failed_step; ..[ 71]: enum suspend_stat_step failed_steps[2]; ..[ 72]: }; ..[ 74]: extern struct suspend_stats suspend_stats; ..[ 76]: static inline __attribute__((no_instrument_function)) void dpm_save_failed_dev(const char *name) ..[ 77]: { ..[ 78]: strlcpy(suspend_stats.failed_devs[suspend_stats.last_failed_dev], ..[ 79]: name, ..[ 80]: sizeof(suspend_stats.failed_devs[0])); ..[ 81]: suspend_stats.last_failed_dev++; ..[ 82]: suspend_stats.last_failed_dev %= 2; ..[ 83]: } ..[ 85]: static inline __attribute__((no_instrument_function)) void dpm_save_failed_errno(int err) ..[ 86]: { ..[ 87]: suspend_stats.errno[suspend_stats.last_failed_errno] = err; ..[ 88]: suspend_stats.last_failed_errno++; ..[ 89]: suspend_stats.last_failed_errno %= 2; ..[ 90]: } ..[ 92]: static inline __attribute__((no_instrument_function)) void dpm_save_failed_step(enum suspend_stat_step step\ .. ) ..[ 93]: { ..[ 94]: suspend_stats.failed_steps[suspend_stats.last_failed_step] = step; ..[ 95]: suspend_stats.last_failed_step++; ..[ 96]: suspend_stats.last_failed_step %= 2; ..[ 97]: } ..[ 177]: struct platform_suspend_ops { ..[ 178]: int (*valid)(suspend_state_t state); ..[ 179]: int (*begin)(suspend_state_t state); ..[ 180]: int (*prepare)(void); ..[ 181]: int (*prepare_late)(void); ..[ 182]: int (*enter)(suspend_state_t state); ..[ 183]: void (*wake)(void); ..[ 184]: void (*finish)(void); ..[ 185]: bool (*suspend_again)(void); ..[ 186]: void (*end)(void); ..[ 187]: void (*recover)(void); ..[ 188]: }; ..[ 195]: extern void suspend_set_ops(const struct platform_suspend_ops *ops); ..[ 196]: extern int suspend_valid_only_mem(suspend_state_t state); ..[ 197]: extern void freeze_wake(void); ..[ 206]: extern void arch_suspend_disable_irqs(void); ..[ 215]: extern void arch_suspend_enable_irqs(void); ..[ 217]: extern int pm_suspend(suspend_state_t state); ..[ 230]: struct pbe { ..[ 231]: void *address; ..[ 232]: void *orig_address; ..[ 233]: struct pbe *next; ..[ 234]: }; ..[ 237]: extern void mark_free_pages(struct zone *zone); ..[ 291]: struct platform_hibernation_ops { ..[ 292]: int (*begin)(void); ..[ 293]: void (*end)(void); ..[ 294]: int (*pre_snapshot)(void); ..[ 295]: void (*finish)(void); ..[ 296]: int (*prepare)(void); ..[ 297]: int (*enter)(void); ..[ 298]: void (*leave)(void); ..[ 299]: int (*pre_restore)(void); ..[ 300]: void (*restore_cleanup)(void); ..[ 301]: void (*recover)(void); ..[ 302]: }; ..[ 306]: extern void __register_nosave_region(unsigned long b, unsigned long e, int km); ..[ 307]: static inline __attribute__((no_instrument_function)) void __attribute__ ((__section__(".init.text"))) __attribute__\ .. ((no_instrument_function)) register_nosave_region(unsigned long b, unsigned long e) ..[ 308]: { ..[ 309]: __register_nosave_region(b, e, 0); ..[ 310]: } ..[ 311]: static inline __attribute__((no_instrument_function)) void __attribute__ ((__section__(".init.text"))) __attribute__\ .. ((no_instrument_function)) register_nosave_region_late(unsigned long b, unsigned long e) ..[ 312]: { ..[ 313]: __register_nosave_region(b, e, 1); ..[ 314]: } ..[ 315]: extern int swsusp_page_is_forbidden(struct page *); ..[ 316]: extern void swsusp_set_page_free(struct page *); ..[ 317]: extern void swsusp_unset_page_free(struct page *); ..[ 318]: extern unsigned long get_safe_page(gfp_t gfp_mask); ..[ 320]: extern void hibernation_set_ops(const struct platform_hibernation_ops *ops); ..[ 321]: extern int hibernate(void); ..[ 322]: extern bool system_entering_hibernation(void); ..[ 343]: extern struct mutex pm_mutex; ..[ 346]: void save_processor_state(void); ..[ 347]: void restore_processor_state(void); ..[ 350]: extern int register_pm_notifier(struct notifier_block *nb); ..[ 351]: extern int unregister_pm_notifier(struct notifier_block *nb); ..[ 360]: extern bool events_check_enabled; ..[ 362]: extern bool pm_wakeup_pending(void); ..[ 363]: extern bool pm_get_wakeup_count(unsigned int *count, bool block); ..[ 364]: extern bool pm_save_wakeup_count(unsigned int count); ..[ 365]: extern void pm_wakep_autosleep_enabled(bool set); ..[ 366]: extern void pm_print_active_wakeup_sources(void); ..[ 368]: static inline __attribute__((no_instrument_function)) void lock_system_sleep(void) ..[ 369]: { ..[ 370]: get_current()->flags |= 0x40000000; ..[ 371]: mutex_lock(&pm_mutex); ..[ 372]: } ..[ 374]: static inline __attribute__((no_instrument_function)) void unlock_system_sleep(void) ..[ 375]: { ..[ 391]: get_current()->flags &= ~0x40000000; ..[ 392]: mutex_unlock(&pm_mutex); ..[ 393]: } ..[ 417]: extern bool pm_print_times_enabled; ..[ 429]: static inline __attribute__((no_instrument_function)) void queue_up_suspend_work(void) {} ..[ 450]: static inline __attribute__((no_instrument_function)) unsigned long page_key_additional_pages(unsigned long \ .. pages) ..[ 451]: { ..[ 452]: return 0; ..[ 453]: } ..[ 455]: static inline __attribute__((no_instrument_function)) int page_key_alloc(unsigned long pages) ..[ 456]: { ..[ 457]: return 0; ..[ 458]: } ..[ 460]: static inline __attribute__((no_instrument_function)) void page_key_free(void) {} ..[ 461]: static inline __attribute__((no_instrument_function)) void page_key_read(unsigned long *pfn) {} ..[ 462]: static inline __attribute__((no_instrument_function)) void page_key_memorize(unsigned long *pfn) {} ..[ 463]: static inline __attribute__((no_instrument_function)) void page_key_write(void *address) {} ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/include/linux/suspend.h # Holding FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .# Starting FILE: /Users/paulross/dev/linux/linux-3.13/kernel/smpboot.h ..# Back in FILE: /Users/paulross/dev/linux/linux-3.13/kernel/smpboot.h ..[ 4]: struct task_struct; ..[ 7]: struct task_struct *idle_thread_get(unsigned int cpu); ..[ 8]: void idle_thread_set_boot_cpu(void); ..[ 9]: void idle_threads_init(void); ..[ 16]: int smpboot_create_threads(unsigned int cpu); ..[ 17]: void smpboot_park_threads(unsigned int cpu); ..[ 18]: void smpboot_unpark_threads(unsigned int cpu); ..# Ending FILE: /Users/paulross/dev/linux/linux-3.13/kernel/smpboot.h .# Back in FILE: /Users/paulross/dev/linux/linux-3.13/kernel/cpu.c .[ 27]: static struct mutex cpu_add_remove_lock = { .count = { (1) } , .wait_lock = (spinlock_t ) { { .rlock = { .raw_lock = { { 0 } }, \ . } } } , .wait_list = { &(cpu_add_remove_lock.wait_list), &(cpu_add_remove_lock.wait_list) } }; .[ 33]: void cpu_maps_update_begin(void) .[ 34]: { .[ 35]: mutex_lock(&cpu_add_remove_lock); .[ 36]: } .[ 38]: void cpu_maps_update_done(void) .[ 39]: { .[ 40]: mutex_unlock(&cpu_add_remove_lock); .[ 41]: } .[ 43]: static struct raw_notifier_head cpu_chain = { .head = ((void *)0) }; .[ 48]: static int cpu_hotplug_disabled; .[ 52]: static struct { .[ 53]: struct task_struct *active_writer; .[ 54]: struct mutex lock; .[ 59]: int refcount; .[ 60]: } cpu_hotplug = { .[ 61]: .active_writer = ((void *)0), .[ 62]: .lock = { .count = { (1) } , .wait_lock = (spinlock_t ) { { .rlock = { .raw_lock = { { 0 } }, } } } , .wait_list = { &(cpu_hotplug.lock\ . .wait_list), &(cpu_hotplug.lock.wait_list) } }, .[ 63]: .refcount = 0, .[ 64]: }; .[ 66]: void get_online_cpus(void) .[ 67]: { .[ 68]: do { _cond_resched(); } while (0); .[ 69]: if (cpu_hotplug.active_writer == get_current()) .[ 70]: return; .[ 71]: mutex_lock(&cpu_hotplug.lock); .[ 72]: cpu_hotplug.refcount++; .[ 73]: mutex_unlock(&cpu_hotplug.lock); .[ 75]: } .[ 76]: extern typeof(get_online_cpus) get_online_cpus; extern void *__crc_get_online_cpus __attribute__((weak)); static \ . const unsigned long __kcrctab_get_online_cpus __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "_gpl" "+" "get_online_cpus"), unused)) = (unsigned long) &__crc_get_online_cpus; static const char __kstrtab_get_online_cpus\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "get_online_cpus"; const struct kernel_symbol \ . __ksymtab_get_online_cpus __attribute__((__used__)) __attribute__((section("___ksymtab" "_gpl" "+" "get_online_cpus"\ . ), unused)) = { (unsigned long)&get_online_cpus, __kstrtab_get_online_cpus }; .[ 78]: void put_online_cpus(void) .[ 79]: { .[ 80]: if (cpu_hotplug.active_writer == get_current()) .[ 81]: return; .[ 82]: mutex_lock(&cpu_hotplug.lock); .[ 84]: if (({ int __ret_warn_on = !!(!cpu_hotplug.refcount); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null\ . (__FILE__, __LINE__); __builtin_expect(!!(__ret_warn_on), 0); })) .[ 85]: cpu_hotplug.refcount++; .[ 87]: if (!--cpu_hotplug.refcount && __builtin_expect(!!(cpu_hotplug.active_writer), 0)) .[ 88]: wake_up_process(cpu_hotplug.active_writer); .[ 89]: mutex_unlock(&cpu_hotplug.lock); .[ 91]: } .[ 92]: extern typeof(put_online_cpus) put_online_cpus; extern void *__crc_put_online_cpus __attribute__((weak)); static \ . const unsigned long __kcrctab_put_online_cpus __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "_gpl" "+" "put_online_cpus"), unused)) = (unsigned long) &__crc_put_online_cpus; static const char __kstrtab_put_online_cpus\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "put_online_cpus"; const struct kernel_symbol \ . __ksymtab_put_online_cpus __attribute__((__used__)) __attribute__((section("___ksymtab" "_gpl" "+" "put_online_cpus"\ . ), unused)) = { (unsigned long)&put_online_cpus, __kstrtab_put_online_cpus }; .[ 116]: void cpu_hotplug_begin(void) .[ 117]: { .[ 118]: cpu_hotplug.active_writer = get_current(); .[ 120]: for (;;) { .[ 121]: mutex_lock(&cpu_hotplug.lock); .[ 122]: if (__builtin_expect(!!(!cpu_hotplug.refcount), 1)) .[ 123]: break; .[ 124]: do { get_current()->state = (2); } while (0); .[ 125]: mutex_unlock(&cpu_hotplug.lock); .[ 126]: schedule(); .[ 127]: } .[ 128]: } .[ 130]: void cpu_hotplug_done(void) .[ 131]: { .[ 132]: cpu_hotplug.active_writer = ((void *)0); .[ 133]: mutex_unlock(&cpu_hotplug.lock); .[ 134]: } .[ 143]: void cpu_hotplug_disable(void) .[ 144]: { .[ 145]: cpu_maps_update_begin(); .[ 146]: cpu_hotplug_disabled = 1; .[ 147]: cpu_maps_update_done(); .[ 148]: } .[ 150]: void cpu_hotplug_enable(void) .[ 151]: { .[ 152]: cpu_maps_update_begin(); .[ 153]: cpu_hotplug_disabled = 0; .[ 154]: cpu_maps_update_done(); .[ 155]: } .[ 160]: int __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) register_cpu_notifier(struct notifier_block \ . *nb) .[ 161]: { .[ 162]: int ret; .[ 163]: cpu_maps_update_begin(); .[ 164]: ret = raw_notifier_chain_register(&cpu_chain, nb); .[ 165]: cpu_maps_update_done(); .[ 166]: return ret; .[ 167]: } .[ 169]: static int __cpu_notify(unsigned long val, void *v, int nr_to_call, .[ 170]: int *nr_calls) .[ 171]: { .[ 172]: int ret; .[ 174]: ret = __raw_notifier_call_chain(&cpu_chain, val, v, nr_to_call, .[ 175]: nr_calls); .[ 177]: return notifier_to_errno(ret); .[ 178]: } .[ 180]: static int cpu_notify(unsigned long val, void *v) .[ 181]: { .[ 182]: return __cpu_notify(val, v, -1, ((void *)0)); .[ 183]: } .[ 187]: static void cpu_notify_nofail(unsigned long val, void *v) .[ 188]: { .[ 189]: do { if (__builtin_expect(!!(cpu_notify(val, v)), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" \ . "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__\ . ), "i" (sizeof(struct bug_entry))); do { } while (1); } while (0); } while(0); .[ 190]: } .[ 191]: extern typeof(register_cpu_notifier) register_cpu_notifier; extern void *__crc_register_cpu_notifier __attribute__\ . ((weak)); static const unsigned long __kcrctab_register_cpu_notifier __attribute__((__used__)) __attribute__\ . ((section("___kcrctab" "" "+" "register_cpu_notifier"), unused)) = (unsigned long) &__crc_register_cpu_notifier\ . ; static const char __kstrtab_register_cpu_notifier[] __attribute__((section("__ksymtab_strings"), aligned\ . (1))) = "register_cpu_notifier"; const struct kernel_symbol __ksymtab_register_cpu_notifier __attribute__((\ . __used__)) __attribute__((section("___ksymtab" "" "+" "register_cpu_notifier"), unused)) = { (unsigned long)&\ . register_cpu_notifier, __kstrtab_register_cpu_notifier }; .[ 193]: void __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) unregister_cpu_notifier(struct \ . notifier_block *nb) .[ 194]: { .[ 195]: cpu_maps_update_begin(); .[ 196]: raw_notifier_chain_unregister(&cpu_chain, nb); .[ 197]: cpu_maps_update_done(); .[ 198]: } .[ 199]: extern typeof(unregister_cpu_notifier) unregister_cpu_notifier; extern void *__crc_unregister_cpu_notifier \ . __attribute__((weak)); static const unsigned long __kcrctab_unregister_cpu_notifier __attribute__((__used__\ . )) __attribute__((section("___kcrctab" "" "+" "unregister_cpu_notifier"), unused)) = (unsigned long) &__crc_unregister_cpu_notifier\ . ; static const char __kstrtab_unregister_cpu_notifier[] __attribute__((section("__ksymtab_strings"), aligned\ . (1))) = "unregister_cpu_notifier"; const struct kernel_symbol __ksymtab_unregister_cpu_notifier __attribute__\ . ((__used__)) __attribute__((section("___ksymtab" "" "+" "unregister_cpu_notifier"), unused)) = { (unsigned long\ . )&unregister_cpu_notifier, __kstrtab_unregister_cpu_notifier }; .[ 213]: void clear_tasks_mm_cpumask(int cpu) .[ 214]: { .[ 215]: struct task_struct *p; .[ 224]: ({ int __ret_warn_on = !!((__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check\ . ((cpu))), ((((cpu_online_mask))->bits))) : variable_test_bit((cpumask_check((cpu))), ((((cpu_online_mask\ . ))->bits))))); if (__builtin_expect(!!(__ret_warn_on), 0)) warn_slowpath_null(__FILE__, __LINE__); __builtin_expect\ . (!!(__ret_warn_on), 0); }); .[ 225]: rcu_read_lock(); .[ 226]: for (p = &init_task ; (p = ({typeof (*(p)->tasks.next) *__ptr = (typeof (*(p)->tasks.next) *)(p)->tasks.next; ({ const \ . typeof( ((struct task_struct *)0)->tasks ) *__mptr = ((typeof((p)->tasks.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,tasks\ . ) );}); })) != &init_task ; ) { .[ 227]: struct task_struct *t; .[ 233]: t = find_lock_task_mm(p); .[ 234]: if (!t) .[ 235]: continue; .[ 236]: cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); .[ 237]: task_unlock(t); .[ 238]: } .[ 239]: rcu_read_unlock(); .[ 240]: } .[ 242]: static inline __attribute__((no_instrument_function)) void check_for_tasks(int cpu) .[ 243]: { .[ 244]: struct task_struct *p; .[ 245]: cputime_t utime, stime; .[ 247]: _raw_write_lock_irq(&tasklist_lock); .[ 248]: for (p = &init_task ; (p = ({typeof (*(p)->tasks.next) *__ptr = (typeof (*(p)->tasks.next) *)(p)->tasks.next; ({ const \ . typeof( ((struct task_struct *)0)->tasks ) *__mptr = ((typeof((p)->tasks.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,tasks\ . ) );}); })) != &init_task ; ) { .[ 249]: task_cputime(p, &utime, &stime); .[ 250]: if (task_cpu(p) == cpu && p->state == 0 && .[ 251]: (utime || stime)) .[ 252]: printk("\001" "4" "Task %s (pid = %d) is on cpu %d " .[ 253]: "(state = %ld, flags = %x)\n", .[ 254]: p->comm, task_pid_nr(p), cpu, .[ 255]: p->state, p->flags); .[ 256]: } .[ 257]: __raw_write_unlock_irq(&tasklist_lock); .[ 258]: } .[ 260]: struct take_cpu_down_param { .[ 261]: unsigned long mod; .[ 262]: void *hcpu; .[ 263]: }; .[ 266]: static int __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) take_cpu_down(void *_param\ . ) .[ 267]: { .[ 268]: struct take_cpu_down_param *param = _param; .[ 269]: int err; .[ 272]: err = __cpu_disable(); .[ 273]: if (err < 0) .[ 274]: return err; .[ 276]: cpu_notify(0x0008 | param->mod, param->hcpu); .[ 278]: kthread_park(get_current()); .[ 279]: return 0; .[ 280]: } .[ 283]: static int __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) _cpu_down(unsigned int cpu, \ . int tasks_frozen) .[ 284]: { .[ 285]: int err, nr_calls = 0; .[ 286]: void *hcpu = (void *)(long)cpu; .[ 287]: unsigned long mod = tasks_frozen ? 0x0010 : 0; .[ 288]: struct take_cpu_down_param tcd_param = { .[ 289]: .mod = mod, .[ 290]: .hcpu = hcpu, .[ 291]: }; .[ 293]: if (cpumask_weight(cpu_online_mask) == 1) .[ 294]: return -16; .[ 296]: if (!(__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check((cpu))), ((((cpu_online_mask\ . ))->bits))) : variable_test_bit((cpumask_check((cpu))), ((((cpu_online_mask))->bits))))) .[ 297]: return -22; .[ 299]: cpu_hotplug_begin(); .[ 301]: err = __cpu_notify(0x0005 | mod, hcpu, -1, &nr_calls); .[ 302]: if (err) { .[ 303]: nr_calls--; .[ 304]: __cpu_notify(0x0006 | mod, hcpu, nr_calls, ((void *)0)); .[ 305]: printk("%s: attempt to take down CPU %u failed\n", .[ 306]: __func__, cpu); .[ 307]: goto out_release; .[ 308]: } .[ 323]: synchronize_rcu(); .[ 325]: smpboot_park_threads(cpu); .[ 331]: err = __stop_machine(take_cpu_down, &tcd_param, (get_cpu_mask(cpu))); .[ 332]: if (err) { .[ 334]: smpboot_unpark_threads(cpu); .[ 335]: cpu_notify_nofail(0x0006 | mod, hcpu); .[ 336]: goto out_release; .[ 337]: } .[ 338]: do { if (__builtin_expect(!!((__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check\ . ((cpu))),(((( cpu_online_mask))->bits))) : variable_test_bit((cpumask_check((cpu))),(((( cpu_online_mask\ . ))->bits))))), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" \ . "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry\ . ))); do { } while (1); } while (0); } while(0); .[ 347]: while (!idle_cpu(cpu)) .[ 348]: cpu_relax(); .[ 351]: __cpu_die(cpu); .[ 354]: cpu_notify_nofail(0x0007 | mod, hcpu); .[ 356]: check_for_tasks(cpu); .[ 358]: out_release: .[ 359]: cpu_hotplug_done(); .[ 360]: if (!err) .[ 361]: cpu_notify_nofail(0x0009 | mod, hcpu); .[ 362]: return err; .[ 363]: } .[ 365]: int __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) cpu_down(unsigned int cpu) .[ 366]: { .[ 367]: int err; .[ 369]: cpu_maps_update_begin(); .[ 371]: if (cpu_hotplug_disabled) { .[ 372]: err = -16; .[ 373]: goto out; .[ 374]: } .[ 376]: err = _cpu_down(cpu, 0); .[ 378]: out: .[ 379]: cpu_maps_update_done(); .[ 380]: return err; .[ 381]: } .[ 382]: extern typeof(cpu_down) cpu_down; extern void *__crc_cpu_down __attribute__((weak)); static const unsigned long \ . __kcrctab_cpu_down __attribute__((__used__)) __attribute__((section("___kcrctab" "" "+" "cpu_down"), unused\ . )) = (unsigned long) &__crc_cpu_down; static const char __kstrtab_cpu_down[] __attribute__((section("__ksymtab_strings"\ . ), aligned(1))) = "cpu_down"; const struct kernel_symbol __ksymtab_cpu_down __attribute__((__used__)) __attribute__\ . ((section("___ksymtab" "" "+" "cpu_down"), unused)) = { (unsigned long)&cpu_down, __kstrtab_cpu_down }; .[ 386]: static int _cpu_up(unsigned int cpu, int tasks_frozen) .[ 387]: { .[ 388]: int ret, nr_calls = 0; .[ 389]: void *hcpu = (void *)(long)cpu; .[ 390]: unsigned long mod = tasks_frozen ? 0x0010 : 0; .[ 391]: struct task_struct *idle; .[ 393]: cpu_hotplug_begin(); .[ 395]: if ((__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check((cpu))), ((((cpu_online_mask\ . ))->bits))) : variable_test_bit((cpumask_check((cpu))), ((((cpu_online_mask))->bits)))) || !(__builtin_constant_p\ . ((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check((cpu))), ((((cpu_present_mask))->bits))) : variable_test_bit\ . ((cpumask_check((cpu))), ((((cpu_present_mask))->bits))))) { .[ 396]: ret = -22; .[ 397]: goto out; .[ 398]: } .[ 400]: idle = idle_thread_get(cpu); .[ 401]: if (IS_ERR(idle)) { .[ 402]: ret = PTR_ERR(idle); .[ 403]: goto out; .[ 404]: } .[ 406]: ret = smpboot_create_threads(cpu); .[ 407]: if (ret) .[ 408]: goto out; .[ 410]: ret = __cpu_notify(0x0003 | mod, hcpu, -1, &nr_calls); .[ 411]: if (ret) { .[ 412]: nr_calls--; .[ 413]: printk("\001" "4" "%s: attempt to bring up CPU %u failed\n", .[ 414]: __func__, cpu); .[ 415]: goto out_notify; .[ 416]: } .[ 419]: ret = __cpu_up(cpu, idle); .[ 420]: if (ret != 0) .[ 421]: goto out_notify; .[ 422]: do { if (__builtin_expect(!!(!(__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check\ . ((cpu))),(((( cpu_online_mask))->bits))) : variable_test_bit((cpumask_check((cpu))),(((( cpu_online_mask\ . ))->bits))))), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" "2:\t.long 1b - 2b, %c0 - 2b\n" \ . "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__), "i" (sizeof(struct bug_entry\ . ))); do { } while (1); } while (0); } while(0); .[ 425]: smpboot_unpark_threads(cpu); .[ 428]: cpu_notify(0x0002 | mod, hcpu); .[ 430]: out_notify: .[ 431]: if (ret != 0) .[ 432]: __cpu_notify(0x0004 | mod, hcpu, nr_calls, ((void *)0)); .[ 433]: out: .[ 434]: cpu_hotplug_done(); .[ 436]: return ret; .[ 437]: } .[ 439]: int cpu_up(unsigned int cpu) .[ 440]: { .[ 441]: int err = 0; .[ 443]: if (!(__builtin_constant_p((cpumask_check((cpu)))) ? constant_test_bit((cpumask_check((cpu))), ((((cpu_possible_mask\ . ))->bits))) : variable_test_bit((cpumask_check((cpu))), ((((cpu_possible_mask))->bits))))) { .[ 444]: printk("\001" "3" "can't online cpu %d because it is not " .[ 445]: "configured as may-hotadd at boot time\n", cpu); .[ 450]: return -22; .[ 451]: } .[ 453]: err = try_online_node(cpu_to_node(cpu)); .[ 454]: if (err) .[ 455]: return err; .[ 457]: cpu_maps_update_begin(); .[ 459]: if (cpu_hotplug_disabled) { .[ 460]: err = -16; .[ 461]: goto out; .[ 462]: } .[ 464]: err = _cpu_up(cpu, 0); .[ 466]: out: .[ 467]: cpu_maps_update_done(); .[ 468]: return err; .[ 469]: } .[ 470]: extern typeof(cpu_up) cpu_up; extern void *__crc_cpu_up __attribute__((weak)); static const unsigned long __kcrctab_cpu_up \ . __attribute__((__used__)) __attribute__((section("___kcrctab" "_gpl" "+" "cpu_up"), unused)) = (unsigned long\ . ) &__crc_cpu_up; static const char __kstrtab_cpu_up[] __attribute__((section("__ksymtab_strings"), aligned(\ . 1))) = "cpu_up"; const struct kernel_symbol __ksymtab_cpu_up __attribute__((__used__)) __attribute__((section\ . ("___ksymtab" "_gpl" "+" "cpu_up"), unused)) = { (unsigned long)&cpu_up, __kstrtab_cpu_up }; .[ 473]: static cpumask_var_t frozen_cpus; .[ 475]: int disable_nonboot_cpus(void) .[ 476]: { .[ 477]: int cpu, first_cpu, error = 0; .[ 479]: cpu_maps_update_begin(); .[ 480]: first_cpu = cpumask_first(cpu_online_mask); .[ 485]: cpumask_clear(frozen_cpus); .[ 487]: printk("Disabling non-boot CPUs ...\n"); .[ 488]: for (((cpu)) = -1; ((cpu)) = cpumask_next(((cpu)), (cpu_online_mask)), ((cpu)) < nr_cpu_ids;) { .[ 489]: if (cpu == first_cpu) .[ 490]: continue; .[ 491]: error = _cpu_down(cpu, 1); .[ 492]: if (!error) .[ 493]: cpumask_set_cpu(cpu, frozen_cpus); .[ 494]: else { .[ 495]: printk("\001" "3" "Error taking CPU%d down: %d\n", .[ 496]: cpu, error); .[ 497]: break; .[ 498]: } .[ 499]: } .[ 501]: if (!error) { .[ 502]: do { if (__builtin_expect(!!(cpumask_weight(cpu_online_mask) > 1), 0)) do { asm volatile("1:\tud2\n" ".pushsection __bug_table,\"a\"\n" \ . "2:\t.long 1b - 2b, %c0 - 2b\n" "\t.word %c1, 0\n" "\t.org 2b+%c2\n" ".popsection" : : "i" (__FILE__), "i" (__LINE__\ . ), "i" (sizeof(struct bug_entry))); do { } while (1); } while (0); } while(0); .[ 504]: cpu_hotplug_disabled = 1; .[ 505]: } else { .[ 506]: printk("\001" "3" "Non-boot CPUs are not disabled\n"); .[ 507]: } .[ 508]: cpu_maps_update_done(); .[ 509]: return error; .[ 510]: } .[ 512]: void __attribute__((weak)) arch_enable_nonboot_cpus_begin(void) .[ 513]: { .[ 514]: } .[ 516]: void __attribute__((weak)) arch_enable_nonboot_cpus_end(void) .[ 517]: { .[ 518]: } .[ 520]: void __attribute__ ((__section__(".ref.text"))) __attribute__((noinline)) enable_nonboot_cpus(void) .[ 521]: { .[ 522]: int cpu, error; .[ 525]: cpu_maps_update_begin(); .[ 526]: cpu_hotplug_disabled = 0; .[ 527]: if (cpumask_empty(frozen_cpus)) .[ 528]: goto out; .[ 530]: printk("\001" "6" "Enabling non-boot CPUs ...\n"); .[ 532]: arch_enable_nonboot_cpus_begin(); .[ 534]: for ((cpu) = -1; (cpu) = cpumask_next((cpu), (frozen_cpus)), (cpu) < nr_cpu_ids;) { .[ 535]: error = _cpu_up(cpu, 1); .[ 536]: if (!error) { .[ 537]: printk("\001" "6" "CPU%d is up\n", cpu); .[ 538]: continue; .[ 539]: } .[ 540]: printk("\001" "4" "Error taking CPU%d up: %d\n", cpu, error); .[ 541]: } .[ 543]: arch_enable_nonboot_cpus_end(); .[ 545]: cpumask_clear(frozen_cpus); .[ 546]: out: .[ 547]: cpu_maps_update_done(); .[ 548]: } .[ 550]: static int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) alloc_frozen_cpus\ . (void) .[ 551]: { .[ 552]: if (!alloc_cpumask_var(&frozen_cpus, ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u))|(( gfp_t)0x8000u))) .[ 553]: return -12; .[ 554]: return 0; .[ 555]: } .[ 556]: static initcall_t __initcall_alloc_frozen_cpus1 __attribute__((__used__)) __attribute__((__section__(".initcall" \ . "1" ".init"))) = alloc_frozen_cpus; .[ 569]: static int .[ 570]: cpu_hotplug_pm_callback(struct notifier_block *nb, .[ 571]: unsigned long action, void *ptr) .[ 572]: { .[ 573]: switch (action) { .[ 575]: case 0x0003: .[ 576]: case 0x0001: .[ 577]: cpu_hotplug_disable(); .[ 578]: break; .[ 580]: case 0x0004: .[ 581]: case 0x0002: .[ 582]: cpu_hotplug_enable(); .[ 583]: break; .[ 585]: default: .[ 586]: return 0x0000; .[ 587]: } .[ 589]: return 0x0001; .[ 590]: } .[ 593]: static int __attribute__ ((__section__(".init.text"))) __attribute__((no_instrument_function)) cpu_hotplug_pm_sync_init\ . (void) .[ 594]: { .[ 600]: { static struct notifier_block cpu_hotplug_pm_callback_nb = { .notifier_call = cpu_hotplug_pm_callback, .priority \ . = 0 }; register_pm_notifier(&cpu_hotplug_pm_callback_nb); }; .[ 601]: return 0; .[ 602]: } .[ 603]: static initcall_t __initcall_cpu_hotplug_pm_sync_init1 __attribute__((__used__)) __attribute__((__section__\ . (".initcall" "1" ".init"))) = cpu_hotplug_pm_sync_init; .[ 615]: void notify_cpu_starting(unsigned int cpu) .[ 616]: { .[ 617]: unsigned long val = 0x000A; .[ 620]: if (frozen_cpus != ((void *)0) && (__builtin_constant_p((cpumask_check(cpu))) ? constant_test_bit((cpumask_check\ . (cpu)), ((((frozen_cpus))->bits))) : variable_test_bit((cpumask_check(cpu)), ((((frozen_cpus))->bits))))\ . ) .[ 621]: val = (0x000A | 0x0010); .[ 623]: cpu_notify(val, (void *)(long)cpu); .[ 624]: } .[ 642]: const unsigned long cpu_bit_bitmap[64+1][(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] = { .[ 644]: [0+1][0] = (1UL << (0)), [0+1+1][0] = (1UL << (0+1)), [0+2+1][0] = (1UL << (0+2)), [0+2+1+1][0] = (1UL << (0+2+1)), [0+4\ . +1][0] = (1UL << (0+4)), [0+4+1+1][0] = (1UL << (0+4+1)), [0+4+2+1][0] = (1UL << (0+4+2)), [0+4+2+1+1][0] = (1UL << (0+\ . 4+2+1)), [8+1][0] = (1UL << (8)), [8+1+1][0] = (1UL << (8+1)), [8+2+1][0] = (1UL << (8+2)), [8+2+1+1][0] = (1UL << (8+2+\ . 1)), [8+4+1][0] = (1UL << (8+4)), [8+4+1+1][0] = (1UL << (8+4+1)), [8+4+2+1][0] = (1UL << (8+4+2)), [8+4+2+1+1][0] = (\ . 1UL << (8+4+2+1)), .[ 645]: [16+1][0] = (1UL << (16)), [16+1+1][0] = (1UL << (16+1)), [16+2+1][0] = (1UL << (16+2)), [16+2+1+1][0] = (1UL << (16+2+\ . 1)), [16+4+1][0] = (1UL << (16+4)), [16+4+1+1][0] = (1UL << (16+4+1)), [16+4+2+1][0] = (1UL << (16+4+2)), [16+4+2+1+\ . 1][0] = (1UL << (16+4+2+1)), [24+1][0] = (1UL << (24)), [24+1+1][0] = (1UL << (24+1)), [24+2+1][0] = (1UL << (24+2)), [24\ . +2+1+1][0] = (1UL << (24+2+1)), [24+4+1][0] = (1UL << (24+4)), [24+4+1+1][0] = (1UL << (24+4+1)), [24+4+2+1][0] = (1UL \ . << (24+4+2)), [24+4+2+1+1][0] = (1UL << (24+4+2+1)), .[ 647]: [32+1][0] = (1UL << (32)), [32+1+1][0] = (1UL << (32+1)), [32+2+1][0] = (1UL << (32+2)), [32+2+1+1][0] = (1UL << (32+2+\ . 1)), [32+4+1][0] = (1UL << (32+4)), [32+4+1+1][0] = (1UL << (32+4+1)), [32+4+2+1][0] = (1UL << (32+4+2)), [32+4+2+1+\ . 1][0] = (1UL << (32+4+2+1)), [40+1][0] = (1UL << (40)), [40+1+1][0] = (1UL << (40+1)), [40+2+1][0] = (1UL << (40+2)), [40\ . +2+1+1][0] = (1UL << (40+2+1)), [40+4+1][0] = (1UL << (40+4)), [40+4+1+1][0] = (1UL << (40+4+1)), [40+4+2+1][0] = (1UL \ . << (40+4+2)), [40+4+2+1+1][0] = (1UL << (40+4+2+1)), .[ 648]: [48+1][0] = (1UL << (48)), [48+1+1][0] = (1UL << (48+1)), [48+2+1][0] = (1UL << (48+2)), [48+2+1+1][0] = (1UL << (48+2+\ . 1)), [48+4+1][0] = (1UL << (48+4)), [48+4+1+1][0] = (1UL << (48+4+1)), [48+4+2+1][0] = (1UL << (48+4+2)), [48+4+2+1+\ . 1][0] = (1UL << (48+4+2+1)), [56+1][0] = (1UL << (56)), [56+1+1][0] = (1UL << (56+1)), [56+2+1][0] = (1UL << (56+2)), [56\ . +2+1+1][0] = (1UL << (56+2+1)), [56+4+1][0] = (1UL << (56+4)), [56+4+1+1][0] = (1UL << (56+4+1)), [56+4+2+1][0] = (1UL \ . << (56+4+2)), [56+4+2+1+1][0] = (1UL << (56+4+2+1)), .[ 650]: }; .[ 651]: extern typeof(cpu_bit_bitmap) cpu_bit_bitmap; extern void *__crc_cpu_bit_bitmap __attribute__((weak)); static \ . const unsigned long __kcrctab_cpu_bit_bitmap __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "_gpl" "+" "cpu_bit_bitmap"), unused)) = (unsigned long) &__crc_cpu_bit_bitmap; static const char __kstrtab_cpu_bit_bitmap\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "cpu_bit_bitmap"; const struct kernel_symbol \ . __ksymtab_cpu_bit_bitmap __attribute__((__used__)) __attribute__((section("___ksymtab" "_gpl" "+" "cpu_bit_bitmap"\ . ), unused)) = { (unsigned long)&cpu_bit_bitmap, __kstrtab_cpu_bit_bitmap }; .[ 653]: const unsigned long cpu_all_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] = { [(((64) + (8 * sizeof(long)\ . ) - 1) / (8 * sizeof(long)))-1] = ( ((64) % 64) ? (1UL<<((64) % 64))-1 : ~0UL ) }; .[ 654]: extern typeof(cpu_all_bits) cpu_all_bits; extern void *__crc_cpu_all_bits __attribute__((weak)); static const \ . unsigned long __kcrctab_cpu_all_bits __attribute__((__used__)) __attribute__((section("___kcrctab" "" "+" "cpu_all_bits"\ . ), unused)) = (unsigned long) &__crc_cpu_all_bits; static const char __kstrtab_cpu_all_bits[] __attribute__((section\ . ("__ksymtab_strings"), aligned(1))) = "cpu_all_bits"; const struct kernel_symbol __ksymtab_cpu_all_bits __attribute__\ . ((__used__)) __attribute__((section("___ksymtab" "" "+" "cpu_all_bits"), unused)) = { (unsigned long)&cpu_all_bits\ . , __kstrtab_cpu_all_bits }; .[ 660]: static unsigned long cpu_possible_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] __attribute__((__section__\ . (".data..read_mostly"))); .[ 662]: const struct cpumask *const cpu_possible_mask = ((struct cpumask *)(1 ? (cpu_possible_bits) : (void *)sizeof(__check_is_bitmap\ . (cpu_possible_bits)))); .[ 663]: extern typeof(cpu_possible_mask) cpu_possible_mask; extern void *__crc_cpu_possible_mask __attribute__((weak\ . )); static const unsigned long __kcrctab_cpu_possible_mask __attribute__((__used__)) __attribute__((section\ . ("___kcrctab" "" "+" "cpu_possible_mask"), unused)) = (unsigned long) &__crc_cpu_possible_mask; static const char \ . __kstrtab_cpu_possible_mask[] __attribute__((section("__ksymtab_strings"), aligned(1))) = "cpu_possible_mask"\ . ; const struct kernel_symbol __ksymtab_cpu_possible_mask __attribute__((__used__)) __attribute__((section(\ . "___ksymtab" "" "+" "cpu_possible_mask"), unused)) = { (unsigned long)&cpu_possible_mask, __kstrtab_cpu_possible_mask \ . }; .[ 665]: static unsigned long cpu_online_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] __attribute__((__section__\ . (".data..read_mostly"))); .[ 666]: const struct cpumask *const cpu_online_mask = ((struct cpumask *)(1 ? (cpu_online_bits) : (void *)sizeof(__check_is_bitmap\ . (cpu_online_bits)))); .[ 667]: extern typeof(cpu_online_mask) cpu_online_mask; extern void *__crc_cpu_online_mask __attribute__((weak)); static \ . const unsigned long __kcrctab_cpu_online_mask __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "" "+" "cpu_online_mask"), unused)) = (unsigned long) &__crc_cpu_online_mask; static const char __kstrtab_cpu_online_mask\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "cpu_online_mask"; const struct kernel_symbol \ . __ksymtab_cpu_online_mask __attribute__((__used__)) __attribute__((section("___ksymtab" "" "+" "cpu_online_mask"\ . ), unused)) = { (unsigned long)&cpu_online_mask, __kstrtab_cpu_online_mask }; .[ 669]: static unsigned long cpu_present_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] __attribute__((__section__\ . (".data..read_mostly"))); .[ 670]: const struct cpumask *const cpu_present_mask = ((struct cpumask *)(1 ? (cpu_present_bits) : (void *)sizeof(__check_is_bitmap\ . (cpu_present_bits)))); .[ 671]: extern typeof(cpu_present_mask) cpu_present_mask; extern void *__crc_cpu_present_mask __attribute__((weak)\ . ); static const unsigned long __kcrctab_cpu_present_mask __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "" "+" "cpu_present_mask"), unused)) = (unsigned long) &__crc_cpu_present_mask; static const char __kstrtab_cpu_present_mask\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "cpu_present_mask"; const struct kernel_symbol \ . __ksymtab_cpu_present_mask __attribute__((__used__)) __attribute__((section("___ksymtab" "" "+" "cpu_present_mask"\ . ), unused)) = { (unsigned long)&cpu_present_mask, __kstrtab_cpu_present_mask }; .[ 673]: static unsigned long cpu_active_bits[(((64) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))] __attribute__((__section__\ . (".data..read_mostly"))); .[ 674]: const struct cpumask *const cpu_active_mask = ((struct cpumask *)(1 ? (cpu_active_bits) : (void *)sizeof(__check_is_bitmap\ . (cpu_active_bits)))); .[ 675]: extern typeof(cpu_active_mask) cpu_active_mask; extern void *__crc_cpu_active_mask __attribute__((weak)); static \ . const unsigned long __kcrctab_cpu_active_mask __attribute__((__used__)) __attribute__((section("___kcrctab" \ . "" "+" "cpu_active_mask"), unused)) = (unsigned long) &__crc_cpu_active_mask; static const char __kstrtab_cpu_active_mask\ . [] __attribute__((section("__ksymtab_strings"), aligned(1))) = "cpu_active_mask"; const struct kernel_symbol \ . __ksymtab_cpu_active_mask __attribute__((__used__)) __attribute__((section("___ksymtab" "" "+" "cpu_active_mask"\ . ), unused)) = { (unsigned long)&cpu_active_mask, __kstrtab_cpu_active_mask }; .[ 677]: void set_cpu_possible(unsigned int cpu, bool possible) .[ 678]: { .[ 679]: if (possible) .[ 680]: cpumask_set_cpu(cpu, ((struct cpumask *)(1 ? (cpu_possible_bits) : (void *)sizeof(__check_is_bitmap(cpu_possible_bits\ . ))))); .[ 681]: else .[ 682]: cpumask_clear_cpu(cpu, ((struct cpumask *)(1 ? (cpu_possible_bits) : (void *)sizeof(__check_is_bitmap(cpu_possible_bits\ . ))))); .[ 683]: } .[ 685]: void set_cpu_present(unsigned int cpu, bool present) .[ 686]: { .[ 687]: if (present) .[ 688]: cpumask_set_cpu(cpu, ((struct cpumask *)(1 ? (cpu_present_bits) : (void *)sizeof(__check_is_bitmap(cpu_present_bits\ . ))))); .[ 689]: else .[ 690]: cpumask_clear_cpu(cpu, ((struct cpumask *)(1 ? (cpu_present_bits) : (void *)sizeof(__check_is_bitmap(cpu_present_bits\ . ))))); .[ 691]: } .[ 693]: void set_cpu_online(unsigned int cpu, bool online) .[ 694]: { .[ 695]: if (online) .[ 696]: cpumask_set_cpu(cpu, ((struct cpumask *)(1 ? (cpu_online_bits) : (void *)sizeof(__check_is_bitmap(cpu_online_bits\ . ))))); .[ 697]: else .[ 698]: cpumask_clear_cpu(cpu, ((struct cpumask *)(1 ? (cpu_online_bits) : (void *)sizeof(__check_is_bitmap(cpu_online_bits\ . ))))); .[ 699]: } .[ 701]: void set_cpu_active(unsigned int cpu, bool active) .[ 702]: { .[ 703]: if (active) .[ 704]: cpumask_set_cpu(cpu, ((struct cpumask *)(1 ? (cpu_active_bits) : (void *)sizeof(__check_is_bitmap(cpu_active_bits\ . ))))); .[ 705]: else .[ 706]: cpumask_clear_cpu(cpu, ((struct cpumask *)(1 ? (cpu_active_bits) : (void *)sizeof(__check_is_bitmap(cpu_active_bits\ . ))))); .[ 707]: } .[ 709]: void init_cpu_present(const struct cpumask *src) .[ 710]: { .[ 711]: cpumask_copy(((struct cpumask *)(1 ? (cpu_present_bits) : (void *)sizeof(__check_is_bitmap(cpu_present_bits\ . )))), src); .[ 712]: } .[ 714]: void init_cpu_possible(const struct cpumask *src) .[ 715]: { .[ 716]: cpumask_copy(((struct cpumask *)(1 ? (cpu_possible_bits) : (void *)sizeof(__check_is_bitmap(cpu_possible_bits\ . )))), src); .[ 717]: } .[ 719]: void init_cpu_online(const struct cpumask *src) .[ 720]: { .[ 721]: cpumask_copy(((struct cpumask *)(1 ? (cpu_online_bits) : (void *)sizeof(__check_is_bitmap(cpu_online_bits))\ . )), src); .[ 722]: } .[ 723]:
Return to Index