common: Move gzip functions into a new gzip header
authorSimon Glass <sjg@chromium.org>
Thu, 1 Aug 2019 15:46:36 +0000 (09:46 -0600)
committerTom Rini <trini@konsulko.com>
Sun, 11 Aug 2019 20:43:41 +0000 (16:43 -0400)
As part of the effort to remove things from common.h, create a new header
for the gzip functions. Move the function declarations to it and add
missing documentation.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
18 files changed:
board/menlo/m53menlo/m53menlo.c
cmd/bmp.c
cmd/config.c
cmd/fpga.c
cmd/license.c
cmd/unzip.c
cmd/ximg.c
common/image.c
common/spl/spl_fit.c
common/spl/spl_ymodem.c
drivers/video/cfb_console.c
fs/ubifs/ubifs.c
include/common.h
include/gzip.h [new file with mode: 0644]
lib/fdtdec.c
lib/gunzip.c
lib/gzip.c
test/compression.c

index f2227f69926beac90e82d4bcc3d62587b67a13ac..a63af5fae052f7fa81df7473d1c93f7080bcbdd3 100644 (file)
@@ -20,6 +20,7 @@
 #include <asm/spl.h>
 #include <fdt_support.h>
 #include <fsl_esdhc_imx.h>
+#include <gzip.h>
 #include <i2c.h>
 #include <ipu_pixfmt.h>
 #include <linux/errno.h>
index 00f0256a30e257b7a50028642c9051e85b79de19..d2a39f677fda9fa567da98ef1ca67467ef0bdd40 100644 (file)
--- a/cmd/bmp.c
+++ b/cmd/bmp.c
@@ -9,16 +9,16 @@
  */
 
 #include <common.h>
-#include <dm.h>
-#include <lcd.h>
-#include <mapmem.h>
 #include <bmp_layout.h>
 #include <command.h>
-#include <asm/byteorder.h>
+#include <dm.h>
+#include <gzip.h>
+#include <lcd.h>
 #include <malloc.h>
 #include <mapmem.h>
 #include <splash.h>
 #include <video.h>
+#include <asm/byteorder.h>
 
 static int bmp_info (ulong addr);
 
index fcc9116a49778821dd07cf6777eeb724c18d91c0..d2810d573b091b827c326248601af942ce071f9f 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <gzip.h>
 #include <malloc.h>
 
 #include "config_data_gz.h"
index eba989a73021437f590c6006f6794a3f7593e38a..9fc2df699d7b659023e5196270a6f490a5eba774 100644 (file)
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <fpga.h>
 #include <fs.h>
+#include <gzip.h>
 #include <malloc.h>
 
 static long do_fpga_get_device(char *arg)
index 1c0794f09527facd183fa0054388f4970a175bea..c5b04c331b11336f5ad8e403cf0169069bbb25d3 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <gzip.h>
 #include <malloc.h>
 
 #include "license_data_gz.h"
