LCOV - code coverage report
Current view: top level - include/llvm/BinaryFormat - DynamicTags.def (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 60 103 58.3 %
Date: 2018-10-20 13:21:21 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : #ifndef DYNAMIC_TAG
       2             : #error "DYNAMIC_TAG must be defined"
       3             : #endif
       4             : 
       5             : // Add separate macros for the architecture specific tags and the markers
       6             : // such as DT_HIOS, etc. to allow using this file to in other contexts.
       7             : // For example we can use it to generate a stringification switch statement.
       8             : 
       9             : #ifndef HEXAGON_DYNAMIC_TAG
      10             : #define HEXAGON_DYNAMIC_TAG(name, value) DYNAMIC_TAG(name, value)
      11             : #define HEXAGON_DYNAMIC_TAG_DEFINED
      12             : #endif
      13             : 
      14             : #ifndef MIPS_DYNAMIC_TAG
      15             : #define MIPS_DYNAMIC_TAG(name, value) DYNAMIC_TAG(name, value)
      16             : #define MIPS_DYNAMIC_TAG_DEFINED
      17             : #endif
      18             : 
      19             : #ifndef PPC64_DYNAMIC_TAG
      20             : #define PPC64_DYNAMIC_TAG(name, value) DYNAMIC_TAG(name, value)
      21             : #define PPC64_DYNAMIC_TAG_DEFINED
      22             : #endif
      23             : 
      24             : #ifndef DYNAMIC_TAG_MARKER
      25             : #define DYNAMIC_TAG_MARKER(name, value) DYNAMIC_TAG(name, value)
      26             : #define DYNAMIC_TAG_MARKER_DEFINED
      27             : #endif
      28             : 
      29             : DYNAMIC_TAG(NULL, 0)        // Marks end of dynamic array.
      30          86 : DYNAMIC_TAG(NEEDED, 1)      // String table offset of needed library.
      31          30 : DYNAMIC_TAG(PLTRELSZ, 2)    // Size of relocation entries in PLT.
      32          43 : DYNAMIC_TAG(PLTGOT, 3)      // Address associated with linkage table.
      33         101 : DYNAMIC_TAG(HASH, 4)        // Address of symbolic hash table.
      34         107 : DYNAMIC_TAG(STRTAB, 5)      // Address of dynamic string table.
      35         108 : DYNAMIC_TAG(SYMTAB, 6)      // Address of dynamic symbol table.
      36          19 : DYNAMIC_TAG(RELA, 7)        // Address of relocation table (Rela entries).
      37          19 : DYNAMIC_TAG(RELASZ, 8)      // Size of Rela relocation table.
      38          20 : DYNAMIC_TAG(RELAENT, 9)     // Size of a Rela relocation entry.
      39         107 : DYNAMIC_TAG(STRSZ, 10)      // Total size of the string table.
      40         108 : DYNAMIC_TAG(SYMENT, 11)     // Size of a symbol table entry.
      41          14 : DYNAMIC_TAG(INIT, 12)       // Address of initialization function.
      42          14 : DYNAMIC_TAG(FINI, 13)       // Address of termination function.
      43           5 : DYNAMIC_TAG(SONAME, 14)     // String table offset of a shared objects name.
      44           2 : DYNAMIC_TAG(RPATH, 15)      // String table offset of library search path.
      45           0 : DYNAMIC_TAG(SYMBOLIC, 16)   // Changes symbol resolution algorithm.
      46          15 : DYNAMIC_TAG(REL, 17)        // Address of relocation table (Rel entries).
      47          15 : DYNAMIC_TAG(RELSZ, 18)      // Size of Rel relocation table.
      48          16 : DYNAMIC_TAG(RELENT, 19)     // Size of a Rel relocation entry.
      49          30 : DYNAMIC_TAG(PLTREL, 20)     // Type of relocation entry used for linking.
      50          60 : DYNAMIC_TAG(DEBUG, 21)      // Reserved for debugger.
      51           4 : DYNAMIC_TAG(TEXTREL, 22)    // Relocations exist for non-writable segments.
      52          30 : DYNAMIC_TAG(JMPREL, 23)     // Address of relocations associated with PLT.
      53           0 : DYNAMIC_TAG(BIND_NOW, 24)   // Process all relocations before execution.
      54          10 : DYNAMIC_TAG(INIT_ARRAY, 25) // Pointer to array of initialization functions.
      55          10 : DYNAMIC_TAG(FINI_ARRAY, 26) // Pointer to array of termination functions.
      56          10 : DYNAMIC_TAG(INIT_ARRAYSZ, 27) // Size of DT_INIT_ARRAY.
      57          10 : DYNAMIC_TAG(FINI_ARRAYSZ, 28) // Size of DT_FINI_ARRAY.
      58           5 : DYNAMIC_TAG(RUNPATH, 29)      // String table offset of lib search path.
      59           7 : DYNAMIC_TAG(FLAGS, 30)        // Flags.
      60             : DYNAMIC_TAG_MARKER(ENCODING, 32) // Values from here to DT_LOOS follow the rules
      61             :                                  // for the interpretation of the d_un union.
      62             : 
      63           2 : DYNAMIC_TAG(PREINIT_ARRAY, 32)   // Pointer to array of preinit functions.
      64           2 : DYNAMIC_TAG(PREINIT_ARRAYSZ, 33) // Size of the DT_PREINIT_ARRAY array.
      65             : 
      66           0 : DYNAMIC_TAG(SYMTAB_SHNDX, 34) // Address of the SHT_SYMTAB_SHNDX section.
      67             : 
      68             : // Experimental support for SHT_RELR sections. For details, see proposal
      69             : // at https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg
      70           6 : DYNAMIC_TAG(RELRSZ, 35)  // Size of Relr relocation table.
      71           6 : DYNAMIC_TAG(RELR, 36)    // Address of relocation table (Relr entries).
      72           6 : DYNAMIC_TAG(RELRENT, 37) // Size of a Relr relocation entry.
      73             : 
      74             : DYNAMIC_TAG_MARKER(LOOS, 0x60000000)   // Start of environment specific tags.
      75             : DYNAMIC_TAG_MARKER(HIOS, 0x6FFFFFFF)   // End of environment specific tags.
      76             : DYNAMIC_TAG_MARKER(LOPROC, 0x70000000) // Start of processor specific tags.
      77             : DYNAMIC_TAG_MARKER(HIPROC, 0x7FFFFFFF) // End of processor specific tags.
      78             : 
      79             : // Android packed relocation section tags.
      80             : // https://android.googlesource.com/platform/bionic/+/6f12bfece5dcc01325e0abba56a46b1bcf991c69/tools/relocation_packer/src/elf_file.cc#31
      81           1 : DYNAMIC_TAG(ANDROID_REL, 0x6000000F)
      82           1 : DYNAMIC_TAG(ANDROID_RELSZ, 0x60000010)
      83           1 : DYNAMIC_TAG(ANDROID_RELA, 0x60000011)
      84           1 : DYNAMIC_TAG(ANDROID_RELASZ, 0x60000012)
      85             : 
      86             : // Android's experimental support for SHT_RELR sections.
      87             : // https://android.googlesource.com/platform/bionic/+/b7feec74547f84559a1467aca02708ff61346d2a/libc/include/elf.h#253
      88           0 : DYNAMIC_TAG(ANDROID_RELR, 0x6FFFE000)      // Address of relocation table (Relr entries).
      89           0 : DYNAMIC_TAG(ANDROID_RELRSZ, 0x6FFFE001)    // Size of Relr relocation table.
      90           0 : DYNAMIC_TAG(ANDROID_RELRENT, 0x6FFFE003)   // Size of a Relr relocation entry.
      91             : 
      92          72 : DYNAMIC_TAG(GNU_HASH, 0x6FFFFEF5)    // Reference to the GNU hash table.
      93           1 : DYNAMIC_TAG(TLSDESC_PLT, 0x6FFFFEF6) // Location of PLT entry for TLS
      94             :                                      // descriptor resolver calls.
      95           1 : DYNAMIC_TAG(TLSDESC_GOT, 0x6FFFFEF7) // Location of GOT entry used by TLS
      96             :                                      // descriptor resolver PLT entry.
      97          13 : DYNAMIC_TAG(RELACOUNT, 0x6FFFFFF9)   // ELF32_Rela count.
      98           4 : DYNAMIC_TAG(RELCOUNT, 0x6FFFFFFA)    // ELF32_Rel count.
      99             : 
     100           5 : DYNAMIC_TAG(FLAGS_1, 0X6FFFFFFB) // Flags_1.
     101             : 
     102          13 : DYNAMIC_TAG(VERSYM, 0x6FFFFFF0)     // The address of .gnu.version section.
     103           1 : DYNAMIC_TAG(VERDEF, 0X6FFFFFFC)     // The address of the version definition
     104             :                                     // table.
     105           1 : DYNAMIC_TAG(VERDEFNUM, 0X6FFFFFFD)  // The number of entries in DT_VERDEF.
     106          12 : DYNAMIC_TAG(VERNEED, 0X6FFFFFFE)    // The address of the version dependency
     107             :                                     // table.
     108          12 : DYNAMIC_TAG(VERNEEDNUM, 0X6FFFFFFF) // The number of entries in DT_VERNEED.
     109             : 
     110             : // Hexagon specific dynamic table entries
     111             : HEXAGON_DYNAMIC_TAG(HEXAGON_SYMSZ, 0x70000000)
     112           0 : HEXAGON_DYNAMIC_TAG(HEXAGON_VER, 0x70000001)
     113           0 : HEXAGON_DYNAMIC_TAG(HEXAGON_PLT, 0x70000002)
     114             : 
     115             : // Mips specific dynamic table entry tags.
     116             : 
     117             : MIPS_DYNAMIC_TAG(MIPS_RLD_VERSION, 0x70000001)  // 32 bit version number for
     118             :                                                 // runtime linker interface.
     119           0 : MIPS_DYNAMIC_TAG(MIPS_TIME_STAMP, 0x70000002)   // Time stamp.
     120           0 : MIPS_DYNAMIC_TAG(MIPS_ICHECKSUM, 0x70000003)    // Checksum of external strings
     121             :                                                 // and common sizes.
     122           0 : MIPS_DYNAMIC_TAG(MIPS_IVERSION, 0x70000004)     // Index of version string
     123             :                                                 // in string table.
     124          15 : MIPS_DYNAMIC_TAG(MIPS_FLAGS, 0x70000005)        // 32 bits of flags.
     125          15 : MIPS_DYNAMIC_TAG(MIPS_BASE_ADDRESS, 0x70000006) // Base address of the segment.
     126           0 : MIPS_DYNAMIC_TAG(MIPS_MSYM, 0x70000007)         // Address of .msym section.
     127           0 : MIPS_DYNAMIC_TAG(MIPS_CONFLICT, 0x70000008)     // Address of .conflict section.
     128           0 : MIPS_DYNAMIC_TAG(MIPS_LIBLIST, 0x70000009)      // Address of .liblist section.
     129          15 : MIPS_DYNAMIC_TAG(MIPS_LOCAL_GOTNO, 0x7000000a)  // Number of local global offset
     130             :                                                 // table entries.
     131           0 : MIPS_DYNAMIC_TAG(MIPS_CONFLICTNO, 0x7000000b)   // Number of entries
     132             :                                                 // in the .conflict section.
     133           0 : MIPS_DYNAMIC_TAG(MIPS_LIBLISTNO, 0x70000010)    // Number of entries
     134             :                                                 // in the .liblist section.
     135          15 : MIPS_DYNAMIC_TAG(MIPS_SYMTABNO, 0x70000011)     // Number of entries
     136             :                                                 // in the .dynsym section.
     137           3 : MIPS_DYNAMIC_TAG(MIPS_UNREFEXTNO, 0x70000012)   // Index of first external dynamic
     138             :                                                 // symbol not referenced locally.
     139          15 : MIPS_DYNAMIC_TAG(MIPS_GOTSYM, 0x70000013)       // Index of first dynamic symbol
     140             :                                                 // in global offset table.
     141           0 : MIPS_DYNAMIC_TAG(MIPS_HIPAGENO, 0x70000014)     // Number of page table entries
     142             :                                                 // in global offset table.
     143           4 : MIPS_DYNAMIC_TAG(MIPS_RLD_MAP, 0x70000016)      // Address of run time loader map
     144             :                                                 // used for debugging.
     145           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_CLASS, 0x70000017)    // Delta C++ class definition.
     146           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_CLASS_NO, 0x70000018) // Number of entries
     147             :                                                   // in DT_MIPS_DELTA_CLASS.
     148           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_INSTANCE, 0x70000019) // Delta C++ class instances.
     149           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_INSTANCE_NO, 0x7000001A) // Number of entries
     150             :                                                      // in DT_MIPS_DELTA_INSTANCE.
     151           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_RELOC, 0x7000001B)       // Delta relocations.
     152           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_RELOC_NO, 0x7000001C)    // Number of entries
     153             :                                                      // in DT_MIPS_DELTA_RELOC.
     154           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_SYM, 0x7000001D)         // Delta symbols that Delta
     155             :                                                      // relocations refer to.
     156           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_SYM_NO, 0x7000001E)      // Number of entries
     157             :                                                      // in DT_MIPS_DELTA_SYM.
     158           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_CLASSSYM, 0x70000020)    // Delta symbols that hold
     159             :                                                      // class declarations.
     160           0 : MIPS_DYNAMIC_TAG(MIPS_DELTA_CLASSSYM_NO, 0x70000021) // Number of entries
     161             :                                                      // in DT_MIPS_DELTA_CLASSSYM.
     162             : 
     163           0 : MIPS_DYNAMIC_TAG(MIPS_CXX_FLAGS, 0x70000022)         // Flags indicating information
     164             :                                                      // about C++ flavor.
     165           0 : MIPS_DYNAMIC_TAG(MIPS_PIXIE_INIT, 0x70000023)        // Pixie information.
     166           0 : MIPS_DYNAMIC_TAG(MIPS_SYMBOL_LIB, 0x70000024)        // Address of .MIPS.symlib
     167           0 : MIPS_DYNAMIC_TAG(MIPS_LOCALPAGE_GOTIDX, 0x70000025)  // The GOT index of the first PTE
     168             :                                                      // for a segment
     169           0 : MIPS_DYNAMIC_TAG(MIPS_LOCAL_GOTIDX, 0x70000026)      // The GOT index of the first PTE
     170             :                                                      // for a local symbol
     171           0 : MIPS_DYNAMIC_TAG(MIPS_HIDDEN_GOTIDX, 0x70000027)     // The GOT index of the first PTE
     172             :                                                      // for a hidden symbol
     173           0 : MIPS_DYNAMIC_TAG(MIPS_PROTECTED_GOTIDX, 0x70000028)  // The GOT index of the first PTE
     174             :                                                         // for a protected symbol
     175           1 : MIPS_DYNAMIC_TAG(MIPS_OPTIONS, 0x70000029)               // Address of `.MIPS.options'.
     176           0 : MIPS_DYNAMIC_TAG(MIPS_INTERFACE, 0x7000002A)             // Address of `.interface'.
     177           0 : MIPS_DYNAMIC_TAG(MIPS_DYNSTR_ALIGN, 0x7000002B)          // Unknown.
     178           0 : MIPS_DYNAMIC_TAG(MIPS_INTERFACE_SIZE, 0x7000002C)        // Size of the .interface section.
     179           0 : MIPS_DYNAMIC_TAG(MIPS_RLD_TEXT_RESOLVE_ADDR, 0x7000002D) // Size of rld_text_resolve
     180             :                                                          // function stored in the GOT.
     181           0 : MIPS_DYNAMIC_TAG(MIPS_PERF_SUFFIX, 0x7000002E)  // Default suffix of DSO to be added
     182             :                                                 // by rld on dlopen() calls.
     183           0 : MIPS_DYNAMIC_TAG(MIPS_COMPACT_SIZE, 0x7000002F) // Size of compact relocation
     184             :                                                 // section (O32).
     185           0 : MIPS_DYNAMIC_TAG(MIPS_GP_VALUE, 0x70000030)     // GP value for auxiliary GOTs.
     186           0 : MIPS_DYNAMIC_TAG(MIPS_AUX_DYNAMIC, 0x70000031)  // Address of auxiliary .dynamic.
     187           2 : MIPS_DYNAMIC_TAG(MIPS_PLTGOT, 0x70000032)       // Address of the base of the PLTGOT.
     188           0 : MIPS_DYNAMIC_TAG(MIPS_RWPLT, 0x70000034)        // Points to the base
     189             :                                                 // of a writable PLT.
     190           5 : MIPS_DYNAMIC_TAG(MIPS_RLD_MAP_REL, 0x70000035)  // Relative offset of run time loader
     191             :                                                 // map, used for debugging.
     192             : 
     193             : // PPC64 specific dynamic table entries.
     194             : PPC64_DYNAMIC_TAG(PPC64_GLINK, 0x70000000) // Address of 32 bytes before the
     195             :                                            // first glink lazy resolver stub.
     196             : 
     197             : // Sun machine-independent extensions.
     198           5 : DYNAMIC_TAG(AUXILIARY, 0x7FFFFFFD) // Shared object to load before self
     199           7 : DYNAMIC_TAG(FILTER, 0x7FFFFFFF)    // Shared object to get values from
     200             : 
     201             : 
     202             : #ifdef DYNAMIC_TAG_MARKER_DEFINED
     203             : #undef DYNAMIC_TAG_MARKER
     204             : #endif
     205             : #ifdef MIPS_DYNAMIC_TAG_DEFINED
     206             : #undef MIPS_DYNAMIC_TAG
     207             : #undef MIPS_DYNAMIC_TAG_DEFINED
     208             : #endif
     209             : #ifdef HEXAGON_DYNAMIC_TAG_DEFINED
     210             : #undef HEXAGON_DYNAMIC_TAG
     211             : #undef HEXAGON_DYNAMIC_TAG_DEFINED
     212             : #endif
     213             : #ifdef PPC64_DYNAMIC_TAG_DEFINED
     214             : #undef PPC64_DYNAMIC_TAG
     215             : #undef PPC64_DYNAMIC_TAG_DEFINED
     216             : #endif

Generated by: LCOV version 1.13