From 410286d0126698331af935747b336b5db67ee7ff Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Mon, 5 Jan 2026 16:48:26 +0100 Subject: [PATCH] Replace ULONG with PFN_COUNT in system PTE variables --- xtoskrnl/includes/mm/amd64/pte.hh | 12 ++++++------ xtoskrnl/includes/mm/i686/pte.hh | 12 ++++++------ xtoskrnl/mm/data.cc | 2 +- xtoskrnl/mm/pte.cc | 11 ++++++----- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/xtoskrnl/includes/mm/amd64/pte.hh b/xtoskrnl/includes/mm/amd64/pte.hh index 0470c7d..23d44e1 100644 --- a/xtoskrnl/includes/mm/amd64/pte.hh +++ b/xtoskrnl/includes/mm/amd64/pte.hh @@ -22,12 +22,12 @@ namespace MM STATIC PMMPTE SystemPteBase; STATIC PMMPTE SystemPtesEnd[MaximumPtePoolTypes]; STATIC PMMPTE SystemPtesStart[MaximumPtePoolTypes]; - STATIC ULONG TotalSystemFreePtes[MaximumPtePoolTypes]; + STATIC PFN_COUNT TotalSystemFreePtes[MaximumPtePoolTypes]; STATIC MMPTE ValidPte; public: STATIC XTAPI BOOLEAN AddressValid(IN PVOID VirtualAddress); - STATIC XTAPI ULONG GetPtesPerPage(VOID); + STATIC XTAPI PFN_COUNT GetPtesPerPage(VOID); STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID); STATIC XTAPI PMMPTE GetValidPte(VOID); STATIC XTAPI VOID InitializePageTable(VOID); @@ -49,19 +49,19 @@ namespace MM PVOID EndAddress, PMMPXE TemplatePxe); STATIC XTAPI VOID ReleaseSystemPtes(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType); - STATIC XTAPI PMMPTE ReserveSystemPtes(IN ULONG NumberOfPtes, + STATIC XTAPI PMMPTE ReserveSystemPtes(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType); private: - STATIC XTAPI BOOLEAN FindFreeCluster(IN ULONG NumberOfPtes, + STATIC XTAPI BOOLEAN FindFreeCluster(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType, OUT PMMPTE *FoundCluster, OUT PMMPTE *PreviousClusterNode); STATIC XTAPI ULONG GetClusterSize(IN PMMPTE Pte); STATIC XTAPI VOID InitializeSystemPtePool(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE PoolType); }; } diff --git a/xtoskrnl/includes/mm/i686/pte.hh b/xtoskrnl/includes/mm/i686/pte.hh index 476b0b9..879579b 100644 --- a/xtoskrnl/includes/mm/i686/pte.hh +++ b/xtoskrnl/includes/mm/i686/pte.hh @@ -22,12 +22,12 @@ namespace MM STATIC PMMPTE SystemPteBase; STATIC PMMPTE SystemPtesEnd[MaximumPtePoolTypes]; STATIC PMMPTE SystemPtesStart[MaximumPtePoolTypes]; - STATIC ULONG TotalSystemFreePtes[MaximumPtePoolTypes]; + STATIC PFN_COUNT TotalSystemFreePtes[MaximumPtePoolTypes]; STATIC MMPTE ValidPte; public: STATIC XTAPI BOOLEAN AddressValid(IN PVOID VirtualAddress); - STATIC XTAPI ULONG GetPtesPerPage(VOID); + STATIC XTAPI PFN_COUNT GetPtesPerPage(VOID); STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID); STATIC XTAPI PMMPTE GetValidPte(VOID); STATIC XTAPI VOID InitializePageTable(VOID); @@ -43,19 +43,19 @@ namespace MM PVOID EndAddress, PMMPTE TemplatePte); STATIC XTAPI VOID ReleaseSystemPtes(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType); - STATIC XTAPI PMMPTE ReserveSystemPtes(IN ULONG NumberOfPtes, + STATIC XTAPI PMMPTE ReserveSystemPtes(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType); private: - STATIC XTAPI BOOLEAN FindFreeCluster(IN ULONG NumberOfPtes, + STATIC XTAPI BOOLEAN FindFreeCluster(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType, OUT PMMPTE *FoundCluster, OUT PMMPTE *PreviousClusterNode); STATIC XTAPI ULONG GetClusterSize(IN PMMPTE Pte); STATIC XTAPI VOID InitializeSystemPtePool(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE PoolType); }; } diff --git a/xtoskrnl/mm/data.cc b/xtoskrnl/mm/data.cc index be3c853..ffbd85a 100644 --- a/xtoskrnl/mm/data.cc +++ b/xtoskrnl/mm/data.cc @@ -107,7 +107,7 @@ PMMPTE MM::Pte::SystemPtesEnd[MaximumPtePoolTypes]; PMMPTE MM::Pte::SystemPtesStart[MaximumPtePoolTypes]; /* Total count of available System PTEs */ -ULONG MM::Pte::TotalSystemFreePtes[MaximumPtePoolTypes]; +PFN_COUNT MM::Pte::TotalSystemFreePtes[MaximumPtePoolTypes]; /* Template PTE entry containing standard flags for a valid, present kernel page */ MMPTE MM::Pte::ValidPte; diff --git a/xtoskrnl/mm/pte.cc b/xtoskrnl/mm/pte.cc index 915461f..8e715f3 100644 --- a/xtoskrnl/mm/pte.cc +++ b/xtoskrnl/mm/pte.cc @@ -30,7 +30,7 @@ */ XTAPI BOOLEAN -MM::Pte::FindFreeCluster(IN ULONG NumberOfPtes, +MM::Pte::FindFreeCluster(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType, OUT PMMPTE *FoundCluster, OUT PMMPTE *PreviousClusterNode) @@ -97,7 +97,7 @@ MM::Pte::GetClusterSize(IN PMMPTE Pte) * @since XT 1.0 */ XTAPI -ULONG +PFN_COUNT MM::Pte::GetPtesPerPage(VOID) { /* Calculate and return the number of PTEs per page */ @@ -138,7 +138,7 @@ MM::Pte::GetValidPte() XTAPI VOID MM::Pte::InitializeSystemPtePool(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE PoolType) { /* Set the system PTE base address */ @@ -293,6 +293,7 @@ MM::Pte::MapPTE(PVOID StartAddress, } } + /** * Releases a block of system PTEs into a specified pool. * @@ -312,7 +313,7 @@ MM::Pte::MapPTE(PVOID StartAddress, XTAPI VOID MM::Pte::ReleaseSystemPtes(IN PMMPTE StartingPte, - IN ULONG NumberOfPtes, + IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType) { PMMPTE NextPte, PreviousPte, ReleasedPte; @@ -428,7 +429,7 @@ MM::Pte::ReleaseSystemPtes(IN PMMPTE StartingPte, */ XTAPI PMMPTE -MM::Pte::ReserveSystemPtes(IN ULONG NumberOfPtes, +MM::Pte::ReserveSystemPtes(IN PFN_COUNT NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType) { PMMPTE NextPte, PreviousPte, ReservedPte;