Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/kernel/elfcorehdr.c
26243 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
#include <linux/kernel.h>
3
#include <linux/crash_dump.h>
4
#include <linux/init.h>
5
#include <linux/errno.h>
6
#include <linux/export.h>
7
8
/*
9
* stores the physical address of elf header of crash image
10
*
11
* Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
12
* is_kdump_kernel() to determine if we are booting after a panic. Hence put
13
* it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
14
*/
15
unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX;
16
EXPORT_SYMBOL_GPL(elfcorehdr_addr);
17
18
/*
19
* stores the size of elf header of crash image
20
*/
21
unsigned long long elfcorehdr_size;
22
23
/*
24
* elfcorehdr= specifies the location of elf core header stored by the crashed
25
* kernel. This option will be passed by kexec loader to the capture kernel.
26
*
27
* Syntax: elfcorehdr=[size[KMG]@]offset[KMG]
28
*/
29
static int __init setup_elfcorehdr(char *arg)
30
{
31
char *end;
32
if (!arg)
33
return -EINVAL;
34
elfcorehdr_addr = memparse(arg, &end);
35
if (*end == '@') {
36
elfcorehdr_size = elfcorehdr_addr;
37
elfcorehdr_addr = memparse(end + 1, &end);
38
}
39
return end > arg ? 0 : -EINVAL;
40
}
41
early_param("elfcorehdr", setup_elfcorehdr);
42
43