1/* SPDX-License-Identifier: GPL-2.0-only or License-Ref-kk-custom */
2/*
3 * Copyright (C) 2021 Kernkonzept GmbH.
4 */
5
6/**
7 * \defgroup l4_kernel_object_dmar_space DMAR space
8 * \ingroup l4_kernel_object_api
9 *
10 * A DMAR space represents a device memory address space managed by an IOMMU.
11 * That is, it manages the translation of virtual addresses used by devices to
12 * physical addresses. It is accessed via the L4::Task interface, but with the
13 * following caveats:
14 * - No threads can be bound to it.
15 * - No objects (and IO ports on IA32) can be mapped to it.
16 * - No kernel-user memory can be added to it.
17 * - It must be constructed by passing the L4_PROTO_DMA_SPACE protocoll constant
18 *   to the kernel factory's L4::Factory.create() call.
19 *
20 * A DMAR space must be bound to an L4::Iommu to enable the address translation
21 * for specific devices.
22 */
23