kern: save/restore spendsgir in KInterruptController::Save/RestoreCoreLocal

This commit is contained in:
Michael Scire 2025-05-28 10:54:52 -07:00
parent 3fbc59cce1
commit 801438953d
2 changed files with 13 additions and 0 deletions

View file

@ -113,6 +113,12 @@ namespace ams::kern::arch::arm {
constexpr size_t Offset = 0;
state->icfgr[i] = m_gicd->icfgr[i + Offset];
}
/* Save spendsgir. */
static_assert(util::size(state->spendsgir) == util::size(m_gicd->spendsgir));
for (size_t i = 0; i < util::size(state->spendsgir); ++i) {
state->spendsgir[i] = m_gicd->spendsgir[i];
}
}
void KInterruptController::SaveGlobal(GlobalState *state) const {
@ -168,6 +174,12 @@ namespace ams::kern::arch::arm {
m_gicd->icenabler[i + Offset] = 0xFFFFFFFF;
m_gicd->isenabler[i + Offset] = state->isenabler[i];
}
/* Restore spendsgir. */
static_assert(util::size(state->spendsgir) == util::size(m_gicd->spendsgir));
for (size_t i = 0; i < util::size(state->spendsgir); ++i) {
m_gicd->spendsgir[i] = state->spendsgir[i];
}
}
void KInterruptController::RestoreGlobal(const GlobalState *state) const {