summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu/cpu_exec_context.hh2
-rw-r--r--cpu/exec_context.hh6
2 files changed, 6 insertions, 2 deletions
diff --git a/cpu/cpu_exec_context.hh b/cpu/cpu_exec_context.hh
index 6f725d1e4..846fa98b0 100644
--- a/cpu/cpu_exec_context.hh
+++ b/cpu/cpu_exec_context.hh
@@ -216,6 +216,8 @@ class CPUExecContext
void serialize(std::ostream &os);
void unserialize(Checkpoint *cp, const std::string &section);
+ TranslatingPort *getMemPort() { return port; }
+
BaseCPU *getCpuPtr() { return cpu; }
ExecContext *getProxy() { return proxy; }
diff --git a/cpu/exec_context.hh b/cpu/exec_context.hh
index c917b46e9..225f19b87 100644
--- a/cpu/exec_context.hh
+++ b/cpu/exec_context.hh
@@ -79,10 +79,10 @@ class ExecContext
Halted
};
- TranslatingPort * port;
-
virtual ~ExecContext() { };
+ virtual TranslatingPort *getMemPort() = 0;
+
virtual BaseCPU *getCpuPtr() = 0;
virtual void setCpuId(int id) = 0;
@@ -243,6 +243,8 @@ class ProxyExecContext : public ExecContext
public:
+ TranslatingPort *getMemPort() { return actualXC->getMemPort(); }
+
BaseCPU *getCpuPtr() { return actualXC->getCpuPtr(); }
void setCpuId(int id) { actualXC->setCpuId(id); }