1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- typedef __SIZE_TYPE__ size;
- #define NO_ERROR 0
- #define COMP_UNKNOWN 1
- #define CODE_NOT_FOUND 2
- #define TOO_MANY_BITS 3
- struct huffman_set {
- int bits;
- int num_symbols;
- int *lengths;
- int *symbols;
- int *count;
- int *first;
- int *pos;
- };
- struct bitstream {
- unsigned char *data;
- unsigned char bit;
- void *(*memcpy)(void *, const void *, size);
- unsigned long decoded;
- int error;
- int distance_count[16];
- int distance_first[16];
- int distance_pos[16];
- int distance_lengths[32];
- int distance_symbols[32];
- int code_count[8];
- int code_first[8];
- int code_pos[8];
- int code_lengths[19];
- int code_symbols[19];
- int length_count[16];
- int length_first[16];
- int length_pos[16];
- int length_lengths[288];
- int length_symbols[288];
- struct huffman_set codes;
- struct huffman_set lengths;
- struct huffman_set distance;
- };
- #define NO_COMP 0
- #define FIXED_COMP 1
- #define DYNAMIC_COMP 2
- long decompress_block(unsigned char *dest, unsigned char *source,
- void *(*inflate_memcpy)(void *dest, const void *src, size n));
|