1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _ASM_S390_TPI_H
3 #define _ASM_S390_TPI_H
4 
5 #include <linux/types.h>
6 #include <uapi/asm/schid.h>
7 
8 #ifndef __ASSEMBLY__
9 
10 /* I/O-Interruption Code as stored by TEST PENDING INTERRUPTION (TPI). */
11 struct tpi_info {
12 	struct subchannel_id schid;
13 	u32 intparm;
14 	u32 adapter_IO:1;
15 	u32 directed_irq:1;
16 	u32 isc:3;
17 	u32 :12;
18 	u32 type:3;
19 	u32 :12;
20 } __packed __aligned(4);
21 
22 /* I/O-Interruption Code as stored by TPI for an Adapter I/O */
23 struct tpi_adapter_info {
24 	u32 aism:8;
25 	u32 :22;
26 	u32 error:1;
27 	u32 forward:1;
28 	u32 reserved;
29 	u32 adapter_IO:1;
30 	u32 directed_irq:1;
31 	u32 isc:3;
32 	u32 :27;
33 } __packed __aligned(4);
34 
35 #endif /* __ASSEMBLY__ */
36 
37 #endif /* _ASM_S390_TPI_H */
38