[fs] Add known FileSystemAttribute struct fields (from libhac) (#3275)
Tries to fix cyrillic path issue in Absolum when filesystem tries to commit. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3275 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
This commit is contained in:
parent
64ff59e82f
commit
eb7f74ce97
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
@ -43,17 +46,31 @@ struct FileSystemAttribute {
|
|||
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_create_dir_path_len_max_defined;
|
||||
u8 utf16_delete_dir_path_len_max_defined;
|
||||
u8 utf16_rename_src_dir_path_len_max_defined;
|
||||
u8 utf16_rename_dest_dir_path_len_max_defined;
|
||||
u8 utf16_open_dir_path_len_max_defined;
|
||||
|
||||
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_create_dir_path_length_max;
|
||||
s32 utf16_delete_dir_path_length_max;
|
||||
s32 utf16_rename_src_dir_path_length_max;
|
||||
s32 utf16_rename_dest_dir_path_length_max;
|
||||
s32 utf16_open_dir_path_length_max;
|
||||
|
||||
s32 utf16_dir_entry_name_length_max;
|
||||
s32 utf16_file_entry_name_length_max;
|
||||
s32 utf16_dir_path_name_length_max;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
|
|
@ -163,11 +163,42 @@ Result IFileSystem::GetFileTimeStampRaw(
|
|||
Result IFileSystem::GetFileSystemAttribute(Out<FileSys::FileSystemAttribute> out_attribute) {
|
||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
||||
|
||||
constexpr s32 kEntryNameLengthMax = 0x80;
|
||||
constexpr s32 kPathLengthMax = 0x300;
|
||||
|
||||
FileSys::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;
|
||||
savedata_attribute.dir_path_name_length_max_defined = true;
|
||||
savedata_attribute.file_path_name_length_max_defined = true;
|
||||
|
||||
savedata_attribute.utf16_create_dir_path_len_max_defined = true;
|
||||
savedata_attribute.utf16_delete_dir_path_len_max_defined = true;
|
||||
savedata_attribute.utf16_rename_src_dir_path_len_max_defined = true;
|
||||
savedata_attribute.utf16_rename_dest_dir_path_len_max_defined = true;
|
||||
savedata_attribute.utf16_open_dir_path_len_max_defined = true;
|
||||
|
||||
savedata_attribute.utf16_dir_entry_name_length_max_defined = true;
|
||||
savedata_attribute.utf16_file_entry_name_length_max_defined = true;
|
||||
savedata_attribute.utf16_dir_path_name_length_max_defined = true;
|
||||
savedata_attribute.utf16_file_path_name_length_max_defined = true;
|
||||
|
||||
savedata_attribute.dir_entry_name_length_max = kEntryNameLengthMax;
|
||||
savedata_attribute.file_entry_name_length_max = kEntryNameLengthMax;
|
||||
savedata_attribute.dir_path_name_length_max = kPathLengthMax;
|
||||
savedata_attribute.file_path_name_length_max = kPathLengthMax;
|
||||
|
||||
savedata_attribute.utf16_create_dir_path_length_max = kPathLengthMax;
|
||||
savedata_attribute.utf16_delete_dir_path_length_max = kPathLengthMax;
|
||||
savedata_attribute.utf16_rename_src_dir_path_length_max = kPathLengthMax;
|
||||
savedata_attribute.utf16_rename_dest_dir_path_length_max = kPathLengthMax;
|
||||
savedata_attribute.utf16_open_dir_path_length_max = kPathLengthMax;
|
||||
|
||||
savedata_attribute.utf16_dir_entry_name_length_max = kEntryNameLengthMax;
|
||||
savedata_attribute.utf16_file_entry_name_length_max = kEntryNameLengthMax;
|
||||
savedata_attribute.utf16_dir_path_name_length_max = kPathLengthMax;
|
||||
savedata_attribute.utf16_file_path_name_length_max = kPathLengthMax;
|
||||
|
||||
*out_attribute = savedata_attribute;
|
||||
R_SUCCEED();
|
||||
|
|
|
|||
Loading…
Reference in New Issue