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

LEAnalyser Class Reference

#include <le_analy.h>

Inheritance diagram for LEAnalyser:

Analyser Object List of all members.

Public Member Functions

void init (ht_le_shared_data *le_shared, ht_streamfile *file)
int load (ht_object_stream *f)
virtual void done ()
virtual OBJECT_ID object_id () const
virtual void beginAnalysis ()
virtual UINT bufPtr (Address *Addr, byte *buf, int size)
bool convertAddressToLEAddress (Address *addr, LEAddress *r)
virtual AddresscreateAddress ()
AddresscreateAddressFlat32 (uint32 ofs)
virtual AssemblercreateAssembler ()
virtual const char * getName ()
virtual const char * getType ()
virtual void initCodeAnalyser ()
virtual void initUnasm ()
virtual void log (const char *msg)
virtual AddressnextValid (Address *Addr)
virtual void store (ht_object_stream *f)
virtual int queryConfig (int mode)
virtual AddressfileofsToAddress (FILEOFS fileofs)
virtual char * getSegmentNameByAddress (Address *Addr)
virtual FILEOFS addressToFileofs (Address *Addr)
virtual bool validAddress (Address *Addr, tsectype action)
virtual AddressrealFileofsToAddress (FILEOFS fileofs)
virtual FILEOFS addressToRealFileofs (Address *Addr)

Public Attributes

ht_le_shared_datale_shared
ht_streamfilefile
Areavalidarea

Member Function Documentation

FILEOFS LEAnalyser::addressToFileofs Address Addr  )  [virtual]
 

Implements Analyser.

Definition at line 320 of file le_analy.cc.

References convertAddressToLEAddress(), FILEOFS, INVALID_FILE_OFS, LE_addr_to_ofs(), le_shared, LEAddress, scinitialized, and validAddress().

Referenced by bufPtr().

FILEOFS LEAnalyser::addressToRealFileofs Address Addr  )  [virtual]
 

Definition at line 342 of file le_analy.cc.

References convertAddressToLEAddress(), FILEOFS, INVALID_FILE_OFS, LE_addr_to_ofs(), le_shared, LEAddress, ht_le_shared_data::linear_file, ht_le_page_file::map_ofs(), scinitialized, UINT, and validAddress().

void LEAnalyser::beginAnalysis  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 91 of file le_analy.cc.

References Area::add(), Address::add(), Analyser::addComment(), AF_FUNCTION_END, Analyser::assignSymbol(), Analyser::beginAnalysis(), ht_le_shared_data::best_entrypoint, ht_le_objmap::count, createAddressFlat32(), Object::duplicate(), Location::flags, getSegmentNameByAddress(), ht_le_shared_data::hdr, ht_le_objmap::header, ht_le_shared_data::is_vxd, label_data, label_func, LE_ADDR_INVALID, LE_ADDR_OFS(), LE_ADDR_SEG(), LE_addr_to_segment(), LE_get_seg_addr(), LE_get_seg_vsize(), LE_MAKE_ADDR(), LE_OBJECT_FLAG_USE32, le_shared, LEAddress, Analyser::newLocation(), NULL, ht_le_shared_data::objmap, Analyser::pushAddress(), scinitialized, Analyser::setLocationTreeOptimizeThreshold(), Analyser::setSymbolTreeOptimizeThreshold(), UINT, ht_le_shared_data::v_image, validAddress(), validarea, Analyser::validCodeAddress(), and ht_le_shared_data::vxd_desc.

UINT LEAnalyser::bufPtr Address Addr,
byte *  buf,
int  size
[virtual]
 

Implements Analyser.

Definition at line 365 of file le_analy.cc.

References addressToFileofs(), assert, buf, file, FILEOFS, INVALID_FILE_OFS, ht_stream::read(), ht_streamfile::seek(), size, and UINT.

bool LEAnalyser::convertAddressToLEAddress Address addr,
LEAddress *  r
 

Definition at line 377 of file le_analy.cc.

References ATOM_ADDRESS_X86_FLAT_32, and Object::object_id().

Referenced by addressToFileofs(), addressToRealFileofs(), getSegmentNameByAddress(), and validAddress().

Address * LEAnalyser::createAddress  )  [virtual]
 

Implements Analyser.

Definition at line 388 of file le_analy.cc.

Address * LEAnalyser::createAddressFlat32 uint32  ofs  ) 
 

Definition at line 393 of file le_analy.cc.

Referenced by beginAnalysis(), fileofsToAddress(), and realFileofsToAddress().

Assembler * LEAnalyser::createAssembler  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 401 of file le_analy.cc.

References Object::init(), X86_ADDRSIZE32, and X86_OPSIZE32.

