xref: /openbmc/linux/lib/zlib_inflate/infutil.h (revision 12619610)
11da177e4SLinus Torvalds /* infutil.h -- types and macros common to blocks and codes
21da177e4SLinus Torvalds  * Copyright (C) 1995-1998 Mark Adler
31da177e4SLinus Torvalds  * For conditions of distribution and use, see copyright notice in zlib.h
41da177e4SLinus Torvalds  */
51da177e4SLinus Torvalds 
61da177e4SLinus Torvalds /* WARNING: this file should *not* be used by applications. It is
71da177e4SLinus Torvalds    part of the implementation of the compression library and is
81da177e4SLinus Torvalds    subject to change. Applications should only use zlib.h.
91da177e4SLinus Torvalds  */
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds #ifndef _INFUTIL_H
121da177e4SLinus Torvalds #define _INFUTIL_H
131da177e4SLinus Torvalds 
144f3865fbSRichard Purdie #include <linux/zlib.h>
1512619610SMikhail Zaslonko #ifdef CONFIG_ZLIB_DFLTCC
1612619610SMikhail Zaslonko #include "../zlib_dfltcc/dfltcc.h"
1712619610SMikhail Zaslonko #include <asm/page.h>
1812619610SMikhail Zaslonko #endif
191da177e4SLinus Torvalds 
201da177e4SLinus Torvalds /* memory allocation for inflation */
211da177e4SLinus Torvalds 
221da177e4SLinus Torvalds struct inflate_workspace {
234f3865fbSRichard Purdie 	struct inflate_state inflate_state;
2412619610SMikhail Zaslonko #ifdef CONFIG_ZLIB_DFLTCC
2512619610SMikhail Zaslonko 	struct dfltcc_state dfltcc_state;
2612619610SMikhail Zaslonko 	unsigned char working_window[(1 << MAX_WBITS) + PAGE_SIZE];
2712619610SMikhail Zaslonko #else
2812619610SMikhail Zaslonko 	unsigned char working_window[(1 << MAX_WBITS)];
2912619610SMikhail Zaslonko #endif
301da177e4SLinus Torvalds };
311da177e4SLinus Torvalds 
3212619610SMikhail Zaslonko #ifdef CONFIG_ZLIB_DFLTCC
3312619610SMikhail Zaslonko /* dfltcc_state must be doubleword aligned for DFLTCC call */
3412619610SMikhail Zaslonko static_assert(offsetof(struct inflate_workspace, dfltcc_state) % 8 == 0);
3512619610SMikhail Zaslonko #endif
3612619610SMikhail Zaslonko 
3712619610SMikhail Zaslonko #define WS(strm) ((struct inflate_workspace *)(strm->workspace))
381da177e4SLinus Torvalds 
391da177e4SLinus Torvalds #endif
40