pub trait ApicControl {
    fn bsp(&self) -> bool;
    fn id(&self) -> u32;
    fn logical_id(&self) -> u32;
    fn version(&self) -> u32;
    fn eoi(&mut self);
    fn tsc_enable(&mut self, vector: u8);
    fn tsc_set(&self, value: u64);
    unsafe fn ipi_init(&mut self, core: ApicId);
    unsafe fn ipi_init_deassert(&mut self);
    unsafe fn ipi_startup(&mut self, core: ApicId, start_page: u8);
    unsafe fn send_ipi(&mut self, icr: Icr);
}
Expand description

Abstracts common interface of local APIC (x2APIC, xAPIC) hardware devices.

Required Methods

Is a bootstrap processor?

Return APIC ID.

Returns the logical APIC ID.

Read APIC version

End Of Interrupt – Acknowledge interrupt delivery.

Enable TSC deadline timer.

Set TSC deadline value.

Send a INIT IPI to a core.

Safety

Should only be used to reset or boot a new core.

Deassert INIT IPI.

Safety

Should only be used to reset or boot a new core.

Send a STARTUP IPI to a core.

Safety

Should only be used to reset or boot a new core.

Send a generic IPI.

Safety

Interrupts one or multiple cores.

Implementors

Abstracts common interface of APIC (x2APIC, xAPIC) hardware devices.