forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
// SPDX-License-Identifier: GPL-2.0-only |
|
#include <linux/kernel.h> |
|
#include <linux/crash_dump.h> |
|
#include <linux/init.h> |
|
#include <linux/errno.h> |
|
#include <linux/export.h> |
|
|
|
/* |
|
* stores the physical address of elf header of crash image |
|
* |
|
* Note: elfcorehdr_addr is not just limited to vmcore. It is also used by |
|
* is_kdump_kernel() to determine if we are booting after a panic. Hence put |
|
* it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE. |
|
*/ |
|
unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; |
|
EXPORT_SYMBOL_GPL(elfcorehdr_addr); |
|
|
|
/* |
|
* stores the size of elf header of crash image |
|
*/ |
|
unsigned long long elfcorehdr_size; |
|
|
|
/* |
|
* elfcorehdr= specifies the location of elf core header stored by the crashed |
|
* kernel. This option will be passed by kexec loader to the capture kernel. |
|
* |
|
* Syntax: elfcorehdr=[size[KMG]@]offset[KMG] |
|
*/ |
|
static int __init setup_elfcorehdr(char *arg) |
|
{ |
|
char *end; |
|
if (!arg) |
|
return -EINVAL; |
|
elfcorehdr_addr = memparse(arg, &end); |
|
if (*end == '@') { |
|
elfcorehdr_size = elfcorehdr_addr; |
|
elfcorehdr_addr = memparse(end + 1, &end); |
|
} |
|
return end > arg ? 0 : -EINVAL; |
|
} |
|
early_param("elfcorehdr", setup_elfcorehdr);
|
|
|