#include "arch/kernel/cpu/jmp.hpp" namespace teachos::arch::kernel::cpu { auto jmp(uint64_t address) -> void { asm volatile("jmp *%[input]" : /* no output from call */ : [input] "r"(address)); } auto jmp(uint64_t segment, uint64_t offset) -> void { far_pointer far_pointer = {offset, static_cast(segment)}; asm volatile("jmp *%0" : : "m"(far_pointer)); } } // namespace teachos::arch::kernel::cpu