Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / lib / zlib_dfltcc / dfltcc_inflate.h
blob98d4bc42e5267864ee17c42478db3c812b425770
1 // SPDX-License-Identifier: Zlib
2 #ifndef DFLTCC_INFLATE_H
3 #define DFLTCC_INFLATE_H
5 #include "dfltcc.h"
7 /* External functions */
8 void dfltcc_reset_inflate_state(z_streamp strm);
9 int dfltcc_can_inflate(z_streamp strm);
10 typedef enum {
11 DFLTCC_INFLATE_CONTINUE,
12 DFLTCC_INFLATE_BREAK,
13 DFLTCC_INFLATE_SOFTWARE,
14 } dfltcc_inflate_action;
15 dfltcc_inflate_action dfltcc_inflate(z_streamp strm,
16 int flush, int *ret);
17 #define INFLATE_RESET_HOOK(strm) \
18 dfltcc_reset_inflate_state((strm))
20 #define INFLATE_TYPEDO_HOOK(strm, flush) \
21 if (dfltcc_can_inflate((strm))) { \
22 dfltcc_inflate_action action; \
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; \
33 #define INFLATE_NEED_CHECKSUM(strm) (!dfltcc_can_inflate((strm)))
35 #define INFLATE_NEED_UPDATEWINDOW(strm) (!dfltcc_can_inflate((strm)))
37 #endif /* DFLTCC_DEFLATE_H */