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 §ion); + 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); }