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