xref: /openbsd-src/gnu/usr.bin/binutils/include/coff/x86_64.h (revision 272a140b8ad54120f5c6308aa962815d8af3bd19)
1*272a140bSkettenis /* COFF information for AMD 64.
2*272a140bSkettenis    Copyright 2006, 2009 Free Software Foundation, Inc.
3*272a140bSkettenis 
4*272a140bSkettenis    This file is part of BFD, the Binary File Descriptor library.
5*272a140bSkettenis 
6*272a140bSkettenis    This program is free software; you can redistribute it and/or modify
7*272a140bSkettenis    it under the terms of the GNU General Public License as published by
8*272a140bSkettenis    the Free Software Foundation; either version 2 of the License, or
9*272a140bSkettenis    (at your option) any later version.
10*272a140bSkettenis 
11*272a140bSkettenis    This program is distributed in the hope that it will be useful,
12*272a140bSkettenis    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*272a140bSkettenis    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*272a140bSkettenis    GNU General Public License for more details.
15*272a140bSkettenis 
16*272a140bSkettenis    You should have received a copy of the GNU General Public License
17*272a140bSkettenis    along with this program; if not, write to the Free Software
18*272a140bSkettenis    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
19*272a140bSkettenis 
20*272a140bSkettenis    Written by Kai Tietz, OneVision Software GmbH&CoKg.  */
21*272a140bSkettenis 
22*272a140bSkettenis #define L_LNNO_SIZE 2
23*272a140bSkettenis #define INCLUDE_COMDAT_FIELDS_IN_AUXENT
24*272a140bSkettenis 
25*272a140bSkettenis #include "coff/external.h"
26*272a140bSkettenis 
27*272a140bSkettenis #define COFF_PAGE_SIZE	0x1000
28*272a140bSkettenis 
29*272a140bSkettenis #define AMD64MAGIC	0x8664
30*272a140bSkettenis 
31*272a140bSkettenis #define AMD64BADMAG(x)	((x).f_magic != AMD64MAGIC)
32*272a140bSkettenis #define IMAGE_NT_OPTIONAL_HDR64_MAGIC      0x20b
33*272a140bSkettenis 
34*272a140bSkettenis #define OMAGIC          0404    /* Object files, eg as output.  */
35*272a140bSkettenis #define ZMAGIC          IMAGE_NT_OPTIONAL_HDR64_MAGIC    /* Demand load format, eg normal ld output 0x10b.  */
36*272a140bSkettenis #define STMAGIC		0401	/* Target shlib.  */
37*272a140bSkettenis #define SHMAGIC		0443	/* Host   shlib.  */
38*272a140bSkettenis 
39*272a140bSkettenis /* Define some NT default values.  */
40*272a140bSkettenis /*  #define NT_IMAGE_BASE        0x400000 moved to internal.h.  */
41*272a140bSkettenis #define NT_SECTION_ALIGNMENT 0x1000
42*272a140bSkettenis #define NT_FILE_ALIGNMENT    0x200
43*272a140bSkettenis #define NT_DEF_RESERVE       0x100000
44*272a140bSkettenis #define NT_DEF_COMMIT        0x1000
45*272a140bSkettenis 
46*272a140bSkettenis /* Relocation directives.  */
47*272a140bSkettenis 
48*272a140bSkettenis struct external_reloc
49*272a140bSkettenis {
50*272a140bSkettenis   char r_vaddr[4];
51*272a140bSkettenis   char r_symndx[4];
52*272a140bSkettenis   char r_type[2];
53*272a140bSkettenis };
54*272a140bSkettenis 
55*272a140bSkettenis #define RELOC struct external_reloc
56*272a140bSkettenis #define RELSZ 10
57