Main Page   Compound List   File List   Compound Members  

SymbolTable.hpp

00001 /*
00002  * SymbolTable.hpp:
00003  * a container for "on-demand" symbol address fetching
00004  * written by palmers / teso
00005  */
00006 #ifndef __SYMBOL_TABLE_C
00007 #define __SYMBOL_TABLE_C
00008 
00009 #include <SymbolFingp.hpp>
00010 #include <SystemMap.hpp>
00011 #include <DevMemPatt.hpp>
00012 #include <rwKernel.hpp>
00013 #include <list>
00014 #include <string>
00015 #include <iostream>
00016 #include <fstream>
00017 #include <algorithm>
00018 #include <iterator>
00019 
00020 #define DEFAULTDUMP             "SymbolTableDump"
00021 #define DEFAULTSYSTEMMAP        "System.map"
00022 
00023 typedef struct
00024   {
00025     string Name;
00026     unsigned int Address;
00027   } zzSym;
00028 typedef list<zzSym *> zzSymList;
00029 
00030 
00034 class SymbolTable
00035 {
00036 private:
00037   SymbolFingp *fing;
00038   DevMemPatt *patt;
00039   SystemMap exported;
00040   SystemMap mapp;
00041   SystemMap rest;
00042   string dump_file;
00043 
00044   bool createObjects (rwKernel *);
00045   bool loadFiles (string, string);
00046 
00047 public:
00051   zzSymList symList;
00052 
00056   SymbolTable ();
00057 
00063   SymbolTable (string res, string sys);
00064 
00069   SymbolTable (rwKernel *);
00070 
00074   ~SymbolTable ();
00075 
00080   void setSaveFile (string);
00081 
00088   unsigned int getSymbol (string);
00089 
00096   bool findSymbol (string);
00097 
00101   void addSymbolToCache (string, unsigned int);
00102 
00106   void clearCache ();
00107 
00111   bool saveCache ();
00112 };
00113 #endif /* __SYMBOL_TABLE_C */

Generated at Tue Aug 14 18:04:51 2001 for Kermit by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001