1 /*
2 * arch/s390/kernel/s390mach.h
3 * S/390 data definitions for machine check processing
4 *
5 * S390 version
6 * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
7 * Author(s): Ingo Adlung (adlung@de.ibm.com)
8 */
9
10 #ifndef __s390mach_h
11 #define __s390mach_h
12
13 #include <asm/types.h>
14
15 //
16 // machine-check-interruption code
17 //
18 typedef struct _mcic {
19 __u32 to_be_defined_1 : 9;
20 __u32 cp : 1; /* channel-report pending */
21 __u32 to_be_defined_2 : 22;
22 __u32 to_be_defined_3;
23 } __attribute__ ((packed)) mcic_t;
24
25 //
26 // Channel Report Word
27 //
28 typedef struct _crw {
29 __u32 res1 : 1; /* reserved zero */
30 __u32 slct : 1; /* solicited */
31 __u32 oflw : 1; /* overflow */
32 __u32 chn : 1; /* chained */
33 __u32 rsc : 4; /* reporting source code */
34 __u32 anc : 1; /* ancillary report */
35 __u32 res2 : 1; /* reserved zero */
36 __u32 erc : 6; /* error-recovery code */
37 __u32 rsid : 16; /* reporting-source ID */
38 } __attribute__ ((packed)) crw_t;
39
40 //
41 // CRW Entry
42 //
43 typedef struct _crwe {
44 crw_t crw;
45 crw_t *crw_next;
46 } __attribute__ ((packed)) crwe_t;
47
48 typedef struct _mchchk_queue_element {
49 spinlock_t lock;
50 unsigned int status;
51 mcic_t mcic;
52 crwe_t *crwe; /* CRW if applicable */
53 struct mchchk_queue_element *next;
54 struct mchchk_queue_element *prev;
55 } mchchk_queue_element_t;
56
57 #define MCHCHK_STATUS_TO_PROCESS 0x00000001
58 #define MCHCHK_STATUS_IN_PROGRESS 0x00000002
59 #define MCHCHK_STATUS_WAITING 0x00000004
60
61 void s390_init_machine_check ( void );
62 void __init s390_do_machine_check ( void );
63 void __init s390_machine_check_handler( struct semaphore * );
64
65 #endif /* __s390mach */
66
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.