diff options
-rw-r--r-- | include/linux/zlib.h | 118 | ||||
-rw-r--r-- | lib/zlib_deflate/deflate.c | 143 | ||||
-rw-r--r-- | lib/zlib_inflate/inflate.c | 132 |
3 files changed, 0 insertions, 393 deletions
diff --git a/include/linux/zlib.h b/include/linux/zlib.h index 9c5a6b4de0a3..197abb2a54c5 100644 --- a/include/linux/zlib.h +++ b/include/linux/zlib.h | |||
@@ -493,64 +493,6 @@ extern int deflateInit2 (z_streamp strm, | |||
493 | method). msg is set to null if there is no error message. deflateInit2 does | 493 | method). msg is set to null if there is no error message. deflateInit2 does |
494 | not perform any compression: this will be done by deflate(). | 494 | not perform any compression: this will be done by deflate(). |
495 | */ | 495 | */ |
496 | |||
497 | #if 0 | ||
498 | extern int zlib_deflateSetDictionary (z_streamp strm, | ||
499 | const Byte *dictionary, | ||
500 | uInt dictLength); | ||
501 | #endif | ||
502 | /* | ||
503 | Initializes the compression dictionary from the given byte sequence | ||
504 | without producing any compressed output. This function must be called | ||
505 | immediately after deflateInit, deflateInit2 or deflateReset, before any | ||
506 | call of deflate. The compressor and decompressor must use exactly the same | ||
507 | dictionary (see inflateSetDictionary). | ||
508 | |||
509 | The dictionary should consist of strings (byte sequences) that are likely | ||
510 | to be encountered later in the data to be compressed, with the most commonly | ||
511 | used strings preferably put towards the end of the dictionary. Using a | ||
512 | dictionary is most useful when the data to be compressed is short and can be | ||
513 | predicted with good accuracy; the data can then be compressed better than | ||
514 | with the default empty dictionary. | ||
515 | |||
516 | Depending on the size of the compression data structures selected by | ||
517 | deflateInit or deflateInit2, a part of the dictionary may in effect be | ||
518 | discarded, for example if the dictionary is larger than the window size in | ||
519 | deflate or deflate2. Thus the strings most likely to be useful should be | ||
520 | put at the end of the dictionary, not at the front. | ||
521 | |||
522 | Upon return of this function, strm->adler is set to the Adler32 value | ||
523 | of the dictionary; the decompressor may later use this value to determine | ||
524 | which dictionary has been used by the compressor. (The Adler32 value | ||
525 | applies to the whole dictionary even if only a subset of the dictionary is | ||
526 | actually used by the compressor.) | ||
527 | |||
528 | deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a | ||
529 | parameter is invalid (such as NULL dictionary) or the stream state is | ||
530 | inconsistent (for example if deflate has already been called for this stream | ||
531 | or if the compression method is bsort). deflateSetDictionary does not | ||
532 | perform any compression: this will be done by deflate(). | ||
533 | */ | ||
534 | |||
535 | #if 0 | ||
536 | extern int zlib_deflateCopy (z_streamp dest, z_streamp source); | ||
537 | #endif | ||
538 | |||
539 | /* | ||
540 | Sets the destination stream as a complete copy of the source stream. | ||
541 | |||
542 | This function can be useful when several compression strategies will be | ||
543 | tried, for example when there are several ways of pre-processing the input | ||
544 | data with a filter. The streams that will be discarded should then be freed | ||
545 | by calling deflateEnd. Note that deflateCopy duplicates the internal | ||
546 | compression state which can be quite large, so this strategy is slow and | ||
547 | can consume lots of memory. | ||
548 | |||
549 | deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not | ||
550 | enough memory, Z_STREAM_ERROR if the source stream state was inconsistent | ||
551 | (such as zalloc being NULL). msg is left unchanged in both source and | ||
552 | destination. | ||
553 | */ | ||
554 | 496 | ||
555 | extern int zlib_deflateReset (z_streamp strm); | 497 | extern int zlib_deflateReset (z_streamp strm); |
556 | /* | 498 | /* |
@@ -568,27 +510,6 @@ static inline unsigned long deflateBound(unsigned long s) | |||
568 | return s + ((s + 7) >> 3) + ((s + 63) >> 6) + 11; | 510 | return s + ((s + 7) >> 3) + ((s + 63) >> 6) + 11; |
569 | } | 511 | } |
570 | 512 | ||
571 | #if 0 | ||
572 | extern int zlib_deflateParams (z_streamp strm, int level, int strategy); | ||
573 | #endif | ||
574 | /* | ||
575 | Dynamically update the compression level and compression strategy. The | ||
576 | interpretation of level and strategy is as in deflateInit2. This can be | ||
577 | used to switch between compression and straight copy of the input data, or | ||
578 | to switch to a different kind of input data requiring a different | ||
579 | strategy. If the compression level is changed, the input available so far | ||
580 | is compressed with the old level (and may be flushed); the new level will | ||
581 | take effect only at the next call of deflate(). | ||
582 | |||
583 | Before the call of deflateParams, the stream state must be set as for | ||
584 | a call of deflate(), since the currently available input may have to | ||
585 | be compressed and flushed. In particular, strm->avail_out must be non-zero. | ||
586 | |||
587 | deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source | ||
588 | stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR | ||
589 | if strm->avail_out was zero. | ||
590 | */ | ||
591 | |||
592 | /* | 513 | /* |
593 | extern int inflateInit2 (z_streamp strm, int windowBits); | 514 | extern int inflateInit2 (z_streamp strm, int windowBits); |
594 | 515 | ||
@@ -631,45 +552,6 @@ extern int inflateInit2 (z_streamp strm, int windowBits); | |||
631 | and avail_out are unchanged.) | 552 | and avail_out are unchanged.) |
632 | */ | 553 | */ |
633 | 554 | ||
634 | extern int zlib_inflateSetDictionary (z_streamp strm, | ||
635 | const Byte *dictionary, | ||
636 | uInt dictLength); | ||
637 | /* | ||
638 | Initializes the decompression dictionary from the given uncompressed byte | ||
639 | sequence. This function must be called immediately after a call of inflate, | ||
640 | if that call returned Z_NEED_DICT. The dictionary chosen by the compressor | ||
641 | can be determined from the adler32 value returned by that call of inflate. | ||
642 | The compressor and decompressor must use exactly the same dictionary (see | ||
643 | deflateSetDictionary). For raw inflate, this function can be called | ||
644 | immediately after inflateInit2() or inflateReset() and before any call of | ||
645 | inflate() to set the dictionary. The application must insure that the | ||
646 | dictionary that was used for compression is provided. | ||
647 | |||
648 | inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a | ||
649 | parameter is invalid (such as NULL dictionary) or the stream state is | ||
650 | inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the | ||
651 | expected one (incorrect adler32 value). inflateSetDictionary does not | ||
652 | perform any decompression: this will be done by subsequent calls of | ||
653 | inflate(). | ||
654 | */ | ||
655 | |||
656 | #if 0 | ||
657 | extern int zlib_inflateSync (z_streamp strm); | ||
658 | #endif | ||
659 | /* | ||
660 | Skips invalid compressed data until a full flush point (see above the | ||
661 | description of deflate with Z_FULL_FLUSH) can be found, or until all | ||
662 | available input is skipped. No output is provided. | ||
663 | |||
664 | inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR | ||
665 | if no more input was provided, Z_DATA_ERROR if no flush point has been found, | ||
666 | or Z_STREAM_ERROR if the stream structure was inconsistent. In the success | ||
667 | case, the application may save the current current value of total_in which | ||
668 | indicates where valid compressed data was found. In the error case, the | ||
669 | application may repeatedly call inflateSync, providing more input each time, | ||
670 | until success or end of the input data. | ||
671 | */ | ||
672 | |||
673 | extern int zlib_inflateReset (z_streamp strm); | 555 | extern int zlib_inflateReset (z_streamp strm); |
674 | /* | 556 | /* |
675 | This function is equivalent to inflateEnd followed by inflateInit, | 557 | This function is equivalent to inflateEnd followed by inflateInit, |
diff --git a/lib/zlib_deflate/deflate.c b/lib/zlib_deflate/deflate.c index d63381e8e333..d20ef458f137 100644 --- a/lib/zlib_deflate/deflate.c +++ b/lib/zlib_deflate/deflate.c | |||
@@ -250,52 +250,6 @@ int zlib_deflateInit2( | |||
250 | } | 250 | } |
251 | 251 | ||
252 | /* ========================================================================= */ | 252 | /* ========================================================================= */ |
253 | #if 0 | ||
254 | int zlib_deflateSetDictionary( | ||
255 | z_streamp strm, | ||
256 | const Byte *dictionary, | ||
257 | uInt dictLength | ||
258 | ) | ||
259 | { | ||
260 | deflate_state *s; | ||
261 | uInt length = dictLength; | ||
262 | uInt n; | ||
263 | IPos hash_head = 0; | ||
264 | |||
265 | if (strm == NULL || strm->state == NULL || dictionary == NULL) | ||
266 | return Z_STREAM_ERROR; | ||
267 | |||
268 | s = (deflate_state *) strm->state; | ||
269 | if (s->status != INIT_STATE) return Z_STREAM_ERROR; | ||
270 | |||
271 | strm->adler = zlib_adler32(strm->adler, dictionary, dictLength); | ||
272 | |||
273 | if (length < MIN_MATCH) return Z_OK; | ||
274 | if (length > MAX_DIST(s)) { | ||
275 | length = MAX_DIST(s); | ||
276 | #ifndef USE_DICT_HEAD | ||
277 | dictionary += dictLength - length; /* use the tail of the dictionary */ | ||
278 | #endif | ||
279 | } | ||
280 | memcpy((char *)s->window, dictionary, length); | ||
281 | s->strstart = length; | ||
282 | s->block_start = (long)length; | ||
283 | |||
284 | /* Insert all strings in the hash table (except for the last two bytes). | ||
285 | * s->lookahead stays null, so s->ins_h will be recomputed at the next | ||
286 | * call of fill_window. | ||
287 | */ | ||
288 | s->ins_h = s->window[0]; | ||
289 | UPDATE_HASH(s, s->ins_h, s->window[1]); | ||
290 | for (n = 0; n <= length - MIN_MATCH; n++) { | ||
291 | INSERT_STRING(s, n, hash_head); | ||
292 | } | ||
293 | if (hash_head) hash_head = 0; /* to make compiler happy */ | ||
294 | return Z_OK; | ||
295 | } | ||
296 | #endif /* 0 */ | ||
297 | |||
298 | /* ========================================================================= */ | ||
299 | int zlib_deflateReset( | 253 | int zlib_deflateReset( |
300 | z_streamp strm | 254 | z_streamp strm |
301 | ) | 255 | ) |
@@ -326,45 +280,6 @@ int zlib_deflateReset( | |||
326 | return Z_OK; | 280 | return Z_OK; |
327 | } | 281 | } |
328 | 282 | ||
329 | /* ========================================================================= */ | ||
330 | #if 0 | ||
331 | int zlib_deflateParams( | ||
332 | z_streamp strm, | ||
333 | int level, | ||
334 | int strategy | ||
335 | ) | ||
336 | { | ||
337 | deflate_state *s; | ||
338 | compress_func func; | ||
339 | int err = Z_OK; | ||
340 | |||
341 | if (strm == NULL || strm->state == NULL) return Z_STREAM_ERROR; | ||
342 | s = (deflate_state *) strm->state; | ||
343 | |||
344 | if (level == Z_DEFAULT_COMPRESSION) { | ||
345 | level = 6; | ||
346 | } | ||
347 | if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) { | ||
348 | return Z_STREAM_ERROR; | ||
349 | } | ||
350 | func = configuration_table[s->level].func; | ||
351 | |||
352 | if (func != configuration_table[level].func && strm->total_in != 0) { | ||
353 | /* Flush the last buffer: */ | ||
354 | err = zlib_deflate(strm, Z_PARTIAL_FLUSH); | ||
355 | } | ||
356 | if (s->level != level) { | ||
357 | s->level = level; | ||
358 | s->max_lazy_match = configuration_table[level].max_lazy; | ||
359 | s->good_match = configuration_table[level].good_length; | ||
360 | s->nice_match = configuration_table[level].nice_length; | ||
361 | s->max_chain_length = configuration_table[level].max_chain; | ||
362 | } | ||
363 | s->strategy = strategy; | ||
364 | return err; | ||
365 | } | ||
366 | #endif /* 0 */ | ||
367 | |||
368 | /* ========================================================================= | 283 | /* ========================================================================= |
369 | * Put a short in the pending buffer. The 16-bit value is put in MSB order. | 284 | * Put a short in the pending buffer. The 16-bit value is put in MSB order. |
370 | * IN assertion: the stream state is correct and there is enough room in | 285 | * IN assertion: the stream state is correct and there is enough room in |
@@ -568,64 +483,6 @@ int zlib_deflateEnd( | |||
568 | return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; | 483 | return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; |
569 | } | 484 | } |
570 | 485 | ||
571 | /* ========================================================================= | ||
572 | * Copy the source state to the destination state. | ||
573 | */ | ||
574 | #if 0 | ||
575 | int zlib_deflateCopy ( | ||
576 | z_streamp dest, | ||
577 | z_streamp source | ||
578 | ) | ||
579 | { | ||
580 | #ifdef MAXSEG_64K | ||
581 | return Z_STREAM_ERROR; | ||
582 | #else | ||
583 | deflate_state *ds; | ||
584 | deflate_state *ss; | ||
585 | ush *overlay; | ||
586 | deflate_workspace *mem; | ||
587 | |||
588 | |||
589 | if (source == NULL || dest == NULL || source->state == NULL) { | ||
590 | return Z_STREAM_ERROR; | ||
591 | } | ||
592 | |||
593 | ss = (deflate_state *) source->state; | ||
594 | |||
595 | *dest = *source; | ||
596 | |||
597 | mem = (deflate_workspace *) dest->workspace; | ||
598 | |||
599 | ds = &(mem->deflate_memory); | ||
600 | |||
601 | dest->state = (struct internal_state *) ds; | ||
602 | *ds = *ss; | ||
603 | ds->strm = dest; | ||
604 | |||
605 | ds->window = (Byte *) mem->window_memory; | ||
606 | ds->prev = (Pos *) mem->prev_memory; | ||
607 | ds->head = (Pos *) mem->head_memory; | ||
608 | overlay = (ush *) mem->overlay_memory; | ||
609 | ds->pending_buf = (uch *) overlay; | ||
610 | |||
611 | memcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); | ||
612 | memcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); | ||
613 | memcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); | ||
614 | memcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); | ||
615 | |||
616 | ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); | ||
617 | ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); | ||
618 | ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; | ||
619 | |||
620 | ds->l_desc.dyn_tree = ds->dyn_ltree; | ||
621 | ds->d_desc.dyn_tree = ds->dyn_dtree; | ||
622 | ds->bl_desc.dyn_tree = ds->bl_tree; | ||
623 | |||
624 | return Z_OK; | ||
625 | #endif | ||
626 | } | ||
627 | #endif /* 0 */ | ||
628 | |||
629 | /* =========================================================================== | 486 | /* =========================================================================== |
630 | * Read a new buffer from the current input stream, update the adler32 | 487 | * Read a new buffer from the current input stream, update the adler32 |
631 | * and total number of bytes read. All deflate() input goes through | 488 | * and total number of bytes read. All deflate() input goes through |
diff --git a/lib/zlib_inflate/inflate.c b/lib/zlib_inflate/inflate.c index f5ce87b0800e..58a733b10387 100644 --- a/lib/zlib_inflate/inflate.c +++ b/lib/zlib_inflate/inflate.c | |||
@@ -45,21 +45,6 @@ int zlib_inflateReset(z_streamp strm) | |||
45 | return Z_OK; | 45 | return Z_OK; |
46 | } | 46 | } |
47 | 47 | ||
48 | #if 0 | ||
49 | int zlib_inflatePrime(z_streamp strm, int bits, int value) | ||
50 | { | ||
51 | struct inflate_state *state; | ||
52 | |||
53 | if (strm == NULL || strm->state == NULL) return Z_STREAM_ERROR; | ||
54 | state = (struct inflate_state *)strm->state; | ||
55 | if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; | ||
56 | value &= (1L << bits) - 1; | ||
57 | state->hold += value << state->bits; | ||
58 | state->bits += bits; | ||
59 | return Z_OK; | ||
60 | } | ||
61 | #endif | ||
62 | |||
63 | int zlib_inflateInit2(z_streamp strm, int windowBits) | 48 | int zlib_inflateInit2(z_streamp strm, int windowBits) |
64 | { | 49 | { |
65 | struct inflate_state *state; | 50 | struct inflate_state *state; |
@@ -761,123 +746,6 @@ int zlib_inflateEnd(z_streamp strm) | |||
761 | return Z_OK; | 746 | return Z_OK; |
762 | } | 747 | } |
763 | 748 | ||
764 | #if 0 | ||
765 | int zlib_inflateSetDictionary(z_streamp strm, const Byte *dictionary, | ||
766 | uInt dictLength) | ||
767 | { | ||
768 | struct inflate_state *state; | ||
769 | unsigned long id; | ||
770 | |||
771 | /* check state */ | ||
772 | if (strm == NULL || strm->state == NULL) return Z_STREAM_ERROR; | ||
773 | state = (struct inflate_state *)strm->state; | ||
774 | if (state->wrap != 0 && state->mode != DICT) | ||
775 | return Z_STREAM_ERROR; | ||
776 | |||
777 | /* check for correct dictionary id */ | ||
778 | if (state->mode == DICT) { | ||
779 | id = zlib_adler32(0L, NULL, 0); | ||
780 | id = zlib_adler32(id, dictionary, dictLength); | ||
781 | if (id != state->check) | ||
782 | return Z_DATA_ERROR; | ||
783 | } | ||
784 | |||
785 | /* copy dictionary to window */ | ||
786 | zlib_updatewindow(strm, strm->avail_out); | ||
787 | |||
788 | if (dictLength > state->wsize) { | ||
789 | memcpy(state->window, dictionary + dictLength - state->wsize, | ||
790 | state->wsize); | ||
791 | state->whave = state->wsize; | ||
792 | } | ||
793 | else { | ||
794 | memcpy(state->window + state->wsize - dictLength, dictionary, | ||
795 | dictLength); | ||
796 | state->whave = dictLength; | ||
797 | } | ||
798 | state->havedict = 1; | ||
799 | return Z_OK; | ||
800 | } | ||
801 | #endif | ||
802 | |||
803 | #if 0 | ||
804 | /* | ||
805 | Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found | ||
806 | or when out of input. When called, *have is the number of pattern bytes | ||
807 | found in order so far, in 0..3. On return *have is updated to the new | ||
808 | state. If on return *have equals four, then the pattern was found and the | ||
809 | return value is how many bytes were read including the last byte of the | ||
810 | pattern. If *have is less than four, then the pattern has not been found | ||
811 | yet and the return value is len. In the latter case, zlib_syncsearch() can be | ||
812 | called again with more data and the *have state. *have is initialized to | ||
813 | zero for the first call. | ||
814 | */ | ||
815 | static unsigned zlib_syncsearch(unsigned *have, unsigned char *buf, | ||
816 | unsigned len) | ||
817 | { | ||
818 | unsigned got; | ||
819 | unsigned next; | ||
820 | |||
821 | got = *have; | ||
822 | next = 0; | ||
823 | while (next < len && got < 4) { | ||
824 | if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) | ||
825 | got++; | ||
826 | else if (buf[next]) | ||
827 | got = 0; | ||
828 | else | ||
829 | got = 4 - got; | ||
830 | next++; | ||
831 | } | ||
832 | *have = got; | ||
833 | return next; | ||
834 | } | ||
835 | #endif | ||
836 | |||
837 | #if 0 | ||
838 | int zlib_inflateSync(z_streamp strm) | ||
839 | { | ||
840 | unsigned len; /* number of bytes to look at or looked at */ | ||
841 | unsigned long in, out; /* temporary to save total_in and total_out */ | ||
842 | unsigned char buf[4]; /* to restore bit buffer to byte string */ | ||
843 | struct inflate_state *state; | ||
844 | |||
845 | /* check parameters */ | ||
846 | if (strm == NULL || strm->state == NULL) return Z_STREAM_ERROR; | ||
847 | state = (struct inflate_state *)strm->state; | ||
848 | if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; | ||
849 | |||
850 | /* if first time, start search in bit buffer */ | ||
851 | if (state->mode != SYNC) { | ||
852 | state->mode = SYNC; | ||
853 | state->hold <<= state->bits & 7; | ||
854 | state->bits -= state->bits & 7; | ||
855 | len = 0; | ||
856 | while (state->bits >= 8) { | ||
857 | buf[len++] = (unsigned char)(state->hold); | ||
858 | state->hold >>= 8; | ||
859 | state->bits -= 8; | ||
860 | } | ||
861 | state->have = 0; | ||
862 | zlib_syncsearch(&(state->have), buf, len); | ||
863 | } | ||
864 | |||
865 | /* search available input */ | ||
866 | len = zlib_syncsearch(&(state->have), strm->next_in, strm->avail_in); | ||
867 | strm->avail_in -= len; | ||
868 | strm->next_in += len; | ||
869 | strm->total_in += len; | ||
870 | |||
871 | /* return no joy or set up to restart inflate() on a new block */ | ||
872 | if (state->have != 4) return Z_DATA_ERROR; | ||
873 | in = strm->total_in; out = strm->total_out; | ||
874 | zlib_inflateReset(strm); | ||
875 | strm->total_in = in; strm->total_out = out; | ||
876 | state->mode = TYPE; | ||
877 | return Z_OK; | ||
878 | } | ||
879 | #endif | ||
880 | |||
881 | /* | 749 | /* |
882 | * This subroutine adds the data at next_in/avail_in to the output history | 750 | * This subroutine adds the data at next_in/avail_in to the output history |
883 | * without performing any output. The output buffer must be "caught up"; | 751 | * without performing any output. The output buffer must be "caught up"; |