Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Generate definitions needed by assembly language modules. |
| 3 | * This code generates raw asm output which is post-processed |
| 4 | * to extract and format the required data. |
| 5 | */ |
| 6 | |
Tony Luck | 82f1b07 | 2005-09-13 08:50:39 -0700 | [diff] [blame] | 7 | #define ASM_OFFSETS_C 1 |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 8 | |
| 9 | #include <linux/sched.h> |
Pavel Emelyanov | 96ded9d | 2008-03-28 14:27:00 -0700 | [diff] [blame] | 10 | #include <linux/pid.h> |
Tony Luck | 0aa366f | 2007-07-20 11:22:30 -0700 | [diff] [blame] | 11 | #include <linux/clocksource.h> |
Christoph Lameter | ad2bc7b | 2008-04-29 01:03:58 -0700 | [diff] [blame] | 12 | #include <linux/kbuild.h> |
Tony Luck | 7f30491 | 2008-08-01 10:13:32 -0700 | [diff] [blame] | 13 | #include <asm/processor.h> |
| 14 | #include <asm/ptrace.h> |
| 15 | #include <asm/siginfo.h> |
| 16 | #include <asm/sigcontext.h> |
| 17 | #include <asm/mca.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 18 | |
Isaku Yamahata | b31c09b | 2008-10-17 11:17:49 +0900 | [diff] [blame] | 19 | #include <asm/xen/interface.h> |
Isaku Yamahata | 080104c | 2008-10-17 11:17:58 +0900 | [diff] [blame] | 20 | #include <asm/xen/hypervisor.h> |
Isaku Yamahata | b31c09b | 2008-10-17 11:17:49 +0900 | [diff] [blame] | 21 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 22 | #include "../kernel/sigframe.h" |
Tony Luck | 0aa366f | 2007-07-20 11:22:30 -0700 | [diff] [blame] | 23 | #include "../kernel/fsyscall_gtod_data.h" |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 24 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | void foo(void) |
| 26 | { |
| 27 | DEFINE(IA64_TASK_SIZE, sizeof (struct task_struct)); |
| 28 | DEFINE(IA64_THREAD_INFO_SIZE, sizeof (struct thread_info)); |
| 29 | DEFINE(IA64_PT_REGS_SIZE, sizeof (struct pt_regs)); |
| 30 | DEFINE(IA64_SWITCH_STACK_SIZE, sizeof (struct switch_stack)); |
| 31 | DEFINE(IA64_SIGINFO_SIZE, sizeof (struct siginfo)); |
| 32 | DEFINE(IA64_CPU_SIZE, sizeof (struct cpuinfo_ia64)); |
| 33 | DEFINE(SIGFRAME_SIZE, sizeof (struct sigframe)); |
| 34 | DEFINE(UNW_FRAME_INFO_SIZE, sizeof (struct unw_frame_info)); |
| 35 | |
Pavel Emelyanov | 96ded9d | 2008-03-28 14:27:00 -0700 | [diff] [blame] | 36 | BUILD_BUG_ON(sizeof(struct upid) != 32); |
| 37 | DEFINE(IA64_UPID_SHIFT, 5); |
| 38 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | BLANK(); |
| 40 | |
| 41 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); |
Fenghua Yu | 3bc207d | 2007-02-12 16:27:10 -0800 | [diff] [blame] | 42 | DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 43 | DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count)); |
Frederic Weisbecker | abf917c | 2012-07-25 07:56:04 +0200 | [diff] [blame] | 44 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE |
Hidetoshi Seto | b64f34c | 2008-01-29 14:27:30 +0900 | [diff] [blame] | 45 | DEFINE(TI_AC_STAMP, offsetof(struct thread_info, ac_stamp)); |
| 46 | DEFINE(TI_AC_LEAVE, offsetof(struct thread_info, ac_leave)); |
| 47 | DEFINE(TI_AC_STIME, offsetof(struct thread_info, ac_stime)); |
| 48 | DEFINE(TI_AC_UTIME, offsetof(struct thread_info, ac_utime)); |
| 49 | #endif |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 | |
| 51 | BLANK(); |
| 52 | |
| 53 | DEFINE(IA64_TASK_BLOCKED_OFFSET,offsetof (struct task_struct, blocked)); |
| 54 | DEFINE(IA64_TASK_CLEAR_CHILD_TID_OFFSET,offsetof (struct task_struct, clear_child_tid)); |
| 55 | DEFINE(IA64_TASK_GROUP_LEADER_OFFSET, offsetof (struct task_struct, group_leader)); |
Pavel Emelyanov | 96ded9d | 2008-03-28 14:27:00 -0700 | [diff] [blame] | 56 | DEFINE(IA64_TASK_TGIDLINK_OFFSET, offsetof (struct task_struct, pids[PIDTYPE_PID].pid)); |
| 57 | DEFINE(IA64_PID_LEVEL_OFFSET, offsetof (struct pid, level)); |
| 58 | DEFINE(IA64_PID_UPID_OFFSET, offsetof (struct pid, numbers[0])); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 59 | DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending)); |
| 60 | DEFINE(IA64_TASK_PID_OFFSET, offsetof (struct task_struct, pid)); |
| 61 | DEFINE(IA64_TASK_REAL_PARENT_OFFSET, offsetof (struct task_struct, real_parent)); |
| 62 | DEFINE(IA64_TASK_SIGHAND_OFFSET,offsetof (struct task_struct, sighand)); |
| 63 | DEFINE(IA64_TASK_SIGNAL_OFFSET,offsetof (struct task_struct, signal)); |
| 64 | DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid)); |
| 65 | DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp)); |
| 66 | DEFINE(IA64_TASK_THREAD_ON_USTACK_OFFSET, offsetof (struct task_struct, thread.on_ustack)); |
| 67 | |
| 68 | BLANK(); |
| 69 | |
| 70 | DEFINE(IA64_SIGHAND_SIGLOCK_OFFSET,offsetof (struct sighand_struct, siglock)); |
| 71 | |
| 72 | BLANK(); |
| 73 | |
| 74 | DEFINE(IA64_SIGNAL_GROUP_STOP_COUNT_OFFSET,offsetof (struct signal_struct, |
| 75 | group_stop_count)); |
| 76 | DEFINE(IA64_SIGNAL_SHARED_PENDING_OFFSET,offsetof (struct signal_struct, shared_pending)); |
| 77 | |
| 78 | BLANK(); |
| 79 | |
| 80 | DEFINE(IA64_PT_REGS_B6_OFFSET, offsetof (struct pt_regs, b6)); |
| 81 | DEFINE(IA64_PT_REGS_B7_OFFSET, offsetof (struct pt_regs, b7)); |
| 82 | DEFINE(IA64_PT_REGS_AR_CSD_OFFSET, offsetof (struct pt_regs, ar_csd)); |
| 83 | DEFINE(IA64_PT_REGS_AR_SSD_OFFSET, offsetof (struct pt_regs, ar_ssd)); |
| 84 | DEFINE(IA64_PT_REGS_R8_OFFSET, offsetof (struct pt_regs, r8)); |
| 85 | DEFINE(IA64_PT_REGS_R9_OFFSET, offsetof (struct pt_regs, r9)); |
| 86 | DEFINE(IA64_PT_REGS_R10_OFFSET, offsetof (struct pt_regs, r10)); |
| 87 | DEFINE(IA64_PT_REGS_R11_OFFSET, offsetof (struct pt_regs, r11)); |
| 88 | DEFINE(IA64_PT_REGS_CR_IPSR_OFFSET, offsetof (struct pt_regs, cr_ipsr)); |
| 89 | DEFINE(IA64_PT_REGS_CR_IIP_OFFSET, offsetof (struct pt_regs, cr_iip)); |
| 90 | DEFINE(IA64_PT_REGS_CR_IFS_OFFSET, offsetof (struct pt_regs, cr_ifs)); |
| 91 | DEFINE(IA64_PT_REGS_AR_UNAT_OFFSET, offsetof (struct pt_regs, ar_unat)); |
| 92 | DEFINE(IA64_PT_REGS_AR_PFS_OFFSET, offsetof (struct pt_regs, ar_pfs)); |
| 93 | DEFINE(IA64_PT_REGS_AR_RSC_OFFSET, offsetof (struct pt_regs, ar_rsc)); |
| 94 | DEFINE(IA64_PT_REGS_AR_RNAT_OFFSET, offsetof (struct pt_regs, ar_rnat)); |
| 95 | |
| 96 | DEFINE(IA64_PT_REGS_AR_BSPSTORE_OFFSET, offsetof (struct pt_regs, ar_bspstore)); |
| 97 | DEFINE(IA64_PT_REGS_PR_OFFSET, offsetof (struct pt_regs, pr)); |
| 98 | DEFINE(IA64_PT_REGS_B0_OFFSET, offsetof (struct pt_regs, b0)); |
| 99 | DEFINE(IA64_PT_REGS_LOADRS_OFFSET, offsetof (struct pt_regs, loadrs)); |
| 100 | DEFINE(IA64_PT_REGS_R1_OFFSET, offsetof (struct pt_regs, r1)); |
| 101 | DEFINE(IA64_PT_REGS_R12_OFFSET, offsetof (struct pt_regs, r12)); |
| 102 | DEFINE(IA64_PT_REGS_R13_OFFSET, offsetof (struct pt_regs, r13)); |
| 103 | DEFINE(IA64_PT_REGS_AR_FPSR_OFFSET, offsetof (struct pt_regs, ar_fpsr)); |
| 104 | DEFINE(IA64_PT_REGS_R15_OFFSET, offsetof (struct pt_regs, r15)); |
| 105 | DEFINE(IA64_PT_REGS_R14_OFFSET, offsetof (struct pt_regs, r14)); |
| 106 | DEFINE(IA64_PT_REGS_R2_OFFSET, offsetof (struct pt_regs, r2)); |
| 107 | DEFINE(IA64_PT_REGS_R3_OFFSET, offsetof (struct pt_regs, r3)); |
| 108 | DEFINE(IA64_PT_REGS_R16_OFFSET, offsetof (struct pt_regs, r16)); |
| 109 | DEFINE(IA64_PT_REGS_R17_OFFSET, offsetof (struct pt_regs, r17)); |
| 110 | DEFINE(IA64_PT_REGS_R18_OFFSET, offsetof (struct pt_regs, r18)); |
| 111 | DEFINE(IA64_PT_REGS_R19_OFFSET, offsetof (struct pt_regs, r19)); |
| 112 | DEFINE(IA64_PT_REGS_R20_OFFSET, offsetof (struct pt_regs, r20)); |
| 113 | DEFINE(IA64_PT_REGS_R21_OFFSET, offsetof (struct pt_regs, r21)); |
| 114 | DEFINE(IA64_PT_REGS_R22_OFFSET, offsetof (struct pt_regs, r22)); |
| 115 | DEFINE(IA64_PT_REGS_R23_OFFSET, offsetof (struct pt_regs, r23)); |
| 116 | DEFINE(IA64_PT_REGS_R24_OFFSET, offsetof (struct pt_regs, r24)); |
| 117 | DEFINE(IA64_PT_REGS_R25_OFFSET, offsetof (struct pt_regs, r25)); |
| 118 | DEFINE(IA64_PT_REGS_R26_OFFSET, offsetof (struct pt_regs, r26)); |
| 119 | DEFINE(IA64_PT_REGS_R27_OFFSET, offsetof (struct pt_regs, r27)); |
| 120 | DEFINE(IA64_PT_REGS_R28_OFFSET, offsetof (struct pt_regs, r28)); |
| 121 | DEFINE(IA64_PT_REGS_R29_OFFSET, offsetof (struct pt_regs, r29)); |
| 122 | DEFINE(IA64_PT_REGS_R30_OFFSET, offsetof (struct pt_regs, r30)); |
| 123 | DEFINE(IA64_PT_REGS_R31_OFFSET, offsetof (struct pt_regs, r31)); |
| 124 | DEFINE(IA64_PT_REGS_AR_CCV_OFFSET, offsetof (struct pt_regs, ar_ccv)); |
| 125 | DEFINE(IA64_PT_REGS_F6_OFFSET, offsetof (struct pt_regs, f6)); |
| 126 | DEFINE(IA64_PT_REGS_F7_OFFSET, offsetof (struct pt_regs, f7)); |
| 127 | DEFINE(IA64_PT_REGS_F8_OFFSET, offsetof (struct pt_regs, f8)); |
| 128 | DEFINE(IA64_PT_REGS_F9_OFFSET, offsetof (struct pt_regs, f9)); |
| 129 | DEFINE(IA64_PT_REGS_F10_OFFSET, offsetof (struct pt_regs, f10)); |
| 130 | DEFINE(IA64_PT_REGS_F11_OFFSET, offsetof (struct pt_regs, f11)); |
| 131 | |
| 132 | BLANK(); |
| 133 | |
| 134 | DEFINE(IA64_SWITCH_STACK_CALLER_UNAT_OFFSET, offsetof (struct switch_stack, caller_unat)); |
| 135 | DEFINE(IA64_SWITCH_STACK_AR_FPSR_OFFSET, offsetof (struct switch_stack, ar_fpsr)); |
| 136 | DEFINE(IA64_SWITCH_STACK_F2_OFFSET, offsetof (struct switch_stack, f2)); |
| 137 | DEFINE(IA64_SWITCH_STACK_F3_OFFSET, offsetof (struct switch_stack, f3)); |
| 138 | DEFINE(IA64_SWITCH_STACK_F4_OFFSET, offsetof (struct switch_stack, f4)); |
| 139 | DEFINE(IA64_SWITCH_STACK_F5_OFFSET, offsetof (struct switch_stack, f5)); |
| 140 | DEFINE(IA64_SWITCH_STACK_F12_OFFSET, offsetof (struct switch_stack, f12)); |
| 141 | DEFINE(IA64_SWITCH_STACK_F13_OFFSET, offsetof (struct switch_stack, f13)); |
| 142 | DEFINE(IA64_SWITCH_STACK_F14_OFFSET, offsetof (struct switch_stack, f14)); |
| 143 | DEFINE(IA64_SWITCH_STACK_F15_OFFSET, offsetof (struct switch_stack, f15)); |
| 144 | DEFINE(IA64_SWITCH_STACK_F16_OFFSET, offsetof (struct switch_stack, f16)); |
| 145 | DEFINE(IA64_SWITCH_STACK_F17_OFFSET, offsetof (struct switch_stack, f17)); |
| 146 | DEFINE(IA64_SWITCH_STACK_F18_OFFSET, offsetof (struct switch_stack, f18)); |
| 147 | DEFINE(IA64_SWITCH_STACK_F19_OFFSET, offsetof (struct switch_stack, f19)); |
| 148 | DEFINE(IA64_SWITCH_STACK_F20_OFFSET, offsetof (struct switch_stack, f20)); |
| 149 | DEFINE(IA64_SWITCH_STACK_F21_OFFSET, offsetof (struct switch_stack, f21)); |
| 150 | DEFINE(IA64_SWITCH_STACK_F22_OFFSET, offsetof (struct switch_stack, f22)); |
| 151 | DEFINE(IA64_SWITCH_STACK_F23_OFFSET, offsetof (struct switch_stack, f23)); |
| 152 | DEFINE(IA64_SWITCH_STACK_F24_OFFSET, offsetof (struct switch_stack, f24)); |
| 153 | DEFINE(IA64_SWITCH_STACK_F25_OFFSET, offsetof (struct switch_stack, f25)); |
| 154 | DEFINE(IA64_SWITCH_STACK_F26_OFFSET, offsetof (struct switch_stack, f26)); |
| 155 | DEFINE(IA64_SWITCH_STACK_F27_OFFSET, offsetof (struct switch_stack, f27)); |
| 156 | DEFINE(IA64_SWITCH_STACK_F28_OFFSET, offsetof (struct switch_stack, f28)); |
| 157 | DEFINE(IA64_SWITCH_STACK_F29_OFFSET, offsetof (struct switch_stack, f29)); |
| 158 | DEFINE(IA64_SWITCH_STACK_F30_OFFSET, offsetof (struct switch_stack, f30)); |
| 159 | DEFINE(IA64_SWITCH_STACK_F31_OFFSET, offsetof (struct switch_stack, f31)); |
| 160 | DEFINE(IA64_SWITCH_STACK_R4_OFFSET, offsetof (struct switch_stack, r4)); |
| 161 | DEFINE(IA64_SWITCH_STACK_R5_OFFSET, offsetof (struct switch_stack, r5)); |
| 162 | DEFINE(IA64_SWITCH_STACK_R6_OFFSET, offsetof (struct switch_stack, r6)); |
| 163 | DEFINE(IA64_SWITCH_STACK_R7_OFFSET, offsetof (struct switch_stack, r7)); |
| 164 | DEFINE(IA64_SWITCH_STACK_B0_OFFSET, offsetof (struct switch_stack, b0)); |
| 165 | DEFINE(IA64_SWITCH_STACK_B1_OFFSET, offsetof (struct switch_stack, b1)); |
| 166 | DEFINE(IA64_SWITCH_STACK_B2_OFFSET, offsetof (struct switch_stack, b2)); |
| 167 | DEFINE(IA64_SWITCH_STACK_B3_OFFSET, offsetof (struct switch_stack, b3)); |
| 168 | DEFINE(IA64_SWITCH_STACK_B4_OFFSET, offsetof (struct switch_stack, b4)); |
| 169 | DEFINE(IA64_SWITCH_STACK_B5_OFFSET, offsetof (struct switch_stack, b5)); |
| 170 | DEFINE(IA64_SWITCH_STACK_AR_PFS_OFFSET, offsetof (struct switch_stack, ar_pfs)); |
| 171 | DEFINE(IA64_SWITCH_STACK_AR_LC_OFFSET, offsetof (struct switch_stack, ar_lc)); |
| 172 | DEFINE(IA64_SWITCH_STACK_AR_UNAT_OFFSET, offsetof (struct switch_stack, ar_unat)); |
| 173 | DEFINE(IA64_SWITCH_STACK_AR_RNAT_OFFSET, offsetof (struct switch_stack, ar_rnat)); |
| 174 | DEFINE(IA64_SWITCH_STACK_AR_BSPSTORE_OFFSET, offsetof (struct switch_stack, ar_bspstore)); |
| 175 | DEFINE(IA64_SWITCH_STACK_PR_OFFSET, offsetof (struct switch_stack, pr)); |
| 176 | |
| 177 | BLANK(); |
| 178 | |
| 179 | DEFINE(IA64_SIGCONTEXT_IP_OFFSET, offsetof (struct sigcontext, sc_ip)); |
| 180 | DEFINE(IA64_SIGCONTEXT_AR_BSP_OFFSET, offsetof (struct sigcontext, sc_ar_bsp)); |
| 181 | DEFINE(IA64_SIGCONTEXT_AR_FPSR_OFFSET, offsetof (struct sigcontext, sc_ar_fpsr)); |
| 182 | DEFINE(IA64_SIGCONTEXT_AR_RNAT_OFFSET, offsetof (struct sigcontext, sc_ar_rnat)); |
| 183 | DEFINE(IA64_SIGCONTEXT_AR_UNAT_OFFSET, offsetof (struct sigcontext, sc_ar_unat)); |
| 184 | DEFINE(IA64_SIGCONTEXT_B0_OFFSET, offsetof (struct sigcontext, sc_br[0])); |
| 185 | DEFINE(IA64_SIGCONTEXT_CFM_OFFSET, offsetof (struct sigcontext, sc_cfm)); |
| 186 | DEFINE(IA64_SIGCONTEXT_FLAGS_OFFSET, offsetof (struct sigcontext, sc_flags)); |
| 187 | DEFINE(IA64_SIGCONTEXT_FR6_OFFSET, offsetof (struct sigcontext, sc_fr[6])); |
| 188 | DEFINE(IA64_SIGCONTEXT_PR_OFFSET, offsetof (struct sigcontext, sc_pr)); |
| 189 | DEFINE(IA64_SIGCONTEXT_R12_OFFSET, offsetof (struct sigcontext, sc_gr[12])); |
| 190 | DEFINE(IA64_SIGCONTEXT_RBS_BASE_OFFSET,offsetof (struct sigcontext, sc_rbs_base)); |
| 191 | DEFINE(IA64_SIGCONTEXT_LOADRS_OFFSET, offsetof (struct sigcontext, sc_loadrs)); |
| 192 | |
| 193 | BLANK(); |
| 194 | |
| 195 | DEFINE(IA64_SIGPENDING_SIGNAL_OFFSET, offsetof (struct sigpending, signal)); |
| 196 | |
| 197 | BLANK(); |
| 198 | |
| 199 | DEFINE(IA64_SIGFRAME_ARG0_OFFSET, offsetof (struct sigframe, arg0)); |
| 200 | DEFINE(IA64_SIGFRAME_ARG1_OFFSET, offsetof (struct sigframe, arg1)); |
| 201 | DEFINE(IA64_SIGFRAME_ARG2_OFFSET, offsetof (struct sigframe, arg2)); |
| 202 | DEFINE(IA64_SIGFRAME_HANDLER_OFFSET, offsetof (struct sigframe, handler)); |
| 203 | DEFINE(IA64_SIGFRAME_SIGCONTEXT_OFFSET, offsetof (struct sigframe, sc)); |
| 204 | BLANK(); |
| 205 | /* for assembly files which can't include sched.h: */ |
| 206 | DEFINE(IA64_CLONE_VFORK, CLONE_VFORK); |
| 207 | DEFINE(IA64_CLONE_VM, CLONE_VM); |
| 208 | |
| 209 | BLANK(); |
| 210 | DEFINE(IA64_CPUINFO_NSEC_PER_CYC_OFFSET, |
| 211 | offsetof (struct cpuinfo_ia64, nsec_per_cyc)); |
| 212 | DEFINE(IA64_CPUINFO_PTCE_BASE_OFFSET, |
| 213 | offsetof (struct cpuinfo_ia64, ptce_base)); |
| 214 | DEFINE(IA64_CPUINFO_PTCE_COUNT_OFFSET, |
| 215 | offsetof (struct cpuinfo_ia64, ptce_count)); |
| 216 | DEFINE(IA64_CPUINFO_PTCE_STRIDE_OFFSET, |
| 217 | offsetof (struct cpuinfo_ia64, ptce_stride)); |
| 218 | BLANK(); |
| 219 | DEFINE(IA64_TIMESPEC_TV_NSEC_OFFSET, |
| 220 | offsetof (struct timespec, tv_nsec)); |
| 221 | |
| 222 | DEFINE(CLONE_SETTLS_BIT, 19); |
| 223 | #if CLONE_SETTLS != (1<<19) |
| 224 | # error "CLONE_SETTLS_BIT incorrect, please fix" |
| 225 | #endif |
| 226 | |
| 227 | BLANK(); |
Keith Owens | 7f613c7 | 2005-09-11 17:22:53 +1000 | [diff] [blame] | 228 | DEFINE(IA64_MCA_CPU_MCA_STACK_OFFSET, |
| 229 | offsetof (struct ia64_mca_cpu, mca_stack)); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 230 | DEFINE(IA64_MCA_CPU_INIT_STACK_OFFSET, |
| 231 | offsetof (struct ia64_mca_cpu, init_stack)); |
| 232 | BLANK(); |
Keith Owens | 7f613c7 | 2005-09-11 17:22:53 +1000 | [diff] [blame] | 233 | DEFINE(IA64_SAL_OS_STATE_OS_GP_OFFSET, |
| 234 | offsetof (struct ia64_sal_os_state, os_gp)); |
Keith Owens | 7f613c7 | 2005-09-11 17:22:53 +1000 | [diff] [blame] | 235 | DEFINE(IA64_SAL_OS_STATE_PROC_STATE_PARAM_OFFSET, |
| 236 | offsetof (struct ia64_sal_os_state, proc_state_param)); |
Keith Owens | d270acb | 2006-04-07 18:08:11 +1000 | [diff] [blame] | 237 | DEFINE(IA64_SAL_OS_STATE_SAL_RA_OFFSET, |
| 238 | offsetof (struct ia64_sal_os_state, sal_ra)); |
| 239 | DEFINE(IA64_SAL_OS_STATE_SAL_GP_OFFSET, |
| 240 | offsetof (struct ia64_sal_os_state, sal_gp)); |
| 241 | DEFINE(IA64_SAL_OS_STATE_PAL_MIN_STATE_OFFSET, |
| 242 | offsetof (struct ia64_sal_os_state, pal_min_state)); |
| 243 | DEFINE(IA64_SAL_OS_STATE_OS_STATUS_OFFSET, |
| 244 | offsetof (struct ia64_sal_os_state, os_status)); |
| 245 | DEFINE(IA64_SAL_OS_STATE_CONTEXT_OFFSET, |
| 246 | offsetof (struct ia64_sal_os_state, context)); |
Keith Owens | 7f613c7 | 2005-09-11 17:22:53 +1000 | [diff] [blame] | 247 | DEFINE(IA64_SAL_OS_STATE_SIZE, |
| 248 | sizeof (struct ia64_sal_os_state)); |
Keith Owens | d270acb | 2006-04-07 18:08:11 +1000 | [diff] [blame] | 249 | BLANK(); |
| 250 | |
Keith Owens | 7f613c7 | 2005-09-11 17:22:53 +1000 | [diff] [blame] | 251 | DEFINE(IA64_PMSA_GR_OFFSET, |
| 252 | offsetof (struct pal_min_state_area_s, pmsa_gr)); |
| 253 | DEFINE(IA64_PMSA_BANK1_GR_OFFSET, |
| 254 | offsetof (struct pal_min_state_area_s, pmsa_bank1_gr)); |
| 255 | DEFINE(IA64_PMSA_PR_OFFSET, |
| 256 | offsetof (struct pal_min_state_area_s, pmsa_pr)); |
| 257 | DEFINE(IA64_PMSA_BR0_OFFSET, |
| 258 | offsetof (struct pal_min_state_area_s, pmsa_br0)); |
| 259 | DEFINE(IA64_PMSA_RSC_OFFSET, |
| 260 | offsetof (struct pal_min_state_area_s, pmsa_rsc)); |
| 261 | DEFINE(IA64_PMSA_IIP_OFFSET, |
| 262 | offsetof (struct pal_min_state_area_s, pmsa_iip)); |
| 263 | DEFINE(IA64_PMSA_IPSR_OFFSET, |
| 264 | offsetof (struct pal_min_state_area_s, pmsa_ipsr)); |
| 265 | DEFINE(IA64_PMSA_IFS_OFFSET, |
| 266 | offsetof (struct pal_min_state_area_s, pmsa_ifs)); |
| 267 | DEFINE(IA64_PMSA_XIP_OFFSET, |
| 268 | offsetof (struct pal_min_state_area_s, pmsa_xip)); |
| 269 | BLANK(); |
| 270 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 271 | /* used by fsys_gettimeofday in arch/ia64/kernel/fsys.S */ |
Thomas Gleixner | 74a622b | 2012-02-28 19:46:05 +0000 | [diff] [blame] | 272 | DEFINE(IA64_GTOD_SEQ_OFFSET, |
Thomas Gleixner | 646783a | 2012-03-27 15:06:15 +0200 | [diff] [blame] | 273 | offsetof (struct fsyscall_gtod_data_t, seq)); |
Tony Luck | 0aa366f | 2007-07-20 11:22:30 -0700 | [diff] [blame] | 274 | DEFINE(IA64_GTOD_WALL_TIME_OFFSET, |
| 275 | offsetof (struct fsyscall_gtod_data_t, wall_time)); |
| 276 | DEFINE(IA64_GTOD_MONO_TIME_OFFSET, |
| 277 | offsetof (struct fsyscall_gtod_data_t, monotonic_time)); |
| 278 | DEFINE(IA64_CLKSRC_MASK_OFFSET, |
| 279 | offsetof (struct fsyscall_gtod_data_t, clk_mask)); |
| 280 | DEFINE(IA64_CLKSRC_MULT_OFFSET, |
| 281 | offsetof (struct fsyscall_gtod_data_t, clk_mult)); |
| 282 | DEFINE(IA64_CLKSRC_SHIFT_OFFSET, |
| 283 | offsetof (struct fsyscall_gtod_data_t, clk_shift)); |
| 284 | DEFINE(IA64_CLKSRC_MMIO_OFFSET, |
| 285 | offsetof (struct fsyscall_gtod_data_t, clk_fsys_mmio)); |
| 286 | DEFINE(IA64_CLKSRC_CYCLE_LAST_OFFSET, |
| 287 | offsetof (struct fsyscall_gtod_data_t, clk_cycle_last)); |
| 288 | DEFINE(IA64_ITC_JITTER_OFFSET, |
| 289 | offsetof (struct itc_jitter_data_t, itc_jitter)); |
| 290 | DEFINE(IA64_ITC_LASTCYCLE_OFFSET, |
| 291 | offsetof (struct itc_jitter_data_t, itc_lastcycle)); |
Isaku Yamahata | b31c09b | 2008-10-17 11:17:49 +0900 | [diff] [blame] | 292 | |
| 293 | #ifdef CONFIG_XEN |
| 294 | BLANK(); |
| 295 | |
Isaku Yamahata | 080104c | 2008-10-17 11:17:58 +0900 | [diff] [blame] | 296 | DEFINE(XEN_NATIVE_ASM, XEN_NATIVE); |
| 297 | DEFINE(XEN_PV_DOMAIN_ASM, XEN_PV_DOMAIN); |
| 298 | |
Isaku Yamahata | b31c09b | 2008-10-17 11:17:49 +0900 | [diff] [blame] | 299 | #define DEFINE_MAPPED_REG_OFS(sym, field) \ |
| 300 | DEFINE(sym, (XMAPPEDREGS_OFS + offsetof(struct mapped_regs, field))) |
| 301 | |
| 302 | DEFINE_MAPPED_REG_OFS(XSI_PSR_I_ADDR_OFS, interrupt_mask_addr); |
| 303 | DEFINE_MAPPED_REG_OFS(XSI_IPSR_OFS, ipsr); |
| 304 | DEFINE_MAPPED_REG_OFS(XSI_IIP_OFS, iip); |
| 305 | DEFINE_MAPPED_REG_OFS(XSI_IFS_OFS, ifs); |
| 306 | DEFINE_MAPPED_REG_OFS(XSI_PRECOVER_IFS_OFS, precover_ifs); |
| 307 | DEFINE_MAPPED_REG_OFS(XSI_ISR_OFS, isr); |
| 308 | DEFINE_MAPPED_REG_OFS(XSI_IFA_OFS, ifa); |
| 309 | DEFINE_MAPPED_REG_OFS(XSI_IIPA_OFS, iipa); |
| 310 | DEFINE_MAPPED_REG_OFS(XSI_IIM_OFS, iim); |
| 311 | DEFINE_MAPPED_REG_OFS(XSI_IHA_OFS, iha); |
| 312 | DEFINE_MAPPED_REG_OFS(XSI_ITIR_OFS, itir); |
| 313 | DEFINE_MAPPED_REG_OFS(XSI_PSR_IC_OFS, interrupt_collection_enabled); |
| 314 | DEFINE_MAPPED_REG_OFS(XSI_BANKNUM_OFS, banknum); |
| 315 | DEFINE_MAPPED_REG_OFS(XSI_BANK0_R16_OFS, bank0_regs[0]); |
| 316 | DEFINE_MAPPED_REG_OFS(XSI_BANK1_R16_OFS, bank1_regs[0]); |
| 317 | DEFINE_MAPPED_REG_OFS(XSI_B0NATS_OFS, vbnat); |
| 318 | DEFINE_MAPPED_REG_OFS(XSI_B1NATS_OFS, vnat); |
Isaku Yamahata | 496203b | 2009-03-04 21:05:39 +0900 | [diff] [blame] | 319 | DEFINE_MAPPED_REG_OFS(XSI_ITC_OFFSET_OFS, itc_offset); |
| 320 | DEFINE_MAPPED_REG_OFS(XSI_ITC_LAST_OFS, itc_last); |
Isaku Yamahata | b31c09b | 2008-10-17 11:17:49 +0900 | [diff] [blame] | 321 | #endif /* CONFIG_XEN */ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 322 | } |