中断次数

摘要

确认中断并重新启用中断。

声明

#include <zircon/syscalls.h>

zx_status_t zx_interrupt_ack(zx_handle_t handle);

说明

zx_interrupt_ack() 会确认之前触发的端口绑定中断对象,使其重置为未触发状态,并有资格再次触发,同时向其绑定的端口传送数据包。

如果中断对象是仍处于断言状态的物理级触发中断,或者是自上次触发以来一直处于断言状态的边沿或虚拟中断,则中断会立即再次触发,并向其绑定的端口传送数据包。

此系统调用仅适用于绑定到端口的中断。 使用 zx_interrupt_wait()等待的中断无法通过此调用重新启用,而是在之前的zx_interrupt_wait()操作 满足条件后再次调用 zx_interrupt_wait()时自动重新启用。如需详细了解在使用 端口绑定中断对象时如何正确等待和确认中断事件,请参阅(此处)Interrupts#asynchronous-waiting-and-acknowledgement

权限

handle 的类型必须为 ZX_OBJ_TYPE_INTERRUPT,并且具有 ZX_RIGHT_WRITE

返回值

如果成功,zx_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

另请参阅