summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt4
-rw-r--r--src/core/hle/service/am/applet.h2
-rw-r--r--src/core/hle/service/am/applet_manager.cpp1
-rw-r--r--src/core/hle/service/am/frontend/applet_cabinet.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_controller.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_error.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_general.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_mii_edit.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_profile_select.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_software_keyboard.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applet_web_browser.cpp2
-rw-r--r--src/core/hle/service/am/frontend/applets.cpp2
-rw-r--r--src/core/hle/service/am/service/application_functions.cpp2
-rw-r--r--src/core/hle/service/am/service/library_applet_accessor.cpp2
-rw-r--r--src/core/hle/service/am/service/library_applet_creator.cpp2
-rw-r--r--src/core/hle/service/am/service/library_applet_self_accessor.cpp2
-rw-r--r--src/core/hle/service/am/service/storage.cpp48
-rw-r--r--src/core/hle/service/am/service/storage.h (renamed from src/core/hle/service/am/storage.h)14
-rw-r--r--src/core/hle/service/am/storage.cpp59
19 files changed, 73 insertions, 81 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index c2c08c2e9..bd483816b 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -477,14 +477,14 @@ add_library(core STATIC
477 hle/service/am/service/self_controller.h 477 hle/service/am/service/self_controller.h
478 hle/service/am/service/storage_accessor.cpp 478 hle/service/am/service/storage_accessor.cpp
479 hle/service/am/service/storage_accessor.h 479 hle/service/am/service/storage_accessor.h
480 hle/service/am/service/storage.cpp
481 hle/service/am/service/storage.h
480 hle/service/am/service/system_applet_proxy.cpp 482 hle/service/am/service/system_applet_proxy.cpp
481 hle/service/am/service/system_applet_proxy.h 483 hle/service/am/service/system_applet_proxy.h
482 hle/service/am/system_buffer_manager.cpp 484 hle/service/am/system_buffer_manager.cpp
483 hle/service/am/system_buffer_manager.h 485 hle/service/am/system_buffer_manager.h
484 hle/service/am/spsm.cpp 486 hle/service/am/spsm.cpp
485 hle/service/am/spsm.h 487 hle/service/am/spsm.h
486 hle/service/am/storage.cpp
487 hle/service/am/storage.h
488 hle/service/am/window_controller.cpp 488 hle/service/am/window_controller.cpp
489 hle/service/am/window_controller.h 489 hle/service/am/window_controller.h
490 hle/service/aoc/aoc_u.cpp 490 hle/service/aoc/aoc_u.cpp
diff --git a/src/core/hle/service/am/applet.h b/src/core/hle/service/am/applet.h
index 6c593ab1a..4f34d4811 100644
--- a/src/core/hle/service/am/applet.h
+++ b/src/core/hle/service/am/applet.h
@@ -3,7 +3,6 @@
3 3
4#pragma once 4#pragma once
5 5
6#include <list>
7#include <mutex> 6#include <mutex>
8 7
9#include "common/math_util.h" 8#include "common/math_util.h"
@@ -18,7 +17,6 @@
18#include "core/hle/service/am/hid_registration.h" 17#include "core/hle/service/am/hid_registration.h"
19#include "core/hle/service/am/managed_layer_holder.h" 18#include "core/hle/service/am/managed_layer_holder.h"
20#include "core/hle/service/am/process.h" 19#include "core/hle/service/am/process.h"
21#include "core/hle/service/am/storage.h"
22#include "core/hle/service/am/system_buffer_manager.h" 20#include "core/hle/service/am/system_buffer_manager.h"
23 21
24namespace Service::AM { 22namespace Service::AM {
diff --git a/src/core/hle/service/am/applet_manager.cpp b/src/core/hle/service/am/applet_manager.cpp
index b35d97bc7..4c7266f89 100644
--- a/src/core/hle/service/am/applet_manager.cpp
+++ b/src/core/hle/service/am/applet_manager.cpp
@@ -12,6 +12,7 @@
12#include "core/hle/service/am/frontend/applet_controller.h" 12#include "core/hle/service/am/frontend/applet_controller.h"
13#include "core/hle/service/am/frontend/applet_mii_edit_types.h" 13#include "core/hle/service/am/frontend/applet_mii_edit_types.h"
14#include "core/hle/service/am/frontend/applet_software_keyboard_types.h" 14#include "core/hle/service/am/frontend/applet_software_keyboard_types.h"
15#include "core/hle/service/am/service/storage.h"
15#include "hid_core/hid_types.h" 16#include "hid_core/hid_types.h"
16 17
17namespace Service::AM { 18namespace Service::AM {
diff --git a/src/core/hle/service/am/frontend/applet_cabinet.cpp b/src/core/hle/service/am/frontend/applet_cabinet.cpp
index 0862c81b6..4cbc80d63 100644
--- a/src/core/hle/service/am/frontend/applet_cabinet.cpp
+++ b/src/core/hle/service/am/frontend/applet_cabinet.cpp
@@ -9,7 +9,7 @@
9#include "core/hle/kernel/k_readable_event.h" 9#include "core/hle/kernel/k_readable_event.h"
10#include "core/hle/service/am/am.h" 10#include "core/hle/service/am/am.h"
11#include "core/hle/service/am/frontend/applet_cabinet.h" 11#include "core/hle/service/am/frontend/applet_cabinet.h"
12#include "core/hle/service/am/storage.h" 12#include "core/hle/service/am/service/storage.h"
13#include "core/hle/service/mii/mii_manager.h" 13#include "core/hle/service/mii/mii_manager.h"
14#include "core/hle/service/nfc/common/device.h" 14#include "core/hle/service/nfc/common/device.h"
15#include "hid_core/hid_core.h" 15#include "hid_core/hid_core.h"
diff --git a/src/core/hle/service/am/frontend/applet_controller.cpp b/src/core/hle/service/am/frontend/applet_controller.cpp
index bd3e49fc4..66f52686d 100644
--- a/src/core/hle/service/am/frontend/applet_controller.cpp
+++ b/src/core/hle/service/am/frontend/applet_controller.cpp
@@ -12,7 +12,7 @@
12#include "core/hle/result.h" 12#include "core/hle/result.h"
13#include "core/hle/service/am/am.h" 13#include "core/hle/service/am/am.h"
14#include "core/hle/service/am/frontend/applet_controller.h" 14#include "core/hle/service/am/frontend/applet_controller.h"
15#include "core/hle/service/am/storage.h" 15#include "core/hle/service/am/service/storage.h"
16#include "hid_core/frontend/emulated_controller.h" 16#include "hid_core/frontend/emulated_controller.h"
17#include "hid_core/hid_core.h" 17#include "hid_core/hid_core.h"
18#include "hid_core/hid_types.h" 18#include "hid_core/hid_types.h"
diff --git a/src/core/hle/service/am/frontend/applet_error.cpp b/src/core/hle/service/am/frontend/applet_error.cpp
index b97a5f3ea..34ec7013b 100644
--- a/src/core/hle/service/am/frontend/applet_error.cpp
+++ b/src/core/hle/service/am/frontend/applet_error.cpp
@@ -10,7 +10,7 @@
10#include "core/frontend/applets/error.h" 10#include "core/frontend/applets/error.h"
11#include "core/hle/service/am/am.h" 11#include "core/hle/service/am/am.h"
12#include "core/hle/service/am/frontend/applet_error.h" 12#include "core/hle/service/am/frontend/applet_error.h"
13#include "core/hle/service/am/storage.h" 13#include "core/hle/service/am/service/storage.h"
14#include "core/reporter.h" 14#include "core/reporter.h"
15 15
16namespace Service::AM::Frontend { 16namespace Service::AM::Frontend {
diff --git a/src/core/hle/service/am/frontend/applet_general.cpp b/src/core/hle/service/am/frontend/applet_general.cpp
index 3c091a602..d2cabb7b5 100644
--- a/src/core/hle/service/am/frontend/applet_general.cpp
+++ b/src/core/hle/service/am/frontend/applet_general.cpp
@@ -10,7 +10,7 @@
10#include "core/hle/service/am/am.h" 10#include "core/hle/service/am/am.h"
11#include "core/hle/service/am/applet_data_broker.h" 11#include "core/hle/service/am/applet_data_broker.h"
12#include "core/hle/service/am/frontend/applet_general.h" 12#include "core/hle/service/am/frontend/applet_general.h"
13#include "core/hle/service/am/storage.h" 13#include "core/hle/service/am/service/storage.h"
14#include "core/reporter.h" 14#include "core/reporter.h"
15 15
16namespace Service::AM::Frontend { 16namespace Service::AM::Frontend {
diff --git a/src/core/hle/service/am/frontend/applet_mii_edit.cpp b/src/core/hle/service/am/frontend/applet_mii_edit.cpp
index e3d19fb3d..0180ab761 100644
--- a/src/core/hle/service/am/frontend/applet_mii_edit.cpp
+++ b/src/core/hle/service/am/frontend/applet_mii_edit.cpp
@@ -7,7 +7,7 @@
7#include "core/frontend/applets/mii_edit.h" 7#include "core/frontend/applets/mii_edit.h"
8#include "core/hle/service/am/am.h" 8#include "core/hle/service/am/am.h"
9#include "core/hle/service/am/frontend/applet_mii_edit.h" 9#include "core/hle/service/am/frontend/applet_mii_edit.h"
10#include "core/hle/service/am/storage.h" 10#include "core/hle/service/am/service/storage.h"
11#include "core/hle/service/mii/mii.h" 11#include "core/hle/service/mii/mii.h"
12#include "core/hle/service/mii/mii_manager.h" 12#include "core/hle/service/mii/mii_manager.h"
13#include "core/hle/service/sm/sm.h" 13#include "core/hle/service/sm/sm.h"
diff --git a/src/core/hle/service/am/frontend/applet_profile_select.cpp b/src/core/hle/service/am/frontend/applet_profile_select.cpp
index efb4053b8..89b5a1eab 100644
--- a/src/core/hle/service/am/frontend/applet_profile_select.cpp
+++ b/src/core/hle/service/am/frontend/applet_profile_select.cpp
@@ -10,7 +10,7 @@
10#include "core/hle/service/acc/errors.h" 10#include "core/hle/service/acc/errors.h"
11#include "core/hle/service/am/am.h" 11#include "core/hle/service/am/am.h"
12#include "core/hle/service/am/frontend/applet_profile_select.h" 12#include "core/hle/service/am/frontend/applet_profile_select.h"
13#include "core/hle/service/am/storage.h" 13#include "core/hle/service/am/service/storage.h"
14 14
15namespace Service::AM::Frontend { 15namespace Service::AM::Frontend {
16 16
diff --git a/src/core/hle/service/am/frontend/applet_software_keyboard.cpp b/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
index 034c62f32..d1bc03018 100644
--- a/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
+++ b/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
@@ -6,7 +6,7 @@
6#include "core/frontend/applets/software_keyboard.h" 6#include "core/frontend/applets/software_keyboard.h"
7#include "core/hle/service/am/am.h" 7#include "core/hle/service/am/am.h"
8#include "core/hle/service/am/frontend/applet_software_keyboard.h" 8#include "core/hle/service/am/frontend/applet_software_keyboard.h"
9#include "core/hle/service/am/storage.h" 9#include "core/hle/service/am/service/storage.h"
10 10
11namespace Service::AM::Frontend { 11namespace Service::AM::Frontend {
12 12
diff --git a/src/core/hle/service/am/frontend/applet_web_browser.cpp b/src/core/hle/service/am/frontend/applet_web_browser.cpp
index 6ee4caf34..bb60260b4 100644
--- a/src/core/hle/service/am/frontend/applet_web_browser.cpp
+++ b/src/core/hle/service/am/frontend/applet_web_browser.cpp
@@ -20,7 +20,7 @@
20#include "core/hle/result.h" 20#include "core/hle/result.h"
21#include "core/hle/service/am/am.h" 21#include "core/hle/service/am/am.h"
22#include "core/hle/service/am/frontend/applet_web_browser.h" 22#include "core/hle/service/am/frontend/applet_web_browser.h"
23#include "core/hle/service/am/storage.h" 23#include "core/hle/service/am/service/storage.h"
24#include "core/hle/service/filesystem/filesystem.h" 24#include "core/hle/service/filesystem/filesystem.h"
25#include "core/hle/service/ns/iplatform_service_manager.h" 25#include "core/hle/service/ns/iplatform_service_manager.h"
26#include "core/loader/loader.h" 26#include "core/loader/loader.h"
diff --git a/src/core/hle/service/am/frontend/applets.cpp b/src/core/hle/service/am/frontend/applets.cpp
index 944d8b105..e662c6cd6 100644
--- a/src/core/hle/service/am/frontend/applets.cpp
+++ b/src/core/hle/service/am/frontend/applets.cpp
@@ -26,7 +26,7 @@
26#include "core/hle/service/am/frontend/applet_software_keyboard.h" 26#include "core/hle/service/am/frontend/applet_software_keyboard.h"
27#include "core/hle/service/am/frontend/applet_web_browser.h" 27#include "core/hle/service/am/frontend/applet_web_browser.h"
28#include "core/hle/service/am/frontend/applets.h" 28#include "core/hle/service/am/frontend/applets.h"
29#include "core/hle/service/am/storage.h" 29#include "core/hle/service/am/service/storage.h"
30#include "core/hle/service/sm/sm.h" 30#include "core/hle/service/sm/sm.h"
31 31
32namespace Service::AM::Frontend { 32namespace Service::AM::Frontend {
diff --git a/src/core/hle/service/am/service/application_functions.cpp b/src/core/hle/service/am/service/application_functions.cpp
index 346ab42ab..b788fddd4 100644
--- a/src/core/hle/service/am/service/application_functions.cpp
+++ b/src/core/hle/service/am/service/application_functions.cpp
@@ -11,7 +11,7 @@
11#include "core/hle/service/am/am_results.h" 11#include "core/hle/service/am/am_results.h"
12#include "core/hle/service/am/applet.h" 12#include "core/hle/service/am/applet.h"
13#include "core/hle/service/am/service/application_functions.h" 13#include "core/hle/service/am/service/application_functions.h"
14#include "core/hle/service/am/storage.h" 14#include "core/hle/service/am/service/storage.h"
15#include "core/hle/service/cmif_serialization.h" 15#include "core/hle/service/cmif_serialization.h"
16#include "core/hle/service/filesystem/filesystem.h" 16#include "core/hle/service/filesystem/filesystem.h"
17#include "core/hle/service/filesystem/save_data_controller.h" 17#include "core/hle/service/filesystem/save_data_controller.h"
diff --git a/src/core/hle/service/am/service/library_applet_accessor.cpp b/src/core/hle/service/am/service/library_applet_accessor.cpp
index aac875ef4..0c2426d4b 100644
--- a/src/core/hle/service/am/service/library_applet_accessor.cpp
+++ b/src/core/hle/service/am/service/library_applet_accessor.cpp
@@ -5,7 +5,7 @@
5#include "core/hle/service/am/applet_manager.h" 5#include "core/hle/service/am/applet_manager.h"
6#include "core/hle/service/am/frontend/applets.h" 6#include "core/hle/service/am/frontend/applets.h"
7#include "core/hle/service/am/service/library_applet_accessor.h" 7#include "core/hle/service/am/service/library_applet_accessor.h"
8#include "core/hle/service/am/storage.h" 8#include "core/hle/service/am/service/storage.h"
9#include "core/hle/service/cmif_serialization.h" 9#include "core/hle/service/cmif_serialization.h"
10 10
11namespace Service::AM { 11namespace Service::AM {
diff --git a/src/core/hle/service/am/service/library_applet_creator.cpp b/src/core/hle/service/am/service/library_applet_creator.cpp
index 4d905549c..166637d60 100644
--- a/src/core/hle/service/am/service/library_applet_creator.cpp
+++ b/src/core/hle/service/am/service/library_applet_creator.cpp
@@ -9,7 +9,7 @@
9#include "core/hle/service/am/library_applet_storage.h" 9#include "core/hle/service/am/library_applet_storage.h"
10#include "core/hle/service/am/service/library_applet_accessor.h" 10#include "core/hle/service/am/service/library_applet_accessor.h"
11#include "core/hle/service/am/service/library_applet_creator.h" 11#include "core/hle/service/am/service/library_applet_creator.h"
12#include "core/hle/service/am/storage.h" 12#include "core/hle/service/am/service/storage.h"
13#include "core/hle/service/cmif_serialization.h" 13#include "core/hle/service/cmif_serialization.h"
14#include "core/hle/service/sm/sm.h" 14#include "core/hle/service/sm/sm.h"
15 15
diff --git a/src/core/hle/service/am/service/library_applet_self_accessor.cpp b/src/core/hle/service/am/service/library_applet_self_accessor.cpp
index a432a79ba..7a3a86e88 100644
--- a/src/core/hle/service/am/service/library_applet_self_accessor.cpp
+++ b/src/core/hle/service/am/service/library_applet_self_accessor.cpp
@@ -10,7 +10,7 @@
10#include "core/hle/service/am/applet_manager.h" 10#include "core/hle/service/am/applet_manager.h"
11#include "core/hle/service/am/frontend/applets.h" 11#include "core/hle/service/am/frontend/applets.h"
12#include "core/hle/service/am/service/library_applet_self_accessor.h" 12#include "core/hle/service/am/service/library_applet_self_accessor.h"
13#include "core/hle/service/am/storage.h" 13#include "core/hle/service/am/service/storage.h"
14#include "core/hle/service/cmif_serialization.h" 14#include "core/hle/service/cmif_serialization.h"
15#include "core/hle/service/filesystem/filesystem.h" 15#include "core/hle/service/filesystem/filesystem.h"
16#include "core/hle/service/glue/glue_manager.h" 16#include "core/hle/service/glue/glue_manager.h"
diff --git a/src/core/hle/service/am/service/storage.cpp b/src/core/hle/service/am/service/storage.cpp
new file mode 100644
index 000000000..25ee0afbd
--- /dev/null
+++ b/src/core/hle/service/am/service/storage.cpp
@@ -0,0 +1,48 @@
1// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "core/hle/service/am/am_results.h"
5#include "core/hle/service/am/library_applet_storage.h"
6#include "core/hle/service/am/service/storage.h"
7#include "core/hle/service/am/service/storage_accessor.h"
8#include "core/hle/service/cmif_serialization.h"
9
10namespace Service::AM {
11
12IStorage::IStorage(Core::System& system_, std::shared_ptr<LibraryAppletStorage> impl)
13 : ServiceFramework{system_, "IStorage"}, m_impl{std::move(impl)} {
14 static const FunctionInfo functions[] = {
15 {0, D<&IStorage::Open>, "Open"},
16 {1, D<&IStorage::OpenTransferStorage>, "OpenTransferStorage"},
17 };
18
19 RegisterHandlers(functions);
20}
21
22IStorage::IStorage(Core::System& system_, std::vector<u8>&& data)
23 : IStorage(system_, CreateStorage(std::move(data))) {}
24
25IStorage::~IStorage() = default;
26
27Result IStorage::Open(Out<SharedPointer<IStorageAccessor>> out_storage_accessor) {
28 LOG_DEBUG(Service_AM, "called");
29
30 R_UNLESS(m_impl->GetHandle() == nullptr, AM::ResultInvalidStorageType);
31
32 *out_storage_accessor = std::make_shared<IStorageAccessor>(system, m_impl);
33 R_SUCCEED();
34}
35
36Result IStorage::OpenTransferStorage(
37 Out<SharedPointer<ITransferStorageAccessor>> out_transfer_storage_accessor) {
38 R_UNLESS(m_impl->GetHandle() != nullptr, AM::ResultInvalidStorageType);
39
40 *out_transfer_storage_accessor = std::make_shared<ITransferStorageAccessor>(system, m_impl);
41 R_SUCCEED();
42}
43
44std::vector<u8> IStorage::GetData() const {
45 return m_impl->GetData();
46}
47
48} // namespace Service::AM
diff --git a/src/core/hle/service/am/storage.h b/src/core/hle/service/am/service/storage.h
index 10d00b141..cde2ed0ea 100644
--- a/src/core/hle/service/am/storage.h
+++ b/src/core/hle/service/am/service/storage.h
@@ -3,29 +3,33 @@
3 3
4#pragma once 4#pragma once
5 5
6#include "core/hle/service/cmif_types.h"
6#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
7 8
8namespace Service::AM { 9namespace Service::AM {
9 10
10class LibraryAppletStorage; 11class LibraryAppletStorage;
12class IStorageAccessor;
13class ITransferStorageAccessor;
11 14
12class IStorage final : public ServiceFramework<IStorage> { 15class IStorage final : public ServiceFramework<IStorage> {
13public: 16public:
14 explicit IStorage(Core::System& system_, std::shared_ptr<LibraryAppletStorage> impl_); 17 explicit IStorage(Core::System& system_, std::shared_ptr<LibraryAppletStorage> impl);
15 explicit IStorage(Core::System& system_, std::vector<u8>&& buffer); 18 explicit IStorage(Core::System& system_, std::vector<u8>&& buffer);
16 ~IStorage() override; 19 ~IStorage() override;
17 20
18 std::shared_ptr<LibraryAppletStorage> GetImpl() const { 21 std::shared_ptr<LibraryAppletStorage> GetImpl() const {
19 return impl; 22 return m_impl;
20 } 23 }
21 24
22 std::vector<u8> GetData() const; 25 std::vector<u8> GetData() const;
23 26
24private: 27private:
25 void Open(HLERequestContext& ctx); 28 Result Open(Out<SharedPointer<IStorageAccessor>> out_storage_accessor);
26 void OpenTransferStorage(HLERequestContext& ctx); 29 Result OpenTransferStorage(
30 Out<SharedPointer<ITransferStorageAccessor>> out_transfer_storage_accessor);
27 31
28 const std::shared_ptr<LibraryAppletStorage> impl; 32 const std::shared_ptr<LibraryAppletStorage> m_impl;
29}; 33};
30 34
31} // namespace Service::AM 35} // namespace Service::AM
diff --git a/src/core/hle/service/am/storage.cpp b/src/core/hle/service/am/storage.cpp
deleted file mode 100644
index 12d95eebd..000000000
--- a/src/core/hle/service/am/storage.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
1// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "core/hle/service/am/am_results.h"
5#include "core/hle/service/am/library_applet_storage.h"
6#include "core/hle/service/am/service/storage_accessor.h"
7#include "core/hle/service/am/storage.h"
8#include "core/hle/service/ipc_helpers.h"
9
10namespace Service::AM {
11
12IStorage::IStorage(Core::System& system_, std::shared_ptr<LibraryAppletStorage> impl_)
13 : ServiceFramework{system_, "IStorage"}, impl{std::move(impl_)} {
14 static const FunctionInfo functions[] = {
15 {0, &IStorage::Open, "Open"},
16 {1, &IStorage::OpenTransferStorage, "OpenTransferStorage"},
17 };
18
19 RegisterHandlers(functions);
20}
21
22IStorage::IStorage(Core::System& system_, std::vector<u8>&& data)
23 : IStorage(system_, CreateStorage(std::move(data))) {}
24
25IStorage::~IStorage() = default;
26
27void IStorage::Open(HLERequestContext& ctx) {
28 LOG_DEBUG(Service_AM, "called");
29
30 if (impl->GetHandle() != nullptr) {
31 IPC::ResponseBuilder rb{ctx, 2};
32 rb.Push(AM::ResultInvalidStorageType);
33 return;
34 }
35
36 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
37 rb.Push(ResultSuccess);
38 rb.PushIpcInterface<IStorageAccessor>(system, impl);
39}
40
41void IStorage::OpenTransferStorage(HLERequestContext& ctx) {
42 LOG_DEBUG(Service_AM, "called");
43
44 if (impl->GetHandle() == nullptr) {
45 IPC::ResponseBuilder rb{ctx, 2};
46 rb.Push(AM::ResultInvalidStorageType);
47 return;
48 }
49
50 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
51 rb.Push(ResultSuccess);
52 rb.PushIpcInterface<ITransferStorageAccessor>(system, impl);
53}
54
55std::vector<u8> IStorage::GetData() const {
56 return impl->GetData();
57}
58
59} // namespace Service::AM