diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /arch/ppc64/boot/zlib.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'arch/ppc64/boot/zlib.h')
-rw-r--r-- | arch/ppc64/boot/zlib.h | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/arch/ppc64/boot/zlib.h b/arch/ppc64/boot/zlib.h new file mode 100644 index 000000000000..f0b996c6864f --- /dev/null +++ b/arch/ppc64/boot/zlib.h | |||
@@ -0,0 +1,432 @@ | |||
1 | /* */ | ||
2 | |||
3 | /* | ||
4 | * This file is derived from zlib.h and zconf.h from the zlib-0.95 | ||
5 | * distribution by Jean-loup Gailly and Mark Adler, with some additions | ||
6 | * by Paul Mackerras to aid in implementing Deflate compression and | ||
7 | * decompression for PPP packets. | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * ==FILEVERSION 960122== | ||
12 | * | ||
13 | * This marker is used by the Linux installation script to determine | ||
14 | * whether an up-to-date version of this file is already installed. | ||
15 | */ | ||
16 | |||
17 | /* zlib.h -- interface of the 'zlib' general purpose compression library | ||
18 | version 0.95, Aug 16th, 1995. | ||
19 | |||
20 | Copyright (C) 1995 Jean-loup Gailly and Mark Adler | ||
21 | |||
22 | This software is provided 'as-is', without any express or implied | ||
23 | warranty. In no event will the authors be held liable for any damages | ||
24 | arising from the use of this software. | ||
25 | |||
26 | Permission is granted to anyone to use this software for any purpose, | ||
27 | including commercial applications, and to alter it and redistribute it | ||
28 | freely, subject to the following restrictions: | ||
29 | |||
30 | 1. The origin of this software must not be misrepresented; you must not | ||
31 | claim that you wrote the original software. If you use this software | ||
32 | in a product, an acknowledgment in the product documentation would be | ||
33 | appreciated but is not required. | ||
34 | 2. Altered source versions must be plainly marked as such, and must not be | ||
35 | misrepresented as being the original software. | ||
36 | 3. This notice may not be removed or altered from any source distribution. | ||
37 | |||
38 | Jean-loup Gailly Mark Adler | ||
39 | gzip@prep.ai.mit.edu madler@alumni.caltech.edu | ||
40 | */ | ||
41 | |||
42 | #ifndef _ZLIB_H | ||
43 | #define _ZLIB_H | ||
44 | |||
45 | /* #include "zconf.h" */ /* included directly here */ | ||
46 | |||
47 | /* zconf.h -- configuration of the zlib compression library | ||
48 | * Copyright (C) 1995 Jean-loup Gailly. | ||
49 | * For conditions of distribution and use, see copyright notice in zlib.h | ||
50 | */ | ||
51 | |||
52 | /* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */ | ||
53 | |||
54 | /* | ||
55 | The library does not install any signal handler. It is recommended to | ||
56 | add at least a handler for SIGSEGV when decompressing; the library checks | ||
57 | the consistency of the input data whenever possible but may go nuts | ||
58 | for some forms of corrupted input. | ||
59 | */ | ||
60 | |||
61 | /* | ||
62 | * Compile with -DMAXSEG_64K if the alloc function cannot allocate more | ||
63 | * than 64k bytes at a time (needed on systems with 16-bit int). | ||
64 | * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints | ||
65 | * at addresses which are not a multiple of their size. | ||
66 | * Under DOS, -DFAR=far or -DFAR=__far may be needed. | ||
67 | */ | ||
68 | |||
69 | #ifndef STDC | ||
70 | # if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus) | ||
71 | # define STDC | ||
72 | # endif | ||
73 | #endif | ||
74 | |||
75 | #ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */ | ||
76 | # include <unix.h> | ||
77 | #endif | ||
78 | |||
79 | /* Maximum value for memLevel in deflateInit2 */ | ||
80 | #ifndef MAX_MEM_LEVEL | ||
81 | # ifdef MAXSEG_64K | ||
82 | # define MAX_MEM_LEVEL 8 | ||
83 | # else | ||
84 | # define MAX_MEM_LEVEL 9 | ||
85 | # endif | ||
86 | #endif | ||
87 | |||
88 | #ifndef FAR | ||
89 | # define FAR | ||
90 | #endif | ||
91 | |||
92 | /* Maximum value for windowBits in deflateInit2 and inflateInit2 */ | ||
93 | #ifndef MAX_WBITS | ||
94 | # define MAX_WBITS 15 /* 32K LZ77 window */ | ||
95 | #endif | ||
96 | |||
97 | /* The memory requirements for deflate are (in bytes): | ||
98 | 1 << (windowBits+2) + 1 << (memLevel+9) | ||
99 | that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) | ||
100 | plus a few kilobytes for small objects. For example, if you want to reduce | ||
101 | the default memory requirements from 256K to 128K, compile with | ||
102 | make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" | ||
103 | Of course this will generally degrade compression (there's no free lunch). | ||
104 | |||
105 | The memory requirements for inflate are (in bytes) 1 << windowBits | ||
106 | that is, 32K for windowBits=15 (default value) plus a few kilobytes | ||
107 | for small objects. | ||
108 | */ | ||
109 | |||
110 | /* Type declarations */ | ||
111 | |||
112 | #ifndef OF /* function prototypes */ | ||
113 | # ifdef STDC | ||
114 | # define OF(args) args | ||
115 | # else | ||
116 | # define OF(args) () | ||
117 | # endif | ||
118 | #endif | ||
119 | |||
120 | typedef unsigned char Byte; /* 8 bits */ | ||
121 | typedef unsigned int uInt; /* 16 bits or more */ | ||
122 | typedef unsigned long uLong; /* 32 bits or more */ | ||
123 | |||
124 | typedef Byte FAR Bytef; | ||
125 | typedef char FAR charf; | ||
126 | typedef int FAR intf; | ||
127 | typedef uInt FAR uIntf; | ||
128 | typedef uLong FAR uLongf; | ||
129 | |||
130 | #ifdef STDC | ||
131 | typedef void FAR *voidpf; | ||
132 | typedef void *voidp; | ||
133 | #else | ||
134 | typedef Byte FAR *voidpf; | ||
135 | typedef Byte *voidp; | ||
136 | #endif | ||
137 | |||
138 | /* end of original zconf.h */ | ||
139 | |||
140 | #define ZLIB_VERSION "0.95P" | ||
141 | |||
142 | /* | ||
143 | The 'zlib' compression library provides in-memory compression and | ||
144 | decompression functions, including integrity checks of the uncompressed | ||
145 | data. This version of the library supports only one compression method | ||
146 | (deflation) but other algorithms may be added later and will have the same | ||
147 | stream interface. | ||
148 | |||
149 | For compression the application must provide the output buffer and | ||
150 | may optionally provide the input buffer for optimization. For decompression, | ||
151 | the application must provide the input buffer and may optionally provide | ||
152 | the output buffer for optimization. | ||
153 | |||
154 | Compression can be done in a single step if the buffers are large | ||
155 | enough (for example if an input file is mmap'ed), or can be done by | ||
156 | repeated calls of the compression function. In the latter case, the | ||
157 | application must provide more input and/or consume the output | ||
158 | (providing more output space) before each call. | ||
159 | */ | ||
160 | |||
161 | typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); | ||
162 | typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes)); | ||
163 | |||
164 | struct internal_state; | ||
165 | |||
166 | typedef struct z_stream_s { | ||
167 | Bytef *next_in; /* next input byte */ | ||
168 | uInt avail_in; /* number of bytes available at next_in */ | ||
169 | uLong total_in; /* total nb of input bytes read so far */ | ||
170 | |||
171 | Bytef *next_out; /* next output byte should be put there */ | ||
172 | uInt avail_out; /* remaining free space at next_out */ | ||
173 | uLong total_out; /* total nb of bytes output so far */ | ||
174 | |||
175 | char *msg; /* last error message, NULL if no error */ | ||
176 | struct internal_state FAR *state; /* not visible by applications */ | ||
177 | |||
178 | alloc_func zalloc; /* used to allocate the internal state */ | ||
179 | free_func zfree; /* used to free the internal state */ | ||
180 | voidp opaque; /* private data object passed to zalloc and zfree */ | ||
181 | |||
182 | Byte data_type; /* best guess about the data type: ascii or binary */ | ||
183 | |||
184 | } z_stream; | ||
185 | |||
186 | /* | ||
187 | The application must update next_in and avail_in when avail_in has | ||
188 | dropped to zero. It must update next_out and avail_out when avail_out | ||
189 | has dropped to zero. The application must initialize zalloc, zfree and | ||
190 | opaque before calling the init function. All other fields are set by the | ||
191 | compression library and must not be updated by the application. | ||
192 | |||
193 | The opaque value provided by the application will be passed as the first | ||
194 | parameter for calls of zalloc and zfree. This can be useful for custom | ||
195 | memory management. The compression library attaches no meaning to the | ||
196 | opaque value. | ||
197 | |||
198 | zalloc must return Z_NULL if there is not enough memory for the object. | ||
199 | On 16-bit systems, the functions zalloc and zfree must be able to allocate | ||
200 | exactly 65536 bytes, but will not be required to allocate more than this | ||
201 | if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, | ||
202 | pointers returned by zalloc for objects of exactly 65536 bytes *must* | ||
203 | have their offset normalized to zero. The default allocation function | ||
204 | provided by this library ensures this (see zutil.c). To reduce memory | ||
205 | requirements and avoid any allocation of 64K objects, at the expense of | ||
206 | compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). | ||
207 | |||
208 | The fields total_in and total_out can be used for statistics or | ||
209 | progress reports. After compression, total_in holds the total size of | ||
210 | the uncompressed data and may be saved for use in the decompressor | ||
211 | (particularly if the decompressor wants to decompress everything in | ||
212 | a single step). | ||
213 | */ | ||
214 | |||
215 | /* constants */ | ||
216 | |||
217 | #define Z_NO_FLUSH 0 | ||
218 | #define Z_PARTIAL_FLUSH 1 | ||
219 | #define Z_FULL_FLUSH 2 | ||
220 | #define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */ | ||
221 | #define Z_FINISH 4 | ||
222 | #define Z_PACKET_FLUSH 5 | ||
223 | /* See deflate() below for the usage of these constants */ | ||
224 | |||
225 | #define Z_OK 0 | ||
226 | #define Z_STREAM_END 1 | ||
227 | #define Z_ERRNO (-1) | ||
228 | #define Z_STREAM_ERROR (-2) | ||
229 | #define Z_DATA_ERROR (-3) | ||
230 | #define Z_MEM_ERROR (-4) | ||
231 | #define Z_BUF_ERROR (-5) | ||
232 | /* error codes for the compression/decompression functions */ | ||
233 | |||
234 | #define Z_BEST_SPEED 1 | ||
235 | #define Z_BEST_COMPRESSION 9 | ||
236 | #define Z_DEFAULT_COMPRESSION (-1) | ||
237 | /* compression levels */ | ||
238 | |||
239 | #define Z_FILTERED 1 | ||
240 | #define Z_HUFFMAN_ONLY 2 | ||
241 | #define Z_DEFAULT_STRATEGY 0 | ||
242 | |||
243 | #define Z_BINARY 0 | ||
244 | #define Z_ASCII 1 | ||
245 | #define Z_UNKNOWN 2 | ||
246 | /* Used to set the data_type field */ | ||
247 | |||
248 | #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ | ||
249 | |||
250 | extern char *zlib_version; | ||
251 | /* The application can compare zlib_version and ZLIB_VERSION for consistency. | ||
252 | If the first character differs, the library code actually used is | ||
253 | not compatible with the zlib.h header file used by the application. | ||
254 | */ | ||
255 | |||
256 | /* basic functions */ | ||
257 | |||
258 | extern int inflateInit OF((z_stream *strm)); | ||
259 | /* | ||
260 | Initializes the internal stream state for decompression. The fields | ||
261 | zalloc and zfree must be initialized before by the caller. If zalloc and | ||
262 | zfree are set to Z_NULL, inflateInit updates them to use default allocation | ||
263 | functions. | ||
264 | |||
265 | inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not | ||
266 | enough memory. msg is set to null if there is no error message. | ||
267 | inflateInit does not perform any decompression: this will be done by | ||
268 | inflate(). | ||
269 | */ | ||
270 | |||
271 | |||
272 | extern int inflate OF((z_stream *strm, int flush)); | ||
273 | /* | ||
274 | Performs one or both of the following actions: | ||
275 | |||
276 | - Decompress more input starting at next_in and update next_in and avail_in | ||
277 | accordingly. If not all input can be processed (because there is not | ||
278 | enough room in the output buffer), next_in is updated and processing | ||
279 | will resume at this point for the next call of inflate(). | ||
280 | |||
281 | - Provide more output starting at next_out and update next_out and avail_out | ||
282 | accordingly. inflate() always provides as much output as possible | ||
283 | (until there is no more input data or no more space in the output buffer). | ||
284 | |||
285 | Before the call of inflate(), the application should ensure that at least | ||
286 | one of the actions is possible, by providing more input and/or consuming | ||
287 | more output, and updating the next_* and avail_* values accordingly. | ||
288 | The application can consume the uncompressed output when it wants, for | ||
289 | example when the output buffer is full (avail_out == 0), or after each | ||
290 | call of inflate(). | ||
291 | |||
292 | If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH, | ||
293 | inflate flushes as much output as possible to the output buffer. The | ||
294 | flushing behavior of inflate is not specified for values of the flush | ||
295 | parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the | ||
296 | current implementation actually flushes as much output as possible | ||
297 | anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data | ||
298 | has been consumed, it is expecting to see the length field of a stored | ||
299 | block; if not, it returns Z_DATA_ERROR. | ||
300 | |||
301 | inflate() should normally be called until it returns Z_STREAM_END or an | ||
302 | error. However if all decompression is to be performed in a single step | ||
303 | (a single call of inflate), the parameter flush should be set to | ||
304 | Z_FINISH. In this case all pending input is processed and all pending | ||
305 | output is flushed; avail_out must be large enough to hold all the | ||
306 | uncompressed data. (The size of the uncompressed data may have been saved | ||
307 | by the compressor for this purpose.) The next operation on this stream must | ||
308 | be inflateEnd to deallocate the decompression state. The use of Z_FINISH | ||
309 | is never required, but can be used to inform inflate that a faster routine | ||
310 | may be used for the single inflate() call. | ||
311 | |||
312 | inflate() returns Z_OK if some progress has been made (more input | ||
313 | processed or more output produced), Z_STREAM_END if the end of the | ||
314 | compressed data has been reached and all uncompressed output has been | ||
315 | produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if | ||
316 | the stream structure was inconsistent (for example if next_in or next_out | ||
317 | was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no | ||
318 | progress is possible or if there was not enough room in the output buffer | ||
319 | when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then | ||
320 | call inflateSync to look for a good compression block. */ | ||
321 | |||
322 | |||
323 | extern int inflateEnd OF((z_stream *strm)); | ||
324 | /* | ||
325 | All dynamically allocated data structures for this stream are freed. | ||
326 | This function discards any unprocessed input and does not flush any | ||
327 | pending output. | ||
328 | |||
329 | inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state | ||
330 | was inconsistent. In the error case, msg may be set but then points to a | ||
331 | static string (which must not be deallocated). | ||
332 | */ | ||
333 | |||
334 | /* advanced functions */ | ||
335 | |||
336 | extern int inflateInit2 OF((z_stream *strm, | ||
337 | int windowBits)); | ||
338 | /* | ||
339 | This is another version of inflateInit with more compression options. The | ||
340 | fields next_out, zalloc and zfree must be initialized before by the caller. | ||
341 | |||
342 | The windowBits parameter is the base two logarithm of the maximum window | ||
343 | size (the size of the history buffer). It should be in the range 8..15 for | ||
344 | this version of the library (the value 16 will be allowed soon). The | ||
345 | default value is 15 if inflateInit is used instead. If a compressed stream | ||
346 | with a larger window size is given as input, inflate() will return with | ||
347 | the error code Z_DATA_ERROR instead of trying to allocate a larger window. | ||
348 | |||
349 | If next_out is not null, the library will use this buffer for the history | ||
350 | buffer; the buffer must either be large enough to hold the entire output | ||
351 | data, or have at least 1<<windowBits bytes. If next_out is null, the | ||
352 | library will allocate its own buffer (and leave next_out null). next_in | ||
353 | need not be provided here but must be provided by the application for the | ||
354 | next call of inflate(). | ||
355 | |||
356 | If the history buffer is provided by the application, next_out must | ||
357 | never be changed by the application since the decompressor maintains | ||
358 | history information inside this buffer from call to call; the application | ||
359 | can only reset next_out to the beginning of the history buffer when | ||
360 | avail_out is zero and all output has been consumed. | ||
361 | |||
362 | inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was | ||
363 | not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as | ||
364 | windowBits < 8). msg is set to null if there is no error message. | ||
365 | inflateInit2 does not perform any decompression: this will be done by | ||
366 | inflate(). | ||
367 | */ | ||
368 | |||
369 | extern int inflateSync OF((z_stream *strm)); | ||
370 | /* | ||
371 | Skips invalid compressed data until the special marker (see deflate() | ||
372 | above) can be found, or until all available input is skipped. No output | ||
373 | is provided. | ||
374 | |||
375 | inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR | ||
376 | if no more input was provided, Z_DATA_ERROR if no marker has been found, | ||
377 | or Z_STREAM_ERROR if the stream structure was inconsistent. In the success | ||
378 | case, the application may save the current current value of total_in which | ||
379 | indicates where valid compressed data was found. In the error case, the | ||
380 | application may repeatedly call inflateSync, providing more input each time, | ||
381 | until success or end of the input data. | ||
382 | */ | ||
383 | |||
384 | extern int inflateReset OF((z_stream *strm)); | ||
385 | /* | ||
386 | This function is equivalent to inflateEnd followed by inflateInit, | ||
387 | but does not free and reallocate all the internal decompression state. | ||
388 | The stream will keep attributes that may have been set by inflateInit2. | ||
389 | |||
390 | inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source | ||
391 | stream state was inconsistent (such as zalloc or state being NULL). | ||
392 | */ | ||
393 | |||
394 | extern int inflateIncomp OF((z_stream *strm)); | ||
395 | /* | ||
396 | This function adds the data at next_in (avail_in bytes) to the output | ||
397 | history without performing any output. There must be no pending output, | ||
398 | and the decompressor must be expecting to see the start of a block. | ||
399 | Calling this function is equivalent to decompressing a stored block | ||
400 | containing the data at next_in (except that the data is not output). | ||
401 | */ | ||
402 | |||
403 | /* checksum functions */ | ||
404 | |||
405 | /* | ||
406 | This function is not related to compression but is exported | ||
407 | anyway because it might be useful in applications using the | ||
408 | compression library. | ||
409 | */ | ||
410 | |||
411 | extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len)); | ||
412 | |||
413 | /* | ||
414 | Update a running Adler-32 checksum with the bytes buf[0..len-1] and | ||
415 | return the updated checksum. If buf is NULL, this function returns | ||
416 | the required initial value for the checksum. | ||
417 | An Adler-32 checksum is almost as reliable as a CRC32 but can be computed | ||
418 | much faster. Usage example: | ||
419 | |||
420 | uLong adler = adler32(0L, Z_NULL, 0); | ||
421 | |||
422 | while (read_buffer(buffer, length) != EOF) { | ||
423 | adler = adler32(adler, buffer, length); | ||
424 | } | ||
425 | if (adler != original_adler) error(); | ||
426 | */ | ||
427 | |||
428 | #ifndef _Z_UTIL_H | ||
429 | struct internal_state {int dummy;}; /* hack for buggy compilers */ | ||
430 | #endif | ||
431 | |||
432 | #endif /* _ZLIB_H */ | ||