摘要
分配訊息訊號中斷 (MSI)。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_msi_allocate(zx_handle_t handle,
uint32_t count,
zx_handle_t* out_allocation);
說明
zx_msi_allocate()
會分配一個連續區塊「count」(MSI),並傳回 out_allocation 中的 MSI 配置物件,以便與 zx_msi_create()
搭配使用。這可讓 PCI 裝置要求預先分配 MSI 資源,以便建立與裝置中斷情形對應的中斷物件。當帳號代碼關閉時,系統會釋出 MSI 配置物件,且沒有對中斷物件建立的待處理處理。zx_msi_create()
count 必須為 1、2、4、8、16 或 32。
handle 必須是根資源的控制代碼,因為此系統呼叫僅供平台匯流排和 Zircon 核心測試使用。
權限
handle 必須具備資源類型 ZX_RSRC_KIND_SYSTEM
和資源集 ZX_RSRC_SYSTEM_MSI_BASE
。
傳回值
zx_msi_allocate()
在成功時傳回 ZX_OK
。如果失敗,系統會傳回負的錯誤值。
錯誤
ZX_ERR_INVALID_ARGS
count 不是有效的值。
ZX_ERR_ACCESS_DENIED
帳號代碼並非根資源控制代碼。
ZX_ERR_NOT_SUPPORTED
平台不支援 MSI。