zx_msi_assign

总结

分配有消息信号的中断 (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。

另请参阅