摘要
建立計時器。
宣告
#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
記憶體不足而導致失敗。使用者空間沒有適當的方式來處理這個 (不太可能發生的) 錯誤。日後的版本將不會再發生這個錯誤。