2011-12-05 16:08:49 -08:00
/*
* System call table for UML / i386 , copied from arch / x86 / kernel / syscall_ * . c
* with some changes for UML .
*/
# include <linux/linkage.h>
# include <linux/sys.h>
# include <linux/cache.h>
# include <generated/user_constants.h>
# define __NO_STUBS
/*
* Below you can see , in terms of # define ' s , the differences between the x86 - 64
* and the UML syscall table .
*/
/* Not going to be implemented by UML, since we have no hardware. */
2011-12-09 11:13:59 -08:00
# define sys_iopl sys_ni_syscall
2011-12-05 16:08:49 -08:00
# define sys_ioperm sys_ni_syscall
# define sys_vm86old sys_ni_syscall
# define sys_vm86 sys_ni_syscall
# define old_mmap sys_old_mmap
# define ptregs_fork sys_fork
# define ptregs_execve sys_execve
# define ptregs_iopl sys_iopl
# define ptregs_vm86old sys_vm86old
# define ptregs_clone sys_clone
# define ptregs_vm86 sys_vm86
# define ptregs_sigaltstack sys_sigaltstack
# define ptregs_vfork sys_vfork
# define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void sym(void) ;
# include <asm/syscalls_32.h>
# undef __SYSCALL_I386
# define __SYSCALL_I386(nr, sym, compat) [ nr ] = sym,
2012-06-09 21:22:11 +02:00
typedef asmlinkage void ( * sys_call_ptr_t ) ( void ) ;
2011-12-05 16:08:49 -08:00
2012-06-09 21:22:11 +02:00
extern asmlinkage void sys_ni_syscall ( void ) ;
2011-12-05 16:08:49 -08:00
2011-12-05 22:48:49 -08:00
const sys_call_ptr_t sys_call_table [ ] __cacheline_aligned = {
2011-12-05 16:08:49 -08:00
/*
* Smells like a compiler bug - - it doesn ' t work
* when the & below is removed .
*/
[ 0 . . . __NR_syscall_max ] = & sys_ni_syscall ,
# include <asm/syscalls_32.h>
} ;
int syscall_table_size = sizeof ( sys_call_table ) ;