1 /* infutil.h -- types and macros common to blocks and codes 2 * Copyright (C) 1995-1998 Mark Adler 3 * For conditions of distribution and use, see copyright notice in zlib.h 4 */ 5 6 /* WARNING: this file should *not* be used by applications. It is 7 part of the implementation of the compression library and is 8 subject to change. Applications should only use zlib.h. 9 */ 10 11 #ifndef _INFUTIL_H 12 #define _INFUTIL_H 13 14 #include <linux/zlib.h> 15 #ifdef CONFIG_ZLIB_DFLTCC 16 #include "../zlib_dfltcc/dfltcc.h" 17 #include <asm/page.h> 18 #endif 19 20 /* memory allocation for inflation */ 21 22 struct inflate_workspace { 23 struct inflate_state inflate_state; 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 30 }; 31 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)) 38 39 #endif 40