#include "arch/kernel/cpu/ss.hpp" namespace teachos::arch::kernel::cpu { auto read_ss() -> context_switching::interrupt_descriptor_table::segment_selector { context_switching::interrupt_descriptor_table::segment_selector segment_selector{}; asm volatile("mov %%ss, %[output]" : [output] "=m"(segment_selector)); return segment_selector; } auto write_ss(context_switching::interrupt_descriptor_table::segment_selector selector) -> void { asm volatile("mov %[input], %%ss" : /* no output from call */ : [input] "m"(selector)); } } // namespace teachos::arch::kernel::cpu