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