void LEAnalyser::done  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 81 of file le_analy.cc.

References Analyser::done(), Area::done(), and validarea.

Address * LEAnalyser::fileofsToAddress FILEOFS  fileofs  )  [virtual]
 

converts |FILEOFS fileaddr| to |Address|

Reimplemented from Analyser.

Definition at line 514 of file le_analy.cc.

References createAddressFlat32(), FILEOFS, LE_ofs_to_addr(), le_shared, and LEAddress.

const char * LEAnalyser::getName  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 434 of file le_analy.cc.

References file, and ht_stream::get_desc().

char * LEAnalyser::getSegmentNameByAddress Address Addr  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 412 of file le_analy.cc.

References convertAddressToLEAddress(), LE_addr_to_segment(), le_shared, LEAddress, and NULL.

Referenced by beginAnalysis().

const char * LEAnalyser::getType  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 442 of file le_analy.cc.

void LEAnalyser::init ht_le_shared_data le_shared,
ht_streamfile file
 

Definition at line 47 of file le_analy.cc.

References file, Analyser::init(), Area::init(), le_shared, Analyser::setLocationTreeOptimizeThreshold(), Analyser::setSymbolTreeOptimizeThreshold(), and validarea.

Referenced by validAddress().

void LEAnalyser::initCodeAnalyser  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 450 of file le_analy.cc.

References Analyser::initCodeAnalyser().

void LEAnalyser::initUnasm  )  [virtual]
 

Implements Analyser.

Definition at line 458 of file le_analy.cc.

References ANALYX86DISASSEMBLER_FLAGS_VXD_X86DIS, DPRINTF, ht_le_shared_data::is_vxd, and le_shared.

int LEAnalyser::load ht_object_stream f  )  [virtual]
 

loads object from object stream.

Returns:
ht_stream errorcode

Reimplemented from Analyser.

Definition at line 67 of file le_analy.cc.

References GET_OBJECT, Analyser::load(), and validarea.

void LEAnalyser::log const char *  msg  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 469 of file le_analy.cc.

Address * LEAnalyser::nextValid Address Addr  )  [virtual]
 

Implements Analyser.

Definition at line 482 of file le_analy.cc.

References Area::findNext(), and validarea.

OBJECT_ID LEAnalyser::object_id  )  const [virtual]
 

Returns:
unique object id.

Reimplemented from Object.

Definition at line 312 of file le_analy.cc.

References ATOM_LE_ANALYSER.

int LEAnalyser::queryConfig int  mode  )  [virtual]
 

Reimplemented from Analyser.

Definition at line 499 of file le_analy.cc.

References Q_DO_ANALYSIS, Q_ENGAGE_CODE_ANALYSER, and Q_ENGAGE_DATA_ANALYSER.

Address * LEAnalyser::realFileofsToAddress FILEOFS  fileofs  )  [virtual]
 

Definition at line 529 of file le_analy.cc.

References createAddressFlat32(), FILEOFS, LE_ofs_to_addr(), le_shared, LEAddress, ht_le_shared_data::linear_file, UINT, and ht_le_page_file::unmap_ofs().

void LEAnalyser::store ht_object_stream st  )  [virtual]
 

stores object.

Reimplemented from Analyser.

Definition at line 490 of file le_analy.cc.

References PUT_OBJECT, Analyser::store(), and validarea.

bool LEAnalyser::validAddress Address Addr,
tsectype  action
[virtual]
 

Implements Analyser.

Definition at line 544 of file le_analy.cc.

References convertAddressToLEAddress(), ht_le_objmap::header, init(), LE_addr_to_ofs(), LE_addr_to_segment(), LE_OBJECT_FLAG_EXECUTABLE, LE_OBJECT_FLAG_READABLE, LE_OBJECT_FLAG_WRITEABLE, le_shared, LEAddress, ht_le_shared_data::objmap, sccode, scinitialized, scread, screadwrite, scvalid, and scwrite.

Referenced by addressToFileofs(), addressToRealFileofs(), and beginAnalysis().


Member Data Documentation

ht_streamfile* LEAnalyser::file
 

Definition at line 30 of file le_analy.h.

Referenced by bufPtr(), getName(), and init().

ht_le_shared_data* LEAnalyser::le_shared
 

Definition at line 29 of file le_analy.h.

Referenced by addressToFileofs(), addressToRealFileofs(), beginAnalysis(), fileofsToAddress(), getSegmentNameByAddress(), init(), initUnasm(), realFileofsToAddress(), and validAddress().

Area* LEAnalyser::validarea
 

Definition at line 31 of file le_analy.h.

Referenced by beginAnalysis(), done(), init(), load(), nextValid(), and store().


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