diff --git a/sdk/xtdk/xtstatus.h b/sdk/xtdk/xtstatus.h index f61d7aa..7f450d1 100644 --- a/sdk/xtdk/xtstatus.h +++ b/sdk/xtdk/xtstatus.h @@ -48,7 +48,9 @@ /* XT status code definitions */ #define STATUS_SUCCESS ((XTSTATUS) 0x00000000L) +#define STATUS_NOT_IMPLEMENTED ((XTSTATUS) 0xC0000002L) #define STATUS_INVALID_PARAMETER ((XTSTATUS) 0xC000000DL) +#define STATUS_INSUFFICIENT_RESOURCES ((XTSTATUS) 0xC000009AL) #define STATUS_DEVICE_NOT_READY ((XTSTATUS) 0xC00000A3L) #define STATUS_IO_DEVICE_ERROR ((XTSTATUS) 0xC0000185L) #define STATUS_NOT_FOUND ((XTSTATUS) 0xC0000225L) diff --git a/xtoskrnl/CMakeLists.txt b/xtoskrnl/CMakeLists.txt index e5916f5..c7c9867 100644 --- a/xtoskrnl/CMakeLists.txt +++ b/xtoskrnl/CMakeLists.txt @@ -20,6 +20,7 @@ list(APPEND XTOSKRNL_SOURCE ${XTOSKRNL_SOURCE_DIR}/ke/krnlinit.c ${XTOSKRNL_SOURCE_DIR}/ke/${ARCH}/krnlinit.c ${XTOSKRNL_SOURCE_DIR}/ke/${ARCH}/proc.c + ${XTOSKRNL_SOURCE_DIR}/mm/kpools.c ${XTOSKRNL_SOURCE_DIR}/rtl/atomic.c ${XTOSKRNL_SOURCE_DIR}/rtl/byteswap.c ${XTOSKRNL_SOURCE_DIR}/rtl/memory.c diff --git a/xtoskrnl/mm/kpools.c b/xtoskrnl/mm/kpools.c new file mode 100644 index 0000000..d172bc2 --- /dev/null +++ b/xtoskrnl/mm/kpools.c @@ -0,0 +1,57 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/mm/kpools.c + * DESCRIPTION: Kernel pool memory management + * DEVELOPERS: Rafal Kupiec + */ + +#include + + +/** + * Allocates a new kernel stack. + * + * @param Stack + * Supplies a pointer to the memory area that will contain a new kernel stack. + * + * @param LargeStack + * Determines whether the stack is large or small. + * + * @param SystemNode + * Specifies a preferred node used for new stack on multi-processor systems. + * + * @return This routine returns a status code. + * + * @since XT 1.0 + */ +XTAPI +XTSTATUS +MmAllocateKernelStack(IN PVOID *Stack, + IN BOOLEAN LargeStack, + IN UCHAR SystemNode) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/** + * Destroys a kernel stack and frees page table entry. + * + * @param Stack + * Supplies a pointer to the memory area containing a kernel stack. + * + * @param LargeStack + * Determines whether the stack is large or small. + * + * @return This routine does not return any value. + * + * @since XT 1.0 + */ +XTAPI +VOID +MmFreeKernelStack(IN PVOID Stack, + IN BOOLEAN LargeStack) +{ + UNIMPLEMENTED; +}