diff options
Diffstat (limited to 'include/asm-generic')
| -rw-r--r-- | include/asm-generic/audit_change_attr.h | 4 | ||||
| -rw-r--r-- | include/asm-generic/audit_dir_write.h | 14 | ||||
| -rw-r--r-- | include/asm-generic/audit_read.h | 5 | ||||
| -rw-r--r-- | include/asm-generic/audit_write.h | 2 | ||||
| -rw-r--r-- | include/asm-generic/bug.h | 37 | ||||
| -rw-r--r-- | include/asm-generic/cacheflush.h | 5 | ||||
| -rw-r--r-- | include/asm-generic/resource.h | 2 | ||||
| -rw-r--r-- | include/asm-generic/tlb.h | 156 | ||||
| -rw-r--r-- | include/asm-generic/unistd.h | 221 |
9 files changed, 277 insertions, 169 deletions
diff --git a/include/asm-generic/audit_change_attr.h b/include/asm-generic/audit_change_attr.h index bcbab3e4a3b..89b73e5d0fd 100644 --- a/include/asm-generic/audit_change_attr.h +++ b/include/asm-generic/audit_change_attr.h | |||
| @@ -1,4 +1,6 @@ | |||
| 1 | #ifdef __NR_chmod | ||
| 1 | __NR_chmod, | 2 | __NR_chmod, |
| 3 | #endif | ||
| 2 | __NR_fchmod, | 4 | __NR_fchmod, |
| 3 | #ifdef __NR_chown | 5 | #ifdef __NR_chown |
| 4 | __NR_chown, | 6 | __NR_chown, |
| @@ -20,7 +22,9 @@ __NR_chown32, | |||
| 20 | __NR_fchown32, | 22 | __NR_fchown32, |
| 21 | __NR_lchown32, | 23 | __NR_lchown32, |
| 22 | #endif | 24 | #endif |
| 25 | #ifdef __NR_link | ||
| 23 | __NR_link, | 26 | __NR_link, |
| 27 | #endif | ||
| 24 | #ifdef __NR_linkat | 28 | #ifdef __NR_linkat |
| 25 | __NR_linkat, | 29 | __NR_linkat, |
| 26 | #endif | 30 | #endif |
diff --git a/include/asm-generic/audit_dir_write.h b/include/asm-generic/audit_dir_write.h index 6621bd82cbe..7b61db4fe72 100644 --- a/include/asm-generic/audit_dir_write.h +++ b/include/asm-generic/audit_dir_write.h | |||
| @@ -1,13 +1,27 @@ | |||
| 1 | #ifdef __NR_rename | ||
| 1 | __NR_rename, | 2 | __NR_rename, |
| 3 | #endif | ||
| 4 | #ifdef __NR_mkdir | ||
| 2 | __NR_mkdir, | 5 | __NR_mkdir, |
| 6 | #endif | ||
| 7 | #ifdef __NR_rmdir | ||
| 3 | __NR_rmdir, | 8 | __NR_rmdir, |
| 9 | #endif | ||
| 4 | #ifdef __NR_creat | 10 | #ifdef __NR_creat |
| 5 | __NR_creat, | 11 | __NR_creat, |
| 6 | #endif | 12 | #endif |
| 13 | #ifdef __NR_link | ||
| 7 | __NR_link, | 14 | __NR_link, |
| 15 | #endif | ||
| 16 | #ifdef __NR_unlink | ||
| 8 | __NR_unlink, | 17 | __NR_unlink, |
| 18 | #endif | ||
| 19 | #ifdef __NR_symlink | ||
| 9 | __NR_symlink, | 20 | __NR_symlink, |
| 21 | #endif | ||
| 22 | #ifdef __NR_mknod | ||
| 10 | __NR_mknod, | 23 | __NR_mknod, |
| 24 | #endif | ||
| 11 | #ifdef __NR_mkdirat | 25 | #ifdef __NR_mkdirat |
| 12 | __NR_mkdirat, | 26 | __NR_mkdirat, |
| 13 | __NR_mknodat, | 27 | __NR_mknodat, |
diff --git a/include/asm-generic/audit_read.h b/include/asm-generic/audit_read.h index 0e87464d984..3b249cb857d 100644 --- a/include/asm-generic/audit_read.h +++ b/include/asm-generic/audit_read.h | |||
| @@ -1,4 +1,6 @@ | |||
| 1 | #ifdef __NR_readlink | ||
| 1 | __NR_readlink, | 2 | __NR_readlink, |
| 3 | #endif | ||
| 2 | __NR_quotactl, | 4 | __NR_quotactl, |
| 3 | __NR_listxattr, | 5 | __NR_listxattr, |
| 4 | __NR_llistxattr, | 6 | __NR_llistxattr, |
| @@ -6,3 +8,6 @@ __NR_flistxattr, | |||
| 6 | __NR_getxattr, | 8 | __NR_getxattr, |
| 7 | __NR_lgetxattr, | 9 | __NR_lgetxattr, |
| 8 | __NR_fgetxattr, | 10 | __NR_fgetxattr, |
| 11 | #ifdef __NR_readlinkat | ||
| 12 | __NR_readlinkat, | ||
| 13 | #endif | ||
diff --git a/include/asm-generic/audit_write.h b/include/asm-generic/audit_write.h index c5f1c2c920e..e7020c57b13 100644 --- a/include/asm-generic/audit_write.h +++ b/include/asm-generic/audit_write.h | |||
| @@ -4,7 +4,9 @@ __NR_acct, | |||
| 4 | __NR_swapon, | 4 | __NR_swapon, |
| 5 | #endif | 5 | #endif |
| 6 | __NR_quotactl, | 6 | __NR_quotactl, |
| 7 | #ifdef __NR_truncate | ||
| 7 | __NR_truncate, | 8 | __NR_truncate, |
| 9 | #endif | ||
| 8 | #ifdef __NR_truncate64 | 10 | #ifdef __NR_truncate64 |
| 9 | __NR_truncate64, | 11 | __NR_truncate64, |
| 10 | #endif | 12 | #endif |
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index e5a3f588000..91784841e40 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
| @@ -162,9 +162,46 @@ extern void warn_slowpath_null(const char *file, const int line); | |||
| 162 | unlikely(__ret_warn_once); \ | 162 | unlikely(__ret_warn_once); \ |
| 163 | }) | 163 | }) |
| 164 | 164 | ||
| 165 | #ifdef CONFIG_PRINTK | ||
| 166 | |||
| 165 | #define WARN_ON_RATELIMIT(condition, state) \ | 167 | #define WARN_ON_RATELIMIT(condition, state) \ |
| 166 | WARN_ON((condition) && __ratelimit(state)) | 168 | WARN_ON((condition) && __ratelimit(state)) |
| 167 | 169 | ||
| 170 | #define __WARN_RATELIMIT(condition, state, format...) \ | ||
| 171 | ({ \ | ||
| 172 | int rtn = 0; \ | ||
| 173 | if (unlikely(__ratelimit(state))) \ | ||
| 174 | rtn = WARN(condition, format); \ | ||
| 175 | rtn; \ | ||
| 176 | }) | ||
| 177 | |||
| 178 | #define WARN_RATELIMIT(condition, format...) \ | ||
| 179 | ({ \ | ||
| 180 | static DEFINE_RATELIMIT_STATE(_rs, \ | ||
| 181 | DEFAULT_RATELIMIT_INTERVAL, \ | ||
| 182 | DEFAULT_RATELIMIT_BURST); \ | ||
| 183 | __WARN_RATELIMIT(condition, &_rs, format); \ | ||
| 184 | }) | ||
| 185 | |||
| 186 | #else | ||
| 187 | |||
| 188 | #define WARN_ON_RATELIMIT(condition, state) \ | ||
| 189 | WARN_ON(condition) | ||
| 190 | |||
| 191 | #define __WARN_RATELIMIT(condition, state, format...) \ | ||
| 192 | ({ \ | ||
| 193 | int rtn = WARN(condition, format); \ | ||
| 194 | rtn; \ | ||
| 195 | }) | ||
| 196 | |||
| 197 | #define WARN_RATELIMIT(condition, format...) \ | ||
| 198 | ({ \ | ||
| 199 | int rtn = WARN(condition, format); \ | ||
| 200 | rtn; \ | ||
| 201 | }) | ||
| 202 | |||
| 203 | #endif | ||
| 204 | |||
| 168 | /* | 205 | /* |
| 169 | * WARN_ON_SMP() is for cases that the warning is either | 206 | * WARN_ON_SMP() is for cases that the warning is either |
| 170 | * meaningless for !SMP or may even cause failures. | 207 | * meaningless for !SMP or may even cause failures. |
diff --git a/include/asm-generic/cacheflush.h b/include/asm-generic/cacheflush.h index 57b5c3c82e8..87bc536ccde 100644 --- a/include/asm-generic/cacheflush.h +++ b/include/asm-generic/cacheflush.h | |||
| @@ -24,7 +24,10 @@ | |||
| 24 | #define flush_cache_vunmap(start, end) do { } while (0) | 24 | #define flush_cache_vunmap(start, end) do { } while (0) |
| 25 | 25 | ||
| 26 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | 26 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ |
| 27 | memcpy(dst, src, len) | 27 | do { \ |
| 28 | memcpy(dst, src, len); \ | ||
| 29 | flush_icache_user_range(vma, page, vaddr, len); \ | ||
| 30 | } while (0) | ||
| 28 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | 31 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ |
| 29 | memcpy(dst, src, len) | 32 | memcpy(dst, src, len) |
| 30 | 33 | ||
diff --git a/include/asm-generic/resource.h b/include/asm-generic/resource.h index 587566f95f6..61fa862fe08 100644 --- a/include/asm-generic/resource.h +++ b/include/asm-generic/resource.h | |||
| @@ -78,7 +78,7 @@ | |||
| 78 | [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \ | 78 | [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \ |
| 79 | [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 79 | [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 80 | [RLIMIT_NPROC] = { 0, 0 }, \ | 80 | [RLIMIT_NPROC] = { 0, 0 }, \ |
| 81 | [RLIMIT_NOFILE] = { INR_OPEN, INR_OPEN }, \ | 81 | [RLIMIT_NOFILE] = { INR_OPEN_CUR, INR_OPEN_MAX }, \ |
| 82 | [RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \ | 82 | [RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \ |
| 83 | [RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 83 | [RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 84 | [RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 84 | [RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index e43f9766259..e58fa777fa0 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h | |||
| @@ -5,6 +5,8 @@ | |||
| 5 | * Copyright 2001 Red Hat, Inc. | 5 | * Copyright 2001 Red Hat, Inc. |
| 6 | * Based on code from mm/memory.c Copyright Linus Torvalds and others. | 6 | * Based on code from mm/memory.c Copyright Linus Torvalds and others. |
| 7 | * | 7 | * |
| 8 | * Copyright 2011 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.com> | ||
| 9 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | 10 | * This program is free software; you can redistribute it and/or |
| 9 | * modify it under the terms of the GNU General Public License | 11 | * modify it under the terms of the GNU General Public License |
| 10 | * as published by the Free Software Foundation; either version | 12 | * as published by the Free Software Foundation; either version |
| @@ -17,97 +19,111 @@ | |||
| 17 | #include <asm/pgalloc.h> | 19 | #include <asm/pgalloc.h> |
| 18 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
| 19 | 21 | ||
| 22 | #ifdef CONFIG_HAVE_RCU_TABLE_FREE | ||
| 20 | /* | 23 | /* |
| 21 | * For UP we don't need to worry about TLB flush | 24 | * Semi RCU freeing of the page directories. |
| 22 | * and page free order so much.. | 25 | * |
| 26 | * This is needed by some architectures to implement software pagetable walkers. | ||
| 27 | * | ||
| 28 | * gup_fast() and other software pagetable walkers do a lockless page-table | ||
| 29 | * walk and therefore needs some synchronization with the freeing of the page | ||
| 30 | * directories. The chosen means to accomplish that is by disabling IRQs over | ||
| 31 | * the walk. | ||
| 32 | * | ||
| 33 | * Architectures that use IPIs to flush TLBs will then automagically DTRT, | ||
| 34 | * since we unlink the page, flush TLBs, free the page. Since the disabling of | ||
| 35 | * IRQs delays the completion of the TLB flush we can never observe an already | ||
| 36 | * freed page. | ||
| 37 | * | ||
| 38 | * Architectures that do not have this (PPC) need to delay the freeing by some | ||
| 39 | * other means, this is that means. | ||
| 40 | * | ||
| 41 | * What we do is batch the freed directory pages (tables) and RCU free them. | ||
| 42 | * We use the sched RCU variant, as that guarantees that IRQ/preempt disabling | ||
| 43 | * holds off grace periods. | ||
| 44 | * | ||
| 45 | * However, in order to batch these pages we need to allocate storage, this | ||
| 46 | * allocation is deep inside the MM code and can thus easily fail on memory | ||
| 47 | * pressure. To guarantee progress we fall back to single table freeing, see | ||
| 48 | * the implementation of tlb_remove_table_one(). | ||
| 49 | * | ||
| 23 | */ | 50 | */ |
| 24 | #ifdef CONFIG_SMP | 51 | struct mmu_table_batch { |
| 25 | #ifdef ARCH_FREE_PTR_NR | 52 | struct rcu_head rcu; |
| 26 | #define FREE_PTR_NR ARCH_FREE_PTR_NR | 53 | unsigned int nr; |
| 27 | #else | 54 | void *tables[0]; |
| 28 | #define FREE_PTE_NR 506 | 55 | }; |
| 29 | #endif | 56 | |
| 30 | #define tlb_fast_mode(tlb) ((tlb)->nr == ~0U) | 57 | #define MAX_TABLE_BATCH \ |
| 31 | #else | 58 | ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *)) |
| 32 | #define FREE_PTE_NR 1 | 59 | |
| 33 | #define tlb_fast_mode(tlb) 1 | 60 | extern void tlb_table_flush(struct mmu_gather *tlb); |
| 61 | extern void tlb_remove_table(struct mmu_gather *tlb, void *table); | ||
| 62 | |||
| 34 | #endif | 63 | #endif |
| 35 | 64 | ||
| 36 | /* struct mmu_gather is an opaque type used by the mm code for passing around | 65 | /* |
| 37 | * any data needed by arch specific code for tlb_remove_page. | 66 | * If we can't allocate a page to make a big batch of page pointers |
| 67 | * to work on, then just handle a few from the on-stack structure. | ||
| 38 | */ | 68 | */ |
| 39 | struct mmu_gather { | 69 | #define MMU_GATHER_BUNDLE 8 |
| 40 | struct mm_struct *mm; | 70 | |
| 41 | unsigned int nr; /* set to ~0U means fast mode */ | 71 | struct mmu_gather_batch { |
| 42 | unsigned int need_flush;/* Really unmapped some ptes? */ | 72 | struct mmu_gather_batch *next; |
| 43 | unsigned int fullmm; /* non-zero means full mm flush */ | 73 | unsigned int nr; |
| 44 | struct page * pages[FREE_PTE_NR]; | 74 | unsigned int max; |
| 75 | struct page *pages[0]; | ||
| 45 | }; | 76 | }; |
| 46 | 77 | ||
| 47 | /* Users of the generic TLB shootdown code must declare this storage space. */ | 78 | #define MAX_GATHER_BATCH \ |
| 48 | DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); | 79 | ((PAGE_SIZE - sizeof(struct mmu_gather_batch)) / sizeof(void *)) |
| 49 | 80 | ||
| 50 | /* tlb_gather_mmu | 81 | /* struct mmu_gather is an opaque type used by the mm code for passing around |
| 51 | * Return a pointer to an initialized struct mmu_gather. | 82 | * any data needed by arch specific code for tlb_remove_page. |
| 52 | */ | 83 | */ |
| 53 | static inline struct mmu_gather * | 84 | struct mmu_gather { |
| 54 | tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) | 85 | struct mm_struct *mm; |
| 55 | { | 86 | #ifdef CONFIG_HAVE_RCU_TABLE_FREE |
| 56 | struct mmu_gather *tlb = &get_cpu_var(mmu_gathers); | 87 | struct mmu_table_batch *batch; |
| 57 | 88 | #endif | |
| 58 | tlb->mm = mm; | 89 | unsigned int need_flush : 1, /* Did free PTEs */ |
| 90 | fast_mode : 1; /* No batching */ | ||
| 59 | 91 | ||
| 60 | /* Use fast mode if only one CPU is online */ | 92 | unsigned int fullmm; |
| 61 | tlb->nr = num_online_cpus() > 1 ? 0U : ~0U; | ||
| 62 | 93 | ||
| 63 | tlb->fullmm = full_mm_flush; | 94 | struct mmu_gather_batch *active; |
| 95 | struct mmu_gather_batch local; | ||
| 96 | struct page *__pages[MMU_GATHER_BUNDLE]; | ||
| 97 | }; | ||
| 64 | 98 | ||
| 65 | return tlb; | 99 | #define HAVE_GENERIC_MMU_GATHER |
| 66 | } | ||
| 67 | 100 | ||
| 68 | static inline void | 101 | static inline int tlb_fast_mode(struct mmu_gather *tlb) |
| 69 | tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | ||
| 70 | { | 102 | { |
| 71 | if (!tlb->need_flush) | 103 | #ifdef CONFIG_SMP |
| 72 | return; | 104 | return tlb->fast_mode; |
| 73 | tlb->need_flush = 0; | 105 | #else |
| 74 | tlb_flush(tlb); | 106 | /* |
| 75 | if (!tlb_fast_mode(tlb)) { | 107 | * For UP we don't need to worry about TLB flush |
| 76 | free_pages_and_swap_cache(tlb->pages, tlb->nr); | 108 | * and page free order so much.. |
| 77 | tlb->nr = 0; | 109 | */ |
| 78 | } | 110 | return 1; |
| 111 | #endif | ||
| 79 | } | 112 | } |
| 80 | 113 | ||
| 81 | /* tlb_finish_mmu | 114 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); |
| 82 | * Called at the end of the shootdown operation to free up any resources | 115 | void tlb_flush_mmu(struct mmu_gather *tlb); |
| 83 | * that were required. | 116 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end); |
| 84 | */ | 117 | int __tlb_remove_page(struct mmu_gather *tlb, struct page *page); |
| 85 | static inline void | ||
| 86 | tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | ||
| 87 | { | ||
| 88 | tlb_flush_mmu(tlb, start, end); | ||
| 89 | |||
| 90 | /* keep the page table cache within bounds */ | ||
| 91 | check_pgt_cache(); | ||
| 92 | |||
| 93 | put_cpu_var(mmu_gathers); | ||
| 94 | } | ||
| 95 | 118 | ||
| 96 | /* tlb_remove_page | 119 | /* tlb_remove_page |
| 97 | * Must perform the equivalent to __free_pte(pte_get_and_clear(ptep)), while | 120 | * Similar to __tlb_remove_page but will call tlb_flush_mmu() itself when |
| 98 | * handling the additional races in SMP caused by other CPUs caching valid | 121 | * required. |
| 99 | * mappings in their TLBs. | ||
| 100 | */ | 122 | */ |
| 101 | static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) | 123 | static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) |
| 102 | { | 124 | { |
| 103 | tlb->need_flush = 1; | 125 | if (!__tlb_remove_page(tlb, page)) |
| 104 | if (tlb_fast_mode(tlb)) { | 126 | tlb_flush_mmu(tlb); |
| 105 | free_page_and_swap_cache(page); | ||
| 106 | return; | ||
| 107 | } | ||
| 108 | tlb->pages[tlb->nr++] = page; | ||
| 109 | if (tlb->nr >= FREE_PTE_NR) | ||
| 110 | tlb_flush_mmu(tlb, 0, 0); | ||
| 111 | } | 127 | } |
| 112 | 128 | ||
| 113 | /** | 129 | /** |
diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h index 07c40d5149d..33d52470488 100644 --- a/include/asm-generic/unistd.h +++ b/include/asm-generic/unistd.h | |||
| @@ -24,16 +24,24 @@ | |||
| 24 | #define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _64) | 24 | #define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _64) |
| 25 | #endif | 25 | #endif |
| 26 | 26 | ||
| 27 | #ifdef __SYSCALL_COMPAT | ||
| 28 | #define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _comp) | ||
| 29 | #define __SC_COMP_3264(_nr, _32, _64, _comp) __SYSCALL(_nr, _comp) | ||
| 30 | #else | ||
| 31 | #define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _sys) | ||
| 32 | #define __SC_COMP_3264(_nr, _32, _64, _comp) __SC_3264(_nr, _32, _64) | ||
| 33 | #endif | ||
| 34 | |||
| 27 | #define __NR_io_setup 0 | 35 | #define __NR_io_setup 0 |
| 28 | __SYSCALL(__NR_io_setup, sys_io_setup) | 36 | __SC_COMP(__NR_io_setup, sys_io_setup, compat_sys_io_setup) |
| 29 | #define __NR_io_destroy 1 | 37 | #define __NR_io_destroy 1 |
| 30 | __SYSCALL(__NR_io_destroy, sys_io_destroy) | 38 | __SYSCALL(__NR_io_destroy, sys_io_destroy) |
| 31 | #define __NR_io_submit 2 | 39 | #define __NR_io_submit 2 |
| 32 | __SYSCALL(__NR_io_submit, sys_io_submit) | 40 | __SC_COMP(__NR_io_submit, sys_io_submit, compat_sys_io_submit) |
| 33 | #define __NR_io_cancel 3 | 41 | #define __NR_io_cancel 3 |
| 34 | __SYSCALL(__NR_io_cancel, sys_io_cancel) | 42 | __SYSCALL(__NR_io_cancel, sys_io_cancel) |
| 35 | #define __NR_io_getevents 4 | 43 | #define __NR_io_getevents 4 |
| 36 | __SYSCALL(__NR_io_getevents, sys_io_getevents) | 44 | __SC_COMP(__NR_io_getevents, sys_io_getevents, compat_sys_io_getevents) |
| 37 | 45 | ||
| 38 | /* fs/xattr.c */ | 46 | /* fs/xattr.c */ |
| 39 | #define __NR_setxattr 5 | 47 | #define __NR_setxattr 5 |
| @@ -67,7 +75,7 @@ __SYSCALL(__NR_getcwd, sys_getcwd) | |||
| 67 | 75 | ||
| 68 | /* fs/cookies.c */ | 76 | /* fs/cookies.c */ |
| 69 | #define __NR_lookup_dcookie 18 | 77 | #define __NR_lookup_dcookie 18 |
| 70 | __SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie) | 78 | __SC_COMP(__NR_lookup_dcookie, sys_lookup_dcookie, compat_sys_lookup_dcookie) |
| 71 | 79 | ||
| 72 | /* fs/eventfd.c */ | 80 | /* fs/eventfd.c */ |
| 73 | #define __NR_eventfd2 19 | 81 | #define __NR_eventfd2 19 |
| @@ -79,7 +87,7 @@ __SYSCALL(__NR_epoll_create1, sys_epoll_create1) | |||
| 79 | #define __NR_epoll_ctl 21 | 87 | #define __NR_epoll_ctl 21 |
| 80 | __SYSCALL(__NR_epoll_ctl, sys_epoll_ctl) | 88 | __SYSCALL(__NR_epoll_ctl, sys_epoll_ctl) |
| 81 | #define __NR_epoll_pwait 22 | 89 | #define __NR_epoll_pwait 22 |
| 82 | __SYSCALL(__NR_epoll_pwait, sys_epoll_pwait) | 90 | __SC_COMP(__NR_epoll_pwait, sys_epoll_pwait, compat_sys_epoll_pwait) |
| 83 | 91 | ||
| 84 | /* fs/fcntl.c */ | 92 | /* fs/fcntl.c */ |
| 85 | #define __NR_dup 23 | 93 | #define __NR_dup 23 |
| @@ -87,7 +95,7 @@ __SYSCALL(__NR_dup, sys_dup) | |||
| 87 | #define __NR_dup3 24 | 95 | #define __NR_dup3 24 |
| 88 | __SYSCALL(__NR_dup3, sys_dup3) | 96 | __SYSCALL(__NR_dup3, sys_dup3) |
| 89 | #define __NR3264_fcntl 25 | 97 | #define __NR3264_fcntl 25 |
| 90 | __SC_3264(__NR3264_fcntl, sys_fcntl64, sys_fcntl) | 98 | __SC_COMP_3264(__NR3264_fcntl, sys_fcntl64, sys_fcntl, compat_sys_fcntl64) |
| 91 | 99 | ||
| 92 | /* fs/inotify_user.c */ | 100 | /* fs/inotify_user.c */ |
| 93 | #define __NR_inotify_init1 26 | 101 | #define __NR_inotify_init1 26 |
| @@ -99,7 +107,7 @@ __SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch) | |||
| 99 | 107 | ||
| 100 | /* fs/ioctl.c */ | 108 | /* fs/ioctl.c */ |
| 101 | #define __NR_ioctl 29 | 109 | #define __NR_ioctl 29 |
| 102 | __SYSCALL(__NR_ioctl, sys_ioctl) | 110 | __SC_COMP(__NR_ioctl, sys_ioctl, compat_sys_ioctl) |
| 103 | 111 | ||
| 104 | /* fs/ioprio.c */ | 112 | /* fs/ioprio.c */ |
| 105 | #define __NR_ioprio_set 30 | 113 | #define __NR_ioprio_set 30 |
| @@ -129,26 +137,30 @@ __SYSCALL(__NR_renameat, sys_renameat) | |||
| 129 | #define __NR_umount2 39 | 137 | #define __NR_umount2 39 |
| 130 | __SYSCALL(__NR_umount2, sys_umount) | 138 | __SYSCALL(__NR_umount2, sys_umount) |
| 131 | #define __NR_mount 40 | 139 | #define __NR_mount 40 |
| 132 | __SYSCALL(__NR_mount, sys_mount) | 140 | __SC_COMP(__NR_mount, sys_mount, compat_sys_mount) |
| 133 | #define __NR_pivot_root 41 | 141 | #define __NR_pivot_root 41 |
| 134 | __SYSCALL(__NR_pivot_root, sys_pivot_root) | 142 | __SYSCALL(__NR_pivot_root, sys_pivot_root) |
| 135 | 143 | ||
| 136 | /* fs/nfsctl.c */ | 144 | /* fs/nfsctl.c */ |
| 137 | #define __NR_nfsservctl 42 | 145 | #define __NR_nfsservctl 42 |
| 138 | __SYSCALL(__NR_nfsservctl, sys_nfsservctl) | 146 | __SC_COMP(__NR_nfsservctl, sys_nfsservctl, compat_sys_nfsservctl) |
| 139 | 147 | ||
| 140 | /* fs/open.c */ | 148 | /* fs/open.c */ |
| 141 | #define __NR3264_statfs 43 | 149 | #define __NR3264_statfs 43 |
| 142 | __SC_3264(__NR3264_statfs, sys_statfs64, sys_statfs) | 150 | __SC_COMP_3264(__NR3264_statfs, sys_statfs64, sys_statfs, \ |
| 151 | compat_sys_statfs64) | ||
| 143 | #define __NR3264_fstatfs 44 | 152 | #define __NR3264_fstatfs 44 |
| 144 | __SC_3264(__NR3264_fstatfs, sys_fstatfs64, sys_fstatfs) | 153 | __SC_COMP_3264(__NR3264_fstatfs, sys_fstatfs64, sys_fstatfs, \ |
| 154 | compat_sys_fstatfs64) | ||
| 145 | #define __NR3264_truncate 45 | 155 | #define __NR3264_truncate 45 |
| 146 | __SC_3264(__NR3264_truncate, sys_truncate64, sys_truncate) | 156 | __SC_COMP_3264(__NR3264_truncate, sys_truncate64, sys_truncate, \ |
| 157 | compat_sys_truncate64) | ||
| 147 | #define __NR3264_ftruncate 46 | 158 | #define __NR3264_ftruncate 46 |
| 148 | __SC_3264(__NR3264_ftruncate, sys_ftruncate64, sys_ftruncate) | 159 | __SC_COMP_3264(__NR3264_ftruncate, sys_ftruncate64, sys_ftruncate, \ |
| 160 | compat_sys_ftruncate64) | ||
| 149 | 161 | ||
| 150 | #define __NR_fallocate 47 | 162 | #define __NR_fallocate 47 |
| 151 | __SYSCALL(__NR_fallocate, sys_fallocate) | 163 | __SC_COMP(__NR_fallocate, sys_fallocate, compat_sys_fallocate) |
| 152 | #define __NR_faccessat 48 | 164 | #define __NR_faccessat 48 |
| 153 | __SYSCALL(__NR_faccessat, sys_faccessat) | 165 | __SYSCALL(__NR_faccessat, sys_faccessat) |
| 154 | #define __NR_chdir 49 | 166 | #define __NR_chdir 49 |
| @@ -166,7 +178,7 @@ __SYSCALL(__NR_fchownat, sys_fchownat) | |||
| 166 | #define __NR_fchown 55 | 178 | #define __NR_fchown 55 |
| 167 | __SYSCALL(__NR_fchown, sys_fchown) | 179 | __SYSCALL(__NR_fchown, sys_fchown) |
| 168 | #define __NR_openat 56 | 180 | #define __NR_openat 56 |
| 169 | __SYSCALL(__NR_openat, sys_openat) | 181 | __SC_COMP(__NR_openat, sys_openat, compat_sys_openat) |
| 170 | #define __NR_close 57 | 182 | #define __NR_close 57 |
| 171 | __SYSCALL(__NR_close, sys_close) | 183 | __SYSCALL(__NR_close, sys_close) |
| 172 | #define __NR_vhangup 58 | 184 | #define __NR_vhangup 58 |
| @@ -182,7 +194,7 @@ __SYSCALL(__NR_quotactl, sys_quotactl) | |||
| 182 | 194 | ||
| 183 | /* fs/readdir.c */ | 195 | /* fs/readdir.c */ |
| 184 | #define __NR_getdents64 61 | 196 | #define __NR_getdents64 61 |
| 185 | __SYSCALL(__NR_getdents64, sys_getdents64) | 197 | __SC_COMP(__NR_getdents64, sys_getdents64, compat_sys_getdents64) |
| 186 | 198 | ||
| 187 | /* fs/read_write.c */ | 199 | /* fs/read_write.c */ |
| 188 | #define __NR3264_lseek 62 | 200 | #define __NR3264_lseek 62 |
| @@ -192,17 +204,17 @@ __SYSCALL(__NR_read, sys_read) | |||
| 192 | #define __NR_write 64 | 204 | #define __NR_write 64 |
| 193 | __SYSCALL(__NR_write, sys_write) | 205 | __SYSCALL(__NR_write, sys_write) |
| 194 | #define __NR_readv 65 | 206 | #define __NR_readv 65 |
| 195 | __SYSCALL(__NR_readv, sys_readv) | 207 | __SC_COMP(__NR_readv, sys_readv, compat_sys_readv) |
| 196 | #define __NR_writev 66 | 208 | #define __NR_writev 66 |
| 197 | __SYSCALL(__NR_writev, sys_writev) | 209 | __SC_COMP(__NR_writev, sys_writev, compat_sys_writev) |
| 198 | #define __NR_pread64 67 | 210 | #define __NR_pread64 67 |
| 199 | __SYSCALL(__NR_pread64, sys_pread64) | 211 | __SC_COMP(__NR_pread64, sys_pread64, compat_sys_pread64) |
| 200 | #define __NR_pwrite64 68 | 212 | #define __NR_pwrite64 68 |
| 201 | __SYSCALL(__NR_pwrite64, sys_pwrite64) | 213 | __SC_COMP(__NR_pwrite64, sys_pwrite64, compat_sys_pwrite64) |
| 202 | #define __NR_preadv 69 | 214 | #define __NR_preadv 69 |
| 203 | __SYSCALL(__NR_preadv, sys_preadv) | 215 | __SC_COMP(__NR_preadv, sys_preadv, compat_sys_preadv) |
| 204 | #define __NR_pwritev 70 | 216 | #define __NR_pwritev 70 |
| 205 | __SYSCALL(__NR_pwritev, sys_pwritev) | 217 | __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev) |
| 206 | 218 | ||
| 207 | /* fs/sendfile.c */ | 219 | /* fs/sendfile.c */ |
| 208 | #define __NR3264_sendfile 71 | 220 | #define __NR3264_sendfile 71 |
| @@ -210,17 +222,17 @@ __SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile) | |||
| 210 | 222 | ||
| 211 | /* fs/select.c */ | 223 | /* fs/select.c */ |
| 212 | #define __NR_pselect6 72 | 224 | #define __NR_pselect6 72 |
| 213 | __SYSCALL(__NR_pselect6, sys_pselect6) | 225 | __SC_COMP(__NR_pselect6, sys_pselect6, compat_sys_pselect6) |
| 214 | #define __NR_ppoll 73 | 226 | #define __NR_ppoll 73 |
| 215 | __SYSCALL(__NR_ppoll, sys_ppoll) | 227 | __SC_COMP(__NR_ppoll, sys_ppoll, compat_sys_ppoll) |
| 216 | 228 | ||
| 217 | /* fs/signalfd.c */ | 229 | /* fs/signalfd.c */ |
| 218 | #define __NR_signalfd4 74 | 230 | #define __NR_signalfd4 74 |
| 219 | __SYSCALL(__NR_signalfd4, sys_signalfd4) | 231 | __SC_COMP(__NR_signalfd4, sys_signalfd4, compat_sys_signalfd4) |
| 220 | 232 | ||
| 221 | /* fs/splice.c */ | 233 | /* fs/splice.c */ |
| 222 | #define __NR_vmsplice 75 | 234 | #define __NR_vmsplice 75 |
| 223 | __SYSCALL(__NR_vmsplice, sys_vmsplice) | 235 | __SC_COMP(__NR_vmsplice, sys_vmsplice, compat_sys_vmsplice) |
| 224 | #define __NR_splice 76 | 236 | #define __NR_splice 76 |
| 225 | __SYSCALL(__NR_splice, sys_splice) | 237 | __SYSCALL(__NR_splice, sys_splice) |
| 226 | #define __NR_tee 77 | 238 | #define __NR_tee 77 |
| @@ -243,23 +255,27 @@ __SYSCALL(__NR_fsync, sys_fsync) | |||
| 243 | __SYSCALL(__NR_fdatasync, sys_fdatasync) | 255 | __SYSCALL(__NR_fdatasync, sys_fdatasync) |
| 244 | #ifdef __ARCH_WANT_SYNC_FILE_RANGE2 | 256 | #ifdef __ARCH_WANT_SYNC_FILE_RANGE2 |
| 245 | #define __NR_sync_file_range2 84 | 257 | #define __NR_sync_file_range2 84 |
| 246 | __SYSCALL(__NR_sync_file_range2, sys_sync_file_range2) | 258 | __SC_COMP(__NR_sync_file_range2, sys_sync_file_range2, \ |
| 259 | compat_sys_sync_file_range2) | ||
| 247 | #else | 260 | #else |
| 248 | #define __NR_sync_file_range 84 | 261 | #define __NR_sync_file_range 84 |
| 249 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) | 262 | __SC_COMP(__NR_sync_file_range, sys_sync_file_range, \ |
| 263 | compat_sys_sync_file_range) | ||
| 250 | #endif | 264 | #endif |
| 251 | 265 | ||
| 252 | /* fs/timerfd.c */ | 266 | /* fs/timerfd.c */ |
| 253 | #define __NR_timerfd_create 85 | 267 | #define __NR_timerfd_create 85 |
| 254 | __SYSCALL(__NR_timerfd_create, sys_timerfd_create) | 268 | __SYSCALL(__NR_timerfd_create, sys_timerfd_create) |
| 255 | #define __NR_timerfd_settime 86 | 269 | #define __NR_timerfd_settime 86 |
| 256 | __SYSCALL(__NR_timerfd_settime, sys_timerfd_settime) | 270 | __SC_COMP(__NR_timerfd_settime, sys_timerfd_settime, \ |
| 271 | compat_sys_timerfd_settime) | ||
| 257 | #define __NR_timerfd_gettime 87 | 272 | #define __NR_timerfd_gettime 87 |
| 258 | __SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime) | 273 | __SC_COMP(__NR_timerfd_gettime, sys_timerfd_gettime, \ |
| 274 | compat_sys_timerfd_gettime) | ||
| 259 | 275 | ||
| 260 | /* fs/utimes.c */ | 276 | /* fs/utimes.c */ |
| 261 | #define __NR_utimensat 88 | 277 | #define __NR_utimensat 88 |
| 262 | __SYSCALL(__NR_utimensat, sys_utimensat) | 278 | __SC_COMP(__NR_utimensat, sys_utimensat, compat_sys_utimensat) |
| 263 | 279 | ||
| 264 | /* kernel/acct.c */ | 280 | /* kernel/acct.c */ |
| 265 | #define __NR_acct 89 | 281 | #define __NR_acct 89 |
| @@ -281,7 +297,7 @@ __SYSCALL(__NR_exit, sys_exit) | |||
| 281 | #define __NR_exit_group 94 | 297 | #define __NR_exit_group 94 |
| 282 | __SYSCALL(__NR_exit_group, sys_exit_group) | 298 | __SYSCALL(__NR_exit_group, sys_exit_group) |
| 283 | #define __NR_waitid 95 | 299 | #define __NR_waitid 95 |
| 284 | __SYSCALL(__NR_waitid, sys_waitid) | 300 | __SC_COMP(__NR_waitid, sys_waitid, compat_sys_waitid) |
| 285 | 301 | ||
| 286 | /* kernel/fork.c */ | 302 | /* kernel/fork.c */ |
| 287 | #define __NR_set_tid_address 96 | 303 | #define __NR_set_tid_address 96 |
| @@ -291,25 +307,27 @@ __SYSCALL(__NR_unshare, sys_unshare) | |||
| 291 | 307 | ||
| 292 | /* kernel/futex.c */ | 308 | /* kernel/futex.c */ |
| 293 | #define __NR_futex 98 | 309 | #define __NR_futex 98 |
| 294 | __SYSCALL(__NR_futex, sys_futex) | 310 | __SC_COMP(__NR_futex, sys_futex, compat_sys_futex) |
| 295 | #define __NR_set_robust_list 99 | 311 | #define __NR_set_robust_list 99 |
| 296 | __SYSCALL(__NR_set_robust_list, sys_set_robust_list) | 312 | __SC_COMP(__NR_set_robust_list, sys_set_robust_list, \ |
| 313 | compat_sys_set_robust_list) | ||
| 297 | #define __NR_get_robust_list 100 | 314 | #define __NR_get_robust_list 100 |
| 298 | __SYSCALL(__NR_get_robust_list, sys_get_robust_list) | 315 | __SC_COMP(__NR_get_robust_list, sys_get_robust_list, \ |
| 316 | compat_sys_get_robust_list) | ||
| 299 | 317 | ||
| 300 | /* kernel/hrtimer.c */ | 318 | /* kernel/hrtimer.c */ |
| 301 | #define __NR_nanosleep 101 | 319 | #define __NR_nanosleep 101 |
| 302 | __SYSCALL(__NR_nanosleep, sys_nanosleep) | 320 | __SC_COMP(__NR_nanosleep, sys_nanosleep, compat_sys_nanosleep) |
| 303 | 321 | ||
| 304 | /* kernel/itimer.c */ | 322 | /* kernel/itimer.c */ |
| 305 | #define __NR_getitimer 102 | 323 | #define __NR_getitimer 102 |
| 306 | __SYSCALL(__NR_getitimer, sys_getitimer) | 324 | __SC_COMP(__NR_getitimer, sys_getitimer, compat_sys_getitimer) |
| 307 | #define __NR_setitimer 103 | 325 | #define __NR_setitimer 103 |
| 308 | __SYSCALL(__NR_setitimer, sys_setitimer) | 326 | __SC_COMP(__NR_setitimer, sys_setitimer, compat_sys_setitimer) |
| 309 | 327 | ||
| 310 | /* kernel/kexec.c */ | 328 | /* kernel/kexec.c */ |
| 311 | #define __NR_kexec_load 104 | 329 | #define __NR_kexec_load 104 |
| 312 | __SYSCALL(__NR_kexec_load, sys_kexec_load) | 330 | __SC_COMP(__NR_kexec_load, sys_kexec_load, compat_sys_kexec_load) |
| 313 | 331 | ||
| 314 | /* kernel/module.c */ | 332 | /* kernel/module.c */ |
| 315 | #define __NR_init_module 105 | 333 | #define __NR_init_module 105 |
| @@ -319,23 +337,24 @@ __SYSCALL(__NR_delete_module, sys_delete_module) | |||
| 319 | 337 | ||
| 320 | /* kernel/posix-timers.c */ | 338 | /* kernel/posix-timers.c */ |
| 321 | #define __NR_timer_create 107 | 339 | #define __NR_timer_create 107 |
| 322 | __SYSCALL(__NR_timer_create, sys_timer_create) | 340 | __SC_COMP(__NR_timer_create, sys_timer_create, compat_sys_timer_create) |
| 323 | #define __NR_timer_gettime 108 | 341 | #define __NR_timer_gettime 108 |
| 324 | __SYSCALL(__NR_timer_gettime, sys_timer_gettime) | 342 | __SC_COMP(__NR_timer_gettime, sys_timer_gettime, compat_sys_timer_gettime) |
| 325 | #define __NR_timer_getoverrun 109 | 343 | #define __NR_timer_getoverrun 109 |
| 326 | __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) | 344 | __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) |
| 327 | #define __NR_timer_settime 110 | 345 | #define __NR_timer_settime 110 |
| 328 | __SYSCALL(__NR_timer_settime, sys_timer_settime) | 346 | __SC_COMP(__NR_timer_settime, sys_timer_settime, compat_sys_timer_settime) |
| 329 | #define __NR_timer_delete 111 | 347 | #define __NR_timer_delete 111 |
| 330 | __SYSCALL(__NR_timer_delete, sys_timer_delete) | 348 | __SYSCALL(__NR_timer_delete, sys_timer_delete) |
| 331 | #define __NR_clock_settime 112 | 349 | #define __NR_clock_settime 112 |
| 332 | __SYSCALL(__NR_clock_settime, sys_clock_settime) | 350 | __SC_COMP(__NR_clock_settime, sys_clock_settime, compat_sys_clock_settime) |
| 333 | #define __NR_clock_gettime 113 | 351 | #define __NR_clock_gettime 113 |
| 334 | __SYSCALL(__NR_clock_gettime, sys_clock_gettime) | 352 | __SC_COMP(__NR_clock_gettime, sys_clock_gettime, compat_sys_clock_gettime) |
| 335 | #define __NR_clock_getres 114 | 353 | #define __NR_clock_getres 114 |
| 336 | __SYSCALL(__NR_clock_getres, sys_clock_getres) | 354 | __SC_COMP(__NR_clock_getres, sys_clock_getres, compat_sys_clock_getres) |
| 337 | #define __NR_clock_nanosleep 115 | 355 | #define __NR_clock_nanosleep 115 |
| 338 | __SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep) | 356 | __SC_COMP(__NR_clock_nanosleep, sys_clock_nanosleep, \ |
| 357 | compat_sys_clock_nanosleep) | ||
| 339 | 358 | ||
| 340 | /* kernel/printk.c */ | 359 | /* kernel/printk.c */ |
| 341 | #define __NR_syslog 116 | 360 | #define __NR_syslog 116 |
| @@ -355,9 +374,11 @@ __SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler) | |||
| 355 | #define __NR_sched_getparam 121 | 374 | #define __NR_sched_getparam 121 |
| 356 | __SYSCALL(__NR_sched_getparam, sys_sched_getparam) | 375 | __SYSCALL(__NR_sched_getparam, sys_sched_getparam) |
| 357 | #define __NR_sched_setaffinity 122 | 376 | #define __NR_sched_setaffinity 122 |
| 358 | __SYSCALL(__NR_sched_setaffinity, sys_sched_setaffinity) | 377 | __SC_COMP(__NR_sched_setaffinity, sys_sched_setaffinity, \ |
| 378 | compat_sys_sched_setaffinity) | ||
| 359 | #define __NR_sched_getaffinity 123 | 379 | #define __NR_sched_getaffinity 123 |
| 360 | __SYSCALL(__NR_sched_getaffinity, sys_sched_getaffinity) | 380 | __SC_COMP(__NR_sched_getaffinity, sys_sched_getaffinity, \ |
| 381 | compat_sys_sched_getaffinity) | ||
| 361 | #define __NR_sched_yield 124 | 382 | #define __NR_sched_yield 124 |
| 362 | __SYSCALL(__NR_sched_yield, sys_sched_yield) | 383 | __SYSCALL(__NR_sched_yield, sys_sched_yield) |
| 363 | #define __NR_sched_get_priority_max 125 | 384 | #define __NR_sched_get_priority_max 125 |
| @@ -365,7 +386,8 @@ __SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max) | |||
| 365 | #define __NR_sched_get_priority_min 126 | 386 | #define __NR_sched_get_priority_min 126 |
| 366 | __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) | 387 | __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) |
| 367 | #define __NR_sched_rr_get_interval 127 | 388 | #define __NR_sched_rr_get_interval 127 |
| 368 | __SYSCALL(__NR_sched_rr_get_interval, sys_sched_rr_get_interval) | 389 | __SC_COMP(__NR_sched_rr_get_interval, sys_sched_rr_get_interval, \ |
| 390 | compat_sys_sched_rr_get_interval) | ||
| 369 | 391 | ||
| 370 | /* kernel/signal.c */ | 392 | /* kernel/signal.c */ |
| 371 | #define __NR_restart_syscall 128 | 393 | #define __NR_restart_syscall 128 |
| @@ -377,21 +399,23 @@ __SYSCALL(__NR_tkill, sys_tkill) | |||
| 377 | #define __NR_tgkill 131 | 399 | #define __NR_tgkill 131 |
| 378 | __SYSCALL(__NR_tgkill, sys_tgkill) | 400 | __SYSCALL(__NR_tgkill, sys_tgkill) |
| 379 | #define __NR_sigaltstack 132 | 401 | #define __NR_sigaltstack 132 |
| 380 | __SYSCALL(__NR_sigaltstack, sys_sigaltstack) | 402 | __SC_COMP(__NR_sigaltstack, sys_sigaltstack, compat_sys_sigaltstack) |
| 381 | #define __NR_rt_sigsuspend 133 | 403 | #define __NR_rt_sigsuspend 133 |
| 382 | __SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend) /* __ARCH_WANT_SYS_RT_SIGSUSPEND */ | 404 | __SC_COMP(__NR_rt_sigsuspend, sys_rt_sigsuspend, compat_sys_rt_sigsuspend) |
| 383 | #define __NR_rt_sigaction 134 | 405 | #define __NR_rt_sigaction 134 |
| 384 | __SYSCALL(__NR_rt_sigaction, sys_rt_sigaction) /* __ARCH_WANT_SYS_RT_SIGACTION */ | 406 | __SC_COMP(__NR_rt_sigaction, sys_rt_sigaction, compat_sys_rt_sigaction) |
| 385 | #define __NR_rt_sigprocmask 135 | 407 | #define __NR_rt_sigprocmask 135 |
| 386 | __SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask) | 408 | __SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask) |
| 387 | #define __NR_rt_sigpending 136 | 409 | #define __NR_rt_sigpending 136 |
| 388 | __SYSCALL(__NR_rt_sigpending, sys_rt_sigpending) | 410 | __SYSCALL(__NR_rt_sigpending, sys_rt_sigpending) |
| 389 | #define __NR_rt_sigtimedwait 137 | 411 | #define __NR_rt_sigtimedwait 137 |
| 390 | __SYSCALL(__NR_rt_sigtimedwait, sys_rt_sigtimedwait) | 412 | __SC_COMP(__NR_rt_sigtimedwait, sys_rt_sigtimedwait, \ |
| 413 | compat_sys_rt_sigtimedwait) | ||
| 391 | #define __NR_rt_sigqueueinfo 138 | 414 | #define __NR_rt_sigqueueinfo 138 |
| 392 | __SYSCALL(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo) | 415 | __SC_COMP(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, \ |
| 416 | compat_sys_rt_sigqueueinfo) | ||
| 393 | #define __NR_rt_sigreturn 139 | 417 | #define __NR_rt_sigreturn 139 |
| 394 | __SYSCALL(__NR_rt_sigreturn, sys_rt_sigreturn) /* sys_rt_sigreturn_wrapper, */ | 418 | __SC_COMP(__NR_rt_sigreturn, sys_rt_sigreturn, compat_sys_rt_sigreturn) |
| 395 | 419 | ||
| 396 | /* kernel/sys.c */ | 420 | /* kernel/sys.c */ |
| 397 | #define __NR_setpriority 140 | 421 | #define __NR_setpriority 140 |
| @@ -421,7 +445,7 @@ __SYSCALL(__NR_setfsuid, sys_setfsuid) | |||
| 421 | #define __NR_setfsgid 152 | 445 | #define __NR_setfsgid 152 |
| 422 | __SYSCALL(__NR_setfsgid, sys_setfsgid) | 446 | __SYSCALL(__NR_setfsgid, sys_setfsgid) |
| 423 | #define __NR_times 153 | 447 | #define __NR_times 153 |
| 424 | __SYSCALL(__NR_times, sys_times) | 448 | __SC_COMP(__NR_times, sys_times, compat_sys_times) |
| 425 | #define __NR_setpgid 154 | 449 | #define __NR_setpgid 154 |
| 426 | __SYSCALL(__NR_setpgid, sys_setpgid) | 450 | __SYSCALL(__NR_setpgid, sys_setpgid) |
| 427 | #define __NR_getpgid 155 | 451 | #define __NR_getpgid 155 |
| @@ -441,11 +465,11 @@ __SYSCALL(__NR_sethostname, sys_sethostname) | |||
| 441 | #define __NR_setdomainname 162 | 465 | #define __NR_setdomainname 162 |
| 442 | __SYSCALL(__NR_setdomainname, sys_setdomainname) | 466 | __SYSCALL(__NR_setdomainname, sys_setdomainname) |
| 443 | #define __NR_getrlimit 163 | 467 | #define __NR_getrlimit 163 |
| 444 | __SYSCALL(__NR_getrlimit, sys_getrlimit) | 468 | __SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit) |
| 445 | #define __NR_setrlimit 164 | 469 | #define __NR_setrlimit 164 |
| 446 | __SYSCALL(__NR_setrlimit, sys_setrlimit) | 470 | __SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit) |
| 447 | #define __NR_getrusage 165 | 471 | #define __NR_getrusage 165 |
| 448 | __SYSCALL(__NR_getrusage, sys_getrusage) | 472 | __SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage) |
| 449 | #define __NR_umask 166 | 473 | #define __NR_umask 166 |
| 450 | __SYSCALL(__NR_umask, sys_umask) | 474 | __SYSCALL(__NR_umask, sys_umask) |
| 451 | #define __NR_prctl 167 | 475 | #define __NR_prctl 167 |
| @@ -455,11 +479,11 @@ __SYSCALL(__NR_getcpu, sys_getcpu) | |||
| 455 | 479 | ||
| 456 | /* kernel/time.c */ | 480 | /* kernel/time.c */ |
| 457 | #define __NR_gettimeofday 169 | 481 | #define __NR_gettimeofday 169 |
| 458 | __SYSCALL(__NR_gettimeofday, sys_gettimeofday) | 482 | __SC_COMP(__NR_gettimeofday, sys_gettimeofday, compat_sys_gettimeofday) |
| 459 | #define __NR_settimeofday 170 | 483 | #define __NR_settimeofday 170 |
| 460 | __SYSCALL(__NR_settimeofday, sys_settimeofday) | 484 | __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday) |
| 461 | #define __NR_adjtimex 171 | 485 | #define __NR_adjtimex 171 |
| 462 | __SYSCALL(__NR_adjtimex, sys_adjtimex) | 486 | __SC_COMP(__NR_adjtimex, sys_adjtimex, compat_sys_adjtimex) |
| 463 | 487 | ||
| 464 | /* kernel/timer.c */ | 488 | /* kernel/timer.c */ |
| 465 | #define __NR_getpid 172 | 489 | #define __NR_getpid 172 |
| @@ -477,39 +501,40 @@ __SYSCALL(__NR_getegid, sys_getegid) | |||
| 477 | #define __NR_gettid 178 | 501 | #define __NR_gettid 178 |
| 478 | __SYSCALL(__NR_gettid, sys_gettid) | 502 | __SYSCALL(__NR_gettid, sys_gettid) |
| 479 | #define __NR_sysinfo 179 | 503 | #define __NR_sysinfo 179 |
| 480 | __SYSCALL(__NR_sysinfo, sys_sysinfo) | 504 | __SC_COMP(__NR_sysinfo, sys_sysinfo, compat_sys_sysinfo) |
| 481 | 505 | ||
| 482 | /* ipc/mqueue.c */ | 506 | /* ipc/mqueue.c */ |
| 483 | #define __NR_mq_open 180 | 507 | #define __NR_mq_open 180 |
| 484 | __SYSCALL(__NR_mq_open, sys_mq_open) | 508 | __SC_COMP(__NR_mq_open, sys_mq_open, compat_sys_mq_open) |
| 485 | #define __NR_mq_unlink 181 | 509 | #define __NR_mq_unlink 181 |
| 486 | __SYSCALL(__NR_mq_unlink, sys_mq_unlink) | 510 | __SYSCALL(__NR_mq_unlink, sys_mq_unlink) |
| 487 | #define __NR_mq_timedsend 182 | 511 | #define __NR_mq_timedsend 182 |
| 488 | __SYSCALL(__NR_mq_timedsend, sys_mq_timedsend) | 512 | __SC_COMP(__NR_mq_timedsend, sys_mq_timedsend, compat_sys_mq_timedsend) |
| 489 | #define __NR_mq_timedreceive 183 | 513 | #define __NR_mq_timedreceive 183 |
| 490 | __SYSCALL(__NR_mq_timedreceive, sys_mq_timedreceive) | 514 | __SC_COMP(__NR_mq_timedreceive, sys_mq_timedreceive, \ |
| 515 | compat_sys_mq_timedreceive) | ||
| 491 | #define __NR_mq_notify 184 | 516 | #define __NR_mq_notify 184 |
| 492 | __SYSCALL(__NR_mq_notify, sys_mq_notify) | 517 | __SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify) |
| 493 | #define __NR_mq_getsetattr 185 | 518 | #define __NR_mq_getsetattr 185 |
| 494 | __SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr) | 519 | __SC_COMP(__NR_mq_getsetattr, sys_mq_getsetattr, compat_sys_mq_getsetattr) |
| 495 | 520 | ||
| 496 | /* ipc/msg.c */ | 521 | /* ipc/msg.c */ |
| 497 | #define __NR_msgget 186 | 522 | #define __NR_msgget 186 |
| 498 | __SYSCALL(__NR_msgget, sys_msgget) | 523 | __SYSCALL(__NR_msgget, sys_msgget) |
| 499 | #define __NR_msgctl 187 | 524 | #define __NR_msgctl 187 |
| 500 | __SYSCALL(__NR_msgctl, sys_msgctl) | 525 | __SC_COMP(__NR_msgctl, sys_msgctl, compat_sys_msgctl) |
| 501 | #define __NR_msgrcv 188 | 526 | #define __NR_msgrcv 188 |
| 502 | __SYSCALL(__NR_msgrcv, sys_msgrcv) | 527 | __SC_COMP(__NR_msgrcv, sys_msgrcv, compat_sys_msgrcv) |
| 503 | #define __NR_msgsnd 189 | 528 | #define __NR_msgsnd 189 |
| 504 | __SYSCALL(__NR_msgsnd, sys_msgsnd) | 529 | __SC_COMP(__NR_msgsnd, sys_msgsnd, compat_sys_msgsnd) |
| 505 | 530 | ||
| 506 | /* ipc/sem.c */ | 531 | /* ipc/sem.c */ |
| 507 | #define __NR_semget 190 | 532 | #define __NR_semget 190 |
| 508 | __SYSCALL(__NR_semget, sys_semget) | 533 | __SYSCALL(__NR_semget, sys_semget) |
| 509 | #define __NR_semctl 191 | 534 | #define __NR_semctl 191 |
| 510 | __SYSCALL(__NR_semctl, sys_semctl) | 535 | __SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl) |
| 511 | #define __NR_semtimedop 192 | 536 | #define __NR_semtimedop 192 |
| 512 | __SYSCALL(__NR_semtimedop, sys_semtimedop) | 537 | __SC_COMP(__NR_semtimedop, sys_semtimedop, compat_sys_semtimedop) |
| 513 | #define __NR_semop 193 | 538 | #define __NR_semop 193 |
| 514 | __SYSCALL(__NR_semop, sys_semop) | 539 | __SYSCALL(__NR_semop, sys_semop) |
| 515 | 540 | ||
| @@ -517,9 +542,9 @@ __SYSCALL(__NR_semop, sys_semop) | |||
| 517 | #define __NR_shmget 194 | 542 | #define __NR_shmget 194 |
| 518 | __SYSCALL(__NR_shmget, sys_shmget) | 543 | __SYSCALL(__NR_shmget, sys_shmget) |
| 519 | #define __NR_shmctl 195 | 544 | #define __NR_shmctl 195 |
| 520 | __SYSCALL(__NR_shmctl, sys_shmctl) | 545 | __SC_COMP(__NR_shmctl, sys_shmctl, compat_sys_shmctl) |
| 521 | #define __NR_shmat 196 | 546 | #define __NR_shmat 196 |
| 522 | __SYSCALL(__NR_shmat, sys_shmat) | 547 | __SC_COMP(__NR_shmat, sys_shmat, compat_sys_shmat) |
| 523 | #define __NR_shmdt 197 | 548 | #define __NR_shmdt 197 |
| 524 | __SYSCALL(__NR_shmdt, sys_shmdt) | 549 | __SYSCALL(__NR_shmdt, sys_shmdt) |
| 525 | 550 | ||
| @@ -543,21 +568,21 @@ __SYSCALL(__NR_getpeername, sys_getpeername) | |||
| 543 | #define __NR_sendto 206 | 568 | #define __NR_sendto 206 |
| 544 | __SYSCALL(__NR_sendto, sys_sendto) | 569 | __SYSCALL(__NR_sendto, sys_sendto) |
| 545 | #define __NR_recvfrom 207 | 570 | #define __NR_recvfrom 207 |
| 546 | __SYSCALL(__NR_recvfrom, sys_recvfrom) | 571 | __SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom) |
| 547 | #define __NR_setsockopt 208 | 572 | #define __NR_setsockopt 208 |
| 548 | __SYSCALL(__NR_setsockopt, sys_setsockopt) | 573 | __SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt) |
| 549 | #define __NR_getsockopt 209 | 574 | #define __NR_getsockopt 209 |
| 550 | __SYSCALL(__NR_getsockopt, sys_getsockopt) | 575 | __SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt) |
| 551 | #define __NR_shutdown 210 | 576 | #define __NR_shutdown 210 |
| 552 | __SYSCALL(__NR_shutdown, sys_shutdown) | 577 | __SYSCALL(__NR_shutdown, sys_shutdown) |
| 553 | #define __NR_sendmsg 211 | 578 | #define __NR_sendmsg 211 |
| 554 | __SYSCALL(__NR_sendmsg, sys_sendmsg) | 579 | __SC_COMP(__NR_sendmsg, sys_sendmsg, compat_sys_sendmsg) |
| 555 | #define __NR_recvmsg 212 | 580 | #define __NR_recvmsg 212 |
| 556 | __SYSCALL(__NR_recvmsg, sys_recvmsg) | 581 | __SC_COMP(__NR_recvmsg, sys_recvmsg, compat_sys_recvmsg) |
| 557 | 582 | ||
| 558 | /* mm/filemap.c */ | 583 | /* mm/filemap.c */ |
| 559 | #define __NR_readahead 213 | 584 | #define __NR_readahead 213 |
| 560 | __SYSCALL(__NR_readahead, sys_readahead) | 585 | __SC_COMP(__NR_readahead, sys_readahead, compat_sys_readahead) |
| 561 | 586 | ||
| 562 | /* mm/nommu.c, also with MMU */ | 587 | /* mm/nommu.c, also with MMU */ |
| 563 | #define __NR_brk 214 | 588 | #define __NR_brk 214 |
| @@ -573,19 +598,19 @@ __SYSCALL(__NR_add_key, sys_add_key) | |||
| 573 | #define __NR_request_key 218 | 598 | #define __NR_request_key 218 |
| 574 | __SYSCALL(__NR_request_key, sys_request_key) | 599 | __SYSCALL(__NR_request_key, sys_request_key) |
| 575 | #define __NR_keyctl 219 | 600 | #define __NR_keyctl 219 |
| 576 | __SYSCALL(__NR_keyctl, sys_keyctl) | 601 | __SC_COMP(__NR_keyctl, sys_keyctl, compat_sys_keyctl) |
| 577 | 602 | ||
| 578 | /* arch/example/kernel/sys_example.c */ | 603 | /* arch/example/kernel/sys_example.c */ |
| 579 | #define __NR_clone 220 | 604 | #define __NR_clone 220 |
| 580 | __SYSCALL(__NR_clone, sys_clone) /* .long sys_clone_wrapper */ | 605 | __SYSCALL(__NR_clone, sys_clone) |
| 581 | #define __NR_execve 221 | 606 | #define __NR_execve 221 |
| 582 | __SYSCALL(__NR_execve, sys_execve) /* .long sys_execve_wrapper */ | 607 | __SC_COMP(__NR_execve, sys_execve, compat_sys_execve) |
| 583 | 608 | ||
| 584 | #define __NR3264_mmap 222 | 609 | #define __NR3264_mmap 222 |
| 585 | __SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap) | 610 | __SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap) |
| 586 | /* mm/fadvise.c */ | 611 | /* mm/fadvise.c */ |
| 587 | #define __NR3264_fadvise64 223 | 612 | #define __NR3264_fadvise64 223 |
| 588 | __SYSCALL(__NR3264_fadvise64, sys_fadvise64_64) | 613 | __SC_COMP(__NR3264_fadvise64, sys_fadvise64_64, compat_sys_fadvise64_64) |
| 589 | 614 | ||
| 590 | /* mm/, CONFIG_MMU only */ | 615 | /* mm/, CONFIG_MMU only */ |
| 591 | #ifndef __ARCH_NOMMU | 616 | #ifndef __ARCH_NOMMU |
| @@ -612,25 +637,26 @@ __SYSCALL(__NR_madvise, sys_madvise) | |||
| 612 | #define __NR_remap_file_pages 234 | 637 | #define __NR_remap_file_pages 234 |
| 613 | __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) | 638 | __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) |
| 614 | #define __NR_mbind 235 | 639 | #define __NR_mbind 235 |
| 615 | __SYSCALL(__NR_mbind, sys_mbind) | 640 | __SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind) |
| 616 | #define __NR_get_mempolicy 236 | 641 | #define __NR_get_mempolicy 236 |
| 617 | __SYSCALL(__NR_get_mempolicy, sys_get_mempolicy) | 642 | __SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy) |
| 618 | #define __NR_set_mempolicy 237 | 643 | #define __NR_set_mempolicy 237 |
| 619 | __SYSCALL(__NR_set_mempolicy, sys_set_mempolicy) | 644 | __SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy) |
| 620 | #define __NR_migrate_pages 238 | 645 | #define __NR_migrate_pages 238 |
| 621 | __SYSCALL(__NR_migrate_pages, sys_migrate_pages) | 646 | __SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages) |
| 622 | #define __NR_move_pages 239 | 647 | #define __NR_move_pages 239 |
| 623 | __SYSCALL(__NR_move_pages, sys_move_pages) | 648 | __SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages) |
| 624 | #endif | 649 | #endif |
| 625 | 650 | ||
| 626 | #define __NR_rt_tgsigqueueinfo 240 | 651 | #define __NR_rt_tgsigqueueinfo 240 |
| 627 | __SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) | 652 | __SC_COMP(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, \ |
| 653 | compat_sys_rt_tgsigqueueinfo) | ||
| 628 | #define __NR_perf_event_open 241 | 654 | #define __NR_perf_event_open 241 |
| 629 | __SYSCALL(__NR_perf_event_open, sys_perf_event_open) | 655 | __SYSCALL(__NR_perf_event_open, sys_perf_event_open) |
| 630 | #define __NR_accept4 242 | 656 | #define __NR_accept4 242 |
| 631 | __SYSCALL(__NR_accept4, sys_accept4) | 657 | __SYSCALL(__NR_accept4, sys_accept4) |
| 632 | #define __NR_recvmmsg 243 | 658 | #define __NR_recvmmsg 243 |
| 633 | __SYSCALL(__NR_recvmmsg, sys_recvmmsg) | 659 | __SC_COMP(__NR_recvmmsg, sys_recvmmsg, compat_sys_recvmmsg) |
| 634 | 660 | ||
| 635 | /* | 661 | /* |
| 636 | * Architectures may provide up to 16 syscalls of their own | 662 | * Architectures may provide up to 16 syscalls of their own |
| @@ -639,19 +665,20 @@ __SYSCALL(__NR_recvmmsg, sys_recvmmsg) | |||
| 639 | #define __NR_arch_specific_syscall 244 | 665 | #define __NR_arch_specific_syscall 244 |
| 640 | 666 | ||
| 641 | #define __NR_wait4 260 | 667 | #define __NR_wait4 260 |
| 642 | __SYSCALL(__NR_wait4, sys_wait4) | 668 | __SC_COMP(__NR_wait4, sys_wait4, compat_sys_wait4) |
| 643 | #define __NR_prlimit64 261 | 669 | #define __NR_prlimit64 261 |
| 644 | __SYSCALL(__NR_prlimit64, sys_prlimit64) | 670 | __SYSCALL(__NR_prlimit64, sys_prlimit64) |
| 645 | #define __NR_fanotify_init 262 | 671 | #define __NR_fanotify_init 262 |
| 646 | __SYSCALL(__NR_fanotify_init, sys_fanotify_init) | 672 | __SYSCALL(__NR_fanotify_init, sys_fanotify_init) |
| 647 | #define __NR_fanotify_mark 263 | 673 | #define __NR_fanotify_mark 263 |
| 648 | __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) | 674 | __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) |
| 649 | #define __NR_name_to_handle_at 264 | 675 | #define __NR_name_to_handle_at 264 |
| 650 | __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) | 676 | __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) |
| 651 | #define __NR_open_by_handle_at 265 | 677 | #define __NR_open_by_handle_at 265 |
| 652 | __SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at) | 678 | __SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \ |
| 679 | compat_sys_open_by_handle_at) | ||
| 653 | #define __NR_clock_adjtime 266 | 680 | #define __NR_clock_adjtime 266 |
| 654 | __SYSCALL(__NR_clock_adjtime, sys_clock_adjtime) | 681 | __SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime) |
| 655 | #define __NR_syncfs 267 | 682 | #define __NR_syncfs 267 |
| 656 | __SYSCALL(__NR_syncfs, sys_syncfs) | 683 | __SYSCALL(__NR_syncfs, sys_syncfs) |
| 657 | 684 | ||
