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_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).

References bind().

Referenced by bind().

Here is the call graph for this function:
Here is the caller graph for this function:

## 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_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().

References unbind().

Referenced by unbind().

Here is the call graph for this function:
Here is the caller graph for this function:

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

- l4/sys/iommu