From e9e2ecab2d931069d5f9afaae313e09d42bee6e9 Mon Sep 17 00:00:00 2001 From: Ray Ni Date: Mon, 18 Jul 2022 17:00:29 +0800 Subject: [PATCH] CpuPageTableLib: define IA32_PAGE_LEVEL enum type internally The change doesn't change functionality behavior. Signed-off-by: Ray Ni Cc: Zhiguang Liu Reviewed-by: Eric Dong --- UefiCpuPkg/Library/CpuPageTableLib/CpuPageTable.h | 8 ++++++++ UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c | 12 ++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTable.h b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTable.h index 627f84e4e2..8d856d7c7e 100644 --- a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTable.h +++ b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTable.h @@ -20,6 +20,14 @@ #define REGION_LENGTH(l) LShiftU64 (1, (l) * 9 + 3) +typedef enum { + Pte = 1, + Pde = 2, + Pdpte = 3, + Pml4 = 4, + Pml5 = 5 +} IA32_PAGE_LEVEL; + typedef struct { UINT64 Present : 1; // 0 = Not present in memory, 1 = Present in memory UINT64 ReadWrite : 1; // 0 = Read-Only, 1= Read/Write diff --git a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c index 13af9a8cdd..37713ec659 100644 --- a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c +++ b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c @@ -245,8 +245,8 @@ PageTableLibMapInLevel ( IN BOOLEAN Modify, IN VOID *Buffer, IN OUT INTN *BufferSize, - IN UINTN Level, - IN UINTN MaxLeafLevel, + IN IA32_PAGE_LEVEL Level, + IN IA32_PAGE_LEVEL MaxLeafLevel, IN UINT64 LinearAddress, IN UINT64 Length, IN UINT64 Offset, @@ -572,8 +572,8 @@ PageTableMap ( IA32_PAGING_ENTRY TopPagingEntry; INTN RequiredSize; UINT64 MaxLinearAddress; - UINTN MaxLevel; - UINTN MaxLeafLevel; + IA32_PAGE_LEVEL MaxLevel; + IA32_PAGE_LEVEL MaxLeafLevel; IA32_MAP_ATTRIBUTE ParentAttribute; if ((PagingMode == Paging32bit) || (PagingMode == PagingPae) || (PagingMode >= PagingModeMax)) { @@ -606,8 +606,8 @@ PageTableMap ( return RETURN_INVALID_PARAMETER; } - MaxLeafLevel = (UINT8)PagingMode; - MaxLevel = (UINT8)(PagingMode >> 8); + MaxLeafLevel = (IA32_PAGE_LEVEL)(UINT8)PagingMode; + MaxLevel = (IA32_PAGE_LEVEL)(UINT8)(PagingMode >> 8); MaxLinearAddress = LShiftU64 (1, 12 + MaxLevel * 9); if ((LinearAddress > MaxLinearAddress) || (Length > MaxLinearAddress - LinearAddress)) { -- 2.39.2