zx_interrupt_wait


英文原文快照


名称

interrupt_wait —— 等待中断响应

概要

  1. #include <zircon/syscalls.h>
  2. 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_HANDLEhandle是无效句柄。

ZX_ERR_WRONG_TYPEhandle不是中断类型对象。

ZX_ERR_BAD_STATE:中断对象已绑定到某端口。

ZX_ERR_ACCESS_DENIEDhandle缺少ZX_RIGHT_WAIT权限。

ZX_ERR_CANCELEDhandle在等待时关闭,或在其上调用了interrupt_destroy()

ZX_ERR_INVALID_ARGSout_timestamp参数是无效指针。

另见

interrupt_ack, interrupt_bind, interrupt_create, interrupt_destroy, interrupt_trigger, port_wait, handle_close.