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