ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

rsym64.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 //C_ASSERT(sizeof(ULONG) == 4);
00004 typedef unsigned char UBYTE;
00005 #if defined(_MSC_VER) || defined(__MINGW32__)
00006 typedef unsigned __int64 ULONG64;
00007 #else
00008 #include <stdint.h>
00009 typedef uint64_t ULONG64;
00010 #endif
00011 
00012 
00013 #define IMAGE_FILE_MACHINE_I386 0x14c
00014 #define IMAGE_FILE_MACHINE_AMD64 0x8664
00015 #define IMAGE_DIRECTORY_ENTRY_IMPORT 1
00016 #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
00017 
00018 #define UWOP_PUSH_NONVOL 0
00019 #define UWOP_ALLOC_LARGE 1
00020 #define UWOP_ALLOC_SMALL 2
00021 #define UWOP_SET_FPREG 3
00022 #define UWOP_SAVE_NONVOL 4
00023 #define UWOP_SAVE_NONVOL_FAR 5
00024 #define UWOP_SAVE_XMM 6
00025 #define UWOP_SAVE_XMM_FAR 7
00026 #define UWOP_SAVE_XMM128 8
00027 #define UWOP_SAVE_XMM128_FAR 9
00028 #define UWOP_PUSH_MACHFRAME 10
00029 
00030 #define REG_RAX 0
00031 #define REG_RCX 1
00032 #define REG_RDX 2
00033 #define REG_RBX 3
00034 #define REG_RSP 4
00035 #define REG_RBP 5
00036 #define REG_RSI 6
00037 #define REG_RDI 7
00038 #define REG_R8 8
00039 #define REG_R9 9
00040 #define REG_R10 10
00041 #define REG_R11 11
00042 #define REG_R12 12
00043 #define REG_R13 13
00044 #define REG_R14 14
00045 #define REG_R15 15
00046 
00047 #define REG_XMM0 0
00048 #define REG_XMM1 1
00049 #define REG_XMM2 2
00050 #define REG_XMM3 3
00051 #define REG_XMM4 4
00052 #define REG_XMM5 5
00053 #define REG_XMM6 6
00054 #define REG_XMM7 7
00055 #define REG_XMM8 8
00056 #define REG_XMM9 9
00057 #define REG_XMM10 10
00058 #define REG_XMM11 11
00059 #define REG_XMM12 12
00060 #define REG_XMM13 13
00061 #define REG_XMM14 14
00062 #define REG_XMM15 15
00063 
00064 
00065 typedef struct _IMAGE_IMPORT_DESCRIPTOR
00066 {
00067     union {
00068         DWORD   Characteristics;
00069         DWORD   OriginalFirstThunk;
00070     };
00071     DWORD   TimeDateStamp;
00072     DWORD   ForwarderChain;
00073     DWORD   Name;
00074     DWORD   FirstThunk;
00075 } IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR;
00076 
00077 typedef struct _IMAGE_THUNK_DATA64
00078 {
00079     union {
00080         ULONGLONG ForwarderString;
00081         ULONGLONG Function;
00082         ULONGLONG Ordinal;
00083         ULONGLONG AddressOfData;
00084     } u1;
00085 } IMAGE_THUNK_DATA64, *PIMAGE_THUNK_DATA64;
00086 
00087 typedef struct _RUNTIME_FUNCTION
00088 {
00089     ULONG FunctionStart;
00090     ULONG FunctionEnd;
00091     ULONG UnwindInfo;
00092 } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
00093 
00094 typedef union _UNWIND_CODE
00095 {
00096     struct
00097     {
00098         UBYTE CodeOffset;
00099         UBYTE UnwindOp:4;
00100         UBYTE OpInfo:4;
00101     };
00102     USHORT FrameOffset;
00103 } UNWIND_CODE, *PUNWIND_CODE;
00104 
00105 enum
00106 {
00107     UNW_FLAG_EHANDLER  = 0x01,
00108     UNW_FLAG_UHANDLER  = 0x02,
00109     UNW_FLAG_CHAININFO = 0x03,
00110 };
00111 
00112 typedef struct _UNWIND_INFO
00113 {
00114     UBYTE Version:3;
00115     UBYTE Flags:5;
00116     UBYTE SizeOfProlog;
00117     UBYTE CountOfCodes;
00118     UBYTE FrameRegister:4;
00119     UBYTE FrameOffset:4;
00120     UNWIND_CODE UnwindCode[1];
00121 /*    union {
00122         OPTIONAL ULONG ExceptionHandler;
00123         OPTIONAL ULONG FunctionEntry;
00124     };
00125     OPTIONAL ULONG ExceptionData[]; 
00126 */
00127 } UNWIND_INFO, *PUNWIND_INFO;
00128 
00129 typedef struct _C_SCOPE_TABLE_ENTRY
00130 {
00131     ULONG Begin;
00132     ULONG End;
00133     ULONG Handler;
00134     ULONG Target;
00135 } C_SCOPE_TABLE_ENTRY, *PC_SCOPE_TABLE_ENTRY;
00136 
00137 typedef struct _C_SCOPE_TABLE
00138 {
00139     ULONG NumEntries;
00140     C_SCOPE_TABLE_ENTRY Entry[1];
00141 } C_SCOPE_TABLE, *PC_SCOPE_TABLE;
00142 
00143 
00144 typedef struct
00145 {
00146     IMAGE_SECTION_HEADER *psh;
00147     char *pName;
00148     void *p;
00149     ULONG idx;
00150 } SECTION;
00151 
00152 typedef struct
00153 {
00154     char* FilePtr;
00155     size_t cbInFileSize;
00156     size_t cbNewFileSize;
00157 
00158     /* PE data pointers */
00159     PIMAGE_DOS_HEADER DosHeader;
00160     PIMAGE_FILE_HEADER FileHeader;
00161     PIMAGE_OPTIONAL_HEADER64 OptionalHeader;
00162     PIMAGE_SECTION_HEADER SectionHeaders;
00163     PIMAGE_SECTION_HEADER NewSectionHeaders;
00164     ULONG NewSectionHeaderSize;
00165     PIMAGE_BASE_RELOCATION Relocations;
00166     void *Symbols;
00167     char *Strings;
00168     ULONG64 ImageBase;
00169     ULONG HeaderSize;
00170     char *UseSection;
00171 
00172     /* Sections */
00173     ULONG AllSections;
00174     ULONG UsedSections;
00175 
00176     SECTION eh_frame;
00177     SECTION pdata;
00178     SECTION xdata;
00179 
00180     char *AlignBuf;
00181 
00182     ULONG cFuncs;
00183     ULONG cUWOP;
00184     ULONG cScopes;
00185 
00186 } FILE_INFO, *PFILE_INFO;

Generated on Wed May 23 2012 04:35:34 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.