|
L4Re Operating System Framework
Interface and Usage Documentation
|
Memory descriptors stored in the kernel interface page. More...
#include <kip>
Public Types | |
| enum | Mem_type { Undefined = 0x0 , Conventional = 0x1 , Reserved = 0x2 , Dedicated = 0x3 , Shared = 0x4 , Kmem = 0x5 , Info = 0xd , Bootloader = 0xe , Arch = 0xf } |
| Memory types. More... | |
| enum | Info_sub_type { Info_acpi_rsdp = 0 , Reserved_kernel = 0 , Reserved_heap = 1 , Reserved_mmio = 2 } |
| Memory sub types for the Mem_type::Info type. More... | |
| enum | Arch_sub_type_common { Arch_acpi_tables = 3 , Arch_acpi_nvs = 4 , Arch_cpu_fw = 5 } |
| Common sub types across all architectures for the Mem_type::Arch type. More... | |
Public Member Functions | |
| Mem_desc (unsigned long start, unsigned long end, Mem_type t, unsigned char st=0, bool virt=false, bool eager=false) noexcept | |
| Initialize memory descriptor. | |
| unsigned long | start () const noexcept |
| Return start address of memory descriptor. | |
| unsigned long | end () const noexcept |
| Return end address of memory descriptor. | |
| unsigned long | size () const noexcept |
| Return size of region described by the memory descriptor. | |
| Mem_type | type () const noexcept |
| Return type of the memory descriptor. | |
| unsigned char | sub_type () const noexcept |
| Return sub-type of the memory descriptor. | |
| unsigned | is_virtual () const noexcept |
| Return whether the memory descriptor describes a virtual or physical region. | |
| unsigned | eager_map () const noexcept |
| Return whether the region shall be eligible for eager mapping in sigma0 or the root task. | |
| void | set (unsigned long start, unsigned long end, Mem_type t, unsigned char st=0, bool virt=false, bool eager=false) noexcept |
| Set values of a memory descriptor. | |
Static Public Member Functions | |
| static Mem_desc * | first (l4_kernel_info_t *kip) noexcept |
| Get first memory descriptor. | |
| static unsigned long | count (l4_kernel_info_t const *kip) noexcept |
| Return number of memory descriptors stored in the kernel info page. | |
| static void | count (l4_kernel_info_t *kip, unsigned count) noexcept |
| Set number of memory descriptors. | |
| static cxx::static_vector< Mem_desc const > | all (l4_kernel_info_t const *kip) |
| Return enumerable list of memory descriptors. | |
| static cxx::static_vector< Mem_desc > | all (l4_kernel_info_t *kip) |
| Return enumerable list of memory descriptors. | |
Memory descriptors stored in the kernel interface page.
Common sub types across all architectures for the Mem_type::Arch type.
| Enumerator | |
|---|---|
| Arch_acpi_tables | Firmware ACPI tables. |
| Arch_acpi_nvs | Firmware reserved address space. |
| Arch_cpu_fw | CPU firmware. |
Memory sub types for the Mem_type::Info type.
| Enumerator | |
|---|---|
| Info_acpi_rsdp | Physical address of the ACPI root pointer. |
| Reserved_kernel | Kernel image. |
| Reserved_heap | Kernel heap. |
| Reserved_mmio | MMIO range reserved by kernel. |
|
inlinenoexcept |
Initialize memory descriptor.
| start | Start address |
| end | End address |
| t | Memory type |
| st | Memory subtype, defaults to 0 |
| virt | True for virtual memory, false for physical memory, defaults to physical |
| eager | The region shall be eligible for eager mapping in sigma0 or the root task. This is just an optimization to prevent on-demand paging. |
Definition at line 166 of file kip.
References end(), and start().
Referenced by first().
|
inlinestatic |
|
inlinestatic |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
inlinenoexcept |
Return end address of memory descriptor.
Definition at line 185 of file kip.
Referenced by Mem_desc(), set(), and size().
|
inlinestaticnoexcept |
Get first memory descriptor.
| kip | Pointer to the kernel info page |
Definition at line 97 of file kip.
References Mem_desc().
Referenced by all(), and all().
|
inlinenoexcept |
|
inlinenoexcept |
Set values of a memory descriptor.
| start | Start address |
| end | End address |
| t | Memory type |
| st | Sub-type, defaults to 0 |
| virt | Virtual or physical memory region, defaults to physical |
| eager | The region shall be eligible for eager mapping in sigma0 or the root task. This is just an optimization to prevent on-demand paging. |
Definition at line 237 of file kip.
References end(), and start().
|
inlinenoexcept |
|
inlinenoexcept |
Return start address of memory descriptor.
Definition at line 178 of file kip.
Referenced by Mem_desc(), set(), and size().
|
inlinenoexcept |
|
inlinenoexcept |