diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/file_sys/errors.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 13 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/core/file_sys/errors.h b/src/core/file_sys/errors.h index 0ed7d2a0c..d3e9a3829 100644 --- a/src/core/file_sys/errors.h +++ b/src/core/file_sys/errors.h | |||
| @@ -11,6 +11,7 @@ namespace FileSys { | |||
| 11 | namespace ErrCodes { | 11 | namespace ErrCodes { |
| 12 | enum { | 12 | enum { |
| 13 | NotFound = 1, | 13 | NotFound = 1, |
| 14 | SaveDataNotFound = 1002, | ||
| 14 | }; | 15 | }; |
| 15 | } | 16 | } |
| 16 | 17 | ||
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 1cf97e876..eb5748cf8 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include "common/string_util.h" | 7 | #include "common/string_util.h" |
| 8 | #include "core/core.h" | 8 | #include "core/core.h" |
| 9 | #include "core/file_sys/directory.h" | 9 | #include "core/file_sys/directory.h" |
| 10 | #include "core/file_sys/errors.h" | ||
| 10 | #include "core/file_sys/filesystem.h" | 11 | #include "core/file_sys/filesystem.h" |
| 11 | #include "core/file_sys/storage.h" | 12 | #include "core/file_sys/storage.h" |
| 12 | #include "core/hle/ipc_helpers.h" | 13 | #include "core/hle/ipc_helpers.h" |
| @@ -531,12 +532,20 @@ void FSP_SRV::CreateSaveData(Kernel::HLERequestContext& ctx) { | |||
| 531 | void FSP_SRV::MountSaveData(Kernel::HLERequestContext& ctx) { | 532 | void FSP_SRV::MountSaveData(Kernel::HLERequestContext& ctx) { |
| 532 | NGLOG_WARNING(Service_FS, "(STUBBED) called"); | 533 | NGLOG_WARNING(Service_FS, "(STUBBED) called"); |
| 533 | 534 | ||
| 535 | // TODO(Subv): Read the input parameters and mount the requested savedata instead of always | ||
| 536 | // mounting the current process' savedata. | ||
| 534 | FileSys::Path unused; | 537 | FileSys::Path unused; |
| 535 | auto filesystem = OpenFileSystem(Type::SaveData, unused).Unwrap(); | 538 | auto filesystem = OpenFileSystem(Type::SaveData, unused); |
| 539 | |||
| 540 | if (filesystem.Failed()) { | ||
| 541 | IPC::ResponseBuilder rb{ctx, 2, 0, 0}; | ||
| 542 | rb.Push(ResultCode(ErrorModule::FS, FileSys::ErrCodes::SaveDataNotFound)); | ||
| 543 | return; | ||
| 544 | } | ||
| 536 | 545 | ||
| 537 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 546 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 538 | rb.Push(RESULT_SUCCESS); | 547 | rb.Push(RESULT_SUCCESS); |
| 539 | rb.PushIpcInterface<IFileSystem>(std::move(filesystem)); | 548 | rb.PushIpcInterface<IFileSystem>(std::move(filesystem.Unwrap())); |
| 540 | } | 549 | } |
| 541 | 550 | ||
| 542 | void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | 551 | void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { |