L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
memdesc.h
Go to the documentation of this file.
1
6/*
7 * (c) 2007-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
8 * Alexander Warg <warg@os.inf.tu-dresden.de>
9 * economic rights: Technische Universität Dresden (Germany)
10 *
11 * License: see LICENSE.spdx (in this directory or the directories above)
12 */
13#ifndef __L4SYS__MEMDESC_H__
14#define __L4SYS__MEMDESC_H__
15
16#include <l4/sys/kip.h>
17
28
48
61
72
73
88
89
97
105unsigned
107
120void
122 l4_addr_t start,
123 l4_addr_t end,
124 unsigned type,
125 unsigned virt,
126 unsigned sub_type) L4_NOTHROW;
127
137
147
157
170
180
181/*************************************************************************
182 * Implementations
183 *************************************************************************/
184
191
193unsigned
195{
196 return kip->mem_descs_num;
197}
198
200void
202 l4_addr_t start,
203 l4_addr_t end,
204 unsigned type,
205 unsigned virt,
206 unsigned sub_type) L4_NOTHROW
207{
208 md->l = (start & ~0x3ffUL) | (type & 0x0f) | ((sub_type << 4) & 0x0f0)
209 | (virt ? 0x200 : 0x0);
210 md->h = end;
211}
212
213
220
227
234
238{
239 return (md->l & 0xf0) >> 4;
240}
241
248
249#endif /* ! __L4SYS__MEMDESC_H__ */
unsigned long l4_umword_t
Unsigned machine word.
Definition l4int.h:40
unsigned long l4_addr_t
Address type.
Definition l4int.h:34
l4_umword_t l4_kernel_info_get_mem_desc_subtype(l4_kernel_info_mem_desc_t *md) L4_NOTHROW
Get sub-type of memory region.
Definition memdesc.h:237
l4_mem_archspecific_sub_type_common_t
Memory sub types for l4_mem_type_archspecific descriptors.
Definition memdesc.h:67
l4_kernel_info_mem_desc_t * l4_kernel_info_get_mem_descs(l4_kernel_info_t *kip) L4_NOTHROW
Get pointer to memory descriptors from KIP.
Definition memdesc.h:187
l4_mem_info_sub_type_t
Memory sub types for l4_mem_type_info descriptors.
Definition memdesc.h:54
l4_umword_t l4_kernel_info_get_mem_desc_is_virtual(l4_kernel_info_mem_desc_t *md) L4_NOTHROW
Get virtual flag of the memory descriptor.
Definition memdesc.h:244
void l4_kernel_info_set_mem_desc(l4_kernel_info_mem_desc_t *md, l4_addr_t start, l4_addr_t end, unsigned type, unsigned virt, unsigned sub_type) L4_NOTHROW
Populate a memory descriptor.
Definition memdesc.h:201
l4_umword_t l4_kernel_info_get_mem_desc_end(l4_kernel_info_mem_desc_t *md) L4_NOTHROW
Get end address of the region described by the memory descriptor.
Definition memdesc.h:223
unsigned l4_kernel_info_get_num_mem_descs(l4_kernel_info_t *kip) L4_NOTHROW
Get number of memory descriptors in KIP.
Definition memdesc.h:194
l4_mem_type_t
Type of a memory descriptor.
Definition memdesc.h:34
l4_umword_t l4_kernel_info_get_mem_desc_type(l4_kernel_info_mem_desc_t *md) L4_NOTHROW
Get type of the memory region.
Definition memdesc.h:230
l4_umword_t l4_kernel_info_get_mem_desc_start(l4_kernel_info_mem_desc_t *md) L4_NOTHROW
Get start address of the region described by the memory descriptor.
Definition memdesc.h:216
@ l4_mem_archspecific_acpi_tables
Firmware ACPI tables.
Definition memdesc.h:68
@ l4_mem_archspecific_cpu_fw
CPU firmware.
Definition memdesc.h:70
@ l4_mem_archspecific_acpi_nvs
Firmware reserved address space.
Definition memdesc.h:69
@ l4_mem_reserved_mmio
MMIO range reserved by kernel.
Definition memdesc.h:59
@ l4_mem_reserved_heap
Kernel heap.
Definition memdesc.h:58
@ l4_mem_info_acpi_rsdp
Physical address of the ACPI root pointer.
Definition memdesc.h:55
@ l4_mem_reserved_kernel
Kernel image.
Definition memdesc.h:57
@ l4_mem_type_archspecific
Architecture specific memory (e.g., ACPI memory).
Definition memdesc.h:46
@ l4_mem_type_conventional
Conventional memory.
Definition memdesc.h:36
@ l4_mem_type_info
Info from the boot loader.
Definition memdesc.h:44
@ l4_mem_type_undefined
Undefined, unused descriptor.
Definition memdesc.h:35
@ l4_mem_type_kmem
Kernel memory.
Definition memdesc.h:40
@ l4_mem_type_dedicated
Dedicated memory (some device memory).
Definition memdesc.h:38
@ l4_mem_type_reserved
Reserved memory for kernel etc.
Definition memdesc.h:37
@ l4_mem_type_bootloader
Memory owned by the boot loader.
Definition memdesc.h:45
@ l4_mem_type_shared
Shared memory (not implemented).
Definition memdesc.h:39
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
Definition compiler.h:167
#define L4_INLINE
L4 Inline function attribute.
Definition compiler.h:51
Kernel Info Page access functions.
Memory descriptor data structure.
Definition memdesc.h:82
L4 Kernel Interface Page.
Definition kip.h:37