zx_break_trigger

摘要

觸發虛擬中斷物件。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_interrupt_trigger(zx_handle_t handle,
                                 uint32_t options,
                                 zx_time_t timestamp);

說明

zx_interrupt_trigger() 用於觸發虛擬中斷物件,導致中斷訊息封包抵達繫結的通訊埠 (如果繫結至通訊埠),或 zx_interrupt_wait() 在等待此中斷時傳回。

options 必須為零。

timestamp 預設會解讀為 ZX_CLOCK_BOOT 的時間戳記。不過,如果中斷是使用 ZX_INTERRUPT_TIMESTAMP_MONO 選項建立,這個時間戳記就會解讀為 ZX_CLOCK_MONOTONIC 的時間戳記。

只有在基礎物件是使用 ZX_INTERRUPT_VIRTUAL 選項明確建立的虛擬中斷時,zx_interrupt_trigger() 才有效,且不得用於強制觸發實體中斷。

虛擬中斷也支援 Zircon 信號 ZX_VIRTUAL_INTERRUPT_UNTRIGGERED,可搭配標準 Zircon 信號等待機制 (not zx_interrupt_wait()) 使用,通知觸發驅動程式庫程式中斷消費者已處理並確認中斷觸發事件。如要瞭解如何使用 ZX_VIRTUAL_INTERRUPT_UNTRIGGERED 信號,請參閱「(這裡)Interrupts#virtual-interrupts-and-the-untriggered-signal」。

權限

handle 必須是 ZX_OBJ_TYPE_INTERRUPT 類型,且具有 ZX_RIGHT_SIGNAL

傳回值

zx_interrupt_trigger() 會在成功時傳回 ZX_OK。如果失敗,系統會傳回負數錯誤值。

錯誤

ZX_ERR_BAD_HANDLE handle 是無效的控制代碼。

ZX_ERR_WRONG_TYPE handle 不是中斷物件。

ZX_ERR_BAD_STATE handle 不是虛擬中斷。

ZX_ERR_CANCELED zx_interrupt_destroy()handle 上遭到呼叫。

ZX_ERR_ACCESS_DENIED 帳號代碼缺少 ZX_RIGHT_SIGNAL

ZX_ERR_INVALID_ARGS options 不為零。

另請參閱