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