patch-2.4.2 linux/include/asm-s390/lowcore.h

Next file: linux/include/asm-s390/mathemu.h
Previous file: linux/include/asm-s390/irqextras390.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.1/linux/include/asm-s390/lowcore.h linux/include/asm-s390/lowcore.h
@@ -31,10 +31,11 @@
 #define __LC_SUBCHANNEL_ID              0x0B8
 #define __LC_SUBCHANNEL_NR              0x0BA
 #define __LC_IO_INT_PARM                0x0BC
+#define __LC_IO_INT_WORD                0x0C0
 #define __LC_MCCK_CODE                  0x0E8
-#define __LC_AREGS_SAVE_AREA            0x200
-#define __LC_CREGS_SAVE_AREA            0x240
-#define __LC_RETURN_PSW                 0x280
+#define __LC_AREGS_SAVE_AREA            0x120
+#define __LC_CREGS_SAVE_AREA            0x1C0
+#define __LC_RETURN_PSW                 0x200
 
 #define __LC_SYNC_IO_WORD               0x400
 
@@ -45,7 +46,7 @@
 #define __LC_CPUID                      0xC60
 #define __LC_CPUADDR                    0xC68
 #define __LC_IPLDEV                     0xC7C
-
+#define __LC_PANIC_MAGIC                0xE00
 
 /* interrupt handler start with all io, external and mcck interrupt disabled */
 
@@ -53,7 +54,7 @@
 #define _EXT_PSW_MASK        0x04080000
 #define _PGM_PSW_MASK        0x04080000
 #define _SVC_PSW_MASK        0x04080000
-#define _MCCK_PSW_MASK       0x040A0000
+#define _MCCK_PSW_MASK       0x04080000
 #define _IO_PSW_MASK         0x04080000
 #define _USER_PSW_MASK       0x070DC000/* DAT, IO, EXT, Home-space         */
 #define _WAIT_PSW_MASK       0x070E0000/* DAT, IO, EXT, Wait, Home-space   */
@@ -119,7 +120,8 @@
 	__u16        subchannel_id;            /* 0x0b8 */
 	__u16        subchannel_nr;            /* 0x0ba */
 	__u32        io_int_parm;              /* 0x0bc */
-	__u8         pad3[0xD8-0xC0];          /* 0x0c0 */
+	__u32        io_int_word;              /* 0x0c0 */
+        __u8         pad3[0xD8-0xC4];          /* 0x0c4 */
 	__u32        cpu_timer_save_area[2];   /* 0x0d8 */
 	__u32        clock_comp_save_area[2];  /* 0x0e0 */
 	__u32        mcck_interuption_code[2]; /* 0x0e8 */
@@ -128,15 +130,14 @@
 	__u32        failing_storage_address;  /* 0x0f8 */
 	__u8         pad5[0x100-0xfc];         /* 0x0fc */
 	__u32        st_status_fixed_logout[4];/* 0x100 */
-	__u8         pad6[0x160-0x110];        /* 0x110 */
+	__u8         pad6[0x120-0x110];        /* 0x110 */
+	__u32        access_regs_save_area[16];/* 0x120 */
 	__u32        floating_pt_save_area[8]; /* 0x160 */
 	__u32        gpregs_save_area[16];     /* 0x180 */
-	__u8         pad7[0x200-0x1c0];        /* 0x1c0 */
-
-	__u32        access_regs_save_area[16];/* 0x200 */
 	__u32        cregs_save_area[16];      /* 0x240 */	
-        psw_t        return_psw;               /* 0x280 */
-	__u8         pad8[0x400-0x288];        /* 0x288 */
+
+        psw_t        return_psw;               /* 0x200 */
+	__u8         pad8[0x400-0x208];        /* 0x208 */
 
 	__u32        sync_io_word;	       /* 0x400 */
 
@@ -163,9 +164,14 @@
 	atomic_t     ext_call_fast;            /* 0xc88 */
 	atomic_t     ext_call_queue;           /* 0xc8c */
         atomic_t     ext_call_count;           /* 0xc90 */
+        __u8         pad11[0xe00-0xc94];       /* 0xc94 */
 
-        /* Align SMP info to the top 1k of prefix area */
-	__u8         pad11[0x1000-0xc94];      /* 0xc94 */
+        /* 0xe00 is used as indicator for dump tools */
+        /* whether the kernel died with panic() or not */
+        __u32        panic_magic;              /* 0xe00 */
+
+        /* Align to the top 1k of prefix area */
+	__u8         pad12[0x1000-0xe04];      /* 0xe04 */
 } __attribute__((packed)); /* End structure*/
 
 extern __inline__ void set_prefix(__u32 address)
@@ -185,6 +191,8 @@
         ((cpu)==smp_processor_id() ? S390_lowcore:(*lowcore_ptr[(cpu)]))
 #endif
 #endif /* __ASSEMBLY__ */
+
+#define __PANIC_MAGIC           0xDEADC0DE
 
 #endif
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)