[IA64] Support multiple CPUs going through OS_MCA
[sfrench/cifs-2.6.git] / include / asm-ia64 / mca.h
index 9c5389b7e62375aae8515c5d74720d378b8adf48..edd5d01028df93d8d88ad68dbdd1322261bee790 100644 (file)
@@ -48,6 +48,7 @@ enum {
        IA64_MCA_RENDEZ_CHECKIN_NOTDONE =       0x0,
        IA64_MCA_RENDEZ_CHECKIN_DONE    =       0x1,
        IA64_MCA_RENDEZ_CHECKIN_INIT    =       0x2,
+       IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA  =       0x3,
 };
 
 /* Information maintained by the MC infrastructure */
@@ -69,14 +70,16 @@ typedef struct ia64_mc_info_s {
  */
 
 struct ia64_sal_os_state {
-       /* SAL to OS, must be at offset 0 */
+
+       /* SAL to OS */
        u64                     os_gp;                  /* GP of the os registered with the SAL, physical */
        u64                     pal_proc;               /* PAL_PROC entry point, physical */
        u64                     sal_proc;               /* SAL_PROC entry point, physical */
        u64                     rv_rc;                  /* MCA - Rendezvous state, INIT - reason code */
        u64                     proc_state_param;       /* from R18 */
        u64                     monarch;                /* 1 for a monarch event, 0 for a slave */
-       /* common, must follow SAL to OS */
+
+       /* common */
        u64                     sal_ra;                 /* Return address in SAL, physical */
        u64                     sal_gp;                 /* GP of the SAL - physical */
        pal_min_state_area_t    *pal_min_state;         /* from R17.  physical in asm, virtual in C */
@@ -98,7 +101,8 @@ struct ia64_sal_os_state {
        u64                     iipa;
        u64                     iim;
        u64                     iha;
-       /* OS to SAL, must follow common */
+
+       /* OS to SAL */
        u64                     os_status;              /* OS status to SAL, enum below */
        u64                     context;                /* 0 if return to same context
                                                           1 if return to new context */
@@ -153,6 +157,8 @@ struct ia64_mca_notify_die {
        int *monarch_cpu;
 };
 
+DECLARE_PER_CPU(u64, ia64_mca_pal_base);
+
 #else  /* __ASSEMBLY__ */
 
 #define IA64_MCA_CORRECTED     0x0     /* Error has been corrected by OS_MCA */