ke: add generic IPI mechanism

This commit is contained in:
Loïc Grégoire
2026-08-03 20:00:45 -04:00
parent 312902931f
commit 4aaae63349
9 changed files with 193 additions and 54 deletions
-8
View File
@@ -113,14 +113,6 @@ pub inline fn restore_interrupts(state: bool) void {
}
}
pub inline fn send_resched_ipi(target: u32) void {
pl.impl.send_resched_ipi(target);
}
pub inline fn send_tlb_ipi(target: u32) void {
pl.impl.send_tlb_ipi(target);
}
pub inline fn flush_full_tlb() void {
const prev_cr3 = amd64.read_cr(3);
// Reload CR3 to flush the entire TLB.
+3 -2
View File
@@ -85,8 +85,9 @@ export fn isr_handler_main(frame: *const amd64.IrqFrame) callconv(.{ .x86_64_sys
ki.timer.clock();
}
if (frame.intno == 241) {
ki.shootdown.ipi_handler();
// Platform IPI number.
if (frame.intno == 240) {
ki.ipi.ipi_handler();
}
if (frame.intno >= 32) {