summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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) {