class DeviceContext
Defined at line 24 of file ../../zircon/kernel/dev/iommu/intel/device_context.h
Public Methods
bool is_bdf (ds::Bdf bdf)
Check if this DeviceContext is for the given BDF
Defined at line 38 of file ../../zircon/kernel/dev/iommu/intel/device_context.h
uint32_t domain_id ()
Defined at line 40 of file ../../zircon/kernel/dev/iommu/intel/device_context.h
void ~DeviceContext ()
Defined at line 52 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
zx_status_t Create (ds::Bdf bdf, uint32_t domain_id, IommuImpl * parent, volatile ds::ExtendedContextEntry * context_entry, ktl::unique_ptr<DeviceContext> * device)
Create a new DeviceContext representing the given BDF. It is a fatal error
to try to create a context for a BDF that already has one.
Defined at line 144 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
zx_status_t Create (ds::Bdf bdf, uint32_t domain_id, IommuImpl * parent, volatile ds::ContextEntry * context_entry, ktl::unique_ptr<DeviceContext> * device)
Defined at line 109 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
uint64_t minimum_contiguity ()
Defined at line 412 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
uint64_t aspace_size ()
Defined at line 417 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
zx::result<uint64_t> SecondLevelMap (const fbl::RefPtr<VmObject> & vmo, uint64_t vmo_offset, size_t size, uint32_t perms)
Use the second-level translation table to map the host pages in the given
range on |vmo| to the guest's address. Either maps the whole requested
range, returning the base dev_addr_t, or fails.
Defined at line 210 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
zx_status_t SecondLevelUnmap (paddr_t virt_paddr, size_t size)
Defined at line 363 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
zx_status_t SecondLevelMapIdentity (paddr_t base, size_t size, uint32_t perms)
Use the second-level translation table to identity-map the given range of
host pages.
Defined at line 332 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc
void SecondLevelUnmapAllLocked ()
Removes all mappings from the device context. This is only intended to be done just prior to
destruction as we need to perform unmapping whilst holding the parent lock.
Defined at line 402 of file ../../zircon/kernel/dev/iommu/intel/device_context.cc