摘要
创建新的总线事务发起者。
声明
#include <zircon/syscalls.h>
zx_status_t zx_bti_create(zx_handle_t iommu,
uint32_t options,
uint64_t bti_id,
zx_handle_t* out);
说明
zx_bti_create()
创建新的总线事务发起者
提供了 IOMMU 的句柄和设备的硬件事务标识符
该 IOMMU 的下游消息。
options 必须为 0(预留,用于未来创建标志的定义)。
成功后,系统将返回新 BTI 的句柄。此标识名将拥有权限
ZX_RIGHT_READ
、ZX_RIGHT_WRITE
、ZX_RIGHT_MAP
、ZX_RIGHT_INSPECT
、
ZX_RIGHT_DUPLICATE
和 ZX_RIGHT_TRANSFER
。
权限
iommu 的类型必须为 ZX_OBJ_TYPE_IOMMU
且包含 ZX_RIGHT_NONE
。
返回值
zx_bti_create()
会返回 ZX_OK
和新 BTI 的句柄
(通过 out)。如果失败,错误值为负值
。
错误
ZX_ERR_BAD_HANDLE
iommu 不是有效的句柄。
ZX_ERR_WRONG_TYPE
iommu 不是 iommu 句柄。
ZX_ERR_ACCESS_DENIED
iommu 句柄没有足够的权限。
ZX_ERR_INVALID_ARGS
bti_id 在指定的 IOMMU 上无效,
out 是无效指针,或 options 为非零。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在将来的版本中,此错误不会再发生。