Unify initial stack reservation size calculation
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 32s
Builds / ExectOS (i686, debug) (push) Successful in 44s
Builds / ExectOS (amd64, debug) (push) Successful in 34s
Builds / ExectOS (amd64, release) (push) Successful in 45s

This commit is contained in:
2026-05-22 18:40:07 +02:00
parent d8cb7c9242
commit 6eb0b4d982
4 changed files with 8 additions and 3 deletions

View File

@@ -183,6 +183,9 @@
#define KTRAP_FRAME_ALIGN 0x10 #define KTRAP_FRAME_ALIGN 0x10
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME) #define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
/* Initial stack reservation size */
#define KTHREAD_STACK_INITIAL_RESERVE ((sizeof(KTHREAD_INIT_FRAME) + STACK_ALIGNMENT - 1) & ~(STACK_ALIGNMENT - 1))
/* Return address size pushed by 'call' instruction */ /* Return address size pushed by 'call' instruction */
#define KRETURN_ADDRESS_SIZE 0x8 #define KRETURN_ADDRESS_SIZE 0x8

View File

@@ -201,6 +201,9 @@
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME) #define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
#define NPX_FRAME_SIZE 0x210 #define NPX_FRAME_SIZE 0x210
/* Initial stack reservation size */
#define KTHREAD_STACK_INITIAL_RESERVE ((sizeof(KTHREAD_INIT_FRAME) + STACK_ALIGNMENT - 1) & ~(STACK_ALIGNMENT - 1))
/* Number of supported extensions */ /* Number of supported extensions */
#define MAXIMUM_SUPPORTED_EXTENSION 512 #define MAXIMUM_SUPPORTED_EXTENSION 512

View File

@@ -213,7 +213,6 @@ KE::KernelInit::SwitchBootStack(VOID)
: :
: [Stack] "r" (Stack), : [Stack] "r" (Stack),
[TargetRoutine] "r" (StartKernel), [TargetRoutine] "r" (StartKernel),
[TotalSize] "i" (FLOATING_SAVE_AREA_SIZE + KEXCEPTION_FRAME_SIZE + [TotalSize] "i" (KTHREAD_STACK_INITIAL_RESERVE)
KSWITCH_FRAME_SIZE + KRETURN_ADDRESS_SIZE)
: "memory", "rbp", "rsp"); : "memory", "rbp", "rsp");
} }

View File

@@ -215,6 +215,6 @@ KE::KernelInit::SwitchBootStack(VOID)
: [Cr0Value] "i" (CR0_EM | CR0_MP | CR0_TS), : [Cr0Value] "i" (CR0_EM | CR0_MP | CR0_TS),
[Stack] "r" (Stack), [Stack] "r" (Stack),
[TargetRoutine] "r" (StartKernel), [TargetRoutine] "r" (StartKernel),
[TotalSize] "i" (KTRAP_FRAME_ALIGN + KTRAP_FRAME_SIZE + NPX_FRAME_SIZE + KRETURN_ADDRESS_SIZE) [TotalSize] "i" (KTHREAD_STACK_INITIAL_RESERVE)
: "ebp", "esp", "memory"); : "ebp", "esp", "memory");
} }