ZXFoundation™ 26h2
Loading...
Searching...
No Matches
arch.s390x.trap.mcck Module Reference

Functions

auto arch::s390x::trap::mcck::detail::dump_mcesa (const arch::s390x::cpu::lowcore::zx_lowcore &lc) noexcept -> void
 Structured MCESA diagnosis dump.
auto arch::s390x::trap::mcck::handle (cpu::irq::irq_frame *frame) noexcept -> void
 Centralized machine-check dispatcher.
auto arch::s390x::trap::mcck::detail::ipd_window_expired (arch::s390x::cpu::percpu::percpu_data &pcp, u64 now) noexcept -> bool
auto arch::s390x::trap::mcck::detail::nmi_registers_valid (u64 mcic) noexcept -> bool
 Validate register-state validity per Linux's nmi_registers_valid() and PoP §11-15.

Variables

constexpr u64 arch::s390x::trap::mcck::MCIC_SD = 1ULL << 63
 Machine-Check Interruption Code bits per PoP §11-14, Figure 11-5. Bit N in PoP notation = mask 1ULL<<(63-N). Bits not listed here are unassigned per the 13th-edition PoP.
constexpr u64 arch::s390x::trap::mcck::MCIC_PD = 1ULL << 62
constexpr u64 arch::s390x::trap::mcck::MCIC_SR = 1ULL << 61
constexpr u64 arch::s390x::trap::mcck::MCIC_CD = 1ULL << 59
constexpr u64 arch::s390x::trap::mcck::MCIC_ED = 1ULL << 58
constexpr u64 arch::s390x::trap::mcck::MCIC_BACKLOG = 1ULL << 57
constexpr u64 arch::s390x::trap::mcck::MCIC_DG = 1ULL << 56
constexpr u64 arch::s390x::trap::mcck::MCIC_W = 1ULL << 55
constexpr u64 arch::s390x::trap::mcck::MCIC_CP = 1ULL << 54
constexpr u64 arch::s390x::trap::mcck::MCIC_SP = 1ULL << 53
constexpr u64 arch::s390x::trap::mcck::MCIC_CK = 1ULL << 52
constexpr u64 arch::s390x::trap::mcck::MCIC_B = 1ULL << 49
constexpr u64 arch::s390x::trap::mcck::MCIC_SE = 1ULL << 47
constexpr u64 arch::s390x::trap::mcck::MCIC_SC = 1ULL << 46
constexpr u64 arch::s390x::trap::mcck::MCIC_KE = 1ULL << 45
constexpr u64 arch::s390x::trap::mcck::MCIC_DS = 1ULL << 44
constexpr u64 arch::s390x::trap::mcck::MCIC_WP = 1ULL << 43
constexpr u64 arch::s390x::trap::mcck::MCIC_MS = 1ULL << 42
constexpr u64 arch::s390x::trap::mcck::MCIC_PM = 1ULL << 41
constexpr u64 arch::s390x::trap::mcck::MCIC_IA = 1ULL << 40
constexpr u64 arch::s390x::trap::mcck::MCIC_FA = 1ULL << 39
constexpr u64 arch::s390x::trap::mcck::MCIC_VR = 1ULL << 38
constexpr u64 arch::s390x::trap::mcck::MCIC_EC = 1ULL << 37
constexpr u64 arch::s390x::trap::mcck::MCIC_FP = 1ULL << 36
constexpr u64 arch::s390x::trap::mcck::MCIC_GR = 1ULL << 35
constexpr u64 arch::s390x::trap::mcck::MCIC_CR = 1ULL << 34
constexpr u64 arch::s390x::trap::mcck::MCIC_ST = 1ULL << 32
constexpr u64 arch::s390x::trap::mcck::MCIC_IE = 1ULL << 31
constexpr u64 arch::s390x::trap::mcck::MCIC_AR = 1ULL << 30
constexpr u64 arch::s390x::trap::mcck::MCIC_DA = 1ULL << 29
constexpr u64 arch::s390x::trap::mcck::MCIC_GS = 1ULL << 27
constexpr u64 arch::s390x::trap::mcck::MCIC_PR = 1ULL << 21
constexpr u64 arch::s390x::trap::mcck::MCIC_FC = 1ULL << 20
constexpr u64 arch::s390x::trap::mcck::MCIC_AP = 1ULL << 19
constexpr u64 arch::s390x::trap::mcck::MCIC_CT = 1ULL << 17
constexpr u64 arch::s390x::trap::mcck::MCIC_CC = 1ULL << 16
constexpr u32 arch::s390x::trap::mcck::MAX_IPD_COUNT = 29
 IPD damage-window constants (mirror Linux nmi.c MAX_IPD_COUNT / MAX_IPD_TIME). The window is 5 minutes in TOD-clock units (1 µs = 4096 ticks -> 5*60*4096*1e6 ticks).
