zx_interrupt_wait
名称
interrupt_wait —— 等待中断响应
概要
#include <zircon/syscalls.h>
zx_status_t zx_interrupt_wait(zx_handle_t handle, zx_time_t* out_timestamp);
描述
interrupt_wait() 是一个阻塞式系统调用,它使调用者处于等待状态直到中断被触发。 它只能用于没有通过interrupt_bind() 绑定到任何端口的中断对象。
在等待开始之前,它还将确认中断对象,就好像在它上面调用interrupt_ack() 一样。
可以使用zx_interrupt_destroy() 或关闭句柄的方式中止等待。
权限
TODO(ZX-2399)
返回值
interrupt_wait() 调用成功返回ZX_OK,如果out_timestamp不是NULL,则返回中断触发(相对于ZX_CLOCK_MONOTONIC)的时间戳。
错误码
ZX_ERR_BAD_HANDLE: handle是无效句柄。
ZX_ERR_WRONG_TYPE:handle不是中断类型对象。
ZX_ERR_BAD_STATE:中断对象已绑定到某端口。
ZX_ERR_ACCESS_DENIED:handle缺少ZX_RIGHT_WAIT权限。
ZX_ERR_CANCELED:handle在等待时关闭,或在其上调用了interrupt_destroy()。
ZX_ERR_INVALID_ARGS:out_timestamp参数是无效指针。
另见
interrupt_ack, interrupt_bind, interrupt_create, interrupt_destroy, interrupt_trigger, port_wait, handle_close.