2005-04-16 15:20:36 -07: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 .
*
* On sparc , thread_info data is static and TI_XXX offsets are computed by hand .
*/
# include <linux/sched.h>
// #include <linux/mm.h>
2008-04-29 01:04:01 -07:00
# include <linux/kbuild.h>
2005-04-16 15:20:36 -07:00
2013-03-19 15:11:07 +00:00
# include <asm/hibernate.h>
2008-11-29 21:51:05 -08:00
# ifdef CONFIG_SPARC32
int sparc32_foo ( void )
2005-04-16 15:20:36 -07:00
{
DEFINE ( AOFF_thread_fork_kpsr ,
offsetof ( struct thread_struct , fork_kpsr ) ) ;
2008-11-29 21:51:05 -08:00
return 0 ;
}
# else
int sparc64_foo ( void )
{
2013-03-19 15:11:07 +00:00
# ifdef CONFIG_HIBERNATION
BLANK ( ) ;
OFFSET ( SC_REG_FP , saved_context , fp ) ;
OFFSET ( SC_REG_CWP , saved_context , cwp ) ;
OFFSET ( SC_REG_WSTATE , saved_context , wstate ) ;
OFFSET ( SC_REG_TICK , saved_context , tick ) ;
OFFSET ( SC_REG_PSTATE , saved_context , pstate ) ;
OFFSET ( SC_REG_G4 , saved_context , g4 ) ;
OFFSET ( SC_REG_G5 , saved_context , g5 ) ;
OFFSET ( SC_REG_G6 , saved_context , g6 ) ;
# endif
2008-11-29 21:51:05 -08:00
return 0 ;
}
# endif
int foo ( void )
{
BLANK ( ) ;
DEFINE ( AOFF_task_thread , offsetof ( struct task_struct , thread ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
DEFINE ( AOFF_mm_context , offsetof ( struct mm_struct , context ) ) ;
2013-07-10 13:56:10 -07:00
BLANK ( ) ;
DEFINE ( VMA_VM_MM , offsetof ( struct vm_area_struct , vm_mm ) ) ;
2005-04-16 15:20:36 -07:00
/* DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); */
return 0 ;
}
2008-11-29 21:51:05 -08:00