Summary
Create a timer.
Declaration
#include <zircon/syscalls.h>
zx_status_t zx_timer_create(uint32_t options,
zx_clock_t clock_id,
zx_handle_t* out);
Description
zx_timer_create()
creates a timer, an object that can signal when a specified point in time has been reached. clock_id
can be either ZX_CLOCK_MONOTONIC
or ZX_CLOCK_BOOT
, depending on which timeline the timer should use as its reference. Note that timers on the boot timeline will elapse during suspend-to-idle, but will not wake the system.
The options value specifies the coalescing behavior, which controls whether the system can fire the time earlier or later depending on other pending timers.
The possible values are:
ZX_TIMER_SLACK_CENTER
ZX_TIMER_SLACK_EARLY
ZX_TIMER_SLACK_LATE
Passing 0 in options is equivalent to ZX_TIMER_SLACK_CENTER
.
See timer slack for more information.
The returned handle has the ZX_RIGHT_DUPLICATE
, ZX_RIGHT_TRANSFER
, ZX_RIGHT_WRITE
, ZX_RIGHT_SIGNAL
, ZX_RIGHT_WAIT
, and ZX_RIGHT_INSPECT
rights.
Rights
Caller job policy must allow ZX_POL_NEW_TIMER
.
Return value
zx_timer_create()
returns ZX_OK
on success. In the event of failure, a negative error value is returned.
Errors
ZX_ERR_INVALID_ARGS
out is an invalid pointer or NULL or options is not one of the ZX_TIMER_SLACK
values or clock_id is any value other than ZX_CLOCK_MONOTONIC
.
ZX_ERR_NO_MEMORY
Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future build this error will no longer occur.