diff options
Diffstat (limited to 'src/cmd/ld/pe.h')
| -rw-r--r-- | src/cmd/ld/pe.h | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/src/cmd/ld/pe.h b/src/cmd/ld/pe.h deleted file mode 100644 index 7aa938829..000000000 --- a/src/cmd/ld/pe.h +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -typedef struct { - uint16 Machine; - uint16 NumberOfSections; - uint32 TimeDateStamp; - uint32 PointerToSymbolTable; - uint32 NumberOfSymbols; - uint16 SizeOfOptionalHeader; - uint16 Characteristics; -} IMAGE_FILE_HEADER; - -typedef struct { - uint32 VirtualAddress; - uint32 Size; -} IMAGE_DATA_DIRECTORY; - -typedef struct { - uint16 Magic; - uint8 MajorLinkerVersion; - uint8 MinorLinkerVersion; - uint32 SizeOfCode; - uint32 SizeOfInitializedData; - uint32 SizeOfUninitializedData; - uint32 AddressOfEntryPoint; - uint32 BaseOfCode; - uint32 BaseOfData; - uint32 ImageBase; - uint32 SectionAlignment; - uint32 FileAlignment; - uint16 MajorOperatingSystemVersion; - uint16 MinorOperatingSystemVersion; - uint16 MajorImageVersion; - uint16 MinorImageVersion; - uint16 MajorSubsystemVersion; - uint16 MinorSubsystemVersion; - uint32 Win32VersionValue; - uint32 SizeOfImage; - uint32 SizeOfHeaders; - uint32 CheckSum; - uint16 Subsystem; - uint16 DllCharacteristics; - uint32 SizeOfStackReserve; - uint32 SizeOfStackCommit; - uint32 SizeOfHeapReserve; - uint32 SizeOfHeapCommit; - uint32 LoaderFlags; - uint32 NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[16]; -} IMAGE_OPTIONAL_HEADER; - -typedef struct { - uint8 Name[8]; - uint32 VirtualSize; - uint32 VirtualAddress; - uint32 SizeOfRawData; - uint32 PointerToRawData; - uint32 PointerToRelocations; - uint32 PointerToLineNumbers; - uint16 NumberOfRelocations; - uint16 NumberOfLineNumbers; - uint32 Characteristics; -} IMAGE_SECTION_HEADER; - -typedef struct { - uint32 OriginalFirstThunk; - uint32 TimeDateStamp; - uint32 ForwarderChain; - uint32 Name; - uint32 FirstThunk; -} IMAGE_IMPORT_DESCRIPTOR; - -typedef struct _IMAGE_EXPORT_DIRECTORY { - uint32 Characteristics; - uint32 TimeDateStamp; - uint16 MajorVersion; - uint16 MinorVersion; - uint32 Name; - uint32 Base; - uint32 NumberOfFunctions; - uint32 NumberOfNames; - uint32 AddressOfFunctions; - uint32 AddressOfNames; - uint32 AddressOfNameOrdinals; -} IMAGE_EXPORT_DIRECTORY; - -#define PEBASE 0x00400000 -// SectionAlignment must be greater than or equal to FileAlignment. -// The default is the page size for the architecture. -#define PESECTALIGN 0x1000 -// FileAlignment should be a power of 2 between 512 and 64 K, inclusive. -// The default is 512. If the SectionAlignment is less than -// the architecture's page size, then FileAlignment must match SectionAlignment. -#define PEFILEALIGN (2<<8) -extern int32 PESECTHEADR; -extern int32 PEFILEHEADR; - -enum { - IMAGE_FILE_MACHINE_I386 = 0x14c, - IMAGE_FILE_MACHINE_AMD64 = 0x8664, - - IMAGE_FILE_RELOCS_STRIPPED = 0x0001, - IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002, - IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020, - IMAGE_FILE_32BIT_MACHINE = 0x0100, - IMAGE_FILE_DEBUG_STRIPPED = 0x0200, - - IMAGE_SCN_CNT_CODE = 0x00000020, - IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040, - IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080, - IMAGE_SCN_MEM_EXECUTE = 0x20000000, - IMAGE_SCN_MEM_READ = 0x40000000, - IMAGE_SCN_MEM_WRITE = 0x80000000, - IMAGE_SCN_MEM_DISCARDABLE = 0x2000000, - - IMAGE_DIRECTORY_ENTRY_EXPORT = 0, - IMAGE_DIRECTORY_ENTRY_IMPORT = 1, - IMAGE_DIRECTORY_ENTRY_RESOURCE = 2, - IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3, - IMAGE_DIRECTORY_ENTRY_SECURITY = 4, - IMAGE_DIRECTORY_ENTRY_BASERELOC = 5, - IMAGE_DIRECTORY_ENTRY_DEBUG = 6, - IMAGE_DIRECTORY_ENTRY_COPYRIGHT = 7, - IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7, - IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8, - IMAGE_DIRECTORY_ENTRY_TLS = 9, - IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10, - IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11, - IMAGE_DIRECTORY_ENTRY_IAT = 12, - IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13, - IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14, - - IMAGE_SUBSYSTEM_WINDOWS_GUI = 2, - IMAGE_SUBSYSTEM_WINDOWS_CUI = 3, -}; - -void peinit(void); -void asmbpe(void); -void dope(void); - -IMAGE_SECTION_HEADER* newPEDWARFSection(char *name, vlong size); - -// X64 -typedef struct { - uint16 Magic; - uint8 MajorLinkerVersion; - uint8 MinorLinkerVersion; - uint32 SizeOfCode; - uint32 SizeOfInitializedData; - uint32 SizeOfUninitializedData; - uint32 AddressOfEntryPoint; - uint32 BaseOfCode; - uint64 ImageBase; - uint32 SectionAlignment; - uint32 FileAlignment; - uint16 MajorOperatingSystemVersion; - uint16 MinorOperatingSystemVersion; - uint16 MajorImageVersion; - uint16 MinorImageVersion; - uint16 MajorSubsystemVersion; - uint16 MinorSubsystemVersion; - uint32 Win32VersionValue; - uint32 SizeOfImage; - uint32 SizeOfHeaders; - uint32 CheckSum; - uint16 Subsystem; - uint16 DllCharacteristics; - uint64 SizeOfStackReserve; - uint64 SizeOfStackCommit; - uint64 SizeOfHeapReserve; - uint64 SizeOfHeapCommit; - uint32 LoaderFlags; - uint32 NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[16]; -} PE64_IMAGE_OPTIONAL_HEADER; - -void setpersrc(Sym *sym); |
