]> git.ipfire.org Git - thirdparty/elfutils.git/blame - libelf/exttypes.h
funcretval-struct
[thirdparty/elfutils.git] / libelf / exttypes.h
CommitLineData
b08d5a8f 1/* External ELF types.
5ddb50af 2 Copyright (C) 1998-2010, 2015 Red Hat, Inc.
de2ed97f 3 This file is part of elfutils.
b08d5a8f
UD
4 Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
5
de2ed97f
MW
6 This file is free software; you can redistribute it and/or modify
7 it under the terms of either
b08d5a8f 8
de2ed97f
MW
9 * the GNU Lesser General Public License as published by the Free
10 Software Foundation; either version 3 of the License, or (at
11 your option) any later version
12
13 or
14
15 * the GNU General Public License as published by the Free
16 Software Foundation; either version 2 of the License, or (at
17 your option) any later version
18
19 or both in parallel, as here.
20
21 elfutils is distributed in the hope that it will be useful, but
361df7da
UD
22 WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 General Public License for more details.
b08d5a8f 25
de2ed97f
MW
26 You should have received copies of the GNU General Public License and
27 the GNU Lesser General Public License along with this program. If
28 not, see <http://www.gnu.org/licenses/>. */
b08d5a8f
UD
29
30#ifndef _EXTTYPES_H
31#define _EXTTYPES_H 1
32
33/* Integral types. */
34typedef char Elf32_Ext_Addr[ELF32_FSZ_ADDR];
35typedef char Elf32_Ext_Off[ELF32_FSZ_OFF];
36typedef char Elf32_Ext_Half[ELF32_FSZ_HALF];
37typedef char Elf32_Ext_Sword[ELF32_FSZ_SWORD];
38typedef char Elf32_Ext_Word[ELF32_FSZ_WORD];
39typedef char Elf32_Ext_Sxword[ELF32_FSZ_SXWORD];
40typedef char Elf32_Ext_Xword[ELF32_FSZ_XWORD];
41
42typedef char Elf64_Ext_Addr[ELF64_FSZ_ADDR];
43typedef char Elf64_Ext_Off[ELF64_FSZ_OFF];
44typedef char Elf64_Ext_Half[ELF64_FSZ_HALF];
45typedef char Elf64_Ext_Sword[ELF64_FSZ_SWORD];
46typedef char Elf64_Ext_Word[ELF64_FSZ_WORD];
47typedef char Elf64_Ext_Sxword[ELF64_FSZ_SXWORD];
48typedef char Elf64_Ext_Xword[ELF64_FSZ_XWORD];
49
50
51/* Define the composed types. */
52#define START(Bits, Name, EName) typedef struct {
53#define END(Bits, Name) } ElfW2(Bits, Name)
54#define TYPE_NAME(Type, Name) Type Name;
55#define TYPE_EXTRA(Text) Text
56#define TYPE_XLATE(Text)
57
58/* Get the abstract definitions. */
59#include "abstract.h"
60
61/* And define the types. */
62Ehdr32 (Ext_);
63Phdr32 (Ext_);
64Shdr32 (Ext_);
65Sym32 (Ext_);
66Rel32 (Ext_);
67Rela32 (Ext_);
68Note32 (Ext_);
69Dyn32 (Ext_);
70Verdef32 (Ext_);
71Verdaux32 (Ext_);
72Verneed32 (Ext_);
73Vernaux32 (Ext_);
74Syminfo32 (Ext_);
75Move32 (Ext_);
b088f216 76Lib32 (Ext_);
cb6d8650 77auxv_t32 (Ext_);
5ddb50af 78Chdr32 (Ext_);
b08d5a8f
UD
79
80Ehdr64 (Ext_);
81Phdr64 (Ext_);
82Shdr64 (Ext_);
83Sym64 (Ext_);
84Rel64 (Ext_);
85Rela64 (Ext_);
86Note64 (Ext_);
87Dyn64 (Ext_);
88Verdef64 (Ext_);
89Verdaux64 (Ext_);
90Verneed64 (Ext_);
91Vernaux64 (Ext_);
92Syminfo64 (Ext_);
93Move64 (Ext_);
b088f216 94Lib64 (Ext_);
cb6d8650 95auxv_t64 (Ext_);
5ddb50af 96Chdr64 (Ext_);
b08d5a8f
UD
97
98#undef START
99#undef END
100#undef TYPE_NAME
101#undef TYPE_EXTRA
102#undef TYPE_XLATE
103
104#endif /* exttypes.h */