1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef LINUX_CRASH_RESERVE_H
3#define LINUX_CRASH_RESERVE_H
4
5#include <linux/linkage.h>
6#include <linux/elfcore.h>
7#include <linux/elf.h>
8#ifdef CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
9#include <asm/crash_reserve.h>
10#endif
11
12/* Location of a reserved region to hold the crash kernel.
13 */
14extern struct resource crashk_res;
15extern struct resource crashk_low_res;
16
17int __init parse_crashkernel(char *cmdline, unsigned long long system_ram,
18 unsigned long long *crash_size, unsigned long long *crash_base,
19 unsigned long long *low_size, bool *high);
20
21#ifdef CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
22#ifndef DEFAULT_CRASH_KERNEL_LOW_SIZE
23#define DEFAULT_CRASH_KERNEL_LOW_SIZE (128UL << 20)
24#endif
25#ifndef CRASH_ALIGN
26#define CRASH_ALIGN SZ_2M
27#endif
28#ifndef CRASH_ADDR_LOW_MAX
29#define CRASH_ADDR_LOW_MAX SZ_4G
30#endif
31#ifndef CRASH_ADDR_HIGH_MAX
32#define CRASH_ADDR_HIGH_MAX memblock_end_of_DRAM()
33#endif
34
35void __init reserve_crashkernel_generic(char *cmdline,
36 unsigned long long crash_size,
37 unsigned long long crash_base,
38 unsigned long long crash_low_size,
39 bool high);
40#else
41static inline void __init reserve_crashkernel_generic(char *cmdline,
42 unsigned long long crash_size,
43 unsigned long long crash_base,
44 unsigned long long crash_low_size,
45 bool high)
46{}
47#endif
48#endif /* LINUX_CRASH_RESERVE_H */
49

source code of linux/include/linux/crash_reserve.h