L4Re Operating System Framework
Interface and Usage Documentation
|
Interface for IO-MMUs used for DMA remapping. More...
#include <iommu>
Public Member Functions | |
l4_msgtag_t | bind (l4_uint64_t src_id, Ipc::Cap< Task > dma_space) |
Associate dma_space with the set of device(s) specified by src_id . | |
l4_msgtag_t | unbind (l4_uint64_t src_id, Ipc::Cap< Task > dma_space) |
Remove the association of the given DMA address space from the device(s) specified by src_id . | |
Interface for IO-MMUs used for DMA remapping.
This interface allows to associate a DMA address space with a platform dependent set of devices. The kernel automatically keeps the memory spaces of associated DMA spaces in sync with the respective page table structures in the IOMMU.
l4_msgtag_t L4::Iommu::bind | ( | l4_uint64_t | src_id, |
Ipc::Cap< Task > | dma_space | ||
) |
Associate dma_space
with the set of device(s) specified by src_id
.
Updates the respective page table structures in the IOMMU and keeps them in sync when memory is mapped to the dma_space
or revoked from it.
src_id | Platform dependent source ID specifying the set of devices that shall use dma_space for DMA remapping. |
dma_space | The DMA space (L4::Task created with L4_PROTO_DMA_SPACE) providing the mappings that shall be used for the device(s). |
l4_msgtag_t L4::Iommu::unbind | ( | l4_uint64_t | src_id, |
Ipc::Cap< Task > | dma_space | ||
) |
Remove the association of the given DMA address space from the device(s) specified by src_id
.
Clear the respective page stable structures in the IOMMU.
src_id | Platform dependent source ID specifying the set of devices that shall no longer use dma_space for DMA remapping. |
dma_space | The DMA space formerly associated with bind(). |