diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index 7ec0b7c..630d0c3 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -111,6 +111,7 @@ /* XTOS Kernel stack size */ #define KERNEL_STACK_SIZE 0x8000 +#define KERNEL_STACKS 3 /* XTOS Kernel stack guard pages */ #define KERNEL_STACK_GUARD_PAGES 1 diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 32697c4..86fa1ff 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -130,6 +130,7 @@ /* XTOS Kernel stack size */ #define KERNEL_STACK_SIZE 0x4000 +#define KERNEL_STACKS 2 /* XTOS Kernel stack guard pages */ #define KERNEL_STACK_GUARD_PAGES 1 diff --git a/xtoskrnl/mm/kpool.cc b/xtoskrnl/mm/kpool.cc index 0144efc..b3bc4b0 100644 --- a/xtoskrnl/mm/kpool.cc +++ b/xtoskrnl/mm/kpool.cc @@ -128,7 +128,9 @@ MM::KernelPool::AllocateProcessorStructures(IN ULONG CpuNumber, /* Align address to page size boundary and find a space for processor block */ Address = ROUND_UP((UINT_PTR)ProcessorStructures, MM_PAGE_SIZE); - ProcessorBlock = (PKPROCESSOR_BLOCK)((PUCHAR)Address + (2 * KERNEL_STACK_SIZE) + (GDT_ENTRIES * sizeof(KGDTENTRY))); + ProcessorBlock = (PKPROCESSOR_BLOCK)((PUCHAR)Address + + (KERNEL_STACKS * KERNEL_STACK_SIZE) + + (GDT_ENTRIES * sizeof(KGDTENTRY))); /* Store processor number in the processor block */ ProcessorBlock->CpuNumber = CpuNumber;