summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/uapi/asm/sie.h
blob: ec793e188681774eac8fe38092fb0f62d37e3d9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
#ifndef _UAPI_ASM_S390_SIE_H
#define _UAPI_ASM_S390_SIE_H

#include <asm/sigp.h>

#define diagnose_codes						\
	{ 0x10, "DIAG (0x10) release pages" },			\
	{ 0x44, "DIAG (0x44) time slice end" },			\
	{ 0x9c, "DIAG (0x9c) time slice end directed" },	\
	{ 0x204, "DIAG (0x204) logical-cpu utilization" },	\
	{ 0x258, "DIAG (0x258) page-reference services" },	\
	{ 0x308, "DIAG (0x308) ipl functions" },		\
	{ 0x500, "DIAG (0x500) KVM virtio functions" },		\
	{ 0x501, "DIAG (0x501) KVM breakpoint" }

#define sigp_order_codes						\
	{ SIGP_SENSE, "SIGP sense" },					\
	{ SIGP_EXTERNAL_CALL, "SIGP external call" },			\
	{ SIGP_EMERGENCY_SIGNAL, "SIGP emergency signal" },		\
	{ SIGP_STOP, "SIGP stop" },					\
	{ SIGP_STOP_AND_STORE_STATUS, "SIGP stop and store status" },	\
	{ SIGP_SET_ARCHITECTURE, "SIGP set architecture" },		\
	{ SIGP_SET_PREFIX, "SIGP set prefix" },				\
	{ SIGP_SENSE_RUNNING, "SIGP sense running" },			\
	{ SIGP_RESTART, "SIGP restart" },				\
	{ SIGP_INITIAL_CPU_RESET, "SIGP initial cpu reset" },		\
	{ SIGP_STORE_STATUS_AT_ADDRESS, "SIGP store status at address" }

#define icpt_prog_codes						\
	{ 0x0001, "Prog Operation" },				\
	{ 0x0002, "Prog Privileged Operation" },		\
	{ 0x0003, "Prog Execute" },				\
	{ 0x0004, "Prog Protection" },				\
	{ 0x0005, "Prog Addressing" },				\
	{ 0x0006, "Prog Specification" },			\
	{ 0x0007, "Prog Data" },				\
	{ 0x0008, "Prog Fixedpoint overflow" },			\
	{ 0x0009, "Prog Fixedpoint divide" },			\
	{ 0x000A, "Prog Decimal overflow" },			\
	{ 0x000B, "Prog Decimal divide" },			\
	{ 0x000C, "Prog HFP exponent overflow" },		\
	{ 0x000D, "Prog HFP exponent underflow" },		\
	{ 0x000E, "Prog HFP significance" },			\
	{ 0x000F, "Prog HFP divide" },				\
	{ 0x0010, "Prog Segment translation" },			\
	{ 0x0011, "Prog Page translation" },			\
	{ 0x0012, "Prog Translation specification" },		\
	{ 0x0013, "Prog Special operation" },			\
	{ 0x0015, "Prog Operand" },				\
	{ 0x0016, "Prog Trace table" },				\
	{ 0x0017, "Prog ASNtranslation specification" },	\
	{ 0x001C, "Prog Spaceswitch event" },			\
	{ 0x001D, "Prog HFP square root" },			\
	{ 0x001F, "Prog PCtranslation specification" },		\
	{ 0x0020, "Prog AFX translation" },			\
	{ 0x0021, "Prog ASX translation" },			\
	{ 0x0022, "Prog LX translation" },			\
	{ 0x0023, "Prog EX translation" },			\
	{ 0x0024, "Prog Primary authority" },			\
	{ 0x0025, "Prog Secondary authority" },			\
	{ 0x0026, "Prog LFXtranslation exception" },		\
	{ 0x0027, "Prog LSXtranslation exception" },		\
	{ 0x0028, "Prog ALET specification" },			\
	{ 0x0029, "Prog ALEN translation" },			\
	{ 0x002A, "Prog ALE sequence" },			\
	{ 0x002B, "Prog ASTE validity" },			\
	{ 0x002C, "Prog ASTE sequence" },			\
	{ 0x002D, "Prog Extended authority" },			\
	{ 0x002E, "Prog LSTE sequence" },			\
	{ 0x002F, "Prog ASTE instance" },			\
	{ 0x0030, "Prog Stack full" },				\
	{ 0x0031, "Prog Stack empty" },				\
	{ 0x0032, "Prog Stack specification" },			\
	{ 0x0033, "Prog Stack type" },				\
	{ 0x0034, "Prog Stack operation" },			\
	{ 0x0039, "Prog Region first translation" },		\
	{ 0x003A, "Prog Region second translation" },		\
	{ 0x003B, "Prog Region third translation" },		\
	{ 0x0040, "Prog Monitor event" },			\
	{ 0x0080, "Prog PER event" },				\
	{ 0x0119, "Prog Crypto operation" }

