linux/arch/powerpc/boot/xz_config.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   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
  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#define cpu_to_be32(x) swab32(x)
  24static inline u32 be32_to_cpup(const u32 *p)
  25{
  26        return swab32p((u32 *)p);
  27}
  28#else
  29#define get_le32(p) swab32p(p)
  30#define cpu_to_be32(x) (x)
  31static inline u32 be32_to_cpup(const u32 *p)
  32{
  33        return *p;
  34}
  35#endif
  36
  37static inline uint32_t get_unaligned_be32(const void *p)
  38{
  39        return be32_to_cpup(p);
  40}
  41
  42static inline void put_unaligned_be32(u32 val, void *p)
  43{
  44        *((u32 *)p) = cpu_to_be32(val);
  45}
  46
  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
  61