diff options
| author | Fabian Imhof <fabian.imhof@ost.ch> | 2025-05-04 10:51:12 +0000 |
|---|---|---|
| committer | Fabian Imhof <fabian.imhof@ost.ch> | 2025-05-04 10:51:12 +0000 |
| commit | 4d4e23116284f41329ea809e2bda86feea1b325c (patch) | |
| tree | fb3577e8b00311e6e9c1ebcbca8b93c2122603a4 /arch/x86_64/src/context_switching/syscall | |
| parent | 4b4ca98376cb4bdf97fd910b7e2ca78628b0a8ee (diff) | |
| download | teachos-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.cpp | 4 |
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 |
