From 132d3236bb884433bf94e961f6d32264e0334aec Mon Sep 17 00:00:00 2001 From: ornitorrincos Date: Tue, 18 Aug 2026 12:15:05 +0200 Subject: --- bootloader/vmmem.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 bootloader/vmmem.c (limited to 'bootloader/vmmem.c') diff --git a/bootloader/vmmem.c b/bootloader/vmmem.c new file mode 100644 index 0000000..f15c9ac --- /dev/null +++ b/bootloader/vmmem.c @@ -0,0 +1,25 @@ +#include "vmmem.h" + +//#include "paging_struct.h" + + +EFI_STATUS EFIAPI SetVM(IN UINTN size, IN UINTN descriptorsize, IN UINTN descriptorversion, EFI_MEMORY_DESCRIPTOR * map, void * kernel) +{ + + // the code for setting up paging should go here + + // edit the memory mapping so that the uefi runtime knows about it + + EFI_MEMORY_DESCRIPTOR * tmp = map; + + UINTN elements = size/descriptorsize; + UINTN i; + for(i = 0; i < elements; ++i) + { + tmp = (EFI_MEMORY_DESCRIPTOR*)(((EFI_PHYSICAL_ADDRESS)tmp + descriptorsize)); + tmp->VirtualStart = tmp->PhysicalStart; + } + + return uefi_call_wrapper(RT->SetVirtualAddressMap, 4, size, descriptorsize, descriptorversion, map); +} + -- cgit v1.2.3-70-g09d2