Changeset 114
- Timestamp:
- 01/15/06 07:04:42 (3 years ago)
- Files:
-
- trunk/ddl/DynamicLibrary.d (modified) (2 diffs)
- trunk/ddl/DynamicModule.d (modified) (5 diffs)
- trunk/ddl/ExportSymbol.d (modified) (1 diff)
- trunk/ddl/Linker.d (modified) (3 diffs)
- trunk/ddl/LoaderRegistry.d (modified) (1 diff)
- trunk/ddl/Mangle.d (modified) (3 diffs)
- trunk/ddl/omf/OMFBinary.d (modified) (4 diffs)
- trunk/ddl/omf/OMFModule.d (modified) (4 diffs)
- trunk/doc/html/classes.html (modified) (1 diff)
- trunk/doc/html/ddl.spec.html (modified) (1 diff)
- trunk/doc/html/members.html (modified) (1 diff)
- trunk/doc/html/methods.html (modified) (1 diff)
- trunk/doc/html/module-tree.html (modified) (4 diffs)
- trunk/doc/html/module.ddl.Mangle.html (modified) (2 diffs)
- trunk/doc/html/module.ddl.coff.COFF.html (modified) (1 diff)
- trunk/doc/html/module.ddl.coff.COFFBinary.html (modified) (2 diffs)
- trunk/doc/html/module.ddl.coff.COFFImage.html (modified) (1 diff)
- trunk/doc/html/module.ddl.coff.COFFModule.html (modified) (1 diff)
- trunk/doc/html/module.ddl.coff.cursor.html (modified) (1 diff)
- trunk/doc/html/module.ddl.ddl.DDLLibrary.html (modified) (2 diffs)
- trunk/doc/html/module.ddl.ddl.DDLLoader.html (modified) (1 diff)
- trunk/doc/html/module.ddl.omf.OMFLoader.html (modified) (1 diff)
- trunk/doc/html/modules.html (modified) (3 diffs)
- trunk/doc/html/templates.html (modified) (1 diff)
- trunk/meta/conv.d (modified) (7 diffs)
- trunk/meta/math.d (modified) (7 diffs)
- trunk/meta/strhacks.d (modified) (1 diff)
- trunk/meta/string.d (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ddl/DynamicLibrary.d
r101 r114 34 34 private import ddl.Mangle; 35 35 36 // pull in the platform new() for classes 36 37 extern(C) Object _d_newclass(ClassInfo ci); 37 38 … … 107 108 108 109 109 /* *110 /* 110 111 Template method that returns a typed export from the library. The implementation uses 111 112 getExportAddress() internally. This differs greatly from the use of getExport() trunk/ddl/DynamicModule.d
r101 r114 34 34 private import ddl.Mangle; 35 35 36 //TODO: change so that a module yields what modules namespaces it depends on, if possible. 37 //TODO: add a way to delay the actual resolution to a separate call, as to optimize the linker 38 //TODO: find a way for the module to return its namespace 39 36 40 /** 37 41 Represents a binary module within DDL. … … 41 45 resolveDependencies methods. 42 46 */ 43 44 //TODO: change so that a module yields what modules namespaces it depends on, if possible.45 //TODO: add a way to delay the actual resolution to a separate call, as to optimize the linker46 //TODO: find a way for the module to return its namespace47 47 abstract class DynamicModule{ 48 48 49 49 /** 50 Returns the name of the module.50 Returns the name of the module. 51 51 52 52 While the result of getName() is largely compiler dependent for .asm or .c … … 91 91 92 92 /** 93 Looks for a symbol of the form "static const char[][char[]] <namespace>.DDLAttributes",93 Looks for a symbol of the form "static const char[][char[]] {namespace}.DDLAttributes", 94 94 and returns it if it exists. Note that the module does not have to be resolved for this 95 95 to work correctly. However, the module author is trusted to not have populated the 96 96 attribute map with references to static data not present in the module. 97 98 Note: The current rendition of D, at the time of this documentation, does not support 99 static intialization of associative arrays. This feature is here as a placeholder for 100 when D has support for such things. 97 101 98 102 Returns: the DDLAttributes constant in the module if it exists. … … 127 131 128 132 Params: 129 x= the name of the symbol to resolve133 name = the name of the symbol to resolve 130 134 address = the address of the external symbol 131 135 */ … … 165 169 getExports 166 170 */ 167 public void resolveDependencies(ExportSymbol[] exports);171 deprecated public void resolveDependencies(ExportSymbol[] exports); 168 172 169 173 /** trunk/ddl/ExportSymbol.d
r97 r114 57 57 public char[] name; 58 58 59 /**60 Can be used as an empty symbol, e.g.61 return ExportSymbol.NONE;62 */63 static const ExportSymbol NONE;59 /** 60 Can be used as an empty symbol, e.g. 61 return ExportSymbol.NONE; 62 */ 63 static const ExportSymbol NONE; 64 64 } trunk/ddl/Linker.d
r101 r114 88 88 down the list. 89 89 */ 90 p ublicDynamicLibrary[] libraries;90 protected DynamicLibrary[] libraries; 91 91 92 92 /** … … 161 161 foreach(char[] dep; mod.getDependencies){ 162 162 ExportSymbol sym = ExportSymbol.init; 163 //TODO: create a cache for namespace matching requests and search that first 163 164 foreach(DynamicLibrary lib; this.libraries){ 164 165 DynamicModule libMod = lib.getModuleForExport(dep); 165 166 if(libMod){ 167 //TODO: add to the cache here 166 168 sym = libMod.getExport(dep); 167 169 if(sym != ExportSymbol.init){ … … 191 193 // found it, now get it and run the constructor 192 194 ModuleInfo moduleInfo = cast(ModuleInfo)(sym.address); 193 debug Log("init! %0.8X",sym.address);195 debug debugLog("init! %0.8X",sym.address); 194 196 initModule(moduleInfo,0); 195 197 } trunk/ddl/LoaderRegistry.d
r101 r114 193 193 194 194 /** 195 Returns: true if the file can be loaded, false if it cannot. 196 Params: 197 filename = name of the file to test. 198 */ 199 public bit canLoad(char[] filename){ 200 DDLFile file; 201 file.load(filename); 202 return canLoad(file); 203 } 204 205 /** 195 206 Returns: an array of type names for all the supported loaders in this registry. 196 207 */ trunk/ddl/Mangle.d
r101 r114 25 25 OTHER DEALINGS IN THE SOFTWARE. 26 26 +/ 27 /* *27 /* 28 28 Template Library to support compile-time symbol demangling. 29 29 This is put to good use by the DynamicLibrary class. … … 39 39 import ddl.Utils; 40 40 41 /* *char [] mangleSymbolName!(char [] name);41 /* char [] mangleSymbolName!(char [] name); 42 42 * Convert a name of the form "module.func" to the form 43 43 * "6module4func". … … 56 56 } 57 57 58 /** 59 Runtime function that converts a name of the form "module.func" to the form "6module4func". 58 /* 59 Runtime function that converts a name of the form "module.func" to the form "6module4func" per 60 the D ABI name-mangling specification. 60 61 */ 61 62 char[] mangleNamespace(char[] text){ trunk/ddl/omf/OMFBinary.d
r94 r114 104 104 EnumData enumData; // most recent enum data record 105 105 Fixup[] fixups; 106 uint[char[]] dependencies; // extern index dependencies106 int[][char[]] dependencies; // extern index dependencies 107 107 Group[] groups; 108 108 … … 202 202 debug writefln("dependency: symbol %d",externIndex); 203 203 204 this.dependencies[this.externs[externIndex].name] = externIndex;204 this.dependencies[this.externs[externIndex].name] ~= externIndex; 205 205 break; 206 206 default: // do nothing … … 765 765 } 766 766 else{ 767 this.dependencies[ext.name] = extIdx;767 this.dependencies[ext.name] ~= extIdx; 768 768 } 769 769 } … … 841 841 assert(name in this.dependencies); 842 842 843 ExternalSymbol* ext = &this.externs[this.dependencies[name]]; 844 845 ext.name = name; 846 ext.address = address; 847 ext.isResolved = true; 843 foreach(int index; this.dependencies[name]){ 844 ExternalSymbol* ext = &this.externs[index]; 845 846 ext.name = name; 847 ext.address = address; 848 ext.isResolved = true; 849 } 848 850 } 849 851 trunk/ddl/omf/OMFModule.d
r101 r114 33 33 class OMFModule : DynamicModule{ 34 34 char[] moduleName; 35 char[][ char[]] dependencies;35 char[][] dependencies; 36 36 ExportSymbol[char[]] exports; 37 37 OMFBinary binary; … … 54 54 55 55 public char[][] getDependencies(){ 56 return dependencies .values;56 return dependencies; 57 57 } 58 58 59 59 public void resolveDependencies(ExportSymbol[] exports){ 60 60 foreach(ExportSymbol sym; exports){ 61 if(sym.name in dependencies){61 //if(sym.name in dependencies){ 62 62 debug printf("Resolving: %.*s = %0.8X\n",sym.name,sym.address); 63 63 binary.fixDependency(sym.name,sym.address); 64 }64 //} 65 65 } 66 66 binary.resolveFixups(); … … 88 88 89 89 protected void syncronizeSymbols(){ 90 this.dependencies = (char[][ char[]]).init;90 this.dependencies = (char[][]).init; 91 91 this.moduleName = binary.getName(); 92 92 … … 95 95 foreach(ExternalSymbol ext; binary.getExterns()){ 96 96 if(!ext.isResolved){ 97 dependencies [ext.name]= ext.name;97 dependencies ~= ext.name; 98 98 } 99 99 } trunk/doc/html/classes.html
r85 r114 18 18 </li> 19 19 <li> 20 <a href="module.ddl.ddl.DDL Binary.html#class_DDLBinary_">DDLBinary</a>20 <a href="module.ddl.ddl.DDLLibrary.html#class_DDLLibrary__ddl.DynamicLibrary.DynamicLibrary_">DDLLibrary</a> 21 21 </li> 22 22 <li> 23 <a href="module.ddl.DefaultRegistry.html#class_DefaultRegistry__ddl.LoaderRegistry.LoaderRegistry_">DefaultRegistry</a> 24 </li> 25 <li> 26 <a href="module.ddl.DynamicLibrary.html#class_DynamicLibrary_">DynamicLibrary</a> 27 </li> 28 <li> 29 <a href="module.ddl.DynamicLibraryLoader.html#class_DynamicLibraryLoader_">DynamicLibraryLoader</a> 30 </li> 31 <li> 32 <a href="module.ddl.Linker.html#class_LinkException__object.Exception_">LinkException</a> 33 </li> 34 <li> 35 <a href="module.ddl.Linker.html#class_Linker_">Linker</a> 36 </li> 37 <li> 38 <a href="module.ddl.LoaderRegistry.html#class_LoaderRegistry_">LoaderRegistry</a> 23 <a href="module.ddl.coff.DebugSymbol.html#class_SymbolTypeDefinition_">SymbolTypeDefinition</a> 39 24 </li> 40 25 </ul> trunk/doc/html/ddl.spec.html
r69 r114 44 44 <li>"PE/COFF" - Program Executable / Common Object File Format (Microsoft 32bit)</li> 45 45 <li>"ELF" - Executable and Linkable Format</li> 46 <li>"SITU" - DDL In-situ Module Format</li> 46 47 </ul> 47 48 <p> trunk/doc/html/members.html
r66 r114 13 13 <div class="clear"> </div> 14 14 <h2>Member Index</h2> 15 <ul xmlns="http://www.w3.org/1999/xhtml"> 16 <li> 17 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_ABSOLUTE_">IMAGE_REL_I386_ABSOLUTE</a> 18 </li> 19 <li> 20 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_DIR16_">IMAGE_REL_I386_DIR16</a> 21 </li> 22 <li> 23 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_DIR32_">IMAGE_REL_I386_DIR32</a> 24 </li> 25 <li> 26 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_DIR32NB_">IMAGE_REL_I386_DIR32NB</a> 27 </li> 28 <li> 29 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_REL16_">IMAGE_REL_I386_REL16</a> 30 </li> 31 <li> 32 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_REL32_">IMAGE_REL_I386_REL32</a> 33 </li> 34 <li> 35 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_SECREL_">IMAGE_REL_I386_SECREL</a> 36 </li> 37 <li> 38 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_SECTION_">IMAGE_REL_I386_SECTION</a> 39 </li> 40 <li> 41 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_REL_I386_SEG12_">IMAGE_REL_I386_SEG12</a> 42 </li> 43 <li> 44 <a href="module.ddl.coff.COFF.html#const_uint_IMAGE_SIZEOF_SHORT_NAME_">IMAGE_SIZEOF_SHORT_NAME</a> 45 </li> 46 <li> 47 <a href="module.ddl.coff.COFF.html#alias_PIMAGE_COFF_SYMBOLS_HEADER_">PIMAGE_COFF_SYMBOLS_HEADER</a> 48 </li> 49 <li> 50 <a href="module.ddl.coff.COFF.html#alias_PIMAGE_DEBUG_DIRECTORY_">PIMAGE_DEBUG_DIRECTORY</a> 51 </li> 52 <li> 53 <a href="module.ddl.coff.COFF.html#alias_PIMAGE_RELOCATION_">PIMAGE_RELOCATION</a> 54 </li> 55 <li> 56 <a href="module.ddl.coff.COFF.html#alias_PIMAGE_SECTION_HEADER_">PIMAGE_SECTION_HEADER</a> 57 </li> 58 </ul> 15 <ul xmlns="http://www.w3.org/1999/xhtml"/> 59 16 <p style="align:center"> 60 17 </p> trunk/doc/html/methods.html
r85 r114 15 15 <ul xmlns="http://www.w3.org/1999/xhtml"> 16 16 <li> 17 <a href="module.ddl. Demangle.html#char[]_demangleSymbol_char[]_symbol__">demangleSymbol</a>17 <a href="module.ddl.coff.DebugSymbol.html#char[]_dataTypeToString_DATATYPE_type__">dataTypeToString</a> 18 18 </li> 19 19 <li> 20 <a href="module.ddl.Demangle.html#char[]_demangleSymbol_char[]_symbol__inout_SymbolType_type__">demangleSymbol</a> 21 </li> 22 <li> 23 <a href="module.ddl.Demangle.html#SymbolType_getSymbolType_char[]_symbol__">getSymbolType</a> 24 </li> 25 <li> 26 <a href="module.ddl.coff.COFFObject.html#COFFHeader_*_parseCOFFHeader_File_file__">parseCOFFHeader</a> 20 <a href="module.ddl.Mangle.html#char[]_mangleNamespace_char[]_text__">mangleNamespace</a> 27 21 </li> 28 22 </ul> trunk/doc/html/module-tree.html
r85 r114 18 18 <ul> 19 19 <li> 20 <a href="module.ddl.DefaultRegistry.html">DefaultRegistry</a>21 </li>22 <li>23 <a href="module.ddl.Demangle.html">Demangle</a>24 </li>25 <li>26 <a href="module.ddl.DynamicLibrary.html">DynamicLibrary</a>27 </li>28 <li>29 <a href="module.ddl.DynamicLibraryLoader.html">DynamicLibraryLoader</a>30 </li>31 <li>32 <a href="module.ddl.DynamicModule.html">DynamicModule</a>33 </li>34 <li>35 <a href="module.ddl.ExportSymbol.html">ExportSymbol</a>36 </li>37 <li>38 <a href="module.ddl.Linker.html">Linker</a>39 </li>40 <li>41 <a href="module.ddl.LoaderRegistry.html">LoaderRegistry</a>42 </li>43 <li>44 20 <a href="module.ddl.Mangle.html">Mangle</a> 45 21 </li> 46 22 <li> 47 23 <a href="module.ddl.Utils.html">Utils</a> 48 </li>49 <li>50 <a href="module.ddl.all.html">all</a>51 24 </li> 52 25 <li> … … 63 36 </li> 64 37 <li> 65 <a href="module.ddl.coff.COFFLibrary.html">COFFLibrary</a>66 </li>67 <li>68 <a href="module.ddl.coff.COFFLoader.html">COFFLoader</a>69 </li>70 <li>71 38 <a href="module.ddl.coff.COFFModule.html">COFFModule</a> 72 39 </li> 73 40 <li> 74 <a href="module.ddl.coff.COFFObject.html">COFFObject</a> 75 </li> 76 <li> 77 <a href="module.ddl.coff.COFFWrite.html">COFFWrite</a> 41 <a href="module.ddl.coff.DebugSymbol.html">DebugSymbol</a> 78 42 </li> 79 43 <li> … … 86 50 <ul> 87 51 <li> 88 <a href="module.ddl.ddl.DDLBinary.html">DDLBinary</a>89 </li>90 <li>91 52 <a href="module.ddl.ddl.DDLLibrary.html">DDLLibrary</a> 92 53 </li> … … 97 58 </li> 98 59 <li> 99 <b>elf</b>100 <ul>101 <li>102 <a href="module.ddl.elf.ELFLoader.html">ELFLoader</a>103 </li>104 </ul>105 </li>106 <li>107 <b>insitu</b>108 <ul>109 <li>110 <a href="module.ddl.insitu.InSituBinary.html">InSituBinary</a>111 </li>112 <li>113 <a href="module.ddl.insitu.InSituLibBinary.html">InSituLibBinary</a>114 </li>115 <li>116 <a href="module.ddl.insitu.InSituLibrary.html">InSituLibrary</a>117 </li>118 <li>119 <a href="module.ddl.insitu.InSituLoader.html">InSituLoader</a>120 </li>121 <li>122 <a href="module.ddl.insitu.InSituMapBinary.html">InSituMapBinary</a>123 </li>124 <li>125 <a href="module.ddl.insitu.InSituModule.html">InSituModule</a>126 </li>127 </ul>128 </li>129 <li>130 60 <b>omf</b> 131 61 <ul> 132 62 <li> 133 <a href="module.ddl.omf.OMFBinary.html">OMFBinary</a>134 </li>135 <li>136 <a href="module.ddl.omf.OMFException.html">OMFException</a>137 </li>138 <li>139 <a href="module.ddl.omf.OMFLibrary.html">OMFLibrary</a>140 </li>141 <li>142 63 <a href="module.ddl.omf.OMFLoader.html">OMFLoader</a> 143 </li>144 <li>145 <a href="module.ddl.omf.OMFModule.html">OMFModule</a>146 </li>147 <li>148 <a href="module.ddl.omf.RecordCursor.html">RecordCursor</a>149 64 </li> 150 65 </ul> trunk/doc/html/module.ddl.Mangle.html
r85 r114 18 18 <tr> 19 19 <td class="title">Built on:</td> 20 <td> Sun Dec 11 23:24:34 200520 <td>Fri Jan 13 20:54:21 2006 21 21 </td> 22 22 </tr> … … 37 37 </tr> 38 38 </tbody> 39 </table><h2>Members:</h2><p/><hr/> 39 </table><h2>Members:</h2><p><a href="#template_mangleSymbolName_char[]_text_char[]_latestword_=_""_">template 40 41 <span class="identifier">mangleSymbolName</span></a><br/><a href="#char[]_mangleNamespace_char[]_text__">char[] 42 43 <span class="identifier">mangleNamespace</span></a>( 44 char[] 45 46 <span class="param">text</span>) 47 <br/></p><hr/><a name="template_mangleSymbolName_char[]_text_char[]_latestword_=_""_"/><span class="decltitle"><a href="#template_mangleSymbolName_char[]_text_char[]_latestword_=_""_">template 48 49 <span class="identifier">mangleSymbolName</span></a></span><br/><h3>Summary:</h3>char [] mangleSymbolName!(char [] name); 50 Convert a name of the form "module.func" to the form 51 "6module4func". 52 53 <br/><blockquote/><hr/><a name="char[]_mangleNamespace_char[]_text__"/><span class="decltitle"><a href="#char[]_mangleNamespace_char[]_text__">char[] 54 55 <span class="identifier">mangleNamespace</span></a>( 56 char[] 57 58 <span class="param">text</span>) 59 </span><br/><h3>Summary:</h3>Runtime function that converts a name of the form "module.func" to the form "6module4func". 60 <br/> 40 61 <p style="align:center"> 41 62 </p> trunk/doc/html/module.ddl.coff.COFF.html
r85 r114 12 12 <div class="yellowbar-right"> </div> 13 13 <div class="clear"> </div> 14 <h2>Module ddl.coff.COFF</h2> 15 <br/> 16 <br/> 17 <table class="moduleinfo"> 14 <h2>Module ddl.coff.COFF</h2>Microsoft PE-COFF data structures & constants 15 <br/><br/><table class="moduleinfo"> 18 16 <tbody> 19 17 <tr> 20 18 <td class="title">Built on:</td> 21 <td> Sun Dec 11 23:24:34 200519 <td>Fri Jan 13 20:54:21 2006 22 20 </td> 23 21 </tr> 24 22 <tr> 25 23 <td class="title">Copyright:</td> 26 <td></td> 24 <td>2005, 2006 J Duncan, Eric Anderton 25 </td> 26 </tr> 27 <tr> 28 <td class="title">Authors:</td> 29 <td>J Duncan, Eric Anderton 30 </td> 31 </tr> 32 <tr> 33 <td class="title">License:</td> 34 <td>BSD Derivative (see source for details) 35 </td> 27 36 </tr> 28 37 </tbody> 29 </table> 30 <h2>Members:</h2> 31 <p><a href="#struct_COFFHeader_">struct 38 </table><h2>Members:</h2><p><a href="#struct_COFFHeader_">struct 32 39 33 40 <span class="identifier">COFFHeader</span></a><br/><a href="#struct_PEHeader_">struct 34 41 35 <span class="identifier">PEHeader</span></a><br/>< a href="#const_uint_IMAGE_SIZEOF_SHORT_NAME_">uint42 <span class="identifier">PEHeader</span></a><br/></p><hr/><a name="struct_COFFHeader_"/><span class="decltitle"><a href="#struct_COFFHeader_">struct 36 43 37 <span class="identifier"> IMAGE_SIZEOF_SHORT_NAME</span></a><br/><a href="#struct__IMAGE_SECTION_HEADER_">struct44 <span class="identifier">COFFHeader</span></a></span><br/><blockquote/><hr/><a name="struct_PEHeader_"/><span class="decltitle"><a href="#struct_PEHeader_">struct 38 45 39 <span class="identifier">_IMAGE_SECTION_HEADER</span></a><br/><a href="#alias_PIMAGE_SECTION_HEADER_">alias 40 41 <span class="identifier">PIMAGE_SECTION_HEADER</span></a><br/><a href="#struct_IMAGE_DEBUG_DIRECTORY_">struct 42 43 <span class="identifier">IMAGE_DEBUG_DIRECTORY</span></a><br/><a href="#alias_PIMAGE_DEBUG_DIRECTORY_">alias 44 45 <span class="identifier">PIMAGE_DEBUG_DIRECTORY</span></a><br/><a href="#struct__IMAGE_COFF_SYMBOLS_HEADER_">struct 46 47 <span class="identifier">_IMAGE_COFF_SYMBOLS_HEADER</span></a><br/><a href="#alias_PIMAGE_COFF_SYMBOLS_HEADER_">alias 48 49 <span class="identifier">PIMAGE_COFF_SYMBOLS_HEADER</span></a><br/><a href="#struct__IMAGE_RELOCATION_">struct 50 51 <span class="identifier">_IMAGE_RELOCATION</span></a><br/><a href="#alias_PIMAGE_RELOCATION_">alias 52 53 <span class="identifier">PIMAGE_RELOCATION</span></a><br/><a href="#const_uint_IMAGE_REL_I386_ABSOLUTE_">uint 54 55 <span class="identifier">IMAGE_REL_I386_ABSOLUTE</span></a><br/><a href="#const_uint_IMAGE_REL_I386_DIR16_">uint 56 57 <span class="identifier">IMAGE_REL_I386_DIR16</span></a><br/><a href="#const_uint_IMAGE_REL_I386_REL16_">uint 58 59 <span class="identifier">IMAGE_REL_I386_REL16</span></a><br/><a href="#const_uint_IMAGE_REL_I386_DIR32_">uint 60 61 <span class="identifier">IMAGE_REL_I386_DIR32</span></a><br/><a href="#const_uint_IMAGE_REL_I386_DIR32NB_">uint 62 63 <span class="identifier">IMAGE_REL_I386_DIR32NB</span></a><br/><a href="#const_uint_IMAGE_REL_I386_SEG12_">uint 64 65 <span class="identifier">IMAGE_REL_I386_SEG12</span></a><br/><a href="#const_uint_IMAGE_REL_I386_SECTION_">uint 66 67 <span class="identifier">IMAGE_REL_I386_SECTION</span></a><br/><a href="#const_uint_IMAGE_REL_I386_SECREL_">uint 68 69 <span class="identifier">IMAGE_REL_I386_SECREL</span></a><br/><a href="#const_uint_IMAGE_REL_I386_REL32_">uint 70 71 <span class="identifier">IMAGE_REL_I386_REL32</span></a><br/></p> 72 <hr/> 73 <a name="struct_COFFHeader_"/> 74 <span class="decltitle"><a href="#struct_COFFHeader_">struct 75 76 <span class="identifier">COFFHeader</span></a></span> 77 <br/> 78 <blockquote/> 79 <hr/> 80 <a name="struct_PEHeader_"/> 81 <span class="decltitle"><a href="#struct_PEHeader_">struct 82 83 <span class="identifier">PEHeader</span></a></span> 84 <br/> 85 <blockquote/> 86 <hr/> 87 <a name="const_uint_IMAGE_SIZEOF_SHORT_NAME_"/> 88 <span class="decltitle"><a href="#const_uint_IMAGE_SIZEOF_SHORT_NAME_">uint 89 90 <span class="identifier">IMAGE_SIZEOF_SHORT_NAME</span></a></span> 91 <br/> 92 <hr/> 93 <a name="struct__IMAGE_SECTION_HEADER_"/> 94 <span class="decltitle"><a href="#struct__IMAGE_SECTION_HEADER_">struct 95 96 <span class="identifier">_IMAGE_SECTION_HEADER</span></a></span> 97 <br/> 98 <blockquote/> 99 <hr/> 100 <a name="alias_PIMAGE_SECTION_HEADER_"/> 101 <span class="decltitle"><a href="#alias_PIMAGE_SECTION_HEADER_">alias 102 103 <span class="identifier">PIMAGE_SECTION_HEADER</span></a></span> 104 <br/> 105 <hr/> 106 <a name="struct_IMAGE_DEBUG_DIRECTORY_"/> 107 <span class="decltitle"><a href="#struct_IMAGE_DEBUG_DIRECTORY_">struct 108 109 <span class="identifier">IMAGE_DEBUG_DIRECTORY</span></a></span> 110 <br/> 111 <blockquote/> 112 <hr/> 113 <a name="alias_PIMAGE_DEBUG_DIRECTORY_"/> 114 <span class="decltitle"><a href="#alias_PIMAGE_DEBUG_DIRECTORY_">alias 115 116 <span class="identifier">PIMAGE_DEBUG_DIRECTORY</span></a></span> 117 <br/> 118 <hr/> 119 <a name="struct__IMAGE_COFF_SYMBOLS_HEADER_"/> 120 <span class="decltitle"><a href="#struct__IMAGE_COFF_SYMBOLS_HEADER_">struct 121 122 <span class="identifier">_IMAGE_COFF_SYMBOLS_HEADER</span></a></span> 123 <br/> 124 <blockquote/> 125 <hr/> 126 <a name="alias_PIMAGE_COFF_SYMBOLS_HEADER_"/> 127 <span class="decltitle"><a href="#alias_PIMAGE_COFF_SYMBOLS_HEADER_">alias 128 129 <span class="identifier">PIMAGE_COFF_SYMBOLS_HEADER</span></a></span> 130 <br/> 131 <hr/> 132 <a name="struct__IMAGE_RELOCATION_"/> 133 <span class="decltitle"><a href="#struct__IMAGE_RELOCATION_">struct
