forked from xt-sys/exectos
Implement RtlGetStackLimits() routine
This commit is contained in:
@@ -26,7 +26,8 @@ list(APPEND XTOSKRNL_SOURCE
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/memory.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/plist.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/string.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/widestr.c)
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/widestr.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/${ARCH}/dispatch.c)
|
||||
|
||||
# Set module definition SPEC file
|
||||
set_specfile(xtoskrnl.spec)
|
||||
|
33
xtoskrnl/rtl/amd64/dispatch.c
Normal file
33
xtoskrnl/rtl/amd64/dispatch.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: xtoskrnl/rtl/amd64/dispatch.c
|
||||
* DESCRIPTION: Dispatching support for AMD64 architecture
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/**
|
||||
* Returns the stack limits for the current thread.
|
||||
*
|
||||
* @param StackBase
|
||||
* Supplies a pointer to memory area, where the stack base will be stored.
|
||||
*
|
||||
* @param StackLimit
|
||||
* Suppliws a pointer to memory area, where the stack limit will be stored.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
VOID
|
||||
RtlGetStackLimits(OUT PULONG_PTR StackBase,
|
||||
OUT PULONG_PTR StackLimit)
|
||||
{
|
||||
PKTHREAD Thread = KeGetCurrentThread();
|
||||
*StackBase = (ULONG_PTR)Thread->StackBase;
|
||||
*StackLimit = (ULONG_PTR)Thread->StackLimit;
|
||||
}
|
33
xtoskrnl/rtl/i686/dispatch.c
Normal file
33
xtoskrnl/rtl/i686/dispatch.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: xtoskrnl/rtl/i686/dispatch.c
|
||||
* DESCRIPTION: Dispatching support for i686 architecture
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/**
|
||||
* Returns the stack limits for the current thread.
|
||||
*
|
||||
* @param StackBase
|
||||
* Supplies a pointer to memory area, where the stack base will be stored.
|
||||
*
|
||||
* @param StackLimit
|
||||
* Suppliws a pointer to memory area, where the stack limit will be stored.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
VOID
|
||||
RtlGetStackLimits(OUT PULONG_PTR StackBase,
|
||||
OUT PULONG_PTR StackLimit)
|
||||
{
|
||||
PKTHREAD Thread = KeGetCurrentThread();
|
||||
*StackBase = (ULONG_PTR)Thread->StackBase - sizeof(FX_SAVE_AREA);
|
||||
*StackLimit = (ULONG_PTR)Thread->StackLimit;
|
||||
}
|
Reference in New Issue
Block a user