Add search of libgcc.a to x86 and aarch64 (#731)
[dyninst.git] / dyninstAPI / src / ELF_Section.h
1 /*
2  * See the dyninst/COPYRIGHT file for copyright information.
3  * 
4  * We provide the Paradyn Tools (below described as "Paradyn")
5  * on an AS IS basis, and do not warrant its validity or performance.
6  * We reserve the right to update, modify, or discontinue this
7  * software at any time.  We shall have no obligation to supply such
8  * updates or modifications or any other form of support to you.
9  * 
10  * By your use of Paradyn, you understand and agree that we (or any
11  * other person or entity with proprietary rights in Paradyn) are
12  * under no obligation to provide either maintenance services,
13  * update services, notices of latent defects, or correction of
14  * defects for Paradyn.
15  * 
16  * This library is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU Lesser General Public
18  * License as published by the Free Software Foundation; either
19  * version 2.1 of the License, or (at your option) any later version.
20  * 
21  * This library is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24  * Lesser General Public License for more details.
25  * 
26  * You should have received a copy of the GNU Lesser General Public
27  * License along with this library; if not, write to the Free Software
28  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29  */
30
31 /* $Id: ELF_Section.h,v 1.6 2005/02/24 10:15:39 rchen Exp $ */
32
33 /* ccw 21 nov 2001 */
34
35 #if defined(i386_unknown_linux2_0) \
36  || defined(x86_64_unknown_linux2_4) /* Blind duplication - Ray */
37
38 #ifndef ELF_Section__
39 #define ELF_Section__
40 typedef struct {
41         unsigned int vaddr;
42         void *data;
43         unsigned int dataSize;
44         Elf32_Shdr *shdr;
45         char *name;
46         int nameIndx;
47         unsigned int align;
48         unsigned int flags;
49         unsigned int type;
50         bool loadable;
51 } ELF_Section;
52 //make this a class w/desctuctor
53
54
55 typedef struct {
56       Elf32_Sword d_tag;
57       union {
58           Elf32_Sword d_val;
59           Elf32_Addr d_ptr;
60       } d_un;
61   } __Elf32_Dyn;
62
63
64 #define DT_NULL   0
65 #define DT_NEEDED 1
66 #define DT_STRTAB 5
67 #define DT_PLTREL 20
68 #define DT_PLTGOT 3
69 #define DT_HASH 4
70 #define DT_SYMTAB 6
71 #define DT_RELA 7
72 #define DT_INIT 12
73 #define DT_FINI 13
74 #define DT_REL 17
75 #define DT_VERDEF 0x6ffffffc
76 #define DT_VERDEFNUM 0x6ffffffd
77 #define DT_VERNEED 0x6ffffffe
78 #define DT_VERNEEDNUM 0x6fffffff
79 #define DT_JMPREL 23
80 #define DT_STRSZ 10
81 #define DT_CHECKSUM 0x6ffffdf8
82 #define DT_DEBUG 21
83
84 #endif
85 #endif