Loading...
Searching...
No Matches
DMA space
Base API » Kernel Objects

A DMA space represents a device memory address space managed by an IOMMU.

Collaboration diagram for DMA space:

A DMA space represents a device memory address space managed by an IOMMU.

That is, it manages the translation of virtual addresses used by devices to physical addresses. It is accessed via the L4::Task interface, but with the following caveats:

- No threads can be bound to it.
- No objects (and IO ports on IA32) can be mapped to it.
- No kernel-user memory can be added to it.
- It must be constructed by passing the L4_PROTO_DMA_SPACE protocol constant to the kernel factory's L4::Factory.create() call.

A DMA space must be bound to an L4::Iommu to enable the address translation for specific devices.

The kernel factory allows to create DMA spaces only if the kernel has been configured with IOMMU support and if an IOMMU was detected.