switch-coreboot/util/lar
Myles Watson 9d6d811dd1 This patch converts __FUNCTION__ to __func__, since __func__ is standard.
Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>


git-svn-id: svn://coreboot.org/repository/coreboot-v3@1131 f3766cd6-281f-0410-b1cd-43a5c92072e9
2009-02-12 21:15:34 +00:00
..
bootblock.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
elf.h This adds the glibc elf.h to allow compilation on non-glibc platforms. 2008-04-04 13:10:05 +00:00
example.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
lar.c This patch fixes lar options parsing, a seg fault with long path names, and 2008-03-05 14:51:35 +00:00
lar.h Alvar Kusma found a bug in util/lar: If you try to add a file to a full 2008-03-27 23:56:36 +00:00
lib.c This patch converts __FUNCTION__ to __func__, since __func__ is standard. 2009-02-12 21:15:34 +00:00
lib.h This patch fixes lar path handling. In particular, it adds new members to the 2008-02-28 14:56:43 +00:00
Makefile Every time we run make in a v3 tree, lar, lzma, nrv2b and the option 2008-11-06 13:59:14 +00:00
README Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
stream.c This patch converts __FUNCTION__ to __func__, since __func__ is standard. 2009-02-12 21:15:34 +00:00

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.