mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
- I left LB_TAG_ intact because they are used by the payloads - file renames are still missing. see next commit - some lb_ renames might be missing. feel free to provide patches. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://coreboot.org/repository/coreboot-v3@564 f3766cd6-281f-0410-b1cd-43a5c92072e9
107 lines
2.5 KiB
Text
107 lines
2.5 KiB
Text
Lightweight 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. It was designed and
|
|
written for coreboot.
|
|
|
|
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.
|
|
|