[volume_image]: Lz4DecompressReader.

Allows streaming a compressed sparse image without decompressing
entirely beforehand.

Fixed decompression where, the decompressor would resize its internal
buffer to match whatever size the hint requested. This is wrong, since
it would break expected bounds. That aside, the internal decompressor
has its own decompressor buffers, aligned to the compression blocks.

Removed harmlesss incorrect behavior. Decompressing a compressed sparse
fvm flag, would remove the no fill required flag from the header. This
is not correct, since when a compressed image is generated, all zeroes
are emitted, and left for the compressor to reduce the space. This was
harmless because it just resulted in more zeroes being written when
writing a decompressed sparse image.

Update default constructor for Lz4Compressor, to set the default
arguments for the LZ4_preferences_t required to compress.

Test: storage-volume-image-test
Change-Id: Ibeb0bec400f722a47d036e581e4586fd48bfc04d
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/513512
Reviewed-by: James Sullivan <jfsulliv@google.com>
Commit-Queue: Gianfranco Valentino <gevalentino@google.com>
9 files changed
tree: 30dd54806bd07fd59c8f6a14b67a16ea5160e931
  1. .clang-format
  2. .clang-tidy
  3. .git-blame-ignore-revs
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. .style.yapf
  8. AUTHORS
  9. BUILD.gn
  10. CODE_OF_CONDUCT.md
  11. CONTRIBUTING.md
  12. LICENSE
  13. OWNERS
  14. PATENTS
  15. README.md
  16. boards/
  17. build/
  18. buildtools/
  19. bundles/
  20. docs/
  21. examples/
  22. garnet/
  23. products/
  24. rustfmt.toml
  25. scripts/
  26. sdk/
  27. src/
  28. third_party/
  29. tools/
  30. zircon/
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.