11da177e4SLinus Torvalds 21da177e4SLinus Torvalds #include <linux/linkage.h> 31da177e4SLinus Torvalds #include <linux/errno.h> 41da177e4SLinus Torvalds 51da177e4SLinus Torvalds #include <asm/unistd.h> 61da177e4SLinus Torvalds 70732a552SAdrian Bunk /* we can't #include <linux/syscalls.h> here, 80732a552SAdrian Bunk but tell gcc to not warn with -Wmissing-prototypes */ 90732a552SAdrian Bunk asmlinkage long sys_ni_syscall(void); 100732a552SAdrian Bunk 111da177e4SLinus Torvalds /* 121da177e4SLinus Torvalds * Non-implemented system calls get redirected here. 131da177e4SLinus Torvalds */ 141da177e4SLinus Torvalds asmlinkage long sys_ni_syscall(void) 151da177e4SLinus Torvalds { 161da177e4SLinus Torvalds return -ENOSYS; 171da177e4SLinus Torvalds } 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds cond_syscall(sys_quotactl); 20b716395eSVasily Tarasov cond_syscall(sys32_quotactl); 211da177e4SLinus Torvalds cond_syscall(sys_acct); 221da177e4SLinus Torvalds cond_syscall(sys_lookup_dcookie); 23d5dc77bfSAl Viro cond_syscall(compat_sys_lookup_dcookie); 241da177e4SLinus Torvalds cond_syscall(sys_swapon); 251da177e4SLinus Torvalds cond_syscall(sys_swapoff); 26dc009d92SEric W. Biederman cond_syscall(sys_kexec_load); 27dc009d92SEric W. Biederman cond_syscall(compat_sys_kexec_load); 28f0895685SVivek Goyal cond_syscall(sys_kexec_file_load); 291da177e4SLinus Torvalds cond_syscall(sys_init_module); 3034e1169dSKees Cook cond_syscall(sys_finit_module); 311da177e4SLinus Torvalds cond_syscall(sys_delete_module); 321da177e4SLinus Torvalds cond_syscall(sys_socketpair); 331da177e4SLinus Torvalds cond_syscall(sys_bind); 341da177e4SLinus Torvalds cond_syscall(sys_listen); 351da177e4SLinus Torvalds cond_syscall(sys_accept); 36de11defeSUlrich Drepper cond_syscall(sys_accept4); 371da177e4SLinus Torvalds cond_syscall(sys_connect); 381da177e4SLinus Torvalds cond_syscall(sys_getsockname); 391da177e4SLinus Torvalds cond_syscall(sys_getpeername); 401da177e4SLinus Torvalds cond_syscall(sys_sendto); 411da177e4SLinus Torvalds cond_syscall(sys_send); 421da177e4SLinus Torvalds cond_syscall(sys_recvfrom); 431da177e4SLinus Torvalds cond_syscall(sys_recv); 441da177e4SLinus Torvalds cond_syscall(sys_socket); 451da177e4SLinus Torvalds cond_syscall(sys_setsockopt); 46f3baa482SDavid S. Miller cond_syscall(compat_sys_setsockopt); 471da177e4SLinus Torvalds cond_syscall(sys_getsockopt); 48f3baa482SDavid S. Miller cond_syscall(compat_sys_getsockopt); 491da177e4SLinus Torvalds cond_syscall(sys_shutdown); 501da177e4SLinus Torvalds cond_syscall(sys_sendmsg); 51228e548eSAnton Blanchard cond_syscall(sys_sendmmsg); 52f3baa482SDavid S. Miller cond_syscall(compat_sys_sendmsg); 53228e548eSAnton Blanchard cond_syscall(compat_sys_sendmmsg); 541da177e4SLinus Torvalds cond_syscall(sys_recvmsg); 55a2e27255SArnaldo Carvalho de Melo cond_syscall(sys_recvmmsg); 56f3baa482SDavid S. Miller cond_syscall(compat_sys_recvmsg); 571ef21199SStephen Rothwell cond_syscall(compat_sys_recv); 58dedcf297SAndrew Morton cond_syscall(compat_sys_recvfrom); 59a2e27255SArnaldo Carvalho de Melo cond_syscall(compat_sys_recvmmsg); 601da177e4SLinus Torvalds cond_syscall(sys_socketcall); 611da177e4SLinus Torvalds cond_syscall(sys_futex); 621da177e4SLinus Torvalds cond_syscall(compat_sys_futex); 630771dfefSIngo Molnar cond_syscall(sys_set_robust_list); 640771dfefSIngo Molnar cond_syscall(compat_sys_set_robust_list); 650771dfefSIngo Molnar cond_syscall(sys_get_robust_list); 660771dfefSIngo Molnar cond_syscall(compat_sys_get_robust_list); 671da177e4SLinus Torvalds cond_syscall(sys_epoll_create); 685df439efSWang Chen cond_syscall(sys_epoll_create1); 691da177e4SLinus Torvalds cond_syscall(sys_epoll_ctl); 701da177e4SLinus Torvalds cond_syscall(sys_epoll_wait); 7139af1143SRandy Dunlap cond_syscall(sys_epoll_pwait); 725f17156fSAtsushi Nemoto cond_syscall(compat_sys_epoll_pwait); 731da177e4SLinus Torvalds cond_syscall(sys_semget); 741da177e4SLinus Torvalds cond_syscall(sys_semop); 751da177e4SLinus Torvalds cond_syscall(sys_semtimedop); 76be84bfccSKevin Cernekee cond_syscall(compat_sys_semtimedop); 771da177e4SLinus Torvalds cond_syscall(sys_semctl); 78be84bfccSKevin Cernekee cond_syscall(compat_sys_semctl); 791da177e4SLinus Torvalds cond_syscall(sys_msgget); 801da177e4SLinus Torvalds cond_syscall(sys_msgsnd); 81be84bfccSKevin Cernekee cond_syscall(compat_sys_msgsnd); 821da177e4SLinus Torvalds cond_syscall(sys_msgrcv); 83be84bfccSKevin Cernekee cond_syscall(compat_sys_msgrcv); 841da177e4SLinus Torvalds cond_syscall(sys_msgctl); 85be84bfccSKevin Cernekee cond_syscall(compat_sys_msgctl); 861da177e4SLinus Torvalds cond_syscall(sys_shmget); 877d87e14cSStephen Rothwell cond_syscall(sys_shmat); 88be84bfccSKevin Cernekee cond_syscall(compat_sys_shmat); 891da177e4SLinus Torvalds cond_syscall(sys_shmdt); 901da177e4SLinus Torvalds cond_syscall(sys_shmctl); 91be84bfccSKevin Cernekee cond_syscall(compat_sys_shmctl); 921da177e4SLinus Torvalds cond_syscall(sys_mq_open); 931da177e4SLinus Torvalds cond_syscall(sys_mq_unlink); 941da177e4SLinus Torvalds cond_syscall(sys_mq_timedsend); 951da177e4SLinus Torvalds cond_syscall(sys_mq_timedreceive); 961da177e4SLinus Torvalds cond_syscall(sys_mq_notify); 971da177e4SLinus Torvalds cond_syscall(sys_mq_getsetattr); 981da177e4SLinus Torvalds cond_syscall(compat_sys_mq_open); 991da177e4SLinus Torvalds cond_syscall(compat_sys_mq_timedsend); 1001da177e4SLinus Torvalds cond_syscall(compat_sys_mq_timedreceive); 1011da177e4SLinus Torvalds cond_syscall(compat_sys_mq_notify); 1021da177e4SLinus Torvalds cond_syscall(compat_sys_mq_getsetattr); 1031da177e4SLinus Torvalds cond_syscall(sys_mbind); 1041da177e4SLinus Torvalds cond_syscall(sys_get_mempolicy); 1051da177e4SLinus Torvalds cond_syscall(sys_set_mempolicy); 1061da177e4SLinus Torvalds cond_syscall(compat_sys_mbind); 1071da177e4SLinus Torvalds cond_syscall(compat_sys_get_mempolicy); 1081da177e4SLinus Torvalds cond_syscall(compat_sys_set_mempolicy); 1091da177e4SLinus Torvalds cond_syscall(sys_add_key); 1101da177e4SLinus Torvalds cond_syscall(sys_request_key); 1111da177e4SLinus Torvalds cond_syscall(sys_keyctl); 1121da177e4SLinus Torvalds cond_syscall(compat_sys_keyctl); 1131da177e4SLinus Torvalds cond_syscall(compat_sys_socketcall); 1140eeca283SRobert Love cond_syscall(sys_inotify_init); 1154006553bSUlrich Drepper cond_syscall(sys_inotify_init1); 1160eeca283SRobert Love cond_syscall(sys_inotify_add_watch); 1170eeca283SRobert Love cond_syscall(sys_inotify_rm_watch); 11839743889SChristoph Lameter cond_syscall(sys_migrate_pages); 119742755a1SChristoph Lameter cond_syscall(sys_move_pages); 120e585e470SMatt Mackall cond_syscall(sys_chown16); 121e585e470SMatt Mackall cond_syscall(sys_fchown16); 122e585e470SMatt Mackall cond_syscall(sys_getegid16); 123e585e470SMatt Mackall cond_syscall(sys_geteuid16); 124e585e470SMatt Mackall cond_syscall(sys_getgid16); 125e585e470SMatt Mackall cond_syscall(sys_getgroups16); 126e585e470SMatt Mackall cond_syscall(sys_getresgid16); 127e585e470SMatt Mackall cond_syscall(sys_getresuid16); 128e585e470SMatt Mackall cond_syscall(sys_getuid16); 129e585e470SMatt Mackall cond_syscall(sys_lchown16); 130e585e470SMatt Mackall cond_syscall(sys_setfsgid16); 131e585e470SMatt Mackall cond_syscall(sys_setfsuid16); 132e585e470SMatt Mackall cond_syscall(sys_setgid16); 133e585e470SMatt Mackall cond_syscall(sys_setgroups16); 134e585e470SMatt Mackall cond_syscall(sys_setregid16); 135e585e470SMatt Mackall cond_syscall(sys_setresgid16); 136e585e470SMatt Mackall cond_syscall(sys_setresuid16); 137e585e470SMatt Mackall cond_syscall(sys_setreuid16); 138e585e470SMatt Mackall cond_syscall(sys_setuid16); 139f6187769SFabian Frederick cond_syscall(sys_sgetmask); 140f6187769SFabian Frederick cond_syscall(sys_ssetmask); 14164ca9004SMatt Mackall cond_syscall(sys_vm86old); 14264ca9004SMatt Mackall cond_syscall(sys_vm86); 143a5b9e5a2SAndy Lutomirski cond_syscall(sys_modify_ldt); 144baed7fc9SChristoph Hellwig cond_syscall(sys_ipc); 1457fd105e7SStephen Rothwell cond_syscall(compat_sys_ipc); 1467fd105e7SStephen Rothwell cond_syscall(compat_sys_sysctl); 147bfcd17a6SThomas Petazzoni cond_syscall(sys_flock); 148ebf3f09cSThomas Petazzoni cond_syscall(sys_io_setup); 149ebf3f09cSThomas Petazzoni cond_syscall(sys_io_destroy); 150ebf3f09cSThomas Petazzoni cond_syscall(sys_io_submit); 151ebf3f09cSThomas Petazzoni cond_syscall(sys_io_cancel); 152ebf3f09cSThomas Petazzoni cond_syscall(sys_io_getevents); 1536af9f7bfSFabian Frederick cond_syscall(sys_sysfs); 154f627a741SHeiko Carstens cond_syscall(sys_syslog); 155fcf63409SChristopher Yeoh cond_syscall(sys_process_vm_readv); 156fcf63409SChristopher Yeoh cond_syscall(sys_process_vm_writev); 157fcf63409SChristopher Yeoh cond_syscall(compat_sys_process_vm_readv); 158fcf63409SChristopher Yeoh cond_syscall(compat_sys_process_vm_writev); 15969369a70SJosh Triplett cond_syscall(sys_uselib); 160d3ac21caSJosh Triplett cond_syscall(sys_fadvise64); 161d3ac21caSJosh Triplett cond_syscall(sys_fadvise64_64); 162d3ac21caSJosh Triplett cond_syscall(sys_madvise); 1632813893fSIulia Manda cond_syscall(sys_setuid); 1642813893fSIulia Manda cond_syscall(sys_setregid); 1652813893fSIulia Manda cond_syscall(sys_setgid); 1662813893fSIulia Manda cond_syscall(sys_setreuid); 1672813893fSIulia Manda cond_syscall(sys_setresuid); 1682813893fSIulia Manda cond_syscall(sys_getresuid); 1692813893fSIulia Manda cond_syscall(sys_setresgid); 1702813893fSIulia Manda cond_syscall(sys_getresgid); 1712813893fSIulia Manda cond_syscall(sys_setgroups); 1722813893fSIulia Manda cond_syscall(sys_getgroups); 1732813893fSIulia Manda cond_syscall(sys_setfsuid); 1742813893fSIulia Manda cond_syscall(sys_setfsgid); 1752813893fSIulia Manda cond_syscall(sys_capget); 1762813893fSIulia Manda cond_syscall(sys_capset); 1771da177e4SLinus Torvalds 1781da177e4SLinus Torvalds /* arch-specific weak syscall entries */ 1791da177e4SLinus Torvalds cond_syscall(sys_pciconfig_read); 1801da177e4SLinus Torvalds cond_syscall(sys_pciconfig_write); 1811da177e4SLinus Torvalds cond_syscall(sys_pciconfig_iobase); 18256e41d3cSAl Viro cond_syscall(compat_sys_s390_ipc); 1831da177e4SLinus Torvalds cond_syscall(ppc_rtas); 18467207b96SArnd Bergmann cond_syscall(sys_spu_run); 18567207b96SArnd Bergmann cond_syscall(sys_spu_create); 186fa28237cSPaul Mackerras cond_syscall(sys_subpage_prot); 1874eafad7fSAlexey Ishchuk cond_syscall(sys_s390_pci_mmio_read); 1884eafad7fSAlexey Ishchuk cond_syscall(sys_s390_pci_mmio_write); 1893016b421SHyok S. Choi 1903016b421SHyok S. Choi /* mmu depending weak syscall entries */ 1913016b421SHyok S. Choi cond_syscall(sys_mprotect); 1923016b421SHyok S. Choi cond_syscall(sys_msync); 1933016b421SHyok S. Choi cond_syscall(sys_mlock); 1943016b421SHyok S. Choi cond_syscall(sys_munlock); 1953016b421SHyok S. Choi cond_syscall(sys_mlockall); 1963016b421SHyok S. Choi cond_syscall(sys_munlockall); 197a8ca5d0eSEric B Munson cond_syscall(sys_mlock2); 1983016b421SHyok S. Choi cond_syscall(sys_mincore); 1993016b421SHyok S. Choi cond_syscall(sys_madvise); 2003016b421SHyok S. Choi cond_syscall(sys_mremap); 2013016b421SHyok S. Choi cond_syscall(sys_remap_file_pages); 2021b2db9fbSChristoph Lameter cond_syscall(compat_sys_move_pages); 2033fd59397SStephen Rothwell cond_syscall(compat_sys_migrate_pages); 2049361401eSDavid Howells 2059361401eSDavid Howells /* block-layer dependent */ 2069361401eSDavid Howells cond_syscall(sys_bdflush); 2079361401eSDavid Howells cond_syscall(sys_ioprio_set); 2089361401eSDavid Howells cond_syscall(sys_ioprio_get); 209fba2afaaSDavide Libenzi 210fba2afaaSDavide Libenzi /* New file descriptors */ 211fba2afaaSDavide Libenzi cond_syscall(sys_signalfd); 2129deb27baSUlrich Drepper cond_syscall(sys_signalfd4); 2138df767ddSHeiko Carstens cond_syscall(compat_sys_signalfd); 2149b813616SIngo Molnar cond_syscall(compat_sys_signalfd4); 2154d672e7aSDavide Libenzi cond_syscall(sys_timerfd_create); 2164d672e7aSDavide Libenzi cond_syscall(sys_timerfd_settime); 2174d672e7aSDavide Libenzi cond_syscall(sys_timerfd_gettime); 2184d672e7aSDavide Libenzi cond_syscall(compat_sys_timerfd_settime); 2194d672e7aSDavide Libenzi cond_syscall(compat_sys_timerfd_gettime); 220e1ad7468SDavide Libenzi cond_syscall(sys_eventfd); 221b087498eSUlrich Drepper cond_syscall(sys_eventfd2); 2229183df25SDavid Herrmann cond_syscall(sys_memfd_create); 2231380fca0SAndrea Arcangeli cond_syscall(sys_userfaultfd); 2240793a61dSThomas Gleixner 2250793a61dSThomas Gleixner /* performance counters: */ 226cdd6c482SIngo Molnar cond_syscall(sys_perf_event_open); 22711637e4bSEric Paris 22811637e4bSEric Paris /* fanotify! */ 22911637e4bSEric Paris cond_syscall(sys_fanotify_init); 230bbaa4168SEric Paris cond_syscall(sys_fanotify_mark); 23191c2e0bcSAl Viro cond_syscall(compat_sys_fanotify_mark); 232990d6c2dSAneesh Kumar K.V 233990d6c2dSAneesh Kumar K.V /* open by handle */ 234990d6c2dSAneesh Kumar K.V cond_syscall(sys_name_to_handle_at); 235becfd1f3SAneesh Kumar K.V cond_syscall(sys_open_by_handle_at); 236becfd1f3SAneesh Kumar K.V cond_syscall(compat_sys_open_by_handle_at); 237d97b46a6SCyrill Gorcunov 238d97b46a6SCyrill Gorcunov /* compare kernel pointers */ 239d97b46a6SCyrill Gorcunov cond_syscall(sys_kcmp); 24048dc92b9SKees Cook 24148dc92b9SKees Cook /* operate on Secure Computing state */ 24248dc92b9SKees Cook cond_syscall(sys_seccomp); 243749730ceSAlexei Starovoitov 244749730ceSAlexei Starovoitov /* access BPF programs and maps */ 245749730ceSAlexei Starovoitov cond_syscall(sys_bpf); 24651f39a1fSDavid Drysdale 24751f39a1fSDavid Drysdale /* execveat */ 24851f39a1fSDavid Drysdale cond_syscall(sys_execveat); 2495b25b13aSMathieu Desnoyers 2505b25b13aSMathieu Desnoyers /* membarrier */ 2515b25b13aSMathieu Desnoyers cond_syscall(sys_membarrier); 252