zx_break_create

摘要

建立中斷物件。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_interrupt_create(zx_handle_t src_obj,
                                uint32_t src_num,
                                uint32_t options,
                                zx_handle_t* out_handle);

說明

zx_interrupt_create() 會建立中斷物件,代表實體或虛擬中斷情形。

如果 optionsZX_INTERRUPT_VIRTUAL,系統會忽略 src_objsrc_num,並傳回虛擬中斷事件。

否則 src_obj 必須是建立平台中斷或 PCI 物件的適當資源,而 src_num 是相關聯的中斷號碼。這會限制在 DDK (驅動程式庫程式開發套件) 內部建立中斷情形。駕駛人會透過各種 DDK API 取得實體中斷情形。

實體中斷遵守 ZX_INTERRUPT_EDGE_LOWZX_INTERRUPT_EDGE_HIGHZX_INTERRUPT_LEVEL_LOWZX_INTERRUPT_LEVEL_HIGHZX_INTERRUPT_REMAP_IRQ 選項。

帳號代碼包含 ZX_RIGHT_INSPECTZX_RIGHT_DUPLICATEZX_RIGHT_TRANSFER (可讓這些代碼透過 zx_channel_write() 傳送至其他程序)、ZX_RIGHT_READZX_RIGHT_WRITE (zx_interrupt_ack(){/10 的必要項目)、ZX_RIGHT_WAIT (zx_interrupt_wait()ZX_RIGHT_SIGNAL (zx_interrupt_trigger()) 的必要項目。

中斷情況是指發生基礎實體中斷情形,或在虛擬中斷中呼叫 zx_interrupt_trigger() 時,會說「觸發」。繫結至具有 zx_interrupt_bind() 的通訊埠時,會觸發中斷情形,會導致封包傳送至通訊埠。

如果未繫結至通訊埠,中斷物件可能會在 zx_interrupt_wait() 等待。

你無法等待 zx_object_wait_ 系列的通話中斷。

權限

src_obj 必須具有資源種類 ZX_RSRC_KIND_IRQ

傳回值

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

錯誤

ZX_ERR_BAD_HANDLE src_obj 控制代碼無效 (如果這不是虛擬中斷)

ZX_ERR_WRONG_TYPE src_obj 控制代碼不是建立中斷的適當類型。

ZX_ERR_ACCESS_DENIED src_obj 控點不允許這項作業。

ZX_ERR_INVALID_ARGS options 包含無效標記,或者 out_handle 參數是無效指標。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。

另請參閱