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

ht_reloc_file Class Reference

#include <relfile.h>

Inheritance diagram for ht_reloc_file:

ht_layer_streamfile ht_streamfile ht_stream ht_elf32_reloc_file ht_le_reloc_file ht_ne_reloc_file ht_pef_reloc_file List of all members.

Public Member Functions

void init (ht_streamfile *streamfile, bool own_streamfile)
virtual void done ()
void finalize ()
void insert_reloc (FILEOFS o, Object *reloc)
virtual UINT read (void *buf, UINT size)
virtual int vcntl (UINT cmd, va_list vargs)
virtual UINT write (const void *buf, UINT size)

Protected Member Functions

virtual void reloc_apply (Object *reloc, byte *data)=0
virtual bool reloc_unapply (Object *reloc, byte *data)=0

Protected Attributes

ht_tree * relocs
bool enabled

Member Function Documentation

void ht_reloc_file::done (   )  [virtual]
 

Reimplemented from ht_layer_streamfile.

Definition at line 40 of file relfile.cc.

References ht_tree::destroy(), ht_layer_streamfile::done(), and relocs.

Referenced by ht_elf::auto_relocate32(), ht_le::done(), and ht_ne::init().

void ht_reloc_file::finalize (   ) 
 

Definition at line 47 of file relfile.cc.

Referenced by ht_elf::auto_relocate32(), ht_le::do_fixups(), and ht_ne::init().

void ht_reloc_file::init (  ht_streamfile *  streamfile,
bool  own_streamfile
) 
 

Reimplemented from ht_layer_streamfile.

Definition at line 31 of file relfile.cc.

References compare_keys_uint(), enabled, ht_stream::init(), and relocs.

void ht_reloc_file::insert_reloc (  FILEOFS  o,
Object *  reloc
) 
 

Definition at line 68 of file relfile.cc.

References FILEOFS, ht_tree::insert(), and relocs.

Referenced by ht_le::do_fixups(), ht_elf::relocate_section(), and ht_ne::relocate_single().

UINT ht_reloc_file::read (  void *  buf,
UINT  size
)  [virtual]
 

Reimplemented from ht_layer_streamfile.

Definition at line 73 of file relfile.cc.

References assert, buf, byte, enabled, ht_tree::enum_next(), FILEOFS, MAX_RELOC_ITEM_LEN, MIN, NULL, ht_layer_streamfile::read(), reloc_apply(), relocs, size, ht_layer_streamfile::tell(), UINT, and ht_data_uint::value.

Referenced by ht_le::check_vxd().

virtual void ht_reloc_file::reloc_apply (  Object *  reloc,
byte *  data
)  [protected, pure virtual]
 

Implemented in ht_elf32_reloc_file, ht_le_reloc_file, ht_ne_reloc_file, and ht_pef_reloc_file.

Referenced by read().

virtual bool ht_reloc_file::reloc_unapply (  Object *  reloc,
byte *  data
)  [protected, pure virtual]
 

Implemented in ht_elf32_reloc_file, ht_le_reloc_file, ht_ne_reloc_file, and ht_pef_reloc_file.

Referenced by write().

int ht_reloc_file::vcntl (  UINT  cmd,
va_list  vargs
)  [virtual]
 

Reimplemented from ht_layer_streamfile.

Definition at line 52 of file relfile.cc.

References enabled, FCNTL_GET_RELOC, FCNTL_SET_RELOC, UINT, and ht_layer_streamfile::vcntl().

UINT ht_reloc_file::write (  const void *  buf,
UINT  size
)  [virtual]
 

Reimplemented from ht_layer_streamfile.

Definition at line 130 of file relfile.cc.

References assert, buf, byte, enabled, ht_tree::enum_next(), FILEOFS, MAX_RELOC_ITEM_LEN, MIN, NULL, reloc_unapply(), relocs, size, ht_layer_streamfile::tell(), UINT, ht_data_uint::value, and ht_layer_streamfile::write().


Member Data Documentation

bool ht_reloc_file::enabled [protected]
 

Definition at line 34 of file relfile.h.

Referenced by init(), read(), vcntl(), and write().

ht_tree* ht_reloc_file::relocs [protected]
 

Definition at line 33 of file relfile.h.

Referenced by done(), init(), insert_reloc(), read(), and write().


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