2005-04-17 02:20:36 +04:00
/*
* This program is used to generate definitions needed by
* assembly language modules .
*
* We use the technique used in the OSF Mach kernel code :
* generate asm statements containing # defines ,
* compile this file to assembler , and then extract the
* # defines from the assembly - language output .
*/
# include <linux/stddef.h>
# include <linux/sched.h>
# include <linux/kernel_stat.h>
# include <linux/ptrace.h>
# include <linux/hardirq.h>
2008-04-29 12:04:04 +04:00
# include <linux/kbuild.h>
2005-04-17 02:20:36 +04:00
# include <asm/bootinfo.h>
# include <asm/irq.h>
# include <asm/ptrace.h>
int main ( void )
{
/* offsets into the task struct */
DEFINE ( TASK_STATE , offsetof ( struct task_struct , state ) ) ;
DEFINE ( TASK_FLAGS , offsetof ( struct task_struct , flags ) ) ;
DEFINE ( TASK_PTRACE , offsetof ( struct task_struct , ptrace ) ) ;
DEFINE ( TASK_BLOCKED , offsetof ( struct task_struct , blocked ) ) ;
DEFINE ( TASK_THREAD , offsetof ( struct task_struct , thread ) ) ;
2007-05-09 13:35:17 +04:00
DEFINE ( TASK_THREAD_INFO , offsetof ( struct task_struct , stack ) ) ;
2005-04-17 02:20:36 +04:00
DEFINE ( TASK_MM , offsetof ( struct task_struct , mm ) ) ;
DEFINE ( TASK_ACTIVE_MM , offsetof ( struct task_struct , active_mm ) ) ;
/* offsets into the irq_cpustat_t struct */
DEFINE ( CPUSTAT_SOFTIRQ_PENDING , offsetof ( irq_cpustat_t , __softirq_pending ) ) ;
/* offsets into the thread struct */
DEFINE ( THREAD_KSP , offsetof ( struct thread_struct , ksp ) ) ;
DEFINE ( THREAD_USP , offsetof ( struct thread_struct , usp ) ) ;
DEFINE ( THREAD_CCR , offsetof ( struct thread_struct , ccr ) ) ;
/* offsets into the pt_regs struct */
DEFINE ( LER0 , offsetof ( struct pt_regs , er0 ) - sizeof ( long ) ) ;
DEFINE ( LER1 , offsetof ( struct pt_regs , er1 ) - sizeof ( long ) ) ;
DEFINE ( LER2 , offsetof ( struct pt_regs , er2 ) - sizeof ( long ) ) ;
DEFINE ( LER3 , offsetof ( struct pt_regs , er3 ) - sizeof ( long ) ) ;
DEFINE ( LER4 , offsetof ( struct pt_regs , er4 ) - sizeof ( long ) ) ;
DEFINE ( LER5 , offsetof ( struct pt_regs , er5 ) - sizeof ( long ) ) ;
DEFINE ( LER6 , offsetof ( struct pt_regs , er6 ) - sizeof ( long ) ) ;
DEFINE ( LORIG , offsetof ( struct pt_regs , orig_er0 ) - sizeof ( long ) ) ;
DEFINE ( LCCR , offsetof ( struct pt_regs , ccr ) - sizeof ( long ) ) ;
DEFINE ( LVEC , offsetof ( struct pt_regs , vector ) - sizeof ( long ) ) ;
# if defined(__H8300S__)
DEFINE ( LEXR , offsetof ( struct pt_regs , exr ) - sizeof ( long ) ) ;
# endif
DEFINE ( LRET , offsetof ( struct pt_regs , pc ) - sizeof ( long ) ) ;
DEFINE ( PT_PTRACED , PT_PTRACED ) ;
return 0 ;
}