diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-27 04:39:32 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-27 04:39:32 +0100 |
| commit | 1e1c00c09991846257af4c8e50a177178355d986 (patch) | |
| tree | e6d7b38d3025858711a03af636b77f37a3fbe1aa /kernel/src/cpu/tss.c | |
| parent | 15f3911599a8d005edee46247470afe2a7a0b4aa (diff) | |
MULTITASKING WORKING
Diffstat (limited to 'kernel/src/cpu/tss.c')
| -rw-r--r-- | kernel/src/cpu/tss.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/kernel/src/cpu/tss.c b/kernel/src/cpu/tss.c index f80f8db..45c24dc 100644 --- a/kernel/src/cpu/tss.c +++ b/kernel/src/cpu/tss.c @@ -19,11 +19,17 @@ void init_tss() 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); + uint32_t ist1_stack_size = 1024 * 32; + uint64_t ist1_stack = + (uint64_t)kalloc(ist1_stack_size) + ist1_stack_size - 8; + tss.ist1_low = (uint32_t)ist1_stack; + tss.ist1_high = (uint32_t)(ist1_stack >> 32); + + uint32_t ist2_stack_size = 1024 * 32; + uint64_t ist2_stack = + (uint64_t)kalloc(ist2_stack_size) + ist2_stack_size - 8; + tss.ist2_low = (uint32_t)ist2_stack; + tss.ist2_high = (uint32_t)(ist2_stack >> 32); load_tss(); } |
