zx_interrupt_ack
名称
interrupt_ack —— 确认应答并重新启动中断。
概要
#include <zircon/syscalls.h>
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_HANDLE: handle是无效句柄。
ZX_ERR_WRONG_TYPE:handle不是中断类型对象。
ZX_ERR_BAD_STATE:handle未绑定到端口。
ZX_ERR_CANCELED:之前在handle上调用了zx_interrupt_destroy()。
ZX_ERR_ACCESS_DENIED:handle缺少ZX_RIGHT_WRITE权限。
另见
interrupt_bind, interrupt_create, interrupt_destroy, interrupt_trigger, interrupt_wait, port_wait, handle_close.