class InterruptDispatcher
Defined at line 31 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
Note that unlike most Dispatcher subclasses, this one is further
subclassed, and so cannot be final.
Public Methods
zx_status_t WaitForInterrupt (zx_time_t * out_timestamp)
Defined at line 33 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_info_interrupt_t GetInfo ()
Returns information about this interrupt in a zx_object_get_info call.
Defined at line 31 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
InterruptDispatcher & operator= (const InterruptDispatcher & )
Defined at line 34 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
zx_obj_type_t get_type ()
Defined at line 35 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
bool is_wake_vector ()
Defined at line 37 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
void GetDiagnostics (WakeVector::Diagnostics & diagnostics_out)
Default wake vector diagnostics for interrupt dispatchers.
Defined at line 51 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
zx_status_t Trigger (zx_time_t timestamp)
Defined at line 145 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_status_t Ack ()
Defined at line 342 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_status_t Destroy ()
Defined at line 255 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
void InterruptHandler ()
Defined at line 204 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_status_t Bind (fbl::RefPtr<PortDispatcher> port_dispatcher, uint64_t key)
Defined at line 288 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_status_t Unbind (fbl::RefPtr<PortDispatcher> port_dispatcher)
Defined at line 319 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
void on_zero_handles ()
Defined at line 406 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
Protected Methods
void MaskInterrupt ()
void UnmaskInterrupt ()
void DeactivateInterrupt ()
void UnregisterInterruptHandler ()
void InterruptDispatcher (Flags flags, uint32_t options)
Defined at line 20 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
void InterruptDispatcher (Flags flags)
It is an error to specify both INTERRUPT_UNMASK_PREWAIT and INTERRUPT_UNMASK_PREWAIT_UNLOCKED.
Defined at line 94 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
void Signal ()
Defined at line 96 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
void InitializeWakeEvent ()
Allow subclasses to add/remove the wake event instance from the global diagnostics list at the
appropriate times during initialization and teardown. These methods do not need to be called
unless the subclass needs to be able to wake the system from suspend. See lib/wake-vector.h for
the specific requirements regarding when to initialize and destroy the wake event.
Defined at line 104 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
void DestroyWakeEvent ()
Defined at line 105 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
bool SendPacketLocked (zx_time_t timestamp)
Defined at line 136 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx::result<InterruptDispatcher::PostAckState> AckInternal ()
Defined at line 347 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
ktl::optional<zx_status_t> BeginWaitForInterrupt (zx_time_t * out_timestamp)
The zx_interrupt_wait operation is broken down into two phases. First, we
BeginWaitForInterrupt, which will handle internal bookkeeping and either return a status code
if the wait operation is finished (success or failure), or it will return nothing if we need to
block and try again later.
Afterwards, if we need to block, we will call DoWaitForInterruptBlock and try again if the
block operation succeeds.
Defined at line 47 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
zx_status_t DoWaitForInterruptBlock ()
Defined at line 121 of file ../../zircon/kernel/object/interrupt_dispatcher.cc
Enumerations
enum Flags
| Name | Value |
|---|---|
| INTERRUPT_VIRTUAL | (1u << 0) |
| INTERRUPT_UNMASK_PREWAIT | (1u << 1) |
| INTERRUPT_UNMASK_PREWAIT_UNLOCKED | (1u << 2) |
| INTERRUPT_MASK_POSTWAIT | (1u << 4) |
| INTERRUPT_WAKE_VECTOR | (1u << 5) |
| INTERRUPT_ALLOW_ACK_WITHOUT_PORT_FOR_TEST | (1u << 6) |
| INTERRUPT_TIMESTAMP_MONO | (1u << 7) |
Defined at line 65 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h
enum PostAckState
| Name | Value |
|---|---|
| FullyAcked | 0 |
| Retriggered | 1 |
Defined at line 88 of file ../../zircon/kernel/object/include/object/interrupt_dispatcher.h