总结
确认中断并重新配置。
声明
#include <zircon/syscalls.h>
zx_status_t zx_interrupt_ack(zx_handle_t handle);
说明
zx_interrupt_ack()
会确认中断对象,使其能够再次触发(并将数据包传送到其绑定的端口)。
如果中断对象是物理中断,如果是级别中断且仍处于断言状态,或者是自上次触发以来已被断言的边缘中断,则中断将立即触发,并将数据包传送到其绑定的端口。
虚拟中断表现为边缘中断。
该系统调用仅适用于绑定到端口的中断。使用 zx_interrupt_wait()
等待的中断无需通过此调用重新启用 - 它在调用 zx_interrupt_wait()
时自动发生。
权限
handle 必须为 ZX_OBJ_TYPE_INTERRUPT
类型,且具有 ZX_RIGHT_WRITE
。
返回值
zx_interrupt_ack()
会在成功时返回 ZX_OK
。如果失败,则返回负的错误值。
错误
ZX_ERR_BAD_HANDLE
句柄是无效的句柄。
ZX_ERR_WRONG_TYPE
句柄不是中断对象。
ZX_ERR_BAD_STATE
句柄未绑定到端口。
对 handle 调用了 ZX_ERR_CANCELED
zx_interrupt_destroy()
。
ZX_ERR_ACCESS_DENIED
句柄缺少 ZX_RIGHT_WRITE
。
另请参阅
zx_handle_close()
zx_interrupt_bind()
zx_interrupt_create()
zx_interrupt_destroy()
zx_interrupt_trigger()
zx_interrupt_wait()
zx_port_wait()