~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/s390/include/uapi/asm/sie.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 #ifndef _UAPI_ASM_S390_SIE_H
  3 #define _UAPI_ASM_S390_SIE_H
  4 
  5 #define diagnose_codes                                          \
  6         { 0x10, "DIAG (0x10) release pages" },                  \
  7         { 0x44, "DIAG (0x44) time slice end" },                 \
  8         { 0x9c, "DIAG (0x9c) time slice end directed" },        \
  9         { 0x204, "DIAG (0x204) logical-cpu utilization" },      \
 10         { 0x258, "DIAG (0x258) page-reference services" },      \
 11         { 0x288, "DIAG (0x288) watchdog functions" },           \
 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         { 0x01, "SIGP sense" },                                 \
 18         { 0x02, "SIGP external call" },                         \
 19         { 0x03, "SIGP emergency signal" },                      \
 20         { 0x04, "SIGP start" },                                 \
 21         { 0x05, "SIGP stop" },                                  \
 22         { 0x06, "SIGP restart" },                               \
 23         { 0x09, "SIGP stop and store status" },                 \
 24         { 0x0b, "SIGP initial cpu reset" },                     \
 25         { 0x0c, "SIGP cpu reset" },                             \
 26         { 0x0d, "SIGP set prefix" },                            \
 27         { 0x0e, "SIGP store status at address" },               \
 28         { 0x12, "SIGP set architecture" },                      \
 29         { 0x13, "SIGP conditional emergency signal" },          \
 30         { 0x15, "SIGP sense running" },                         \
 31         { 0x16, "SIGP set multithreading"},                     \
 32         { 0x17, "SIGP store additional status at address"}
 33 
 34 #define icpt_prog_codes                                         \
 35         { 0x0001, "Prog Operation" },                           \
 36         { 0x0002, "Prog Privileged Operation" },                \
 37         { 0x0003, "Prog Execute" },                             \
 38         { 0x0004, "Prog Protection" },                          \
 39         { 0x0005, "Prog Addressing" },                          \
 40         { 0x0006, "Prog Specification" },                       \
 41         { 0x0007, "Prog Data" },                                \
 42         { 0x0008, "Prog Fixedpoint overflow" },                 \
 43         { 0x0009, "Prog Fixedpoint divide" },                   \
 44         { 0x000A, "Prog Decimal overflow" },                    \
 45         { 0x000B, "Prog Decimal divide" },                      \
 46         { 0x000C, "Prog HFP exponent overflow" },               \
 47         { 0x000D, "Prog HFP exponent underflow" },              \
 48         { 0x000E, "Prog HFP significance" },                    \
 49         { 0x000F, "Prog HFP divide" },                          \
 50         { 0x0010, "Prog Segment translation" },                 \
 51         { 0x0011, "Prog Page translation" },                    \
 52         { 0x0012, "Prog Translation specification" },           \
 53         { 0x0013, "Prog Special operation" },                   \
 54         { 0x0015, "Prog Operand" },                             \
 55         { 0x0016, "Prog Trace table" },                         \
 56         { 0x0017, "Prog ASNtranslation specification" },        \
 57         { 0x001C, "Prog Spaceswitch event" },                   \
 58         { 0x001D, "Prog HFP square root" },                     \
 59         { 0x001F, "Prog PCtranslation specification" },         \
 60         { 0x0020, "Prog AFX translation" },                     \
 61         { 0x0021, "Prog ASX translation" },                     \
 62         { 0x0022, "Prog LX translation" },                      \
 63         { 0x0023, "Prog EX translation" },                      \
 64         { 0x0024, "Prog Primary authority" },                   \
 65         { 0x0025, "Prog Secondary authority" },                 \
 66         { 0x0026, "Prog LFXtranslation exception" },            \
 67         { 0x0027, "Prog LSXtranslation exception" },            \
 68         { 0x0028, "Prog ALET specification" },                  \
 69         { 0x0029, "Prog ALEN translation" },                    \
 70         { 0x002A, "Prog ALE sequence" },                        \
 71         { 0x002B, "Prog ASTE validity" },                       \
 72         { 0x002C, "Prog ASTE sequence" },                       \
 73         { 0x002D, "Prog Extended authority" },                  \
 74         { 0x002E, "Prog LSTE sequence" },                       \
 75         { 0x002F, "Prog ASTE instance" },                       \
 76         { 0x0030, "Prog Stack full" },                          \
 77         { 0x0031, "Prog Stack empty" },                         \
 78         { 0x0032, "Prog Stack specification" },                 \
 79         { 0x0033, "Prog Stack type" },                          \
 80         { 0x0034, "Prog Stack operation" },                     \
 81         { 0x0039, "Prog Region first translation" },            \
 82         { 0x003A, "Prog Region second translation" },           \
 83         { 0x003B, "Prog Region third translation" },            \
 84         { 0x0040, "Prog Monitor event" },                       \
 85         { 0x0080, "Prog PER event" },                           \
 86         { 0x0119, "Prog Crypto operation" }
 87 
 88 #define exit_code_ipa0(ipa0, opcode, mnemonic)          \
 89         { (ipa0 << 8 | opcode), #ipa0 " " mnemonic }
 90 #define exit_code(opcode, mnemonic)                     \
 91         { opcode, mnemonic }
 92 
 93 #define icpt_insn_codes                         \
 94         exit_code_ipa0(0x01, 0x01, "PR"),       \
 95         exit_code_ipa0(0x01, 0x04, "PTFF"),     \
 96         exit_code_ipa0(0x01, 0x07, "SCKPF"),    \
 97         exit_code_ipa0(0xAA, 0x00, "RINEXT"),   \
 98         exit_code_ipa0(0xAA, 0x01, "RION"),     \
 99         exit_code_ipa0(0xAA, 0x02, "TRIC"),     \
100         exit_code_ipa0(0xAA, 0x03, "RIOFF"),    \
101         exit_code_ipa0(0xAA, 0x04, "RIEMIT"),   \
102         exit_code_ipa0(0xB2, 0x02, "STIDP"),    \
103         exit_code_ipa0(0xB2, 0x04, "SCK"),      \
104         exit_code_ipa0(0xB2, 0x05, "STCK"),     \
105         exit_code_ipa0(0xB2, 0x06, "SCKC"),     \
106         exit_code_ipa0(0xB2, 0x07, "STCKC"),    \
107         exit_code_ipa0(0xB2, 0x08, "SPT"),      \
108         exit_code_ipa0(0xB2, 0x09, "STPT"),     \
109         exit_code_ipa0(0xB2, 0x0d, "PTLB"),     \
110         exit_code_ipa0(0xB2, 0x10, "SPX"),      \
111         exit_code_ipa0(0xB2, 0x11, "STPX"),     \
112         exit_code_ipa0(0xB2, 0x12, "STAP"),     \
113         exit_code_ipa0(0xB2, 0x14, "SIE"),      \
114         exit_code_ipa0(0xB2, 0x16, "SETR"),     \
115         exit_code_ipa0(0xB2, 0x17, "STETR"),    \
116         exit_code_ipa0(0xB2, 0x18, "PC"),       \
117         exit_code_ipa0(0xB2, 0x20, "SERVC"),    \
118         exit_code_ipa0(0xB2, 0x21, "IPTE"),     \
119         exit_code_ipa0(0xB2, 0x28, "PT"),       \
120         exit_code_ipa0(0xB2, 0x29, "ISKE"),     \
121         exit_code_ipa0(0xB2, 0x2a, "RRBE"),     \
122         exit_code_ipa0(0xB2, 0x2b, "SSKE"),     \
123         exit_code_ipa0(0xB2, 0x2c, "TB"),       \
124         exit_code_ipa0(0xB2, 0x2e, "PGIN"),     \
125         exit_code_ipa0(0xB2, 0x2f, "PGOUT"),    \
126         exit_code_ipa0(0xB2, 0x30, "CSCH"),     \
127         exit_code_ipa0(0xB2, 0x31, "HSCH"),     \
128         exit_code_ipa0(0xB2, 0x32, "MSCH"),     \
129         exit_code_ipa0(0xB2, 0x33, "SSCH"),     \
130         exit_code_ipa0(0xB2, 0x34, "STSCH"),    \
131         exit_code_ipa0(0xB2, 0x35, "TSCH"),     \
132         exit_code_ipa0(0xB2, 0x36, "TPI"),      \
133         exit_code_ipa0(0xB2, 0x37, "SAL"),      \
134         exit_code_ipa0(0xB2, 0x38, "RSCH"),     \
135         exit_code_ipa0(0xB2, 0x39, "STCRW"),    \
136         exit_code_ipa0(0xB2, 0x3a, "STCPS"),    \
137         exit_code_ipa0(0xB2, 0x3b, "RCHP"),     \
138         exit_code_ipa0(0xB2, 0x3c, "SCHM"),     \
139         exit_code_ipa0(0xB2, 0x40, "BAKR"),     \
140         exit_code_ipa0(0xB2, 0x48, "PALB"),     \
141         exit_code_ipa0(0xB2, 0x4c, "TAR"),      \
142         exit_code_ipa0(0xB2, 0x50, "CSP"),      \
143         exit_code_ipa0(0xB2, 0x54, "MVPG"),     \
144         exit_code_ipa0(0xB2, 0x56, "STHYI"),    \
145         exit_code_ipa0(0xB2, 0x58, "BSG"),      \
146         exit_code_ipa0(0xB2, 0x5a, "BSA"),      \
147         exit_code_ipa0(0xB2, 0x5f, "CHSC"),     \
148         exit_code_ipa0(0xB2, 0x74, "SIGA"),     \
149         exit_code_ipa0(0xB2, 0x76, "XSCH"),     \
150         exit_code_ipa0(0xB2, 0x78, "STCKE"),    \
151         exit_code_ipa0(0xB2, 0x7c, "STCKF"),    \
152         exit_code_ipa0(0xB2, 0x7d, "STSI"),     \
153         exit_code_ipa0(0xB2, 0xb0, "STFLE"),    \
154         exit_code_ipa0(0xB2, 0xb1, "STFL"),     \
155         exit_code_ipa0(0xB2, 0xb2, "LPSWE"),    \
156         exit_code_ipa0(0xB2, 0xf8, "TEND"),     \
157         exit_code_ipa0(0xB2, 0xfc, "TABORT"),   \
158         exit_code_ipa0(0xB9, 0x1e, "KMAC"),     \
159         exit_code_ipa0(0xB9, 0x28, "PCKMO"),    \
160         exit_code_ipa0(0xB9, 0x2a, "KMF"),      \
161         exit_code_ipa0(0xB9, 0x2b, "KMO"),      \
162         exit_code_ipa0(0xB9, 0x2d, "KMCTR"),    \
163         exit_code_ipa0(0xB9, 0x2e, "KM"),       \
164         exit_code_ipa0(0xB9, 0x2f, "KMC"),      \
165         exit_code_ipa0(0xB9, 0x3e, "KIMD"),     \
166         exit_code_ipa0(0xB9, 0x3f, "KLMD"),     \
167         exit_code_ipa0(0xB9, 0x8a, "CSPG"),     \
168         exit_code_ipa0(0xB9, 0x8d, "EPSW"),     \
169         exit_code_ipa0(0xB9, 0x8e, "IDTE"),     \
170         exit_code_ipa0(0xB9, 0x8f, "CRDTE"),    \
171         exit_code_ipa0(0xB9, 0x9c, "EQBS"),     \
172         exit_code_ipa0(0xB9, 0xa2, "PTF"),      \
173         exit_code_ipa0(0xB9, 0xab, "ESSA"),     \
174         exit_code_ipa0(0xB9, 0xae, "RRBM"),     \
175         exit_code_ipa0(0xB9, 0xaf, "PFMF"),     \
176         exit_code_ipa0(0xE3, 0x03, "LRAG"),     \
177         exit_code_ipa0(0xE3, 0x13, "LRAY"),     \
178         exit_code_ipa0(0xE3, 0x25, "NTSTG"),    \
179         exit_code_ipa0(0xE5, 0x00, "LASP"),     \
180         exit_code_ipa0(0xE5, 0x01, "TPROT"),    \
181         exit_code_ipa0(0xE5, 0x60, "TBEGIN"),   \
182         exit_code_ipa0(0xE5, 0x61, "TBEGINC"),  \
183         exit_code_ipa0(0xEB, 0x25, "STCTG"),    \
184         exit_code_ipa0(0xEB, 0x2f, "LCTLG"),    \
185         exit_code_ipa0(0xEB, 0x60, "LRIC"),     \
186         exit_code_ipa0(0xEB, 0x61, "STRIC"),    \
187         exit_code_ipa0(0xEB, 0x62, "MRIC"),     \
188         exit_code_ipa0(0xEB, 0x8a, "SQBS"),     \
189         exit_code_ipa0(0xC8, 0x01, "ECTG"),     \
190         exit_code(0x0a, "SVC"),                 \
191         exit_code(0x80, "SSM"),                 \
192         exit_code(0x82, "LPSW"),                \
193         exit_code(0x83, "DIAG"),                \
194         exit_code(0xae, "SIGP"),                \
195         exit_code(0xac, "STNSM"),               \
196         exit_code(0xad, "STOSM"),               \
197         exit_code(0xb1, "LRA"),                 \
198         exit_code(0xb6, "STCTL"),               \
199         exit_code(0xb7, "LCTL"),                \
200         exit_code(0xee, "PLO")
201 
202 #define sie_intercept_code                                      \
203         { 0x00, "Host interruption" },                          \
204         { 0x04, "Instruction" },                                \
205         { 0x08, "Program interruption" },                       \
206         { 0x0c, "Instruction and program interruption" },       \
207         { 0x10, "External request" },                           \
208         { 0x14, "External interruption" },                      \
209         { 0x18, "I/O request" },                                \
210         { 0x1c, "Wait state" },                                 \
211         { 0x20, "Validity" },                                   \
212         { 0x28, "Stop request" },                               \
213         { 0x2c, "Operation exception" },                        \
214         { 0x38, "Partial-execution" },                          \
215         { 0x3c, "I/O interruption" },                           \
216         { 0x40, "I/O instruction" },                            \
217         { 0x48, "Timing subset" }
218 
219 /*
220  * This is the simple interceptable instructions decoder.
221  *
222  * It will be used as userspace interface and it can be used in places
223  * that does not allow to use general decoder functions,
224  * such as trace events declarations.
225  *
226  * Some userspace tools may want to parse this code
227  * and would be confused by switch(), if() and other statements,
228  * but they can understand conditional operator.
229  */
230 #define INSN_DECODE_IPA0(ipa0, insn, rshift, mask)              \
231         (insn >> 56) == (ipa0) ?                                \
232                 ((ipa0 << 8) | ((insn >> rshift) & mask)) :
233 
234 #define INSN_DECODE(insn) (insn >> 56)
235 
236 /*
237  * The macro icpt_insn_decoder() takes an intercepted instruction
238  * and returns a key, which can be used to find a mnemonic name
239  * of the instruction in the icpt_insn_codes table.
240  */
241 #define icpt_insn_decoder(insn) (               \
242         INSN_DECODE_IPA0(0x01, insn, 48, 0xff)  \
243         INSN_DECODE_IPA0(0xaa, insn, 48, 0x0f)  \
244         INSN_DECODE_IPA0(0xb2, insn, 48, 0xff)  \
245         INSN_DECODE_IPA0(0xb9, insn, 48, 0xff)  \
246         INSN_DECODE_IPA0(0xe3, insn, 48, 0xff)  \
247         INSN_DECODE_IPA0(0xe5, insn, 48, 0xff)  \
248         INSN_DECODE_IPA0(0xeb, insn, 16, 0xff)  \
249         INSN_DECODE_IPA0(0xc8, insn, 48, 0x0f)  \
250         INSN_DECODE(insn))
251 
252 #endif /* _UAPI_ASM_S390_SIE_H */
253 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php