[boot] Restructure boot paging and program loading
Restructuring paging into an object that carries its page cache with it and makes for simpler code. Program loading is also changed to not copy the pages loaded from the file into new pages - we can impose a new constraint that anything loaded by boot have a simple, page-aligned layout so that we can just map the existing pages into the right addresses. Also included are some linker script changes to help accommodate this.
This commit is contained in:
@@ -10,6 +10,11 @@ namespace uefi {
|
||||
}
|
||||
|
||||
namespace boot {
|
||||
|
||||
namespace paging {
|
||||
class pager;
|
||||
}
|
||||
|
||||
namespace memory {
|
||||
|
||||
class efi_mem_map;
|
||||
@@ -42,7 +47,7 @@ void mark_pointer_fixup(void **p);
|
||||
/// \arg pml4 The root page table for the new mappings
|
||||
/// \arg map The UEFI memory map, used to update runtime services
|
||||
void virtualize(
|
||||
void *pml4,
|
||||
paging::pager &pager,
|
||||
efi_mem_map &map,
|
||||
uefi::runtime_services *rs);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user