linux/kernel/sys_ni.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2
   3#include <linux/linkage.h>
   4#include <linux/errno.h>
   5
   6#include <asm/unistd.h>
   7
   8#ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
   9/* Architectures may override COND_SYSCALL and COND_SYSCALL_COMPAT */
  10#include <asm/syscall_wrapper.h>
  11#endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
  12
  13/*  we can't #include <linux/syscalls.h> here,
  14    but tell gcc to not warn with -Wmissing-prototypes  */
  15asmlinkage long sys_ni_syscall(void);
  16
  17/*
  18 * Non-implemented system calls get redirected here.
  19 */
  20asmlinkage long sys_ni_syscall(void)
  21{
  22        return -ENOSYS;
  23}
  24
  25#ifndef COND_SYSCALL
  26#define COND_SYSCALL(name) cond_syscall(sys_##name)
  27#endif /* COND_SYSCALL */
  28
  29#ifndef COND_SYSCALL_COMPAT
  30#define COND_SYSCALL_COMPAT(name) cond_syscall(compat_sys_##name)
  31#endif /* COND_SYSCALL_COMPAT */
  32
  33/*
  34 * This list is kept in the same order as include/uapi/asm-generic/unistd.h.
  35 * Architecture specific entries go below, followed by deprecated or obsolete
  36 * system calls.
  37 */
  38
  39COND_SYSCALL(io_setup);
  40COND_SYSCALL_COMPAT(io_setup);
  41COND_SYSCALL(io_destroy);
  42COND_SYSCALL(io_submit);
  43COND_SYSCALL_COMPAT(io_submit);
  44COND_SYSCALL(io_cancel);
  45COND_SYSCALL(io_getevents);
  46COND_SYSCALL(io_pgetevents);
  47COND_SYSCALL_COMPAT(io_getevents);
  48COND_SYSCALL_COMPAT(io_pgetevents);
  49
  50/* fs/xattr.c */
  51
  52/* fs/dcache.c */
  53
  54/* fs/cookies.c */
  55COND_SYSCALL(lookup_dcookie);
  56COND_SYSCALL_COMPAT(lookup_dcookie);
  57
  58/* fs/eventfd.c */
  59COND_SYSCALL(eventfd2);
  60
  61/* fs/eventfd.c */
  62COND_SYSCALL(epoll_create1);
  63COND_SYSCALL(epoll_ctl);
  64COND_SYSCALL(epoll_pwait);
  65COND_SYSCALL_COMPAT(epoll_pwait);
  66
  67/* fs/fcntl.c */
  68
  69/* fs/inotify_user.c */
  70COND_SYSCALL(inotify_init1);
  71COND_SYSCALL(inotify_add_watch);
  72COND_SYSCALL(inotify_rm_watch);
  73
  74/* fs/ioctl.c */
  75
  76/* fs/ioprio.c */
  77COND_SYSCALL(ioprio_set);
  78COND_SYSCALL(ioprio_get);
  79
  80/* fs/locks.c */
  81COND_SYSCALL(flock);
  82
  83/* fs/namei.c */
  84
  85/* fs/namespace.c */
  86
  87/* fs/nfsctl.c */
  88
  89/* fs/open.c */
  90
  91/* fs/pipe.c */
  92
  93/* fs/quota.c */
  94COND_SYSCALL(quotactl);
  95
  96/* fs/readdir.c */
  97
  98/* fs/read_write.c */
  99
 100/* fs/sendfile.c */
 101
 102/* fs/select.c */
 103
 104/* fs/signalfd.c */
 105COND_SYSCALL(signalfd4);
 106COND_SYSCALL_COMPAT(signalfd4);
 107
 108/* fs/splice.c */
 109
 110/* fs/stat.c */
 111
 112/* fs/sync.c */
 113
 114/* fs/timerfd.c */
 115COND_SYSCALL(timerfd_create);
 116COND_SYSCALL(timerfd_settime);
 117COND_SYSCALL_COMPAT(timerfd_settime);
 118COND_SYSCALL(timerfd_gettime);
 119COND_SYSCALL_COMPAT(timerfd_gettime);
 120
 121/* fs/utimes.c */
 122
 123/* kernel/acct.c */
 124COND_SYSCALL(acct);
 125
 126/* kernel/capability.c */
 127COND_SYSCALL(capget);
 128COND_SYSCALL(capset);
 129
 130/* kernel/exec_domain.c */
 131
 132/* kernel/exit.c */
 133
 134/* kernel/fork.c */
 135
 136/* kernel/futex.c */
 137COND_SYSCALL(futex);
 138COND_SYSCALL_COMPAT(futex);
 139COND_SYSCALL(set_robust_list);
 140COND_SYSCALL_COMPAT(set_robust_list);
 141COND_SYSCALL(get_robust_list);
 142COND_SYSCALL_COMPAT(get_robust_list);
 143
 144/* kernel/hrtimer.c */
 145
 146/* kernel/itimer.c */
 147
 148/* kernel/kexec.c */
 149COND_SYSCALL(kexec_load);
 150COND_SYSCALL_COMPAT(kexec_load);
 151
 152/* kernel/module.c */
 153COND_SYSCALL(init_module);
 154COND_SYSCALL(delete_module);
 155
 156/* kernel/posix-timers.c */
 157
 158/* kernel/printk.c */
 159COND_SYSCALL(syslog);
 160
 161/* kernel/ptrace.c */
 162
 163/* kernel/sched/core.c */
 164
 165/* kernel/signal.c */
 166
 167/* kernel/sys.c */
 168COND_SYSCALL(setregid);
 169COND_SYSCALL(setgid);
 170COND_SYSCALL(setreuid);
 171COND_SYSCALL(setuid);
 172COND_SYSCALL(setresuid);
 173COND_SYSCALL(getresuid);
 174COND_SYSCALL(setresgid);
 175COND_SYSCALL(getresgid);
 176COND_SYSCALL(setfsuid);
 177COND_SYSCALL(setfsgid);
 178COND_SYSCALL(setgroups);
 179COND_SYSCALL(getgroups);
 180
 181/* kernel/time.c */
 182
 183/* kernel/timer.c */
 184
 185/* ipc/mqueue.c */
 186COND_SYSCALL(mq_open);
 187COND_SYSCALL_COMPAT(mq_open);
 188COND_SYSCALL(mq_unlink);
 189COND_SYSCALL(mq_timedsend);
 190COND_SYSCALL_COMPAT(mq_timedsend);
 191COND_SYSCALL(mq_timedreceive);
 192COND_SYSCALL_COMPAT(mq_timedreceive);
 193COND_SYSCALL(mq_notify);
 194COND_SYSCALL_COMPAT(mq_notify);
 195COND_SYSCALL(mq_getsetattr);
 196COND_SYSCALL_COMPAT(mq_getsetattr);
 197
 198/* ipc/msg.c */
 199COND_SYSCALL(msgget);
 200COND_SYSCALL(msgctl);
 201COND_SYSCALL_COMPAT(msgctl);
 202COND_SYSCALL(msgrcv);
 203COND_SYSCALL_COMPAT(msgrcv);
 204COND_SYSCALL(msgsnd);
 205COND_SYSCALL_COMPAT(msgsnd);
 206
 207/* ipc/sem.c */
 208COND_SYSCALL(semget);
 209COND_SYSCALL(semctl);
 210COND_SYSCALL_COMPAT(semctl);
 211COND_SYSCALL(semtimedop);
 212COND_SYSCALL_COMPAT(semtimedop);
 213COND_SYSCALL(semop);
 214
 215/* ipc/shm.c */
 216COND_SYSCALL(shmget);
 217COND_SYSCALL(shmctl);
 218COND_SYSCALL_COMPAT(shmctl);
 219COND_SYSCALL(shmat);
 220COND_SYSCALL_COMPAT(shmat);
 221COND_SYSCALL(shmdt);
 222
 223/* net/socket.c */
 224COND_SYSCALL(socket);
 225COND_SYSCALL(socketpair);
 226COND_SYSCALL(bind);
 227COND_SYSCALL(listen);
 228COND_SYSCALL(accept);
 229COND_SYSCALL(connect);
 230COND_SYSCALL(getsockname);
 231COND_SYSCALL(getpeername);
 232COND_SYSCALL(setsockopt);
 233COND_SYSCALL_COMPAT(setsockopt);
 234COND_SYSCALL(getsockopt);
 235COND_SYSCALL_COMPAT(getsockopt);
 236COND_SYSCALL(sendto);
 237COND_SYSCALL(shutdown);
 238COND_SYSCALL(recvfrom);
 239COND_SYSCALL_COMPAT(recvfrom);
 240COND_SYSCALL(sendmsg);
 241COND_SYSCALL_COMPAT(sendmsg);
 242COND_SYSCALL(recvmsg);
 243COND_SYSCALL_COMPAT(recvmsg);
 244
 245/* mm/filemap.c */
 246
 247/* mm/nommu.c, also with MMU */
 248COND_SYSCALL(mremap);
 249
 250/* security/keys/keyctl.c */
 251COND_SYSCALL(add_key);
 252COND_SYSCALL(request_key);
 253COND_SYSCALL(keyctl);
 254COND_SYSCALL_COMPAT(keyctl);
 255
 256/* arch/example/kernel/sys_example.c */
 257
 258/* mm/fadvise.c */
 259COND_SYSCALL(fadvise64_64);
 260
 261/* mm/, CONFIG_MMU only */
 262COND_SYSCALL(swapon);
 263COND_SYSCALL(swapoff);
 264COND_SYSCALL(mprotect);
 265COND_SYSCALL(msync);
 266COND_SYSCALL(mlock);
 267COND_SYSCALL(munlock);
 268COND_SYSCALL(mlockall);
 269COND_SYSCALL(munlockall);
 270COND_SYSCALL(mincore);
 271COND_SYSCALL(madvise);
 272COND_SYSCALL(remap_file_pages);
 273COND_SYSCALL(mbind);
 274COND_SYSCALL_COMPAT(mbind);
 275COND_SYSCALL(get_mempolicy);
 276COND_SYSCALL_COMPAT(get_mempolicy);
 277COND_SYSCALL(set_mempolicy);
 278COND_SYSCALL_COMPAT(set_mempolicy);
 279COND_SYSCALL(migrate_pages);
 280COND_SYSCALL_COMPAT(migrate_pages);
 281COND_SYSCALL(move_pages);
 282COND_SYSCALL_COMPAT(move_pages);
 283
 284COND_SYSCALL(perf_event_open);
 285COND_SYSCALL(accept4);
 286COND_SYSCALL(recvmmsg);
 287COND_SYSCALL_COMPAT(recvmmsg);
 288
 289/*
 290 * Architecture specific syscalls: see further below
 291 */
 292
 293/* fanotify */
 294COND_SYSCALL(fanotify_init);
 295COND_SYSCALL(fanotify_mark);
 296
 297/* open by handle */
 298COND_SYSCALL(name_to_handle_at);
 299COND_SYSCALL(open_by_handle_at);
 300COND_SYSCALL_COMPAT(open_by_handle_at);
 301
 302COND_SYSCALL(sendmmsg);
 303COND_SYSCALL_COMPAT(sendmmsg);
 304COND_SYSCALL(process_vm_readv);
 305COND_SYSCALL_COMPAT(process_vm_readv);
 306COND_SYSCALL(process_vm_writev);
 307COND_SYSCALL_COMPAT(process_vm_writev);
 308
 309/* compare kernel pointers */
 310COND_SYSCALL(kcmp);
 311
 312COND_SYSCALL(finit_module);
 313
 314/* operate on Secure Computing state */
 315COND_SYSCALL(seccomp);
 316
 317COND_SYSCALL(memfd_create);
 318
 319/* access BPF programs and maps */
 320COND_SYSCALL(bpf);
 321
 322/* execveat */
 323COND_SYSCALL(execveat);
 324
 325COND_SYSCALL(userfaultfd);
 326
 327/* membarrier */
 328COND_SYSCALL(membarrier);
 329
 330COND_SYSCALL(mlock2);
 331
 332COND_SYSCALL(copy_file_range);
 333
 334/* memory protection keys */
 335COND_SYSCALL(pkey_mprotect);
 336COND_SYSCALL(pkey_alloc);
 337COND_SYSCALL(pkey_free);
 338
 339
 340/*
 341 * Architecture specific weak syscall entries.
 342 */
 343
 344/* pciconfig: alpha, arm, arm64, ia64, sparc */
 345COND_SYSCALL(pciconfig_read);
 346COND_SYSCALL(pciconfig_write);
 347COND_SYSCALL(pciconfig_iobase);
 348
 349/* sys_socketcall: arm, mips, x86, ... */
 350COND_SYSCALL(socketcall);
 351COND_SYSCALL_COMPAT(socketcall);
 352
 353/* compat syscalls for arm64, x86, ... */
 354COND_SYSCALL_COMPAT(sysctl);
 355COND_SYSCALL_COMPAT(fanotify_mark);
 356
 357/* x86 */
 358COND_SYSCALL(vm86old);
 359COND_SYSCALL(modify_ldt);
 360COND_SYSCALL_COMPAT(quotactl32);
 361COND_SYSCALL(vm86);
 362COND_SYSCALL(kexec_file_load);
 363
 364/* s390 */
 365COND_SYSCALL(s390_pci_mmio_read);
 366COND_SYSCALL(s390_pci_mmio_write);
 367COND_SYSCALL_COMPAT(s390_ipc);
 368
 369/* powerpc */
 370COND_SYSCALL(rtas);
 371COND_SYSCALL(spu_run);
 372COND_SYSCALL(spu_create);
 373COND_SYSCALL(subpage_prot);
 374
 375
 376/*
 377 * Deprecated system calls which are still defined in
 378 * include/uapi/asm-generic/unistd.h and wanted by >= 1 arch
 379 */
 380
 381/* __ARCH_WANT_SYSCALL_NO_FLAGS */
 382COND_SYSCALL(epoll_create);
 383COND_SYSCALL(inotify_init);
 384COND_SYSCALL(eventfd);
 385COND_SYSCALL(signalfd);
 386COND_SYSCALL_COMPAT(signalfd);
 387
 388/* __ARCH_WANT_SYSCALL_OFF_T */
 389COND_SYSCALL(fadvise64);
 390
 391/* __ARCH_WANT_SYSCALL_DEPRECATED */
 392COND_SYSCALL(epoll_wait);
 393COND_SYSCALL(recv);
 394COND_SYSCALL_COMPAT(recv);
 395COND_SYSCALL(send);
 396COND_SYSCALL(bdflush);
 397COND_SYSCALL(uselib);
 398
 399
 400/*
 401 * The syscalls below are not found in include/uapi/asm-generic/unistd.h
 402 */
 403
 404/* obsolete: SGETMASK_SYSCALL */
 405COND_SYSCALL(sgetmask);
 406COND_SYSCALL(ssetmask);
 407
 408/* obsolete: SYSFS_SYSCALL */
 409COND_SYSCALL(sysfs);
 410
 411/* obsolete: __ARCH_WANT_SYS_IPC */
 412COND_SYSCALL(ipc);
 413COND_SYSCALL_COMPAT(ipc);
 414
 415/* obsolete: UID16 */
 416COND_SYSCALL(chown16);
 417COND_SYSCALL(fchown16);
 418COND_SYSCALL(getegid16);
 419COND_SYSCALL(geteuid16);
 420COND_SYSCALL(getgid16);
 421COND_SYSCALL(getgroups16);
 422COND_SYSCALL(getresgid16);
 423COND_SYSCALL(getresuid16);
 424COND_SYSCALL(getuid16);
 425COND_SYSCALL(lchown16);
 426COND_SYSCALL(setfsgid16);
 427COND_SYSCALL(setfsuid16);
 428COND_SYSCALL(setgid16);
 429COND_SYSCALL(setgroups16);
 430COND_SYSCALL(setregid16);
 431COND_SYSCALL(setresgid16);
 432COND_SYSCALL(setresuid16);
 433COND_SYSCALL(setreuid16);
 434COND_SYSCALL(setuid16);
 435
 436/* restartable sequence */
 437COND_SYSCALL(rseq);
 438