pub struct HashTable<'data, Elf: FileHeader> {
    buckets: &'data [U32<Elf::Endian>],
    chains: &'data [U32<Elf::Endian>],
}Expand description
A SysV symbol hash table in an ELF file.
Returned by SectionHeader::hash.
Fields§
§buckets: &'data [U32<Elf::Endian>]§chains: &'data [U32<Elf::Endian>]Implementations§
Source§impl<'data, Elf: FileHeader> HashTable<'data, Elf>
 
impl<'data, Elf: FileHeader> HashTable<'data, Elf>
Sourcepub fn parse(endian: Elf::Endian, data: &'data [u8]) -> Result<Self>
 
pub fn parse(endian: Elf::Endian, data: &'data [u8]) -> Result<Self>
Parse a SysV hash table.
data should be from an elf::SHT_HASH section, or from a
segment pointed to via the elf::DT_HASH entry.
The header is read at offset 0 in the given data.
Sourcepub fn symbol_table_length(&self) -> u32
 
pub fn symbol_table_length(&self) -> u32
Return the symbol table length.
fn bucket(&self, endian: Elf::Endian, hash: u32) -> SymbolIndex
fn chain(&self, endian: Elf::Endian, index: SymbolIndex) -> SymbolIndex
Sourcepub fn find<R: ReadRef<'data>>(
    &self,
    endian: Elf::Endian,
    name: &[u8],
    hash: u32,
    version: Option<&Version<'_>>,
    symbols: &SymbolTable<'data, Elf, R>,
    versions: &VersionTable<'data, Elf>,
) -> Option<(SymbolIndex, &'data Elf::Sym)>
 
pub fn find<R: ReadRef<'data>>( &self, endian: Elf::Endian, name: &[u8], hash: u32, version: Option<&Version<'_>>, symbols: &SymbolTable<'data, Elf, R>, versions: &VersionTable<'data, Elf>, ) -> Option<(SymbolIndex, &'data Elf::Sym)>
Use the hash table to find the symbol table entry with the given name, hash and version.
Trait Implementations§
Auto Trait Implementations§
impl<'data, Elf> Freeze for HashTable<'data, Elf>
impl<'data, Elf> RefUnwindSafe for HashTable<'data, Elf>
impl<'data, Elf> Send for HashTable<'data, Elf>
impl<'data, Elf> Sync for HashTable<'data, Elf>
impl<'data, Elf> Unpin for HashTable<'data, Elf>
impl<'data, Elf> UnwindSafe for HashTable<'data, Elf>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more