总结
分配有消息信号的中断 (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 关闭且 zx_msi_create()
创建的 Interrupt 对象没有未完成的句柄时,MSI 分配对象会被释放。
count 必须是 1、2、4、8、16 或 32。
handle 必须是根资源的句柄,因为此系统调用仅供平台总线和 Zircon coretest 使用。
权限
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。