#define exit_code_ipa0(ipa0, opcode, mnemonic)		\
	{ (ipa0 << 8 | opcode), #ipa0 " " mnemonic }
#define exit_code(opcode, mnemonic)			\
	{ opcode, mnemonic }

#define icpt_insn_codes				\
	exit_code_ipa0(0x01, 0x01, "PR"),	\
	exit_code_ipa0(0x01, 0x04, "PTFF"),	\
	exit_code_ipa0(0x01, 0x07, "SCKPF"),	\
	exit_code_ipa0(0xAA, 0x00, "RINEXT"),	\
	exit_code_ipa0(0xAA, 0x01, "RION"),	\
	exit_code_ipa0(0xAA, 0x02, "TRIC"),	\
	exit_code_ipa0(0xAA, 0x03, "RIOFF"),	\
	exit_code_ipa0(0xAA, 0x04, "RIEMIT"),	\
	exit_code_ipa0(0xB2, 0x02, "STIDP"),	\
	exit_code_ipa0(0xB2, 0x04, "SCK"),	\
	exit_code_ipa0(0xB2, 0x05, "STCK"),	\
	exit_code_ipa0(0xB2, 0x06, "SCKC"),	\
	exit_code_ipa0(0xB2, 0x07, "STCKC"),	\
	exit_code_ipa0(0xB2, 0x08, "SPT"),	\
	exit_code_ipa0(0xB2, 0x09, "STPT"),	\
	exit_code_ipa0(0xB2, 0x0d, "PTLB"),	\
	exit_code_ipa0(0xB2, 0x10, "SPX"),	\
	exit_code_ipa0(0xB2, 0x11, "STPX"),	\
	exit_code_ipa0(0xB2, 0x12, "STAP"),	\
	exit_code_ipa0(0xB2, 0x14, "SIE"),	\
	exit_code_ipa0(0xB2, 0x16, "SETR"),	\
	exit_code_ipa0(0xB2, 0x17, "STETR"),	\
	exit_code_ipa0(0xB2, 0x18, "PC"),	\
	exit_code_ipa0(0xB2, 0x20, "SERVC"),	\
	exit_code_ipa0(0xB2, 0x28, "PT"),	\
	exit_code_ipa0(0xB2, 0x29, "ISKE"),	\
	exit_code_ipa0(0xB2, 0x2a, "RRBE"),	\
	exit_code_ipa0(0xB2, 0x2b, "SSKE"),	\
	exit_code_ipa0(0xB2, 0x2c, "TB"),	\
	exit_code_ipa0(0xB2, 0x2e, "PGIN"),	\
	exit_code_ipa0(0xB2, 0x2f, "PGOUT"),	\
	exit_code_ipa0(0xB2, 0x30, "CSCH"),	\
	exit_code_ipa0(0xB2, 0x31, "HSCH"),	\
	exit_code_ipa0(0xB2, 0x32, "MSCH"),	\
	exit_code_ipa0(0xB2, 0x33, "SSCH"),	\
	exit_code_ipa0(0xB2, 0x34, "STSCH"),	\
	exit_code_ipa0(0xB2, 0x35, "TSCH"),	\
	exit_code_ipa0(0xB2, 0x36, "TPI"),	\
	exit_code_ipa0(0xB2, 0x37, "SAL"),	\
	exit_code_ipa0(0xB2, 0x38, "RSCH"),	\
	exit_code_ipa0(0xB2, 0x39, "STCRW"),	\
	exit_code_ipa0(0xB2, 0x3a, "STCPS"),	\
	exit_code_ipa0(0xB2, 0x3b, "RCHP"),	\
	exit_code_ipa0(0xB2, 0x3c, "SCHM"),	\
	exit_code_ipa0(0xB2, 0x40, "BAKR"),	\
	exit_code_ipa0(0xB2, 0x48, "PALB"),	\
	exit_code_ipa0(0xB2, 0x4c, "TAR"),	\
	exit_code_ipa0(0xB2, 0x50, "CSP"),	\
	exit_code_ipa0(0xB2, 0x54, "MVPG"),	\
	exit_code_ipa0(0xB2, 0x58, "BSG"),	\
	exit_code_ipa0(0xB2, 0x5a, "BSA"),	\
	exit_code_ipa0(0xB2, 0x5f, "CHSC"),	\
	exit_code_ipa0(0xB2, 0x74, "SIGA"),	\
	exit_code_ipa0(0xB2, 0x76, "XSCH"),	\
	exit_code_ipa0(0xB2, 0x78, "STCKE"),	\
	exit_code_ipa0(0xB2, 0x7c, "STCKF"),	\
	exit_code_ipa0(0xB2, 0x7d, "STSI"),	\
	exit_code_ipa0(0xB2, 0xb0, "STFLE"),	\
	exit_code_ipa0(0xB2, 0xb1, "STFL"),	\
	exit_code_ipa0(0xB2, 0xb2, "LPSWE"),	\
	exit_code_ipa0(0xB2, 0xf8, "TEND"),	\
	exit_code_ipa0(0xB2, 0xfc, "TABORT"),	\
	exit_code_ipa0(0xB9, 0x1e, "KMAC"),	\
	exit_code_ipa0(0xB9, 0x28, "PCKMO"),	\
	exit_code_ipa0(0xB9, 0x2a, "KMF"),	\
	exit_code_ipa0(0xB9, 0x2b, "KMO"),	\
	exit_code_ipa0(0xB9, 0x2d, "KMCTR"),	\
	exit_code_ipa0(0xB9, 0x2e, "KM"),	\
	exit_code_ipa0(0xB9, 0x2f, "KMC"),	\
	exit_code_ipa0(0xB9, 0x3e, "KIMD"),	\
	exit_code_ipa0(0xB9, 0x3f, "KLMD"),	\
	exit_code_ipa0(0xB9, 0x8a, "CSPG"),	\
	exit_code_ipa0(0xB9, 0x8d, "EPSW"),	\
	exit_code_ipa0(0xB9, 0x8e, "IDTE"),	\
	exit_code_ipa0(0xB9, 0x8f, "CRDTE"),	\
	exit_code_ipa0(0xB9, 0x9c, "EQBS"),	\
	exit_code_ipa0(0xB9, 0xa2, "PTF"),	\
	exit_code_ipa0(0xB9, 0xab, "ESSA"),	\
	exit_code_ipa0(0xB9, 0xae, "RRBM"),	\
	exit_code_ipa0(0xB9, 0xaf, "PFMF"),	\
	exit_code_ipa0(0xE3, 0x03, "LRAG"),	\
	exit_code_ipa0(0xE3, 0x13, "LRAY"),	\
	exit_code_ipa0(0xE3, 0x25, "NTSTG"),	\
	exit_code_ipa0(0xE5, 0x00, "LASP"),	\
	exit_code_ipa0(0xE5, 0x01, "TPROT"),	\
	exit_code_ipa0(0xE5, 0x60, "TBEGIN"),	\
	exit_code_ipa0(0xE5, 0x61, "TBEGINC"),	\
	exit_code_ipa0(0xEB, 0x25, "STCTG"),	\
	exit_code_ipa0(0xEB, 0x2f, "LCTLG"),	\
	exit_code_ipa0(0xEB, 0x60, "LRIC"),	\
	exit_code_ipa0(0xEB, 0x61, "STRIC"),	\
	exit_code_ipa0(0xEB, 0x62, "MRIC"),	\
	exit_code_ipa0(0xEB, 0x8a, "SQBS"),	\
	exit_code_ipa0(0xC8, 0x01, "ECTG"),	\
	exit_code(0x0a, "SVC"),			\
	exit_code(0x80, "SSM"),			\
	exit_code(0x82, "LPSW"),		\
	exit_code(0x83, "DIAG"),		\
	exit_code(0xae, "SIGP"),		\
	exit_code(0xac, "STNSM"),		\
	exit_code(0xad, "STOSM"),		\
	exit_code(0xb1, "LRA"),			\
	exit_code(0xb6, "STCTL"),		\
	exit_code(0xb7, "LCTL"),		\
	exit_code(0xee, "PLO")

#define sie_intercept_code					\
	{ 0x00, "Host interruption" },				\
	{ 0x04, "Instruction" },				\
	{ 0x08, "Program interruption" },			\
	{ 0x0c, "Instruction and program interruption" },	\
	{ 0x10, "External request" },				\
	{ 0x14, "External interruption" },			\
	{ 0x18, "I/O request" },				\
	{ 0x1c, "Wait state" },					\
	{ 0x20, "Validity" },					\
	{ 0x28, "Stop request" },				\
	{ 0x2c, "Operation exception" },			\
	{ 0x38, "Partial-execution" },				\
	{ 0x3c, "I/O interruption" },				\
	{ 0x40, "I/O instruction" },				\
	{ 0x48, "Timing subset" }

#endif /* _UAPI_ASM_S390_SIE_H */