Create a new bus transaction initiator.
#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() creates a new bus transaction initiator
given a handle to an IOMMU and a hardware transaction identifier for a device
downstream of that IOMMU.
options must be 0 (reserved for future definition of creation flags).
Upon success a handle for the new BTI is returned. This handle will have rights ZX_RIGHT_READ, ZX_RIGHT_WRITE, ZX_RIGHT_MAP, ZX_RIGHT_INSPECT, ZX_RIGHT_DUPLICATE, and ZX_RIGHT_TRANSFER.
iommu must be of type ZX_OBJ_TYPE_IOMMU and have ZX_RIGHT_NONE.
zx_bti_create() returns ZX_OK and a handle to the new BTI
(via out) on success. In the event of failure, a negative error value
ZX_ERR_BAD_HANDLE iommu is not a valid handle.
ZX_ERR_WRONG_TYPE iommu is not an iommu handle.
ZX_ERR_ACCESS_DENIED iommu handle does not have sufficient privileges.
ZX_ERR_INVALID_ARGS bti_id is invalid on the given IOMMU, out is an invalid pointer, or options is non-zero.
ZX_ERR_NO_MEMORY Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future build this error will no longer occur.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-11-21.