#ifndef XZ_PRIVATE_H
#define XZ_PRIVATE_H
#ifdef __KERNEL__
# include <linux/xz.h>
# include <linux/kernel.h>
# include <asm/unaligned.h>
# ifndef XZ_PREBOOT
# include <linux/slab.h>
# include <linux/vmalloc.h>
# include <linux/string.h>
# ifdef CONFIG_XZ_DEC_X86
#define XZ_DEC_X86
# endif
# ifdef CONFIG_XZ_DEC_POWERPC
#define XZ_DEC_POWERPC
# endif
# ifdef CONFIG_XZ_DEC_IA64
#define XZ_DEC_IA64
# endif
# ifdef CONFIG_XZ_DEC_ARM
#define XZ_DEC_ARM
# endif
# ifdef CONFIG_XZ_DEC_ARMTHUMB
#define XZ_DEC_ARMTHUMB
# endif
# ifdef CONFIG_XZ_DEC_SPARC
#define XZ_DEC_SPARC
# endif
# ifdef CONFIG_XZ_DEC_MICROLZMA
#define XZ_DEC_MICROLZMA
# endif
#define memeq(a, b, size) …
#define memzero(buf, size) …
# endif
#define get_le32(p) …
#else
# include "xz_config.h"
#endif
#if !defined(XZ_DEC_SINGLE) && !defined(XZ_DEC_PREALLOC) \
&& !defined(XZ_DEC_DYNALLOC)
#define XZ_DEC_SINGLE
#define XZ_DEC_PREALLOC
#define XZ_DEC_DYNALLOC
#endif
#ifdef XZ_DEC_SINGLE
#define DEC_IS_SINGLE(mode) …
#else
#define DEC_IS_SINGLE …
#endif
#ifdef XZ_DEC_PREALLOC
#define DEC_IS_PREALLOC(mode) …
#else
#define DEC_IS_PREALLOC …
#endif
#ifdef XZ_DEC_DYNALLOC
#define DEC_IS_DYNALLOC(mode) …
#else
#define DEC_IS_DYNALLOC …
#endif
#if !defined(XZ_DEC_SINGLE)
#define DEC_IS_MULTI …
#elif defined(XZ_DEC_PREALLOC) || defined(XZ_DEC_DYNALLOC)
#define DEC_IS_MULTI(mode) …
#else
#define DEC_IS_MULTI …
#endif
#ifndef XZ_DEC_BCJ
# if defined(XZ_DEC_X86) || defined(XZ_DEC_POWERPC) \
|| defined(XZ_DEC_IA64) || defined(XZ_DEC_ARM) \
|| defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \
|| defined(XZ_DEC_SPARC)
#define XZ_DEC_BCJ
# endif
#endif
#ifndef CRC32_POLY_LE
#define CRC32_POLY_LE …
#endif
XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode,
uint32_t dict_max);
XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s,
uint8_t props);
XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
struct xz_buf *b);
XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s);
#ifdef XZ_DEC_BCJ
XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool single_call);
XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id);
XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s,
struct xz_dec_lzma2 *lzma2,
struct xz_buf *b);
#define xz_dec_bcj_end(s) …
#endif
#endif