1 // SPDX-License-Identifier: Zlib 1 // SPDX-License-Identifier: Zlib 2 #ifndef DFLTCC_INFLATE_H 2 #ifndef DFLTCC_INFLATE_H 3 #define DFLTCC_INFLATE_H 3 #define DFLTCC_INFLATE_H 4 4 5 #include "dfltcc.h" 5 #include "dfltcc.h" 6 6 7 /* External functions */ 7 /* External functions */ 8 void dfltcc_reset_inflate_state(z_streamp strm 8 void dfltcc_reset_inflate_state(z_streamp strm); 9 int dfltcc_can_inflate(z_streamp strm); 9 int dfltcc_can_inflate(z_streamp strm); 10 typedef enum { 10 typedef enum { 11 DFLTCC_INFLATE_CONTINUE, 11 DFLTCC_INFLATE_CONTINUE, 12 DFLTCC_INFLATE_BREAK, 12 DFLTCC_INFLATE_BREAK, 13 DFLTCC_INFLATE_SOFTWARE, 13 DFLTCC_INFLATE_SOFTWARE, 14 } dfltcc_inflate_action; 14 } dfltcc_inflate_action; 15 dfltcc_inflate_action dfltcc_inflate(z_streamp 15 dfltcc_inflate_action dfltcc_inflate(z_streamp strm, 16 int flush 16 int flush, int *ret); 17 #define INFLATE_RESET_HOOK(strm) \ 17 #define INFLATE_RESET_HOOK(strm) \ 18 dfltcc_reset_inflate_state((strm)) 18 dfltcc_reset_inflate_state((strm)) 19 19 20 #define INFLATE_TYPEDO_HOOK(strm, flush) \ 20 #define INFLATE_TYPEDO_HOOK(strm, flush) \ 21 if (dfltcc_can_inflate((strm))) { \ 21 if (dfltcc_can_inflate((strm))) { \ 22 dfltcc_inflate_action action; \ 22 dfltcc_inflate_action action; \ 23 \ 23 \ 24 RESTORE(); \ 24 RESTORE(); \ 25 action = dfltcc_inflate((strm), (flush 25 action = dfltcc_inflate((strm), (flush), &ret); \ 26 LOAD(); \ 26 LOAD(); \ 27 if (action == DFLTCC_INFLATE_CONTINUE) 27 if (action == DFLTCC_INFLATE_CONTINUE) \ 28 break; \ 28 break; \ 29 else if (action == DFLTCC_INFLATE_BREA 29 else if (action == DFLTCC_INFLATE_BREAK) \ 30 goto inf_leave; \ 30 goto inf_leave; \ 31 } 31 } 32 32 33 #define INFLATE_NEED_CHECKSUM(strm) (!dfltcc_c 33 #define INFLATE_NEED_CHECKSUM(strm) (!dfltcc_can_inflate((strm))) 34 34 35 #define INFLATE_NEED_UPDATEWINDOW(strm) (!dflt 35 #define INFLATE_NEED_UPDATEWINDOW(strm) (!dfltcc_can_inflate((strm))) 36 36 37 #endif /* DFLTCC_DEFLATE_H */ 37 #endif /* DFLTCC_DEFLATE_H */ 38 38
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.