xref: /linux-6.15/include/linux/crash_core.h (revision 443cbaf9)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LINUX_CRASH_CORE_H
3 #define LINUX_CRASH_CORE_H
4 
5 #include <linux/linkage.h>
6 #include <linux/elfcore.h>
7 #include <linux/elf.h>
8 
9 /* Alignment required for elf header segment */
10 #define ELF_CORE_HEADER_ALIGN   4096
11 
12 struct crash_mem {
13 	unsigned int max_nr_ranges;
14 	unsigned int nr_ranges;
15 	struct range ranges[] __counted_by(max_nr_ranges);
16 };
17 
18 extern int crash_exclude_mem_range(struct crash_mem *mem,
19 				   unsigned long long mstart,
20 				   unsigned long long mend);
21 extern int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map,
22 				       void **addr, unsigned long *sz);
23 
24 struct kimage;
25 struct kexec_segment;
26 
27 #define KEXEC_CRASH_HP_NONE			0
28 #define KEXEC_CRASH_HP_ADD_CPU			1
29 #define KEXEC_CRASH_HP_REMOVE_CPU		2
30 #define KEXEC_CRASH_HP_ADD_MEMORY		3
31 #define KEXEC_CRASH_HP_REMOVE_MEMORY		4
32 #define KEXEC_CRASH_HP_INVALID_CPU		-1U
33 
34 #endif /* LINUX_CRASH_CORE_H */
35