xref: /openbsd-src/gnu/usr.bin/binutils-2.17/include/coff/pe.h (revision 6e5cc2525b66b7e99084780266981e9f800d7bd2)
13d8817e4Smiod /* pe.h  -  PE COFF header information
23d8817e4Smiod 
33d8817e4Smiod    Copyright 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
43d8817e4Smiod 
53d8817e4Smiod    This file is part of BFD, the Binary File Descriptor library.
63d8817e4Smiod 
73d8817e4Smiod    This program is free software; you can redistribute it and/or modify
83d8817e4Smiod    it under the terms of the GNU General Public License as published by
93d8817e4Smiod    the Free Software Foundation; either version 2 of the License, or
103d8817e4Smiod    (at your option) any later version.
113d8817e4Smiod 
123d8817e4Smiod    This program is distributed in the hope that it will be useful,
133d8817e4Smiod    but WITHOUT ANY WARRANTY; without even the implied warranty of
143d8817e4Smiod    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153d8817e4Smiod    GNU General Public License for more details.
163d8817e4Smiod 
173d8817e4Smiod    You should have received a copy of the GNU General Public License
183d8817e4Smiod    along with this program; if not, write to the Free Software Foundation,
193d8817e4Smiod    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
203d8817e4Smiod #ifndef _PE_H
213d8817e4Smiod #define _PE_H
223d8817e4Smiod 
233d8817e4Smiod /* NT specific file attributes.  */
243d8817e4Smiod #define IMAGE_FILE_RELOCS_STRIPPED           0x0001
253d8817e4Smiod #define IMAGE_FILE_EXECUTABLE_IMAGE          0x0002
263d8817e4Smiod #define IMAGE_FILE_LINE_NUMS_STRIPPED        0x0004
273d8817e4Smiod #define IMAGE_FILE_LOCAL_SYMS_STRIPPED       0x0008
283d8817e4Smiod #define IMAGE_FILE_AGGRESSIVE_WS_TRIM        0x0010
293d8817e4Smiod #define IMAGE_FILE_LARGE_ADDRESS_AWARE       0x0020
303d8817e4Smiod #define IMAGE_FILE_16BIT_MACHINE             0x0040
313d8817e4Smiod #define IMAGE_FILE_BYTES_REVERSED_LO         0x0080
323d8817e4Smiod #define IMAGE_FILE_32BIT_MACHINE             0x0100
333d8817e4Smiod #define IMAGE_FILE_DEBUG_STRIPPED            0x0200
343d8817e4Smiod #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP   0x0400
353d8817e4Smiod #define IMAGE_FILE_NET_RUN_FROM_SWAP         0x0800
363d8817e4Smiod #define IMAGE_FILE_SYSTEM                    0x1000
373d8817e4Smiod #define IMAGE_FILE_DLL                       0x2000
383d8817e4Smiod #define IMAGE_FILE_UP_SYSTEM_ONLY            0x4000
393d8817e4Smiod #define IMAGE_FILE_BYTES_REVERSED_HI         0x8000
403d8817e4Smiod 
413d8817e4Smiod /* Additional flags to be set for section headers to allow the NT loader to
423d8817e4Smiod    read and write to the section data (to replace the addresses of data in
433d8817e4Smiod    dlls for one thing); also to execute the section in .text's case.  */
443d8817e4Smiod #define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
453d8817e4Smiod #define IMAGE_SCN_MEM_EXECUTE     0x20000000
463d8817e4Smiod #define IMAGE_SCN_MEM_READ        0x40000000
473d8817e4Smiod #define IMAGE_SCN_MEM_WRITE       0x80000000
483d8817e4Smiod 
493d8817e4Smiod /* Section characteristics added for ppc-nt.  */
503d8817e4Smiod 
513d8817e4Smiod #define IMAGE_SCN_TYPE_NO_PAD                0x00000008  /* Reserved. */
523d8817e4Smiod 
533d8817e4Smiod #define IMAGE_SCN_CNT_CODE                   0x00000020  /* Section contains code. */
543d8817e4Smiod #define IMAGE_SCN_CNT_INITIALIZED_DATA       0x00000040  /* Section contains initialized data. */
553d8817e4Smiod #define IMAGE_SCN_CNT_UNINITIALIZED_DATA     0x00000080  /* Section contains uninitialized data. */
563d8817e4Smiod 
573d8817e4Smiod #define IMAGE_SCN_LNK_OTHER                  0x00000100  /* Reserved. */
583d8817e4Smiod #define IMAGE_SCN_LNK_INFO                   0x00000200  /* Section contains comments or some other type of information. */
593d8817e4Smiod #define IMAGE_SCN_LNK_REMOVE                 0x00000800  /* Section contents will not become part of image. */
603d8817e4Smiod #define IMAGE_SCN_LNK_COMDAT                 0x00001000  /* Section contents comdat. */
613d8817e4Smiod 
623d8817e4Smiod #define IMAGE_SCN_MEM_FARDATA                0x00008000
633d8817e4Smiod 
643d8817e4Smiod #define IMAGE_SCN_MEM_PURGEABLE              0x00020000
653d8817e4Smiod #define IMAGE_SCN_MEM_16BIT                  0x00020000
663d8817e4Smiod #define IMAGE_SCN_MEM_LOCKED                 0x00040000
673d8817e4Smiod #define IMAGE_SCN_MEM_PRELOAD                0x00080000
683d8817e4Smiod 
693d8817e4Smiod #define IMAGE_SCN_ALIGN_1BYTES               0x00100000
703d8817e4Smiod #define IMAGE_SCN_ALIGN_2BYTES               0x00200000
713d8817e4Smiod #define IMAGE_SCN_ALIGN_4BYTES               0x00300000
723d8817e4Smiod #define IMAGE_SCN_ALIGN_8BYTES               0x00400000
733d8817e4Smiod #define IMAGE_SCN_ALIGN_16BYTES              0x00500000  /* Default alignment if no others are specified. */
743d8817e4Smiod #define IMAGE_SCN_ALIGN_32BYTES              0x00600000
753d8817e4Smiod #define IMAGE_SCN_ALIGN_64BYTES              0x00700000
763d8817e4Smiod 
773d8817e4Smiod #define IMAGE_SCN_LNK_NRELOC_OVFL            0x01000000  /* Section contains extended relocations. */
783d8817e4Smiod #define IMAGE_SCN_MEM_NOT_CACHED             0x04000000  /* Section is not cachable.               */
793d8817e4Smiod #define IMAGE_SCN_MEM_NOT_PAGED              0x08000000  /* Section is not pageable.               */
803d8817e4Smiod #define IMAGE_SCN_MEM_SHARED                 0x10000000  /* Section is shareable.                  */
813d8817e4Smiod 
823d8817e4Smiod /* COMDAT selection codes.  */
833d8817e4Smiod 
843d8817e4Smiod #define IMAGE_COMDAT_SELECT_NODUPLICATES     (1) /* Warn if duplicates.  */
853d8817e4Smiod #define IMAGE_COMDAT_SELECT_ANY		     (2) /* No warning.  */
863d8817e4Smiod #define IMAGE_COMDAT_SELECT_SAME_SIZE	     (3) /* Warn if different size.  */
873d8817e4Smiod #define IMAGE_COMDAT_SELECT_EXACT_MATCH	     (4) /* Warn if different.  */
883d8817e4Smiod #define IMAGE_COMDAT_SELECT_ASSOCIATIVE	     (5) /* Base on other section.  */
893d8817e4Smiod 
903d8817e4Smiod /* Machine numbers.  */
913d8817e4Smiod 
923d8817e4Smiod #define IMAGE_FILE_MACHINE_UNKNOWN           0x0000
933d8817e4Smiod #define IMAGE_FILE_MACHINE_ALPHA             0x0184
943d8817e4Smiod #define IMAGE_FILE_MACHINE_ALPHA64           0x0284
953d8817e4Smiod #define IMAGE_FILE_MACHINE_AM33              0x01d3
963d8817e4Smiod #define IMAGE_FILE_MACHINE_AMD64             0x8664
973d8817e4Smiod #define IMAGE_FILE_MACHINE_ARM               0x01c0
983d8817e4Smiod #define IMAGE_FILE_MACHINE_AXP64             IMAGE_FILE_MACHINE_ALPHA64
993d8817e4Smiod #define IMAGE_FILE_MACHINE_CEE               0xc0ee
1003d8817e4Smiod #define IMAGE_FILE_MACHINE_CEF               0x0cef
1013d8817e4Smiod #define IMAGE_FILE_MACHINE_EBC               0x0ebc
1023d8817e4Smiod #define IMAGE_FILE_MACHINE_I386              0x014c
1033d8817e4Smiod #define IMAGE_FILE_MACHINE_IA64              0x0200
1043d8817e4Smiod #define IMAGE_FILE_MACHINE_M32R              0x9041
1053d8817e4Smiod #define IMAGE_FILE_MACHINE_M68K              0x0268
1063d8817e4Smiod #define IMAGE_FILE_MACHINE_MIPS16            0x0266
1073d8817e4Smiod #define IMAGE_FILE_MACHINE_MIPSFPU           0x0366
1083d8817e4Smiod #define IMAGE_FILE_MACHINE_MIPSFPU16         0x0466
1093d8817e4Smiod #define IMAGE_FILE_MACHINE_POWERPC           0x01f0
1103d8817e4Smiod #define IMAGE_FILE_MACHINE_POWERPCFP         0x01f1
1113d8817e4Smiod #define IMAGE_FILE_MACHINE_R10000            0x0168
1123d8817e4Smiod #define IMAGE_FILE_MACHINE_R3000             0x0162
1133d8817e4Smiod #define IMAGE_FILE_MACHINE_R4000             0x0166
1143d8817e4Smiod #define IMAGE_FILE_MACHINE_SH3               0x01a2
1153d8817e4Smiod #define IMAGE_FILE_MACHINE_SH3DSP            0x01a3
1163d8817e4Smiod #define IMAGE_FILE_MACHINE_SH3E              0x01a4
1173d8817e4Smiod #define IMAGE_FILE_MACHINE_SH4               0x01a6
1183d8817e4Smiod #define IMAGE_FILE_MACHINE_SH5               0x01a8
1193d8817e4Smiod #define IMAGE_FILE_MACHINE_THUMB             0x01c2
1203d8817e4Smiod #define IMAGE_FILE_MACHINE_TRICORE           0x0520
1213d8817e4Smiod #define IMAGE_FILE_MACHINE_WCEMIPSV2         0x0169
1223d8817e4Smiod 
1233d8817e4Smiod #define IMAGE_SUBSYSTEM_UNKNOWN			 0
1243d8817e4Smiod #define IMAGE_SUBSYSTEM_NATIVE			 1
1253d8817e4Smiod #define IMAGE_SUBSYSTEM_WINDOWS_GUI		 2
1263d8817e4Smiod #define IMAGE_SUBSYSTEM_WINDOWS_CUI		 3
1273d8817e4Smiod #define IMAGE_SUBSYSTEM_POSIX_CUI		 7
1283d8817e4Smiod #define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI		 9
1293d8817e4Smiod #define IMAGE_SUBSYSTEM_EFI_APPLICATION		10
1303d8817e4Smiod #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER	11
1313d8817e4Smiod #define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER	12
1323d8817e4Smiod 
1333d8817e4Smiod /* Magic values that are true for all dos/nt implementations.  */
1343d8817e4Smiod #define DOSMAGIC       0x5a4d
1353d8817e4Smiod #define NT_SIGNATURE   0x00004550
1363d8817e4Smiod 
1373d8817e4Smiod /* NT allows long filenames, we want to accommodate this.
1383d8817e4Smiod    This may break some of the bfd functions.  */
1393d8817e4Smiod #undef  FILNMLEN
1403d8817e4Smiod #define FILNMLEN	18	/* # characters in a file name.  */
1413d8817e4Smiod 
1423d8817e4Smiod struct external_PEI_DOS_hdr
1433d8817e4Smiod {
1443d8817e4Smiod   /* DOS header fields - always at offset zero in the EXE file.  */
1453d8817e4Smiod   char e_magic[2];		/* Magic number, 0x5a4d.  */
1463d8817e4Smiod   char e_cblp[2];		/* Bytes on last page of file, 0x90.  */
1473d8817e4Smiod   char e_cp[2];			/* Pages in file, 0x3.  */
1483d8817e4Smiod   char e_crlc[2];		/* Relocations, 0x0.  */
1493d8817e4Smiod   char e_cparhdr[2];		/* Size of header in paragraphs, 0x4.  */
1503d8817e4Smiod   char e_minalloc[2];		/* Minimum extra paragraphs needed, 0x0.  */
1513d8817e4Smiod   char e_maxalloc[2];		/* Maximum extra paragraphs needed, 0xFFFF.  */
1523d8817e4Smiod   char e_ss[2];			/* Initial (relative) SS value, 0x0.  */
1533d8817e4Smiod   char e_sp[2];			/* Initial SP value, 0xb8.  */
1543d8817e4Smiod   char e_csum[2];		/* Checksum, 0x0.  */
1553d8817e4Smiod   char e_ip[2];			/* Initial IP value, 0x0.  */
1563d8817e4Smiod   char e_cs[2];			/* Initial (relative) CS value, 0x0.  */
1573d8817e4Smiod   char e_lfarlc[2];		/* File address of relocation table, 0x40.  */
1583d8817e4Smiod   char e_ovno[2];		/* Overlay number, 0x0.  */
1593d8817e4Smiod   char e_res[4][2];		/* Reserved words, all 0x0.  */
1603d8817e4Smiod   char e_oemid[2];		/* OEM identifier (for e_oeminfo), 0x0.  */
1613d8817e4Smiod   char e_oeminfo[2];		/* OEM information; e_oemid specific, 0x0.  */
1623d8817e4Smiod   char e_res2[10][2];		/* Reserved words, all 0x0.  */
1633d8817e4Smiod   char e_lfanew[4];		/* File address of new exe header, usually 0x80.  */
1643d8817e4Smiod   char dos_message[16][4];	/* Other stuff, always follow DOS header.  */
1653d8817e4Smiod };
1663d8817e4Smiod 
1673d8817e4Smiod struct external_PEI_IMAGE_hdr
1683d8817e4Smiod {
1693d8817e4Smiod   char nt_signature[4];		/* required NT signature, 0x4550.  */
1703d8817e4Smiod 
1713d8817e4Smiod   /* From standard header.  */
1723d8817e4Smiod   char f_magic[2];		/* Magic number.		*/
1733d8817e4Smiod   char f_nscns[2];		/* Number of sections.		*/
1743d8817e4Smiod   char f_timdat[4];		/* Time & date stamp.		*/
1753d8817e4Smiod   char f_symptr[4];		/* File pointer to symtab.	*/
1763d8817e4Smiod   char f_nsyms[4];		/* Number of symtab entries.	*/
1773d8817e4Smiod   char f_opthdr[2];		/* Sizeof(optional hdr).	*/
1783d8817e4Smiod   char f_flags[2];		/* Flags.			*/
1793d8817e4Smiod };
1803d8817e4Smiod 
1813d8817e4Smiod struct external_PEI_filehdr
1823d8817e4Smiod {
1833d8817e4Smiod   /* DOS header fields - always at offset zero in the EXE file.  */
1843d8817e4Smiod   char e_magic[2];		/* Magic number, 0x5a4d.  */
1853d8817e4Smiod   char e_cblp[2];		/* Bytes on last page of file, 0x90.  */
1863d8817e4Smiod   char e_cp[2];			/* Pages in file, 0x3.  */
1873d8817e4Smiod   char e_crlc[2];		/* Relocations, 0x0.  */
1883d8817e4Smiod   char e_cparhdr[2];		/* Size of header in paragraphs, 0x4.  */
1893d8817e4Smiod   char e_minalloc[2];		/* Minimum extra paragraphs needed, 0x0.  */
1903d8817e4Smiod   char e_maxalloc[2];		/* Maximum extra paragraphs needed, 0xFFFF.  */
1913d8817e4Smiod   char e_ss[2];			/* Initial (relative) SS value, 0x0.  */
1923d8817e4Smiod   char e_sp[2];			/* Initial SP value, 0xb8.  */
1933d8817e4Smiod   char e_csum[2];		/* Checksum, 0x0.  */
1943d8817e4Smiod   char e_ip[2];			/* Initial IP value, 0x0.  */
1953d8817e4Smiod   char e_cs[2];			/* Initial (relative) CS value, 0x0.  */
1963d8817e4Smiod   char e_lfarlc[2];		/* File address of relocation table, 0x40.  */
1973d8817e4Smiod   char e_ovno[2];		/* Overlay number, 0x0.  */
1983d8817e4Smiod   char e_res[4][2];		/* Reserved words, all 0x0.  */
1993d8817e4Smiod   char e_oemid[2];		/* OEM identifier (for e_oeminfo), 0x0.  */
2003d8817e4Smiod   char e_oeminfo[2];		/* OEM information; e_oemid specific, 0x0.  */
2013d8817e4Smiod   char e_res2[10][2];		/* Reserved words, all 0x0.  */
2023d8817e4Smiod   char e_lfanew[4];		/* File address of new exe header, usually 0x80.  */
2033d8817e4Smiod   char dos_message[16][4];	/* Other stuff, always follow DOS header.  */
2043d8817e4Smiod 
2053d8817e4Smiod   /* Note: additional bytes may be inserted before the signature.  Use
2063d8817e4Smiod    the e_lfanew field to find the actual location of the NT signature.  */
2073d8817e4Smiod 
2083d8817e4Smiod   char nt_signature[4];		/* required NT signature, 0x4550.  */
2093d8817e4Smiod 
2103d8817e4Smiod   /* From standard header.  */
2113d8817e4Smiod   char f_magic[2];		/* Magic number.		*/
2123d8817e4Smiod   char f_nscns[2];		/* Number of sections.		*/
2133d8817e4Smiod   char f_timdat[4];		/* Time & date stamp.		*/
2143d8817e4Smiod   char f_symptr[4];		/* File pointer to symtab.	*/
2153d8817e4Smiod   char f_nsyms[4];		/* Number of symtab entries.	*/
2163d8817e4Smiod   char f_opthdr[2];		/* Sizeof(optional hdr).	*/
2173d8817e4Smiod   char f_flags[2];		/* Flags.			*/
2183d8817e4Smiod };
2193d8817e4Smiod 
2203d8817e4Smiod #ifdef COFF_IMAGE_WITH_PE
2213d8817e4Smiod 
2223d8817e4Smiod /* The filehdr is only weird in images.  */
2233d8817e4Smiod 
2243d8817e4Smiod #undef  FILHDR
2253d8817e4Smiod #define FILHDR struct external_PEI_filehdr
2263d8817e4Smiod #undef  FILHSZ
2273d8817e4Smiod #define FILHSZ 152
2283d8817e4Smiod 
2293d8817e4Smiod #endif /* COFF_IMAGE_WITH_PE */
2303d8817e4Smiod 
2313d8817e4Smiod /* 32-bit PE a.out header: */
2323d8817e4Smiod 
2333d8817e4Smiod typedef struct
2343d8817e4Smiod {
2353d8817e4Smiod   AOUTHDR standard;
2363d8817e4Smiod 
2373d8817e4Smiod   /* NT extra fields; see internal.h for descriptions.  */
2383d8817e4Smiod   char  ImageBase[4];
2393d8817e4Smiod   char  SectionAlignment[4];
2403d8817e4Smiod   char  FileAlignment[4];
2413d8817e4Smiod   char  MajorOperatingSystemVersion[2];
2423d8817e4Smiod   char  MinorOperatingSystemVersion[2];
2433d8817e4Smiod   char  MajorImageVersion[2];
2443d8817e4Smiod   char  MinorImageVersion[2];
2453d8817e4Smiod   char  MajorSubsystemVersion[2];
2463d8817e4Smiod   char  MinorSubsystemVersion[2];
2473d8817e4Smiod   char  Reserved1[4];
2483d8817e4Smiod   char  SizeOfImage[4];
2493d8817e4Smiod   char  SizeOfHeaders[4];
2503d8817e4Smiod   char  CheckSum[4];
2513d8817e4Smiod   char  Subsystem[2];
2523d8817e4Smiod   char  DllCharacteristics[2];
2533d8817e4Smiod   char  SizeOfStackReserve[4];
2543d8817e4Smiod   char  SizeOfStackCommit[4];
2553d8817e4Smiod   char  SizeOfHeapReserve[4];
2563d8817e4Smiod   char  SizeOfHeapCommit[4];
2573d8817e4Smiod   char  LoaderFlags[4];
2583d8817e4Smiod   char  NumberOfRvaAndSizes[4];
2593d8817e4Smiod   /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];  */
2603d8817e4Smiod   char  DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars.  */
2613d8817e4Smiod } PEAOUTHDR;
2623d8817e4Smiod #undef AOUTSZ
2633d8817e4Smiod #define AOUTSZ (AOUTHDRSZ + 196)
2643d8817e4Smiod 
2653d8817e4Smiod /* Like PEAOUTHDR, except that the "standard" member has no BaseOfData
2663d8817e4Smiod    (aka data_start) member and that some of the members are 8 instead
2673d8817e4Smiod    of just 4 bytes long.  */
2683d8817e4Smiod typedef struct
2693d8817e4Smiod {
270*6e5cc252Skettenis #ifdef AOUTHDRSZ64
271*6e5cc252Skettenis   AOUTHDR64 standard;
272*6e5cc252Skettenis #else
2733d8817e4Smiod   AOUTHDR standard;
274*6e5cc252Skettenis #endif
2753d8817e4Smiod   /* NT extra fields; see internal.h for descriptions.  */
2763d8817e4Smiod   char  ImageBase[8];
2773d8817e4Smiod   char  SectionAlignment[4];
2783d8817e4Smiod   char  FileAlignment[4];
2793d8817e4Smiod   char  MajorOperatingSystemVersion[2];
2803d8817e4Smiod   char  MinorOperatingSystemVersion[2];
2813d8817e4Smiod   char  MajorImageVersion[2];
2823d8817e4Smiod   char  MinorImageVersion[2];
2833d8817e4Smiod   char  MajorSubsystemVersion[2];
2843d8817e4Smiod   char  MinorSubsystemVersion[2];
2853d8817e4Smiod   char  Reserved1[4];
2863d8817e4Smiod   char  SizeOfImage[4];
2873d8817e4Smiod   char  SizeOfHeaders[4];
2883d8817e4Smiod   char  CheckSum[4];
2893d8817e4Smiod   char  Subsystem[2];
2903d8817e4Smiod   char  DllCharacteristics[2];
2913d8817e4Smiod   char  SizeOfStackReserve[8];
2923d8817e4Smiod   char  SizeOfStackCommit[8];
2933d8817e4Smiod   char  SizeOfHeapReserve[8];
2943d8817e4Smiod   char  SizeOfHeapCommit[8];
2953d8817e4Smiod   char  LoaderFlags[4];
2963d8817e4Smiod   char  NumberOfRvaAndSizes[4];
2973d8817e4Smiod   /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];  */
2983d8817e4Smiod   char  DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars.  */
2993d8817e4Smiod } PEPAOUTHDR;
300*6e5cc252Skettenis 
301*6e5cc252Skettenis #ifdef AOUTHDRSZ64
302*6e5cc252Skettenis #define PEPAOUTSZ	(AOUTHDRSZ64 + 196 + 5 * 4) /* = 240 */
303*6e5cc252Skettenis #else
3043d8817e4Smiod #define PEPAOUTSZ	240
305*6e5cc252Skettenis #endif
3063d8817e4Smiod 
3073d8817e4Smiod #undef  E_FILNMLEN
3083d8817e4Smiod #define E_FILNMLEN	18	/* # characters in a file name.  */
3093d8817e4Smiod 
3103d8817e4Smiod /* Import Tyoes fot ILF format object files..  */
3113d8817e4Smiod #define IMPORT_CODE	0
3123d8817e4Smiod #define IMPORT_DATA	1
3133d8817e4Smiod #define IMPORT_CONST	2
3143d8817e4Smiod 
3153d8817e4Smiod /* Import Name Tyoes for ILF format object files.  */
3163d8817e4Smiod #define IMPORT_ORDINAL		0
3173d8817e4Smiod #define IMPORT_NAME		1
3183d8817e4Smiod #define IMPORT_NAME_NOPREFIX	2
3193d8817e4Smiod #define IMPORT_NAME_UNDECORATE	3
3203d8817e4Smiod 
3213d8817e4Smiod /* Weak external characteristics.  */
3223d8817e4Smiod #define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY	1
3233d8817e4Smiod #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY	2
3243d8817e4Smiod #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS		3
3253d8817e4Smiod 
3263d8817e4Smiod #endif /* _PE_H */
327