fsp_srv.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include "core/hle/service/service.h"
  7. namespace Core {
  8. class Reporter;
  9. }
  10. namespace FileSys {
  11. class FileSystemBackend;
  12. }
  13. namespace Service::FileSystem {
  14. enum class AccessLogVersion : u32 {
  15. V7_0_0 = 2,
  16. Latest = V7_0_0,
  17. };
  18. enum class LogMode : u32 {
  19. Off,
  20. Log,
  21. RedirectToSdCard,
  22. LogToSdCard = Log | RedirectToSdCard,
  23. };
  24. class FSP_SRV final : public ServiceFramework<FSP_SRV> {
  25. public:
  26. explicit FSP_SRV(FileSystemController& fsc, const Core::Reporter& reporter);
  27. ~FSP_SRV() override;
  28. private:
  29. void SetCurrentProcess(Kernel::HLERequestContext& ctx);
  30. void OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx);
  31. void OpenSdCardFileSystem(Kernel::HLERequestContext& ctx);
  32. void CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx);
  33. void OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx);
  34. void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx);
  35. void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx);
  36. void SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
  37. void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
  38. void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
  39. void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);
  40. void OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
  41. void OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx);
  42. void GetAccessLogVersionInfo(Kernel::HLERequestContext& ctx);
  43. void OpenMultiCommitManager(Kernel::HLERequestContext& ctx);
  44. FileSystemController& fsc;
  45. FileSys::VirtualFile romfs;
  46. u64 current_process_id = 0;
  47. u32 access_log_program_index = 0;
  48. LogMode log_mode = LogMode::LogToSdCard;
  49. const Core::Reporter& reporter;
  50. };
  51. } // namespace Service::FileSystem