zx_timer_create

摘要

创建计时器。

声明

#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_MONOTONICZX_CLOCK_BOOT,具体取决于计时器应使用哪个时间轴作为其参考。请注意,启动时间轴上的计时器将在“挂起到空闲”期间过去,但不会唤醒系统。

options 值指定了合并行为,该行为会控制系统能否提前或推迟触发时间,具体取决于其他待处理的计时器。

可能的值包括:

  • ZX_TIMER_SLACK_CENTER
  • ZX_TIMER_SLACK_EARLY
  • ZX_TIMER_SLACK_LATE

在选项中传递 0 等同于 ZX_TIMER_SLACK_CENTER

如需了解详情,请参阅计时器松弛时间

返回的句柄具有 ZX_RIGHT_DUPLICATEZX_RIGHT_TRANSFERZX_RIGHT_WRITEZX_RIGHT_SIGNALZX_RIGHT_WAITZX_RIGHT_INSPECT 权限。

权限

调用方作业政策必须允许 ZX_POL_NEW_TIMER

返回值

zx_timer_create() 会在成功时返回 ZX_OK。如果失败,则返回负错误值。

错误

ZX_ERR_INVALID_ARGS out 是无效的指针或 NULL,或者 options 不是 ZX_TIMER_SLACK 值之一,或者 clock_idZX_CLOCK_MONOTONIC 以外的任何值。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有好办法处理此(不太可能)错误。在未来的 build 中,此错误将不再出现。

另请参阅