摘要
建立計數器。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_counter_create(uint32_t options, zx_handle_t* out);
說明
zx_counter_create()
會建立一個計數器,這個物件會封裝已簽署的 64 位元整數值,這些值可以遞增、遞減、讀取或寫入。
如果值大於零,系統會判定 ZX_COUNTER_POSITIVE
信號。否則,系統會聲明 ZX_COUNTER_NON_POSITIVE
。只是這兩種信號之一,一律會宣告,且不會同時宣告。
此外,您可以使用 zx_object_signal()
,在計數器上設定或清除信號 ZX_COUNTER_SIGNALED
。這與計數器的值或其他信號的狀態無關。
新建立的帳號代碼將擁有 ZX_RIGHTS_BASIC
、ZX_RIGHTS_IO
和 ZX_RIGHT_SIGNAL
權限。這個值將會為零,且系統會在新建立的物件上宣告信號 ZX_COUNTER_NON_POSITIVE
。
權限
TODO(https://fxbug.dev/387324141):新增/執行 ZX_POL_NEW_COUNTER 政策。
呼叫端工作政策必須允許 ZX_POL_NEW_COUNTER
。
傳回值
zx_counter_create()
會在成功時傳回 ZX_OK
和有效的計數器帳號 (透過「傳出」)。
失敗時會傳回錯誤值。
錯誤
ZX_ERR_INVALID_ARGS
「out」是無效的指標,或「options」為非零的值。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。使用者空間無法妥善處理這種 (異常) 錯誤。在日後的建構作業中,系統不會再發生這個錯誤。