X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fntoskrnl%2Frtl%2Flibsupp.c;h=8ff65d51a92ff8694b66fc70f705e4f0f7a91166;hp=7e4ee49dcf49f81e96a2ef9d077444e3fbba06ba;hb=cc5c0a08164f732809d06487a52217e788cd0324;hpb=e818f18502b09fe1584af9d09ca6bd5005d4a6a5 diff --git a/reactos/ntoskrnl/rtl/libsupp.c b/reactos/ntoskrnl/rtl/libsupp.c index 7e4ee49dcf4..8ff65d51a92 100644 --- a/reactos/ntoskrnl/rtl/libsupp.c +++ b/reactos/ntoskrnl/rtl/libsupp.c @@ -28,6 +28,30 @@ SIZE_T RtlpAllocDeallocQueryBufferSize = 128; /* FUNCTIONS *****************************************************************/ +PVOID +NTAPI +RtlpLookupModuleBase( + PVOID Address) +{ + PLDR_DATA_TABLE_ENTRY LdrEntry; + BOOLEAN InSystem; + PVOID p; + + /* Get the base for this file */ + if ((ULONG_PTR)Address > (ULONG_PTR)MmHighestUserAddress) + { + /* We are in kernel */ + p = KiPcToFileHeader(Address, &LdrEntry, FALSE, &InSystem); + } + else + { + /* We are in user land */ + p = KiRosPcToUserFileHeader(Address, &LdrEntry); + } + + return p; +} + VOID NTAPI RtlInitializeRangeListPackage(VOID) @@ -218,7 +242,7 @@ RtlpHandleDpcStackException(IN PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, return FALSE; } -#ifndef _ARM_ +#if !defined(_ARM_) && !defined(_AMD64_) BOOLEAN NTAPI @@ -413,6 +437,19 @@ RtlWalkFrameChain(OUT PVOID *Callers, #endif +#ifdef _AMD64_ +VOID +NTAPI +RtlpGetStackLimits( + OUT PULONG_PTR LowLimit, + OUT PULONG_PTR HighLimit) +{ + PKTHREAD CurrentThread = KeGetCurrentThread(); + *HighLimit = (ULONG_PTR)CurrentThread->InitialStack; + *LowLimit = (ULONG_PTR)CurrentThread->StackLimit; +} +#endif + /* RTL Atom Tables ************************************************************/ NTSTATUS