diff options
author | bunnei <bunneidev@gmail.com> | 2018-06-03 20:19:24 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-06-04 04:10:05 +0200 |
commit | d73c22bf4d975379d0e379f4f03398f102e7836d (patch) | |
tree | 39698cf6a0acd0069cfdef7ef158f273372eaa4f /src | |
parent | Merge pull request #494 from bunnei/shader-tex (diff) | |
download | yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar.gz yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar.bz2 yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar.lz yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar.xz yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.tar.zst yuzu-d73c22bf4d975379d0e379f4f03398f102e7836d.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/service/am/am.cpp | 54 | ||||
-rw-r--r-- | src/core/hle/service/am/am.h | 1 |
2 files changed, 34 insertions, 21 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 6b1d6bf97..9434512d8 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -391,27 +391,6 @@ private: Kernel::SharedPtr<Kernel::Event> state_changed_event; }; -ILibraryAppletCreator::ILibraryAppletCreator() : ServiceFramework("ILibraryAppletCreator") { - static const FunctionInfo functions[] = { - {0, &ILibraryAppletCreator::CreateLibraryApplet, "CreateLibraryApplet"}, - {1, nullptr, "TerminateAllLibraryApplets"}, - {2, nullptr, "AreAnyLibraryAppletsLeft"}, - {10, nullptr, "CreateStorage"}, - {11, nullptr, "CreateTransferMemoryStorage"}, - {12, nullptr, "CreateHandleStorage"}, - }; - RegisterHandlers(functions); -} - -void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; - - rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface<AM::ILibraryAppletAccessor>(); - - NGLOG_DEBUG(Service_AM, "called"); -} - class IStorageAccessor final : public ServiceFramework<IStorageAccessor> { public: explicit IStorageAccessor(std::vector<u8> buffer) @@ -479,6 +458,39 @@ private: } }; +ILibraryAppletCreator::ILibraryAppletCreator() : ServiceFramework("ILibraryAppletCreator") { + static const FunctionInfo functions[] = { + {0, &ILibraryAppletCreator::CreateLibraryApplet, "CreateLibraryApplet"}, + {1, nullptr, "TerminateAllLibraryApplets"}, + {2, nullptr, "AreAnyLibraryAppletsLeft"}, + {10, &ILibraryAppletCreator::CreateStorage, "CreateStorage"}, + {11, nullptr, "CreateTransferMemoryStorage"}, + {12, nullptr, "CreateHandleStorage"}, + }; + RegisterHandlers(functions); +} + +void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<AM::ILibraryAppletAccessor>(); + + NGLOG_DEBUG(Service_AM, "called"); +} + +void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp{ctx}; + const u64 size{rp.Pop<u64>()}; + std::vector<u8> buffer(size); + + IPC::ResponseBuilder rb{rp.MakeBuilder(2, 0, 1)}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<AM::IStorage>(std::move(buffer)); + + NGLOG_DEBUG(Service_AM, "called, size={}", size); +} + IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { static const FunctionInfo functions[] = { {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"}, diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h index ff8eb14d7..301a6c798 100644 --- a/src/core/hle/service/am/am.h +++ b/src/core/hle/service/am/am.h @@ -121,6 +121,7 @@ public: private: void CreateLibraryApplet(Kernel::HLERequestContext& ctx); + void CreateStorage(Kernel::HLERequestContext& ctx); }; class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> { |