brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 98d4bc4 Raw
38 lines · c
1// SPDX-License-Identifier: Zlib2#ifndef DFLTCC_INFLATE_H3#define DFLTCC_INFLATE_H4 5#include "dfltcc.h"6 7/* External functions */8void dfltcc_reset_inflate_state(z_streamp strm);9int dfltcc_can_inflate(z_streamp strm);10typedef enum {11    DFLTCC_INFLATE_CONTINUE,12    DFLTCC_INFLATE_BREAK,13    DFLTCC_INFLATE_SOFTWARE,14} dfltcc_inflate_action;15dfltcc_inflate_action dfltcc_inflate(z_streamp strm,16                                     int flush, int *ret);17#define INFLATE_RESET_HOOK(strm) \18    dfltcc_reset_inflate_state((strm))19 20#define INFLATE_TYPEDO_HOOK(strm, flush) \21    if (dfltcc_can_inflate((strm))) { \22        dfltcc_inflate_action action; \23\24        RESTORE(); \25        action = dfltcc_inflate((strm), (flush), &ret); \26        LOAD(); \27        if (action == DFLTCC_INFLATE_CONTINUE) \28            break; \29        else if (action == DFLTCC_INFLATE_BREAK) \30            goto inf_leave; \31    }32 33#define INFLATE_NEED_CHECKSUM(strm) (!dfltcc_can_inflate((strm)))34 35#define INFLATE_NEED_UPDATEWINDOW(strm) (!dfltcc_can_inflate((strm)))36 37#endif /* DFLTCC_DEFLATE_H */38