diff options
| author | 2023-09-25 16:32:15 -0400 | |
|---|---|---|
| committer | 2023-09-25 21:40:23 -0400 | |
| commit | 00a612eaea10dbeeb28daa223ed59f6216e890d0 (patch) | |
| tree | 479408e19109183c9579bc823a82a04de25275f3 /src | |
| parent | Merge pull request #11583 from t895/overlay-fix-2 (diff) | |
| download | yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.gz yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.tar.xz yuzu-00a612eaea10dbeeb28daa223ed59f6216e890d0.zip | |
fsp-srv: add GetFileSystemAttribute
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: | |||
| 329 | {13, &IFileSystem::CleanDirectoryRecursively, "CleanDirectoryRecursively"}, | 329 | {13, &IFileSystem::CleanDirectoryRecursively, "CleanDirectoryRecursively"}, |
| 330 | {14, &IFileSystem::GetFileTimeStampRaw, "GetFileTimeStampRaw"}, | 330 | {14, &IFileSystem::GetFileTimeStampRaw, "GetFileTimeStampRaw"}, |
| 331 | {15, nullptr, "QueryEntry"}, | 331 | {15, nullptr, "QueryEntry"}, |
| 332 | {16, &IFileSystem::GetFileSystemAttribute, "GetFileSystemAttribute"}, | ||
| 332 | }; | 333 | }; |
| 333 | RegisterHandlers(functions); | 334 | RegisterHandlers(functions); |
| 334 | } | 335 | } |
| @@ -521,6 +522,46 @@ public: | |||
| 521 | rb.PushRaw(vfs_timestamp); | 522 | rb.PushRaw(vfs_timestamp); |
| 522 | } | 523 | } |
| 523 | 524 | ||
| 525 | void GetFileSystemAttribute(HLERequestContext& ctx) { | ||
| 526 | LOG_WARNING(Service_FS, "(STUBBED) called"); | ||
| 527 | |||
| 528 | struct FileSystemAttribute { | ||
| 529 | u8 dir_entry_name_length_max_defined; | ||
| 530 | u8 file_entry_name_length_max_defined; | ||
| 531 | u8 dir_path_name_length_max_defined; | ||
| 532 | u8 file_path_name_length_max_defined; | ||
| 533 | INSERT_PADDING_BYTES_NOINIT(0x5); | ||
| 534 | u8 utf16_dir_entry_name_length_max_defined; | ||
| 535 | u8 utf16_file_entry_name_length_max_defined; | ||
| 536 | u8 utf16_dir_path_name_length_max_defined; | ||
| 537 | u8 utf16_file_path_name_length_max_defined; | ||
| 538 | INSERT_PADDING_BYTES_NOINIT(0x18); | ||
| 539 | s32 dir_entry_name_length_max; | ||
| 540 | s32 file_entry_name_length_max; | ||
| 541 | s32 dir_path_name_length_max; | ||
| 542 | s32 file_path_name_length_max; | ||
| 543 | INSERT_PADDING_WORDS_NOINIT(0x5); | ||
| 544 | s32 utf16_dir_entry_name_length_max; | ||
| 545 | s32 utf16_file_entry_name_length_max; | ||
| 546 | s32 utf16_dir_path_name_length_max; | ||
| 547 | s32 utf16_file_path_name_length_max; | ||
| 548 | INSERT_PADDING_WORDS_NOINIT(0x18); | ||
| 549 | INSERT_PADDING_WORDS_NOINIT(0x1); | ||
| 550 | }; | ||
| 551 | static_assert(sizeof(FileSystemAttribute) == 0xc0, | ||
| 552 | "FileSystemAttribute has incorrect size"); | ||
| 553 | |||
| 554 | FileSystemAttribute savedata_attribute{}; | ||
| 555 | savedata_attribute.dir_entry_name_length_max_defined = true; | ||
| 556 | savedata_attribute.file_entry_name_length_max_defined = true; | ||
| 557 | savedata_attribute.dir_entry_name_length_max = 0x40; | ||
| 558 | savedata_attribute.file_entry_name_length_max = 0x40; | ||
| 559 | |||
| 560 | IPC::ResponseBuilder rb{ctx, 50}; | ||
| 561 | rb.Push(ResultSuccess); | ||
| 562 | rb.PushRaw(savedata_attribute); | ||
| 563 | } | ||
| 564 | |||
| 524 | private: | 565 | private: |
| 525 | VfsDirectoryServiceWrapper backend; | 566 | VfsDirectoryServiceWrapper backend; |
| 526 | SizeGetter size; | 567 | SizeGetter size; |