diff options
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 38 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.h | 1 | 
2 files changed, 38 insertions, 1 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index f6503fe2f..20c331b77 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp @@ -767,7 +767,7 @@ FSP_SRV::FSP_SRV(FileSystemController& fsc, const Core::Reporter& reporter)          {1014, nullptr, "OutputMultiProgramTagAccessLog"},          {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},          {1110, nullptr, "CorruptSaveDataFileSystemBySaveDataSpaceId2"}, -        {1200, nullptr, "OpenMultiCommitManager"}, +        {1200, &FSP_SRV::OpenMultiCommitManager, "OpenMultiCommitManager"},          {1300, nullptr, "OpenBisWiper"},      };      // clang-format on @@ -988,4 +988,40 @@ void FSP_SRV::GetAccessLogVersionInfo(Kernel::HLERequestContext& ctx) {      rb.Push(access_log_program_index);  } +class IMultiCommitManager final : public ServiceFramework<IMultiCommitManager> { +public: +    explicit IMultiCommitManager() : ServiceFramework("IMultiCommitManager") { +        static const FunctionInfo functions[] = { +            {1, &IMultiCommitManager::Add, "Add"}, +            {2, &IMultiCommitManager::Commit, "Commit"}, +        }; +        RegisterHandlers(functions); +    } + +private: +    FileSys::VirtualFile backend; + +    void Add(Kernel::HLERequestContext& ctx) { +        LOG_WARNING(Service_FS, "(STUBBED) called"); + +        IPC::ResponseBuilder rb{ctx, 2}; +        rb.Push(RESULT_SUCCESS); +    } + +    void Commit(Kernel::HLERequestContext& ctx) { +        LOG_WARNING(Service_FS, "(STUBBED) called"); + +        IPC::ResponseBuilder rb{ctx, 2}; +        rb.Push(RESULT_SUCCESS); +    } +}; + +void FSP_SRV::OpenMultiCommitManager(Kernel::HLERequestContext& ctx) { +    LOG_DEBUG(Service_FS, "called"); + +    IPC::ResponseBuilder rb{ctx, 2, 0, 1}; +    rb.Push(RESULT_SUCCESS); +    rb.PushIpcInterface<IMultiCommitManager>(std::make_shared<IMultiCommitManager>()); +} +  } // namespace Service::FileSystem diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h index d52b55999..dfb3e395b 100644 --- a/src/core/hle/service/filesystem/fsp_srv.h +++ b/src/core/hle/service/filesystem/fsp_srv.h @@ -50,6 +50,7 @@ private:      void OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);      void OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx);      void GetAccessLogVersionInfo(Kernel::HLERequestContext& ctx); +    void OpenMultiCommitManager(Kernel::HLERequestContext& ctx);      FileSystemController& fsc;  | 
