diff options
author | Liam <byteslice@airmail.cc> | 2023-09-25 22:32:15 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-09-26 03:40:23 +0200 |
commit | 00a612eaea10dbeeb28daa223ed59f6216e890d0 (patch) | |
tree | 479408e19109183c9579bc823a82a04de25275f3 /src | |
parent | Merge pull request #11583 from t895/overlay-fix-2 (diff) | |
download | yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.gz yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.bz2 yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.lz yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.xz yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.zst yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 2492bbc16..c2054e8a0 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp @@ -329,6 +329,7 @@ public: {13, &IFileSystem::CleanDirectoryRecursively, "CleanDirectoryRecursively"}, {14, &IFileSystem::GetFileTimeStampRaw, "GetFileTimeStampRaw"}, {15, nullptr, "QueryEntry"}, + {16, &IFileSystem::GetFileSystemAttribute, "GetFileSystemAttribute"}, }; RegisterHandlers(functions); } @@ -521,6 +522,46 @@ public: rb.PushRaw(vfs_timestamp); } + void GetFileSystemAttribute(HLERequestContext& ctx) { + LOG_WARNING(Service_FS, "(STUBBED) called"); + + struct FileSystemAttribute { + u8 dir_entry_name_length_max_defined; + u8 file_entry_name_length_max_defined; + u8 dir_path_name_length_max_defined; + u8 file_path_name_length_max_defined; + INSERT_PADDING_BYTES_NOINIT(0x5); + u8 utf16_dir_entry_name_length_max_defined; + u8 utf16_file_entry_name_length_max_defined; + u8 utf16_dir_path_name_length_max_defined; + u8 utf16_file_path_name_length_max_defined; + INSERT_PADDING_BYTES_NOINIT(0x18); + s32 dir_entry_name_length_max; + s32 file_entry_name_length_max; + s32 dir_path_name_length_max; + s32 file_path_name_length_max; + INSERT_PADDING_WORDS_NOINIT(0x5); + s32 utf16_dir_entry_name_length_max; + s32 utf16_file_entry_name_length_max; + s32 utf16_dir_path_name_length_max; + s32 utf16_file_path_name_length_max; + INSERT_PADDING_WORDS_NOINIT(0x18); + INSERT_PADDING_WORDS_NOINIT(0x1); + }; + static_assert(sizeof(FileSystemAttribute) == 0xc0, + "FileSystemAttribute has incorrect size"); + + FileSystemAttribute savedata_attribute{}; + savedata_attribute.dir_entry_name_length_max_defined = true; + savedata_attribute.file_entry_name_length_max_defined = true; + savedata_attribute.dir_entry_name_length_max = 0x40; + savedata_attribute.file_entry_name_length_max = 0x40; + + IPC::ResponseBuilder rb{ctx, 50}; + rb.Push(ResultSuccess); + rb.PushRaw(savedata_attribute); + } + private: VfsDirectoryServiceWrapper backend; SizeGetter size; |