diff options
author | Peter Tyser <ptyser@xes-inc.com> | 2010-04-12 22:28:05 -0500 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-04-13 09:13:04 +0200 |
commit | 78acc472d9719316f22e002a009a998d9ceec29d (patch) | |
tree | aa99461b3d693cf3691869abea485091860a66d0 /lib_generic/gunzip.c | |
parent | ea0364f1bbfed1e3ea711147420875cf338fe77a (diff) | |
download | u-boot-imx-78acc472d9719316f22e002a009a998d9ceec29d.zip u-boot-imx-78acc472d9719316f22e002a009a998d9ceec29d.tar.gz u-boot-imx-78acc472d9719316f22e002a009a998d9ceec29d.tar.bz2 |
Rename lib_generic/ to lib/
Now that the other architecture-specific lib directories have been
moved out of the top-level directory there's not much reason to have the
'_generic' suffix on the common lib directory.
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Diffstat (limited to 'lib_generic/gunzip.c')
-rw-r--r-- | lib_generic/gunzip.c | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/lib_generic/gunzip.c b/lib_generic/gunzip.c deleted file mode 100644 index d2b7ad4..0000000 --- a/lib_generic/gunzip.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * (C) Copyright 2000-2006 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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; either version 2 of - * the License, or (at your option) any later version. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <watchdog.h> -#include <command.h> -#include <image.h> -#include <malloc.h> -#include <u-boot/zlib.h> - -#define ZALLOC_ALIGNMENT 16 -#define HEAD_CRC 2 -#define EXTRA_FIELD 4 -#define ORIG_NAME 8 -#define COMMENT 0x10 -#define RESERVED 0xe0 -#define DEFLATED 8 - -void *zalloc(void *, unsigned, unsigned); -void zfree(void *, void *, unsigned); - -void *zalloc(void *x, unsigned items, unsigned size) -{ - void *p; - - size *= items; - size = (size + ZALLOC_ALIGNMENT - 1) & ~(ZALLOC_ALIGNMENT - 1); - - p = malloc (size); - - return (p); -} - -void zfree(void *x, void *addr, unsigned nb) -{ - free (addr); -} - -int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp) -{ - int i, flags; - - /* skip header */ - i = 10; - flags = src[3]; - if (src[2] != DEFLATED || (flags & RESERVED) != 0) { - puts ("Error: Bad gzipped data\n"); - return (-1); - } - if ((flags & EXTRA_FIELD) != 0) - i = 12 + src[10] + (src[11] << 8); - if ((flags & ORIG_NAME) != 0) - while (src[i++] != 0) - ; - if ((flags & COMMENT) != 0) - while (src[i++] != 0) - ; - if ((flags & HEAD_CRC) != 0) - i += 2; - if (i >= *lenp) { - puts ("Error: gunzip out of data in header\n"); - return (-1); - } - - return zunzip(dst, dstlen, src, lenp, 1, i); -} - -/* - * Uncompress blocks compressed with zlib without headers - */ -int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp, - int stoponerr, int offset) -{ - z_stream s; - int r; - - s.zalloc = zalloc; - s.zfree = zfree; -#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) - s.outcb = (cb_func)WATCHDOG_RESET; -#else - s.outcb = Z_NULL; -#endif /* CONFIG_HW_WATCHDOG */ - - r = inflateInit2(&s, -MAX_WBITS); - if (r != Z_OK) { - printf ("Error: inflateInit2() returned %d\n", r); - return -1; - } - s.next_in = src + offset; - s.avail_in = *lenp - offset; - s.next_out = dst; - s.avail_out = dstlen; - r = inflate(&s, Z_FINISH); - if ((r != Z_STREAM_END) && (stoponerr==1)) { - printf ("Error: inflate() returned %d\n", r); - inflateEnd(&s); - return (-1); - } - *lenp = s.next_out - (unsigned char *) dst; - inflateEnd(&s); - - return 0; -} |