summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Strygin <nikita6@bk.ru>2022-06-16 21:35:34 +0300
committerNikita Strygin <nikita6@bk.ru>2022-06-16 21:35:34 +0300
commitcf7e4bda92cb48ef21a047e0ce54a82c37814544 (patch)
tree8b1f2d43024d32990d41ffe5a429a302bf9af66b
parentf86b770ff75efff029fa82b959b3f33eca1750fe (diff)
Implement ExitProcess svc
Currently this just stops all the emulation This works under assumption that only application will try to use ExitProcess, with services not touching it If application exits - it quite makes sense to end the emulation
-rw-r--r--src/core/hle/kernel/svc.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 47db0bacf..2ff6d5fa6 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1726,11 +1726,12 @@ static ResultCode UnmapProcessCodeMemory(Core::System& system, Handle process_ha
/// Exits the current process
static void ExitProcess(Core::System& system) {
auto* current_process = system.Kernel().CurrentProcess();
- UNIMPLEMENTED();
LOG_INFO(Kernel_SVC, "Process {} exiting", current_process->GetProcessID());
ASSERT_MSG(current_process->GetStatus() == ProcessStatus::Running,
"Process has already exited");
+
+ system.Exit();
}
static void ExitProcess32(Core::System& system) {