| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __XZ_CONFIG_H__ | |
| #define __XZ_CONFIG_H__ | |
| /* | |
| * most of this is copied from lib/xz/xz_private.h, we can't use their defines | |
| * since the boot wrapper is not built in the same environment as the rest of | |
| * the kernel. | |
| */ | |
| #include "types.h" | |
| #include "swab.h" | |
| static inline uint32_t swab32p(void *p) | |
| { | |
| uint32_t *q = p; | |
| return swab32(*q); | |
| } | |
| #ifdef __LITTLE_ENDIAN__ | |
| #define get_le32(p) (*((uint32_t *) (p))) | |
| #else | |
| #define get_le32(p) swab32p(p) | |
| #endif | |
| #define memeq(a, b, size) (memcmp(a, b, size) == 0) | |
| #define memzero(buf, size) memset(buf, 0, size) | |
| /* prevent the inclusion of the xz-preboot MM headers */ | |
| #define DECOMPR_MM_H | |
| #define memmove memmove | |
| #define XZ_EXTERN static | |
| /* xz.h needs to be included directly since we need enum xz_mode */ | |
| #include "../../../include/linux/xz.h" | |
| #undef XZ_EXTERN | |
| #endif |