diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2006-04-06 15:00:11 -0400 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2006-04-06 15:00:11 -0400 |
commit | 6a962f8343d0e7f138baa4034633c986eecc9edf (patch) | |
tree | f16fdcc7455b0e7cd14af660ebdeb029db3c669a /sim | |
parent | 3124c5b7bb0cdcb3b16b52533c6a3e50a5970152 (diff) | |
parent | 6240f8c4bcf12e3367905adfba066bb14f79262a (diff) | |
download | gem5-6a962f8343d0e7f138baa4034633c986eecc9edf.tar.xz |
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision : bd6352647798275a12d52d55a129cdddd8e25423
Diffstat (limited to 'sim')
-rw-r--r-- | sim/process.cc | 2 | ||||
-rw-r--r-- | sim/pseudo_inst.cc | 2 | ||||
-rw-r--r-- | sim/system.cc | 17 | ||||
-rw-r--r-- | sim/system.hh | 11 | ||||
-rw-r--r-- | sim/vptr.hh | 12 |
5 files changed, 27 insertions, 17 deletions
diff --git a/sim/process.cc b/sim/process.cc index b483c70dc..4e4a54572 100644 --- a/sim/process.cc +++ b/sim/process.cc @@ -39,7 +39,7 @@ #include "config/full_system.hh" #include "cpu/exec_context.hh" #include "mem/page_table.hh" -#include "mem/mem_object.hh" +#include "mem/physical.hh" #include "mem/translating_port.hh" #include "sim/builder.hh" #include "sim/process.hh" diff --git a/sim/pseudo_inst.cc b/sim/pseudo_inst.cc index e475006e7..3cdc05e78 100644 --- a/sim/pseudo_inst.cc +++ b/sim/pseudo_inst.cc @@ -175,7 +175,7 @@ namespace AlphaPseudo addsymbol(ExecContext *xc, Addr addr, Addr symbolAddr) { char symb[100]; - CopyString(xc, symb, symbolAddr, 100); + CopyStringOut(xc, symb, symbolAddr, 100); std::string symbol(symb); DPRINTF(Loader, "Loaded symbol: %s @ %#llx\n", symbol, addr); diff --git a/sim/system.cc b/sim/system.cc index cfa316b11..ca9d68d77 100644 --- a/sim/system.cc +++ b/sim/system.cc @@ -1,16 +1,17 @@ +#include "arch/isa_traits.hh" #include "base/loader/object_file.hh" #include "base/loader/symtab.hh" +#include "base/trace.hh" #include "cpu/exec_context.hh" +#include "mem/mem_object.hh" +#include "mem/physical.hh" #include "sim/builder.hh" -#include "arch/isa_traits.hh" #include "sim/byteswap.hh" #include "sim/system.hh" -#include "base/trace.hh" -#include "mem/mem_object.hh" #if FULL_SYSTEM +#include "arch/vtophys.hh" #include "base/remote_gdb.hh" #include "kern/kernel_stats.hh" -#include "arch/vtophys.hh" #endif using namespace std; @@ -23,7 +24,7 @@ int System::numSystemsRunning = 0; System::System(Params *p) : SimObject(p->name), physmem(p->physmem), numcpus(0), #if FULL_SYSTEM - memctrl(p->memctrl), init_param(p->init_param), + init_param(p->init_param), #else page_ptr(0), #endif @@ -45,6 +46,10 @@ System::System(Params *p) functionalPort.setPeer(mem_port); mem_port->setPeer(&functionalPort); + mem_port = physmem->getPort("functional"); + virtPort.setPeer(mem_port); + mem_port->setPeer(&virtPort); + /** * Load the kernel code into memory @@ -237,7 +242,7 @@ DEFINE_SIM_OBJECT_CLASS_NAME("System", System) BEGIN_DECLARE_SIM_OBJECT_PARAMS(System) - SimObjectParam<MemObject *> physmem; + SimObjectParam<PhysicalMemory *> physmem; END_DECLARE_SIM_OBJECT_PARAMS(System) diff --git a/sim/system.hh b/sim/system.hh index 11f8ac70a..3c2c27bee 100644 --- a/sim/system.hh +++ b/sim/system.hh @@ -40,13 +40,13 @@ #include "sim/sim_object.hh" #if FULL_SYSTEM #include "kern/system_events.hh" +#include "mem/vport.hh" #endif class BaseCPU; class ExecContext; -class MemoryController; class ObjectFile; -class MemObject; +class PhysicalMemory; #if FULL_SYSTEM class Platform; @@ -58,7 +58,7 @@ namespace Kernel { class Binning; } class System : public SimObject { public: - MemObject *physmem; + PhysicalMemory *physmem; PCEventQueue pcEventQueue; std::vector<ExecContext *> execContexts; @@ -73,13 +73,13 @@ class System : public SimObject } #if FULL_SYSTEM - MemoryController *memctrl; Platform *platform; uint64_t init_param; /** Port to physical memory used for writing object files into ram at * boot.*/ FunctionalPort functionalPort; + VirtualPort virtPort; /** kernel symbol table */ SymbolTable *kernelSymtab; @@ -151,11 +151,10 @@ class System : public SimObject struct Params { std::string name; - MemObject *physmem; + PhysicalMemory *physmem; #if FULL_SYSTEM Tick boot_cpu_frequency; - MemoryController *memctrl; uint64_t init_param; bool bin; std::vector<std::string> binned_fns; diff --git a/sim/vptr.hh b/sim/vptr.hh index 0ec452f25..cc57e63f0 100644 --- a/sim/vptr.hh +++ b/sim/vptr.hh @@ -96,20 +96,26 @@ class VPtr operator T *() { - void *addr = vtomem(xc, ptr, sizeof(T)); + panic("Needs to be rewritten\n"); +/* void *addr = vtomem(xc, ptr, sizeof(T)); return (T *)addr; + */ } T *operator->() { - void *addr = vtomem(xc, ptr, sizeof(T)); + panic("Needs to be rewritten\n"); +/* void *addr = vtomem(xc, ptr, sizeof(T)); return (T *)addr; + */ } T &operator*() { - void *addr = vtomem(xc, ptr, sizeof(T)); + panic("Needs to be rewritten\n"); +/* void *addr = vtomem(xc, ptr, sizeof(T)); return *(T *)addr; + */ } }; |