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 和有效的计数器句柄(通过 out)。

如果失败,则会返回错误值。

错误

ZX_ERR_INVALID_ARGS out 是无效指针,或 options 为非零。

ZX_ERR_NO_MEMORY 因内存不足而失败。用户空间没有好办法处理此(不太可能)错误。在未来的 build 中,此错误不会再发生。

另请参阅