1*00398a00SIngo Molnar /* System call table for i386. */ 2*00398a00SIngo Molnar 3*00398a00SIngo Molnar #include <linux/linkage.h> 4*00398a00SIngo Molnar #include <linux/sys.h> 5*00398a00SIngo Molnar #include <linux/cache.h> 6*00398a00SIngo Molnar #include <asm/asm-offsets.h> 7*00398a00SIngo Molnar 8*00398a00SIngo Molnar #ifdef CONFIG_IA32_EMULATION 9*00398a00SIngo Molnar #define SYM(sym, compat) compat 10*00398a00SIngo Molnar #else 11*00398a00SIngo Molnar #define SYM(sym, compat) sym 12*00398a00SIngo Molnar #define ia32_sys_call_table sys_call_table 13*00398a00SIngo Molnar #define __NR_ia32_syscall_max __NR_syscall_max 14*00398a00SIngo Molnar #endif 15*00398a00SIngo Molnar 16*00398a00SIngo Molnar #define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void SYM(sym, compat)(void) ; 17*00398a00SIngo Molnar #include <asm/syscalls_32.h> 18*00398a00SIngo Molnar #undef __SYSCALL_I386 19*00398a00SIngo Molnar 20*00398a00SIngo Molnar #define __SYSCALL_I386(nr, sym, compat) [nr] = SYM(sym, compat), 21*00398a00SIngo Molnar 22*00398a00SIngo Molnar typedef asmlinkage void (*sys_call_ptr_t)(void); 23*00398a00SIngo Molnar 24*00398a00SIngo Molnar extern asmlinkage void sys_ni_syscall(void); 25*00398a00SIngo Molnar 26*00398a00SIngo Molnar __visible const sys_call_ptr_t ia32_sys_call_table[__NR_ia32_syscall_max+1] = { 27*00398a00SIngo Molnar /* 28*00398a00SIngo Molnar * Smells like a compiler bug -- it doesn't work 29*00398a00SIngo Molnar * when the & below is removed. 30*00398a00SIngo Molnar */ 31*00398a00SIngo Molnar [0 ... __NR_ia32_syscall_max] = &sys_ni_syscall, 32*00398a00SIngo Molnar #include <asm/syscalls_32.h> 33*00398a00SIngo Molnar }; 34