From 2d7bc823503167276c6d3c40500c3055d4f38938 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Tue, 2 Jul 2024 21:19:49 -0400 Subject: kernel/amd64: Handle the user GS segment register This commit introduces usage of swapgs to switch out the GS register with the user GS register. An md_td_kick() function is also introduced to start up user threads. The this_cpu() function uses the GS register to read the current CPU structure using a new "self" field. Signed-off-by: Ian Moffett --- sys/include/arch/amd64/cpu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'sys/include/arch/amd64/cpu.h') diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h index 16936e9..2ce363c 100644 --- a/sys/include/arch/amd64/cpu.h +++ b/sys/include/arch/amd64/cpu.h @@ -42,6 +42,7 @@ struct cpu_info { size_t lapic_tmr_freq; struct tss_entry *tss; struct proc *curtd; + struct cpu_info *self; }; void cpu_startup(struct cpu_info *ci); -- cgit v1.2.3