summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/am
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-06-03 20:19:24 +0200
committerbunnei <bunneidev@gmail.com>2018-06-04 04:10:05 +0200
commitd73c22bf4d975379d0e379f4f03398f102e7836d (patch)
tree39698cf6a0acd0069cfdef7ef158f273372eaa4f /src/core/hle/service/am
parentMerge pull request #494 from bunnei/shader-tex (diff)
downloadyuzu-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/core/hle/service/am')
-rw-r--r--src/core/hle/service/am/am.cpp54
-rw-r--r--src/core/hle/service/am/am.h1
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> {