Memory descriptors stored in the kernel interface page.
More...
#include <kip>
|
| enum | Mem_type {
Undefined = 0x0
, Conventional = 0x1
, Reserved = 0x2
, Dedicated = 0x3
,
Shared = 0x4
, 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
} |
| | Common sub types across all architectures for the Mem_type::Arch type. More...
|
|
| | 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.
|
Memory descriptors stored in the kernel interface page.
- Include File
-
Definition at line 42 of file kip.
◆ Arch_sub_type_common
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.
|
Definition at line 76 of file kip.
◆ Info_sub_type
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.
|
Definition at line 64 of file kip.
◆ Mem_type
Memory types.
| Enumerator |
|---|
| Undefined | Undefined memory.
|
| Conventional | Conventional memory.
|
| Reserved | Reserved region, do not use this memory.
|
| Dedicated | Dedicated.
|
| Shared | Shared.
|
| Info | Info by boot loader.
|
| Bootloader | Memory belongs to the boot loader.
|
| Arch | Architecture specific memory.
|
Definition at line 48 of file kip.
◆ Mem_desc()
| L4::Kip::Mem_desc::Mem_desc |
( |
unsigned long | start, |
|
|
unsigned long | end, |
|
|
Mem_type | t, |
|
|
unsigned char | st = 0, |
|
|
bool | virt = false, |
|
|
bool | eager = false ) |
|
inlinenoexcept |
Initialize memory descriptor.
- Parameters
-
| 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 162 of file kip.
References end(), and start().
Referenced by first().
◆ all() [1/2]
Return enumerable list of memory descriptors.
- Parameters
-
| kip | Pointer to the kernel info page. |
Definition at line 143 of file kip.
References count(), and first().
◆ all() [2/2]
Return enumerable list of memory descriptors.
- Parameters
-
| kip | Pointer to the kernel info page. |
Definition at line 132 of file kip.
References count(), and first().
◆ count() [1/2]
Set number of memory descriptors.
- Parameters
-
| kip | Pointer to the kernel info page |
| count | Number of memory descriptors |
Definition at line 122 of file kip.
References count().
◆ count() [2/2]
Return number of memory descriptors stored in the kernel info page.
- Parameters
-
| kip | Pointer to the kernel info page |
- Returns
- Number of memory descriptors in the kernel info page.
Definition at line 111 of file kip.
Referenced by all(), all(), and count().
◆ end()
| unsigned long L4::Kip::Mem_desc::end |
( |
| ) |
const |
|
inlinenoexcept |
Return end address of memory descriptor.
- Returns
- End address of memory descriptor
Definition at line 181 of file kip.
Referenced by Mem_desc(), set(), and size().
◆ first()
Get first memory descriptor.
- Parameters
-
| kip | Pointer to the kernel info page |
- Returns
- First memory descriptor stored in the kernel info page
Definition at line 93 of file kip.
References Mem_desc().
Referenced by all(), and all().
◆ is_virtual()
| unsigned L4::Kip::Mem_desc::is_virtual |
( |
| ) |
const |
|
inlinenoexcept |
Return whether the memory descriptor describes a virtual or physical region.
- Returns
- True for virtual region, false for physical region.
Definition at line 213 of file kip.
◆ set()
| void L4::Kip::Mem_desc::set |
( |
unsigned long | start, |
|
|
unsigned long | end, |
|
|
Mem_type | t, |
|
|
unsigned char | st = 0, |
|
|
bool | virt = false, |
|
|
bool | eager = false ) |
|
inlinenoexcept |
Set values of a memory descriptor.
- Parameters
-
| 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 233 of file kip.
References end(), and start().
◆ size()
| unsigned long L4::Kip::Mem_desc::size |
( |
| ) |
const |
|
inlinenoexcept |
Return size of region described by the memory descriptor.
- Returns
- Size of the region described by the memory descriptor
Definition at line 188 of file kip.
References end(), and start().
◆ start()
| unsigned long L4::Kip::Mem_desc::start |
( |
| ) |
const |
|
inlinenoexcept |
Return start address of memory descriptor.
- Returns
- Start address of memory descriptor
Definition at line 174 of file kip.
Referenced by Mem_desc(), set(), and size().
◆ sub_type()
| unsigned char L4::Kip::Mem_desc::sub_type |
( |
| ) |
const |
|
inlinenoexcept |
Return sub-type of the memory descriptor.
- Returns
- Sub-type of the memory descriptor
Definition at line 205 of file kip.
◆ type()
| Mem_type L4::Kip::Mem_desc::type |
( |
| ) |
const |
|
inlinenoexcept |
Return type of the memory descriptor.
- Returns
- Type of the memory descriptor
Definition at line 195 of file kip.
The documentation for this class was generated from the following file: