LLVM  8.0.1
Classes | Namespaces | Macros | Typedefs
ELFTypes.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/Object/Error.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include <cassert>
#include <cstdint>
#include <cstring>
#include <type_traits>
Include dependency graph for ELFTypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::object::Elf_Ehdr_Impl< ELFT >
 
struct  llvm::object::Elf_Shdr_Impl< ELFT >
 
struct  llvm::object::Elf_Sym_Impl< ELFT >
 
struct  llvm::object::Elf_Dyn_Impl< ELFT >
 Elf_Dyn_Impl: This inherits from Elf_Dyn_Base, adding getters. More...
 
struct  llvm::object::Elf_Phdr_Impl< ELFT >
 
struct  llvm::object::Elf_Rel_Impl< ELFT, isRela >
 
struct  llvm::object::Elf_Verdef_Impl< ELFT >
 Elf_Verdef: This is the structure of entries in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verdaux_Impl< ELFT >
 Elf_Verdaux: This is the structure of auxiliary data in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verneed_Impl< ELFT >
 Elf_Verneed: This is the structure of entries in the SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Vernaux_Impl< ELFT >
 Elf_Vernaux: This is the structure of auxiliary data in SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Versym_Impl< ELFT >
 Elf_Versym: This is the structure of entries in the SHT_GNU_versym section (.gnu.version). More...
 
struct  llvm::object::Elf_Hash_Impl< ELFT >
 
struct  llvm::object::Elf_GnuHash_Impl< ELFT >
 
struct  llvm::object::Elf_Chdr_Impl< ELFT >
 
struct  llvm::object::Elf_Nhdr_Impl< ELFT >
 Note header. More...
 
class  llvm::object::Elf_Note_Impl< ELFT >
 An ELF note. More...
 
class  llvm::object::Elf_Note_Iterator_Impl< ELFT >
 
struct  llvm::object::Elf_CGProfile_Impl< ELFT >
 
struct  llvm::object::ELFType< E, Is64 >
 
struct  llvm::object::Elf_Shdr_Base< ELFT >
 
struct  llvm::object::Elf_Shdr_Base< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Shdr_Base< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Shdr_Impl< ELFT >
 
struct  llvm::object::Elf_Sym_Base< ELFT >
 
struct  llvm::object::Elf_Sym_Base< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Sym_Base< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Sym_Impl< ELFT >
 
struct  llvm::object::Elf_Versym_Impl< ELFT >
 Elf_Versym: This is the structure of entries in the SHT_GNU_versym section (.gnu.version). More...
 
struct  llvm::object::Elf_Verdef_Impl< ELFT >
 Elf_Verdef: This is the structure of entries in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verdaux_Impl< ELFT >
 Elf_Verdaux: This is the structure of auxiliary data in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verneed_Impl< ELFT >
 Elf_Verneed: This is the structure of entries in the SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Vernaux_Impl< ELFT >
 Elf_Vernaux: This is the structure of auxiliary data in SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Dyn_Base< ELFT >
 Elf_Dyn_Base: This structure matches the form of entries in the dynamic table section (.dynamic) look like. More...
 
struct  llvm::object::Elf_Dyn_Base< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Dyn_Base< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Dyn_Impl< ELFT >
 Elf_Dyn_Impl: This inherits from Elf_Dyn_Base, adding getters. More...
 
struct  llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, false >, false >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, false >, true >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, true >, false >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, true >, true >
 
struct  llvm::object::Elf_Ehdr_Impl< ELFT >
 
struct  llvm::object::Elf_Phdr_Impl< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Phdr_Impl< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Hash_Impl< ELFT >
 
struct  llvm::object::Elf_GnuHash_Impl< ELFT >
 
struct  llvm::object::Elf_Chdr_Impl< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Chdr_Impl< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Nhdr_Impl< ELFT >
 Note header. More...
 
class  llvm::object::Elf_Note_Impl< ELFT >
 An ELF note. More...
 
class  llvm::object::Elf_Note_Iterator_Impl< ELFT >
 
struct  llvm::object::Elf_CGProfile_Impl< ELFT >
 
struct  llvm::object::Elf_Mips_RegInfo< ELFT >
 
struct  llvm::object::Elf_Mips_RegInfo< ELFType< TargetEndianness, false > >
 
struct  llvm::object::Elf_Mips_RegInfo< ELFType< TargetEndianness, true > >
 
struct  llvm::object::Elf_Mips_Options< ELFT >
 
struct  llvm::object::Elf_Mips_ABIFlags< ELFT >
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::object
 

Macros

#define LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
 
#define LLVM_ELF_COMMA   ,
 
#define LLVM_ELF_IMPORT_TYPES(E, W)   LLVM_ELF_IMPORT_TYPES_ELFT(ELFType<E LLVM_ELF_COMMA W>)
 

Typedefs

using llvm::object::ELF32LE = ELFType< support::little, false >
 
using llvm::object::ELF32BE = ELFType< support::big, false >
 
using llvm::object::ELF64LE = ELFType< support::little, true >
 
using llvm::object::ELF64BE = ELFType< support::big, true >
 

Macro Definition Documentation

◆ LLVM_ELF_COMMA

#define LLVM_ELF_COMMA   ,

Definition at line 113 of file ELFTypes.h.

◆ LLVM_ELF_IMPORT_TYPES

#define LLVM_ELF_IMPORT_TYPES (   E,
 
)    LLVM_ELF_IMPORT_TYPES_ELFT(ELFType<E LLVM_ELF_COMMA W>)

Definition at line 114 of file ELFTypes.h.

◆ LLVM_ELF_IMPORT_TYPES_ELFT

#define LLVM_ELF_IMPORT_TYPES_ELFT (   ELFT)
Value:
using Elf_Addr = typename ELFT::Addr; \
using Elf_Off = typename ELFT::Off; \
using Elf_Half = typename ELFT::Half; \
using Elf_Word = typename ELFT::Word; \
using Elf_Sword = typename ELFT::Sword; \
using Elf_Xword = typename ELFT::Xword; \
using Elf_Sxword = typename ELFT::Sxword;
support::ulittle32_t Word
Definition: IRSymtab.h:51

Definition at line 104 of file ELFTypes.h.

Referenced by llvm::object::Elf_Hash_Impl< ELFT >::chains(), llvm::object::Elf_Verdef_Impl< ELFT >::getAux(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), llvm::object::Elf_Nhdr_Impl< ELFT >::getSize(), and llvm::object::Elf_Note_Iterator_Impl< ELFT >::operator*().