diff options
| author | 2018-10-28 14:58:09 -0400 | |
|---|---|---|
| committer | 2018-10-29 13:54:39 -0400 | |
| commit | 2e8177f0c93768e1d1a7d6a830e9c68111c2afd6 (patch) | |
| tree | 6821f78defeab63dec1093d55d46b17cbfa69bce /src | |
| parent | savedata_factory: Expose accessors for SaveDataSpace (diff) | |
| download | yuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.tar.gz yuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.tar.xz yuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.zip | |
fsp_srv: Implement command 61: OpenSaveDataInfoReaderBySaveDataSpaceId
Needed by Checkpoint. Returns an object that can iterate through all savedata on the system.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 13 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.h | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index c1c83a11d..56102a3db 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp | |||
| @@ -452,6 +452,7 @@ private: | |||
| 452 | }; | 452 | }; |
| 453 | 453 | ||
| 454 | FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") { | 454 | FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") { |
| 455 | // clang-format off | ||
| 455 | static const FunctionInfo functions[] = { | 456 | static const FunctionInfo functions[] = { |
| 456 | {0, nullptr, "MountContent"}, | 457 | {0, nullptr, "MountContent"}, |
| 457 | {1, &FSP_SRV::Initialize, "Initialize"}, | 458 | {1, &FSP_SRV::Initialize, "Initialize"}, |
| @@ -485,7 +486,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") { | |||
| 485 | {58, nullptr, "ReadSaveDataFileSystemExtraData"}, | 486 | {58, nullptr, "ReadSaveDataFileSystemExtraData"}, |
| 486 | {59, nullptr, "WriteSaveDataFileSystemExtraData"}, | 487 | {59, nullptr, "WriteSaveDataFileSystemExtraData"}, |
| 487 | {60, nullptr, "OpenSaveDataInfoReader"}, | 488 | {60, nullptr, "OpenSaveDataInfoReader"}, |
| 488 | {61, nullptr, "OpenSaveDataInfoReaderBySaveDataSpaceId"}, | 489 | {61, &FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId, "OpenSaveDataInfoReaderBySaveDataSpaceId"}, |
| 489 | {62, nullptr, "OpenCacheStorageList"}, | 490 | {62, nullptr, "OpenCacheStorageList"}, |
| 490 | {64, nullptr, "OpenSaveDataInternalStorageFileSystem"}, | 491 | {64, nullptr, "OpenSaveDataInternalStorageFileSystem"}, |
| 491 | {65, nullptr, "UpdateSaveDataMacForDebug"}, | 492 | {65, nullptr, "UpdateSaveDataMacForDebug"}, |
| @@ -544,6 +545,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") { | |||
| 544 | {1009, nullptr, "GetAndClearMemoryReportInfo"}, | 545 | {1009, nullptr, "GetAndClearMemoryReportInfo"}, |
| 545 | {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"}, | 546 | {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"}, |
| 546 | }; | 547 | }; |
| 548 | // clang-format on | ||
| 547 | RegisterHandlers(functions); | 549 | RegisterHandlers(functions); |
| 548 | } | 550 | } |
| 549 | 551 | ||
| @@ -618,6 +620,15 @@ void FSP_SRV::OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx) { | |||
| 618 | MountSaveData(ctx); | 620 | MountSaveData(ctx); |
| 619 | } | 621 | } |
| 620 | 622 | ||
| 623 | void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx) { | ||
| 624 | IPC::RequestParser rp{ctx}; | ||
| 625 | const auto space = rp.PopRaw<FileSys::SaveDataSpaceId>(); | ||
| 626 | |||
| 627 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||
| 628 | rb.Push(RESULT_SUCCESS); | ||
| 629 | rb.PushIpcInterface<ISaveDataInfoReader>(std::make_shared<ISaveDataInfoReader>(space)); | ||
| 630 | } | ||
| 631 | |||
| 621 | void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | 632 | void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { |
| 622 | LOG_WARNING(Service_FS, "(STUBBED) called"); | 633 | LOG_WARNING(Service_FS, "(STUBBED) called"); |
| 623 | 634 | ||
diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h index 4aa0358cb..e7abec0a3 100644 --- a/src/core/hle/service/filesystem/fsp_srv.h +++ b/src/core/hle/service/filesystem/fsp_srv.h | |||
| @@ -25,6 +25,7 @@ private: | |||
| 25 | void CreateSaveData(Kernel::HLERequestContext& ctx); | 25 | void CreateSaveData(Kernel::HLERequestContext& ctx); |
| 26 | void MountSaveData(Kernel::HLERequestContext& ctx); | 26 | void MountSaveData(Kernel::HLERequestContext& ctx); |
| 27 | void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx); | 27 | void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx); |
| 28 | void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx); | ||
| 28 | void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx); | 29 | void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx); |
| 29 | void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx); | 30 | void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx); |
| 30 | void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx); | 31 | void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx); |