LLVM 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
ELF.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallString.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/DataExtractor.h"
#include "llvm/Support/Error.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <type_traits>
#include <utility>

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
 
struct  llvm::object::DataRegion< T >
 
class  llvm::object::ELFFile< ELFT >
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  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 charllvm::object::getElfArchType (StringRef Object)
 
template<class ELFT >
static 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 >
static 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 >
static bool llvm::object::checkSectionOffsets (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
 
template<class ELFT >
static bool llvm::object::checkSectionVMA (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
 
template<class ELFT >
static bool llvm::object::isSectionInSegment (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
 
template<bool Is64>
static Error llvm::object::decodeCrel (ArrayRef< uint8_t > Content, function_ref< void(uint64_t, bool)> HdrHandler, function_ref< void(Elf_Crel_Impl< Is64 >)> EntryHandler)
 
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.
 
uint32_t 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.
 
uint32_t llvm::object::hashGnu (StringRef Name)
 This function returns the hash value for a symbol in the .dynsym section for the GNU hash table.