ZXFoundation™ 26h2
Loading...
Searching...
No Matches
core.cxxm
1/// SPDX-License-Identifier: Apache-2.0
2/// @file arch/s390x/trap/ext.cxxm
3/// @brief Centralized external-interruption dispatcher.
4
5export module arch.s390x.trap.ext.core;
6import arch.s390x.cpu.irq;
7import zxfoundation.base.types;
8import lib.bitfield;
9
10export {
11
12namespace arch::s390x::trap::ext {
13
14 using ext_parameter = lib::record<u32, lib::msb0_t,
15 lib::rw<"timing_status_change", lib::bits<14, 14>>,
16 lib::rw<"link_availability_change", lib::bits<15, 15>>,
17 lib::rw<"time_control_parameter_change", lib::bits<16, 16>>
18 >;
19
20 using ext_parameter_view = lib::record_ref<u32, lib::msb0_t,
21 lib::rw<"timing_status_change", lib::bits<14, 14>>,
22 lib::rw<"link_availability_change", lib::bits<15, 15>>,
23 lib::rw<"time_control_parameter_change", lib::bits<16, 16>>
24 >;
25
26 /// @brief Centralized external-interruption dispatcher.
27 /// @param[in,out] frame Saved interrupt frame from entry.S.
28 auto handle(cpu::irq::irq_frame* frame) noexcept -> void;
29
30} // namespace arch::s390x::trap::ext
31
32} // end export