xref: /NextBSD/sys/sys/inflate.h (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /*-
2  * ----------------------------------------------------------------------------
3  * "THE BEER-WARE LICENSE" (Revision 42):
4  * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you
5  * can do whatever you want with this stuff. If we meet some day, and you think
6  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
7  * ----------------------------------------------------------------------------
8  *
9  * $FreeBSD$
10  *
11  */
12 #ifndef	_SYS_INFLATE_H_
13 #define	_SYS_INFLATE_H_
14 
15 #if defined(_KERNEL) || defined(KZIP)
16 
17 #define GZ_EOF -1
18 
19 #define GZ_WSIZE 0x8000
20 
21 /*
22  * Global variables used by inflate and friends.
23  * This structure is used in order to make inflate() reentrant.
24  */
25 struct inflate {
26 	/* Public part */
27 
28 	/* This pointer is passed along to the two functions below */
29 	void           *gz_private;
30 
31 	/* Fetch next character to be uncompressed */
32 	int             (*gz_input)(void *);
33 
34 	/* Dispose of uncompressed characters */
35 	int             (*gz_output)(void *, u_char *, u_long);
36 
37 	/* Private part */
38 	u_long          gz_bb;	/* bit buffer */
39 	unsigned        gz_bk;	/* bits in bit buffer */
40 	unsigned        gz_hufts;	/* track memory usage */
41 	struct huft    *gz_fixed_tl;	/* must init to NULL !! */
42 	struct huft    *gz_fixed_td;
43 	int             gz_fixed_bl;
44 	int             gz_fixed_bd;
45 	u_char         *gz_slide;
46 	unsigned        gz_wp;
47 };
48 
49 int inflate(struct inflate *);
50 
51 #endif	/* _KERNEL || KZIP */
52 
53 #endif	/* ! _SYS_INFLATE_H_ */
54