ReactOS
0.4.16-dev-424-ge4748fe
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
_
c
d
e
f
g
h
i
l
n
o
p
s
t
u
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
_
c
d
f
i
l
m
o
p
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
v
x
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
elf32.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 1996-1998 John D. Polstra.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
* SUCH DAMAGE.
25
*
26
* $FreeBSD: src/sys/sys/elf32.h,v 1.8 2002/05/30 08:32:18 dfr Exp $
27
*/
28
29
#ifndef _SYS_ELF32_H_
30
#define _SYS_ELF32_H_ 1
31
32
/*
33
* ELF definitions common to all 32-bit architectures.
34
*/
35
36
typedef
ULONG32
Elf32_Addr
;
37
typedef
USHORT
Elf32_Half
;
38
typedef
ULONG32
Elf32_Off
;
39
typedef
LONG32
Elf32_Sword
;
40
typedef
ULONG32
Elf32_Word
;
41
typedef
ULONG32
Elf32_Size
;
42
typedef
Elf32_Off
Elf32_Hashelt
;
43
44
/*
45
* ELF header.
46
*/
47
48
typedef
struct
{
49
unsigned
char
e_ident[
EI_NIDENT
];
/* File identification. */
50
Elf32_Half
e_type
;
/* File type. */
51
Elf32_Half
e_machine
;
/* Machine architecture. */
52
Elf32_Word
e_version
;
/* ELF format version. */
53
Elf32_Addr
e_entry
;
/* Entry point. */
54
Elf32_Off
e_phoff
;
/* Program header file offset. */
55
Elf32_Off
e_shoff
;
/* Section header file offset. */
56
Elf32_Word
e_flags
;
/* Architecture-specific flags. */
57
Elf32_Half
e_ehsize
;
/* Size of ELF header in bytes. */
58
Elf32_Half
e_phentsize
;
/* Size of program header entry. */
59
Elf32_Half
e_phnum
;
/* Number of program header entries. */
60
Elf32_Half
e_shentsize
;
/* Size of section header entry. */
61
Elf32_Half
e_shnum
;
/* Number of section header entries. */
62
Elf32_Half
e_shstrndx
;
/* Section name strings section. */
63
}
Elf32_Ehdr
;
64
65
/*
66
* Section header.
67
*/
68
69
typedef
struct
{
70
Elf32_Word
sh_name
;
/* Section name (index into the
71
section header string table). */
72
Elf32_Word
sh_type
;
/* Section type. */
73
Elf32_Word
sh_flags
;
/* Section flags. */
74
Elf32_Addr
sh_addr
;
/* Address in memory image. */
75
Elf32_Off
sh_offset
;
/* Offset in file. */
76
Elf32_Size
sh_size
;
/* Size in bytes. */
77
Elf32_Word
sh_link
;
/* Index of a related section. */
78
Elf32_Word
sh_info
;
/* Depends on section type. */
79
Elf32_Size
sh_addralign
;
/* Alignment in bytes. */
80
Elf32_Size
sh_entsize
;
/* Size of each entry in section. */
81
}
Elf32_Shdr
;
82
83
/*
84
* Program header.
85
*/
86
87
typedef
struct
{
88
Elf32_Word
p_type
;
/* Entry type. */
89
Elf32_Off
p_offset
;
/* File offset of contents. */
90
Elf32_Addr
p_vaddr
;
/* Virtual address in memory image. */
91
Elf32_Addr
p_paddr
;
/* Physical address (not used). */
92
Elf32_Size
p_filesz
;
/* Size of contents in file. */
93
Elf32_Size
p_memsz
;
/* Size of contents in memory. */
94
Elf32_Word
p_flags
;
/* Access permission flags. */
95
Elf32_Size
p_align
;
/* Alignment in memory and file. */
96
}
Elf32_Phdr
;
97
98
/*
99
* Dynamic structure. The ".dynamic" section contains an array of them.
100
*/
101
102
typedef
struct
{
103
Elf32_Sword
d_tag
;
/* Entry type. */
104
union
{
105
Elf32_Size
d_val
;
/* Integer value. */
106
Elf32_Addr
d_ptr
;
/* Address value. */
107
} d_un;
108
}
Elf32_Dyn
;
109
110
/*
111
* Relocation entries.
112
*/
113
114
/* Relocations that don't need an addend field. */
115
typedef
struct
{
116
Elf32_Addr
r_offset
;
/* Location to be relocated. */
117
Elf32_Word
r_info
;
/* Relocation type and symbol index. */
118
}
Elf32_Rel
;
119
120
/* Relocations that need an addend field. */
121
typedef
struct
{
122
Elf32_Addr
r_offset
;
/* Location to be relocated. */
123
Elf32_Word
r_info
;
/* Relocation type and symbol index. */
124
Elf32_Sword
r_addend
;
/* Addend. */
125
}
Elf32_Rela
;
126
127
/* Macros for accessing the fields of r_info. */
128
#define ELF32_R_SYM(info) ((info) >> 8)
129
#define ELF32_R_TYPE(info) ((unsigned char)(info))
130
131
/* Macro for constructing r_info from field values. */
132
#define ELF32_R_INFO(sym, type) (((sym) << 8) + (unsigned char)(type))
133
134
/*
135
* Symbol table entries.
136
*/
137
138
typedef
struct
{
139
Elf32_Word
st_name
;
/* String table index of name. */
140
Elf32_Addr
st_value
;
/* Symbol value. */
141
Elf32_Size
st_size
;
/* Size of associated object. */
142
unsigned
char
st_info
;
/* Type and binding information. */
143
unsigned
char
st_other
;
/* Reserved (not used). */
144
Elf32_Half
st_shndx
;
/* Section index of symbol. */
145
}
Elf32_Sym
;
146
147
/* Macros for accessing the fields of st_info. */
148
#define ELF32_ST_BIND(info) ((info) >> 4)
149
#define ELF32_ST_TYPE(info) ((info) & 0xf)
150
151
/* Macro for constructing st_info from field values. */
152
#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
153
154
#endif
/* !_SYS_ELF32_H_ */
LONG32
int LONG32
Definition:
basetsd.h:121
ULONG32
unsigned int ULONG32
Definition:
basetsd.h:123
Elf32_Addr
ULONG32 Elf32_Addr
Definition:
elf32.h:36
Elf32_Off
ULONG32 Elf32_Off
Definition:
elf32.h:38
Elf32_Word
ULONG32 Elf32_Word
Definition:
elf32.h:40
Elf32_Size
ULONG32 Elf32_Size
Definition:
elf32.h:41
Elf32_Sword
LONG32 Elf32_Sword
Definition:
elf32.h:39
Elf32_Half
USHORT Elf32_Half
Definition:
elf32.h:37
Elf32_Hashelt
Elf32_Off Elf32_Hashelt
Definition:
elf32.h:42
USHORT
unsigned short USHORT
Definition:
pedump.c:61
EI_NIDENT
#define EI_NIDENT
Definition:
common.h:64
Elf32_Dyn
Definition:
elf32.h:102
Elf32_Dyn::d_tag
Elf32_Sword d_tag
Definition:
elf32.h:103
Elf32_Dyn::d_val
Elf32_Size d_val
Definition:
elf32.h:105
Elf32_Dyn::d_ptr
Elf32_Addr d_ptr
Definition:
elf32.h:106
Elf32_Ehdr
Definition:
elf32.h:48
Elf32_Ehdr::e_shoff
Elf32_Off e_shoff
Definition:
elf32.h:55
Elf32_Ehdr::e_ehsize
Elf32_Half e_ehsize
Definition:
elf32.h:57
Elf32_Ehdr::e_shnum
Elf32_Half e_shnum
Definition:
elf32.h:61
Elf32_Ehdr::e_machine
Elf32_Half e_machine
Definition:
elf32.h:51
Elf32_Ehdr::e_phoff
Elf32_Off e_phoff
Definition:
elf32.h:54
Elf32_Ehdr::e_phnum
Elf32_Half e_phnum
Definition:
elf32.h:59
Elf32_Ehdr::e_shstrndx
Elf32_Half e_shstrndx
Definition:
elf32.h:62
Elf32_Ehdr::e_type
Elf32_Half e_type
Definition:
elf32.h:50
Elf32_Ehdr::e_flags
Elf32_Word e_flags
Definition:
elf32.h:56
Elf32_Ehdr::e_version
Elf32_Word e_version
Definition:
elf32.h:52
Elf32_Ehdr::e_shentsize
Elf32_Half e_shentsize
Definition:
elf32.h:60
Elf32_Ehdr::e_entry
Elf32_Addr e_entry
Definition:
elf32.h:53
Elf32_Ehdr::e_phentsize
Elf32_Half e_phentsize
Definition:
elf32.h:58
Elf32_Phdr
Definition:
elf32.h:87
Elf32_Phdr::p_vaddr
Elf32_Addr p_vaddr
Definition:
elf32.h:90
Elf32_Phdr::p_align
Elf32_Size p_align
Definition:
elf32.h:95
Elf32_Phdr::p_flags
Elf32_Word p_flags
Definition:
elf32.h:94
Elf32_Phdr::p_memsz
Elf32_Size p_memsz
Definition:
elf32.h:93
Elf32_Phdr::p_type
Elf32_Word p_type
Definition:
elf32.h:88
Elf32_Phdr::p_filesz
Elf32_Size p_filesz
Definition:
elf32.h:92
Elf32_Phdr::p_offset
Elf32_Off p_offset
Definition:
elf32.h:89
Elf32_Phdr::p_paddr
Elf32_Addr p_paddr
Definition:
elf32.h:91
Elf32_Rel
Definition:
elf32.h:115
Elf32_Rel::r_info
Elf32_Word r_info
Definition:
elf32.h:117
Elf32_Rel::r_offset
Elf32_Addr r_offset
Definition:
elf32.h:116
Elf32_Rela
Definition:
elf32.h:121
Elf32_Rela::r_addend
Elf32_Sword r_addend
Definition:
elf32.h:124
Elf32_Rela::r_offset
Elf32_Addr r_offset
Definition:
elf32.h:122
Elf32_Rela::r_info
Elf32_Word r_info
Definition:
elf32.h:123
Elf32_Shdr
Definition:
elf32.h:69
Elf32_Shdr::sh_addralign
Elf32_Size sh_addralign
Definition:
elf32.h:79
Elf32_Shdr::sh_entsize
Elf32_Size sh_entsize
Definition:
elf32.h:80
Elf32_Shdr::sh_flags
Elf32_Word sh_flags
Definition:
elf32.h:73
Elf32_Shdr::sh_offset
Elf32_Off sh_offset
Definition:
elf32.h:75
Elf32_Shdr::sh_name
Elf32_Word sh_name
Definition:
elf32.h:70
Elf32_Shdr::sh_addr
Elf32_Addr sh_addr
Definition:
elf32.h:74
Elf32_Shdr::sh_type
Elf32_Word sh_type
Definition:
elf32.h:72
Elf32_Shdr::sh_size
Elf32_Size sh_size
Definition:
elf32.h:76
Elf32_Shdr::sh_link
Elf32_Word sh_link
Definition:
elf32.h:77
Elf32_Shdr::sh_info
Elf32_Word sh_info
Definition:
elf32.h:78
Elf32_Sym
Definition:
elf32.h:138
Elf32_Sym::st_other
unsigned char st_other
Definition:
elf32.h:143
Elf32_Sym::st_shndx
Elf32_Half st_shndx
Definition:
elf32.h:144
Elf32_Sym::st_size
Elf32_Size st_size
Definition:
elf32.h:141
Elf32_Sym::st_name
Elf32_Word st_name
Definition:
elf32.h:139
Elf32_Sym::st_info
unsigned char st_info
Definition:
elf32.h:142
Elf32_Sym::st_value
Elf32_Addr st_value
Definition:
elf32.h:140
sdk
include
reactos
elf
elf32.h
Generated on Mon Jan 6 2025 06:15:02 for ReactOS by
1.9.6