david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/util
Michael Brown 5350b65a3c [zbin] Use LZMA compression
LZMA provides significantly better compression (by ~15%) than the
current NRV2B algorithm.

We use a raw LZMA stream (aka LZMA1) to avoid the need for code to
parse the LZMA2 block headers.  We use parameters {lc=2,lp=0,pb=0} to
reduce the stack space required by the decompressor to acceptable
levels (around 8kB).  Using lc=3 or pb=2 would give marginally better
compression, but at the cost of substantially increasing the required
stack space.

The build process now requires the liblzma headers to be present on
the build system, since we do not include a copy of an LZMA compressor
within the iPXE source tree.  The decompressor is written from scratch
(based on XZ Embedded) and is entirely self-contained within the
iPXE source.

The branch-call-jump (BCJ) filter used to improve the compressibility
is specific to iPXE.  We choose not to use liblzma's built-in BCJ
filter since the algorithm is complex and undocumented.  Our BCJ
filter achieves approximately the same results (on typical iPXE
binaries) with a substantially simpler algorithm.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-02-25 14:06:13 +00:00
..
Option [util] Use PCI length field to obtain length of individual images 2014-08-26 15:17:56 +01:00
.gitignore [efi] Add efifatbin utility 2014-09-10 03:12:10 +01:00
Makefile [util] Remove obsolete Makefile rule for util/prototester.c 2012-04-24 11:45:24 +01:00
catrom.pl [util] Rewrite catrom.pl to use Option::ROM library 2012-06-12 11:36:21 +01:00
diffsize.pl [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
disrom.pl [util] Display UNDI ROM header in disrom.pl 2012-08-15 13:19:16 +01:00
efifatbin.c [efi] Add efifatbin utility 2014-09-10 03:12:10 +01:00
efirom.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
einfo.c [libc] Redefine low 8 bits of error code as "platform error code" 2013-04-19 13:34:13 +01:00
elf2efi.c [efi] Disallow R_X86_64_32 relocations 2015-02-12 13:39:25 +00:00
fixrom.pl [util] Fix up checksum in UNDI ROM header, if present 2012-08-15 13:22:12 +01:00
fnrec.pl [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
geniso [build] Merge util/geniso and util/genliso 2014-05-14 16:00:58 +01:00
genkeymap.pl [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
gensdsk [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
get-pci-ids [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
hijack.c Make pcap_inject non-static, so that its prototype doesn't conflict with 2006-04-05 11:44:05 +00:00
iccfix.c [build] Enable warnings when building utilities 2012-04-10 19:38:54 +01:00
licence.pl [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
mergerom.pl [util] Update mergerom.pl to handle iPXE ROM header 2012-07-23 18:05:01 +01:00
modrom.pl [modrom] Avoid clobbering near jump with checksum 2009-10-15 14:47:54 -04:00
mucurses_test.c - modified length of password string to match visible field length 2006-06-28 11:52:30 +00:00
niclist.pl [util] Add utility to generate list of supported network cards 2012-04-18 10:38:22 +01:00
nrv2b.c [util] Avoid compiler warning on gcc 4.6 2012-07-03 18:58:43 +01:00
padimg.pl [build] Simplify use of Getopt::Long in padimg.pl 2009-04-16 06:13:09 +01:00
parserom.pl [util] Add utility to generate list of supported network cards 2012-04-18 10:38:22 +01:00
romcheck.pl [util] Add romcheck.pl 2011-09-19 16:43:08 +01:00
sortobjdump.pl [util] Don't die on undefined symbols in sortobjdump.pl 2008-10-10 03:42:22 +01:00
swapdevids.pl Initial revision 2005-03-08 18:53:11 +00:00
symcheck.pl Restore the "shared symbol found only in a single object should be 2007-07-17 01:39:06 +01:00
zbin.c [zbin] Use LZMA compression 2015-02-25 14:06:13 +00:00