2007-10-11 13:14:19 +04:00
/*
* Generate definitions needed by assembly language modules .
* This code generates raw asm output which is post - processed to extract
* and format the required data .
*/
# include <linux/crypto.h>
# include <linux/sched.h>
# include <linux/stddef.h>
# include <linux/errno.h>
# include <linux/hardirq.h>
# include <linux/suspend.h>
2008-04-29 12:03:54 +04:00
# include <linux/kbuild.h>
2007-10-11 13:14:19 +04:00
# include <asm/pda.h>
# include <asm/processor.h>
# include <asm/segment.h>
# include <asm/thread_info.h>
# include <asm/ia32.h>
2007-10-26 21:29:04 +04:00
# include <asm/bootparam.h>
2007-10-11 13:14:19 +04:00
# define __NO_STUBS 1
# undef __SYSCALL
# undef _ASM_X86_64_UNISTD_H_
# define __SYSCALL(nr, sym) [nr] = 1,
static char syscalls [ ] = {
# include <asm/unistd.h>
} ;
int main ( void )
{
# define ENTRY(entry) DEFINE(tsk_ ## entry, offsetof(struct task_struct, entry))
ENTRY ( state ) ;
ENTRY ( flags ) ;
ENTRY ( pid ) ;
BLANK ( ) ;
# undef ENTRY
# define ENTRY(entry) DEFINE(threadinfo_ ## entry, offsetof(struct thread_info, entry))
ENTRY ( flags ) ;
ENTRY ( addr_limit ) ;
ENTRY ( preempt_count ) ;
ENTRY ( status ) ;
2008-01-30 15:30:43 +03:00
# ifdef CONFIG_IA32_EMULATION
ENTRY ( sysenter_return ) ;
# endif
2007-10-11 13:14:19 +04:00
BLANK ( ) ;
# undef ENTRY
# define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry))
ENTRY ( kernelstack ) ;
ENTRY ( oldrsp ) ;
ENTRY ( pcurrent ) ;
ENTRY ( irqcount ) ;
ENTRY ( cpunumber ) ;
ENTRY ( irqstackptr ) ;
ENTRY ( data_offset ) ;
BLANK ( ) ;
# undef ENTRY
2008-01-30 15:33:19 +03:00
# ifdef CONFIG_PARAVIRT
BLANK ( ) ;
OFFSET ( PARAVIRT_enabled , pv_info , paravirt_enabled ) ;
OFFSET ( PARAVIRT_PATCH_pv_cpu_ops , paravirt_patch_template , pv_cpu_ops ) ;
OFFSET ( PARAVIRT_PATCH_pv_irq_ops , paravirt_patch_template , pv_irq_ops ) ;
OFFSET ( PV_IRQ_irq_disable , pv_irq_ops , irq_disable ) ;
OFFSET ( PV_IRQ_irq_enable , pv_irq_ops , irq_enable ) ;
OFFSET ( PV_CPU_iret , pv_cpu_ops , iret ) ;
2008-06-25 08:19:26 +04:00
OFFSET ( PV_CPU_usersp_sysret , pv_cpu_ops , usersp_sysret ) ;
2008-01-30 15:33:19 +03:00
OFFSET ( PV_CPU_swapgs , pv_cpu_ops , swapgs ) ;
OFFSET ( PV_MMU_read_cr2 , pv_mmu_ops , read_cr2 ) ;
# endif
2007-10-11 13:14:19 +04:00
# ifdef CONFIG_IA32_EMULATION
# define ENTRY(entry) DEFINE(IA32_SIGCONTEXT_ ## entry, offsetof(struct 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
DEFINE ( IA32_RT_SIGFRAME_sigcontext ,
offsetof ( struct rt_sigframe32 , uc . uc_mcontext ) ) ;
BLANK ( ) ;
# endif
DEFINE ( pbe_address , offsetof ( struct pbe , address ) ) ;
DEFINE ( pbe_orig_address , offsetof ( struct pbe , orig_address ) ) ;
DEFINE ( pbe_next , offsetof ( struct pbe , next ) ) ;
BLANK ( ) ;
2007-10-24 00:37:24 +04:00
# define ENTRY(entry) DEFINE(pt_regs_ ## entry, offsetof(struct 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
# define ENTRY(entry) DEFINE(saved_context_ ## entry, offsetof(struct saved_context, entry))
ENTRY ( cr0 ) ;
ENTRY ( cr2 ) ;
ENTRY ( cr3 ) ;
ENTRY ( cr4 ) ;
ENTRY ( cr8 ) ;
BLANK ( ) ;
# undef ENTRY
2008-01-30 15:31:31 +03:00
DEFINE ( TSS_ist , offsetof ( struct tss_struct , x86_tss . ist ) ) ;
2007-10-11 13:14:19 +04:00
BLANK ( ) ;
DEFINE ( crypto_tfm_ctx_offset , offsetof ( struct crypto_tfm , __crt_ctx ) ) ;
BLANK ( ) ;
DEFINE ( __NR_syscall_max , sizeof ( syscalls ) - 1 ) ;
2007-10-26 21:29:04 +04:00
BLANK ( ) ;
OFFSET ( BP_scratch , boot_params , scratch ) ;
OFFSET ( BP_loadflags , boot_params , hdr . loadflags ) ;
OFFSET ( BP_hardware_subarch , boot_params , hdr . hardware_subarch ) ;
OFFSET ( BP_version , boot_params , hdr . version ) ;
2007-10-11 13:14:19 +04:00
return 0 ;
}