summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar Morph2021-06-16 14:03:01 -0400
committerGravatar GitHub2021-06-16 14:03:01 -0400
commit92942fe01bf290d247e1a51562a07fe280448b47 (patch)
tree0868b1e5d5ae17a77dc18f678eb454b3e8f16c2b /src/core/hle
parentMerge pull request #6462 from Morph1984/proper-flush (diff)
parentcommon: fs: file: Remove redundant call to WriteStringToFile (diff)
downloadyuzu-92942fe01bf290d247e1a51562a07fe280448b47.tar.gz
yuzu-92942fe01bf290d247e1a51562a07fe280448b47.tar.xz
yuzu-92942fe01bf290d247e1a51562a07fe280448b47.zip
Merge pull request #6460 from Morph1984/fs-access-log-fix
fsp_srv: Fix filesystem access logging
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp15
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.h12
2 files changed, 15 insertions, 12 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index 3af9881c2..db4d44c12 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -13,6 +13,7 @@
13#include "common/common_types.h" 13#include "common/common_types.h"
14#include "common/hex_util.h" 14#include "common/hex_util.h"
15#include "common/logging/log.h" 15#include "common/logging/log.h"
16#include "common/settings.h"
16#include "common/string_util.h" 17#include "common/string_util.h"
17#include "core/core.h" 18#include "core/core.h"
18#include "core/file_sys/directory.h" 19#include "core/file_sys/directory.h"
@@ -785,6 +786,10 @@ FSP_SRV::FSP_SRV(Core::System& system_)
785 }; 786 };
786 // clang-format on 787 // clang-format on
787 RegisterHandlers(functions); 788 RegisterHandlers(functions);
789
790 if (Settings::values.enable_fs_access_log) {
791 access_log_mode = AccessLogMode::SdCard;
792 }
788} 793}
789 794
790FSP_SRV::~FSP_SRV() = default; 795FSP_SRV::~FSP_SRV() = default;
@@ -1041,9 +1046,9 @@ void FSP_SRV::DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx) {
1041 1046
1042void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { 1047void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
1043 IPC::RequestParser rp{ctx}; 1048 IPC::RequestParser rp{ctx};
1044 log_mode = rp.PopEnum<LogMode>(); 1049 access_log_mode = rp.PopEnum<AccessLogMode>();
1045 1050
1046 LOG_DEBUG(Service_FS, "called, log_mode={:08X}", log_mode); 1051 LOG_DEBUG(Service_FS, "called, access_log_mode={}", access_log_mode);
1047 1052
1048 IPC::ResponseBuilder rb{ctx, 2}; 1053 IPC::ResponseBuilder rb{ctx, 2};
1049 rb.Push(ResultSuccess); 1054 rb.Push(ResultSuccess);
@@ -1054,7 +1059,7 @@ void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
1054 1059
1055 IPC::ResponseBuilder rb{ctx, 3}; 1060 IPC::ResponseBuilder rb{ctx, 3};
1056 rb.Push(ResultSuccess); 1061 rb.Push(ResultSuccess);
1057 rb.PushEnum(log_mode); 1062 rb.PushEnum(access_log_mode);
1058} 1063}
1059 1064
1060void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) { 1065void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) {
@@ -1062,9 +1067,9 @@ void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) {
1062 auto log = Common::StringFromFixedZeroTerminatedBuffer( 1067 auto log = Common::StringFromFixedZeroTerminatedBuffer(
1063 reinterpret_cast<const char*>(raw.data()), raw.size()); 1068 reinterpret_cast<const char*>(raw.data()), raw.size());
1064 1069
1065 LOG_DEBUG(Service_FS, "called, log='{}'", log); 1070 LOG_DEBUG(Service_FS, "called");
1066 1071
1067 reporter.SaveFilesystemAccessReport(log_mode, std::move(log)); 1072 reporter.SaveFSAccessLog(log);
1068 1073
1069 IPC::ResponseBuilder rb{ctx, 2}; 1074 IPC::ResponseBuilder rb{ctx, 2};
1070 rb.Push(ResultSuccess); 1075 rb.Push(ResultSuccess);
diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h
index ff7455a20..556708284 100644
--- a/src/core/hle/service/filesystem/fsp_srv.h
+++ b/src/core/hle/service/filesystem/fsp_srv.h
@@ -24,11 +24,10 @@ enum class AccessLogVersion : u32 {
24 Latest = V7_0_0, 24 Latest = V7_0_0,
25}; 25};
26 26
27enum class LogMode : u32 { 27enum class AccessLogMode : u32 {
28 Off, 28 None,
29 Log, 29 Log,
30 RedirectToSdCard, 30 SdCard,
31 LogToSdCard = Log | RedirectToSdCard,
32}; 31};
33 32
34class FSP_SRV final : public ServiceFramework<FSP_SRV> { 33class FSP_SRV final : public ServiceFramework<FSP_SRV> {
@@ -59,13 +58,12 @@ private:
59 58
60 FileSystemController& fsc; 59 FileSystemController& fsc;
61 const FileSys::ContentProvider& content_provider; 60 const FileSys::ContentProvider& content_provider;
61 const Core::Reporter& reporter;
62 62
63 FileSys::VirtualFile romfs; 63 FileSys::VirtualFile romfs;
64 u64 current_process_id = 0; 64 u64 current_process_id = 0;
65 u32 access_log_program_index = 0; 65 u32 access_log_program_index = 0;
66 LogMode log_mode = LogMode::LogToSdCard; 66 AccessLogMode access_log_mode = AccessLogMode::None;
67
68 const Core::Reporter& reporter;
69}; 67};
70 68
71} // namespace Service::FileSystem 69} // namespace Service::FileSystem