Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
s390
kernel
asm-offsets.c
Go to the documentation of this file.
1
/*
2
* Generate definitions needed by assembly language modules.
3
* This code generates raw asm output which is post-processed to extract
4
* and format the required data.
5
*/
6
7
#define ASM_OFFSETS_C
8
9
#include <
linux/kbuild.h
>
10
#include <linux/sched.h>
11
#include <asm/cputime.h>
12
#include <asm/vdso.h>
13
#include <asm/pgtable.h>
14
15
/*
16
* Make sure that the compiler is new enough. We want a compiler that
17
* is known to work with the "Q" assembler constraint.
18
*/
19
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
20
#error Your compiler is too old; please use version 3.3.3 or newer
21
#endif
22
23
int
main
(
void
)
24
{
25
DEFINE
(__THREAD_info,
offsetof
(
struct
task_struct
,
stack
));
26
DEFINE
(__THREAD_ksp,
offsetof
(
struct
task_struct
,
thread
.ksp));
27
DEFINE
(__THREAD_mm_segment,
offsetof
(
struct
task_struct
,
thread
.mm_segment));
28
BLANK
();
29
DEFINE
(__TASK_pid,
offsetof
(
struct
task_struct
,
pid
));
30
BLANK
();
31
DEFINE
(__THREAD_per_cause,
offsetof
(
struct
task_struct
,
thread
.per_event.cause));
32
DEFINE
(__THREAD_per_address,
offsetof
(
struct
task_struct
,
thread
.per_event.address));
33
DEFINE
(__THREAD_per_paid,
offsetof
(
struct
task_struct
,
thread
.per_event.paid));
34
BLANK
();
35
DEFINE
(__TI_task,
offsetof
(
struct
thread_info
,
task
));
36
DEFINE
(__TI_domain,
offsetof
(
struct
thread_info
,
exec_domain
));
37
DEFINE
(__TI_flags,
offsetof
(
struct
thread_info
,
flags
));
38
DEFINE
(__TI_cpu,
offsetof
(
struct
thread_info
,
cpu
));
39
DEFINE
(__TI_precount,
offsetof
(
struct
thread_info
,
preempt_count
));
40
DEFINE
(__TI_user_timer,
offsetof
(
struct
thread_info
, user_timer));
41
DEFINE
(__TI_system_timer,
offsetof
(
struct
thread_info
, system_timer));
42
DEFINE
(__TI_last_break,
offsetof
(
struct
thread_info
, last_break));
43
BLANK
();
44
DEFINE
(__PT_ARGS,
offsetof
(
struct
pt_regs
,
args
));
45
DEFINE
(__PT_PSW,
offsetof
(
struct
pt_regs
,
psw
));
46
DEFINE
(__PT_GPRS,
offsetof
(
struct
pt_regs
,
gprs
));
47
DEFINE
(__PT_ORIG_GPR2,
offsetof
(
struct
pt_regs
,
orig_gpr2
));
48
DEFINE
(__PT_INT_CODE,
offsetof
(
struct
pt_regs
,
int_code
));
49
DEFINE
(__PT_INT_PARM_LONG,
offsetof
(
struct
pt_regs
,
int_parm_long
));
50
DEFINE
(__PT_SIZE,
sizeof
(
struct
pt_regs
));
51
BLANK
();
52
DEFINE
(__SF_BACKCHAIN,
offsetof
(
struct
stack_frame
, back_chain));
53
DEFINE
(__SF_GPRS,
offsetof
(
struct
stack_frame
,
gprs
));
54
DEFINE
(__SF_EMPTY,
offsetof
(
struct
stack_frame
, empty1));
55
BLANK
();
56
/* timeval/timezone offsets for use by vdso */
57
DEFINE
(__VDSO_UPD_COUNT,
offsetof
(
struct
vdso_data
, tb_update_count));
58
DEFINE
(__VDSO_XTIME_STAMP,
offsetof
(
struct
vdso_data
, xtime_tod_stamp));
59
DEFINE
(__VDSO_XTIME_SEC,
offsetof
(
struct
vdso_data
, xtime_clock_sec));
60
DEFINE
(__VDSO_XTIME_NSEC,
offsetof
(
struct
vdso_data
, xtime_clock_nsec));
61
DEFINE
(__VDSO_WTOM_SEC,
offsetof
(
struct
vdso_data
, wtom_clock_sec));
62
DEFINE
(__VDSO_WTOM_NSEC,
offsetof
(
struct
vdso_data
, wtom_clock_nsec));
63
DEFINE
(__VDSO_TIMEZONE,
offsetof
(
struct
vdso_data
, tz_minuteswest));
64
DEFINE
(__VDSO_ECTG_OK,
offsetof
(
struct
vdso_data
, ectg_available));
65
DEFINE
(__VDSO_NTP_MULT,
offsetof
(
struct
vdso_data
, ntp_mult));
66
DEFINE
(__VDSO_ECTG_BASE,
offsetof
(
struct
vdso_per_cpu_data
, ectg_timer_base));
67
DEFINE
(__VDSO_ECTG_USER,
offsetof
(
struct
vdso_per_cpu_data
, ectg_user_time));
68
/* constants used by the vdso */
69
DEFINE
(__CLOCK_REALTIME,
CLOCK_REALTIME
);
70
DEFINE
(__CLOCK_MONOTONIC,
CLOCK_MONOTONIC
);
71
DEFINE
(__CLOCK_REALTIME_RES,
MONOTONIC_RES_NSEC
);
72
BLANK
();
73
/* idle data offsets */
74
DEFINE
(__CLOCK_IDLE_ENTER,
offsetof
(
struct
s390_idle_data
, clock_idle_enter));
75
DEFINE
(__CLOCK_IDLE_EXIT,
offsetof
(
struct
s390_idle_data
, clock_idle_exit));
76
DEFINE
(__TIMER_IDLE_ENTER,
offsetof
(
struct
s390_idle_data
, timer_idle_enter));
77
DEFINE
(__TIMER_IDLE_EXIT,
offsetof
(
struct
s390_idle_data
, timer_idle_exit));
78
/* lowcore offsets */
79
DEFINE
(__LC_EXT_PARAMS,
offsetof
(
struct
_lowcore
, ext_params));
80
DEFINE
(__LC_EXT_CPU_ADDR,
offsetof
(
struct
_lowcore
, ext_cpu_addr));
81
DEFINE
(__LC_EXT_INT_CODE,
offsetof
(
struct
_lowcore
, ext_int_code));
82
DEFINE
(__LC_SVC_ILC,
offsetof
(
struct
_lowcore
, svc_ilc));
83
DEFINE
(__LC_SVC_INT_CODE,
offsetof
(
struct
_lowcore
, svc_code));
84
DEFINE
(__LC_PGM_ILC,
offsetof
(
struct
_lowcore
, pgm_ilc));
85
DEFINE
(__LC_PGM_INT_CODE,
offsetof
(
struct
_lowcore
, pgm_code));
86
DEFINE
(__LC_TRANS_EXC_CODE,
offsetof
(
struct
_lowcore
, trans_exc_code));
87
DEFINE
(__LC_PER_CAUSE,
offsetof
(
struct
_lowcore
, per_perc_atmid));
88
DEFINE
(__LC_PER_ADDRESS,
offsetof
(
struct
_lowcore
, per_address));
89
DEFINE
(__LC_PER_PAID,
offsetof
(
struct
_lowcore
, per_access_id));
90
DEFINE
(__LC_AR_MODE_ID,
offsetof
(
struct
_lowcore
, ar_access_id));
91
DEFINE
(__LC_SUBCHANNEL_ID,
offsetof
(
struct
_lowcore
,
subchannel_id
));
92
DEFINE
(__LC_SUBCHANNEL_NR,
offsetof
(
struct
_lowcore
, subchannel_nr));
93
DEFINE
(__LC_IO_INT_PARM,
offsetof
(
struct
_lowcore
, io_int_parm));
94
DEFINE
(__LC_IO_INT_WORD,
offsetof
(
struct
_lowcore
, io_int_word));
95
DEFINE
(__LC_STFL_FAC_LIST,
offsetof
(
struct
_lowcore
, stfl_fac_list));
96
DEFINE
(__LC_MCCK_CODE,
offsetof
(
struct
_lowcore
, mcck_interruption_code));
97
DEFINE
(__LC_RST_OLD_PSW,
offsetof
(
struct
_lowcore
, restart_old_psw));
98
DEFINE
(__LC_EXT_OLD_PSW,
offsetof
(
struct
_lowcore
, external_old_psw));
99
DEFINE
(__LC_SVC_OLD_PSW,
offsetof
(
struct
_lowcore
, svc_old_psw));
100
DEFINE
(__LC_PGM_OLD_PSW,
offsetof
(
struct
_lowcore
, program_old_psw));
101
DEFINE
(__LC_MCK_OLD_PSW,
offsetof
(
struct
_lowcore
, mcck_old_psw));
102
DEFINE
(__LC_IO_OLD_PSW,
offsetof
(
struct
_lowcore
, io_old_psw));
103
DEFINE
(__LC_RST_NEW_PSW,
offsetof
(
struct
_lowcore
, restart_psw));
104
DEFINE
(__LC_EXT_NEW_PSW,
offsetof
(
struct
_lowcore
, external_new_psw));
105
DEFINE
(__LC_SVC_NEW_PSW,
offsetof
(
struct
_lowcore
, svc_new_psw));
106
DEFINE
(__LC_PGM_NEW_PSW,
offsetof
(
struct
_lowcore
, program_new_psw));
107
DEFINE
(__LC_MCK_NEW_PSW,
offsetof
(
struct
_lowcore
, mcck_new_psw));
108
DEFINE
(__LC_IO_NEW_PSW,
offsetof
(
struct
_lowcore
, io_new_psw));
109
BLANK
();
110
DEFINE
(__LC_SAVE_AREA_SYNC,
offsetof
(
struct
_lowcore
, save_area_sync));
111
DEFINE
(__LC_SAVE_AREA_ASYNC,
offsetof
(
struct
_lowcore
, save_area_async));
112
DEFINE
(__LC_SAVE_AREA_RESTART,
offsetof
(
struct
_lowcore
, save_area_restart));
113
DEFINE
(__LC_RETURN_PSW,
offsetof
(
struct
_lowcore
, return_psw));
114
DEFINE
(__LC_RETURN_MCCK_PSW,
offsetof
(
struct
_lowcore
, return_mcck_psw));
115
DEFINE
(__LC_SYNC_ENTER_TIMER,
offsetof
(
struct
_lowcore
, sync_enter_timer));
116
DEFINE
(__LC_ASYNC_ENTER_TIMER,
offsetof
(
struct
_lowcore
, async_enter_timer));
117
DEFINE
(__LC_MCCK_ENTER_TIMER,
offsetof
(
struct
_lowcore
, mcck_enter_timer));
118
DEFINE
(__LC_EXIT_TIMER,
offsetof
(
struct
_lowcore
, exit_timer));
119
DEFINE
(__LC_USER_TIMER,
offsetof
(
struct
_lowcore
, user_timer));
120
DEFINE
(__LC_SYSTEM_TIMER,
offsetof
(
struct
_lowcore
, system_timer));
121
DEFINE
(__LC_STEAL_TIMER,
offsetof
(
struct
_lowcore
, steal_timer));
122
DEFINE
(__LC_LAST_UPDATE_TIMER,
offsetof
(
struct
_lowcore
, last_update_timer));
123
DEFINE
(__LC_LAST_UPDATE_CLOCK,
offsetof
(
struct
_lowcore
, last_update_clock));
124
DEFINE
(__LC_CURRENT,
offsetof
(
struct
_lowcore
, current_task));
125
DEFINE
(__LC_CURRENT_PID,
offsetof
(
struct
_lowcore
,
current_pid
));
126
DEFINE
(__LC_THREAD_INFO,
offsetof
(
struct
_lowcore
,
thread_info
));
127
DEFINE
(__LC_KERNEL_STACK,
offsetof
(
struct
_lowcore
, kernel_stack));
128
DEFINE
(__LC_ASYNC_STACK,
offsetof
(
struct
_lowcore
, async_stack));
129
DEFINE
(__LC_PANIC_STACK,
offsetof
(
struct
_lowcore
, panic_stack));
130
DEFINE
(__LC_RESTART_STACK,
offsetof
(
struct
_lowcore
,
restart_stack
));
131
DEFINE
(__LC_RESTART_FN,
offsetof
(
struct
_lowcore
, restart_fn));
132
DEFINE
(__LC_RESTART_DATA,
offsetof
(
struct
_lowcore
, restart_data));
133
DEFINE
(__LC_RESTART_SOURCE,
offsetof
(
struct
_lowcore
, restart_source));
134
DEFINE
(__LC_USER_ASCE,
offsetof
(
struct
_lowcore
, user_asce));
135
DEFINE
(__LC_INT_CLOCK,
offsetof
(
struct
_lowcore
, int_clock));
136
DEFINE
(__LC_MCCK_CLOCK,
offsetof
(
struct
_lowcore
, mcck_clock));
137
DEFINE
(__LC_MACHINE_FLAGS,
offsetof
(
struct
_lowcore
, machine_flags));
138
DEFINE
(__LC_FTRACE_FUNC,
offsetof
(
struct
_lowcore
, ftrace_func));
139
DEFINE
(__LC_IRB,
offsetof
(
struct
_lowcore
,
irb
));
140
DEFINE
(__LC_DUMP_REIPL,
offsetof
(
struct
_lowcore
,
ipib
));
141
BLANK
();
142
DEFINE
(__LC_CPU_TIMER_SAVE_AREA,
offsetof
(
struct
_lowcore
, cpu_timer_save_area));
143
DEFINE
(__LC_CLOCK_COMP_SAVE_AREA,
offsetof
(
struct
_lowcore
, clock_comp_save_area));
144
DEFINE
(__LC_PSW_SAVE_AREA,
offsetof
(
struct
_lowcore
, psw_save_area));
145
DEFINE
(__LC_PREFIX_SAVE_AREA,
offsetof
(
struct
_lowcore
, prefixreg_save_area));
146
DEFINE
(__LC_AREGS_SAVE_AREA,
offsetof
(
struct
_lowcore
, access_regs_save_area));
147
DEFINE
(__LC_FPREGS_SAVE_AREA,
offsetof
(
struct
_lowcore
, floating_pt_save_area));
148
DEFINE
(__LC_GPREGS_SAVE_AREA,
offsetof
(
struct
_lowcore
, gpregs_save_area));
149
DEFINE
(__LC_CREGS_SAVE_AREA,
offsetof
(
struct
_lowcore
, cregs_save_area));
150
#ifdef CONFIG_32BIT
151
DEFINE
(SAVE_AREA_BASE,
offsetof
(
struct
_lowcore
, extended_save_area_addr));
152
#else
/* CONFIG_32BIT */
153
DEFINE
(__LC_EXT_PARAMS2,
offsetof
(
struct
_lowcore
, ext_params2));
154
DEFINE
(SAVE_AREA_BASE,
offsetof
(
struct
_lowcore
, floating_pt_save_area));
155
DEFINE
(__LC_PASTE,
offsetof
(
struct
_lowcore
, paste));
156
DEFINE
(__LC_FP_CREG_SAVE_AREA,
offsetof
(
struct
_lowcore
, fpt_creg_save_area));
157
DEFINE
(__LC_LAST_BREAK,
offsetof
(
struct
_lowcore
, breaking_event_addr));
158
DEFINE
(__LC_VDSO_PER_CPU,
offsetof
(
struct
_lowcore
,
vdso_per_cpu_data
));
159
DEFINE
(__LC_GMAP,
offsetof
(
struct
_lowcore
,
gmap
));
160
DEFINE
(__LC_PGM_TDB,
offsetof
(
struct
_lowcore
, pgm_tdb));
161
DEFINE
(__THREAD_trap_tdb,
offsetof
(
struct
task_struct
,
thread
.trap_tdb));
162
DEFINE
(__GMAP_ASCE,
offsetof
(
struct
gmap
, asce));
163
#endif
/* CONFIG_32BIT */
164
return
0;
165
}
Generated on Thu Jan 10 2013 12:51:01 for Linux Kernel by
1.8.2