summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Nikita Strygin2022-06-16 21:35:34 +0300
committerGravatar Nikita Strygin2022-06-16 21:35:34 +0300
commitcf7e4bda92cb48ef21a047e0ce54a82c37814544 (patch)
tree8b1f2d43024d32990d41ffe5a429a302bf9af66b
parentMerge pull request #8457 from liamwhite/kprocess-suspend (diff)
downloadyuzu-cf7e4bda92cb48ef21a047e0ce54a82c37814544.tar.gz
yuzu-cf7e4bda92cb48ef21a047e0ce54a82c37814544.tar.xz
yuzu-cf7e4bda92cb48ef21a047e0ce54a82c37814544.zip
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
1726/// Exits the current process 1726/// Exits the current process
1727static void ExitProcess(Core::System& system) { 1727static void ExitProcess(Core::System& system) {
1728 auto* current_process = system.Kernel().CurrentProcess(); 1728 auto* current_process = system.Kernel().CurrentProcess();
1729 UNIMPLEMENTED();
1730 1729
1731 LOG_INFO(Kernel_SVC, "Process {} exiting", current_process->GetProcessID()); 1730 LOG_INFO(Kernel_SVC, "Process {} exiting", current_process->GetProcessID());
1732 ASSERT_MSG(current_process->GetStatus() == ProcessStatus::Running, 1731 ASSERT_MSG(current_process->GetStatus() == ProcessStatus::Running,
1733 "Process has already exited"); 1732 "Process has already exited");
1733
1734 system.Exit();
1734} 1735}
1735 1736
1736static void ExitProcess32(Core::System& system) { 1737static void ExitProcess32(Core::System& system) {