摘要
向计数器添加值。
声明
#include <zircon/syscalls.h>
zx_status_t zx_counter_add(zx_handle_t handle, int64_t value);
说明
zx_counter_add() 会将 value 添加到 handle 引用的计数器。
在相加结果之后,如果计数器的值为:
小于或等于 0 -
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。
失败时,系统会返回错误值。
错误
如果 handle 不是计数器句柄,则为 ZX_ERR_WRONG_TYPE。
如果 handle 没有 ZX_RIGHT_WRITE,则会引发 ZX_ERR_ACCESS_DENIED。
如果相加的结果会溢出或下溢,则返回 ZX_ERR_OUT_OF_RANGE。