constexpr u64 arch::s390x::trap::mcck::MAX_IPD_WINDOW_TOD = 5ULL * 60ULL * 4'096'000'000ULL
constexpr u64 arch::s390x::trap::mcck::MCIC_SD = 1ULL << 63
 Machine-Check Interruption Code bits per PoP §11-14, Figure 11-5. Bit N in PoP notation = mask 1ULL<<(63-N). Bits not listed here are unassigned per the 13th-edition PoP.
constexpr u64 arch::s390x::trap::mcck::MCIC_PD = 1ULL << 62
constexpr u64 arch::s390x::trap::mcck::MCIC_SR = 1ULL << 61
constexpr u64 arch::s390x::trap::mcck::MCIC_CD = 1ULL << 59
constexpr u64 arch::s390x::trap::mcck::MCIC_ED = 1ULL << 58
constexpr u64 arch::s390x::trap::mcck::MCIC_BACKLOG = 1ULL << 57
constexpr u64 arch::s390x::trap::mcck::MCIC_DG = 1ULL << 56
constexpr u64 arch::s390x::trap::mcck::MCIC_W = 1ULL << 55
constexpr u64 arch::s390x::trap::mcck::MCIC_CP = 1ULL << 54
constexpr u64 arch::s390x::trap::mcck::MCIC_SP = 1ULL << 53
constexpr u64 arch::s390x::trap::mcck::MCIC_CK = 1ULL << 52
constexpr u64 arch::s390x::trap::mcck::MCIC_B = 1ULL << 49
constexpr u64 arch::s390x::trap::mcck::MCIC_SE = 1ULL << 47
constexpr u64 arch::s390x::trap::mcck::MCIC_SC = 1ULL << 46
constexpr u64 arch::s390x::trap::mcck::MCIC_KE = 1ULL << 45
constexpr u64 arch::s390x::trap::mcck::MCIC_DS = 1ULL << 44
constexpr u64 arch::s390x::trap::mcck::MCIC_WP = 1ULL << 43
constexpr u64 arch::s390x::trap::mcck::MCIC_MS = 1ULL << 42
constexpr u64 arch::s390x::trap::mcck::MCIC_PM = 1ULL << 41
constexpr u64 arch::s390x::trap::mcck::MCIC_IA = 1ULL << 40
constexpr u64 arch::s390x::trap::mcck::MCIC_FA = 1ULL << 39
constexpr u64 arch::s390x::trap::mcck::MCIC_VR = 1ULL << 38
constexpr u64 arch::s390x::trap::mcck::MCIC_EC = 1ULL << 37
constexpr u64 arch::s390x::trap::mcck::MCIC_FP = 1ULL << 36
constexpr u64 arch::s390x::trap::mcck::MCIC_GR = 1ULL << 35
constexpr u64 arch::s390x::trap::mcck::MCIC_CR = 1ULL << 34
constexpr u64 arch::s390x::trap::mcck::MCIC_ST = 1ULL << 32
constexpr u64 arch::s390x::trap::mcck::MCIC_IE = 1ULL << 31
constexpr u64 arch::s390x::trap::mcck::MCIC_AR = 1ULL << 30
constexpr u64 arch::s390x::trap::mcck::MCIC_DA = 1ULL << 29
constexpr u64 arch::s390x::trap::mcck::MCIC_GS = 1ULL << 27
constexpr u64 arch::s390x::trap::mcck::MCIC_PR = 1ULL << 21
constexpr u64 arch::s390x::trap::mcck::MCIC_FC = 1ULL << 20
constexpr u64 arch::s390x::trap::mcck::MCIC_AP = 1ULL << 19
constexpr u64 arch::s390x::trap::mcck::MCIC_CT = 1ULL << 17
constexpr u64 arch::s390x::trap::mcck::MCIC_CC = 1ULL << 16
constexpr u32 arch::s390x::trap::mcck::MAX_IPD_COUNT = 29
 IPD damage-window constants (mirror Linux nmi.c MAX_IPD_COUNT / MAX_IPD_TIME). The window is 5 minutes in TOD-clock units (1 µs = 4096 ticks -> 5*60*4096*1e6 ticks).
constexpr u64 arch::s390x::trap::mcck::MAX_IPD_WINDOW_TOD = 5ULL * 60ULL * 4'096'000'000ULL

Files

file  arch/s390x/trap/mcck.cxxm
 Centralized Machine-Check (MCCK) dispatcher.