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