bfd:
[deliverable/binutils-gdb.git] / include / elf / common.h
index 02665b7155564500cf9d944a70ce9363a11718ba..2eb6853e6669991f6784eed0d7dc2a39b6d4138c 100644 (file)
@@ -1,6 +1,6 @@
 /* ELF support for BFD.
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003
+   2001, 2002, 2003, 2004, 2005, 2006, 2007
    Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
@@ -21,7 +21,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 
 /* This file is part of ELF support for BFD, and contains the portions
 #define EM_PPC          20     /* PowerPC */
 #define EM_PPC64        21     /* 64-bit PowerPC */
 #define EM_S390                 22     /* IBM S/390 */
+#define EM_SPU          23     /* Sony/Toshiba/IBM SPU */
 
 #define EM_V800                 36     /* NEC V800 series */
 #define EM_FR20                 37     /* Fujitsu FR20 */
 #define EM_RCE          39     /* Old name for MCore */
 #define EM_ARM          40     /* ARM */
 #define EM_OLD_ALPHA    41     /* Digital Alpha */
-#define EM_SH           42     /* Renesas (formerly Hitachi) SH */
+#define EM_SH           42     /* Renesas (formerly Hitachi) / SuperH SH */
 #define EM_SPARCV9      43     /* SPARC v9 64-bit */
 #define EM_TRICORE      44     /* Siemens Tricore embedded processor */
 #define EM_ARC          45     /* ARC Cores */
 #define EM_D10V                 85     /* Mitsubishi D10V */
 #define EM_D30V                 86     /* Mitsubishi D30V */
 #define EM_V850                 87     /* NEC v850 */
-#define EM_M32R                 88     /* Mitsubishi M32R */
+#define EM_M32R                 88     /* Renesas M32R (formerly Mitsubishi M32R) */
 #define EM_MN10300      89     /* Matsushita MN10300 */
 #define EM_MN10200      90     /* Matsushita MN10200 */
 #define EM_PJ           91     /* picoJava */
 #define EM_ARC_A5       93     /* ARC Cores Tangent-A5 */
 #define EM_XTENSA       94     /* Tensilica Xtensa Architecture */
 #define EM_IP2K                101     /* Ubicom IP2022 micro controller */
+#define EM_CR          103     /* National Semiconductor CompactRISC */
 #define EM_MSP430      105     /* TI msp430 micro controller */
+#define EM_BLACKFIN    106     /* ADI Blackfin */
+#define EM_ALTERA_NIOS2        113     /* Altera Nios II soft-core processor */
+#define EM_CRX         114     /* National Semiconductor CRX */
+#define EM_CR16                115     /* National Semiconductor CompactRISC - CR16 */
+#define EM_SCORE        135     /* Sunplus Score */ 
 
 /* If it is necessary to assign new unofficial EM_* values, please pick large
    random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
    unofficial e_machine number should eventually ask registry@caldera.com for
    an officially blessed number to be added to the list above. */
 
-#define EM_PJ_OLD      99      /* picoJava */
+/* Old version of Sparc v9, from before the ABI;
+   This should be removed shortly.  */
+#define EM_OLD_SPARCV9         11
 
-/* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_POWERPC 0x9025
+/* Old version of PowerPC, this should be removed shortly. */
+#define EM_PPC_OLD             17
 
-/* Old version of Sparc v9, from before the ABI; this should be
-   removed shortly.  */
-#define EM_OLD_SPARCV9 11
+/* picoJava */
+#define EM_PJ_OLD                      99
 
-/* Old version of PowerPC, this should be removed shortly. */
-#define EM_PPC_OLD     17
+/* AVR magic number.  Written in the absense of an ABI.  */
+#define EM_AVR_OLD             0x1057
 
-/* (Deprecated) Temporary number for the OpenRISC processor.  */
-#define EM_OR32                0x8472
+/* MSP430 magic number.  Written in the absense of everything.  */
+#define EM_MSP430_OLD          0x1059
 
-/* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_M32R 0x9041
+/* Morpho MT.   Written in the absense of an ABI.  */
+#define EM_MT                   0x2530
 
