History log of /fuchsia/zircon/system/ulib/bootdata/decompress.c
Revision Date Author Comments
# 989ee4e8 13-Jun-2018 David Moore <davemoore@google.com>

[syscalls] Change vmar_... calls

- Create zx_vm_option_t type
- Change ZX_VM_FLAG_... to ZX_VM_... and make them new type.
- Change int32_t flags parameters to zx_vm_option_t options
- Make the options parameter be second.

- Modify vmar_..._old functions to keep other repos working.
Once they've all been updated these functions will go away.

ZX-2264
Test:CQ

Change-Id: I1faf4cc4e1e4dabf3d8ef680e398d83a545b0f09


# 9a0f93ed 17-Jul-2018 Matthew Dempsky <mdempsky@google.com>

[userboot] use check_lz4_frame status result

check_lz4_frame() was changed in 150e27c from using fail() to
returning a status result, but the caller wasn't updated to match.

Test: None.
Change-Id: I67eed384495a3d8082844d8f0c7ea4e472b0fe41


# b00e37bb 20-Nov-2017 Roland McGrath <mcgrathr@google.com>

[bootdata] Support BOOTDATA_RAMDISK

Let bootdata contain compressed raw disk images, which fshost
will instantiate as virtual block devices using the ramdisk
driver. This will make it possible to netboot a complete system
using the same /system partition image that would be installed
onto a storage device, rather than constructing a BOOTFS image.

Change-Id: Ia1f7543daa3937159ac607f17ae3c775ad11c233


# 918d6da5 03-Nov-2017 Brian Swetland <swetland@google.com>

[bootdata] remove all support for v1 bootdata

- combine bootdata and bootextra headers into a common header
- FLAG_EXTRA becomes FLAG_V2 and required everywhere
- all backward compatibility processing is removed
- all backward compatible generation is removed

Change-Id: Iaca0e7cdc8297f981f9594df0528b87765032050


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# d8431aec 07-Sep-2017 Brian Swetland <swetland@google.com>

[bootfs] streamline the bootfs format

- provide common header and entry structs in bootdata.h
along with documentation comments
- stop treating bootdata headers as part of bootfs
- introduce a simple header with magic and directory size
(allows easy mmap'ing of just the directory)
- align bootdata directory entries on U32 boundaries
- adjust mxio and userboot to deal with the changes

Change-Id: I09f96088f939dd541a6b23d70fcd8606d1af4f28


# 779bcb54 21-Aug-2017 Brian Swetland <swetland@google.com>

[bootdata][userboot][mxio] tolerate extended bootdata headers

Adjust various code that parses bootdata content to recognize
the EXTRA flag and take into account the larger header in that
case.

Change-Id: Ieb54725b4d25c19b8874029dd0c67e352ef7c5c7


# d6396fa4 16-Jun-2017 George Kulakowski <kulakowski@google.com>

[ulib][status] Use the MX_OK and MX_ERR_* mx_status_t names

Change-Id: I3ba531de766b559b8922fb4910715c630efc9b82


# 36b9af68 02-Jun-2017 Adam Barth <abarth@chromium.org>

[bootdata] Correctly unmap bootdata

Previously, we were trying to unmap the bootdata using an address that we had
modified. Now we use the original address we received when we mapped the
bootdata.

This patch saves ~250MB of memory in the boot_headless configuration of
Fuchsia when using a ramdisk.

Change-Id: I2086cd87c8c58032f450376b4cface4659e6ce50


# 2804a20e 01-Jun-2017 Adam Barth <abarth@chromium.org>

[userboot][bootdata] Add more VMO names

This patch names the VMOs for the bootdata and the bootfs.

Change-Id: Ie142357e8dc0a2967f81ae9253639c03c799f643


# da639c82 10-Mar-2017 Brian Swetland <swetland@google.com>

[boot] migrate boot data and protocol headers to magenta/boot

This tidies up the top level magenta includes a bit and more
importantly moves multiboot.h somewhere where gigaboot can
find it.

Change-Id: I5c746fdce836e266d207b9bdfac6e940ce9ca294


# 7344b79f 09-Mar-2017 Brian Swetland <swetland@google.com>

[bootdata] introduce BOOTDATA_CONTAINER global header

This allows bootdata files and partitions (which contain
multiple bootdata items) to have a top-level header that
has the file magic and overall size.

We'll need this for eventually bundling the kernel and
bootdata all together and writing to a partition or file
for certain bootloader use cases.

- mkbootfs is updated to write such a header and parse
this header when importing bootdata files.
- mdigen and mdidump generate and accept this header
- userboot and devmgr are aware of these headers

Change-Id: I01423f136a4a449d08a5cb7d2d5b06c0010eb12f


# b2462840 07-Mar-2017 Brian Swetland <swetland@google.com>

[bootfs][mkbootfs] allow for multiple boot bootfs sections

Previously we treated the first observed bootfs image as the
"boot" bootfs and any later ones as "system" bootfses. Now
we use distinct bootdata types to differentiate them.

mkbootfs uses the --target=boot or --target=system options
to select what kind of bootfs to create. The default is
system.

mkbootfs has a nicer usage message now.

mkbootfs no longer disallows interleaving options and
input files or directories.

Change-Id: I81b609cd016b714be51daf035e804d9e0fac1437


# 72151458 01-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[devmgr] Fix problems mounting /system from multi-part bootdata.bin

previously the first bootfs was mounting at both /boot and /system

Change-Id: I7859bf11b00eac1cc8b2f026e83298c4ee05c962


# 150e27c6 26-Feb-2017 Brian Swetland <swetland@google.com>

[userboot] cleanup and prep for multi-bootdata world

- enable the system to boot when EMBED_USER_BOOTFS is false
(a valid primary bootfs image must be in the ramdisk in this case)
- kernel passes bootdata containers to userboot as TYPE_BOOTDATA
- userboot passes decompressed bootfs to devmgr as TYPE_BOOTFS
- bootdata/decompress is more general purpose, can decompress
a single bootdata section from a vmo, doesn't depend on userboot's
fail() and print() interfaces

Change-Id: Ibfe0ebdb8000030bd10162967e6687db02d0604d


# 8f071fa9 24-Jan-2017 Tim Kilbourn <tkilbourn@google.com>

[ulib] Add library for bootdata

This is code shared between userboot and systems that decompress vmos
later in the boot process. Since userboot is an extremely limited
environment, it can't use much of libc.

Change-Id: Ib229aeedc66acc8ddfe97a5b8c4d83b6656c8868