|
|
u32 | access_regs [16] {} |
| | Access registers ar0-ar15 (PoP §2-6).
|
|
u32 | fpc {} |
| | Floating point control register (PoP §4-67).
|
|
u64 | gprs [16] {} |
| | General-purpose registers r0–r15 at interrupt time.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_ARS = 0x90U |
| | Offset of the access register save area within the frame.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_FPC = 0xD0U |
| | Offset of the FPC save area within the frame.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_GPRS = 0x00U |
| | Offset of the GPR save area within the frame.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_PSW_ADDR = 0x88U |
| | Offset of the saved old PSW instruction address within the frame.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_PSW_MASK = 0x80U |
| | Offset of the saved old PSW mask word within the frame.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_SIZE = 0x02D8U |
| | Total size of the interrupt frame in bytes. 128 (GPRs) + 16 (PSW) + 64 (ARs) + 8 (FPC+pad) + 512 (VRs v0-v31) = 728 = 0x2D8.
|
|
constexpr u32 | arch::s390x::cpu::irq::IRQ_FRAME_VRS = 0xD8U |
| | Offset of the vector register save area (v0-v15) within the frame.
|
|
constexpr u64 | arch::s390x::cpu::irq::IRQ_RESTORE_MASK_LC = 0x0200UL |
|
u32 | pad {} |
| | Pad to 8-byte boundary.
|
|
u64 | psw_addr {} |
| | Old PSW instruction address (hardware-saved, copied here).
|
|
u64 | psw_mask {} |
| | Old PSW mask word (hardware-saved in lowcore, copied here).
|
|
u64 | vector_regs_hi [16][2] {} |
| | Vector registers v16-v31 (upper half).
|
|
u64 | vector_regs_lo [16][2] {} |
| | Vector registers v0-v15 (lower half).
|