2007-10-11 13:14:19 +04:00
# include <asm/ia32.h>
2008-12-19 01:46:52 +03:00
2011-11-12 04:07:41 +04:00
# define __SYSCALL_64(nr, sym, compat) [nr] = 1,
2012-02-15 02:18:50 +04:00
# define __SYSCALL_COMMON(nr, sym, compat) [nr] = 1,
2012-02-19 23:08:37 +04:00
# ifdef CONFIG_X86_X32_ABI
# define __SYSCALL_X32(nr, sym, compat) [nr] = 1,
# else
# define __SYSCALL_X32(nr, sym, compat) /* nothing */
# endif
2011-11-12 04:07:41 +04:00
static char syscalls_64 [ ] = {
# include <asm/syscalls_64.h>
} ;
# define __SYSCALL_I386(nr, sym, compat) [nr] = 1,
static char syscalls_ia32 [ ] = {
# include <asm/syscalls_32.h>
2007-10-11 13:14:19 +04:00
} ;
int main ( void )
{
2008-01-30 15:33:19 +03:00
# ifdef CONFIG_PARAVIRT
2008-06-25 08:19:31 +04:00
OFFSET ( PV_IRQ_adjust_exception_frame , pv_irq_ops , adjust_exception_frame ) ;
2008-06-25 08:19:28 +04:00
OFFSET ( PV_CPU_usergs_sysret32 , pv_cpu_ops , usergs_sysret32 ) ;
OFFSET ( PV_CPU_usergs_sysret64 , pv_cpu_ops , usergs_sysret64 ) ;
2008-01-30 15:33:19 +03:00
OFFSET ( PV_CPU_swapgs , pv_cpu_ops , swapgs ) ;
2011-02-09 11:24:34 +03:00
BLANK ( ) ;
2008-01-30 15:33:19 +03:00
# endif
2007-10-11 13:14:19 +04:00
# ifdef CONFIG_IA32_EMULATION
2011-02-09 11:24:34 +03:00
OFFSET ( TI_sysenter_return , thread_info , sysenter_return ) ;
BLANK ( ) ;
# define ENTRY(entry) OFFSET(IA32_SIGCONTEXT_ ## entry, sigcontext_ia32, entry)
2008-01-30 15:30:56 +03:00
ENTRY ( ax ) ;
ENTRY ( bx ) ;
ENTRY ( cx ) ;
ENTRY ( dx ) ;
ENTRY ( si ) ;
ENTRY ( di ) ;
ENTRY ( bp ) ;
ENTRY ( sp ) ;
ENTRY ( ip ) ;
2007-10-11 13:14:19 +04:00
BLANK ( ) ;
# undef ENTRY
2011-02-09 11:24:34 +03:00
OFFSET ( IA32_RT_SIGFRAME_sigcontext , rt_sigframe_ia32 , uc . uc_mcontext ) ;
2007-10-11 13:14:19 +04:00
BLANK ( ) ;
# endif
2011-02-09 11:24:34 +03:00
# define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry)
2008-01-30 15:30:56 +03:00
ENTRY ( bx ) ;
ENTRY ( bx ) ;
ENTRY ( cx ) ;
ENTRY ( dx ) ;
ENTRY ( sp ) ;
ENTRY ( bp ) ;
ENTRY ( si ) ;
ENTRY ( di ) ;
2007-10-24 00:37:24 +04:00
ENTRY ( r8 ) ;
ENTRY ( r9 ) ;
ENTRY ( r10 ) ;
ENTRY ( r11 ) ;
ENTRY ( r12 ) ;
ENTRY ( r13 ) ;
ENTRY ( r14 ) ;
ENTRY ( r15 ) ;
2008-01-30 15:30:56 +03:00
ENTRY ( flags ) ;
2007-10-24 00:37:24 +04:00
BLANK ( ) ;
# undef ENTRY
2011-02-09 11:24:34 +03:00
# define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry)
2007-10-24 00:37:24 +04:00
ENTRY ( cr0 ) ;
ENTRY ( cr2 ) ;
ENTRY ( cr3 ) ;
ENTRY ( cr4 ) ;
ENTRY ( cr8 ) ;
BLANK ( ) ;
# undef ENTRY
2007-10-26 21:29:04 +04:00
2011-02-09 11:24:34 +03:00
OFFSET ( TSS_ist , tss_struct , x86_tss . ist ) ;
2007-10-26 21:29:04 +04:00
BLANK ( ) ;
2008-07-09 02:06:44 +04:00
2011-11-12 04:07:41 +04:00
DEFINE ( __NR_syscall_max , sizeof ( syscalls_64 ) - 1 ) ;
DEFINE ( NR_syscalls , sizeof ( syscalls_64 ) ) ;
DEFINE ( __NR_ia32_syscall_max , sizeof ( syscalls_ia32 ) - 1 ) ;
DEFINE ( IA32_NR_syscalls , sizeof ( syscalls_ia32 ) ) ;
2011-02-09 11:24:34 +03:00
2007-10-11 13:14:19 +04:00
return 0 ;
}