class WakeEvent
Defined at line 138 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
Forward declaration.
Public Methods
void Initialize ()
Defined at line 27 of file ../../zircon/kernel/lib/wake-vector/wake-vector.cc
void Destroy ()
Defined at line 56 of file ../../zircon/kernel/lib/wake-vector/wake-vector.cc
bool has_pending_wake_events ()
Defined at line 144 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
void WakeEvent (const WakeVector & wake_vector)
Construct a WakeEvent referencing the given wake_vector.
Defined at line 150 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
void ~WakeEvent ()
Defined at line 152 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
void Dump (FILE * f, zx_instant_boot_t log_triggered_after_boot_time)
Walk the global list of all instances and dump diagnostic information to |f|. All events that
are currently pending OR that were triggered after the optional time value are logged.
Safe to call concurrently with any and all methods, including ctors and dtors.
Defined at line 163 of file ../../zircon/kernel/lib/wake-vector/wake-vector.cc
WakeResult Trigger (zx_instant_boot_t trigger_time)
Triggers a wakeup that resumes the system, or aborts an incomplete suspend sequence, and
prevents the system from starting a new suspend sequence.
Must be called with interrupts and preempt disabled.
Returns:
- WakeResult::Active if this wake trigger occurred when the system was active.
- WakeResult::Resumed if this or another wake trigger resumed the system.
- WakeResult::SuspendAborted if this wake trigger occurred before suspend completed.
- WakeResult::BadState if this wake event is already pending.
Calls to |Trigger| and |Acknowledge| must be synchronized by the caller to guarantee that
updates are performed by a single actor at a time.
Defined at line 176 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
void Acknowledge (AckBehavior ack_behavior)
Acknowledges a pending wake event, allowing the system to enter suspend when all other
suspend conditions are met.
Calls to |Trigger| and |Acknowledge| must be synchronized by the caller to guarantee that
updates are performed by a single actor at a time.
Defined at line 188 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
zx_status_t GenerateWakeEventReport (zx_instant_boot_t suspend_start_time, user_out_ptr<zx_wake_source_report_header_t> out_header, user_out_ptr<zx_wake_source_report_entry_t> out_entries, uint32_t num_entries, user_out_ptr<uint32_t> actual_entries)
Defined at line 195 of file ../../zircon/kernel/lib/wake-vector/wake-vector.cc
WakeResult Strobe (zx_instant_boot_t trigger_time)
WARNING : This is not the method you are looking for
<jedimindtrick
/>
Strobe is an operation used only in a very specific situation; when a suspend operation times
out and the ResumeTimerWakeVector becomes signaled as a result. This object is (currently) the
only non-interrupt wake source/vector defined in the system, and it is not directly exposed to
user-mode as a object which becomes acknowledged by user-mode actions. Instead, it is the
synthetic wake source used to report suspend-operation timeouts, and is (logically speaking)
_always_ immediately acked after being signaled.
Strobe handles this operation, without needing to expose any locks to make it possible to
atomically Trigger/Acknowledge the object. For all other wake source objects in the system,
explicit calls to Trigger and Acknowledge are what should be used.
Defined at line 206 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h
void DiscardWakeEventReport ()
Defined at line 334 of file ../../zircon/kernel/lib/wake-vector/wake-vector.cc
Enumerations
enum AckBehavior
| Name | Value |
|---|---|
| ClearSignaled | 0 |
| RemainSignaled | 1 |
Defined at line 142 of file ../../zircon/kernel/lib/wake-vector/include/lib/wake-vector.h