-/* Alpha backend magic number.  Written in the absence of an ABI.  */
-#define EM_ALPHA       0x9026
+/* FR30 magic number - no EABI available.  */
+#define EM_CYGNUS_FR30         0x3330
 
-/* old S/390 backend magic number. Written in the absence of an ABI.  */
-#define EM_S390_OLD    0xa390
+/* OpenRISC magic number.  Written in the absense of an ABI.  */
+#define EM_OPENRISC_OLD                0x3426
+
+/* DLX magic number.  Written in the absense of an ABI.  */
+#define EM_DLX                 0x5aa5
+
+/* FRV magic number - no EABI available??.  */
+#define EM_CYGNUS_FRV          0x5441
+
+/* Infineon Technologies 16-bit microcontroller with C166-V2 core.  */
+#define EM_XC16X               0x4688
 
 /* D10V backend magic number.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_D10V 0x7650
+#define EM_CYGNUS_D10V         0x7650
 
 /* D30V backend magic number.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_D30V 0x7676
+#define EM_CYGNUS_D30V         0x7676
 
-/* V850 backend magic number.  Written in the absense of an ABI.  */
-#define EM_CYGNUS_V850 0x9080
+/* Ubicom IP2xxx;   Written in the absense of an ABI.  */
+#define EM_IP2K_OLD            0x8217
 
-/* mn10200 and mn10300 backend magic numbers.
-   Written in the absense of an ABI.  */
-#define EM_CYGNUS_MN10200      0xdead
-#define EM_CYGNUS_MN10300      0xbeef
+/* (Deprecated) Temporary number for the OpenRISC processor.  */
+#define EM_OR32                        0x8472
 
-/* FR30 magic number - no EABI available.  */
-#define EM_CYGNUS_FR30         0x3330
+/* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */
+#define EM_CYGNUS_POWERPC      0x9025
 
-/* AVR magic number
-   Written in the absense of an ABI.  */
-#define EM_AVR_OLD             0x1057
+/* Alpha backend magic number.  Written in the absence of an ABI.  */
+#define EM_ALPHA               0x9026
 
-/* OpenRISC magic number
-   Written in the absense of an ABI.  */
-#define EM_OPENRISC_OLD                0x3426
+/* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */
+#define EM_CYGNUS_M32R         0x9041
 
-/* DLX magic number
-   Written in the absense of an ABI.  */
-#define EM_DLX                 0x5aa5
+/* V850 backend magic number.  Written in the absense of an ABI.  */
+#define EM_CYGNUS_V850         0x9080
 
-#define EM_XSTORMY16           0xad45
+/* old S/390 backend magic number. Written in the absence of an ABI.  */
+#define EM_S390_OLD            0xa390
 
-/* FRV magic number - no EABI available??.  */
-#define EM_CYGNUS_FRV          0x5441
+/* Old, unofficial value for Xtensa.  */
+#define EM_XTENSA_OLD          0xabc7
+
+#define EM_XSTORMY16           0xad45
 
-/* Ubicom IP2xxx; no ABI */
-#define EM_IP2K_OLD            0x8217  
+/* mn10200 and mn10300 backend magic numbers.
+   Written in the absense of an ABI.  */
+#define EM_CYGNUS_MN10300      0xbeef
+#define EM_CYGNUS_MN10200      0xdead
 
-/* MSP430 magic number
-      Written in the absense everything.  */
-#define EM_MSP430_OLD          0x1059
+/* Renesas M32C and M16C.  */
+#define EM_M32C                        0xFEB0
 
 /* Vitesse IQ2000.  */
 #define EM_IQ2000              0xFEBA
 
-/* Old, unofficial value for Xtensa.  */
-#define EM_XTENSA_OLD          0xabc7
+/* NIOS magic number - no EABI available.  */
+#define EM_NIOS32              0xFEBB
+
+#define EM_CYGNUS_MEP          0xF00D  /* Toshiba MeP */
 
 /* See the above comment before you add a new EM_* value here.  */
 
 #define PT_LOPROC      0x70000000      /* Processor-specific */
 #define PT_HIPROC      0x7FFFFFFF      /* Processor-specific */
 
