UefiCpuPkg/CpuDxe: clean up PAGE_TABLE_LIB_PAGING_CONTEXT usage.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1039 Current implementation not checks system mode before using PAGE_TABLE_LIB_PAGING_CONTEXT.ContextData.X64 or PAGE_TABLE_LIB_PAGING_CONTEXT.ContextData.Ia32. This patch check the mode before using the correct one. Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
34
UefiCpuPkg/CpuDxe/X64/PagingAttribute.c
Normal file
34
UefiCpuPkg/CpuDxe/X64/PagingAttribute.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/** @file
|
||||
Return Paging attribute.
|
||||
|
||||
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include "CpuPageTable.h"
|
||||
|
||||
|
||||
/**
|
||||
Get paging details.
|
||||
|
||||
@param PagingContextData The paging context.
|
||||
@param PageTableBase Return PageTableBase field.
|
||||
@param Attributes Return Attributes field.
|
||||
|
||||
**/
|
||||
VOID
|
||||
GetPagingDetails (
|
||||
IN PAGE_TABLE_LIB_PAGING_CONTEXT_DATA *PagingContextData,
|
||||
OUT UINTN **PageTableBase OPTIONAL,
|
||||
OUT UINT32 **Attributes OPTIONAL
|
||||
)
|
||||
{
|
||||
if (PageTableBase != NULL) {
|
||||
*PageTableBase = &PagingContextData->X64.PageTableBase;
|
||||
}
|
||||
if (Attributes != NULL) {
|
||||
*Attributes = &PagingContextData->X64.Attributes;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user