L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4::Iommu Class Reference

Interface for IO-MMUs used for DMA remapping. More...

#include <iommu>

+ Inheritance diagram for L4::Iommu:
+ Collaboration diagram for L4::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.
 

Detailed Description

Interface for IO-MMUs used for DMA remapping.

Note
This interface is only present in the kernel if the kernel detected an IOMMU during boot.

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.

Definition at line 21 of file iommu.

Member Function Documentation

◆ bind()

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.

Parameters
src_idPlatform dependent source ID specifying the set of devices that shall use dma_space for DMA remapping.
dma_spaceThe DMA space (L4::Task created with L4_PROTO_DMA_SPACE) providing the mappings that shall be used for the device(s).

◆ unbind()

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.

Parameters
src_idPlatform dependent source ID specifying the set of devices that shall no longer use dma_space for DMA remapping.
dma_spaceThe DMA space formerly associated with bind().

The documentation for this class was generated from the following file: