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