mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zdump: df_elf: refactor check_elf_hdr
The function will be reused by upcoming patches. Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
1780efae07
commit
6176509076
@@ -52,6 +52,15 @@ bool ehdr_is_s390x(const Elf64_Ehdr *ehdr)
|
||||
ehdr->e_ident[EI_CLASS] == ELFCLASS64;
|
||||
}
|
||||
|
||||
int ehdr_check_s390x(const Elf64_Ehdr *ehdr)
|
||||
{
|
||||
if (!ehdr_is_elf_object(ehdr) || !ehdr_is_vmcore(ehdr))
|
||||
return -ENODEV;
|
||||
if (!ehdr_is_s390x(ehdr))
|
||||
ERR_EXIT("Only s390x (64 bit) core dump files are supported");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Elf64_Ehdr *read_elf_hdr(const struct zg_fh *fh)
|
||||
{
|
||||
Elf64_Ehdr *ehdr;
|
||||
|
||||
@@ -147,6 +147,11 @@ bool ehdr_is_vmcore(const Elf64_Ehdr *ehdr);
|
||||
*/
|
||||
bool ehdr_is_s390x(const Elf64_Ehdr *ehdr);
|
||||
|
||||
/*
|
||||
* Verify that given header is a s390x ELF header
|
||||
*/
|
||||
int ehdr_check_s390x(const Elf64_Ehdr *ehdr);
|
||||
|
||||
/*
|
||||
* Read ELF header at current offset
|
||||
*/
|
||||
|
||||
@@ -251,15 +251,6 @@ static int pt_notes_add(const Elf64_Phdr *phdr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int check_elf_hdr(const Elf64_Ehdr *ehdr)
|
||||
{
|
||||
if (!ehdr_is_elf_object(ehdr) || !ehdr_is_vmcore(ehdr))
|
||||
return -ENODEV;
|
||||
if (!ehdr_is_s390x(ehdr))
|
||||
ERR_EXIT("Only s390x (64 bit) core dump files are supported");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize ELF input dump format
|
||||
*/
|
||||
@@ -276,7 +267,7 @@ static int dfi_elf_init(void)
|
||||
if (!ehdr)
|
||||
return -ENODEV;
|
||||
|
||||
if (check_elf_hdr(ehdr) < 0)
|
||||
if (ehdr_check_s390x(ehdr) < 0)
|
||||
goto free_ehdr;
|
||||
|
||||
df_elf_ensure_s390x();
|
||||
|
||||
Reference in New Issue
Block a user