mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zdump: loads_init: refactor the code
Use `mem_chunk->size` instead of recalculate it. In addition, assign `p_vaddr` to `p_paddr` to make clear that they must be equal and rename the parameter `load_offset` to `elf_offset` to make clear that the offset in the ELF vmcore file is meant. Finally rename `loads_init` to `load_phdrs_init`. Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
ee89b850fe
commit
52118a8d02
@@ -63,19 +63,19 @@ static void *ehdr_init(Elf64_Ehdr *ehdr)
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize ELF loads
|
||||
* Initialize ELF loads program headers
|
||||
*/
|
||||
static u64 loads_init(Elf64_Phdr *phdr, u64 loads_offset)
|
||||
static u64 load_phdrs_init(Elf64_Phdr *phdr, u64 elf_offset)
|
||||
{
|
||||
struct dfi_mem_chunk *mem_chunk;
|
||||
u64 mem_size = 0;
|
||||
|
||||
dfi_mem_chunk_iterate(mem_chunk) {
|
||||
phdr->p_type = PT_LOAD;
|
||||
phdr->p_offset = loads_offset;
|
||||
phdr->p_offset = elf_offset;
|
||||
phdr->p_vaddr = mem_chunk->start;
|
||||
phdr->p_paddr = mem_chunk->start;
|
||||
phdr->p_memsz = mem_chunk->end - mem_chunk->start + 1;
|
||||
phdr->p_paddr = phdr->p_vaddr;
|
||||
phdr->p_memsz = mem_chunk->size;
|
||||
if (mem_chunk->read_fn == dfi_mem_chunk_read_zero)
|
||||
/* Zero memory chunk */
|
||||
phdr->p_filesz = 0;
|
||||
@@ -83,7 +83,7 @@ static u64 loads_init(Elf64_Phdr *phdr, u64 loads_offset)
|
||||
phdr->p_filesz = phdr->p_memsz;
|
||||
phdr->p_flags = PF_R | PF_W | PF_X;
|
||||
phdr->p_align = PAGE_SIZE;
|
||||
loads_offset += phdr->p_filesz;
|
||||
elf_offset += phdr->p_filesz;
|
||||
mem_size += phdr->p_memsz;
|
||||
phdr++;
|
||||
}
|
||||
@@ -332,7 +332,7 @@ static void dfo_elf_init(void)
|
||||
ptr = notes_init(phdr_notes, ptr, hdr_off);
|
||||
/* Init loads */
|
||||
hdr_off = PTR_DIFF(ptr, l.hdr);
|
||||
loads_init(phdr_loads, hdr_off);
|
||||
load_phdrs_init(phdr_loads, hdr_off);
|
||||
l.hdr_size = hdr_off;
|
||||
if (l.hdr_size > alloc_size)
|
||||
ABORT("hdr_size=%u alloc_size=%u", l.hdr_size, alloc_size);
|
||||
|
||||
Reference in New Issue
Block a user