zx_interrupt_ack


英文原文快照


名称

interrupt_ack —— 确认应答并重新启动中断。

概要

  1. #include <zircon/syscalls.h>
  2. zx_status_t zx_interrupt_ack(zx_handle_t handle);

描述

interrupt_ack() 确认应答中断对象,并使该对象可以再次被触发(并将数据包传送到它所绑定的端口)。

如果中断对象是物理中断,其它是一个电平中断但仍然有效,或者它是自上次触发后已经置位的边缘中断,则中断将立即触发,并将数据包发送到它所绑定的端口。

虚拟中断的表现和边缘中断一样。

此系统调用仅对绑定到端口的中断进行操作有效。 使用interrupt_wait() 等待的中断不需要通过此调用重新设置——当调用interrupt_wait() 时它会自动发生(译者注:即确认应答并重新启动)。

权限

TODO(ZX-2399)

返回值

interrupt_ack()调用成功返回ZX_OK,如果调用失败,则返回负的错误码。

错误码

ZX_ERR_BAD_HANDLEhandle是无效句柄。

ZX_ERR_WRONG_TYPEhandle不是中断类型对象。

ZX_ERR_BAD_STATEhandle未绑定到端口。

ZX_ERR_CANCELED:之前在handle上调用了zx_interrupt_destroy()

ZX_ERR_ACCESS_DENIEDhandle缺少ZX_RIGHT_WRITE权限。

另见

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