.. | .. |
---|
12 | 12 | #define _INFUTIL_H |
---|
13 | 13 | |
---|
14 | 14 | #include <linux/zlib.h> |
---|
| 15 | +#ifdef CONFIG_ZLIB_DFLTCC |
---|
| 16 | +#include "../zlib_dfltcc/dfltcc.h" |
---|
| 17 | +#include <asm/page.h> |
---|
| 18 | +#endif |
---|
15 | 19 | |
---|
16 | 20 | /* memory allocation for inflation */ |
---|
17 | 21 | |
---|
18 | 22 | struct inflate_workspace { |
---|
19 | 23 | struct inflate_state inflate_state; |
---|
20 | | - unsigned char working_window[1 << MAX_WBITS]; |
---|
| 24 | +#ifdef CONFIG_ZLIB_DFLTCC |
---|
| 25 | + struct dfltcc_state dfltcc_state; |
---|
| 26 | + unsigned char working_window[(1 << MAX_WBITS) + PAGE_SIZE]; |
---|
| 27 | +#else |
---|
| 28 | + unsigned char working_window[(1 << MAX_WBITS)]; |
---|
| 29 | +#endif |
---|
21 | 30 | }; |
---|
22 | 31 | |
---|
23 | | -#define WS(z) ((struct inflate_workspace *)(z->workspace)) |
---|
| 32 | +#ifdef CONFIG_ZLIB_DFLTCC |
---|
| 33 | +/* dfltcc_state must be doubleword aligned for DFLTCC call */ |
---|
| 34 | +static_assert(offsetof(struct inflate_workspace, dfltcc_state) % 8 == 0); |
---|
| 35 | +#endif |
---|
| 36 | + |
---|
| 37 | +#define WS(strm) ((struct inflate_workspace *)(strm->workspace)) |
---|
24 | 38 | |
---|
25 | 39 | #endif |
---|