ReactOS
0.4.16-dev-570-g1868985
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
m
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
_
a
b
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
elf-i386.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 1996-1997 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/i386/include/elf.h,v 1.16 2004/08/02 19:12:17 dfr Exp $
27
*/
28
29
#ifndef _MACHINE_ELF_H_
30
#define _MACHINE_ELF_H_ 1
31
32
/*
33
* ELF definitions for the i386 architecture.
34
*/
35
36
#ifdef _REACTOS_ELF_MACHINE_IS_TARGET
37
38
#ifndef __ELF_WORD_SIZE
39
#define __ELF_WORD_SIZE 32
/* Used by <elf/generic.h> */
40
#endif
41
42
#include <
elf/generic.h
>
43
44
#define ELF_ARCH EM_386
45
46
#define ELF_MACHINE_OK(x) ((x) == EM_386 || (x) == EM_486)
47
48
/*
49
* Auxiliary vector entries for passing information to the interpreter.
50
*
51
* The i386 supplement to the SVR4 ABI specification names this "auxv_t",
52
* but POSIX lays claim to all symbols ending with "_t".
53
*/
54
55
typedef
struct
{
/* Auxiliary vector entry on initial stack */
56
int
a_type;
/* Entry type. */
57
union
{
58
long
a_val;
/* Integer value. */
59
void
*a_ptr;
/* Address. */
60
void
(*a_fcn)(
void
);
/* Function pointer (not used). */
61
} a_un;
62
} Elf32_Auxinfo;
63
64
#if __ELF_WORD_SIZE == 64
65
/* Fake for amd64 loader support */
66
typedef
struct
{
67
int
fake;
68
} Elf64_Auxinfo;
69
#endif
70
71
__ElfType
(Auxinfo);
72
73
/* Values for a_type. */
74
#define AT_NULL 0
/* Terminates the vector. */
75
#define AT_IGNORE 1
/* Ignored entry. */
76
#define AT_EXECFD 2
/* File descriptor of program to load. */
77
#define AT_PHDR 3
/* Program header of program already loaded. */
78
#define AT_PHENT 4
/* Size of each program header entry. */
79
#define AT_PHNUM 5
/* Number of program header entries. */
80
#define AT_PAGESZ 6
/* Page size in bytes. */
81
#define AT_BASE 7
/* Interpreter's base address. */
82
#define AT_FLAGS 8
/* Flags (unused for i386). */
83
#define AT_ENTRY 9
/* Where interpreter should transfer control. */
84
85
/*
86
* The following non-standard values are used for passing information
87
* from John Polstra's testbed program to the dynamic linker. These
88
* are expected to go away soon.
89
*
90
* Unfortunately, these overlap the Linux non-standard values, so they
91
* must not be used in the same context.
92
*/
93
#define AT_BRK 10
/* Starting point for sbrk and brk. */
94
#define AT_DEBUG 11
/* Debugging level. */
95
96
/*
97
* The following non-standard values are used in Linux ELF binaries.
98
*/
99
#define AT_NOTELF 10
/* Program is not ELF ?? */
100
#define AT_UID 11
/* Real uid. */
101
#define AT_EUID 12
/* Effective uid. */
102
#define AT_GID 13
/* Real gid. */
103
#define AT_EGID 14
/* Effective gid. */
104
105
#define AT_COUNT 15
/* Count of defined aux entry types. */
106
107
/* Define "machine" characteristics */
108
#define ELF_TARG_CLASS ELFCLASS32
109
#define ELF_TARG_DATA ELFDATA2LSB
110
#define ELF_TARG_MACH EM_386
111
#define ELF_TARG_VER 1
112
113
#endif
/* _REACTOS_ELF_MACHINE_IS_TARGET */
114
115
/*
116
* Relocation types.
117
*/
118
119
#define R_386_NONE 0
/* No relocation. */
120
#define R_386_32 1
/* Add symbol value. */
121
#define R_386_PC32 2
/* Add PC-relative symbol value. */
122
#define R_386_GOT32 3
/* Add PC-relative GOT offset. */
123
#define R_386_PLT32 4
/* Add PC-relative PLT offset. */
124
#define R_386_COPY 5
/* Copy data from shared object. */
125
#define R_386_GLOB_DAT 6
/* Set GOT entry to data address. */
126
#define R_386_JMP_SLOT 7
/* Set GOT entry to code address. */
127
#define R_386_RELATIVE 8
/* Add load address of shared object. */
128
#define R_386_GOTOFF 9
/* Add GOT-relative symbol address. */
129
#define R_386_GOTPC 10
/* Add PC-relative GOT table address. */
130
#define R_386_TLS_TPOFF 14
/* Negative offset in static TLS block */
131
#define R_386_TLS_IE 15
/* Absolute address of GOT for -ve static TLS */
132
#define R_386_TLS_GOTIE 16
/* GOT entry for negative static TLS block */
133
#define R_386_TLS_LE 17
/* Negative offset relative to static TLS */
134
#define R_386_TLS_GD 18
/* 32 bit offset to GOT (index,off) pair */
135
#define R_386_TLS_LDM 19
/* 32 bit offset to GOT (index,zero) pair */
136
#define R_386_TLS_GD_32 24
/* 32 bit offset to GOT (index,off) pair */
137
#define R_386_TLS_GD_PUSH 25
/* pushl instruction for Sun ABI GD sequence */
138
#define R_386_TLS_GD_CALL 26
/* call instruction for Sun ABI GD sequence */
139
#define R_386_TLS_GD_POP 27
/* popl instruction for Sun ABI GD sequence */
140
#define R_386_TLS_LDM_32 28
/* 32 bit offset to GOT (index,zero) pair */
141
#define R_386_TLS_LDM_PUSH 29
/* pushl instruction for Sun ABI LD sequence */
142
#define R_386_TLS_LDM_CALL 30
/* call instruction for Sun ABI LD sequence */
143
#define R_386_TLS_LDM_POP 31
/* popl instruction for Sun ABI LD sequence */
144
#define R_386_TLS_LDO_32 32
/* 32 bit offset from start of TLS block */
145
#define R_386_TLS_IE_32 33
/* 32 bit offset to GOT static TLS offset entry */
146
#define R_386_TLS_LE_32 34
/* 32 bit offset within static TLS block */
147
#define R_386_TLS_DTPMOD32 35
/* GOT entry containing TLS index */
148
#define R_386_TLS_DTPOFF32 36
/* GOT entry containing TLS offset */
149
#define R_386_TLS_TPOFF32 37
/* GOT entry of -ve static TLS offset */
150
151
#define R_386_COUNT 38
/* Count of defined relocation types. */
152
153
#endif
/* !_MACHINE_ELF_H_ */
generic.h
__ElfType
#define __ElfType(x)
Definition:
generic.h:63
void
Definition:
nsiface.idl:2307
sdk
include
reactos
elf
elf-i386.h
Generated on Wed Jan 22 2025 06:12:58 for ReactOS by
1.9.6