class PvEoi
Defined at line 86 of file ../../zircon/kernel/arch/x86/include/arch/x86/pv.h
PvEoi provides optimized end-of-interrupt signaling for para-virtualized environments.
The initialization sequence of PvEoi instances is tricky. All PvEoi instances should be
initialized by the boot CPU prior to brining the secondary CPUs online (see |InitAll|).
Public Methods
void ~PvEoi ()
Defined at line 187 of file ../../zircon/kernel/arch/x86/pv.cc
void InitAll ()
Initialize all PvEoi instances.
Must be called from a context in which blocking is allowed.
Defined at line 139 of file ../../zircon/kernel/arch/x86/pv.cc
void Init ()
Initialize this PvEoi instances.
Must be called from a context in which blocking is allowed.
Defined at line 145 of file ../../zircon/kernel/arch/x86/pv.cc
PvEoi * get ()
Get the current CPU's PvEoi instance.
Defined at line 155 of file ../../zircon/kernel/arch/x86/pv.cc
void Enable (MsrAccess * msr)
Enable PV_EOI for the current CPU. After it is enabled, callers may use Eoi() rather than
access a local APIC register if desired.
Once enabled this PvEoi object must be disabled prior to destruction.
It is an error to enable a PvEoi object more than once over its lifetime.
Defined at line 157 of file ../../zircon/kernel/arch/x86/pv.cc
void Disable (MsrAccess * msr)
Disable PV_EOI for the current CPU.
Defined at line 168 of file ../../zircon/kernel/arch/x86/pv.cc
bool Eoi ()
Attempt to acknowledge and signal an end-of-interrupt (EOI) for the current CPU via a
paravirtual interface. If a fast acknowledge was not available, the function returns
false and the caller must signal an EOI via the legacy mechanism.
Defined at line 178 of file ../../zircon/kernel/arch/x86/pv.cc