Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

ht_elf Class Reference

#include <htelf.h>

Inheritance diagram for ht_elf:

ht_format_group ht_format_viewer ht_viewer ht_view Object List of all members.

Public Member Functions

void init (bounds *b, ht_streamfile *file, format_viewer_if **ifs, ht_format_group *format_group, FILEOFS header_ofs)
virtual void done ()
virtual void loc_enum_start ()
virtual bool loc_enum_next (ht_format_loc *loc)

Protected Member Functions

void auto_relocate32 ()
void fake_undefined_symbols32 ()
uint find_reloc_section_for (UINT si)
void relocate_section (ht_reloc_file *f, uint si, uint rsi, elf32_addr a)

Protected Attributes

bool loc_enum

Member Function Documentation

void ht_elf::auto_relocate32  )  [protected]
 

Definition at line 410 of file htelf.cc.

References elf_section_headers::count, ht_reloc_file::done(), elf32_addr, ELF_SHT_PROGBITS, ht_reloc_file::finalize(), find_reloc_section_for(), ht_streamfile::get_filename(), ht_elf32_reloc_file::init(), LOG, malloc(), NULL, ht_elf_reloc_section32::relocAddr, relocate_section(), ht_elf_reloc_section32::relocShIdx, ELF_SECTION_HEADER32::sh_addr, ELF_SECTION_HEADER32::sh_type, ht_elf_shared_data::sheaders, elf_section_headers::sheaders32, ht_elf_shared_data::shrelocs, and uint.

Referenced by init().

void ht_elf::done  )  [virtual]
 

Reimplemented from ht_format_group.

Definition at line 236 of file htelf.cc.

References elf_section_headers::count, ht_tree::destroy(), ht_format_group::done(), ELF_HEADER::e_ident, ELF_EI_CLASS, ELFCLASS32, ELFCLASS64, ht_elf_shared_data::ident, ht_elf_shared_data::pheaders, elf_program_headers::pheaders32, elf_program_headers::pheaders64, ht_elf_shared_data::sheaders, elf_section_headers::sheaders32, elf_section_headers::sheaders64, ht_elf_shared_data::shnames, ht_elf_shared_data::shrelocs, uint, and ht_elf_shared_data::undefined2fakeaddr.

void ht_elf::fake_undefined_symbols32  )  [protected]
 

Definition at line 359 of file htelf.cc.

References ht_elf_shared_data::byte_order, elf_section_headers::count, create_host_struct(), elf32_addr, ELF_SHF_ALLOC, ELF_SHF_WRITE, ELF_SHN_UNDEF, ELF_SHT_NOBITS, ELF_SHT_SYMTAB, ELF_SYMBOL32_struct, FAKE_SECTION_BASEADDR, ht_elf_shared_data::fake_undefined_shidx, ht_elf_shared_data::fake_undefined_size, FILEOFS, ht_tree::insert(), LOG, ht_stream::read(), realloc(), ht_streamfile::seek(), ELF_SECTION_HEADER32::sh_offset, ELF_SECTION_HEADER32::sh_size, ELF_SECTION_HEADER32::sh_type, ht_elf_shared_data::sheaders, elf_section_headers::sheaders32, ELF_SYMBOL32::st_shndx, uint, uint32, and ht_elf_shared_data::undefined2fakeaddr.

Referenced by init().

uint ht_elf::find_reloc_section_for UINT  si  )  [protected]
 

Referenced by auto_relocate32().

void ht_elf::init bounds *  b,
ht_streamfile file,
format_viewer_if **  ifs,
ht_format_group format_group,
FILEOFS  header_ofs
 

Definition at line 113 of file htelf.cc.

References auto_relocate32(), big_endian, create_host_struct(), DESC_ELF, ELF_EI_CLASS, ELF_EI_DATA, ELF_ET_REL, ELF_HEADER32_struct, ELF_HEADER64_struct, ELF_PROGRAM_HEADER32_struct, ELF_PROGRAM_HEADER64_struct, ELF_SECTION_HEADER32_struct, ELF_SECTION_HEADER64_struct, ELFCLASS32, ELFCLASS64, ELFDATA2LSB, ELFDATA2MSB, errorbox, fake_undefined_symbols32(), FILEOFS, ht_streamfile::get_filename(), ht_elf_shared_data::header_ofs, htelfreloctable_if, htelfsymboltable_if, Object::init(), ht_format_group::init_if(), ht_format_group::init_ifs(), little_endian, LOG, malloc(), NULL, ht_stream::read(), ht_streamfile::seek(), uint, VIEW_DEBUG_NAME, VO_BROWSABLE, VO_RESIZE, and VO_SELECTABLE.

bool ht_elf::loc_enum_next ht_format_loc loc  )  [virtual]
 

Reimplemented from ht_format_viewer.

Definition at line 467 of file htelf.cc.

References ht_streamfile::get_size(), ht_elf_shared_data::header_ofs, ht_format_loc::length, loc_enum, ht_format_loc::name, and ht_format_loc::start.

void ht_elf::loc_enum_start  )  [virtual]
 

Reimplemented from ht_format_viewer.

Definition at line 481 of file htelf.cc.

References loc_enum.

void ht_elf::relocate_section ht_reloc_file f,
uint  si,
uint  rsi,
elf32_addr  a
[protected]
 

Definition at line 301 of file htelf.cc.

References A, ht_elf_shared_data::byte_order, elf_section_headers::count, create_host_struct(), elf32_addr, ELF32_R_SYM, ELF32_R_TYPE, ELF_REL32_struct, ELF_SHT_REL, ELF_SYMBOL32_struct, ht_elf_shared_data::fake_undefined_shidx, FILEOFS, ht_tree::get(), ht_reloc_file::insert_reloc(), isValidELFSectionIdx(), ELF_REL32::r_info, ELF_REL32::r_offset, ht_stream::read(), S, ht_streamfile::seek(), ELF_SECTION_HEADER32::sh_offset, ht_elf_shared_data::sheaders, elf_section_headers::sheaders32, ht_elf_shared_data::shrelocs, ELF_SYMBOL32::st_shndx, ELF_SYMBOL32::st_value, uint, uint32, ht_elf_shared_data::undefined2fakeaddr, and ht_data_uint32::value.

Referenced by auto_relocate32().


Member Data Documentation

bool ht_elf::loc_enum [protected]
 

Definition at line 139 of file htelf.h.

Referenced by loc_enum_next(), and loc_enum_start().


The documentation for this class was generated from the following files:
Generated on Fri May 7 21:15:57 2004 by doxygen 1.3.5