aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64/mca.h
diff options
context:
space:
mode:
authorKeith Owens <kaos@ocs.com.au>2006-04-07 04:08:11 -0400
committerTony Luck <tony.luck@intel.com>2006-06-21 17:44:26 -0400
commitd270acbc24f0ce451c773c214ac0e92e95396b2f (patch)
tree46fb1417fd85a4fe477afe391975bc3bc3dec1ab /include/asm-ia64/mca.h
parentb7bb575c3fa3694811a072109f4e9c2f4705d8f5 (diff)
[IA64] Sanitize assembler code for ia64_sal_os_state
struct ia64_sal_os_state has three semi-independent sections. The code in mca_asm.S assumes that these three sections are contiguous, which makes it very awkward to add new data to this structure. Remove the assumption that the sections are contiguous. Define a macro to shorten references to offsets in ia64_sal_os_state. This patch does not change the way that the code behaves. It just makes it easier to update the code in future and to add fields to ia64_sal_os_state when debugging the MCA/INIT handlers. Signed-off-by: Keith Owens <kaos@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include/asm-ia64/mca.h')
-rw-r--r--include/asm-ia64/mca.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/asm-ia64/mca.h b/include/asm-ia64/mca.h
index 9c5389b7e623..ee97f7c2d462 100644
--- a/include/asm-ia64/mca.h
+++ b/include/asm-ia64/mca.h
@@ -69,14 +69,16 @@ typedef struct ia64_mc_info_s {
69 */ 69 */
70 70
71struct ia64_sal_os_state { 71struct ia64_sal_os_state {
72 /* SAL to OS, must be at offset 0 */ 72
73 /* SAL to OS */
73 u64 os_gp; /* GP of the os registered with the SAL, physical */ 74 u64 os_gp; /* GP of the os registered with the SAL, physical */
74 u64 pal_proc; /* PAL_PROC entry point, physical */ 75 u64 pal_proc; /* PAL_PROC entry point, physical */
75 u64 sal_proc; /* SAL_PROC entry point, physical */ 76 u64 sal_proc; /* SAL_PROC entry point, physical */
76 u64 rv_rc; /* MCA - Rendezvous state, INIT - reason code */ 77 u64 rv_rc; /* MCA - Rendezvous state, INIT - reason code */
77 u64 proc_state_param; /* from R18 */ 78 u64 proc_state_param; /* from R18 */
78 u64 monarch; /* 1 for a monarch event, 0 for a slave */ 79 u64 monarch; /* 1 for a monarch event, 0 for a slave */
79 /* common, must follow SAL to OS */ 80
81 /* common */
80 u64 sal_ra; /* Return address in SAL, physical */ 82 u64 sal_ra; /* Return address in SAL, physical */
81 u64 sal_gp; /* GP of the SAL - physical */ 83 u64 sal_gp; /* GP of the SAL - physical */
82 pal_min_state_area_t *pal_min_state; /* from R17. physical in asm, virtual in C */ 84 pal_min_state_area_t *pal_min_state; /* from R17. physical in asm, virtual in C */
@@ -98,7 +100,8 @@ struct ia64_sal_os_state {
98 u64 iipa; 100 u64 iipa;
99 u64 iim; 101 u64 iim;
100 u64 iha; 102 u64 iha;
101 /* OS to SAL, must follow common */ 103
104 /* OS to SAL */
102 u64 os_status; /* OS status to SAL, enum below */ 105 u64 os_status; /* OS status to SAL, enum below */
103 u64 context; /* 0 if return to same context 106 u64 context; /* 0 if return to same context
104 1 if return to new context */ 107 1 if return to new context */