diff options
author | Lioncash <mathew1800@gmail.com> | 2018-08-02 03:59:22 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-08-02 05:31:27 +0200 |
commit | 5233040ab480f0d0ace929247646d9eba6e77f9f (patch) | |
tree | 69af92737db3933b51eff0972c41ccfb4cfb38a8 /src/core/hle/service/psc/psc.cpp | |
parent | Merge pull request #888 from lioncash/caps (diff) | |
download | yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar.gz yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar.bz2 yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar.lz yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar.xz yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.tar.zst yuzu-5233040ab480f0d0ace929247646d9eba6e77f9f.zip |
Diffstat (limited to 'src/core/hle/service/psc/psc.cpp')
-rw-r--r-- | src/core/hle/service/psc/psc.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/core/hle/service/psc/psc.cpp b/src/core/hle/service/psc/psc.cpp new file mode 100644 index 000000000..bbad870a2 --- /dev/null +++ b/src/core/hle/service/psc/psc.cpp @@ -0,0 +1,77 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include <memory> + +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/psc/psc.h" +#include "core/hle/service/service.h" +#include "core/hle/service/sm/sm.h" + +namespace Service::PSC { + +class PSC_C final : public ServiceFramework<PSC_C> { +public: + explicit PSC_C() : ServiceFramework{"psc:c"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, nullptr, "Unknown1"}, + {1, nullptr, "Unknown2"}, + {2, nullptr, "Unknown3"}, + {3, nullptr, "Unknown4"}, + {4, nullptr, "Unknown5"}, + {5, nullptr, "Unknown6"}, + {6, nullptr, "Unknown7"}, + }; + // clang-format on + + RegisterHandlers(functions); + } +}; + +class IPmModule final : public ServiceFramework<IPmModule> { +public: + explicit IPmModule() : ServiceFramework{"IPmModule"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, nullptr, "Initialize"}, + {1, nullptr, "GetRequest"}, + {2, nullptr, "Acknowledge"}, + {3, nullptr, "Unknown1"}, + }; + // clang-format on + + RegisterHandlers(functions); + } +}; + +class PSC_M final : public ServiceFramework<PSC_M> { +public: + explicit PSC_M() : ServiceFramework{"psc:m"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, &PSC_M::GetPmModule, "GetPmModule"}, + }; + // clang-format on + + RegisterHandlers(functions); + } + +private: + void GetPmModule(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IPmModule>(); + + LOG_DEBUG(Service_PSC, "called"); + } +}; + +void InstallInterfaces(SM::ServiceManager& sm) { + std::make_shared<PSC_C>()->InstallAsService(sm); + std::make_shared<PSC_M>()->InstallAsService(sm); +} + +} // namespace Service::PSC |