18 auto handle(cpu::irq::irq_frame* frame)
noexcept ->
void {
19 const auto* lc = cpu::lowcore::get_current();
20 const u16 sch_no = lc->subchannel_nr;
21 const u32 io_int_parm = lc->io_int_parm;
24 s390x::io::css::io_interrupt(sch_no);
26 const u8 isc =
static_cast<u8>(io_int_parm & 0x07U);
27 const u16 io_irq =
static_cast<u16>(
28 zxfoundation::sys::irq::IRQ_BASE_IO + isc);
29 zxfoundation::sys::irq::irq_dispatch(io_irq, frame, cpu::irq::ZX_IRQ_CLASS_IO);