zx_counter_create

摘要

建立計數器。

宣告

#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_BASICZX_RIGHTS_IOZX_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 因記憶體不足而失敗。使用者空間無法妥善處理這種 (異常) 錯誤。在日後的建構作業中,系統不會再發生這個錯誤。

另請參閱