summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/hal/gdt.c
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-13 12:11:20 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-13 12:11:20 -0400
commit1f4260648f02db1b4fe8c60fe36f936125042880 (patch)
treeeca85c6026c9c403a03f4706c38782bae8fb7445 /arch/x86_64/hal/gdt.c
parent24136157aae8c88f9397903157adf8f6237d73c0 (diff)
downloadjove-kernel-1f4260648f02db1b4fe8c60fe36f936125042880.tar.gz
jove-kernel-1f4260648f02db1b4fe8c60fe36f936125042880.tar.bz2
jove-kernel-1f4260648f02db1b4fe8c60fe36f936125042880.zip
add usermode io access obj
Diffstat (limited to 'arch/x86_64/hal/gdt.c')
-rw-r--r--arch/x86_64/hal/gdt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86_64/hal/gdt.c b/arch/x86_64/hal/gdt.c
index a64bdc1..fc7aa8b 100644
--- a/arch/x86_64/hal/gdt.c
+++ b/arch/x86_64/hal/gdt.c
@@ -53,6 +53,7 @@ void
gdt_setup(processor_t *processor)
{
memcpy(processor->gdt, _gdt, sizeof(struct gdt_entry) * (GDT_TSS_HI+1));
+ memset(processor->iopb, 0, 0x2000);
struct gdt_descriptor gdtr;
gdtr.base = (uintptr_t)&processor->gdt;
@@ -76,6 +77,8 @@ gdt_setup(processor_t *processor)
tss_lo->limit_0_15 = (uint16_t)(tss_limit & 0xFFFF);
tss_lo->limit_flg |= (uint8_t)((tss_limit >> 16) & 0xF);
+ processor->tss.iopb = sizeof(struct tss);
+
extern void load_tss(void);
load_tss();
}