aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/kernel/cpu
diff options
context:
space:
mode:
authorFabian Imhof <fabian.imhof@ost.ch>2025-04-10 12:11:55 +0000
committerFabian Imhof <fabian.imhof@ost.ch>2025-04-10 12:11:55 +0000
commitdff78de795a89c181e9c94b26db2f16988e8f4d6 (patch)
treeac19416b7b3ff76f58c4b3deeacbf64bb4cbad84 /arch/x86_64/src/kernel/cpu
parent62d7fa83e831e84ea851d97b5c957146880ad69a (diff)
downloadteachos-dff78de795a89c181e9c94b26db2f16988e8f4d6.tar.xz
teachos-dff78de795a89c181e9c94b26db2f16988e8f4d6.zip
move context_switch function and environment into different directory
Diffstat (limited to 'arch/x86_64/src/kernel/cpu')
-rw-r--r--arch/x86_64/src/kernel/cpu/segment_register.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86_64/src/kernel/cpu/segment_register.cpp b/arch/x86_64/src/kernel/cpu/segment_register.cpp
index d7857dd..9fb7433 100644
--- a/arch/x86_64/src/kernel/cpu/segment_register.cpp
+++ b/arch/x86_64/src/kernel/cpu/segment_register.cpp
@@ -30,4 +30,13 @@ namespace teachos::arch::kernel::cpu
: [input] "m"(segment_selector));
}
+ auto read_code_segment_register() -> context_switching::interrupt_descriptor_table::segment_selector
+ {
+ context_switching::interrupt_descriptor_table::segment_selector current_value;
+ asm volatile("mov %%cs, %[output]" : [output] "=r"(current_value));
+ return current_value;
+ }
+
+ auto validate_segment_registers() -> context_switching::interrupt_descriptor_table::segment_selector {}
+
} // namespace teachos::arch::kernel::cpu