blob: e22e5b3770ddcc32b4ee37fecc63893b96522535 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Oliver O'Halloranc762c692016-09-22 16:54:34 +10002#ifndef __XZ_CONFIG_H__
3#define __XZ_CONFIG_H__
4
5/*
6 * most of this is copied from lib/xz/xz_private.h, we can't use their defines
7 * since the boot wrapper is not built in the same environment as the rest of
8 * the kernel.
9 */
10
11#include "types.h"
12#include "swab.h"
13
14static inline uint32_t swab32p(void *p)
15{
16 uint32_t *q = p;
17
18 return swab32(*q);
19}
20
21#ifdef __LITTLE_ENDIAN__
22#define get_le32(p) (*((uint32_t *) (p)))
23#else
24#define get_le32(p) swab32p(p)
25#endif
26
27#define memeq(a, b, size) (memcmp(a, b, size) == 0)
28#define memzero(buf, size) memset(buf, 0, size)
29
30/* prevent the inclusion of the xz-preboot MM headers */
31#define DECOMPR_MM_H
32#define memmove memmove
33#define XZ_EXTERN static
34
35/* xz.h needs to be included directly since we need enum xz_mode */
36#include "../../../include/linux/xz.h"
37
38#undef XZ_EXTERN
39
40#endif