摘要
创建计时器。
声明
#include <zircon/syscalls.h>
zx_status_t zx_timer_create(uint32_t options,
zx_clock_t clock_id,
zx_handle_t* out);
说明
zx_timer_create()
可创建一个计时器,该对象可在到达指定的时间点时发出信号。clock_id
可以是 ZX_CLOCK_MONOTONIC
或 ZX_CLOCK_BOOT
,具体取决于计时器应使用哪个时间轴作为其参考。请注意,启动时间轴上的计时器将在“挂起到空闲”期间过去,但不会唤醒系统。
options 值指定了合并行为,该行为会控制系统能否提前或推迟触发时间,具体取决于其他待处理的计时器。
可能的值包括:
ZX_TIMER_SLACK_CENTER
ZX_TIMER_SLACK_EARLY
ZX_TIMER_SLACK_LATE
在选项中传递 0 等同于 ZX_TIMER_SLACK_CENTER
。
如需了解详情,请参阅计时器松弛时间。
返回的句柄具有 ZX_RIGHT_DUPLICATE
、ZX_RIGHT_TRANSFER
、ZX_RIGHT_WRITE
、ZX_RIGHT_SIGNAL
、ZX_RIGHT_WAIT
和 ZX_RIGHT_INSPECT
权限。
权限
调用方作业政策必须允许 ZX_POL_NEW_TIMER
。
返回值
zx_timer_create()
会在成功时返回 ZX_OK
。如果失败,则返回负错误值。
错误
ZX_ERR_INVALID_ARGS
out 是无效的指针或 NULL,或者 options 不是 ZX_TIMER_SLACK
值之一,或者 clock_id 是 ZX_CLOCK_MONOTONIC
以外的任何值。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理此(不太可能)错误。在未来的 build 中,此错误将不再出现。