|
ArvernOS
|
#include <stdint.h>Data Structures | |
| struct | memory_region_t |
| struct | memory_regions_t |
| The physical memory map: a contiguous array of regions and its length. More... | |
| struct | memory_reserved_areas_t |
| struct | memory_framebuffer_t |
Typedefs | |
| typedef void(*) | memory_section_map_fn(uint64_t addr, uint64_t size, uint32_t flags) |
Physical memory handoff between the board's bootloader and the MMU.
A board learns the physical memory layout from its bootloader and normalizes it here, so that the architecture's frame allocator and paging code stay board-agnostic.
| typedef void(*) memory_section_map_fn(uint64_t addr, uint64_t size, uint32_t flags) |
Called by memory_map_kernel_sections() for every allocated section of the kernel image.
| addr | the section start address |
| size | the section size in bytes |
| flags | a combination of MEMORY_SECTION_* |
| memory_framebuffer_t memory_get_framebuffer | ( | ) |
Returns the description of the linear framebuffer.
| memory_regions_t memory_get_regions | ( | ) |
Returns the physical memory map reported by the bootloader.
| memory_reserved_areas_t memory_get_reserved_areas | ( | ) |
Returns the physical address ranges reserved by the bootloader.
| void memory_map_kernel_sections | ( | memory_section_map_fn | map | ) |
Invokes map for every allocated section of the kernel image, so that paging can identity map each section with the right permissions.
| map | the callback to invoke for each section |