diff options
Diffstat (limited to 'src/core/hle/service/filesystem/fsp')
4 files changed, 53 insertions, 2 deletions
diff --git a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp index fc67a4713..04819afdf 100644 --- a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp @@ -34,6 +34,7 @@ #include "core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h" #include "core/hle/service/filesystem/fsp/fs_i_storage.h" #include "core/hle/service/filesystem/fsp/fsp_srv.h" +#include "core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.h" #include "core/hle/service/filesystem/romfs_controller.h" #include "core/hle/service/filesystem/save_data_controller.h" #include "core/hle/service/hle_ipc.h" @@ -87,7 +88,7 @@ FSP_SRV::FSP_SRV(Core::System& system_) {64, nullptr, "OpenSaveDataInternalStorageFileSystem"}, {65, nullptr, "UpdateSaveDataMacForDebug"}, {66, nullptr, "WriteSaveDataFileSystemExtraData2"}, - {67, nullptr, "FindSaveDataWithFilter"}, + {67, D<&FSP_SRV::FindSaveDataWithFilter>, "FindSaveDataWithFilter"}, {68, nullptr, "OpenSaveDataInfoReaderBySaveDataFilter"}, {69, nullptr, "ReadSaveDataFileSystemExtraDataBySaveDataAttribute"}, {70, D<&FSP_SRV::WriteSaveDataFileSystemExtraDataBySaveDataAttribute>, "WriteSaveDataFileSystemExtraDataBySaveDataAttribute"}, @@ -95,7 +96,7 @@ FSP_SRV::FSP_SRV(Core::System& system_) {80, nullptr, "OpenSaveDataMetaFile"}, {81, nullptr, "OpenSaveDataTransferManager"}, {82, nullptr, "OpenSaveDataTransferManagerVersion2"}, - {83, nullptr, "OpenSaveDataTransferProhibiterForCloudBackUp"}, + {83, D<&FSP_SRV::OpenSaveDataTransferProhibiter>, "OpenSaveDataTransferProhibiter"}, {84, nullptr, "ListApplicationAccessibleSaveDataOwnerId"}, {85, nullptr, "OpenSaveDataTransferManagerForSaveDataRepair"}, {86, nullptr, "OpenSaveDataMover"}, @@ -308,6 +309,14 @@ Result FSP_SRV::OpenSaveDataInfoReaderOnlyCacheStorage( R_SUCCEED(); } +Result FSP_SRV::FindSaveDataWithFilter(Out<s64> out_count, + OutBuffer<BufferAttr_HipcMapAlias> out_buffer, + FileSys::SaveDataSpaceId space_id, + FileSys::SaveDataFilter filter) { + LOG_WARNING(Service_FS, "(STUBBED) called"); + R_THROW(FileSys::ResultTargetNotFound); +} + Result FSP_SRV::WriteSaveDataFileSystemExtraDataBySaveDataAttribute() { LOG_WARNING(Service_FS, "(STUBBED) called."); @@ -332,6 +341,13 @@ Result FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute( R_SUCCEED(); } +Result FSP_SRV::OpenSaveDataTransferProhibiter( + OutInterface<ISaveDataTransferProhibiter> out_prohibiter, u64 id) { + LOG_WARNING(Service_FS, "(STUBBED) called, id={:016X}", id); + *out_prohibiter = std::make_shared<ISaveDataTransferProhibiter>(system); + R_SUCCEED(); +} + Result FSP_SRV::OpenDataStorageByCurrentProcess(OutInterface<IStorage> out_interface) { LOG_DEBUG(Service_FS, "called"); diff --git a/src/core/hle/service/filesystem/fsp/fsp_srv.h b/src/core/hle/service/filesystem/fsp/fsp_srv.h index ee67f6bc1..db51852c7 100644 --- a/src/core/hle/service/filesystem/fsp/fsp_srv.h +++ b/src/core/hle/service/filesystem/fsp/fsp_srv.h @@ -25,6 +25,7 @@ class SaveDataController; class IFileSystem; class ISaveDataInfoReader; +class ISaveDataTransferProhibiter; class IStorage; class IMultiCommitManager; @@ -66,11 +67,16 @@ private: Result OpenSaveDataInfoReaderBySaveDataSpaceId(OutInterface<ISaveDataInfoReader> out_interface, FileSys::SaveDataSpaceId space); Result OpenSaveDataInfoReaderOnlyCacheStorage(OutInterface<ISaveDataInfoReader> out_interface); + Result FindSaveDataWithFilter(Out<s64> out_count, OutBuffer<BufferAttr_HipcMapAlias> out_buffer, + FileSys::SaveDataSpaceId space_id, + FileSys::SaveDataFilter filter); Result WriteSaveDataFileSystemExtraDataBySaveDataAttribute(); Result ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute( FileSys::SaveDataSpaceId space_id, FileSys::SaveDataAttribute attribute, InBuffer<BufferAttr_HipcMapAlias> mask_buffer, OutBuffer<BufferAttr_HipcMapAlias> out_buffer); + Result OpenSaveDataTransferProhibiter(OutInterface<ISaveDataTransferProhibiter> out_prohibiter, + u64 id); Result OpenDataStorageByCurrentProcess(OutInterface<IStorage> out_interface); Result OpenDataStorageByDataId(OutInterface<IStorage> out_interface, FileSys::StorageId storage_id, u32 unknown, u64 title_id); diff --git a/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.cpp b/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.cpp new file mode 100644 index 000000000..d8d6289fe --- /dev/null +++ b/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.cpp @@ -0,0 +1,13 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.h" + +namespace Service::FileSystem { + +ISaveDataTransferProhibiter::ISaveDataTransferProhibiter(Core::System& system_) + : ServiceFramework{system_, "ISaveDataTransferProhibiter"} {} + +ISaveDataTransferProhibiter::~ISaveDataTransferProhibiter() = default; + +} // namespace Service::FileSystem diff --git a/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.h b/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.h new file mode 100644 index 000000000..d206e1dea --- /dev/null +++ b/src/core/hle/service/filesystem/fsp/save_data_transfer_prohibiter.h @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "core/hle/service/service.h" + +namespace Service::FileSystem { + +class ISaveDataTransferProhibiter : public ServiceFramework<ISaveDataTransferProhibiter> { +public: + explicit ISaveDataTransferProhibiter(Core::System& system_); + ~ISaveDataTransferProhibiter() override; +}; + +} // namespace Service::FileSystem |