Eliminate unnecessary page map commits
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 37s
Builds / ExectOS (i686, debug) (push) Successful in 28s
Builds / ExectOS (amd64, release) (push) Successful in 39s

This commit is contained in:
2026-03-13 14:09:45 +01:00
parent c71d58b737
commit 368c8ee5b2

View File

@@ -480,7 +480,7 @@ Xtos::InitializeLoaderBlock(IN PXTBL_PAGE_MAPPING PageMap,
XtLdrProtocol->Memory.CopyMemory((PVOID)((UINT_PTR)LoaderBlock + sizeof(KERNEL_INITIALIZATION_BLOCK)),
Parameters->Parameters, ParametersSize);
/* HACK: Commit page map to avoid memory leaks (AGAIN!) */
/* Commit mappings */
XtLdrProtocol->Memory.CommitPageMap(PageMap);
/* Initialize system resources list */
@@ -725,14 +725,6 @@ Xtos::RunBootSequence(IN PEFI_FILE_HANDLE BootDir,
return Status;
}
/* Commit mappings */
Status = XtLdrProtocol->Memory.CommitPageMap(&PageMap);
if(Status != STATUS_EFI_SUCCESS)
{
XtLdrProtocol->Debug.Print(L"Failed to commit hardware mappings (Pass 1)\n");
return Status;
}
/* Store virtual address of kernel initialization block for future kernel call */
KernelParameters = (PKERNEL_INITIALIZATION_BLOCK)VirtualAddress;
@@ -745,15 +737,6 @@ Xtos::RunBootSequence(IN PEFI_FILE_HANDLE BootDir,
return Status;
}
/* HACK: Commit mappings again to include the kernel initialization block */
Status = XtLdrProtocol->Memory.CommitPageMap(&PageMap);
if(Status != STATUS_EFI_SUCCESS)
{
/* Failed to build page map */
XtLdrProtocol->Debug.Print(L"Failed to build page map (Status code: %zX)\n", Status);
return Status;
}
/* Get kernel entry point */
PeCoffProtocol->GetEntryPoint(ImageContext, (PVOID*)&KernelEntryPoint);