-#define PT_GNU_EH_FRAME        (PT_LOOS + 0x474e550)
+#define PT_GNU_EH_FRAME        (PT_LOOS + 0x474e550) /* Frame unwind information */
+#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
+#define PT_GNU_STACK   (PT_LOOS + 0x474e551) /* Stack flags */
+#define PT_GNU_RELRO   (PT_LOOS + 0x474e552) /* Read-only after relocation */
 
 /* Program segment permissions, in program header p_flags field.  */
 
 #define SHT_LOOS       0x60000000      /* First of OS specific semantics */
 #define SHT_HIOS       0x6fffffff      /* Last of OS specific semantics */
 
+#define SHT_GNU_ATTRIBUTES 0x6ffffff5  /* Object attributes */
+#define SHT_GNU_HASH   0x6ffffff6      /* GNU style symbol hash table */
 #define SHT_GNU_LIBLIST        0x6ffffff7      /* List of prelink dependencies */
 
 /* The next three section types are defined by Solaris, and are named
 #define NT_FPREGSET    2               /* Contains copy of fpregset struct */
 #define NT_PRPSINFO    3               /* Contains copy of prpsinfo struct */
 #define NT_TASKSTRUCT  4               /* Contains copy of task struct */
+#define NT_AUXV                6               /* Contains copy of Elfxx_auxv_t */
 #define NT_PRXFPREG    0x46e62b7f      /* Contains a user_xfpregs_struct; */
                                        /*   note name must be "LINUX".  */
 
 #define GNU_ABI_TAG_LINUX      0
 #define GNU_ABI_TAG_HURD       1
 #define GNU_ABI_TAG_SOLARIS    2
+#define GNU_ABI_TAG_FREEBSD    3
+#define GNU_ABI_TAG_NETBSD     4
 
 /* Values for NetBSD .note.netbsd.ident notes.  Note name is "NetBSD".  */
 
 #define NT_NETBSD_IDENT                1
 
+/* Values for OpenBSD .note.openbsd.ident notes.  Note name is "OpenBSD".  */
+
+#define NT_OPENBSD_IDENT       1
+
 /* Values for FreeBSD .note.ABI-tag notes.  Note name is "FreeBSD".  */
 
 #define NT_FREEBSD_ABI_TAG     1
 #define ELF64_ST_INFO  ELF_ST_INFO
 
 /* This macro disassembles and assembles a symbol's visibility into
-   the st_other field.  The STV_ defines specificy the actual visibility.  */
+   the st_other field.  The STV_ defines specify the actual visibility.  */
 
 #define ELF_ST_VISIBILITY(v)           ((v) & 0x3)
 /* The remaining bits in the st_other field are not currently used.
 #define STT_FILE       4               /* Symbol gives a file name */
 #define STT_COMMON     5               /* An uninitialised common block */
 #define STT_TLS                6               /* Thread local data object */
+#define STT_RELC        8               /* Complex relocation expression */
+#define STT_SRELC       9               /* Signed Complex relocation expression */
 #define STT_LOOS       10              /* OS-specific semantics */
 #define STT_HIOS       12              /* OS-specific semantics */
 #define STT_LOPROC     13              /* Application-specific semantics */
 
 /* The following constants control how a symbol may be accessed once it has
    become part of an executable or shared library.  */
-                                          
+
 #define STV_DEFAULT    0               /* Visibility is specified by binding type */
 #define STV_INTERNAL   1               /* OS specific version of STV_HIDDEN */
 #define STV_HIDDEN     2               /* Can only be seen inside currect component */
 
 #define ELF64_R_SYM(i)         ((i) >> 32)
 #define ELF64_R_TYPE(i)                ((i) & 0xffffffff)
-#define ELF64_R_INFO(s,t)      (((bfd_vma) (s) << 32) + (bfd_vma) (t))
+#define ELF64_R_INFO(s,t)      (((bfd_vma) (s) << 31 << 1) + (bfd_vma) (t))
 
 /* Dynamic section tags.  */
 
 #define DT_FINI_ARRAYSZ 28
 #define DT_RUNPATH     29
 #define DT_FLAGS       30
-#define DT_ENCODING    31
+#define DT_ENCODING    32
 #define DT_PREINIT_ARRAY   32
 #define DT_PREINIT_ARRAYSZ 33
 
    values outside of the new range (see below).         */
 #define OLD_DT_LOOS    0x60000000
 #define DT_LOOS                0x6000000d
