diff options
| author | Nikita Strygin <nikita6@bk.ru> | 2022-06-16 21:35:34 +0300 |
|---|---|---|
| committer | Nikita Strygin <nikita6@bk.ru> | 2022-06-16 21:35:34 +0300 |
| commit | 5f5739ea2c782b02b8a17a8296e22d0edaf74fa9 (patch) | |
| tree | 8b1f2d43024d32990d41ffe5a429a302bf9af66b /src/core/hle/kernel/svc.cpp | |
| parent | 1d8e860c47a2bd9944443d9f4d717f6f19eaf72d (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/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 47db0bacf5..2ff6d5fa6d 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) { |
