diff options
author | Ron Dreslinski <rdreslin@umich.edu> | 2006-02-15 14:53:02 -0500 |
---|---|---|
committer | Ron Dreslinski <rdreslin@umich.edu> | 2006-02-15 14:53:02 -0500 |
commit | 90def9ea9ee17c63af846685d55d8956b37476ab (patch) | |
tree | fe2404a6751dd924f4fe531dda01f9201a16d706 /cpu/exec_context.hh | |
parent | 7f114ca41930c7e0a71dfb105472671cfa25ddec (diff) | |
download | gem5-90def9ea9ee17c63af846685d55d8956b37476ab.tar.xz |
Changes to start making the tree use the new memory system. Trying to compile decoder.cc but fails still.
SConscript:
Place the memory objects back in the right place
arch/alpha/isa_desc:
Fix includes to point to the new memory requests
cpu/exec_context.hh:
Exec context now points to memory object, fix the include paths.
Convert to prot_read/prot_write functions instead of read and write.
Convert to new CpuRequestPtr instead of MemReqPtr.
mem/request.hh:
Add back in support for Request Flags (needed by decoder to tag request) Removed the flags that were associated with packets/coherence.
sim/process.hh:
Converted to point to new memory objects
--HG--
extra : convert_revision : a0b95380915d63b53194e2a26336d6adb1a0086b
Diffstat (limited to 'cpu/exec_context.hh')
-rw-r--r-- | cpu/exec_context.hh | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/cpu/exec_context.hh b/cpu/exec_context.hh index 70d731517..8ab3506db 100644 --- a/cpu/exec_context.hh +++ b/cpu/exec_context.hh @@ -30,14 +30,13 @@ #define __CPU_EXEC_CONTEXT_HH__ #include "config/full_system.hh" -#include "mem/functional/functional.hh" -#include "mem/mem_interface.hh" -#include "mem/mem_req.hh" +#include "mem/physical.hh" +#include "mem/request.hh" #include "sim/host.hh" #include "sim/serialize.hh" #include "targetarch/byte_swap.hh" -class PhysicalMemory; +class Memory; class BaseCPU; #if FULL_SYSTEM @@ -123,7 +122,7 @@ class ExecContext int cpu_id; System *system; - FunctionalMemory *mem; + Memory *mem; #if FULL_SYSTEM AlphaITB *itb; @@ -133,7 +132,7 @@ class ExecContext // look them up through the system pointer, but we'll leave them // here for now for convenience MemoryController *memctrl; - PhysicalMemory *physmem; +// PhysicalMemory *physmem; Kernel::Binning *kernelBinning; Kernel::Statistics *kernelStats; @@ -185,7 +184,7 @@ class ExecContext AlphaITB *_itb, AlphaDTB *_dtb, FunctionalMemory *_dem); #else ExecContext(BaseCPU *_cpu, int _thread_num, System *_system, - FunctionalMemory *_mem, Process *_process, int _asid); + Memory *_mem, Process *_process, int _asid); #endif virtual ~ExecContext(); @@ -202,17 +201,17 @@ class ExecContext int getInstAsid() { return regs.instAsid(); } int getDataAsid() { return regs.dataAsid(); } - Fault translateInstReq(MemReqPtr &req) + Fault translateInstReq(CpuRequestPtr &req) { return itb->translate(req); } - Fault translateDataReadReq(MemReqPtr &req) + Fault translateDataReadReq(CpuRequestPtr &req) { return dtb->translate(req, false); } - Fault translateDataWriteReq(MemReqPtr &req) + Fault translateDataWriteReq(CpuRequestPtr &req) { return dtb->translate(req, true); } @@ -227,17 +226,17 @@ class ExecContext int getInstAsid() { return asid; } int getDataAsid() { return asid; } - Fault translateInstReq(MemReqPtr &req) + Fault translateInstReq(CpuRequestPtr &req) { return process->pTable->translate(req); } - Fault translateDataReadReq(MemReqPtr &req) + Fault translateDataReadReq(CpuRequestPtr &req) { return process->pTable->translate(req); } - Fault translateDataWriteReq(MemReqPtr &req) + Fault translateDataWriteReq(CpuRequestPtr &req) { return process->pTable->translate(req); } @@ -245,7 +244,7 @@ class ExecContext #endif template <class T> - Fault read(MemReqPtr &req, T &data) + Fault read(CpuRequestPtr &req, T &data) { #if FULL_SYSTEM && defined(TARGET_ALPHA) if (req->flags & LOCKED) { @@ -256,13 +255,13 @@ class ExecContext #endif Fault error; - error = mem->read(req, data); + error = mem->prot_read(req->paddr, data, req->size); data = gtoh(data); return error; } template <class T> - Fault write(MemReqPtr &req, T &data) + Fault write(CpuRequestPtr &req, T &data) { #if FULL_SYSTEM && defined(TARGET_ALPHA) @@ -307,7 +306,7 @@ class ExecContext } #endif - return mem->write(req, (T)htog(data)); + return mem->prot_write(req->paddr, (T)htog(data), req->size); } virtual bool misspeculating(); @@ -320,7 +319,7 @@ class ExecContext inst = new_inst; } - Fault instRead(MemReqPtr &req) + Fault instRead(CpuRequestPtr &req) { panic("instRead not implemented"); // return funcPhysMem->read(req, inst); |