index 6c0f97cb4bb5d6fe1d6c456d7f3ea5b538d518a1..8474d9becf8c5d2edc1211b34b934641632c932c 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <gzip.h>
 
 static int do_unzip(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
index 9e53cc45572fc7b4a41bb0380bbede2669d1eb26..920a80edc88036d6d7aca6985efc5fcd5df5cb17 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include <common.h>
 #include <command.h>
+#include <gzip.h>
 #include <image.h>
 #include <mapmem.h>
 #include <watchdog.h>
index 495883185d411e371a88237a3cbfd6261f1da45d..719229cc439ccab71c3391e2999fb4807b9a060b 100644 (file)
@@ -17,6 +17,7 @@
 #include <rtc.h>
 
 #include <environment.h>
+#include <gzip.h>
 #include <image.h>
 #include <mapmem.h>
 
index 969f7775c18f5fcd65d1ea3c07caaa297bc862f5..2e2e09eafb1817c0edd3a1e7fb8f607027b3e2fd 100644 (file)
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <errno.h>
 #include <fpga.h>
+#include <gzip.h>
 #include <image.h>
 #include <linux/libfdt.h>
 #include <spl.h>
index fa539ecd7af4f4f3989c2704084c8bfb1bcb13fc..20f42600625f389959e9ba9cbf86b74768a712c7 100644 (file)
@@ -9,6 +9,7 @@
  * Matt Porter <mporter@ti.com>
  */
 #include <common.h>
+#include <gzip.h>
 #include <spl.h>
 #include <xyzModem.h>
 #include <asm/u-boot.h>
index 636c3e8c184dac5d919a8ccf9efe1105b34cc96e..ac02921d4637c4da5b1876d951bf7a9fab87b50f 100644 (file)
@@ -66,6 +66,7 @@
 
 #include <common.h>
 #include <fdtdec.h>
+#include <gzip.h>
 #include <version.h>
 #include <malloc.h>
 #include <video.h>
index d5101d3c4594beec93e9caf8b9c15e8359182678..72e8a24d3b9aef161c0bc6ea758cf54536cc62ec 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <common.h>
+#include <gzip.h>
 #include <memalign.h>
 #include "ubifs.h"
 #include <u-boot/zlib.h>
index 2c21dee8505cf6ba0d2c3815fe1ef2362e9e60f0..d337f68bc427f16dcb91cd967ad699023922ff73 100644 (file)
@@ -428,51 +428,6 @@ void       wait_ticks    (unsigned long);
 ulong  usec2ticks    (unsigned long usec);
 ulong  ticks2usec    (unsigned long ticks);
 
-/* lib/gunzip.c */
-int gzip_parse_header(const unsigned char *src, unsigned long len);
-int gunzip(void *, int, unsigned char *, unsigned long *);
-int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
-                                               int stoponerr, int offset);
-
-/**
- * gzwrite progress indicators: defined weak to allow board-specific
- * overrides:
- *
- *     gzwrite_progress_init called on startup
- *     gzwrite_progress called during decompress/write loop
- *     gzwrite_progress_finish called at end of loop to
- *             indicate success (retcode=0) or failure
- */
-void gzwrite_progress_init(u64 expected_size);
-
-void gzwrite_progress(int iteration,
-                    u64 bytes_written,
-                    u64 total_bytes);
-
-void gzwrite_progress_finish(int retcode,
-                            u64 totalwritten,
-                            u64 totalsize,
-                            u32 expected_crc,
-                            u32 calculated_crc);
-
-/**
- * decompress and write gzipped image from memory to block device
- *
- * @param      src             compressed image address
- * @param      len             compressed image length in bytes
- * @param      dev             block device descriptor
- * @param      szwritebuf      bytes per write (pad to erase size)
- * @param      startoffs       offset in bytes of first write
- * @param      szexpected      expected uncompressed length
- *                             may be zero to use gzip trailer
- *                             for files under 4GiB
- */
-int gzwrite(unsigned char *src, int len,
-           struct blk_desc *dev,
-           unsigned long szwritebuf,
-           u64 startoffs,
-           u64 szexpected);
-
 /* lib/lz4_wrapper.c */
 int ulz4fn(const void *src, size_t srcn, void *dst, size_t *dstn);
 
@@ -506,13 +461,6 @@ unsigned int rand_r(unsigned int *seedp);
 int    serial_printf (const char *fmt, ...)
                __attribute__ ((format (__printf__, 1, 2)));
 
-/* lib/gzip.c */
-int gzip(void *dst, unsigned long *lenp,
-               unsigned char *src, unsigned long srclen);
-int zzip(void *dst, unsigned long *lenp, unsigned char *src,
-               unsigned long srclen, int stoponerr,
-               int (*func)(unsigned long, unsigned long));
-
 /* lib/net_utils.c */
 #include <net.h>
 static inline struct in_addr env_get_ip(char *var)
