| 12345678910111213141516171819202122232425262728293031323334353637 |
- // SPDX-License-Identifier: Zlib
- #ifndef DFLTCC_INFLATE_H
- #define DFLTCC_INFLATE_H
- #include "dfltcc.h"
- /* External functions */
- void dfltcc_reset_inflate_state(z_streamp strm);
- int dfltcc_can_inflate(z_streamp strm);
- typedef enum {
- DFLTCC_INFLATE_CONTINUE,
- DFLTCC_INFLATE_BREAK,
- DFLTCC_INFLATE_SOFTWARE,
- } dfltcc_inflate_action;
- dfltcc_inflate_action dfltcc_inflate(z_streamp strm,
- int flush, int *ret);
- #define INFLATE_RESET_HOOK(strm) \
- dfltcc_reset_inflate_state((strm))
- #define INFLATE_TYPEDO_HOOK(strm, flush) \
- if (dfltcc_can_inflate((strm))) { \
- dfltcc_inflate_action action; \
- \
- RESTORE(); \
- action = dfltcc_inflate((strm), (flush), &ret); \
- LOAD(); \
- if (action == DFLTCC_INFLATE_CONTINUE) \
- break; \
- else if (action == DFLTCC_INFLATE_BREAK) \
- goto inf_leave; \
- }
- #define INFLATE_NEED_CHECKSUM(strm) (!dfltcc_can_inflate((strm)))
- #define INFLATE_NEED_UPDATEWINDOW(strm) (!dfltcc_can_inflate((strm)))
- #endif /* DFLTCC_DEFLATE_H */
|