|
ROSE
0.9.6a
|
#include <BinaryLoaderElf.h>
Public Member Functions | |
| SymverResolver (SgAsmGenericHeader *header) | |
| VersionedSymbol | get_versioned_symbol (SgAsmElfSymbol *symbol) const |
| Returns the VersionedSymbol corresponding to the specified symbol. More... | |
| void | dump (FILE *, const char *prefix, ssize_t idx) const |
| Print some info about the resolver. More... | |
Private Types | |
| typedef std::map < SgAsmElfSymbol *, VersionedSymbol * > | VersionedSymbolMap |
| typedef std::map< uint16_t, SgAsmElfSymverDefinedEntry * > | SymbolVersionDefinitionMap |
| typedef std::map< uint16_t, SgAsmElfSymverNeededAux * > | SymbolVersionNeededMap |
Private Member Functions | |
| void | ctor (SgAsmGenericHeader *) |
| Helper for constructors. More... | |
| void | makeSymbolVersionDefMap (SgAsmElfSymverDefinedSection *) |
| Initialize the p_symbolVersionDefMap from the ELF Symbol Version Definition Table. More... | |
| void | makeSymbolVersionNeedMap (SgAsmElfSymverNeededSection *) |
| Initialize the p_symbolVersionNeedMap from the ELF Symbol Version Requirements Table auxiliary information. More... | |
| void | makeVersionedSymbolMap (SgAsmElfSymbolSection *, SgAsmElfSymverSection *) |
| Create a map from from each SgAsmElfSymbol* to a VersionedSymbol. More... | |
Private Attributes | |
| SymbolVersionDefinitionMap | p_symbolVersionDefMap |
| Map from each ELF Symbol Version Definition Table entry's get_index() to the entry itself. More... | |
| SymbolVersionNeededMap | p_symbolVersionNeedMap |
| Map from each auxiliary's get_other() to the auxiliary itself. More... | |
| VersionedSymbolMap | p_versionedSymbolMap |
| Map from an SgAsmElfSymbol to a VersionedSymbol. More... | |
Definition at line 207 of file BinaryLoaderElf.h.
|
private |
Definition at line 238 of file BinaryLoaderElf.h.
|
private |
Definition at line 239 of file BinaryLoaderElf.h.
|
private |
Definition at line 240 of file BinaryLoaderElf.h.
|
inline |
Definition at line 209 of file BinaryLoaderElf.h.
References ctor().
| VersionedSymbol BinaryLoaderElf::SymverResolver::get_versioned_symbol | ( | SgAsmElfSymbol * | symbol) | const |
Returns the VersionedSymbol corresponding to the specified symbol.
The specified symbol must be a member of the versioned symbol map (or an assertion fails).
| void BinaryLoaderElf::SymverResolver::dump | ( | FILE * | , |
| const char * | prefix, | ||
| ssize_t | idx | ||
| ) | const |
Print some info about the resolver.
|
private |
Helper for constructors.
Referenced by SymverResolver().
|
private |
Initialize the p_symbolVersionDefMap from the ELF Symbol Version Definition Table.
This mapping is from each entry's get_index() to the entry itself.
|
private |
Initialize the p_symbolVersionNeedMap from the ELF Symbol Version Requirements Table auxiliary information.
The mapping is from each auxiliary's get_other() to the auxiliary. The table entries are available indirectly since an SgAsmElfSymverNeededEntry is the parent of each SgAsmElfSymverNeededAux.
|
private |
Create a map from from each SgAsmElfSymbol* to a VersionedSymbol.
The p_symbolVersionDefMap must be initialized before calling this. The SgAsmElfSymverSection argument may be null, in which case VersionedSymbols are basically just a wrapper to their SgAsmElfSymbol.
|
private |
Map from each ELF Symbol Version Definition Table entry's get_index() to the entry itself.
Definition at line 243 of file BinaryLoaderElf.h.
|
private |
Map from each auxiliary's get_other() to the auxiliary itself.
The auxiliaries come from the GNU Symbol Version Requirements Table, each entry of which points to a list of auxiliaries. The parent of each auxiliary is the table entry that contained the auxiliary, thus this mapping also maps get_other() to GNU Symbol Version Requirements Table entries.
Definition at line 249 of file BinaryLoaderElf.h.
|
private |
Map from an SgAsmElfSymbol to a VersionedSymbol.
Definition at line 252 of file BinaryLoaderElf.h.