i386.h revision 259065
168673Sobrien/* ix86 ELF support for BFD. 278828Sobrien Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006 368673Sobrien Free Software Foundation, Inc. 468673Sobrien 568673Sobrien This file is part of BFD, the Binary File Descriptor library. 668673Sobrien 768673Sobrien This program is free software; you can redistribute it and/or modify 868673Sobrien it under the terms of the GNU General Public License as published by 968673Sobrien the Free Software Foundation; either version 2 of the License, or 1068673Sobrien (at your option) any later version. 1168673Sobrien 1268673Sobrien This program is distributed in the hope that it will be useful, 1368673Sobrien but WITHOUT ANY WARRANTY; without even the implied warranty of 1468673Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1568673Sobrien GNU General Public License for more details. 1668673Sobrien 1768673Sobrien You should have received a copy of the GNU General Public License 1868673Sobrien along with this program; if not, write to the Free Software Foundation, 1968673Sobrien Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 2068673Sobrien 2168673Sobrien#ifndef _ELF_I386_H 2268673Sobrien#define _ELF_I386_H 2368673Sobrien 2468673Sobrien#include "elf/reloc-macros.h" 2568673Sobrien 2668673SobrienSTART_RELOC_NUMBERS (elf_i386_reloc_type) 2768673Sobrien RELOC_NUMBER (R_386_NONE, 0) /* No reloc */ 2868673Sobrien RELOC_NUMBER (R_386_32, 1) /* Direct 32 bit */ 2968673Sobrien RELOC_NUMBER (R_386_PC32, 2) /* PC relative 32 bit */ 3068673Sobrien RELOC_NUMBER (R_386_GOT32, 3) /* 32 bit GOT entry */ 3168673Sobrien RELOC_NUMBER (R_386_PLT32, 4) /* 32 bit PLT address */ 3268673Sobrien RELOC_NUMBER (R_386_COPY, 5) /* Copy symbol at runtime */ 3368673Sobrien RELOC_NUMBER (R_386_GLOB_DAT, 6) /* Create GOT entry */ 3468673Sobrien RELOC_NUMBER (R_386_JUMP_SLOT, 7) /* Create PLT entry */ 3568673Sobrien RELOC_NUMBER (R_386_RELATIVE, 8) /* Adjust by program base */ 3668673Sobrien RELOC_NUMBER (R_386_GOTOFF, 9) /* 32 bit offset to GOT */ 3768673Sobrien RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */ 3868673Sobrien RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */ 3968673Sobrien FAKE_RELOC (FIRST_INVALID_RELOC, 12) 4077298Sobrien FAKE_RELOC (LAST_INVALID_RELOC, 13) 4168673Sobrien RELOC_NUMBER (R_386_TLS_TPOFF,14) 4268673Sobrien RELOC_NUMBER (R_386_TLS_IE, 15) 43 RELOC_NUMBER (R_386_TLS_GOTIE,16) 44 RELOC_NUMBER (R_386_TLS_LE, 17) 45 RELOC_NUMBER (R_386_TLS_GD, 18) 46 RELOC_NUMBER (R_386_TLS_LDM, 19) 47 RELOC_NUMBER (R_386_16, 20) 48 RELOC_NUMBER (R_386_PC16, 21) 49 RELOC_NUMBER (R_386_8, 22) 50 RELOC_NUMBER (R_386_PC8, 23) 51 RELOC_NUMBER (R_386_TLS_GD_32, 24) 52 RELOC_NUMBER (R_386_TLS_GD_PUSH, 25) 53 RELOC_NUMBER (R_386_TLS_GD_CALL, 26) 54 RELOC_NUMBER (R_386_TLS_GD_POP, 27) 55 RELOC_NUMBER (R_386_TLS_LDM_32, 28) 56 RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29) 57 RELOC_NUMBER (R_386_TLS_LDM_CALL, 30) 58 RELOC_NUMBER (R_386_TLS_LDM_POP, 31) 59 RELOC_NUMBER (R_386_TLS_LDO_32, 32) 60 RELOC_NUMBER (R_386_TLS_IE_32, 33) 61 RELOC_NUMBER (R_386_TLS_LE_32, 34) 62 RELOC_NUMBER (R_386_TLS_DTPMOD32, 35) 63 RELOC_NUMBER (R_386_TLS_DTPOFF32, 36) 64 RELOC_NUMBER (R_386_TLS_TPOFF32, 37) 65/* 38 */ 66 RELOC_NUMBER (R_386_TLS_GOTDESC, 39) 67 RELOC_NUMBER (R_386_TLS_DESC_CALL,40) 68 RELOC_NUMBER (R_386_TLS_DESC, 41) 69 70 /* Used by Intel. */ 71 RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200) 72 73 /* These are GNU extensions to enable C++ vtable garbage collection. */ 74 RELOC_NUMBER (R_386_GNU_VTINHERIT, 250) 75 RELOC_NUMBER (R_386_GNU_VTENTRY, 251) 76END_RELOC_NUMBERS (R_386_max) 77 78#endif 79