mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
bzip2/lzma/gzip: fix comments describing decompressor API
Fix and improve comments in decompress/generic.h that describe the decompressor API. Also remove an unused definition, and rename INBUF_LEN in lib/decompress_inflate.c to conform to bzip2/lzma naming. Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9c8a8228d0
commit
daeb6b6fbe
2 changed files with 23 additions and 17 deletions
|
@ -1,31 +1,37 @@
|
||||||
#ifndef DECOMPRESS_GENERIC_H
|
#ifndef DECOMPRESS_GENERIC_H
|
||||||
#define DECOMPRESS_GENERIC_H
|
#define DECOMPRESS_GENERIC_H
|
||||||
|
|
||||||
/* Minimal chunksize to be read.
|
|
||||||
*Bzip2 prefers at least 4096
|
|
||||||
*Lzma prefers 0x10000 */
|
|
||||||
#define COMPR_IOBUF_SIZE 4096
|
|
||||||
|
|
||||||
typedef int (*decompress_fn) (unsigned char *inbuf, int len,
|
typedef int (*decompress_fn) (unsigned char *inbuf, int len,
|
||||||
int(*fill)(void*, unsigned int),
|
int(*fill)(void*, unsigned int),
|
||||||
int(*writebb)(void*, unsigned int),
|
int(*flush)(void*, unsigned int),
|
||||||
unsigned char *output,
|
unsigned char *outbuf,
|
||||||
int *posp,
|
int *posp,
|
||||||
void(*error)(char *x));
|
void(*error)(char *x));
|
||||||
|
|
||||||
/* inbuf - input buffer
|
/* inbuf - input buffer
|
||||||
*len - len of pre-read data in inbuf
|
*len - len of pre-read data in inbuf
|
||||||
*fill - function to fill inbuf if empty
|
*fill - function to fill inbuf when empty
|
||||||
*writebb - function to write out outbug
|
*flush - function to write out outbuf
|
||||||
|
*outbuf - output buffer
|
||||||
*posp - if non-null, input position (number of bytes read) will be
|
*posp - if non-null, input position (number of bytes read) will be
|
||||||
* returned here
|
* returned here
|
||||||
*
|
*
|
||||||
*If len != 0, the inbuf is initialized (with as much data), and fill
|
*If len != 0, inbuf should contain all the necessary input data, and fill
|
||||||
*should not be called
|
*should be NULL
|
||||||
*If len = 0, the inbuf is allocated, but empty. Its size is IOBUF_SIZE
|
*If len = 0, inbuf can be NULL, in which case the decompressor will allocate
|
||||||
*fill should be called (repeatedly...) to read data, at most IOBUF_SIZE
|
*the input buffer. If inbuf != NULL it must be at least XXX_IOBUF_SIZE bytes.
|
||||||
|
*fill will be called (repeatedly...) to read data, at most XXX_IOBUF_SIZE
|
||||||
|
*bytes should be read per call. Replace XXX with the appropriate decompressor
|
||||||
|
*name, i.e. LZMA_IOBUF_SIZE.
|
||||||
|
*
|
||||||
|
*If flush = NULL, outbuf must be large enough to buffer all the expected
|
||||||
|
*output. If flush != NULL, the output buffer will be allocated by the
|
||||||
|
*decompressor (outbuf = NULL), and the flush function will be called to
|
||||||
|
*flush the output buffer at the appropriate time (decompressor and stream
|
||||||
|
*dependent).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* Utility routine to detect the decompression method */
|
/* Utility routine to detect the decompression method */
|
||||||
decompress_fn decompress_method(const unsigned char *inbuf, int len,
|
decompress_fn decompress_method(const unsigned char *inbuf, int len,
|
||||||
const char **name);
|
const char **name);
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <linux/decompress/mm.h>
|
#include <linux/decompress/mm.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
|
||||||
#define INBUF_LEN (16*1024)
|
#define GZIP_IOBUF_SIZE (16*1024)
|
||||||
|
|
||||||
/* Included from initramfs et al code */
|
/* Included from initramfs et al code */
|
||||||
STATIC int INIT gunzip(unsigned char *buf, int len,
|
STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||||
|
@ -55,7 +55,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||||
if (buf)
|
if (buf)
|
||||||
zbuf = buf;
|
zbuf = buf;
|
||||||
else {
|
else {
|
||||||
zbuf = malloc(INBUF_LEN);
|
zbuf = malloc(GZIP_IOBUF_SIZE);
|
||||||
len = 0;
|
len = 0;
|
||||||
}
|
}
|
||||||
if (!zbuf) {
|
if (!zbuf) {
|
||||||
|
@ -77,7 +77,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
len = fill(zbuf, INBUF_LEN);
|
len = fill(zbuf, GZIP_IOBUF_SIZE);
|
||||||
|
|
||||||
/* verify the gzip header */
|
/* verify the gzip header */
|
||||||
if (len < 10 ||
|
if (len < 10 ||
|
||||||
|
@ -113,7 +113,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||||
while (rc == Z_OK) {
|
while (rc == Z_OK) {
|
||||||
if (strm->avail_in == 0) {
|
if (strm->avail_in == 0) {
|
||||||
/* TODO: handle case where both pos and fill are set */
|
/* TODO: handle case where both pos and fill are set */
|
||||||
len = fill(zbuf, INBUF_LEN);
|
len = fill(zbuf, GZIP_IOBUF_SIZE);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
rc = -1;
|
rc = -1;
|
||||||
error("read error");
|
error("read error");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue