100398a00SIngo Molnar /* System call table for i386. */ 200398a00SIngo Molnar 300398a00SIngo Molnar #include <linux/linkage.h> 400398a00SIngo Molnar #include <linux/sys.h> 500398a00SIngo Molnar #include <linux/cache.h> 600398a00SIngo Molnar #include <asm/asm-offsets.h> 7*034042ccSAndy Lutomirski #include <asm/syscall.h> 800398a00SIngo Molnar 900398a00SIngo Molnar #ifdef CONFIG_IA32_EMULATION 1000398a00SIngo Molnar #define SYM(sym, compat) compat 1100398a00SIngo Molnar #else 1200398a00SIngo Molnar #define SYM(sym, compat) sym 1300398a00SIngo Molnar #endif 1400398a00SIngo Molnar 1500398a00SIngo Molnar #define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void SYM(sym, compat)(void) ; 1600398a00SIngo Molnar #include <asm/syscalls_32.h> 1700398a00SIngo Molnar #undef __SYSCALL_I386 1800398a00SIngo Molnar 1900398a00SIngo Molnar #define __SYSCALL_I386(nr, sym, compat) [nr] = SYM(sym, compat), 2000398a00SIngo Molnar 2100398a00SIngo Molnar extern asmlinkage void sys_ni_syscall(void); 2200398a00SIngo Molnar 23bace7117SIngo Molnar __visible const sys_call_ptr_t ia32_sys_call_table[__NR_syscall_compat_max+1] = { 2400398a00SIngo Molnar /* 2500398a00SIngo Molnar * Smells like a compiler bug -- it doesn't work 2600398a00SIngo Molnar * when the & below is removed. 2700398a00SIngo Molnar */ 28bace7117SIngo Molnar [0 ... __NR_syscall_compat_max] = &sys_ni_syscall, 2900398a00SIngo Molnar #include <asm/syscalls_32.h> 3000398a00SIngo Molnar }; 31