summaryrefslogtreecommitdiff
path: root/sim/system.hh
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2003-10-14 12:19:59 -0400
committerNathan Binkert <binkertn@umich.edu>2003-10-14 12:19:59 -0400
commit4759c203c774ef42a2a35832e220a95cffb5fa7b (patch)
tree82d650870f8dcc58727f309df2b807fed895cee2 /sim/system.hh
parent481aaf03cf933c13c3d9bf294629c6740726025e (diff)
downloadgem5-4759c203c774ef42a2a35832e220a95cffb5fa7b.tar.xz
Remove all of the Tru64 specific stuff from the base System object
into its own Tru64System object. Also remove the System builder stuff and create a Tru64System builder. This makes it much simpler to support more operating systems. arch/alpha/ev5.cc: Each system provides its own mechanism for doing a breakpoint. base/remote_gdb.hh: #include <map> cpu/pc_event.cc: cpu/pc_event.hh: Separate out System specific PCEvents cpu/simple_cpu/simple_cpu.cc: each system provides its own init script kern/tru64/dump_mbuf.cc: kern/tru64/printf.cc: Stick this in a namespace --HG-- extra : convert_revision : 9f74527ed2ff8010431d9aff34357aaecc1fb3f6
Diffstat (limited to 'sim/system.hh')
-rw-r--r--sim/system.hh49
1 files changed, 9 insertions, 40 deletions
diff --git a/sim/system.hh b/sim/system.hh
index 3ab514bfa..bec1011ce 100644
--- a/sim/system.hh
+++ b/sim/system.hh
@@ -45,66 +45,35 @@ class ExecContext;
class System : public SimObject
{
- private:
-
- SymbolTable *kernelSymtab;
- SymbolTable *consoleSymtab;
-
- BreakPCEvent kernel_panic_event;
- BreakPCEvent console_panic_event;
- BadAddrEvent badaddr_event;
- SkipFuncEvent skip_power_state;
- SkipFuncEvent skip_scavenge_boot;
- PrintfEvent printf_event;
- DebugPrintfEvent debug_printf_event;
- DebugPrintfEvent debug_printfr_event;
- DumpMbufEvent dump_mbuf_event;
-
- RegFile *initRegs;
-
- Addr kernelStart;
- Addr kernelEnd;
- Addr kernelEntry;
-
public:
-
MemoryController *memCtrl;
PhysicalMemory *physmem;
PCEventQueue pcEventQueue;
std::vector<ExecContext *> xcvec;
+ void registerExecContext(ExecContext *xc);
- RemoteGDB *remoteGDB;
- GDBListener *gdbListen;
-
- System(const std::string name,
- MemoryController *, PhysicalMemory *,
- const std::string &kernel_path, const std::string &console_path,
- const std::string &palcode, const std::string &boot_osflags);
-
+ public:
+ System(const std::string name, MemoryController *, PhysicalMemory *);
~System();
- const SymbolTable *getKernelSymtab() const { return kernelSymtab; }
- const SymbolTable *getConsoleSymtab() const { return consoleSymtab; }
+ virtual void init(ExecContext *xc) = 0;
- Addr getKernelStart() const { return kernelStart; }
- Addr getKernelEnd() const { return kernelEnd; }
- Addr getKernelEntry() const { return kernelEntry; }
+ virtual Addr getKernelStart() const = 0;
+ virtual Addr getKernelEnd() const = 0;
+ virtual Addr getKernelEntry() const = 0;
+ virtual bool breakpoint() = 0;
- void initBootContext(ExecContext *xc);
- void registerExecContext(ExecContext *xc);
+ public:
////////////////////////////////////////////
//
// STATIC GLOBAL SYSTEM LIST
//
////////////////////////////////////////////
- public:
-
static std::vector<System *> systemList;
-
static int numSystemsRunning;
static void printSystems();