aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/context_switching/syscall
diff options
context:
space:
mode:
authorFabian Imhof <fabian.imhof@ost.ch>2025-05-04 10:51:12 +0000
committerFabian Imhof <fabian.imhof@ost.ch>2025-05-04 10:51:12 +0000
commit4d4e23116284f41329ea809e2bda86feea1b325c (patch)
treefb3577e8b00311e6e9c1ebcbca8b93c2122603a4 /arch/x86_64/src/context_switching/syscall
parent4b4ca98376cb4bdf97fd910b7e2ca78628b0a8ee (diff)
downloadteachos-4d4e23116284f41329ea809e2bda86feea1b325c.tar.xz
teachos-4d4e23116284f41329ea809e2bda86feea1b325c.zip
fix returning from syscall
Diffstat (limited to 'arch/x86_64/src/context_switching/syscall')
-rw-r--r--arch/x86_64/src/context_switching/syscall/syscall_handler.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86_64/src/context_switching/syscall/syscall_handler.cpp b/arch/x86_64/src/context_switching/syscall/syscall_handler.cpp
index f6e1c9e..759a092 100644
--- a/arch/x86_64/src/context_switching/syscall/syscall_handler.cpp
+++ b/arch/x86_64/src/context_switching/syscall/syscall_handler.cpp
@@ -12,6 +12,7 @@ namespace teachos::arch::context_switching::syscall
{
video::vga::text::write(reinterpret_cast<const char *>(buffer),
video::vga::text::common_attributes::green_on_black);
+ video::vga::text::newline();
}
} // namespace
@@ -62,7 +63,8 @@ namespace teachos::arch::context_switching::syscall
: [input] "m"(rflags)
: "memory");
- asm volatile("sysretq");
+ asm volatile("leave\n"
+ "sysretq");
}
} // namespace teachos::arch::context_switching::syscall \ No newline at end of file