class DeviceAspace
Defined at line 28 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
Public Members
static const uint32_t kPageSize
static const uint32_t kPageMask
static const uint32_t kPageShift
Public Methods
zx::result<ktl::unique_ptr<DeviceAspace>> Create (uint64_taspace_start,uint64_taspace_len,uint32_tmax_cache_pages)
Note, the inclusive length of the address space should always fit within a
64 bit unsigned integer since the maximum coverage of a set of VMSAv8-64
page tables is 48 bits.
Defined at line 32 of file ../../zircon/kernel/dev/iommu/arm_smmu/device_aspace.cc
paddr_t GetRootPaddr ()
Defined at line 68 of file ../../zircon/kernel/dev/iommu/arm_smmu/device_aspace.cc
void DeviceAspace (const DeviceAspace & )
Defined at line 71 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
void DeviceAspace (DeviceAspace && )
Defined at line 72 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
DeviceAspace & operator= (const DeviceAspace & )
Defined at line 73 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
zx::result<Allocation> Map (const PinnedVmObject &pinned_vmo,uint32_tperms,TlbInvalOp &tlb_inval_op,ktl::optional<uint64_t>location)
Defined at line 73 of file ../../zircon/kernel/dev/iommu/arm_smmu/device_aspace.cc
DeviceAspace & operator= (DeviceAspace && )
Defined at line 74 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
const PageCache & page_cache ()
Defined at line 88 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
uint32_t granule_size_bits ()
Defined at line 89 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
uint64_t first_valid_address ()
Defined at line 90 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
uint64_t last_valid_address ()
Defined at line 91 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/device_aspace.h
void Unmap (Allocation alloc, TlbInvalOp & tlb_inval_op)
Defined at line 168 of file ../../zircon/kernel/dev/iommu/arm_smmu/device_aspace.cc
void FreeTranslationTables (TlbInvalOp & tlb_inval_op)
Recursively walk all translation table pages and return them to the PMM.
This must be done exactly once in the life of a DeviceAspace object, just
before shutdown.
Defined at line 299 of file ../../zircon/kernel/dev/iommu/arm_smmu/device_aspace.cc
Records
Friends
class DeviceAspaceTest
class TranslationTableHelper
class default_delete