class SmmuPmt
Defined at line 27 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
Public Methods
fbl::RefPtr<SmmuPmt> Create (SmmuBti &owner,PinnedVmObjectpinned_vmo,BtiModebti_mode,DeviceAspace::Allocationmap_location)
Defined at line 17 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_pmt.cc
void SmmuPmt (const SmmuPmt & )
Defined at line 46 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
void SmmuPmt (SmmuPmt && )
Defined at line 47 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
SmmuPmt & operator= (const SmmuPmt & )
Defined at line 48 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
SmmuPmt & operator= (SmmuPmt && )
Defined at line 49 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
zx::result<iommu::QueryAddressResult> QueryAddress (uint64_t query_offset, size_t query_size)
///////////////////////////////////////////////////////////////////////////
Implementation of iommu::Pmt
///////////////////////////////////////////////////////////////////////////
Defined at line 60 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_pmt.cc
void AssertOwnerPmtLockHeld ()
end iommu::Pmt implementation
Defined at line 63 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
State state ()
Defined at line 67 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
void set_state (State new_state)
Defined at line 68 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
PinnedVmObject TakePinnedVmo ()
Defined at line 70 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
const PinnedVmObject & pinned_vmo ()
Defined at line 71 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
DeviceAspace::Allocation TakeMapLocation ()
Defined at line 73 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
const DeviceAspace::Allocation & map_location ()
Note: while PMT instances always have a "map location" which can be
queried, the map location instance itself is not always valid. Callers
need to know that the location is valid (which can be tested using an
implicit or explicit cast to bool, or a comparison against nullptr, before
using it.
Defined at line 82 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
void ReleasePinnedMemory ()
Defined at line 154 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_pmt.cc
void OnDispatcherZeroHandles ()
Defined at line 155 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_pmt.cc
Enumerations
enum class State
| Name | Value | Comments |
|---|---|---|
| kInitial | 0 |
PMT has been created, but not successfully mapped and added to its owner BTI |
| kActive | 1 |
PMT has been created, mapped (or is in the process of mapping), and added to |
| kReleased | 2 |
PMT has been explicitly unpinned. Its pinned VMO is released and it is not on |
| kQuarantined | 3 |
Well... not really. Since we can enforce BTI access at a HW level, if a PMT |
Defined at line 29 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_pmt.h
Friends
class RefPtr