[PATCH 1/2] makedumpfile: Add description of elf dump file
Atsushi Kumagai
kumagai-atsushi at mxc.nes.nec.co.jp
Fri Nov 14 01:24:47 PST 2014
>Add description of elf dump file in IMPLEMENTATION.
>
>Signed-off-by: Zhou Wenjian <zhouwj-fnst at cn.fujitsu.com>
>---
Great! I'll merge these patches into v1.5.8.
Thanks,
Atsushi Kumagai
> IMPLEMENTATION | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 88 insertions(+), 0 deletions(-)
>
>diff --git a/IMPLEMENTATION b/IMPLEMENTATION
>index 2f4cfd6..0e5ad1f 100644
>--- a/IMPLEMENTATION
>+++ b/IMPLEMENTATION
>@@ -112,3 +112,91 @@
> unsigned long long page_flags; /* page flags */
> } page_desc_t;
>
>+
>+* The ELF format
>+ There are two different ELF format(ELF32, ELF64) for K-bit architectures (K=32,64).
>+ Since they almost have the same behaviour in this situation, the following will use
>+ ELF32 as a example.
>+
>+ - The file structure
>+
>+ +---------------------------------+
>+ | elf_header (struct elf32_hdr) |
>+ |---------------------------------+
>+ | PT_NOTE (struct elf32_phdr) |
>+ |---------------------------------+
>+ | PT_LOAD(1) (struct elf32_phdr) |
>+ | PT_LOAD(2) (struct elf32_phdr) |
>+ | : |
>+ | PT_LOAD(Z) (struct elf32_phdr) |
>+ |---------------------------------+
>+ | NOTE |
>+ |---------------------------------+
>+ | segment(1) |
>+ | segment(2) |
>+ | : |
>+ | segment(Z) |
>+ +---------------------------------+
>+
>+ - elf_header
>+ This header is almost the same as a normal elf_header. The difference is that the
>+ e_flags is used for indicating whether the dump file is complete or not.
>+ 0x0 : complete,
>+ 0x1 : incomplete
>+
>+ typedef struct elf32_hdr{
>+ unsigned char e_ident[EI_NIDENT];
>+ Elf32_Half e_type;
>+ Elf32_Half e_machine;
>+ Elf32_Word e_version;
>+ Elf32_Addr e_entry;
>+ Elf32_Off e_phoff;
>+ Elf32_Off e_shoff;
>+ Elf32_Word e_flags;
>+ Elf32_Half e_ehsize;
>+ Elf32_Half e_phentsize;
>+ Elf32_Half e_phnum;
>+ Elf32_Half e_shentsize;
>+ Elf32_Half e_shnum;
>+ Elf32_Half e_shstrndx;
>+ } Elf32_Ehdr;
>+
>+ - PT_NOTE and PT_LOAD
>+ PT_NOTE corresponds to NOTE and PT_LOAD to segment.
>+ They present the corresponding NOTE and segments information.
>+
>+
>+ typedef struct elf32_phdr{
>+ Elf32_Word p_type;
>+ Elf32_Off p_offset;
>+ Elf32_Addr p_vaddr;
>+ Elf32_Addr p_paddr;
>+ Elf32_Word p_filesz;
>+ Elf32_Word p_memsz;
>+ Elf32_Word p_flags;
>+ Elf32_Word p_align;
>+ } Elf32_Phdr;
>+
>+ - note
>+ The note structure
>+
>+ +------------------------------------+
>+ | note header 1 (struct elf32_note) |
>+ | note header 2 (struct elf32_note) |
>+ | : |
>+ | note header N (struct elf32_note) |
>+ |------------------------------------+
>+ | note data 1 |
>+ | note data 2 |
>+ | : |
>+ | note data N |
>+ +------------------------------------+
>+
>+ typedef struct elf32_note {
>+ Elf32_Word n_namesz; /* Name size */
>+ Elf32_Word n_descsz; /* Content size */
>+ Elf32_Word n_type; /* Content type */
>+ } Elf32_Nhdr;
>+
>+ - segments
>+ The data dumped are all stored in segments and notes.
>--
>1.7.1
>
>
>_______________________________________________
>kexec mailing list
>kexec at lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec
More information about the kexec
mailing list