mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
SysCall: Refactored MakeUserPageTableTemplate().
This commit is contained in:
parent
558889562f
commit
84ab39c635
@ -13,7 +13,7 @@
|
||||
VOID
|
||||
EFIAPI
|
||||
MakeUserPageTableTemplate (
|
||||
OUT VOID **UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplateSize
|
||||
)
|
||||
{
|
||||
@ -83,7 +83,7 @@ MakeUserPageTableTemplate (
|
||||
);
|
||||
}
|
||||
|
||||
*UserPageTableTemplate = (VOID *)PageMap;
|
||||
*UserPageTableTemplate = (UINTN)PageMap;
|
||||
*UserPageTableTemplateSize = EFI_PAGES_TO_SIZE (TotalPagesNum);
|
||||
}
|
||||
|
||||
|
@ -19,8 +19,6 @@ VOID *gRing3Interfaces;
|
||||
UINTN gUartBaseAddress;
|
||||
|
||||
UEFI_IMAGE_RECORD *mDxeRing3;
|
||||
VOID *mUserPageTableTemplate;
|
||||
UINTN mUserPageTableTemplateSize;
|
||||
EXCEPTION_ADDRESSES *mExceptionAddresses;
|
||||
|
||||
extern UINTN SysCallBase;
|
||||
@ -29,7 +27,7 @@ extern UINTN SysCallEnd;
|
||||
VOID
|
||||
EFIAPI
|
||||
MakeUserPageTableTemplate (
|
||||
OUT VOID **UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplateSize
|
||||
);
|
||||
|
||||
@ -195,8 +193,6 @@ InitializeRing3 (
|
||||
gRing3Data->SystemTable.NumberOfTableEntries
|
||||
);
|
||||
|
||||
MakeUserPageTableTemplate (&mUserPageTableTemplate, &mUserPageTableTemplateSize);
|
||||
|
||||
mExceptionAddresses = GetExceptionAddresses ();
|
||||
|
||||
return Status;
|
||||
@ -209,15 +205,17 @@ InitializeUserPageTable (
|
||||
)
|
||||
{
|
||||
UINTN UserPageTable;
|
||||
UINTN UserPageTableSize;
|
||||
UEFI_IMAGE_RECORD_SEGMENT *ImageRecordSegment;
|
||||
UINTN SectionAddress;
|
||||
UINT32 Index;
|
||||
UEFI_IMAGE_RECORD *UserImageRecord;
|
||||
IA32_DESCRIPTOR IdtDescriptor;
|
||||
|
||||
UserPageTable = (UINTN)AllocatePages (EFI_SIZE_TO_PAGES (mUserPageTableTemplateSize));
|
||||
|
||||
CopyMem ((VOID *)UserPageTable, mUserPageTableTemplate, mUserPageTableTemplateSize);
|
||||
//
|
||||
// TODO: Remove ASSERTs, add proper checks and return status.
|
||||
//
|
||||
MakeUserPageTableTemplate (&UserPageTable, &UserPageTableSize);
|
||||
|
||||
//
|
||||
// Map gRing3Data, gRing3Interfaces, gRing3CallStackBase, DxeRing3
|
||||
|
@ -14,7 +14,7 @@
|
||||
VOID
|
||||
EFIAPI
|
||||
MakeUserPageTableTemplate (
|
||||
OUT VOID **UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplate,
|
||||
OUT UINTN *UserPageTableTemplateSize
|
||||
)
|
||||
{
|
||||
@ -280,7 +280,7 @@ MakeUserPageTableTemplate (
|
||||
ZeroMem (PageMapLevel5Entry, (512 - IndexOfPml5Entries) * sizeof (PAGE_MAP_AND_DIRECTORY_POINTER));
|
||||
}
|
||||
|
||||
*UserPageTableTemplate = (VOID *)PageMap;
|
||||
*UserPageTableTemplate = (UINTN)PageMap;
|
||||
*UserPageTableTemplateSize = EFI_PAGES_TO_SIZE (TotalPagesNum);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user