Implement architecture-specific user probe address retrieval
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 34s
Builds / ExectOS (i686, debug) (push) Successful in 32s
Builds / ExectOS (amd64, release) (push) Successful in 1m6s
Builds / ExectOS (i686, release) (push) Successful in 1m5s

This commit is contained in:
2026-06-30 21:41:08 +02:00
parent 91946ae88f
commit f9cbe78f84
9 changed files with 73 additions and 0 deletions

View File

@@ -755,6 +755,21 @@ MM::PageMapBasic::GetPxeVirtualAddress(IN PMMPXE PxePointer)
return (PVOID)(((LONGLONG)PxePointer << 52) >> 16);
}
/**
* Retrieves the maximum valid memory address accessible to user-mode applications.
*
* @return This routine returns the user-mode probe address boundary.
*
* @since XT 1.0
*/
XTAPI
ULONG_PTR
MM::PageMapBasic::GetUserProbeAddress(VOID)
{
/* Return user probe address */
return MM_USER_PROBE_ADDRESS;
}
/**
* Initializes page map information for basic paging (PML4).
*
@@ -852,6 +867,21 @@ MM::PageMapXpa::GetPxeVirtualAddress(IN PMMPXE PxePointer)
return (PVOID)(((LONGLONG)PxePointer << 43) >> 7);
}
/**
* Retrieves the maximum valid memory address accessible to user-mode applications.
*
* @return This routine returns the user-mode probe address boundary.
*
* @since XT 1.0
*/
XTAPI
ULONG_PTR
MM::PageMapXpa::GetUserProbeAddress(VOID)
{
/* Return user probe address */
return MM_USER_PROBE_LA57_ADDRESS;
}
/**
* Initializes page map information for XPA paging (PML5).
*

View File

@@ -173,6 +173,21 @@ MM::PageMap::GetPteOffset(IN PVOID Address)
return ((((ULONG_PTR)(Address)) >> MM_PTI_SHIFT) & (PageMapInfo.Xpa ? 0x1FF : 0x3FF));
}
/**
* Retrieves the maximum valid memory address accessible to user-mode applications.
*
* @return This routine returns the user-mode probe address boundary.
*
* @since XT 1.0
*/
XTAPI
ULONG_PTR
MM::PageMap::GetUserProbeAddress(VOID)
{
/* Return user probe address */
return MM_USER_PROBE_ADDRESS;
}
/**
* Gets the status of Extended Paging Address (XPA) mode.
*

View File

@@ -470,6 +470,21 @@ MM::Paging::GetPteVirtualAddress(IN PMMPTE PtePointer)
return PmlRoutines->GetPteVirtualAddress(PtePointer);
}
/**
* Retrieves the maximum valid memory address accessible to user-mode applications.
*
* @return This routine returns the user-mode probe address boundary.
*
* @since XT 1.0
*/
XTAPI
ULONG_PTR
MM::Paging::GetUserProbeAddress(VOID)
{
/* Return user probe address */
return PmlRoutines->GetUserProbeAddress();
}
/**
* Gets current status of eXtended Physical Addressing (XPA).
*