diff options
author | Liam <byteslice@airmail.cc> | 2023-07-23 05:29:45 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-07-23 05:29:45 +0200 |
commit | 3e3294e1c25ab67f967d63c1232c579ad3c1e90b (patch) | |
tree | ac3b16adef97a2a4e6bbb38141b2dd76bf0887c1 /src/core/hle/service/glue/ectx.cpp | |
parent | Merge pull request #11042 from lat9nq/wayland-appimage (diff) | |
download | yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar.gz yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar.bz2 yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar.lz yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar.xz yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.tar.zst yuzu-3e3294e1c25ab67f967d63c1232c579ad3c1e90b.zip |
Diffstat (limited to 'src/core/hle/service/glue/ectx.cpp')
-rw-r--r-- | src/core/hle/service/glue/ectx.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/core/hle/service/glue/ectx.cpp b/src/core/hle/service/glue/ectx.cpp index 1bd9314ae..6f71b62f3 100644 --- a/src/core/hle/service/glue/ectx.cpp +++ b/src/core/hle/service/glue/ectx.cpp @@ -2,13 +2,48 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "core/hle/service/glue/ectx.h" +#include "core/hle/service/ipc_helpers.h" namespace Service::Glue { +// This is nn::err::context::IContextRegistrar +class IContextRegistrar : public ServiceFramework<IContextRegistrar> { +public: + IContextRegistrar(Core::System& system_) : ServiceFramework{system_, "IContextRegistrar"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, &IContextRegistrar::Complete, "Complete"}, + }; + // clang-format on + + RegisterHandlers(functions); + } + + ~IContextRegistrar() override = default; + +private: + void Complete(HLERequestContext& ctx) { + struct InputParameters { + u32 unk; + }; + struct OutputParameters { + u32 unk; + }; + + IPC::RequestParser rp{ctx}; + [[maybe_unused]] auto input = rp.PopRaw<InputParameters>(); + [[maybe_unused]] auto value = ctx.ReadBuffer(); + + IPC::ResponseBuilder rb{ctx, 3}; + rb.Push(ResultSuccess); + rb.Push(0); + } +}; + ECTX_AW::ECTX_AW(Core::System& system_) : ServiceFramework{system_, "ectx:aw"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateContextRegistrar"}, + {0, &ECTX_AW::CreateContextRegistrar, "CreateContextRegistrar"}, {1, nullptr, "CommitContext"}, }; // clang-format on @@ -18,4 +53,10 @@ ECTX_AW::ECTX_AW(Core::System& system_) : ServiceFramework{system_, "ectx:aw"} { ECTX_AW::~ECTX_AW() = default; +void ECTX_AW::CreateContextRegistrar(HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(ResultSuccess); + rb.PushIpcInterface<IContextRegistrar>(std::make_shared<IContextRegistrar>(system)); +} + } // namespace Service::Glue |