Don't check target is running in remote_target::mourn_inferior
[deliverable/binutils-gdb.git] / elfcpp / elfcpp_internal.h
index 7a2b5d4836bd8420fa83e21cd82b6d75a12058ee..36a6d6205f711db68c419f897fe586d185c2f1cf 100644 (file)
@@ -1,10 +1,37 @@
 // elfcpp_internal.h -- internals for elfcpp   -*- C++ -*-
 
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
+// Written by Ian Lance Taylor <iant@google.com>.
+
+// This file is part of elfcpp.
+   
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public License
+// as published by the Free Software Foundation; either version 2, or
+// (at your option) any later version.
+
+// In addition to the permissions in the GNU Library General Public
+// License, the Free Software Foundation gives you unlimited
+// permission to link the compiled version of this file into
+// combinations with other programs, and to distribute those
+// combinations without any restriction coming from the use of this
+// file.  (The Library Public License restrictions do apply in other
+// respects; for example, they cover modification of the file, and
+/// distribution when not linked into a combined executable.)
+
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Library General Public License for more details.
+
+// You should have received a copy of the GNU Library General Public
+// License along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+// 02110-1301, USA.
+
 // This is included by elfcpp.h, the external interface, but holds
 // information which we want to keep private.
 
-#include "elfcpp_config.h"
-
 #ifndef ELFCPP_INTERNAL_H
 #define ELFCPP_INTERNAL_H
 
@@ -52,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.
@@ -131,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.026058 seconds and 4 git commands to generate.