LCOV - code coverage report
Current view: top level - kernel - sys_ni.c (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_qemu_modules_combined.info Lines: 2 2 100.0 %
Date: 2020-09-30 20:25:01 Functions: 1 1 100.0 %
Branches: 0 0 -

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

Generated by: LCOV version 1.14