摘要
為計數器新增值。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_counter_add(zx_handle_t handle, int64_t value);
說明
zx_counter_add() 會將 value 加到 handle 參照的計數器。
在加法結果後,如果計數器的值為:
- 小於或等於零:系統會斷言 - ZX_COUNTER_NON_POSITIVE,並取消斷言- ZX_COUNTER_POSITIVE。
- 大於零 - 系統會斷言 - ZX_COUNTER_POSITIVE,並取消斷言- ZX_COUNTER_NON_POSITIVE。
權限
handle 必須同時包含 ZX_RIGHT_READ 和 ZX_RIGHT_WRITE。由於計數器的值可透過一系列精心設計的 zx_counter_add() 呼叫檢查 ZX_ERR_OUT_OF_RANGE 來判斷,因此無法建立無法讀取但可新增的計數器。
傳回值
zx_counter_add() 會在成功時傳回 ZX_OK。
失敗時,系統會傳回錯誤值。
錯誤
ZX_ERR_WRONG_TYPE 如果 handle 不是計數器 handle。
如果 handle 沒有 ZX_RIGHT_WRITE,則為 ZX_ERR_ACCESS_DENIED。
如果加法結果會溢位或欠流,就會傳回 ZX_ERR_OUT_OF_RANGE。