1// Copyright 2009 The Go Authors.  All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package pe
6
7type FileHeader struct {
8	Machine              uint16
9	NumberOfSections     uint16
10	TimeDateStamp        uint32
11	PointerToSymbolTable uint32
12	NumberOfSymbols      uint32
13	SizeOfOptionalHeader uint16
14	Characteristics      uint16
15}
16
17type SectionHeader32 struct {
18	Name                 [8]uint8
19	VirtualSize          uint32
20	VirtualAddress       uint32
21	SizeOfRawData        uint32
22	PointerToRawData     uint32
23	PointerToRelocations uint32
24	PointerToLineNumbers uint32
25	NumberOfRelocations  uint16
26	NumberOfLineNumbers  uint16
27	Characteristics      uint32
28}
29
30const COFFSymbolSize = 18
31
32type COFFSymbol struct {
33	Name               [8]uint8
34	Value              uint32
35	SectionNumber      int16
36	Type               uint16
37	StorageClass       uint8
38	NumberOfAuxSymbols uint8
39}
40
41const (
42	IMAGE_FILE_MACHINE_UNKNOWN   = 0x0
43	IMAGE_FILE_MACHINE_AM33      = 0x1d3
44	IMAGE_FILE_MACHINE_AMD64     = 0x8664
45	IMAGE_FILE_MACHINE_ARM       = 0x1c0
46	IMAGE_FILE_MACHINE_EBC       = 0xebc
47	IMAGE_FILE_MACHINE_I386      = 0x14c
48	IMAGE_FILE_MACHINE_IA64      = 0x200
49	IMAGE_FILE_MACHINE_M32R      = 0x9041
50	IMAGE_FILE_MACHINE_MIPS16    = 0x266
51	IMAGE_FILE_MACHINE_MIPSFPU   = 0x366
52	IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466
53	IMAGE_FILE_MACHINE_POWERPC   = 0x1f0
54	IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1
55	IMAGE_FILE_MACHINE_R4000     = 0x166
56	IMAGE_FILE_MACHINE_SH3       = 0x1a2
57	IMAGE_FILE_MACHINE_SH3DSP    = 0x1a3
58	IMAGE_FILE_MACHINE_SH4       = 0x1a6
59	IMAGE_FILE_MACHINE_SH5       = 0x1a8
60	IMAGE_FILE_MACHINE_THUMB     = 0x1c2
61	IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
62)
63