switch-coreboot/util/lar/README
Uwe Hermann 88f2f6402a This is a major update to the lar archiver. It simplifies the build process and
is a base change to make the whole linuxbios.rom a lar file.

* fix a whole lot of lar bugs (that never showed up in production yet)
* add proper option parsing to lar
* add verbose option
* add option to automatically pad lar archive to a certain size
* add proper file handling (specifying a directory will now pack all files
  in that directory into the lar, instead of a 4k dummy file)
* catch lots of user errors, less implicit assumptions
* merge all header files into lib.h (except lar.h which is needed by other
  programs using the lar format). lib.h is still very small.
* print errors to stderr
* (slipped in) copy linuxbios.rom to bios.bin for qemu ;-)
* adapt arch/x86/Makefile to use the new features.
* set version to 0.9
* lots of security bugs fixed (thanks to Uwe!)
* catch low memory conditions in strdup

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@234 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-03-10 16:20:01 +00:00

106 lines
2.4 KiB
Text

LinuxBIOS Archiver: lar
-----------------------
Table of Contents
- Introduction
- Usage
- Archive format
- TODO
- Copyright and License
Introduction
------------
This is a simple archiver, similar to cpio, ar or tar.
Design goals were
- minimum overhead
- maximum fault tolerance
- simplicity
For a usage example see example.c.
For questions contact Stefan Reinauer <stepan@coresystems.de>.
Usage
-----
Create archive archive.lar containing files file1 ... fileN:
$ lar c archive.lar file1 ... fileN
Extract files from archive.lar:
$ lar x archive.lar [file1 ... fileN]
List files in archive:
$ lar l archive.lar
Archive format
--------------
The rough format is:
|--------------|
| header |
|--------------|
| data |
|--------------|
| header |
|--------------|
| data |
|--------------|
...
Headers have to be 16 byte aligned.
|----------------------------|
| magic (8 bytes) |
|----------------------------|
| length (4 bytes) |
|----------------------------|
| checksum (4 bytes) |
|----------------------------|
| offset to blob (4 bytes) |
|----------------------------|
| "path name" | <-- null terminated, aligned to 16 bytes
|----------------------------|
| blob (aligned to 16 bytes) |
|----------------------------|
TODO
----
- Reading flash layouts
- This does not enforce any alignment yet
- Alignment enforcing will be optional
Copyright and License
---------------------
Copyright (C) 2006-2007 coresystems GmbH
Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
Note: The files lar.h and example.c are dual-licensed. You can choose between:
- The GNU GPL, version 2, as published by the Free Software Foundation.
- The revised BSD license (without advertising clause). See lar.h.