aboutsummaryrefslogtreecommitdiffstats
path: root/bootloader/vmmem.c
diff options
context:
space:
mode:
authorGravatar ornitorrincos 2026-08-18 12:15:05 +0200
committerGravatar ornitorrincos 2026-08-18 12:15:05 +0200
commit132d3236bb884433bf94e961f6d32264e0334aec (patch)
tree06638976b06f019ea4037175ff228f8271057c44 /bootloader/vmmem.c
Diffstat (limited to '')
-rw-r--r--bootloader/vmmem.c25
1 files changed, 25 insertions, 0 deletions
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);
+}
+