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