-#define DT_HIOS                0x6fff0000
+#define DT_HIOS                0x6ffff000
 #define OLD_DT_HIOS    0x6fffffff
 
 #define DT_LOPROC      0x70000000
 #define DT_VALRNGHI    0x6ffffdff
 
 #define DT_ADDRRNGLO   0x6ffffe00
+#define DT_GNU_HASH    0x6ffffef5
+#define DT_TLSDESC_PLT 0x6ffffef6
+#define DT_TLSDESC_GOT 0x6ffffef7
 #define DT_GNU_CONFLICT        0x6ffffef8
 #define DT_GNU_LIBLIST 0x6ffffef9
 #define DT_CONFIG      0x6ffffefa
 
 #define GRP_COMDAT             0x1     /* A COMDAT group */
 
+/* Auxv a_type values.  */
+
+#define AT_NULL                0               /* End of vector */
+#define AT_IGNORE      1               /* Entry should be ignored */
+#define AT_EXECFD      2               /* File descriptor of program */
+#define AT_PHDR                3               /* Program headers for program */
+#define AT_PHENT       4               /* Size of program header entry */
+#define AT_PHNUM       5               /* Number of program headers */
+#define AT_PAGESZ      6               /* System page size */
+#define AT_BASE                7               /* Base address of interpreter */
+#define AT_FLAGS       8               /* Flags */
+#define AT_ENTRY       9               /* Entry point of program */
+#define AT_NOTELF      10              /* Program is not ELF */
+#define AT_UID         11              /* Real uid */
+#define AT_EUID                12              /* Effective uid */
+#define AT_GID         13              /* Real gid */
+#define AT_EGID                14              /* Effective gid */
+#define AT_CLKTCK      17              /* Frequency of times() */
+#define AT_PLATFORM    15              /* String identifying platform.  */
+#define AT_HWCAP       16              /* Machine dependent hints about
+                                          processor capabilities.  */
+#define AT_FPUCW       18              /* Used FPU control word.  */
+#define AT_DCACHEBSIZE 19              /* Data cache block size.  */
+#define AT_ICACHEBSIZE 20              /* Instruction cache block size.  */
+#define AT_UCACHEBSIZE 21              /* Unified cache block size.  */
+#define AT_IGNOREPPC   22              /* Entry should be ignored */
+#define        AT_SECURE       23              /* Boolean, was exec setuid-like?  */
+/* Pointer to the global system page used for system calls and other
+   nice things.  */
+#define AT_SYSINFO     32
+#define AT_SYSINFO_EHDR        33 /* Pointer to ELF header of system-supplied DSO.  */
+
+#define AT_SUN_UID      2000    /* Effective user ID.  */
+#define AT_SUN_RUID     2001    /* Real user ID.  */
+#define AT_SUN_GID      2002    /* Effective group ID.  */
+#define AT_SUN_RGID     2003    /* Real group ID.  */
+#define AT_SUN_LDELF    2004    /* Dynamic linker's ELF header.  */
+#define AT_SUN_LDSHDR   2005    /* Dynamic linker's section headers.  */
+#define AT_SUN_LDNAME   2006    /* String giving name of dynamic linker.  */
+#define AT_SUN_LPAGESZ  2007    /* Large pagesize.   */
+#define AT_SUN_PLATFORM 2008    /* Platform name string.  */
+#define AT_SUN_HWCAP    2009   /* Machine dependent hints about
+                                  processor capabilities.  */
+#define AT_SUN_IFLUSH   2010    /* Should flush icache? */
+#define AT_SUN_CPU      2011    /* CPU name string.  */
+#define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address.  */
+#define AT_SUN_EMUL_EXECFD 2013        /* COFF executable file descriptor.  */
+#define AT_SUN_EXECNAME 2014    /* Canonicalized file name given to execve.  */
+#define AT_SUN_MMU      2015    /* String for name of MMU module.   */
+#define AT_SUN_LDDATA   2016    /* Dynamic linker's data segment address.  */
+
+
 #endif /* _ELF_COMMON_H */
This page took 0.0276 seconds and 4 git commands to generate.