Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
c762c69e OH |
2 | #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 | ||
14 | static 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))) | |
9e005b76 MY |
23 | #define cpu_to_be32(x) swab32(x) |
24 | static inline u32 be32_to_cpup(const u32 *p) | |
25 | { | |
26 | return swab32p((u32 *)p); | |
27 | } | |
c762c69e OH |
28 | #else |
29 | #define get_le32(p) swab32p(p) | |
9e005b76 MY |
30 | #define cpu_to_be32(x) (x) |
31 | static inline u32 be32_to_cpup(const u32 *p) | |
32 | { | |
33 | return *p; | |
34 | } | |
c762c69e OH |
35 | #endif |
36 | ||
9e005b76 MY |
37 | static inline uint32_t get_unaligned_be32(const void *p) |
38 | { | |
39 | return be32_to_cpup(p); | |
40 | } | |
41 | ||
42 | static inline void put_unaligned_be32(u32 val, void *p) | |
43 | { | |
44 | *((u32 *)p) = cpu_to_be32(val); | |
45 | } | |
46 | ||
c762c69e OH |
47 | #define memeq(a, b, size) (memcmp(a, b, size) == 0) |
48 | #define memzero(buf, size) memset(buf, 0, size) | |
49 | ||
50 | /* prevent the inclusion of the xz-preboot MM headers */ | |
51 | #define DECOMPR_MM_H | |
52 | #define memmove memmove | |
53 | #define XZ_EXTERN static | |
54 | ||
55 | /* xz.h needs to be included directly since we need enum xz_mode */ | |
56 | #include "../../../include/linux/xz.h" | |
57 | ||
58 | #undef XZ_EXTERN | |
59 | ||
60 | #endif |