blob: 85881dd48022a03df5706a6f47b72a331b7e397d [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _S390_SECTIONS_H
#define _S390_SECTIONS_H
#define arch_is_kernel_initmem_freed arch_is_kernel_initmem_freed
#include <asm-generic/sections.h>
extern bool initmem_freed;
static inline int arch_is_kernel_initmem_freed(unsigned long addr)
if (!initmem_freed)
return 0;
return addr >= (unsigned long)__init_begin &&
addr < (unsigned long)__init_end;
* section contains variables "shared" between the decompressor and
* the decompressed kernel. The decompressor will store values in them, and
* copy over to the decompressed image before starting it.
* Each variable end up in its own intermediate section<var name>,
* those sections are later sorted by alignment + name and merged together into
* final section, which should be identical in the decompressor and
* the decompressed kernel (that is checked during the build).
#define __bootdata(var) __section("" #var) var
* is similar to, but it is not part of the
* .init section and thus will be preserved for later use in the decompressed
* kernel.
#define __bootdata_preserved(var) __section("" #var) var
extern unsigned long __samode31, __eamode31;
extern unsigned long __stext_amode31, __etext_amode31;