switch-coreboot/util/lar
Stefan Reinauer dd35e9c402 fix mkdirp_below calls like I think Peter intended them
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@476 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-08-20 00:48:06 +00:00
..
bootblock.c Coding style fixes via 'indent' (trivial). 2007-07-02 20:57:45 +00:00
example.c Fix various license headers. 2007-05-20 20:35:59 +00:00
lar.c Add another field to the filename specified for create and add 2007-08-20 00:08:18 +00:00
lar.h In preparation for adding new LAR functionality - this patch 2007-08-19 23:31:58 +00:00
lib.c fix mkdirp_below calls like I think Peter intended them 2007-08-20 00:48:06 +00:00
lib.h Provide the ability to add arbitrary files to an existing LAR. Also 2007-08-19 23:53:16 +00:00
Makefile In preparation for adding new LAR functionality - this patch 2007-08-19 23:31:58 +00:00
README This is a major update to the lar archiver. It simplifies the build process and 2007-03-10 16:20:01 +00:00
stream.c fix mkdirp_below calls like I think Peter intended them 2007-08-20 00:48:06 +00:00

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.