摘要
分配訊息信號中斷 (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()
會分配 MSI 的連續區塊,並傳回
適用於 out_allocation 的 MSI 配置物件,可與 zx_msi_create()
搭配使用。
這可讓 PCI 裝置要求預先分配 MSI 資源
,用於建立對應裝置中斷情形的 Interrupt 物件。
當 handle 關閉且沒有未完成時,系統會釋出 MSI 配置物件
「中斷」物件 (由 zx_msi_create()
建立) 的控點。
count 必須是 1、2、4、8、16 或 32。
handle 必須是根資源的處理常式,例如此 syscall 是 僅供平台匯流排和 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。