跳转至

zx_bti_create

SUMMARY

Create a new bus transaction initiator.

DECLARATION

#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);

DESCRIPTION

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.

RIGHTS

iommu must be of type ZX_OBJ_TYPE_IOMMU and have ZX_RIGHT_NONE.

RETURN VALUE

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 is returned.

ERRORS

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.

SEE ALSO

  • [zx_bti_pin()]
  • [zx_bti_release_quarantine()]
  • [zx_pmt_unpin()]

zx_bti_pin()zx_bti_release_quarantine()zx_pmt_unpin()


最后更新: 2022 年 12 月 31 日(Saturday) 21:07 CST