diff options
| author | 2026-08-18 12:15:05 +0200 | |
|---|---|---|
| committer | 2026-08-18 12:15:05 +0200 | |
| commit | 132d3236bb884433bf94e961f6d32264e0334aec (patch) | |
| tree | 06638976b06f019ea4037175ff228f8271057c44 /bootloader/vmmem.c | |
Diffstat (limited to 'bootloader/vmmem.c')
| -rw-r--r-- | bootloader/vmmem.c | 25 |
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); +} + |
