Abstract base mapping address retrieval
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 23s
Builds / ExectOS (i686, release) (push) Successful in 26s
Builds / ExectOS (i686, debug) (push) Successful in 38s
Builds / ExectOS (amd64, release) (push) Successful in 39s

This commit is contained in:
2026-01-12 23:03:13 +01:00
parent 15edd98242
commit 11f7c25713
4 changed files with 33 additions and 4 deletions

View File

@@ -554,7 +554,7 @@ Xtos::LoadModule(IN PEFI_FILE_HANDLE SystemDir,
}
/* Relocate the PE/COFF image file */
Status = PeCoffProtocol->RelocateImage(*ImageContext, KSEG0_BASE + (ULONGLONG)(*ImageContext)->PhysicalAddress);
Status = PeCoffProtocol->RelocateImage(*ImageContext, GetBaseMappingAddress() | (ULONGLONG)(*ImageContext)->PhysicalAddress);
if(Status != STATUS_EFI_SUCCESS)
{
/* Unable to relocate the file */
@@ -640,7 +640,7 @@ Xtos::MapMemory(IN OUT PXTBL_PAGE_MAPPING PageMap,
if(KernelMapping)
{
/* Map memory based on kernel base address */
BaseAddress = KSEG0_BASE;
BaseAddress = GetBaseMappingAddress();
}
else
{
@@ -666,7 +666,7 @@ XTCDECL
PVOID
Xtos::PhysicalAddressToVirtual(PVOID PhysicalAddress)
{
return (PVOID)((ULONG_PTR)PhysicalAddress | KSEG0_BASE);
return (PVOID)((ULONG_PTR)PhysicalAddress | GetBaseMappingAddress());
}
/**
@@ -762,7 +762,7 @@ Xtos::RunBootSequence(IN PEFI_FILE_HANDLE BootDir,
/* Initialize virtual memory mappings */
XtLdrProtocol->Memory.InitializePageMap(&PageMap, DeterminePagingLevel(Parameters->Parameters), Size4K);
Status = XtLdrProtocol->Memory.MapEfiMemory(&PageMap, KSEG0_BASE);
Status = XtLdrProtocol->Memory.MapEfiMemory(&PageMap, GetBaseMappingAddress());
if(Status != STATUS_EFI_SUCCESS)
{
return Status;