summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-02-22 01:47:38 +0100
committerLiam <byteslice@airmail.cc>2024-02-22 01:47:54 +0100
commita8bca2429299dbc436b8c167107580a9e4697cb6 (patch)
tree3179304a9041bfbef0f93fc36aefb3b1dcaa519a
parentolsc: add IDaemonController (diff)
downloadyuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar.gz
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar.bz2
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar.lz
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar.xz
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.tar.zst
yuzu-a8bca2429299dbc436b8c167107580a9e4697cb6.zip
-rw-r--r--src/core/hle/service/olsc/remote_storage_controller.cpp54
-rw-r--r--src/core/hle/service/olsc/remote_storage_controller.h19
2 files changed, 73 insertions, 0 deletions
diff --git a/src/core/hle/service/olsc/remote_storage_controller.cpp b/src/core/hle/service/olsc/remote_storage_controller.cpp
new file mode 100644
index 000000000..81d9c96ab
--- /dev/null
+++ b/src/core/hle/service/olsc/remote_storage_controller.cpp
@@ -0,0 +1,54 @@
+// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "core/hle/service/cmif_serialization.h"
+#include "core/hle/service/olsc/remote_storage_controller.h"
+
+namespace Service::OLSC {
+
+IRemoteStorageController::IRemoteStorageController(Core::System& system_)
+ : ServiceFramework{system_, "IRemoteStorageController"} {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, nullptr, "GetSaveDataArchiveInfoBySaveDataId"},
+ {1, nullptr, "GetSaveDataArchiveInfoByApplicationId"},
+ {3, nullptr, "GetSaveDataArchiveCount"},
+ {6, nullptr, "CleanupSaveDataArchives"},
+ {7, nullptr, "CreateSaveDataArchiveCacheUpdationTask"},
+ {8, nullptr, "CreateSaveDataArchiveCacheUpdationForSpecifiedApplicationTask"},
+ {9, nullptr, "Delete"},
+ {10, nullptr, "GetSeriesInfo"},
+ {11, nullptr, "CreateDeleteDataTask"},
+ {12, nullptr, "DeleteSeriesInfo"},
+ {13, nullptr, "CreateRegisterNotificationTokenTask"},
+ {14, nullptr, "UpdateSeriesInfo"},
+ {15, nullptr, "RegisterUploadSaveDataTransferTaskForAutonomyRegistration"},
+ {16, nullptr, "CreateCleanupToDeleteSaveDataArchiveInfoTask"},
+ {17, nullptr, "ListDataInfo"},
+ {18, nullptr, "GetDataInfo"},
+ {19, nullptr, "Unknown19"},
+ {20, nullptr, "CreateSaveDataArchiveInfoCacheForSaveDataBackupUpdationTask"},
+ {21, nullptr, "ListSecondarySaves"},
+ {22, D<&IRemoteStorageController::GetSecondarySave>, "GetSecondarySave"},
+ {23, nullptr, "TouchSecondarySave"},
+ {24, nullptr, "GetSecondarySaveDataInfo"},
+ {25, nullptr, "RegisterDownloadSaveDataTransferTaskForAutonomyRegistration"},
+ {900, nullptr, "Unknown900"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+}
+
+IRemoteStorageController::~IRemoteStorageController() = default;
+
+Result IRemoteStorageController::GetSecondarySave(Out<bool> out_has_secondary_save,
+ Out<std::array<u64, 3>> out_unknown,
+ u64 application_id) {
+ LOG_ERROR(Service_OLSC, "(STUBBED) called, application_id={:016X}", application_id);
+ *out_has_secondary_save = false;
+ *out_unknown = {};
+ R_SUCCEED();
+}
+
+} // namespace Service::OLSC
diff --git a/src/core/hle/service/olsc/remote_storage_controller.h b/src/core/hle/service/olsc/remote_storage_controller.h
new file mode 100644
index 000000000..e7a0b5244
--- /dev/null
+++ b/src/core/hle/service/olsc/remote_storage_controller.h
@@ -0,0 +1,19 @@
+// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "core/hle/service/cmif_types.h"
+#include "core/hle/service/service.h"
+
+namespace Service::OLSC {
+
+class IRemoteStorageController final : public ServiceFramework<IRemoteStorageController> {
+public:
+ explicit IRemoteStorageController(Core::System& system_);
+ ~IRemoteStorageController() override;
+
+private:
+ Result GetSecondarySave(Out<bool> out_has_secondary_save, Out<std::array<u64, 3>> out_unknown,
+ u64 application_id);
+};
+
+} // namespace Service::OLSC