2005-04-16 15:20:36 -07: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/sched.h>
2008-04-29 01:04:09 -07:00
# include <linux/kbuild.h>
2008-12-25 13:38:36 +01:00
# include <asm/vdso.h>
2005-04-16 15:20:36 -07:00
int main ( void )
{
2008-04-29 01:04:10 -07:00
DEFINE ( __THREAD_info , offsetof ( struct task_struct , stack ) ) ;
DEFINE ( __THREAD_ksp , offsetof ( struct task_struct , thread . ksp ) ) ;
DEFINE ( __THREAD_per , offsetof ( struct task_struct , thread . per_info ) ) ;
2005-04-16 15:20:36 -07:00
DEFINE ( __THREAD_mm_segment ,
2008-04-29 01:04:10 -07:00
offsetof ( struct task_struct , thread . mm_segment ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __TASK_pid , offsetof ( struct task_struct , pid ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __PER_atmid , offsetof ( per_struct , lowcore . words . perc_atmid ) ) ;
DEFINE ( __PER_address , offsetof ( per_struct , lowcore . words . address ) ) ;
DEFINE ( __PER_access_id , offsetof ( per_struct , lowcore . words . access_id ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __TI_task , offsetof ( struct thread_info , task ) ) ;
DEFINE ( __TI_domain , offsetof ( struct thread_info , exec_domain ) ) ;
DEFINE ( __TI_flags , offsetof ( struct thread_info , flags ) ) ;
DEFINE ( __TI_cpu , offsetof ( struct thread_info , cpu ) ) ;
DEFINE ( __TI_precount , offsetof ( struct thread_info , preempt_count ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __PT_ARGS , offsetof ( struct pt_regs , args ) ) ;
DEFINE ( __PT_PSW , offsetof ( struct pt_regs , psw ) ) ;
DEFINE ( __PT_GPRS , offsetof ( struct pt_regs , gprs ) ) ;
DEFINE ( __PT_ORIG_GPR2 , offsetof ( struct pt_regs , orig_gpr2 ) ) ;
DEFINE ( __PT_ILC , offsetof ( struct pt_regs , ilc ) ) ;
2008-11-27 11:05:55 +01:00
DEFINE ( __PT_SVCNR , offsetof ( struct pt_regs , svcnr ) ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __PT_SIZE , sizeof ( struct pt_regs ) ) ;
2005-04-16 15:20:36 -07:00
BLANK ( ) ;
2008-04-29 01:04:10 -07:00
DEFINE ( __SF_BACKCHAIN , offsetof ( struct stack_frame , back_chain ) ) ;
DEFINE ( __SF_GPRS , offsetof ( struct stack_frame , gprs ) ) ;
DEFINE ( __SF_EMPTY , offsetof ( struct stack_frame , empty1 ) ) ;
2008-12-25 13:38:36 +01:00
BLANK ( ) ;
/* timeval/timezone offsets for use by vdso */
DEFINE ( __VDSO_UPD_COUNT , offsetof ( struct vdso_data , tb_update_count ) ) ;
DEFINE ( __VDSO_XTIME_STAMP , offsetof ( struct vdso_data , xtime_tod_stamp ) ) ;
DEFINE ( __VDSO_XTIME_SEC , offsetof ( struct vdso_data , xtime_clock_sec ) ) ;
DEFINE ( __VDSO_XTIME_NSEC , offsetof ( struct vdso_data , xtime_clock_nsec ) ) ;
DEFINE ( __VDSO_WTOM_SEC , offsetof ( struct vdso_data , wtom_clock_sec ) ) ;
DEFINE ( __VDSO_WTOM_NSEC , offsetof ( struct vdso_data , wtom_clock_nsec ) ) ;
DEFINE ( __VDSO_TIMEZONE , offsetof ( struct vdso_data , tz_minuteswest ) ) ;
2008-12-31 15:11:42 +01:00
DEFINE ( __VDSO_ECTG_OK , offsetof ( struct vdso_data , ectg_available ) ) ;
DEFINE ( __VDSO_ECTG_BASE ,
offsetof ( struct vdso_per_cpu_data , ectg_timer_base ) ) ;
DEFINE ( __VDSO_ECTG_USER ,
offsetof ( struct vdso_per_cpu_data , ectg_user_time ) ) ;
2008-12-25 13:38:36 +01:00
/* constants used by the vdso */
DEFINE ( CLOCK_REALTIME , CLOCK_REALTIME ) ;
DEFINE ( CLOCK_MONOTONIC , CLOCK_MONOTONIC ) ;
DEFINE ( CLOCK_REALTIME_RES , MONOTONIC_RES_NSEC ) ;
2005-04-16 15:20:36 -07:00
return 0 ;
}