From 39081c14cf1a644187199dcda485025ba01bb8e2 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 25 Sep 2006 21:29:06 +0000 Subject: Add program segments. --- elfcpp/elfcpp_internal.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'elfcpp/elfcpp_internal.h') diff --git a/elfcpp/elfcpp_internal.h b/elfcpp/elfcpp_internal.h index f4dd8bd5195..696343a805d 100644 --- a/elfcpp/elfcpp_internal.h +++ b/elfcpp/elfcpp_internal.h @@ -202,6 +202,39 @@ struct Shdr_data typename Elf_types::Elf_WXword sh_entsize; }; +// An ELF segment header. We use template specialization for the +// 32-bit and 64-bit versions because the fields are in a different +// order. + +template +struct Phdr_data; + +template<> +struct Phdr_data<32> +{ + Elf_Word p_type; + Elf_types<32>::Elf_Off p_offset; + Elf_types<32>::Elf_Addr p_vaddr; + Elf_types<32>::Elf_Addr p_paddr; + Elf_Word p_filesz; + Elf_Word p_memsz; + Elf_Word p_flags; + Elf_Word p_align; +}; + +template<> +struct Phdr_data<64> +{ + Elf_Word p_type; + Elf_Word p_flags; + Elf_types<64>::Elf_Off p_offset; + Elf_types<64>::Elf_Addr p_vaddr; + Elf_types<64>::Elf_Addr p_paddr; + Elf_Xword p_filesz; + Elf_Xword p_memsz; + Elf_Xword p_align; +}; + // An ELF symbol table entry. We use template specialization for the // 32-bit and 64-bit versions because the fields are in a different // order. -- cgit v1.2.1