Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/rtld/elf_dyn.h

    rb58728f r4805495  
    3939#include <libarch/rtld/elf_dyn.h>
    4040
     41#define ELF32_R_SYM(i) ((i) >> 8)
     42#define ELF32_R_TYPE(i) ((unsigned char)(i))
     43
     44#define ELF64_R_SYM(i) ((i) >> 32)
     45#define ELF64_R_TYPE(i) ((i) & 0xffffffffL)
     46
     47struct elf32_dyn {
     48        elf_sword d_tag;
     49        union {
     50                elf_word d_val;
     51                elf32_addr d_ptr;
     52        } d_un;
     53};
     54
     55struct elf64_dyn {
     56        elf_sxword d_tag;
     57        union {
     58                elf_xword d_val;
     59                elf64_addr d_ptr;
     60        } d_un;
     61};
     62
     63struct elf32_rel {
     64        elf32_addr r_offset;
     65        elf_word r_info;
     66};
     67
     68struct elf32_rela {
     69        elf32_addr r_offset;
     70        elf_word r_info;
     71        elf_sword r_addend;
     72};
     73
     74struct elf64_rel {
     75        elf64_addr r_offset;
     76        elf_xword r_info;
     77};
     78
     79struct elf64_rela {
     80        elf64_addr r_offset;
     81        elf_xword r_info;
     82        elf_sxword r_addend;
     83};
     84
     85#ifdef __32_BITS__
     86typedef struct elf32_dyn elf_dyn_t;
     87typedef struct elf32_rel elf_rel_t;
     88typedef struct elf32_rela elf_rela_t;
     89#endif
     90
     91#ifdef __64_BITS__
     92typedef struct elf64_dyn elf_dyn_t;
     93typedef struct elf64_rel elf_rel_t;
     94typedef struct elf64_rela elf_rela_t;
     95#endif
     96
     97/*
     98 * Dynamic array tags
     99 */
     100#define DT_NULL         0
     101#define DT_NEEDED       1
     102#define DT_PLTRELSZ     2
     103#define DT_PLTGOT       3
     104#define DT_HASH         4
     105#define DT_STRTAB       5
     106#define DT_SYMTAB       6
     107#define DT_RELA         7
     108#define DT_RELASZ       8
     109#define DT_RELAENT      9
     110#define DT_STRSZ        10
     111#define DT_SYMENT       11
     112#define DT_INIT         12
     113#define DT_FINI         13
     114#define DT_SONAME       14
     115#define DT_RPATH        15
     116#define DT_SYMBOLIC     16
     117#define DT_REL          17
     118#define DT_RELSZ        18
     119#define DT_RELENT       19
     120#define DT_PLTREL       20
     121#define DT_DEBUG        21
     122#define DT_TEXTREL      22
     123#define DT_JMPREL       23
     124#define DT_BIND_NOW     24
     125#define DT_LOPROC       0x70000000
     126#define DT_HIPROC       0x7fffffff
     127
     128/*
     129 * Special section indexes
     130 */
     131#define SHN_UNDEF       0
     132#define SHN_LORESERVE   0xff00
     133#define SHN_LOPROC      0xff00
     134#define SHN_HIPROC      0xff1f
     135#define SHN_ABS         0xfff1
     136#define SHN_COMMON      0xfff2
     137#define SHN_HIRESERVE   0xffff
     138
     139/*
     140 * Special symbol table index
     141 */
     142#define STN_UNDEF       0
     143
    41144#endif
    42145
Note: See TracChangeset for help on using the changeset viewer.