template <uint32_t N>

class InterruptTracker

Defined at line 57 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

|N| is the maximum number of interrupts to be tracked.

Public Methods

bool Pending ()

Returns whether there are pending interrupts.

Defined at line 60 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

void Clear (uint32_t min, uint32_t max)

Clears all vectors in the range [min, max).

Defined at line 67 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

bool TryPop (uint32_t vector)

Pops the specified vector, if it is pending.

Defined at line 73 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

bool Pop (uint32_t * vector)

Pops the highest priority interrupt.

Defined at line 85 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

zx::result<> Track (uint32_t vector)

Tracks the given interrupt.

Defined at line 95 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

template <uint32_t Vector>
void Track ()

Defined at line 105 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

zx::result<> Interrupt (uint32_t vector)

Tracks the given interrupt, and signals any waiters.

Defined at line 111 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

template <uint32_t Vector>
void Interrupt ()

Defined at line 120 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

void Cancel ()

Cancels a wait for an interrupt.

We signal `ZX_ERR_INTERNAL_INTR_RETRY`, so that if the status is propagated

to the syscall-layer, we will retry the syscall.

Defined at line 129 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h

zx::result<> Wait (zx_instant_mono_t deadline, StateInvalidator * invalidator)

Waits for an interrupt.

Defined at line 132 of file ../../zircon/kernel/hypervisor/include/hypervisor/interrupt_tracker.h