strat: revise fs unsupported operation results, add overflow utils

This commit is contained in:
Michael Scire
2022-03-13 01:32:34 -08:00
parent 46f2d34f25
commit b7ed9c58bb
31 changed files with 265 additions and 142 deletions

View File

@@ -109,12 +109,12 @@ namespace ams::fssystem {
virtual Result Write(s64 offset, const void *buffer, size_t size) override {
AMS_UNUSED(offset, buffer, size);
R_THROW(fs::ResultUnsupportedOperationInAesCtrCounterExtendedStorageA());
R_THROW(fs::ResultUnsupportedWriteForAesCtrCounterExtendedStorage());
}
virtual Result SetSize(s64 size) override {
AMS_UNUSED(size);
R_THROW(fs::ResultUnsupportedOperationInAesCtrCounterExtendedStorageB());
R_THROW(fs::ResultUnsupportedSetSizeForAesCtrCounterExtendedStorage());
}
private:
Result Initialize(IAllocator *allocator, const void *key, size_t key_size, u32 secure_value, fs::SubStorage data_storage, fs::SubStorage table_storage);

View File

@@ -110,7 +110,7 @@ namespace ams::fssystem {
virtual Result Read(s64 offset, void *buffer, size_t size) override;
virtual Result Write(s64 offset, const void *buffer, size_t size) override;
virtual Result SetSize(s64) override { R_THROW(fs::ResultUnsupportedOperationInBlockCacheBufferedStorageA()); }
virtual Result SetSize(s64) override { R_THROW(fs::ResultUnsupportedSetSizeForBlockCacheBufferedStorage()); }
virtual Result GetSize(s64 *out) override;
virtual Result Flush() override;

View File

@@ -1424,7 +1424,7 @@ namespace ams::fssystem {
R_TRY(m_core.QueryRange(dst, dst_size, offset, size));
break;
default:
R_THROW(fs::ResultUnsupportedOperationInCompressedStorageB());
R_THROW(fs::ResultUnsupportedOperateRangeForCompressedStorage());
}
R_SUCCEED();
@@ -1440,13 +1440,13 @@ namespace ams::fssystem {
virtual Result Write(s64 offset, const void *buffer, size_t size) override {
AMS_UNUSED(offset, buffer, size);
R_THROW(fs::ResultUnsupportedOperationInCompressedStorageA());
R_THROW(fs::ResultUnsupportedWriteForCompressedStorage());
}
virtual Result SetSize(s64 size) override {
AMS_UNUSED(size);
/* NOTE: Is Nintendo returning the wrong result here? */
R_THROW(fs::ResultUnsupportedOperationInIndirectStorageB());
R_THROW(fs::ResultUnsupportedSetSizeForIndirectStorage());
}
};

View File

@@ -162,7 +162,7 @@ namespace ams::fssystem {
virtual Result Read(s64 offset, void *buffer, size_t size) override;
virtual Result Write(s64 offset, const void *buffer, size_t size) override;
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedOperationInHierarchicalIntegrityVerificationStorageA(); }
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedSetSizeForHierarchicalIntegrityVerificationStorage(); }
virtual Result GetSize(s64 *out) override;
virtual Result Flush() override;

View File

@@ -147,12 +147,12 @@ namespace ams::fssystem {
virtual Result Write(s64 offset, const void *buffer, size_t size) override {
AMS_UNUSED(offset, buffer, size);
R_THROW(fs::ResultUnsupportedOperationInIndirectStorageA());
R_THROW(fs::ResultUnsupportedWriteForIndirectStorage());
}
virtual Result SetSize(s64 size) override {
AMS_UNUSED(size);
R_THROW(fs::ResultUnsupportedOperationInIndirectStorageB());
R_THROW(fs::ResultUnsupportedSetSizeForIndirectStorage());
}
protected:
BucketTree &GetEntryTable() { return m_table; }

View File

@@ -48,7 +48,7 @@ namespace ams::fssystem {
return m_integrity_storage.Write(offset, buffer, size);
}
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedOperationInIntegrityRomFsStorageA(); }
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedSetSizeForIntegrityRomFsStorage(); }
virtual Result GetSize(s64 *out) override {
return m_integrity_storage.GetSize(out);

View File

@@ -55,7 +55,7 @@ namespace ams::fssystem {
virtual Result Read(s64 offset, void *buffer, size_t size) override;
virtual Result Write(s64 offset, const void *buffer, size_t size) override;
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedOperationInIntegrityVerificationStorageA(); }
virtual Result SetSize(s64 size) override { AMS_UNUSED(size); return fs::ResultUnsupportedSetSizeForIntegrityVerificationStorage(); }
virtual Result GetSize(s64 *out) override;
virtual Result Flush() override;

View File

@@ -56,12 +56,12 @@ namespace ams::fssystem {
virtual Result Write(s64 offset, const void *buffer, size_t size) override {
AMS_UNUSED(offset, buffer, size);
R_THROW(fs::ResultUnsupportedOperationInZeroStorageA());
R_THROW(fs::ResultUnsupportedWriteForZeroStorage());
}
virtual Result SetSize(s64 size) override {
AMS_UNUSED(size);
R_THROW(fs::ResultUnsupportedOperationInZeroStorageB());
R_THROW(fs::ResultUnsupportedSetSizeForZeroStorage());
}
};
private: