LLVM  14.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
ELF.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/Object/ELFTypes.h"
#include "llvm/Object/Error.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <utility>
Include dependency graph for ELF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::object::VerdAux
 
struct  llvm::object::VerDef
 
struct  llvm::object::VernAux
 
struct  llvm::object::VerNeed
 
struct  llvm::object::VersionEntry
 
class  llvm::object::ELFFile< ELFT >
 
struct  llvm::object::DataRegion< T >
 
class  llvm::object::ELFFile< ELFT >
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::object
 

Typedefs

using llvm::object::ELF32LEFile = ELFFile< ELF32LE >
 
using llvm::object::ELF64LEFile = ELFFile< ELF64LE >
 
using llvm::object::ELF32BEFile = ELFFile< ELF32BE >
 
using llvm::object::ELF64BEFile = ELFFile< ELF64BE >
 

Enumerations

enum  llvm::object::PPCInstrMasks : uint64_t {
  llvm::object::PADDI_R12_NO_DISP = 0x0610000039800000, llvm::object::ADDIS_R12_TO_R2_NO_DISP = 0x3D820000, llvm::object::ADDI_R12_TO_R2_NO_DISP = 0x39820000, llvm::object::ADDI_R12_TO_R12_NO_DISP = 0x398C0000,
  llvm::object::PLD_R12_NO_DISP = 0x04100000E5800000, llvm::object::MTCTR_R12 = 0x7D8903A6, llvm::object::BCTR = 0x4E800420
}
 

Functions

StringRef llvm::object::getELFRelocationTypeName (uint32_t Machine, uint32_t Type)
 
uint32_t llvm::object::getELFRelativeRelocationType (uint32_t Machine)
 
StringRef llvm::object::getELFSectionTypeName (uint32_t Machine, uint32_t Type)
 
std::pair< unsigned char, unsigned char > llvm::object::getElfArchType (StringRef Object)
 
template<class ELFT >
std::string llvm::object::getSecIndexForError (const ELFFile< ELFT > &Obj, const typename ELFT::Shdr &Sec)
 
template<class ELFT >
static std::string llvm::object::describe (const ELFFile< ELFT > &Obj, const typename ELFT::Shdr &Sec)
 
template<class ELFT >
std::string llvm::object::getPhdrIndexForError (const ELFFile< ELFT > &Obj, const typename ELFT::Phdr &Phdr)
 
static Error llvm::object::defaultWarningHandler (const Twine &Msg)
 
template<class ELFT >
Expected< const typename ELFT::Shdr * > llvm::object::getSection (typename ELFT::ShdrRange Sections, uint32_t Index)
 
template<class ELFT >
Expected< uint32_tllvm::object::getExtendedSymbolTableIndex (const typename ELFT::Sym &Sym, unsigned SymIndex, DataRegion< typename ELFT::Word > ShndxTable)
 
template<class ELFT >
static Expected< uint64_tllvm::object::getDynSymtabSizeFromGnuHash (const typename ELFT::GnuHash &Table, const void *BufEnd)
 This function finds the number of dynamic symbols using a GNU hash table. More...
 
unsigned llvm::object::hashSysV (StringRef SymbolName)
 This function returns the hash value for a symbol in the .dynsym section Name of the API remains consistent as specified in the libelf REF : http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#hash. More...