摘要
对对象发送信号。
声明
#include <zircon/syscalls.h>
zx_status_t zx_object_signal(zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask);
说明
zx_object_signal() 会断言和取消断言对象上可从用户空间访问的信号位。
此调用对对象信号位的影响在调用完成之前一定会显现出来。
32 个信号中的大多数信号都预留给系统使用,并分配给每个对象函数(例如 ZX_CHANNEL_READABLE 或 ZX_TASK_TERMINATED)。有 8 个信号位可供用户空间进程视需要使用:ZX_USER_SIGNAL_0 到 ZX_USER_SIGNAL_7。
Event 对象还允许控制 ZX_EVENT_SIGNALED 位。
Eventpair 对象还允许控制 ZX_EVENTPAIR_SIGNALED 位。
Counter 对象还允许控制 ZX_COUNTER_SIGNALED 位。
首先使用 clear_mask 清除指示的所有位,然后使用 set_mask 设置指示的所有位。
权限
handle 必须包含 ZX_RIGHT_SIGNAL。
返回值
zx_object_signal() 会在成功时返回 ZX_OK。如果失败,则返回负错误值。
错误
ZX_ERR_BAD_HANDLE handle 不是有效的句柄。
ZX_ERR_ACCESS_DENIED handle 缺少正确的 ZX_RIGHT_SIGNAL。
ZX_ERR_INVALID_ARGS clear_mask 或 set_mask 包含不允许使用的位。