Files
RedBear-OS/src/arch/x86_shared/interrupt/ipi.rs
T
2024-07-15 17:48:45 +02:00

26 lines
475 B
Rust

use crate::percpu::PercpuBlock;
use crate::{context, device::local_apic::LOCAL_APIC};
interrupt!(wakeup, || {
LOCAL_APIC.eoi();
});
interrupt!(tlb, || {
PercpuBlock::current().maybe_handle_tlb_shootdown();
LOCAL_APIC.eoi();
});
interrupt!(switch, || {
LOCAL_APIC.eoi();
let _ = context::switch();
});
interrupt!(pit, || {
LOCAL_APIC.eoi();
// Switch after a sufficient amount of time since the last switch.
context::switch::tick();
});