• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* External ELF types.
2    Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
3    Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation, version 2.
8 
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13 
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, write to the Free Software Foundation,
16    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17 
18 #ifndef _EXTTYPES_H
19 #define	_EXTTYPES_H 1
20 
21 /* Integral types.  */
22 typedef char Elf32_Ext_Addr[ELF32_FSZ_ADDR];
23 typedef char Elf32_Ext_Off[ELF32_FSZ_OFF];
24 typedef char Elf32_Ext_Half[ELF32_FSZ_HALF];
25 typedef char Elf32_Ext_Sword[ELF32_FSZ_SWORD];
26 typedef char Elf32_Ext_Word[ELF32_FSZ_WORD];
27 typedef char Elf32_Ext_Sxword[ELF32_FSZ_SXWORD];
28 typedef char Elf32_Ext_Xword[ELF32_FSZ_XWORD];
29 
30 typedef char Elf64_Ext_Addr[ELF64_FSZ_ADDR];
31 typedef char Elf64_Ext_Off[ELF64_FSZ_OFF];
32 typedef char Elf64_Ext_Half[ELF64_FSZ_HALF];
33 typedef char Elf64_Ext_Sword[ELF64_FSZ_SWORD];
34 typedef char Elf64_Ext_Word[ELF64_FSZ_WORD];
35 typedef char Elf64_Ext_Sxword[ELF64_FSZ_SXWORD];
36 typedef char Elf64_Ext_Xword[ELF64_FSZ_XWORD];
37 
38 
39 /* Define the composed types.  */
40 #define START(Bits, Name, EName) typedef struct {
41 #define END(Bits, Name) } ElfW2(Bits, Name)
42 #define TYPE_NAME(Type, Name) Type Name;
43 #define TYPE_EXTRA(Text) Text
44 #define TYPE_XLATE(Text)
45 
46 /* Get the abstract definitions. */
47 #include "abstract.h"
48 
49 /* And define the types.  */
50 Ehdr32 (Ext_);
51 Phdr32 (Ext_);
52 Shdr32 (Ext_);
53 Sym32 (Ext_);
54 Rel32 (Ext_);
55 Rela32 (Ext_);
56 Note32 (Ext_);
57 Dyn32 (Ext_);
58 Verdef32 (Ext_);
59 Verdaux32 (Ext_);
60 Verneed32 (Ext_);
61 Vernaux32 (Ext_);
62 Syminfo32 (Ext_);
63 Move32 (Ext_);
64 
65 Ehdr64 (Ext_);
66 Phdr64 (Ext_);
67 Shdr64 (Ext_);
68 Sym64 (Ext_);
69 Rel64 (Ext_);
70 Rela64 (Ext_);
71 Note64 (Ext_);
72 Dyn64 (Ext_);
73 Verdef64 (Ext_);
74 Verdaux64 (Ext_);
75 Verneed64 (Ext_);
76 Vernaux64 (Ext_);
77 Syminfo64 (Ext_);
78 Move64 (Ext_);
79 
80 #undef START
81 #undef END
82 #undef TYPE_NAME
83 #undef TYPE_EXTRA
84 #undef TYPE_XLATE
85 
86 #endif	/* exttypes.h */
87