Blame


1 cfa37a7b 2004-04-10 devnull .TH FLATE 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull deflateinit, deflate, deflatezlib, deflateblock, deflatezlibblock, inflateinit, inflate, inflatezlib, inflateblock, inflatezlibblock, flateerr, mkcrctab, blockcrc, adler32 \- deflate compression
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
6 cfa37a7b 2004-04-10 devnull .br
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
8 cfa37a7b 2004-04-10 devnull .br
9 cfa37a7b 2004-04-10 devnull .B #include <flate.h>
10 cfa37a7b 2004-04-10 devnull .PP
11 c8b6342d 2005-01-13 devnull .ta \w'\fLulongmm'u +\w'\fL 'u
12 cfa37a7b 2004-04-10 devnull .PP
13 cfa37a7b 2004-04-10 devnull .B
14 cfa37a7b 2004-04-10 devnull int deflateinit(void)
15 cfa37a7b 2004-04-10 devnull .PP
16 cfa37a7b 2004-04-10 devnull .B
17 cfa37a7b 2004-04-10 devnull int deflate(void *wr, int (*w)(void*,void*,int),
18 cfa37a7b 2004-04-10 devnull .br
19 cfa37a7b 2004-04-10 devnull .B
20 c8b6342d 2005-01-13 devnull void *rr, int (*r)(void*,void*,int),
21 cfa37a7b 2004-04-10 devnull .br
22 cfa37a7b 2004-04-10 devnull .B
23 c8b6342d 2005-01-13 devnull int level, int debug)
24 cfa37a7b 2004-04-10 devnull .PP
25 cfa37a7b 2004-04-10 devnull .B
26 cfa37a7b 2004-04-10 devnull int deflatezlib(void *wr, int (*w)(void*,void*,int),
27 cfa37a7b 2004-04-10 devnull .br
28 cfa37a7b 2004-04-10 devnull .B
29 c8b6342d 2005-01-13 devnull void *rr, int (*r)(void*,void*,int),
30 cfa37a7b 2004-04-10 devnull .br
31 cfa37a7b 2004-04-10 devnull .B
32 c8b6342d 2005-01-13 devnull int level, int debug)
33 cfa37a7b 2004-04-10 devnull .PP
34 cfa37a7b 2004-04-10 devnull .B
35 cfa37a7b 2004-04-10 devnull int deflateblock(uchar *dst, int dsize,
36 cfa37a7b 2004-04-10 devnull .br
37 cfa37a7b 2004-04-10 devnull .B
38 c8b6342d 2005-01-13 devnull uchar *src, int ssize,
39 cfa37a7b 2004-04-10 devnull .br
40 cfa37a7b 2004-04-10 devnull .B
41 c8b6342d 2005-01-13 devnull int level, int debug)
42 cfa37a7b 2004-04-10 devnull .PP
43 cfa37a7b 2004-04-10 devnull .B
44 cfa37a7b 2004-04-10 devnull int deflatezlibblock(uchar *dst, int dsize,
45 cfa37a7b 2004-04-10 devnull .br
46 cfa37a7b 2004-04-10 devnull .B
47 c8b6342d 2005-01-13 devnull uchar *src, int ssize,
48 cfa37a7b 2004-04-10 devnull .br
49 cfa37a7b 2004-04-10 devnull .B
50 c8b6342d 2005-01-13 devnull int level, int debug)
51 cfa37a7b 2004-04-10 devnull .PP
52 cfa37a7b 2004-04-10 devnull .B
53 cfa37a7b 2004-04-10 devnull int inflateinit(void)
54 cfa37a7b 2004-04-10 devnull .PP
55 cfa37a7b 2004-04-10 devnull .B
56 cfa37a7b 2004-04-10 devnull int inflate(void *wr, int (*w)(void*, void*, int),
57 cfa37a7b 2004-04-10 devnull .br
58 cfa37a7b 2004-04-10 devnull .B
59 c8b6342d 2005-01-13 devnull void *getr, int (*get)(void*))
60 cfa37a7b 2004-04-10 devnull .PP
61 cfa37a7b 2004-04-10 devnull .B
62 cfa37a7b 2004-04-10 devnull int inflatezlib(void *wr, int (*w)(void*, void*, int),
63 cfa37a7b 2004-04-10 devnull .br
64 cfa37a7b 2004-04-10 devnull .B
65 c8b6342d 2005-01-13 devnull void *getr, int (*get)(void*))
66 cfa37a7b 2004-04-10 devnull .PP
67 cfa37a7b 2004-04-10 devnull .B
68 cfa37a7b 2004-04-10 devnull int inflateblock(uchar *dst, int dsize,
69 cfa37a7b 2004-04-10 devnull .br
70 cfa37a7b 2004-04-10 devnull .B
71 c8b6342d 2005-01-13 devnull uchar *src, int ssize)
72 cfa37a7b 2004-04-10 devnull .PP
73 cfa37a7b 2004-04-10 devnull .B
74 cfa37a7b 2004-04-10 devnull int inflatezlibblock(uchar *dst, int dsize,
75 cfa37a7b 2004-04-10 devnull .br
76 cfa37a7b 2004-04-10 devnull .B
77 c8b6342d 2005-01-13 devnull uchar *src, int ssize)
78 cfa37a7b 2004-04-10 devnull .PP
79 cfa37a7b 2004-04-10 devnull .B
80 cfa37a7b 2004-04-10 devnull char *flateerr(int error)
81 cfa37a7b 2004-04-10 devnull .PP
82 cfa37a7b 2004-04-10 devnull .B
83 cfa37a7b 2004-04-10 devnull ulong *mkcrctab(ulong poly)
84 cfa37a7b 2004-04-10 devnull .PP
85 cfa37a7b 2004-04-10 devnull .B
86 cfa37a7b 2004-04-10 devnull ulong blockcrc(ulong *tab, ulong crc, void *buf, int n)
87 cfa37a7b 2004-04-10 devnull .PP
88 cfa37a7b 2004-04-10 devnull .B
89 cfa37a7b 2004-04-10 devnull ulong adler32(ulong adler, void *buf, int n)
90 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
91 cfa37a7b 2004-04-10 devnull These routines compress and decompress data using the deflate compression algorithm,
92 cfa37a7b 2004-04-10 devnull which is used for most gzip, zip, and zlib files.
93 cfa37a7b 2004-04-10 devnull .PP
94 cfa37a7b 2004-04-10 devnull .I Deflate
95 cfa37a7b 2004-04-10 devnull compresses input data retrieved by calls to
96 cfa37a7b 2004-04-10 devnull .I r
97 cfa37a7b 2004-04-10 devnull with arguments
98 cfa37a7b 2004-04-10 devnull .IR rr ,
99 cfa37a7b 2004-04-10 devnull an input buffer, and a count of bytes to read.
100 cfa37a7b 2004-04-10 devnull .I R
101 cfa37a7b 2004-04-10 devnull should return the number of bytes read;
102 cfa37a7b 2004-04-10 devnull end of input is signaled by returning zero, an input error by
103 cfa37a7b 2004-04-10 devnull returning a negative number.
104 cfa37a7b 2004-04-10 devnull The compressed output is written to
105 cfa37a7b 2004-04-10 devnull .I w
106 cfa37a7b 2004-04-10 devnull with arguments
107 cfa37a7b 2004-04-10 devnull .IR wr ,
108 cfa37a7b 2004-04-10 devnull the output data, and the number of bytes to write.
109 cfa37a7b 2004-04-10 devnull .I W
110 cfa37a7b 2004-04-10 devnull should return the number of bytes written;
111 cfa37a7b 2004-04-10 devnull writing fewer than the requested number of bytes is an error.
112 cfa37a7b 2004-04-10 devnull .I Level
113 cfa37a7b 2004-04-10 devnull indicates the amount of computation deflate should do while compressing the data.
114 cfa37a7b 2004-04-10 devnull Higher
115 cfa37a7b 2004-04-10 devnull .I levels
116 cfa37a7b 2004-04-10 devnull usually take more time and produce smaller outputs.
117 cfa37a7b 2004-04-10 devnull Valid values are 1 to 9, inclusive; 6 is a good compromise.
118 cfa37a7b 2004-04-10 devnull If
119 cfa37a7b 2004-04-10 devnull .I debug
120 cfa37a7b 2004-04-10 devnull is non-zero, cryptic debugging information is produced on standard error.
121 cfa37a7b 2004-04-10 devnull .PP
122 cfa37a7b 2004-04-10 devnull .I Inflate
123 cfa37a7b 2004-04-10 devnull reverses the process, converting compressed data into uncompressed output.
124 cfa37a7b 2004-04-10 devnull Input is retrieved one byte at a time by calling
125 cfa37a7b 2004-04-10 devnull .I get
126 cfa37a7b 2004-04-10 devnull with the argument
127 cfa37a7b 2004-04-10 devnull .IR getr .
128 cfa37a7b 2004-04-10 devnull End of input of signaled by returning a negative value.
129 cfa37a7b 2004-04-10 devnull The uncompressed output is written to
130 cfa37a7b 2004-04-10 devnull .IR w ,
131 cfa37a7b 2004-04-10 devnull which has the same interface as for
132 cfa37a7b 2004-04-10 devnull .IR deflate .
133 cfa37a7b 2004-04-10 devnull .PP
134 cfa37a7b 2004-04-10 devnull .I
135 cfa37a7b 2004-04-10 devnull Deflateblock
136 cfa37a7b 2004-04-10 devnull and
137 cfa37a7b 2004-04-10 devnull .I inflateblock
138 cfa37a7b 2004-04-10 devnull operate on blocks of memory but are otherwise similar to
139 cfa37a7b 2004-04-10 devnull .I deflate
140 cfa37a7b 2004-04-10 devnull and
141 cfa37a7b 2004-04-10 devnull .IR inflate .
142 cfa37a7b 2004-04-10 devnull .PP
143 cfa37a7b 2004-04-10 devnull The zlib functions are similar, but operate on files with a zlib header and trailer.
144 cfa37a7b 2004-04-10 devnull .PP
145 cfa37a7b 2004-04-10 devnull .I Deflateinit
146 cfa37a7b 2004-04-10 devnull or
147 cfa37a7b 2004-04-10 devnull .I inflateinit
148 cfa37a7b 2004-04-10 devnull must be called once before any call to the corresponding routines.
149 cfa37a7b 2004-04-10 devnull .PP
150 cfa37a7b 2004-04-10 devnull If the above routines fail,
151 cfa37a7b 2004-04-10 devnull they return a negative number indicating the problem.
152 cfa37a7b 2004-04-10 devnull The possible values are
153 cfa37a7b 2004-04-10 devnull .IR FlateNoMem ,
154 cfa37a7b 2004-04-10 devnull .IR FlateInputFail ,
155 cfa37a7b 2004-04-10 devnull .IR FlateOutputFail ,
156 cfa37a7b 2004-04-10 devnull .IR FlateCorrupted ,
157 cfa37a7b 2004-04-10 devnull and
158 cfa37a7b 2004-04-10 devnull .IR FlateInternal .
159 cfa37a7b 2004-04-10 devnull .I Flateerr
160 cfa37a7b 2004-04-10 devnull converts the number into a printable message.
161 cfa37a7b 2004-04-10 devnull .I FlateOk
162 cfa37a7b 2004-04-10 devnull is defined to be zero,
163 cfa37a7b 2004-04-10 devnull the successful return value for
164 cfa37a7b 2004-04-10 devnull .IR deflateinit ,
165 cfa37a7b 2004-04-10 devnull .IR deflate ,
166 cfa37a7b 2004-04-10 devnull .IR deflatezlib ,
167 cfa37a7b 2004-04-10 devnull .IR inflateinit ,
168 cfa37a7b 2004-04-10 devnull .IR inflate ,
169 cfa37a7b 2004-04-10 devnull and
170 cfa37a7b 2004-04-10 devnull .IR inflatezlib .
171 cfa37a7b 2004-04-10 devnull The block functions return the number of bytes produced when they succeed.
172 cfa37a7b 2004-04-10 devnull .PP
173 cfa37a7b 2004-04-10 devnull .I Mkcrctab
174 cfa37a7b 2004-04-10 devnull allocates
175 cfa37a7b 2004-04-10 devnull (using
176 d32deab1 2020-08-16 rsc .MR malloc (3) ),
177 cfa37a7b 2004-04-10 devnull initializes, and returns a table for rapid computation of 32 bit CRC values using the polynomial
178 cfa37a7b 2004-04-10 devnull .IR poly .
179 cfa37a7b 2004-04-10 devnull .I Blockcrc
180 cfa37a7b 2004-04-10 devnull uses
181 cfa37a7b 2004-04-10 devnull .IR tab ,
182 cfa37a7b 2004-04-10 devnull a table returned by
183 cfa37a7b 2004-04-10 devnull .IR mkcrctab ,
184 cfa37a7b 2004-04-10 devnull to update
185 cfa37a7b 2004-04-10 devnull .I crc
186 cfa37a7b 2004-04-10 devnull for the
187 cfa37a7b 2004-04-10 devnull .I n
188 cfa37a7b 2004-04-10 devnull bytes of data in
189 cfa37a7b 2004-04-10 devnull .IR buf ,
190 cfa37a7b 2004-04-10 devnull and returns the new value.
191 cfa37a7b 2004-04-10 devnull .I Crc
192 cfa37a7b 2004-04-10 devnull should initially be zero.
193 cfa37a7b 2004-04-10 devnull .I Blockcrc
194 cfa37a7b 2004-04-10 devnull pre-conditions and post-conditions
195 cfa37a7b 2004-04-10 devnull .I crc
196 cfa37a7b 2004-04-10 devnull by ones complementation.
197 cfa37a7b 2004-04-10 devnull .PP
198 cfa37a7b 2004-04-10 devnull .I Adler32
199 cfa37a7b 2004-04-10 devnull updates the Adler 32-bit checksum of the
200 cfa37a7b 2004-04-10 devnull .I n
201 cfa37a7b 2004-04-10 devnull butes of data in
202 cfa37a7b 2004-04-10 devnull .IR buf.
203 cfa37a7b 2004-04-10 devnull The initial value of
204 cfa37a7b 2004-04-10 devnull .I adler
205 cfa37a7b 2004-04-10 devnull (that is, its value after seeing zero bytes) should be 1.
206 cfa37a7b 2004-04-10 devnull .SH SOURCE
207 c3674de4 2005-01-11 devnull .B \*9/src/libflate