fs: first pass at compressed storage (works on iridium with wip hac2l code)

This commit is contained in:
Michael Scire authored and SciresM committed 2022-03-21 17:21:44 -07:00
1 parent df631d74f0
commit d638bbbb62
34 files changed
+2375 -722

No files matched your search

@@ -18,9 +18,9 @@
namespace ams::fssystem {
enum CompressionType {
enum CompressionType : u8 {
CompressionType_None = 0,
CompressionType_1 = 1,
CompressionType_Zeros = 1,
CompressionType_2 = 2,
CompressionType_Lz4 = 3,
CompressionType_Unknown = 4,
@@ -29,14 +29,16 @@ namespace ams::fssystem {
using DecompressorFunction = Result (*)(void *, size_t, const void *, size_t);
using GetDecompressorFunction = DecompressorFunction (*)(CompressionType);
constexpr s64 CompressionBlockAlignment = 0x10;
namespace CompressionTypeUtility {
constexpr bool IsBlockAlignmentRequired(CompressionType type) {
return type != CompressionType_None && type != CompressionType_1;
return type != CompressionType_None && type != CompressionType_Zeros;
}
constexpr bool IsDataStorageAccessRequired(CompressionType type) {
return type != CompressionType_1;
return type != CompressionType_Zeros;
}
constexpr bool IsRandomAccessible(CompressionType type) {