diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2014-08-25 21:03:25 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2014-08-25 21:03:25 (GMT) | 
| commit | 90a79bf4c2c21715e5ef9d8a370928d218c08784 (patch) | |
| tree | 57afefc5caa098f4c34ac2d382d085f736245990 /src/format/elf/elf_def.h | |
| parent | dd51bdbc51abec252ad5169d722a8b6faa53c1ac (diff) | |
Loaded lots of ELF header information as symbols.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@393 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format/elf/elf_def.h')
| -rw-r--r-- | src/format/elf/elf_def.h | 156 | 
1 files changed, 148 insertions, 8 deletions
| diff --git a/src/format/elf/elf_def.h b/src/format/elf/elf_def.h index 9d872f4..91e1c18 100644 --- a/src/format/elf/elf_def.h +++ b/src/format/elf/elf_def.h @@ -103,6 +103,8 @@ typedef union _elf_header  #define EI_CLASS        4                   /* Indice de classe du fichier */  #define EI_DATA         5                   /* Indice de l'encodage        */ +#define EI_VERSION      6                   /* Version de fichier ELF      */ +#define EI_OSABI        7                   /* Identification de l'ABI OS  */  /* ... EI_CLASS */ @@ -117,20 +119,122 @@ typedef union _elf_header  #define ELFDATA2LSB     1                   /* Complément à 2, petit bout. */  #define ELFDATA2MSB     2                   /* Complément à 2, grand bout. */ +/* ... EI_VERSION */ + +#define EV_NONE         0                   /* Version ELF invalide        */ +#define EV_CURRENT      1                   /* Version d'ELF courante      */ + +/* ... EI_OSABI */ + +#define ELFOSABI_NONE           0           /* UNIX System V ABI */ +#define ELFOSABI_SYSV           0           /* Alias.  */ +#define ELFOSABI_HPUX           1           /* HP-UX */ +#define ELFOSABI_NETBSD         2           /* NetBSD.  */ +#define ELFOSABI_GNU            3           /* Object uses GNU ELF extensions.  */ +#define ELFOSABI_LINUX          ELFOSABI_GNU /* Compatibility alias.  */ +#define ELFOSABI_SOLARIS        6           /* Sun Solaris.  */ +#define ELFOSABI_AIX            7           /* IBM AIX.  */ +#define ELFOSABI_IRIX           8           /* SGI Irix.  */ +#define ELFOSABI_FREEBSD        9           /* FreeBSD.  */ +#define ELFOSABI_TRU64          10          /* Compaq TRU64 UNIX.  */ +#define ELFOSABI_MODESTO        11          /* Novell Modesto.  */ +#define ELFOSABI_OPENBSD        12          /* OpenBSD.  */ +#define ELFOSABI_ARM_AEABI      64          /* ARM EABI */ +#define ELFOSABI_ARM            97          /* ARM */ +#define ELFOSABI_STANDALONE     255         /* Standalone (embedded) application */  /* Valeurs possibles pour e_type */  #define ET_NONE         0                   /* Aucun type défini           */ +#define ET_REL          1                   /* Fichier relogeable          */  #define ET_EXEC         2                   /* Fichier exécutable          */  #define ET_DYN          3                   /* Bibliothèque dynamique      */ +#define ET_CORE         4                   /* Fichier Core                */ +#define ET_LOOS         0xfe00              /* Spécifique OS : début       */ +#define ET_HIOS         0xfeff              /* Spécifique OS : fin         */ +#define ET_LOPROC       0xff00              /* Spécifique processeur : deb.*/ +#define ET_HIPROC       0xffff              /* Spécifique processeur : fin */  /* Valeurs possibles pour e_machine */ -#define EM_NONE         0                   /* Aucune machine              */ -#define EM_386          3                   /* Intel 80386                 */ -#define EM_MIPS         8                   /* MIPS R3000 big-endian       */ -#define EM_MIPS_RS3_LE  10                  /* MIPS R3000 little-endian    */ -#define EM_ARM          40                  /* ARM                         */ +#define EM_NONE          0                  /* No machine */ +#define EM_M32           1                  /* AT&T WE 32100 */ +#define EM_SPARC         2                  /* SUN SPARC */ +#define EM_386           3                  /* Intel 80386 */ +#define EM_68K           4                  /* Motorola m68k family */ +#define EM_88K           5                  /* Motorola m88k family */ +#define EM_860           7                  /* Intel 80860 */ +#define EM_MIPS          8                  /* MIPS R3000 big-endian */ +#define EM_S370          9                  /* IBM System/370 */ +#define EM_MIPS_RS3_LE  10                  /* MIPS R3000 little-endian */ +#define EM_PARISC       15                  /* HPPA */ +#define EM_VPP500       17                  /* Fujitsu VPP500 */ +#define EM_SPARC32PLUS  18                  /* Sun's "v8plus" */ +#define EM_960          19                  /* Intel 80960 */ +#define EM_PPC          20                  /* PowerPC */ +#define EM_PPC64        21                  /* PowerPC 64-bit */ +#define EM_S390         22                  /* IBM S390 */ +#define EM_V800         36                  /* NEC V800 series */ +#define EM_FR20         37                  /* Fujitsu FR20 */ +#define EM_RH32         38                  /* TRW RH-32 */ +#define EM_RCE          39                  /* Motorola RCE */ +#define EM_ARM          40                  /* ARM */ +#define EM_FAKE_ALPHA   41                  /* Digital Alpha */ +#define EM_SH           42                  /* Hitachi SH */ +#define EM_SPARCV9      43                  /* SPARC v9 64-bit */ +#define EM_TRICORE      44                  /* Siemens Tricore */ +#define EM_ARC          45                  /* Argonaut RISC Core */ +#define EM_H8_300       46                  /* Hitachi H8/300 */ +#define EM_H8_300H      47                  /* Hitachi H8/300H */ +#define EM_H8S          48                  /* Hitachi H8S */ +#define EM_H8_500       49                  /* Hitachi H8/500 */ +#define EM_IA_64        50                  /* Intel Merced */ +#define EM_MIPS_X       51                  /* Stanford MIPS-X */ +#define EM_COLDFIRE     52                  /* Motorola Coldfire */ +#define EM_68HC12       53                  /* Motorola M68HC12 */ +#define EM_MMA          54                  /* Fujitsu MMA Multimedia Accelerator*/ +#define EM_PCP          55                  /* Siemens PCP */ +#define EM_NCPU         56                  /* Sony nCPU embeeded RISC */ +#define EM_NDR1         57                  /* Denso NDR1 microprocessor */ +#define EM_STARCORE     58                  /* Motorola Start*Core processor */ +#define EM_ME16         59                  /* Toyota ME16 processor */ +#define EM_ST100        60                  /* STMicroelectronic ST100 processor */ +#define EM_TINYJ        61                  /* Advanced Logic Corp. Tinyj emb.fam*/ +#define EM_X86_64       62                  /* AMD x86-64 architecture */ +#define EM_PDSP         63                  /* Sony DSP Processor */ +#define EM_FX66         66                  /* Siemens FX66 microcontroller */ +#define EM_ST9PLUS      67                  /* STMicroelectronics ST9+ 8/16 mc */ +#define EM_ST7          68                  /* STmicroelectronics ST7 8 bit mc */ +#define EM_68HC16       69                  /* Motorola MC68HC16 microcontroller */ +#define EM_68HC11       70                  /* Motorola MC68HC11 microcontroller */ +#define EM_68HC08       71                  /* Motorola MC68HC08 microcontroller */ +#define EM_68HC05       72                  /* Motorola MC68HC05 microcontroller */ +#define EM_SVX          73                  /* Silicon Graphics SVx */ +#define EM_ST19         74                  /* STMicroelectronics ST19 8 bit mc */ +#define EM_VAX          75                  /* Digital VAX */ +#define EM_CRIS         76                  /* Axis Communications 32-bit embedded processor */ +#define EM_JAVELIN      77                  /* Infineon Technologies 32-bit embedded processor */ +#define EM_FIREPATH     78                  /* Element 14 64-bit DSP Processor */ +#define EM_ZSP          79                  /* LSI Logic 16-bit DSP Processor */ +#define EM_MMIX         80                  /* Donald Knuth's educational 64-bit processor */ +#define EM_HUANY        81                  /* Harvard University machine-independent object files */ +#define EM_PRISM        82                  /* SiTera Prism */ +#define EM_AVR          83                  /* Atmel AVR 8-bit microcontroller */ +#define EM_FR30         84                  /* Fujitsu FR30 */ +#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_MN10300      89                  /* Matsushita MN10300 */ +#define EM_MN10200      90                  /* Matsushita MN10200 */ +#define EM_PJ           91                  /* picoJava */ +#define EM_OPENRISC     92                  /* OpenRISC 32-bit embedded processor */ +#define EM_ARC_A5       93                  /* ARC Cores Tangent-A5 */ +#define EM_XTENSA       94                  /* Tensilica Xtensa Architecture */ +#define EM_AARCH64      183                 /* ARM AARCH64 */ +#define EM_TILEPRO      188                 /* Tilera TILEPro */ +#define EM_MICROBLAZE   189                 /* Xilinx MicroBlaze */ +#define EM_TILEGX       191                 /* Tilera TILE-Gx */ @@ -203,9 +307,11 @@ typedef union _elf_phdr  /* Valeurs possibles pour p_flags */ -#define PF_X    (1 << 0)                    /* Le segment est exécutable   */ -#define PF_W    (1 << 1)                    /* Le segment est écrasable    */ -#define PF_R    (1 << 2)                    /* Le segment est lisible      */ +#define PF_X        (1 << 0)                /* Le segment est exécutable   */ +#define PF_W        (1 << 1)                /* Le segment est écrasable    */ +#define PF_R        (1 << 2)                /* Le segment est lisible      */ +#define PF_MASKOS   0x0ff00000              /* Spécifique à l'OS           */ +#define PF_MASKPROC 0xf0000000              /* Spécifique au processeur    */ @@ -263,8 +369,42 @@ typedef union _elf_shdr  #define SHT_PROGBITS    1                   /* Données de programme        */  #define SHT_SYMTAB      2                   /* Table des symboles          */  #define SHT_STRTAB      3                   /* Table de chaînes de carac.  */ + +#define SHT_RELA          4             /* Relocation entries with addends */ +#define SHT_HASH          5             /* Symbol hash table */ +  #define SHT_DYNAMIC     6                   /* Info. de liaison dynamique  */ +#define SHT_NOTE          7             /* Notes */ +#define SHT_NOBITS        8             /* Program space with no data (bss) */ +#define SHT_REL           9             /* Relocation entries, no addends */ +#define SHT_SHLIB         10            /* Reserved */ +#define SHT_DYNSYM        11            /* Dynamic linker symbol table */ +#define SHT_INIT_ARRAY    14            /* Array of constructors */ +#define SHT_FINI_ARRAY    15            /* Array of destructors */ +#define SHT_PREINIT_ARRAY 16            /* Array of pre-constructors */ +#define SHT_GROUP         17            /* Section group */ +#define SHT_SYMTAB_SHNDX  18            /* Extended section indeces */ +#define SHT_NUM           19            /* Number of defined types.  */ +#define SHT_LOOS          0x60000000    /* Start OS-specific.  */ +#define SHT_GNU_ATTRIBUTES 0x6ffffff5   /* Object attributes.  */ +#define SHT_GNU_HASH      0x6ffffff6    /* GNU-style hash table.  */ +#define SHT_GNU_LIBLIST   0x6ffffff7    /* Prelink library list */ +#define SHT_CHECKSUM      0x6ffffff8    /* Checksum for DSO content.  */ +#define SHT_LOSUNW        0x6ffffffa    /* Sun-specific low bound.  */ +#define SHT_SUNW_move     0x6ffffffa +#define SHT_SUNW_COMDAT   0x6ffffffb +#define SHT_SUNW_syminfo  0x6ffffffc +#define SHT_GNU_verdef    0x6ffffffd    /* Version definition section.  */ +#define SHT_GNU_verneed   0x6ffffffe    /* Version needs section.  */ +#define SHT_GNU_versym    0x6fffffff    /* Version symbol table.  */ +#define SHT_HISUNW        0x6fffffff    /* Sun-specific high bound.  */ +#define SHT_HIOS          0x6fffffff    /* End OS-specific type */ +#define SHT_LOPROC        0x70000000    /* Start of processor-specific */ +#define SHT_HIPROC        0x7fffffff    /* End of processor-specific */ +#define SHT_LOUSER        0x80000000    /* Start of application-specific */ +#define SHT_HIUSER        0x8fffffff    /* End of application-specific */ +  /* Valeurs possibles pour sh_flags */ | 
