root/arch/x86/entry/syscall_64.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. SYSCALL_DEFINE0

   1 // SPDX-License-Identifier: GPL-2.0
   2 /* System call table for x86-64. */
   3 
   4 #include <linux/linkage.h>
   5 #include <linux/sys.h>
   6 #include <linux/cache.h>
   7 #include <linux/syscalls.h>
   8 #include <asm/asm-offsets.h>
   9 #include <asm/syscall.h>
  10 
  11 extern asmlinkage long sys_ni_syscall(void);
  12 
  13 SYSCALL_DEFINE0(ni_syscall)
  14 {
  15         return sys_ni_syscall();
  16 }
  17 
  18 #define __SYSCALL_64(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *);
  19 #define __SYSCALL_X32(nr, sym, qual) __SYSCALL_64(nr, sym, qual)
  20 #include <asm/syscalls_64.h>
  21 #undef __SYSCALL_64
  22 #undef __SYSCALL_X32
  23 
  24 #define __SYSCALL_64(nr, sym, qual) [nr] = sym,
  25 #define __SYSCALL_X32(nr, sym, qual)
  26 
  27 asmlinkage const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = {
  28         /*
  29          * Smells like a compiler bug -- it doesn't work
  30          * when the & below is removed.
  31          */
  32         [0 ... __NR_syscall_max] = &__x64_sys_ni_syscall,
  33 #include <asm/syscalls_64.h>
  34 };
  35 
  36 #undef __SYSCALL_64
  37 #undef __SYSCALL_X32
  38 
  39 #ifdef CONFIG_X86_X32_ABI
  40 
  41 #define __SYSCALL_64(nr, sym, qual)
  42 #define __SYSCALL_X32(nr, sym, qual) [nr] = sym,
  43 
  44 asmlinkage const sys_call_ptr_t x32_sys_call_table[__NR_syscall_x32_max+1] = {
  45         /*
  46          * Smells like a compiler bug -- it doesn't work
  47          * when the & below is removed.
  48          */
  49         [0 ... __NR_syscall_x32_max] = &__x64_sys_ni_syscall,
  50 #include <asm/syscalls_64.h>
  51 };
  52 
  53 #undef __SYSCALL_64
  54 #undef __SYSCALL_X32
  55 
  56 #endif

/* [<][>][^][v][top][bottom][index][help] */