Merge remote-tracking branch 'origin/master' into amd-common
[deliverable/binutils-gdb.git] / elfcpp / elfcpp_internal.h
index 357ccc1937c9fa981c0807a4c46cfabb7437cbf8..36a6d6205f711db68c419f897fe586d185c2f1cf 100644 (file)
@@ -1,6 +1,6 @@
 // elfcpp_internal.h -- internals for elfcpp   -*- C++ -*-
 
-// Copyright (C) 2006-2014 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of elfcpp.
@@ -79,6 +79,28 @@ struct Shdr_data
   typename Elf_types<size>::Elf_WXword sh_entsize;
 };
 
+// An ELF compression header.
+
+template<int size>
+struct Chdr_data;
+
+template<>
+struct Chdr_data<32>
+{
+  Elf_Word ch_type;
+  Elf_Word ch_size;
+  Elf_Word ch_addralign;
+};
+
+template<>
+struct Chdr_data<64>
+{
+  Elf_Word ch_type;
+  Elf_Word ch_reserved;
+  Elf_Xword ch_size;
+  Elf_Xword ch_addralign;
+};
+
 // An ELF segment header.  We use template specialization for the
 // 32-bit and 64-bit versions because the fields are in a different
 // order.
@@ -158,6 +180,29 @@ struct Rela_data
   typename Elf_types<size>::Elf_Swxword r_addend;
 };
 
+// MIPS-64 has a non-standard layout for relocations.
+
+struct Mips64_rel_data
+{
+  Elf_types<64>::Elf_Addr r_offset;
+  Elf_Word r_sym;
+  unsigned char r_ssym;
+  unsigned char r_type3;
+  unsigned char r_type2;
+  unsigned char r_type;
+};
+
+struct Mips64_rela_data
+{
+  Elf_types<64>::Elf_Addr r_offset;
+  Elf_Word r_sym;
+  unsigned char r_ssym;
+  unsigned char r_type3;
+  unsigned char r_type2;
+  unsigned char r_type;
+  Elf_types<64>::Elf_Swxword r_addend;
+};
+
 // An entry in the ELF SHT_DYNAMIC section aka PT_DYNAMIC segment.
 
 template<int size>
This page took 0.024064 seconds and 4 git commands to generate.