diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-01-26 15:55:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-26 15:55:25 +0100 |
commit | 55482ab5dce463d5014498b006c18a90d0d004e6 (patch) | |
tree | b343faa9cadc692265efb4b6b88e157c97ef76d2 /src/core/file_sys/fs_directory.h | |
parent | Merge pull request #12796 from t895/controller-optimizations (diff) | |
parent | Address review comments and fix compilation problems (diff) | |
download | yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.gz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.bz2 yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.lz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.xz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.zst yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.zip |
Diffstat (limited to 'src/core/file_sys/fs_directory.h')
-rw-r--r-- | src/core/file_sys/fs_directory.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/core/file_sys/fs_directory.h b/src/core/file_sys/fs_directory.h new file mode 100644 index 000000000..25c9cb18a --- /dev/null +++ b/src/core/file_sys/fs_directory.h @@ -0,0 +1,33 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +namespace FileSys { + +constexpr inline size_t EntryNameLengthMax = 0x300; + +struct DirectoryEntry { + DirectoryEntry(std::string_view view, s8 entry_type, u64 entry_size) + : type{entry_type}, file_size{static_cast<s64>(entry_size)} { + const std::size_t copy_size = view.copy(name, std::size(name) - 1); + name[copy_size] = '\0'; + } + + char name[EntryNameLengthMax + 1]; + INSERT_PADDING_BYTES(3); + s8 type; + INSERT_PADDING_BYTES(3); + s64 file_size; +}; + +static_assert(sizeof(DirectoryEntry) == 0x310, + "Directory Entry struct isn't exactly 0x310 bytes long!"); +static_assert(offsetof(DirectoryEntry, type) == 0x304, "Wrong offset for type in Entry."); +static_assert(offsetof(DirectoryEntry, file_size) == 0x308, "Wrong offset for file_size in Entry."); + +struct DirectoryHandle { + void* handle; +}; + +} // namespace FileSys |