摘要
建立中斷物件。
宣告
#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()
會建立中斷物件,以代表實體
或虛擬幹擾功能
如果選項為 ZX_INTERRUPT_VIRTUAL
,則系統會忽略 src_obj 和 src_num
並傳回虛擬中斷
否則 src_obj 必須是適合建立平台中斷情形的適當資源 或 PCI 物件,而 src_num 是相關聯的中斷編號。這項限制 建立中斷情形,導致 DDK (驅動程式庫開發套件) 內部的中斷。 實體中斷是透過各種 DDK API 取得。
實體幹擾元素會根據 ZX_INTERRUPT_EDGE_LOW
、ZX_INTERRUPT_EDGE_HIGH
、
ZX_INTERRUPT_LEVEL_LOW
、ZX_INTERRUPT_LEVEL_HIGH
和ZX_INTERRUPT_REMAP_IRQ
。
帳號代碼有 ZX_RIGHT_INSPECT
、ZX_RIGHT_DUPLICATE
和 ZX_RIGHT_TRANSFER
(以便透過 zx_channel_write()
傳送至其他程序)、ZX_RIGHT_READ
、
ZX_RIGHT_WRITE
(zx_interrupt_ack()
的必填)、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
因記憶體不足而失敗。
使用者空間無法妥善處理這種 (異常) 錯誤。
在日後的版本中不會再發生這個錯誤。
另請參閱
zx_handle_close()
zx_interrupt_ack()
zx_interrupt_bind()
zx_interrupt_destroy()
zx_interrupt_wait()
zx_port_wait()