摘要
分配消息信号中断 (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 资源
用于创建与设备中断对应的中断对象。
当 handle 关闭且没有待处理项时,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
”的计数不是有效值。
ZX_ERR_ACCESS_DENIED
handle 不是根资源句柄。
ZX_ERR_NOT_SUPPORTED
平台不支持 MSI。