diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-27 01:59:33 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-27 01:59:33 +0100 |
| commit | 15f3911599a8d005edee46247470afe2a7a0b4aa (patch) | |
| tree | 3113b84e1ddddc1f4937ca5596d8e32aacc4f51f /kernel/src/cpu/tss.c | |
| parent | a164ca67174ba6179170dea573479f23122513cc (diff) | |
almost done multitasking
Diffstat (limited to 'kernel/src/cpu/tss.c')
| -rw-r--r-- | kernel/src/cpu/tss.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/src/cpu/tss.c b/kernel/src/cpu/tss.c index cdfe2cc..f80f8db 100644 --- a/kernel/src/cpu/tss.c +++ b/kernel/src/cpu/tss.c @@ -14,10 +14,16 @@ void init_tss() { memset(&tss, 0, sizeof(tss_type)); tss.iopb = sizeof(tss_type); - uint32_t stack_size = 4096 * 4; + uint32_t stack_size = 1024 * 16; uint64_t stack = (uint64_t)kalloc(stack_size) + stack_size - 8; tss.rsp0_low = (uint32_t)stack; tss.rsp0_high = (uint32_t)(stack >> 32); + uint32_t ist_stack_size = 1024 * 32; + uint64_t ist_stack = + (uint64_t)kalloc(ist_stack_size) + ist_stack_size - 8; + tss.ist1_low = (uint32_t)ist_stack; + tss.ist1_high = (uint32_t)(ist_stack >> 32); + load_tss(); } |
