1*f5daba1dSHeiko Carstens /* 2*f5daba1dSHeiko Carstens * Machine check handler definitions 3*f5daba1dSHeiko Carstens * 4*f5daba1dSHeiko Carstens * Copyright IBM Corp. 2000,2009 5*f5daba1dSHeiko Carstens * Author(s): Ingo Adlung <adlung@de.ibm.com>, 6*f5daba1dSHeiko Carstens * Martin Schwidefsky <schwidefsky@de.ibm.com>, 7*f5daba1dSHeiko Carstens * Cornelia Huck <cornelia.huck@de.ibm.com>, 8*f5daba1dSHeiko Carstens * Heiko Carstens <heiko.carstens@de.ibm.com>, 9*f5daba1dSHeiko Carstens */ 10*f5daba1dSHeiko Carstens 11*f5daba1dSHeiko Carstens #ifndef _ASM_S390_NMI_H 12*f5daba1dSHeiko Carstens #define _ASM_S390_NMI_H 13*f5daba1dSHeiko Carstens 14*f5daba1dSHeiko Carstens #include <linux/types.h> 15*f5daba1dSHeiko Carstens 16*f5daba1dSHeiko Carstens struct mci { 17*f5daba1dSHeiko Carstens __u32 sd : 1; /* 00 system damage */ 18*f5daba1dSHeiko Carstens __u32 pd : 1; /* 01 instruction-processing damage */ 19*f5daba1dSHeiko Carstens __u32 sr : 1; /* 02 system recovery */ 20*f5daba1dSHeiko Carstens __u32 : 1; /* 03 */ 21*f5daba1dSHeiko Carstens __u32 cd : 1; /* 04 timing-facility damage */ 22*f5daba1dSHeiko Carstens __u32 ed : 1; /* 05 external damage */ 23*f5daba1dSHeiko Carstens __u32 : 1; /* 06 */ 24*f5daba1dSHeiko Carstens __u32 dg : 1; /* 07 degradation */ 25*f5daba1dSHeiko Carstens __u32 w : 1; /* 08 warning pending */ 26*f5daba1dSHeiko Carstens __u32 cp : 1; /* 09 channel-report pending */ 27*f5daba1dSHeiko Carstens __u32 sp : 1; /* 10 service-processor damage */ 28*f5daba1dSHeiko Carstens __u32 ck : 1; /* 11 channel-subsystem damage */ 29*f5daba1dSHeiko Carstens __u32 : 2; /* 12-13 */ 30*f5daba1dSHeiko Carstens __u32 b : 1; /* 14 backed up */ 31*f5daba1dSHeiko Carstens __u32 : 1; /* 15 */ 32*f5daba1dSHeiko Carstens __u32 se : 1; /* 16 storage error uncorrected */ 33*f5daba1dSHeiko Carstens __u32 sc : 1; /* 17 storage error corrected */ 34*f5daba1dSHeiko Carstens __u32 ke : 1; /* 18 storage-key error uncorrected */ 35*f5daba1dSHeiko Carstens __u32 ds : 1; /* 19 storage degradation */ 36*f5daba1dSHeiko Carstens __u32 wp : 1; /* 20 psw mwp validity */ 37*f5daba1dSHeiko Carstens __u32 ms : 1; /* 21 psw mask and key validity */ 38*f5daba1dSHeiko Carstens __u32 pm : 1; /* 22 psw program mask and cc validity */ 39*f5daba1dSHeiko Carstens __u32 ia : 1; /* 23 psw instruction address validity */ 40*f5daba1dSHeiko Carstens __u32 fa : 1; /* 24 failing storage address validity */ 41*f5daba1dSHeiko Carstens __u32 : 1; /* 25 */ 42*f5daba1dSHeiko Carstens __u32 ec : 1; /* 26 external damage code validity */ 43*f5daba1dSHeiko Carstens __u32 fp : 1; /* 27 floating point register validity */ 44*f5daba1dSHeiko Carstens __u32 gr : 1; /* 28 general register validity */ 45*f5daba1dSHeiko Carstens __u32 cr : 1; /* 29 control register validity */ 46*f5daba1dSHeiko Carstens __u32 : 1; /* 30 */ 47*f5daba1dSHeiko Carstens __u32 st : 1; /* 31 storage logical validity */ 48*f5daba1dSHeiko Carstens __u32 ie : 1; /* 32 indirect storage error */ 49*f5daba1dSHeiko Carstens __u32 ar : 1; /* 33 access register validity */ 50*f5daba1dSHeiko Carstens __u32 da : 1; /* 34 delayed access exception */ 51*f5daba1dSHeiko Carstens __u32 : 7; /* 35-41 */ 52*f5daba1dSHeiko Carstens __u32 pr : 1; /* 42 tod programmable register validity */ 53*f5daba1dSHeiko Carstens __u32 fc : 1; /* 43 fp control register validity */ 54*f5daba1dSHeiko Carstens __u32 ap : 1; /* 44 ancillary report */ 55*f5daba1dSHeiko Carstens __u32 : 1; /* 45 */ 56*f5daba1dSHeiko Carstens __u32 ct : 1; /* 46 cpu timer validity */ 57*f5daba1dSHeiko Carstens __u32 cc : 1; /* 47 clock comparator validity */ 58*f5daba1dSHeiko Carstens __u32 : 16; /* 47-63 */ 59*f5daba1dSHeiko Carstens }; 60*f5daba1dSHeiko Carstens 61*f5daba1dSHeiko Carstens struct pt_regs; 62*f5daba1dSHeiko Carstens 63*f5daba1dSHeiko Carstens extern void s390_handle_mcck(void); 64*f5daba1dSHeiko Carstens extern void s390_do_machine_check(struct pt_regs *regs); 65*f5daba1dSHeiko Carstens 66*f5daba1dSHeiko Carstens #endif /* _ASM_S390_NMI_H */ 67