diff options
author | Lioncash <mathew1800@gmail.com> | 2018-07-25 22:37:00 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-07-25 22:57:16 +0200 |
commit | c664f8a2573426213c6f4c2f8fa40ad7e0d8443e (patch) | |
tree | 28fd6c402290199f38d49af3db66409e3a33098f /src/core/hle/service/pm/pm.cpp | |
parent | Merge pull request #801 from lioncash/time (diff) | |
download | yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar.gz yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar.bz2 yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar.lz yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar.xz yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.tar.zst yuzu-c664f8a2573426213c6f4c2f8fa40ad7e0d8443e.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/pm/pm.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/core/hle/service/pm/pm.cpp b/src/core/hle/service/pm/pm.cpp new file mode 100644 index 000000000..e20a25689 --- /dev/null +++ b/src/core/hle/service/pm/pm.cpp @@ -0,0 +1,70 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hle/service/service.h" + +namespace Service::PM { + +class BootMode final : public ServiceFramework<BootMode> { +public: + explicit BootMode() : ServiceFramework{"pm:bm"} { + static const FunctionInfo functions[] = { + {0, nullptr, "GetBootMode"}, + {1, nullptr, "SetMaintenanceBoot"}, + }; + RegisterHandlers(functions); + } +}; + +class DebugMonitor final : public ServiceFramework<DebugMonitor> { +public: + explicit DebugMonitor() : ServiceFramework{"pm:dmnt"} { + static const FunctionInfo functions[] = { + {0, nullptr, "IsDebugMode"}, + {1, nullptr, "GetDebugProcesses"}, + {2, nullptr, "StartDebugProcess"}, + {3, nullptr, "GetTitlePid"}, + {4, nullptr, "EnableDebugForTitleId"}, + {5, nullptr, "GetApplicationPid"}, + {6, nullptr, "EnableDebugForApplication"}, + }; + RegisterHandlers(functions); + } +}; + +class Info final : public ServiceFramework<Info> { +public: + explicit Info() : ServiceFramework{"pm:info"} { + static const FunctionInfo functions[] = { + {0, nullptr, "GetTitleId"}, + }; + RegisterHandlers(functions); + } +}; + +class Shell final : public ServiceFramework<Shell> { +public: + explicit Shell() : ServiceFramework{"pm:shell"} { + static const FunctionInfo functions[] = { + {0, nullptr, "LaunchProcess"}, + {1, nullptr, "TerminateProcessByPid"}, + {2, nullptr, "TerminateProcessByTitleId"}, + {3, nullptr, "GetProcessEventWaiter"}, + {4, nullptr, "GetProcessEventType"}, + {5, nullptr, "NotifyBootFinished"}, + {6, nullptr, "GetApplicationPid"}, + {7, nullptr, "BoostSystemMemoryResourceLimit"}, + }; + RegisterHandlers(functions); + } +}; + +void InstallInterfaces(SM::ServiceManager& sm) { + std::make_shared<BootMode>()->InstallAsService(sm); + std::make_shared<DebugMonitor>()->InstallAsService(sm); + std::make_shared<Info>()->InstallAsService(sm); + std::make_shared<Shell>()->InstallAsService(sm); +} + +} // namespace Service::PM |