class SmmuBti
Defined at line 29 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
Public Methods
void SmmuBti (const SmmuBti & )
Defined at line 31 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
SmmuBti operator= (const SmmuBti & )
Defined at line 32 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
void SmmuBti (SmmuBti && )
Defined at line 33 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
SmmuBti operator= (SmmuBti && )
Defined at line 34 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
zx::result<fbl::RefPtr<iommu::Pmt>> Map (PinnedVmObjectpinned_vmo,uint32_tperms,iommu::RequireContiguousMappingreq_contig)
Defined at line 35 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
zx::result<> SetMode (BtiMode mode)
Defined at line 68 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
::SpinLock & get_lock ()
Defined at line 75 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
::Mutex & get_pmt_lock ()
Defined at line 76 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
void AssertCanary ()
Defined at line 79 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
void AssertOwned (ContextBank & cb)
Defined at line 81 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
const Smmu & smmu ()
Defined at line 83 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_bti.h
void ReleaseQuarantine ()
Defined at line 194 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void OnDispatcherZeroHandles ()
Defined at line 237 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
uint64_t minimum_contiguity ()
Defined at line 327 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
uint64_t aspace_size ()
Defined at line 353 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
uint64_t pmo_count ()
Defined at line 376 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
size_t quarantine_count ()
Defined at line 381 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
bool in_fault_state ()
Defined at line 386 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
fbl::RefPtr<SmmuBti> Create (Smmu &smmu,ktl::unique_ptr<StreamMatchRegGroup>smrg,ktl::unique_ptr<ContextBank>context_bank,BtiModeinitial_mode)
Create a new BtiContext and have it take control of the (mandatory) SMRG
and (optional) Context Bank. On success, any of the supplied resources
(SMRG and CB) will be marked as unavailable in the owning SMMU's
bookkeeping.
Defined at line 394 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void Shutdown (Smmu & smmu)
Defined at line 477 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
bool SmrIntersects (SmrValue stream_ids)
Test to see if a stream match register's ID/MASK pair could potentially
match any of the SMR values for any of the SMRGs who are members of this
SmmuBti.
Defined at line 557 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void AddSmrg (Smmu & smmu, ktl::unique_ptr<StreamMatchRegGroup> smrg)
Add a new SMRG to the existing set of SMRGs for this BTI. If SMRG being
added is in translate mode, then it must be using the same context bank as
any pre-existing SMRGs in this BTI.
Defined at line 666 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void HandleFaultLocked ()
Defined at line 760 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
uint32_t cb_ndx_locked ()
Defined at line 794 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
uint32_t cb_ndx ()
Defined at line 798 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void AssertOwned (StreamMatchRegGroup & smrg)
Defined at line 569 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void ReleaseMapping (DeviceAspace::Allocation mapping)
Defined at line 834 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void OnPmtUnpin (SmmuPmt & pmt)
Routines used by PMTs when handling closure and leaking.
Defined at line 844 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void OnPmtZeroHandles (SmmuPmt & pmt)
Defined at line 876 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
void OnEndOfLife ()
This BTI has reached the end of its life and needs to conduct final
cleanup. There are two possible ways to get here:
1) The final user-mode handle to the BTI is closed, and the BTI does not
have any active or quarantined PMTs (OnDispatcherZeroHandles).
2) The BTI is orphaned (its final handle was closed while it still held
PMTs), however the final PMT has now been unpinned and its final handle
closed, and there are no quarantined PMTs (OnPmtZeroHandles)
Defined at line 315 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu_bti.cc
Friends
class RefPtr
class SmmuTestAccess
class Smmu