diff options
author | Alexander Yarygin <yarygin@linux.vnet.ibm.com> | 2014-01-30 08:51:31 -0500 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2014-05-16 08:57:23 -0400 |
commit | ceae283bb2e0176c53038d0fd717e64b9a9b97a8 (patch) | |
tree | 2079037464dc911c66a8b6f8145f6f0238974e4f /arch/s390/include | |
parent | f22166dcfd30b46bb729abaf7ba3e1dd9e5d2093 (diff) |
KVM: s390: add sie exit reasons tables
This patch defines tables of reasons for exiting from SIE mode
in a new sie.h header file. Tables contain SIE intercepted codes,
intercepted instructions and program interruptions codes.
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/include')
-rw-r--r-- | arch/s390/include/uapi/asm/sie.h | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/arch/s390/include/uapi/asm/sie.h b/arch/s390/include/uapi/asm/sie.h new file mode 100644 index 000000000000..ec793e188681 --- /dev/null +++ b/arch/s390/include/uapi/asm/sie.h | |||
@@ -0,0 +1,212 @@ | |||
1 | #ifndef _UAPI_ASM_S390_SIE_H | ||
2 | #define _UAPI_ASM_S390_SIE_H | ||
3 | |||
4 | #include <asm/sigp.h> | ||
5 | |||
6 | #define diagnose_codes \ | ||
7 | { 0x10, "DIAG (0x10) release pages" }, \ | ||
8 | { 0x44, "DIAG (0x44) time slice end" }, \ | ||
9 | { 0x9c, "DIAG (0x9c) time slice end directed" }, \ | ||
10 | { 0x204, "DIAG (0x204) logical-cpu utilization" }, \ | ||
11 | { 0x258, "DIAG (0x258) page-reference services" }, \ | ||
12 | { 0x308, "DIAG (0x308) ipl functions" }, \ | ||
13 | { 0x500, "DIAG (0x500) KVM virtio functions" }, \ | ||
14 | { 0x501, "DIAG (0x501) KVM breakpoint" } | ||
15 | |||
16 | #define sigp_order_codes \ | ||
17 | { SIGP_SENSE, "SIGP sense" }, \ | ||
18 | { SIGP_EXTERNAL_CALL, "SIGP external call" }, \ | ||
19 | { SIGP_EMERGENCY_SIGNAL, "SIGP emergency signal" }, \ | ||
20 | { SIGP_STOP, "SIGP stop" }, \ | ||
21 | { SIGP_STOP_AND_STORE_STATUS, "SIGP stop and store status" }, \ | ||
22 | { SIGP_SET_ARCHITECTURE, "SIGP set architecture" }, \ | ||
23 | { SIGP_SET_PREFIX, "SIGP set prefix" }, \ | ||
24 | { SIGP_SENSE_RUNNING, "SIGP sense running" }, \ | ||
25 | { SIGP_RESTART, "SIGP restart" }, \ | ||
26 | { SIGP_INITIAL_CPU_RESET, "SIGP initial cpu reset" }, \ | ||
27 | { SIGP_STORE_STATUS_AT_ADDRESS, "SIGP store status at address" } | ||
28 | |||
29 | #define icpt_prog_codes \ | ||
30 | { 0x0001, "Prog Operation" }, \ | ||
31 | { 0x0002, "Prog Privileged Operation" }, \ | ||
32 | { 0x0003, "Prog Execute" }, \ | ||
33 | { 0x0004, "Prog Protection" }, \ | ||
34 | { 0x0005, "Prog Addressing" }, \ | ||
35 | { 0x0006, "Prog Specification" }, \ | ||
36 | { 0x0007, "Prog Data" }, \ | ||
37 | { 0x0008, "Prog Fixedpoint overflow" }, \ | ||
38 | { 0x0009, "Prog Fixedpoint divide" }, \ | ||
39 | { 0x000A, "Prog Decimal overflow" }, \ | ||
40 | { 0x000B, "Prog Decimal divide" }, \ | ||
41 | { 0x000C, "Prog HFP exponent overflow" }, \ | ||
42 | { 0x000D, "Prog HFP exponent underflow" }, \ | ||
43 | { 0x000E, "Prog HFP significance" }, \ | ||
44 | { 0x000F, "Prog HFP divide" }, \ | ||
45 | { 0x0010, "Prog Segment translation" }, \ | ||
46 | { 0x0011, "Prog Page translation" }, \ | ||
47 | { 0x0012, "Prog Translation specification" }, \ | ||
48 | { 0x0013, "Prog Special operation" }, \ | ||
49 | { 0x0015, "Prog Operand" }, \ | ||
50 | { 0x0016, "Prog Trace table" }, \ | ||
51 | { 0x0017, "Prog ASNtranslation specification" }, \ | ||
52 | { 0x001C, "Prog Spaceswitch event" }, \ | ||
53 | { 0x001D, "Prog HFP square root" }, \ | ||
54 | { 0x001F, "Prog PCtranslation specification" }, \ | ||
55 | { 0x0020, "Prog AFX translation" }, \ | ||
56 | { 0x0021, "Prog ASX translation" }, \ | ||
57 | { 0x0022, "Prog LX translation" }, \ | ||
58 | { 0x0023, "Prog EX translation" }, \ | ||
59 | { 0x0024, "Prog Primary authority" }, \ | ||
60 | { 0x0025, "Prog Secondary authority" }, \ | ||
61 | { 0x0026, "Prog LFXtranslation exception" }, \ | ||
62 | { 0x0027, "Prog LSXtranslation exception" }, \ | ||
63 | { 0x0028, "Prog ALET specification" }, \ | ||
64 | { 0x0029, "Prog ALEN translation" }, \ | ||
65 | { 0x002A, "Prog ALE sequence" }, \ | ||
66 | { 0x002B, "Prog ASTE validity" }, \ | ||
67 | { 0x002C, "Prog ASTE sequence" }, \ | ||
68 | { 0x002D, "Prog Extended authority" }, \ | ||
69 | { 0x002E, "Prog LSTE sequence" }, \ | ||
70 | { 0x002F, "Prog ASTE instance" }, \ | ||
71 | { 0x0030, "Prog Stack full" }, \ | ||
72 | { 0x0031, "Prog Stack empty" }, \ | ||
73 | { 0x0032, "Prog Stack specification" }, \ | ||
74 | { 0x0033, "Prog Stack type" }, \ | ||
75 | { 0x0034, "Prog Stack operation" }, \ | ||
76 | { 0x0039, "Prog Region first translation" }, \ | ||
77 | { 0x003A, "Prog Region second translation" }, \ | ||
78 | { 0x003B, "Prog Region third translation" }, \ | ||
79 | { 0x0040, "Prog Monitor event" }, \ | ||
80 | { 0x0080, "Prog PER event" }, \ | ||
81 | { 0x0119, "Prog Crypto operation" } | ||
82 | |||
83 | #define exit_code_ipa0(ipa0, opcode, mnemonic) \ | ||
84 | { (ipa0 << 8 | opcode), #ipa0 " " mnemonic } | ||
85 | #define exit_code(opcode, mnemonic) \ | ||
86 | { opcode, mnemonic } | ||
87 | |||
88 | #define icpt_insn_codes \ | ||
89 | exit_code_ipa0(0x01, 0x01, "PR"), \ | ||
90 | exit_code_ipa0(0x01, 0x04, "PTFF"), \ | ||
91 | exit_code_ipa0(0x01, 0x07, "SCKPF"), \ | ||
92 | exit_code_ipa0(0xAA, 0x00, "RINEXT"), \ | ||
93 | exit_code_ipa0(0xAA, 0x01, "RION"), \ | ||
94 | exit_code_ipa0(0xAA, 0x02, "TRIC"), \ | ||
95 | exit_code_ipa0(0xAA, 0x03, "RIOFF"), \ | ||
96 | exit_code_ipa0(0xAA, 0x04, "RIEMIT"), \ | ||
97 | exit_code_ipa0(0xB2, 0x02, "STIDP"), \ | ||
98 | exit_code_ipa0(0xB2, 0x04, "SCK"), \ | ||
99 | exit_code_ipa0(0xB2, 0x05, "STCK"), \ | ||
100 | exit_code_ipa0(0xB2, 0x06, "SCKC"), \ | ||
101 | exit_code_ipa0(0xB2, 0x07, "STCKC"), \ | ||
102 | exit_code_ipa0(0xB2, 0x08, "SPT"), \ | ||
103 | exit_code_ipa0(0xB2, 0x09, "STPT"), \ | ||
104 | exit_code_ipa0(0xB2, 0x0d, "PTLB"), \ | ||
105 | exit_code_ipa0(0xB2, 0x10, "SPX"), \ | ||
106 | exit_code_ipa0(0xB2, 0x11, "STPX"), \ | ||
107 | exit_code_ipa0(0xB2, 0x12, "STAP"), \ | ||
108 | exit_code_ipa0(0xB2, 0x14, "SIE"), \ | ||
109 | exit_code_ipa0(0xB2, 0x16, "SETR"), \ | ||
110 | exit_code_ipa0(0xB2, 0x17, "STETR"), \ | ||
111 | exit_code_ipa0(0xB2, 0x18, "PC"), \ | ||
112 | exit_code_ipa0(0xB2, 0x20, "SERVC"), \ | ||
113 | exit_code_ipa0(0xB2, 0x28, "PT"), \ | ||
114 | exit_code_ipa0(0xB2, 0x29, "ISKE"), \ | ||
115 | exit_code_ipa0(0xB2, 0x2a, "RRBE"), \ | ||
116 | exit_code_ipa0(0xB2, 0x2b, "SSKE"), \ | ||
117 | exit_code_ipa0(0xB2, 0x2c, "TB"), \ | ||
118 | exit_code_ipa0(0xB2, 0x2e, "PGIN"), \ | ||
119 | exit_code_ipa0(0xB2, 0x2f, "PGOUT"), \ | ||
120 | exit_code_ipa0(0xB2, 0x30, "CSCH"), \ | ||
121 | exit_code_ipa0(0xB2, 0x31, "HSCH"), \ | ||
122 | exit_code_ipa0(0xB2, 0x32, "MSCH"), \ | ||
123 | exit_code_ipa0(0xB2, 0x33, "SSCH"), \ | ||
124 | exit_code_ipa0(0xB2, 0x34, "STSCH"), \ | ||
125 | exit_code_ipa0(0xB2, 0x35, "TSCH"), \ | ||
126 | exit_code_ipa0(0xB2, 0x36, "TPI"), \ | ||
127 | exit_code_ipa0(0xB2, 0x37, "SAL"), \ | ||
128 | exit_code_ipa0(0xB2, 0x38, "RSCH"), \ | ||
129 | exit_code_ipa0(0xB2, 0x39, "STCRW"), \ | ||
130 | exit_code_ipa0(0xB2, 0x3a, "STCPS"), \ | ||
131 | exit_code_ipa0(0xB2, 0x3b, "RCHP"), \ | ||
132 | exit_code_ipa0(0xB2, 0x3c, "SCHM"), \ | ||
133 | exit_code_ipa0(0xB2, 0x40, "BAKR"), \ | ||
134 | exit_code_ipa0(0xB2, 0x48, "PALB"), \ | ||
135 | exit_code_ipa0(0xB2, 0x4c, "TAR"), \ | ||
136 | exit_code_ipa0(0xB2, 0x50, "CSP"), \ | ||
137 | exit_code_ipa0(0xB2, 0x54, "MVPG"), \ | ||
138 | exit_code_ipa0(0xB2, 0x58, "BSG"), \ | ||
139 | exit_code_ipa0(0xB2, 0x5a, "BSA"), \ | ||
140 | exit_code_ipa0(0xB2, 0x5f, "CHSC"), \ | ||
141 | exit_code_ipa0(0xB2, 0x74, "SIGA"), \ | ||
142 | exit_code_ipa0(0xB2, 0x76, "XSCH"), \ | ||
143 | exit_code_ipa0(0xB2, 0x78, "STCKE"), \ | ||
144 | exit_code_ipa0(0xB2, 0x7c, "STCKF"), \ | ||
145 | exit_code_ipa0(0xB2, 0x7d, "STSI"), \ | ||
146 | exit_code_ipa0(0xB2, 0xb0, "STFLE"), \ | ||
147 | exit_code_ipa0(0xB2, 0xb1, "STFL"), \ | ||
148 | exit_code_ipa0(0xB2, 0xb2, "LPSWE"), \ | ||
149 | exit_code_ipa0(0xB2, 0xf8, "TEND"), \ | ||
150 | exit_code_ipa0(0xB2, 0xfc, "TABORT"), \ | ||
151 | exit_code_ipa0(0xB9, 0x1e, "KMAC"), \ | ||
152 | exit_code_ipa0(0xB9, 0x28, "PCKMO"), \ | ||
153 | exit_code_ipa0(0xB9, 0x2a, "KMF"), \ | ||
154 | exit_code_ipa0(0xB9, 0x2b, "KMO"), \ | ||
155 | exit_code_ipa0(0xB9, 0x2d, "KMCTR"), \ | ||
156 | exit_code_ipa0(0xB9, 0x2e, "KM"), \ | ||
157 | exit_code_ipa0(0xB9, 0x2f, "KMC"), \ | ||
158 | exit_code_ipa0(0xB9, 0x3e, "KIMD"), \ | ||
159 | exit_code_ipa0(0xB9, 0x3f, "KLMD"), \ | ||
160 | exit_code_ipa0(0xB9, 0x8a, "CSPG"), \ | ||
161 | exit_code_ipa0(0xB9, 0x8d, "EPSW"), \ | ||
162 | exit_code_ipa0(0xB9, 0x8e, "IDTE"), \ | ||
163 | exit_code_ipa0(0xB9, 0x8f, "CRDTE"), \ | ||
164 | exit_code_ipa0(0xB9, 0x9c, "EQBS"), \ | ||
165 | exit_code_ipa0(0xB9, 0xa2, "PTF"), \ | ||
166 | exit_code_ipa0(0xB9, 0xab, "ESSA"), \ | ||
167 | exit_code_ipa0(0xB9, 0xae, "RRBM"), \ | ||
168 | exit_code_ipa0(0xB9, 0xaf, "PFMF"), \ | ||
169 | exit_code_ipa0(0xE3, 0x03, "LRAG"), \ | ||
170 | exit_code_ipa0(0xE3, 0x13, "LRAY"), \ | ||
171 | exit_code_ipa0(0xE3, 0x25, "NTSTG"), \ | ||
172 | exit_code_ipa0(0xE5, 0x00, "LASP"), \ | ||
173 | exit_code_ipa0(0xE5, 0x01, "TPROT"), \ | ||
174 | exit_code_ipa0(0xE5, 0x60, "TBEGIN"), \ | ||
175 | exit_code_ipa0(0xE5, 0x61, "TBEGINC"), \ | ||
176 | exit_code_ipa0(0xEB, 0x25, "STCTG"), \ | ||
177 | exit_code_ipa0(0xEB, 0x2f, "LCTLG"), \ | ||
178 | exit_code_ipa0(0xEB, 0x60, "LRIC"), \ | ||
179 | exit_code_ipa0(0xEB, 0x61, "STRIC"), \ | ||
180 | exit_code_ipa0(0xEB, 0x62, "MRIC"), \ | ||
181 | exit_code_ipa0(0xEB, 0x8a, "SQBS"), \ | ||
182 | exit_code_ipa0(0xC8, 0x01, "ECTG"), \ | ||
183 | exit_code(0x0a, "SVC"), \ | ||
184 | exit_code(0x80, "SSM"), \ | ||
185 | exit_code(0x82, "LPSW"), \ | ||
186 | exit_code(0x83, "DIAG"), \ | ||
187 | exit_code(0xae, "SIGP"), \ | ||
188 | exit_code(0xac, "STNSM"), \ | ||
189 | exit_code(0xad, "STOSM"), \ | ||
190 | exit_code(0xb1, "LRA"), \ | ||
191 | exit_code(0xb6, "STCTL"), \ | ||
192 | exit_code(0xb7, "LCTL"), \ | ||
193 | exit_code(0xee, "PLO") | ||
194 | |||
195 | #define sie_intercept_code \ | ||
196 | { 0x00, "Host interruption" }, \ | ||
197 | { 0x04, "Instruction" }, \ | ||
198 | { 0x08, "Program interruption" }, \ | ||
199 | { 0x0c, "Instruction and program interruption" }, \ | ||
200 | { 0x10, "External request" }, \ | ||
201 | { 0x14, "External interruption" }, \ | ||
202 | { 0x18, "I/O request" }, \ | ||
203 | { 0x1c, "Wait state" }, \ | ||
204 | { 0x20, "Validity" }, \ | ||
205 | { 0x28, "Stop request" }, \ | ||
206 | { 0x2c, "Operation exception" }, \ | ||
207 | { 0x38, "Partial-execution" }, \ | ||
208 | { 0x3c, "I/O interruption" }, \ | ||
209 | { 0x40, "I/O instruction" }, \ | ||
210 | { 0x48, "Timing subset" } | ||
211 | |||
212 | #endif /* _UAPI_ASM_S390_SIE_H */ | ||