class IommuImpl

Defined at line 32 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.h

Public Methods

zx::result<fbl::RefPtr<Iommu>> Create (ktl::unique_ptr<const uint8_t[]> desc_bytes, size_t desc_len)

Defined at line 50 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

reg::Capability * caps ()

TODO(teisenbe): These should be const, but need to teach the register

library about constness

Defined at line 57 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.h

reg::ExtendedCapability * extended_caps ()

Defined at line 58 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.h

bool IsValidBusTxnId (uint64_t bus_txn_id)

Defined at line 235 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

zx::result<uint64_t> Map (uint64_t bus_txn_id, const fbl::RefPtr<VmObject> & vmo, uint64_t vmo_offset, size_t size, uint32_t perms)

Defined at line 269 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

zx::result<uint64_t> MapContiguous (uint64_t bus_txn_id, const fbl::RefPtr<VmObject> & vmo, uint64_t vmo_offset, size_t size, uint32_t perms)

Defined at line 295 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

zx_status_t QueryAddress (uint64_t bus_txn_id, const fbl::RefPtr<VmObject> & vmo, uint64_t map_token, uint64_t map_offset, size_t size, dev_vaddr_t * vaddr, size_t * mapped_len)

Defined at line 302 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

zx_status_t Unmap (uint64_t bus_txn_id, uint64_t map_token, size_t size)

Defined at line 318 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

zx_status_t ClearMappingsForBusTxnId (uint64_t bus_txn_id)

Defined at line 343 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

uint64_t minimum_contiguity (uint64_t bus_txn_id)

Defined at line 794 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

uint64_t aspace_size (uint64_t bus_txn_id)

Defined at line 811 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void ~IommuImpl ()

Defined at line 90 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateContextCacheGlobal ()

Invalidate all context cache entries

Defined at line 537 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateContextCacheDomain (uint32_t domain_id)

Invalidate all context cache entries that are in the specified domain

Defined at line 542 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateIotlbGlobal ()

Invalidate all IOTLB entries for all domains

Defined at line 597 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateIotlbDomainAll (uint32_t domain_id)

Invalidate all IOTLB entries for the specified domain

Defined at line 602 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateIotlbDomainAllLocked (uint32_t domain_id)

Defined at line 560 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc

void InvalidateIotlbPageLocked (uint32_t domain_id, dev_vaddr_t vaddr, uint pages_pow2)

Invalidate the IOTLB entries for the specified translations.

|pages_pow2| indicates how many pages should be invalidated (calculated

as 2^|pages_pow2|).

Defined at line 574 of file ../../zircon/kernel/dev/iommu/intel/iommu_impl.cc