diff options
author | Liam <byteslice@airmail.cc> | 2023-08-12 21:18:55 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-08-15 23:47:40 +0200 |
commit | 50eee9b2185c59c32fb82cf464230a058edd10ea (patch) | |
tree | beebc2d0da1fa0678a067de9c12cb7d11c775748 /src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h | |
parent | fssystem: reduce overalignment of unbuffered storage operations (diff) | |
download | yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar.gz yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar.bz2 yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar.lz yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar.xz yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.tar.zst yuzu-50eee9b2185c59c32fb82cf464230a058edd10ea.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h b/src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h index 3d216e4ae..5cf697efe 100644 --- a/src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h +++ b/src/core/file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h @@ -24,7 +24,7 @@ static_assert(alignof(HierarchicalIntegrityVerificationLevelInformation) == 0x4) struct HierarchicalIntegrityVerificationInformation { u32 max_layers; - HierarchicalIntegrityVerificationLevelInformation info[IntegrityMaxLayerCount - 1]; + std::array<HierarchicalIntegrityVerificationLevelInformation, IntegrityMaxLayerCount - 1> info; HashSalt seed; s64 GetLayeredHashSize() const { @@ -52,7 +52,7 @@ static_assert(std::is_trivial_v<HierarchicalIntegrityVerificationMetaInformation struct HierarchicalIntegrityVerificationSizeSet { s64 control_size; s64 master_hash_size; - s64 layered_hash_sizes[IntegrityMaxLayerCount - 2]; + std::array<s64, IntegrityMaxLayerCount - 2> layered_hash_sizes; }; static_assert(std::is_trivial_v<HierarchicalIntegrityVerificationSizeSet>); @@ -60,13 +60,6 @@ class HierarchicalIntegrityVerificationStorage : public IReadOnlyStorage { YUZU_NON_COPYABLE(HierarchicalIntegrityVerificationStorage); YUZU_NON_MOVEABLE(HierarchicalIntegrityVerificationStorage); -private: - friend struct HierarchicalIntegrityVerificationMetaInformation; - -protected: - static constexpr s64 HashSize = 256 / 8; - static constexpr size_t MaxLayers = IntegrityMaxLayerCount; - public: using GenerateRandomFunction = void (*)(void* dst, size_t size); @@ -83,7 +76,7 @@ public: }; private: - VirtualFile m_storages[DataStorage + 1]; + std::array<VirtualFile, DataStorage + 1> m_storages; public: void SetMasterHashStorage(VirtualFile s) { @@ -114,19 +107,6 @@ public: } }; -private: - static GenerateRandomFunction s_generate_random; - - static void SetGenerateRandomFunction(GenerateRandomFunction func) { - s_generate_random = func; - } - -private: - std::shared_ptr<IntegrityVerificationStorage> m_verify_storages[MaxLayers - 1]; - VirtualFile m_buffer_storages[MaxLayers - 1]; - s64 m_data_size; - s32 m_max_layers; - public: HierarchicalIntegrityVerificationStorage(); virtual ~HierarchicalIntegrityVerificationStorage() override { @@ -159,6 +139,26 @@ public: static constexpr s8 GetDefaultDataCacheBufferLevel(u32 max_layers) { return static_cast<s8>(16 + max_layers - 2); } + +protected: + static constexpr s64 HashSize = 256 / 8; + static constexpr size_t MaxLayers = IntegrityMaxLayerCount; + +private: + static GenerateRandomFunction s_generate_random; + + static void SetGenerateRandomFunction(GenerateRandomFunction func) { + s_generate_random = func; + } + +private: + friend struct HierarchicalIntegrityVerificationMetaInformation; + +private: + std::array<std::shared_ptr<IntegrityVerificationStorage>, MaxLayers - 1> m_verify_storages; + std::array<VirtualFile, MaxLayers - 1> m_buffer_storages; + s64 m_data_size; + s32 m_max_layers; }; } // namespace FileSys |