diff options
Diffstat (limited to 'src')
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 | ||
| 24 | namespace Service::AM { | 22 | namespace 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 | ||
| 17 | namespace Service::AM { | 18 | namespace 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 | ||
| 16 | namespace Service::AM::Frontend { | 16 | namespace 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 | ||
| 16 | namespace Service::AM::Frontend { | 16 | namespace 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 | ||
| 15 | namespace Service::AM::Frontend { | 15 | namespace 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 | ||
| 11 | namespace Service::AM::Frontend { | 11 | namespace 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 | ||
| 32 | namespace Service::AM::Frontend { | 32 | namespace 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 | ||
| 11 | namespace Service::AM { | 11 | namespace 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 | |||
| 10 | namespace Service::AM { | ||
| 11 | |||
| 12 | IStorage::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 | |||
| 22 | IStorage::IStorage(Core::System& system_, std::vector<u8>&& data) | ||
| 23 | : IStorage(system_, CreateStorage(std::move(data))) {} | ||
| 24 | |||
| 25 | IStorage::~IStorage() = default; | ||
| 26 | |||
| 27 | Result 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 | |||
| 36 | Result 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 | |||
| 44 | std::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 | ||
| 8 | namespace Service::AM { | 9 | namespace Service::AM { |
| 9 | 10 | ||
| 10 | class LibraryAppletStorage; | 11 | class LibraryAppletStorage; |
| 12 | class IStorageAccessor; | ||
| 13 | class ITransferStorageAccessor; | ||
| 11 | 14 | ||
| 12 | class IStorage final : public ServiceFramework<IStorage> { | 15 | class IStorage final : public ServiceFramework<IStorage> { |
| 13 | public: | 16 | public: |
| 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 | ||
| 24 | private: | 27 | private: |
| 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 | |||
| 10 | namespace Service::AM { | ||
| 11 | |||
| 12 | IStorage::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 | |||
| 22 | IStorage::IStorage(Core::System& system_, std::vector<u8>&& data) | ||
| 23 | : IStorage(system_, CreateStorage(std::move(data))) {} | ||
| 24 | |||
| 25 | IStorage::~IStorage() = default; | ||
| 26 | |||
| 27 | void 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 | |||
| 41 | void 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 | |||
| 55 | std::vector<u8> IStorage::GetData() const { | ||
| 56 | return impl->GetData(); | ||
| 57 | } | ||
| 58 | |||
| 59 | } // namespace Service::AM | ||