ReactOS
0.4.15-dev-2100-g9e32854
rsym64.h
Go to the documentation of this file.
1
#pragma once
2
3
//C_ASSERT(sizeof(ULONG) == 4);
4
typedef
unsigned
char
UBYTE
;
5
#if defined(_MSC_VER) || defined(__MINGW32__)
6
typedef
unsigned
__int64
ULONG64
;
7
#else
8
#include <stdint.h>
9
typedef
uint64_t
ULONG64
;
10
#endif
11
12
13
#define IMAGE_FILE_MACHINE_I386 0x14c
14
#define IMAGE_FILE_MACHINE_AMD64 0x8664
15
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1
16
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
17
18
#define UWOP_PUSH_NONVOL 0
19
#define UWOP_ALLOC_LARGE 1
20
#define UWOP_ALLOC_SMALL 2
21
#define UWOP_SET_FPREG 3
22
#define UWOP_SAVE_NONVOL 4
23
#define UWOP_SAVE_NONVOL_FAR 5
24
#define UWOP_SAVE_XMM 6
25
#define UWOP_SAVE_XMM_FAR 7
26
#define UWOP_SAVE_XMM128 8
27
#define UWOP_SAVE_XMM128_FAR 9
28
#define UWOP_PUSH_MACHFRAME 10
29
30
#define REG_RAX 0
31
#define REG_RCX 1
32
#define REG_RDX 2
33
#define REG_RBX 3
34
#define REG_RSP 4
35
#define REG_RBP 5
36
#define REG_RSI 6
37
#define REG_RDI 7
38
#define REG_R8 8
39
#define REG_R9 9
40
#define REG_R10 10
41
#define REG_R11 11
42
#define REG_R12 12
43
#define REG_R13 13
44
#define REG_R14 14
45
#define REG_R15 15
46
47
#define REG_XMM0 0
48
#define REG_XMM1 1
49
#define REG_XMM2 2
50
#define REG_XMM3 3
51
#define REG_XMM4 4
52
#define REG_XMM5 5
53
#define REG_XMM6 6
54
#define REG_XMM7 7
55
#define REG_XMM8 8
56
#define REG_XMM9 9
57
#define REG_XMM10 10
58
#define REG_XMM11 11
59
#define REG_XMM12 12
60
#define REG_XMM13 13
61
#define REG_XMM14 14
62
#define REG_XMM15 15
63
64
65
typedef
struct
_IMAGE_IMPORT_DESCRIPTOR
66
{
67
union
{
68
DWORD
Characteristics
;
69
DWORD
OriginalFirstThunk
;
70
};
71
DWORD
TimeDateStamp
;
72
DWORD
ForwarderChain
;
73
DWORD
Name
;
74
DWORD
FirstThunk
;
75
}
IMAGE_IMPORT_DESCRIPTOR
, *
PIMAGE_IMPORT_DESCRIPTOR
;
76
77
typedef
struct
_IMAGE_THUNK_DATA64
78
{
79
union
{
80
ULONGLONG
ForwarderString
;
81
ULONGLONG
Function
;
82
ULONGLONG
Ordinal
;
83
ULONGLONG
AddressOfData
;
84
}
u1
;
85
}
IMAGE_THUNK_DATA64
, *
PIMAGE_THUNK_DATA64
;
86
87
typedef
struct
_RUNTIME_FUNCTION
88
{
89
ULONG
FunctionStart
;
90
ULONG
FunctionEnd
;
91
ULONG
UnwindInfo
;
92
}
RUNTIME_FUNCTION
, *
PRUNTIME_FUNCTION
;
93
94
typedef
union
_UNWIND_CODE
95
{
96
struct
97
{
98
UBYTE
CodeOffset
;
99
UBYTE
UnwindOp
:4;
100
UBYTE
OpInfo
:4;
101
};
102
USHORT
FrameOffset
;
103
}
UNWIND_CODE
, *
PUNWIND_CODE
;
104
105
enum
106
{
107
UNW_FLAG_EHANDLER
= 0x01,
108
UNW_FLAG_UHANDLER
= 0x02,
109
UNW_FLAG_CHAININFO
= 0x03,
110
};
111
112
typedef
struct
_UNWIND_INFO
113
{
114
UBYTE
Version
:3;
115
UBYTE
Flags
:5;
116
UBYTE
SizeOfProlog
;
117
UBYTE
CountOfCodes
;
118
UBYTE
FrameRegister
:4;
119
UBYTE
FrameOffset
:4;
120
UNWIND_CODE
UnwindCode
[1];
121
/* union {
122
OPTIONAL ULONG ExceptionHandler;
123
OPTIONAL ULONG FunctionEntry;
124
};
125
OPTIONAL ULONG ExceptionData[];
126
*/
127
}
UNWIND_INFO
, *
PUNWIND_INFO
;
128
129
typedef
struct
_C_SCOPE_TABLE_ENTRY
130
{
131
ULONG
Begin
;
132
ULONG
End
;
133
ULONG
Handler
;
134
ULONG
Target
;
135
}
C_SCOPE_TABLE_ENTRY
, *
PC_SCOPE_TABLE_ENTRY
;
136
137
typedef
struct
_C_SCOPE_TABLE
138
{
139
ULONG
NumEntries
;
140
C_SCOPE_TABLE_ENTRY
Entry
[1];
141
}
C_SCOPE_TABLE
, *
PC_SCOPE_TABLE
;
142
143
144
typedef
struct
145
{
146
IMAGE_SECTION_HEADER
*
psh
;
147
char
*
pName
;
148
void
*
p
;
149
ULONG
idx
;
150
}
SECTION
;
151
152
typedef
struct
153
{
154
char
*
FilePtr
;
155
size_t
cbInFileSize
;
156
size_t
cbNewFileSize
;
157
158
/* PE data pointers */
159
PIMAGE_DOS_HEADER
DosHeader
;
160
PIMAGE_FILE_HEADER
FileHeader
;
161
PIMAGE_OPTIONAL_HEADER64
OptionalHeader
;
162
PIMAGE_SECTION_HEADER
SectionHeaders
;
163
PIMAGE_SECTION_HEADER
NewSectionHeaders
;
164
ULONG
NewSectionHeaderSize
;
165
PIMAGE_BASE_RELOCATION
Relocations
;
166
void
*
Symbols
;
167
char
*
Strings
;
168
ULONG64
ImageBase
;
169
ULONG
HeaderSize
;
170
char
*
UseSection
;
171
172
/* Sections */
173
ULONG
AllSections
;
174
ULONG
UsedSections
;
175
176
SECTION
eh_frame
;
177
SECTION
pdata
;
178
SECTION
xdata
;
179
180
char
*
AlignBuf
;
181
182
ULONG
cFuncs
;
183
ULONG
cUWOP
;
184
ULONG
cScopes
;
185
186
}
FILE_INFO
, *
PFILE_INFO
;
SECTION::p
void * p
Definition:
rsym64.h:148
_UNWIND_INFO
Definition:
cpu_x86_64.c:60
FILE_INFO::FilePtr
char * FilePtr
Definition:
rsym64.h:154
UNWIND_CODE
union _UNWIND_CODE UNWIND_CODE
_IMAGE_SECTION_HEADER
Definition:
pedump.c:279
PIMAGE_THUNK_DATA64
struct _IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64
PUNWIND_INFO
struct _UNWIND_INFO * PUNWIND_INFO
_UNWIND_INFO::FrameOffset
BYTE FrameOffset
Definition:
cpu_x86_64.c:67
_IMAGE_THUNK_DATA64::u1
union _IMAGE_THUNK_DATA64::@2107 u1
_C_SCOPE_TABLE_ENTRY::Target
ULONG Target
Definition:
rsym64.h:134
_RUNTIME_FUNCTION
Definition:
rsym64.h:87
FILE_INFO
struct _FILE_INFO FILE_INFO
PFILE_INFO
struct FILE_INFO * PFILE_INFO
FILE_INFO::eh_frame
SECTION eh_frame
Definition:
rsym64.h:176
FILE_INFO::NewSectionHeaderSize
ULONG NewSectionHeaderSize
Definition:
rsym64.h:164
FILE_INFO::ImageBase
ULONG64 ImageBase
Definition:
rsym64.h:168
_UNWIND_CODE::UnwindOp
BYTE UnwindOp
Definition:
cpu_x86_64.c:54
_UNWIND_CODE
Definition:
cpu_x86_64.c:49
UNWIND_INFO
struct _UNWIND_INFO UNWIND_INFO
_IMAGE_IMPORT_DESCRIPTOR::TimeDateStamp
ULONG TimeDateStamp
Definition:
ntimage.h:577
_IMAGE_DOS_HEADER
Definition:
ntddk_ex.h:99
PC_SCOPE_TABLE
struct _C_SCOPE_TABLE * PC_SCOPE_TABLE
FILE_INFO::cScopes
ULONG cScopes
Definition:
rsym64.h:184
C_SCOPE_TABLE
struct _C_SCOPE_TABLE C_SCOPE_TABLE
FILE_INFO::AlignBuf
char * AlignBuf
Definition:
rsym64.h:180
_RUNTIME_FUNCTION::FunctionEnd
ULONG FunctionEnd
Definition:
rsym64.h:90
SECTION
Definition:
rsym64.h:144
_IMAGE_IMPORT_DESCRIPTOR::Name
ULONG Name
Definition:
ntimage.h:579
FILE_INFO::cUWOP
ULONG cUWOP
Definition:
rsym64.h:183
_IMAGE_IMPORT_DESCRIPTOR::Characteristics
ULONG Characteristics
Definition:
ntimage.h:574
FILE_INFO::OptionalHeader
PIMAGE_OPTIONAL_HEADER64 OptionalHeader
Definition:
rsym64.h:161
_UNWIND_CODE::CodeOffset
BYTE CodeOffset
Definition:
cpu_x86_64.c:53
_C_SCOPE_TABLE
Definition:
rsym64.h:137
_IMAGE_THUNK_DATA64::AddressOfData
ULONGLONG AddressOfData
Definition:
ntimage.h:505
FILE_INFO::NewSectionHeaders
PIMAGE_SECTION_HEADER NewSectionHeaders
Definition:
rsym64.h:163
SECTION
struct _SECTION SECTION
_UNWIND_INFO::Flags
BYTE Flags
Definition:
cpu_x86_64.c:63
FILE_INFO::Symbols
void * Symbols
Definition:
rsym64.h:166
FILE_INFO::xdata
SECTION xdata
Definition:
rsym64.h:178
FILE_INFO::pdata
SECTION pdata
Definition:
rsym64.h:177
_IMAGE_IMPORT_DESCRIPTOR::OriginalFirstThunk
ULONG OriginalFirstThunk
Definition:
ntimage.h:575
_IMAGE_BASE_RELOCATION
Definition:
ntimage.h:162
_UNWIND_INFO::Version
BYTE Version
Definition:
cpu_x86_64.c:62
_UNWIND_INFO::FrameRegister
BYTE FrameRegister
Definition:
cpu_x86_64.c:66
ULONGLONG
uint64_t ULONGLONG
Definition:
typedefs.h:67
_C_SCOPE_TABLE_ENTRY::End
ULONG End
Definition:
rsym64.h:132
FILE_INFO::cbNewFileSize
size_t cbNewFileSize
Definition:
rsym64.h:156
_IMAGE_OPTIONAL_HEADER64
Definition:
ntimage.h:340
DWORD
unsigned long DWORD
Definition:
ntddk_ex.h:95
UNW_FLAG_UHANDLER
Definition:
rsym64.h:108
ULONG64
uint64_t ULONG64
Definition:
rsym64.h:9
_IMAGE_THUNK_DATA64::Function
ULONGLONG Function
Definition:
ntimage.h:503
RUNTIME_FUNCTION
struct _RUNTIME_FUNCTION RUNTIME_FUNCTION
_IMAGE_THUNK_DATA64
Definition:
ntimage.h:500
UBYTE
unsigned char UBYTE
Definition:
lzx.c:48
PRUNTIME_FUNCTION
struct _RUNTIME_FUNCTION * PRUNTIME_FUNCTION
ULONG64
unsigned __int64 ULONG64
Definition:
imports.h:198
UNW_FLAG_EHANDLER
Definition:
rsym64.h:107
FILE_INFO::FileHeader
PIMAGE_FILE_HEADER FileHeader
Definition:
rsym64.h:160
SECTION::pName
char * pName
Definition:
rsym64.h:147
FILE_INFO::cbInFileSize
size_t cbInFileSize
Definition:
rsym64.h:155
IMAGE_IMPORT_DESCRIPTOR
struct _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR
_IMAGE_FILE_HEADER
Definition:
ntddk_ex.h:121
_UNWIND_INFO::UnwindCode
UNWIND_CODE UnwindCode[1]
Definition:
cpu_x86_64.c:68
_IMAGE_IMPORT_DESCRIPTOR::FirstThunk
ULONG FirstThunk
Definition:
ntimage.h:580
PIMAGE_IMPORT_DESCRIPTOR
struct _IMAGE_IMPORT_DESCRIPTOR * PIMAGE_IMPORT_DESCRIPTOR
_IMAGE_IMPORT_DESCRIPTOR::ForwarderChain
ULONG ForwarderChain
Definition:
ntimage.h:578
_UNWIND_INFO::SizeOfProlog
BYTE SizeOfProlog
Definition:
cpu_x86_64.c:64
_UNWIND_CODE::FrameOffset
USHORT FrameOffset
Definition:
cpu_x86_64.c:57
_UNWIND_CODE::OpInfo
BYTE OpInfo
Definition:
cpu_x86_64.c:55
uint64_t
UINT64 uint64_t
Definition:
types.h:77
USHORT
unsigned short USHORT
Definition:
pedump.c:61
_C_SCOPE_TABLE::NumEntries
ULONG NumEntries
Definition:
rsym64.h:139
SECTION::psh
IMAGE_SECTION_HEADER * psh
Definition:
rsym64.h:146
FILE_INFO::HeaderSize
ULONG HeaderSize
Definition:
rsym64.h:169
PUNWIND_CODE
union _UNWIND_CODE * PUNWIND_CODE
SECTION::idx
ULONG idx
Definition:
rsym64.h:149
FILE_INFO::SectionHeaders
PIMAGE_SECTION_HEADER SectionHeaders
Definition:
rsym64.h:162
IMAGE_THUNK_DATA64
struct _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64
_RUNTIME_FUNCTION::FunctionStart
ULONG FunctionStart
Definition:
rsym64.h:89
UBYTE
unsigned char UBYTE
Definition:
rsym64.h:4
FILE_INFO::DosHeader
PIMAGE_DOS_HEADER DosHeader
Definition:
rsym64.h:159
FILE_INFO::UsedSections
ULONG UsedSections
Definition:
rsym64.h:174
ULONG
unsigned int ULONG
Definition:
retypes.h:1
FILE_INFO::UseSection
char * UseSection
Definition:
rsym64.h:170
_C_SCOPE_TABLE_ENTRY
Definition:
rsym64.h:129
FILE_INFO::cFuncs
ULONG cFuncs
Definition:
rsym64.h:182
_RUNTIME_FUNCTION::UnwindInfo
ULONG UnwindInfo
Definition:
rsym64.h:91
_IMAGE_THUNK_DATA64::ForwarderString
ULONGLONG ForwarderString
Definition:
ntimage.h:502
FILE_INFO::Relocations
PIMAGE_BASE_RELOCATION Relocations
Definition:
rsym64.h:165
FILE_INFO::AllSections
ULONG AllSections
Definition:
rsym64.h:173
_IMAGE_IMPORT_DESCRIPTOR
Definition:
ntimage.h:572
FILE_INFO::Strings
char * Strings
Definition:
rsym64.h:167
_IMAGE_THUNK_DATA64::Ordinal
ULONGLONG Ordinal
Definition:
ntimage.h:504
_C_SCOPE_TABLE_ENTRY::Begin
ULONG Begin
Definition:
rsym64.h:131
Entry
base of all file and directory entries
Definition:
entries.h:82
_UNWIND_INFO::CountOfCodes
BYTE CountOfCodes
Definition:
cpu_x86_64.c:65
__int64
#define __int64
Definition:
basetyps.h:16
_C_SCOPE_TABLE_ENTRY::Handler
ULONG Handler
Definition:
rsym64.h:133
C_SCOPE_TABLE_ENTRY
struct _C_SCOPE_TABLE_ENTRY C_SCOPE_TABLE_ENTRY
UNW_FLAG_CHAININFO
Definition:
rsym64.h:109
PC_SCOPE_TABLE_ENTRY
struct _C_SCOPE_TABLE_ENTRY * PC_SCOPE_TABLE_ENTRY
sdk
tools
rsym
rsym64.h
Generated on Sun Feb 28 2021 06:08:30 for ReactOS by
1.8.15