diff --git a/include/gzip.h b/include/gzip.h
new file mode 100644 (file)
index 0000000..2e34067
--- /dev/null
@@ -0,0 +1,103 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2000-2009
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ */
+
+#ifndef __GZIP_H
+#define __GZIP_H
+
+/**
+ * gzip_parse_header() - Parse a header from a gzip file
+ *
+ * This returns the length of the header.
+ *
+ * @src: Pointer to gzip file
+ * @len: Length of data
+ * @return length of header in bytes, or -1 if not enough data
+ */
+int gzip_parse_header(const unsigned char *src, unsigned long len);
+
+/**
+ * gunzip() - Decompress gzipped data
+ *
+ * @dst: Destination for uncompressed data
+ * @dstlen: Size of destination buffer
+ * @src: Source data to decompress
+ * @lenp: Returns length of uncompressed data
+ * @return 0 if OK, -1 on error
+ */
+int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
+
+/**
+ * zunzip() - Uncompress blocks compressed with zlib without headers
+ *
+ * @dst: Destination for uncompressed data
+ * @dstlen: Size of destination buffer
+ * @src: Source data to decompress
+ * @lenp: On entry, length data at @src. On exit, number of bytes used from @src
+ * @stoponerr: 0 to continue when a decode error is found, 1 to stop
+ * @offset: start offset within the src buffer
+ * @return 0 if OK, -1 on error
+ */
+int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
+          int stoponerr, int offset);
+
+/**
+ * gzwrite progress indicators: defined weak to allow board-specific
+ * overrides:
+ *
+ *     gzwrite_progress_init called on startup
+ *     gzwrite_progress called during decompress/write loop
+ *     gzwrite_progress_finish called at end of loop to
+ *             indicate success (retcode=0) or failure
+ */
+void gzwrite_progress_init(u64 expected_size);
+
+void gzwrite_progress(int iteration, u64 bytes_written, u64 total_bytes);
+
+void gzwrite_progress_finish(int retcode, u64 totalwritten, u64 totalsize,
+                            u32 expected_crc, u32 calculated_crc);
+
+/**
+ * gzwrite() - decompress and write gzipped image from memory to block device
+ *
+ * @src:       compressed image address
+ * @len:       compressed image length in bytes
+ * @dev:       block device descriptor
+ * @szwritebuf:        bytes per write (pad to erase size)
+ * @startoffs: offset in bytes of first write
+ * @szexpected:        expected uncompressed length, may be zero to use gzip trailer
+ *             for files under 4GiB
+ * @return 0 if OK, -1 on error
+ */
+int gzwrite(unsigned char *src, int len, struct blk_desc *dev, ulong szwritebuf,
+           u64 startoffs, u64 szexpected);
+
+/**
+ * gzip()- Compress data into a buffer using the gzip algorithm
+ *
+ * @dst: Destination buffer for compressed data
+ * @lenp: On entry, space available in destination buffer (in bytes). On exit,
+ *     number of bytes used in the buffer
+ * @src: Source data to compress
+ * @srclen: Size of source data
+ * @return 0 if OK, -1 on error
+ */
+int gzip(void *dst, unsigned long *lenp, unsigned char *src, ulong srclen);
+
+/**
+ * zzip() - Compress blocks with zlib
+ *
+ * @dst: Destination for compressed data
+ * @lenp: On entry, length data at @dst. On exit, number of bytes written to
+ *     @dst
+ * @src: Source data to compress
+ * @srclen: Size of source data
+ * @stoponerr: 0 to continue when a decode error is found, 1 to stop
+ * @func: Some sort of function that is called to do something. !ADD DOCS HERE!
+ */
+int zzip(void *dst, ulong *lenp, unsigned char *src, ulong srclen,
+        int stoponerr, int (*func)(ulong, ulong));
+
+#endif
index 3ee786b57940df4b12f89cce3003f2c2a252c9e0..464de5b3b526fa2fda5fb758874b31a922f6a03f 100644 (file)
@@ -11,6 +11,7 @@
 #include <errno.h>
 #include <fdtdec.h>
 #include <fdt_support.h>
+#include <gzip.h>
 #include <mapmem.h>
 #include <linux/libfdt.h>
 #include <serial.h>
index 15c7b2c93284092f649a15add225a31f3f1abc08..1d65616c13d4ded7dd84b302fbe8f9e12cae9d01 100644 (file)
@@ -5,14 +5,15 @@
  */
 
 #include <common.h>
-#include <watchdog.h>
 #include <command.h>
 #include <console.h>
+#include <div64.h>
+#include <gzip.h>
 #include <image.h>
 #include <malloc.h>
 #include <memalign.h>
+#include <watchdog.h>
 #include <u-boot/zlib.h>
-#include <div64.h>
 
 #define HEADER0                        '\x1f'
 #define HEADER1                        '\x8b'
index 674d732fe6ddcbb7db3764e3e047786f973a68d1..c6c0ec880cfbd3699d626b60c47dee5479c7f6b1 100644 (file)
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <watchdog.h>
 #include <command.h>
+#include <gzip.h>
 #include <image.h>
 #include <malloc.h>
 #include <memalign.h>
index dc5e94684f107d76624c6276bae270c9085e677a..08fef59d0aa1b5959c1d57bb0eda9bb820185773 100644 (file)
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <bootm.h>
 #include <command.h>
+#include <gzip.h>
 #include <malloc.h>
 #include <mapmem.h>
 #include <asm/io.h>