public void FsTrim() { int virtualBlockCount = Header.MainDataBlockCount; int physicalBlockCount = virtualBlockCount + Header.JournalBlockCount; int blockMapLength = virtualBlockCount * MapEntryLength; int physicalBitmapLength = Util.AlignUp(physicalBlockCount, 32) / 8; int virtualBitmapLength = Util.AlignUp(virtualBlockCount, 32) / 8; MapStorage.Slice(blockMapLength).Fill(SaveDataFileSystem.TrimFillValue); FreeBlocks.Slice(physicalBitmapLength).Fill(SaveDataFileSystem.TrimFillValue); ModifiedPhysicalBlocks.Slice(physicalBitmapLength).Fill(SaveDataFileSystem.TrimFillValue); ModifiedVirtualBlocks.Slice(virtualBitmapLength).Fill(SaveDataFileSystem.TrimFillValue); }
public IStorage GetModifiedVirtualBlocksStorage() => ModifiedVirtualBlocks.AsReadOnly();
public IStorage GetModifiedVirtualBlocksStorage() => ModifiedVirtualBlocks.WithAccess(FileAccess.Read);