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