zx_break_ack

摘要

確認中斷並重新啟動。

宣告

#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」(中斷#非同步等待和確認)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 控制碼未繫結至通訊埠。

ZX_ERR_CANCELED zx_interrupt_destroy()handle 上遭到呼叫。

ZX_ERR_ACCESS_DENIED 帳號代碼缺少 ZX_RIGHT_WRITE

另請參閱