]> Git Repo - J-u-boot.git/blob - include/gzip.h
arm: kirkwood: Enable bootstd for Sheevaplug board
[J-u-boot.git] / include / gzip.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2000-2009
4  * Wolfgang Denk, DENX Software Engineering, [email protected].
5  */
6
7 #ifndef __GZIP_H
8 #define __GZIP_H
9
10 #include <linux/types.h>
11
12 struct blk_desc;
13
14 /**
15  * gzip_parse_header() - Parse a header from a gzip file
16  *
17  * This returns the length of the header.
18  *
19  * @src: Pointer to gzip file
20  * @len: Length of data
21  * Return: length of header in bytes, or -1 if not enough data
22  */
23 int gzip_parse_header(const unsigned char *src, unsigned long len);
24
25 /**
26  * gunzip() - Decompress gzipped data
27  *
28  * @dst: Destination for uncompressed data
29  * @dstlen: Size of destination buffer
30  * @src: Source data to decompress
31  * @lenp: On entry, length of data at @src. On exit, number of bytes used from
32  * @src
33  * Return: 0 if OK, -1 on error
34  */
35 int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
36
37 /**
38  * zunzip() - Uncompress blocks compressed with zlib without headers
39  *
40  * @dst: Destination for uncompressed data
41  * @dstlen: Size of destination buffer
42  * @src: Source data to decompress
43  * @lenp: On entry, length of data at @src. On exit, number of bytes used from
44  * @src
45  * @stoponerr: 0 to continue when a decode error is found, 1 to stop
46  * @offset: start offset within the src buffer
47  * Return: 0 if OK, -1 on error
48  */
49 int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
50            int stoponerr, int offset);
51
52 /**
53  * gzwrite progress indicators: defined weak to allow board-specific
54  * overrides:
55  *
56  *      gzwrite_progress_init called on startup
57  *      gzwrite_progress called during decompress/write loop
58  *      gzwrite_progress_finish called at end of loop to
59  *              indicate success (retcode=0) or failure
60  */
61 void gzwrite_progress_init(ulong expected_size);
62
63 void gzwrite_progress(int iteration, ulong bytes_written, ulong total_bytes);
64
65 void gzwrite_progress_finish(int retcode, ulong totalwritten, ulong totalsize,
66                              u32 expected_crc, u32 calculated_crc);
67
68 /**
69  * gzwrite() - decompress and write gzipped image from memory to block device
70  *
71  * @src:        compressed image address
72  * @len:        compressed image length in bytes
73  * @dev:        block device descriptor
74  * @szwritebuf: bytes per write (pad to erase size)
75  * @startoffs:  offset in bytes of first write
76  * @szexpected: expected uncompressed length, may be zero to use gzip trailer
77  *              for files under 4GiB
78  * Return: 0 if OK, -1 on error
79  */
80 int gzwrite(unsigned char *src, int len, struct blk_desc *dev, ulong szwritebuf,
81             ulong startoffs, ulong szexpected);
82
83 /**
84  * gzip()- Compress data into a buffer using the gzip algorithm
85  *
86  * @dst: Destination buffer for compressed data
87  * @lenp: On entry, space available in destination buffer (in bytes). On exit,
88  *      number of bytes used in the buffer
89  * @src: Source data to compress
90  * @srclen: Size of source data
91  * Return: 0 if OK, -1 on error
92  */
93 int gzip(void *dst, unsigned long *lenp, unsigned char *src, ulong srclen);
94
95 /**
96  * zzip() - Compress blocks with zlib
97  *
98  * @dst: Destination for compressed data
99  * @lenp: On entry, length data at @dst. On exit, number of bytes written to
100  *      @dst
101  * @src: Source data to compress
102  * @srclen: Size of source data
103  * @stoponerr: 0 to continue when a decode error is found, 1 to stop
104  * @func: Some sort of function that is called to do something. !ADD DOCS HERE!
105  */
106 int zzip(void *dst, ulong *lenp, unsigned char *src, ulong srclen,
107          int stoponerr, int (*func)(ulong, ulong));
108
109 #endif
This page took 0.030966 seconds and 4 git commands to generate.