NOTE: all the ABIs listed in this file are deprecated and will be removed after 2028.

Here are the alternative ABIs:
+------------------------------------+-----------------------------------------+
| Deprecated                         | Alternative                             |
+------------------------------------+-----------------------------------------+
| /sys/kernel/kexec_loaded           | /sys/kernel/kexec/loaded                |
+------------------------------------+-----------------------------------------+
| /sys/kernel/kexec_crash_loaded     | /sys/kernel/kexec/crash_loaded          |
+------------------------------------+-----------------------------------------+
| /sys/kernel/kexec_crash_size       | /sys/kernel/kexec/crash_size            |
+------------------------------------+-----------------------------------------+
| /sys/kernel/crash_elfcorehdr_size  | /sys/kernel/kexec/crash_elfcorehdr_size |
+------------------------------------+-----------------------------------------+
| /sys/kernel/kexec_crash_cma_ranges | /sys/kernel/kexec/crash_cma_ranges      |
+------------------------------------+-----------------------------------------+


What:		/sys/kernel/kexec_loaded
Date:		Jun 2006
Contact:	kexec@lists.infradead.org
Description:	read only
		Indicates whether a new kernel image has been loaded
		into memory using the kexec system call. It shows 1 if
		a kexec image is present and ready to boot, or 0 if none
		is loaded.
User:		kexec tools, kdump service

What:		/sys/kernel/kexec_crash_loaded
Date:		Jun 2006
Contact:	kexec@lists.infradead.org
Description:	read only
		Indicates whether a crash (kdump) kernel is currently
		loaded into memory. It shows 1 if a crash kernel has been
		successfully loaded for panic handling, or 0 if no crash
		kernel is present.
User:		Kexec tools, Kdump service

What:		/sys/kernel/kexec_crash_size
Date:		Dec 2009
Contact:	kexec@lists.infradead.org
Description:	read/write
		Shows the amount of memory reserved for loading the crash
		(kdump) kernel. It reports the size, in bytes, of the
		crash kernel area defined by the crashkernel= parameter.
		This interface also allows reducing the crashkernel
		reservation by writing a smaller value, and the reclaimed
		space is added back to the system RAM.
User:		Kdump service

What:		/sys/kernel/crash_elfcorehdr_size
Date:		Aug 2023
Contact:	kexec@lists.infradead.org
Description:	read only
		Indicates the preferred size of the memory buffer for the
		ELF core header used by the crash (kdump) kernel. It defines
		how much space is needed to hold metadata about the crashed
		system, including CPU and memory information. This information
		is used by the user space utility kexec to support updating the
		in-kernel kdump image during hotplug operations.
User:		Kexec tools

What:		/sys/kernel/kexec_crash_cma_ranges
Date:		Nov 2025
Contact:	kexec@lists.infradead.org
Description:	read only
		Provides information about the memory ranges reserved from
		the Contiguous Memory Allocator (CMA) area that are allocated
		to the crash (kdump) kernel. It lists the start and end physical
		addresses of CMA regions assigned for crashkernel use.
User:		kdump service
