]> Git Repo - u-boot.git/blame - include/gzip.h
tpm: Remove <common.h> and add needed includes
[u-boot.git] / include / gzip.h
CommitLineData
0c670fc1
SG
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
a79fc7a7
TR
10#include <linux/types.h>
11
e6f6f9e6
SG
12struct blk_desc;
13
0c670fc1
SG
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
185f812c 21 * Return: length of header in bytes, or -1 if not enough data
0c670fc1
SG
22 */
23int 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: Returns length of uncompressed data
185f812c 32 * Return: 0 if OK, -1 on error
0c670fc1
SG
33 */
34int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
35
36/**
37 * zunzip() - Uncompress blocks compressed with zlib without headers
38 *
39 * @dst: Destination for uncompressed data
40 * @dstlen: Size of destination buffer
41 * @src: Source data to decompress
42 * @lenp: On entry, length data at @src. On exit, number of bytes used from @src
43 * @stoponerr: 0 to continue when a decode error is found, 1 to stop
44 * @offset: start offset within the src buffer
185f812c 45 * Return: 0 if OK, -1 on error
0c670fc1
SG
46 */
47int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
48 int stoponerr, int offset);
49
50/**
51 * gzwrite progress indicators: defined weak to allow board-specific
52 * overrides:
53 *
54 * gzwrite_progress_init called on startup
55 * gzwrite_progress called during decompress/write loop
56 * gzwrite_progress_finish called at end of loop to
57 * indicate success (retcode=0) or failure
58 */
5a4f10d7 59void gzwrite_progress_init(ulong expected_size);
0c670fc1 60
5a4f10d7 61void gzwrite_progress(int iteration, ulong bytes_written, ulong total_bytes);
0c670fc1 62
5a4f10d7 63void gzwrite_progress_finish(int retcode, ulong totalwritten, ulong totalsize,
0c670fc1
SG
64 u32 expected_crc, u32 calculated_crc);
65
66/**
67 * gzwrite() - decompress and write gzipped image from memory to block device
68 *
69 * @src: compressed image address
70 * @len: compressed image length in bytes
71 * @dev: block device descriptor
72 * @szwritebuf: bytes per write (pad to erase size)
73 * @startoffs: offset in bytes of first write
74 * @szexpected: expected uncompressed length, may be zero to use gzip trailer
75 * for files under 4GiB
185f812c 76 * Return: 0 if OK, -1 on error
0c670fc1
SG
77 */
78int gzwrite(unsigned char *src, int len, struct blk_desc *dev, ulong szwritebuf,
5a4f10d7 79 ulong startoffs, ulong szexpected);
0c670fc1
SG
80
81/**
82 * gzip()- Compress data into a buffer using the gzip algorithm
83 *
84 * @dst: Destination buffer for compressed data
85 * @lenp: On entry, space available in destination buffer (in bytes). On exit,
86 * number of bytes used in the buffer
87 * @src: Source data to compress
88 * @srclen: Size of source data
185f812c 89 * Return: 0 if OK, -1 on error
0c670fc1
SG
90 */
91int gzip(void *dst, unsigned long *lenp, unsigned char *src, ulong srclen);
92
93/**
94 * zzip() - Compress blocks with zlib
95 *
96 * @dst: Destination for compressed data
97 * @lenp: On entry, length data at @dst. On exit, number of bytes written to
98 * @dst
99 * @src: Source data to compress
100 * @srclen: Size of source data
101 * @stoponerr: 0 to continue when a decode error is found, 1 to stop
102 * @func: Some sort of function that is called to do something. !ADD DOCS HERE!
103 */
104int zzip(void *dst, ulong *lenp, unsigned char *src, ulong srclen,
105 int stoponerr, int (*func)(ulong, ulong));
106
107#endif
This page took 0.18011 seconds and 4 git commands to generate.