1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * uzlib - tiny deflate/inflate library (deflate, gzip, zlib)
- *
- * Copyright (c) 2003 by Joergen Ibsen / Jibz
- * All Rights Reserved
- * http://www.ibsensoftware.com/
- *
- * Copyright (c) 2014-2016 by Paul Sokolovsky
- */
- #ifndef UZLIB_INFLATE_H
- #define UZLIB_INFLATE_H
- #include <setjmp.h>
- #include <stdint.h>
- #include <stdlib.h>
- #define uz_malloc malloc
- #define uz_free free
- #if defined(__XTENSA__)
- #include "mem.h"
- #define UZLIB_THROW(v) longjmp(unwindAddr, (v))
- #define UZLIB_SETJMP setjmp
- #else /* Host */
- extern int dbg_break(void);
- #if defined(_MSC_VER) || defined(__MINGW32__) //msvc requires old name for longjmp
- #define UZLIB_THROW(v) {dbg_break();longjmp(unwindAddr, (v));}
- #define UZLIB_SETJMP(n) setjmp(n)
- #else
- #define UZLIB_THROW(v) {dbg_break();_longjmp(unwindAddr, (v));}
- #define UZLIB_SETJMP(n) _setjmp(n)
- #endif
- #endif /* defined(__XTENSA__) */
- extern jmp_buf unwindAddr;
- /* ok status, more data produced */
- #define UZLIB_OK 0
- /* end of compressed stream reached */
- #define UZLIB_DONE 1
- #define UZLIB_DATA_ERROR (-3)
- #define UZLIB_CHKSUM_ERROR (-4)
- #define UZLIB_DICT_ERROR (-5)
- #define UZLIB_MEMORY_ERROR (-6)
- /* checksum types */
- #define UZLIB_CHKSUM_NONE 0
- #define UZLIB_CHKSUM_ADLER 1
- #define UZLIB_CHKSUM_CRC 2
- /* Gzip header codes */
- #define UZLIB_FTEXT 1
- #define UZLIB_FHCRC 2
- #define UZLIB_FEXTRA 4
- #define UZLIB_FNAME 8
- #define UZLIB_FCOMMENT 16
- /* Compression API */
- typedef struct uzlib_data UZLIB_DATA;
- int uzlib_inflate (uint8_t (*)(void), void (*)(uint8_t),
- uint8_t (*)(uint32_t), uint32_t len, uint32_t *crc, void **state);
- int uzlib_compress (uint8_t **dest, uint32_t *destLen,
- const uint8_t *src, uint32_t srcLen);
- /* Checksum API */
- /* crc is previous value for incremental computation, 0xffffffff initially */
- uint32_t uzlib_crc32(const void *data, uint32_t length, uint32_t crc);
- #endif /* UZLIB_INFLATE_H */
|