blob: 0c1538f5a55984765088f6a6e63f20907f74cdf2 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001// SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
3#include <linux/linkage.h>
4#include <linux/errno.h>
5
6#include <asm/unistd.h>
7
Adrian Bunk0732a552007-10-16 23:29:25 -07008/* we can't #include <linux/syscalls.h> here,
9 but tell gcc to not warn with -Wmissing-prototypes */
10asmlinkage long sys_ni_syscall(void);
11
Linus Torvalds1da177e2005-04-16 15:20:36 -070012/*
13 * Non-implemented system calls get redirected here.
14 */
15asmlinkage long sys_ni_syscall(void)
16{
17 return -ENOSYS;
18}
19
Dominik Brodowski70dd4b32018-03-06 19:53:01 +010020/*
21 * This list is kept in the same order as include/uapi/asm-generic/unistd.h.
22 * Architecture specific entries go below, followed by deprecated or obsolete
23 * system calls.
24 */
25
26cond_syscall(sys_io_setup);
27cond_syscall(compat_sys_io_setup);
28cond_syscall(sys_io_destroy);
29cond_syscall(sys_io_submit);
30cond_syscall(compat_sys_io_submit);
31cond_syscall(sys_io_cancel);
32cond_syscall(sys_io_getevents);
33cond_syscall(compat_sys_io_getevents);
34
35/* fs/xattr.c */
36
37/* fs/dcache.c */
38
39/* fs/cookies.c */
Linus Torvalds1da177e2005-04-16 15:20:36 -070040cond_syscall(sys_lookup_dcookie);
Al Virod5dc77b2013-02-25 18:42:04 -050041cond_syscall(compat_sys_lookup_dcookie);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +010042
43/* fs/eventfd.c */
44cond_syscall(sys_eventfd2);
45
46/* fs/eventfd.c */
47cond_syscall(sys_epoll_create1);
48cond_syscall(sys_epoll_ctl);
49cond_syscall(sys_epoll_pwait);
50cond_syscall(compat_sys_epoll_pwait);
51
52/* fs/fcntl.c */
53
54/* fs/inotify_user.c */
55cond_syscall(sys_inotify_init1);
56cond_syscall(sys_inotify_add_watch);
57cond_syscall(sys_inotify_rm_watch);
58
59/* fs/ioctl.c */
60
61/* fs/ioprio.c */
62cond_syscall(sys_ioprio_set);
63cond_syscall(sys_ioprio_get);
64
65/* fs/locks.c */
66cond_syscall(sys_flock);
67
68/* fs/namei.c */
69
70/* fs/namespace.c */
71
72/* fs/nfsctl.c */
73
74/* fs/open.c */
75
76/* fs/pipe.c */
77
78/* fs/quota.c */
79cond_syscall(sys_quotactl);
80
81/* fs/readdir.c */
82
83/* fs/read_write.c */
84
85/* fs/sendfile.c */
86
87/* fs/select.c */
88
89/* fs/signalfd.c */
90cond_syscall(sys_signalfd4);
91cond_syscall(compat_sys_signalfd4);
92
93/* fs/splice.c */
94
95/* fs/stat.c */
96
97/* fs/sync.c */
98
99/* fs/timerfd.c */
100cond_syscall(sys_timerfd_create);
101cond_syscall(sys_timerfd_settime);
102cond_syscall(compat_sys_timerfd_settime);
103cond_syscall(sys_timerfd_gettime);
104cond_syscall(compat_sys_timerfd_gettime);
105
106/* fs/utimes.c */
107
108/* kernel/acct.c */
109cond_syscall(sys_acct);
110
111/* kernel/capability.c */
112cond_syscall(sys_capget);
113cond_syscall(sys_capset);
114
115/* kernel/exec_domain.c */
116
117/* kernel/exit.c */
118
119/* kernel/fork.c */
120
121/* kernel/futex.c */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700122cond_syscall(sys_futex);
123cond_syscall(compat_sys_futex);
Ingo Molnar0771dfe2006-03-27 01:16:22 -0800124cond_syscall(sys_set_robust_list);
125cond_syscall(compat_sys_set_robust_list);
126cond_syscall(sys_get_robust_list);
127cond_syscall(compat_sys_get_robust_list);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100128
129/* kernel/hrtimer.c */
130
131/* kernel/itimer.c */
132
133/* kernel/kexec.c */
134cond_syscall(sys_kexec_load);
135cond_syscall(compat_sys_kexec_load);
136
137/* kernel/module.c */
138cond_syscall(sys_init_module);
139cond_syscall(sys_delete_module);
140
141/* kernel/posix-timers.c */
142
143/* kernel/printk.c */
144cond_syscall(sys_syslog);
145
146/* kernel/ptrace.c */
147
148/* kernel/sched/core.c */
149
150/* kernel/signal.c */
151
152/* kernel/sys.c */
153cond_syscall(sys_setregid);
154cond_syscall(sys_setgid);
155cond_syscall(sys_setreuid);
156cond_syscall(sys_setuid);
157cond_syscall(sys_setresuid);
158cond_syscall(sys_getresuid);
159cond_syscall(sys_setresgid);
160cond_syscall(sys_getresgid);
161cond_syscall(sys_setfsuid);
162cond_syscall(sys_setfsgid);
163cond_syscall(sys_setgroups);
164cond_syscall(sys_getgroups);
165
166/* kernel/time.c */
167
168/* kernel/timer.c */
169
170/* ipc/mqueue.c */
171cond_syscall(sys_mq_open);
172cond_syscall(compat_sys_mq_open);
173cond_syscall(sys_mq_unlink);
174cond_syscall(sys_mq_timedsend);
175cond_syscall(compat_sys_mq_timedsend);
176cond_syscall(sys_mq_timedreceive);
177cond_syscall(compat_sys_mq_timedreceive);
178cond_syscall(sys_mq_notify);
179cond_syscall(compat_sys_mq_notify);
180cond_syscall(sys_mq_getsetattr);
181cond_syscall(compat_sys_mq_getsetattr);
182
183/* ipc/msg.c */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700184cond_syscall(sys_msgget);
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185cond_syscall(sys_msgctl);
Kevin Cernekeebe84bfc2011-05-17 10:39:58 -0700186cond_syscall(compat_sys_msgctl);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100187cond_syscall(sys_msgrcv);
188cond_syscall(compat_sys_msgrcv);
189cond_syscall(sys_msgsnd);
190cond_syscall(compat_sys_msgsnd);
191
192/* ipc/sem.c */
193cond_syscall(sys_semget);
194cond_syscall(sys_semctl);
195cond_syscall(compat_sys_semctl);
196cond_syscall(sys_semtimedop);
197cond_syscall(compat_sys_semtimedop);
198cond_syscall(sys_semop);
199
200/* ipc/shm.c */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201cond_syscall(sys_shmget);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100202cond_syscall(sys_shmctl);
203cond_syscall(compat_sys_shmctl);
Stephen Rothwell7d87e14c2005-05-01 08:59:12 -0700204cond_syscall(sys_shmat);
Kevin Cernekeebe84bfc2011-05-17 10:39:58 -0700205cond_syscall(compat_sys_shmat);
Linus Torvalds1da177e2005-04-16 15:20:36 -0700206cond_syscall(sys_shmdt);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100207
208/* net/socket.c */
209cond_syscall(sys_socket);
210cond_syscall(sys_socketpair);
211cond_syscall(sys_bind);
212cond_syscall(sys_listen);
213cond_syscall(sys_accept);
214cond_syscall(sys_connect);
215cond_syscall(sys_getsockname);
216cond_syscall(sys_getpeername);
217cond_syscall(sys_setsockopt);
218cond_syscall(compat_sys_setsockopt);
219cond_syscall(sys_getsockopt);
220cond_syscall(compat_sys_getsockopt);
221cond_syscall(sys_sendto);
222cond_syscall(sys_shutdown);
223cond_syscall(sys_recvfrom);
224cond_syscall(compat_sys_recvfrom);
225cond_syscall(sys_sendmsg);
226cond_syscall(compat_sys_sendmsg);
227cond_syscall(sys_recvmsg);
228cond_syscall(compat_sys_recvmsg);
229
230/* mm/filemap.c */
231
232/* mm/nommu.c, also with MMU */
233cond_syscall(sys_mremap);
234
235/* security/keys/keyctl.c */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700236cond_syscall(sys_add_key);
237cond_syscall(sys_request_key);
238cond_syscall(sys_keyctl);
239cond_syscall(compat_sys_keyctl);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100240
241/* arch/example/kernel/sys_example.c */
242
243/* mm/fadvise.c */
244cond_syscall(sys_fadvise64_64);
245
246/* mm/, CONFIG_MMU only */
247cond_syscall(sys_swapon);
248cond_syscall(sys_swapoff);
249cond_syscall(sys_mprotect);
250cond_syscall(sys_msync);
251cond_syscall(sys_mlock);
252cond_syscall(sys_munlock);
253cond_syscall(sys_mlockall);
254cond_syscall(sys_munlockall);
255cond_syscall(sys_mincore);
256cond_syscall(sys_madvise);
257cond_syscall(sys_remap_file_pages);
258cond_syscall(sys_mbind);
259cond_syscall(compat_sys_mbind);
260cond_syscall(sys_get_mempolicy);
261cond_syscall(compat_sys_get_mempolicy);
262cond_syscall(sys_set_mempolicy);
263cond_syscall(compat_sys_set_mempolicy);
Christoph Lameter39743882006-01-08 01:00:51 -0800264cond_syscall(sys_migrate_pages);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100265cond_syscall(compat_sys_migrate_pages);
Christoph Lameter742755a2006-06-23 02:03:55 -0700266cond_syscall(sys_move_pages);
Dominik Brodowski70dd4b32018-03-06 19:53:01 +0100267cond_syscall(compat_sys_move_pages);
268
269cond_syscall(sys_perf_event_open);
270cond_syscall(sys_accept4);
271cond_syscall(sys_recvmmsg);
272cond_syscall(compat_sys_recvmmsg);
273
274/*
275 * Architecture specific syscalls: see further below
276 */
277
278/* fanotify */
279cond_syscall(sys_fanotify_init);
280cond_syscall(sys_fanotify_mark);
281
282/* open by handle */
283cond_syscall(sys_name_to_handle_at);
284cond_syscall(sys_open_by_handle_at);
285cond_syscall(compat_sys_open_by_handle_at);
286
287cond_syscall(sys_sendmmsg);
288cond_syscall(compat_sys_sendmmsg);
289cond_syscall(sys_process_vm_readv);
290cond_syscall(compat_sys_process_vm_readv);
291cond_syscall(sys_process_vm_writev);
292cond_syscall(compat_sys_process_vm_writev);
293
294/* compare kernel pointers */
295cond_syscall(sys_kcmp);
296
297cond_syscall(sys_finit_module);
298
299/* operate on Secure Computing state */
300cond_syscall(sys_seccomp);
301
302cond_syscall(sys_memfd_create);
303
304/* access BPF programs and maps */
305cond_syscall(sys_bpf);
306
307/* execveat */
308cond_syscall(sys_execveat);
309
310cond_syscall(sys_userfaultfd);
311
312/* membarrier */
313cond_syscall(sys_membarrier);
314
315cond_syscall(sys_mlock2);
316
317cond_syscall(sys_copy_file_range);
318
319/* memory protection keys */
320cond_syscall(sys_pkey_mprotect);
321cond_syscall(sys_pkey_alloc);
322cond_syscall(sys_pkey_free);
323
324
325/*
326 * Architecture specific weak syscall entries.
327 */
328
329/* pciconfig: alpha, arm, arm64, ia64, sparc */
330cond_syscall(sys_pciconfig_read);
331cond_syscall(sys_pciconfig_write);
332cond_syscall(sys_pciconfig_iobase);
333
334/* sys_socketcall: arm, mips, x86, ... */
335cond_syscall(sys_socketcall);
336cond_syscall(compat_sys_socketcall);
337
338/* compat syscalls for arm64, x86, ... */
339cond_syscall(compat_sys_sysctl);
340cond_syscall(compat_sys_fanotify_mark);
341
342/* x86 */
343cond_syscall(sys_vm86old);
344cond_syscall(sys_modify_ldt);
345cond_syscall(compat_sys_quotactl32);
346cond_syscall(sys_vm86);
347cond_syscall(sys_kexec_file_load);
348
349/* s390 */
350cond_syscall(sys_s390_pci_mmio_read);
351cond_syscall(sys_s390_pci_mmio_write);
352cond_syscall(compat_sys_s390_ipc);
353
354/* powerpc */
355cond_syscall(ppc_rtas);
356cond_syscall(sys_spu_run);
357cond_syscall(sys_spu_create);
358cond_syscall(sys_subpage_prot);
359
360
361/*
362 * Deprecated system calls which are still defined in
363 * include/uapi/asm-generic/unistd.h and wanted by >= 1 arch
364 */
365
366/* __ARCH_WANT_SYSCALL_NO_FLAGS */
367cond_syscall(sys_epoll_create);
368cond_syscall(sys_inotify_init);
369cond_syscall(sys_eventfd);
370cond_syscall(sys_signalfd);
371cond_syscall(compat_sys_signalfd);
372
373/* __ARCH_WANT_SYSCALL_OFF_T */
374cond_syscall(sys_fadvise64);
375
376/* __ARCH_WANT_SYSCALL_DEPRECATED */
377cond_syscall(sys_epoll_wait);
378cond_syscall(sys_recv);
379cond_syscall(compat_sys_recv);
380cond_syscall(sys_send);
381cond_syscall(sys_bdflush);
382cond_syscall(sys_uselib);
383
384
385/*
386 * The syscalls below are not found in include/uapi/asm-generic/unistd.h
387 */
388
389/* obsolete: SGETMASK_SYSCALL */
390cond_syscall(sys_sgetmask);
391cond_syscall(sys_ssetmask);
392
393/* obsolete: SYSFS_SYSCALL */
394cond_syscall(sys_sysfs);
395
396/* obsolete: __ARCH_WANT_SYS_IPC */
397cond_syscall(sys_ipc);
398cond_syscall(compat_sys_ipc);
399
400/* obsolete: UID16 */
Matt Mackalle585e472006-01-08 01:05:24 -0800401cond_syscall(sys_chown16);
402cond_syscall(sys_fchown16);
403cond_syscall(sys_getegid16);
404cond_syscall(sys_geteuid16);
405cond_syscall(sys_getgid16);
406cond_syscall(sys_getgroups16);
407cond_syscall(sys_getresgid16);
408cond_syscall(sys_getresuid16);
409cond_syscall(sys_getuid16);
410cond_syscall(sys_lchown16);
411cond_syscall(sys_setfsgid16);
412cond_syscall(sys_setfsuid16);
413cond_syscall(sys_setgid16);
414cond_syscall(sys_setgroups16);
415cond_syscall(sys_setregid16);
416cond_syscall(sys_setresgid16);
417cond_syscall(sys_setresuid16);
418cond_syscall(sys_setreuid16);
419cond_syscall(sys_setuid16);