摘要
建立新的公車交易啟動器。
宣告
#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 中裝置下游裝置的硬體交易 ID。
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 的控制代碼 (透過「出」)。如果失敗,會傳回負值錯誤值。
錯誤
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
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。