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