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