core: Simplified interrupt event check logic in MainInterruptHandler

This commit is contained in:
EnderIce2 2024-10-19 01:29:27 +03:00
parent 5054243bc6
commit 6657a90739
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -306,23 +306,23 @@ namespace Interrupts
#if defined(a86)
iEvNum += CPU::x86::IRQ0;
#endif
if (iEvNum == s_cst(int, Frame->InterruptNumber))
if (iEvNum != s_cst(int, Frame->InterruptNumber))
continue;
if (ev.IsHandler)
{
if (ev.IsHandler)
{
Handler *hnd = (Handler *)ev.Data;
hnd->OnInterruptReceived(Frame);
}
else
{
if (ev.Context != nullptr)
ev.Callback((CPU::TrapFrame *)ev.Context);
else
ev.Callback(Frame);
}
ev.Priority++;
InterruptHandled = true;
Handler *hnd = (Handler *)ev.Data;
hnd->OnInterruptReceived(Frame);
}
else
{
if (ev.Context != nullptr)
ev.Callback((CPU::TrapFrame *)ev.Context);
else
ev.Callback(Frame);
}
ev.Priority++;
InterruptHandled = true;
}
CPUData *CoreData = GetCurrentCPU();