diff options
Diffstat (limited to 'src/cpu/exec_context.hh')
-rw-r--r-- | src/cpu/exec_context.hh | 53 |
1 files changed, 10 insertions, 43 deletions
diff --git a/src/cpu/exec_context.hh b/src/cpu/exec_context.hh index 1f26183ab..5b601bb30 100644 --- a/src/cpu/exec_context.hh +++ b/src/cpu/exec_context.hh @@ -41,12 +41,16 @@ class AlphaDTB; class AlphaITB; class BaseCPU; +class EndQuiesceEvent; class Event; class TranslatingPort; class FunctionalPort; class VirtualPort; class Process; class System; +namespace Kernel { + class Statistics; +}; class ExecContext { @@ -96,6 +100,8 @@ class ExecContext virtual AlphaDTB * getDTBPtr() = 0; + virtual Kernel::Statistics *getKernelStats() = 0; + virtual FunctionalPort *getPhysPort() = 0; virtual VirtualPort *getVirtPort(ExecContext *xc = NULL) = 0; @@ -136,7 +142,7 @@ class ExecContext virtual void unserialize(Checkpoint *cp, const std::string §ion) = 0; #if FULL_SYSTEM - virtual Event *getQuiesceEvent() = 0; + virtual EndQuiesceEvent *getQuiesceEvent() = 0; // Not necessarily the best location for these... // Having an extra function just to read these is obnoxious @@ -149,15 +155,6 @@ class ExecContext virtual int getThreadNum() = 0; - virtual int getInstAsid() = 0; - virtual int getDataAsid() = 0; - - virtual Fault translateInstReq(RequestPtr &req) = 0; - - virtual Fault translateDataReadReq(RequestPtr &req) = 0; - - virtual Fault translateDataWriteReq(RequestPtr &req) = 0; - // Also somewhat obnoxious. Really only used for the TLB fault. // However, may be quite useful in SPARC. virtual TheISA::MachInst getInst() = 0; @@ -216,11 +213,7 @@ class ExecContext virtual void setStCondFailures(unsigned sc_failures) = 0; #if FULL_SYSTEM - virtual int readIntrFlag() = 0; - virtual void setIntrFlag(int val) = 0; - virtual Fault hwrei() = 0; virtual bool inPalMode() = 0; - virtual bool simPalCheck(int palFunc) = 0; #endif // Only really makes sense for old CPU model. Still could be useful though. @@ -234,12 +227,9 @@ class ExecContext virtual void setSyscallReturn(SyscallReturn return_value) = 0; - virtual void syscall(int64_t callnum) = 0; // Same with st cond failures. virtual Counter readFuncExeInst() = 0; - - virtual void setFuncExeInst(Counter new_val) = 0; #endif virtual void changeRegFileContext(RegFile::ContextParam param, @@ -271,6 +261,8 @@ class ProxyExecContext : public ExecContext AlphaDTB *getDTBPtr() { return actualXC->getDTBPtr(); } + Kernel::Statistics *getKernelStats() { return actualXC->getKernelStats(); } + FunctionalPort *getPhysPort() { return actualXC->getPhysPort(); } VirtualPort *getVirtPort(ExecContext *xc = NULL) { return actualXC->getVirtPort(xc); } @@ -313,7 +305,7 @@ class ProxyExecContext : public ExecContext { actualXC->unserialize(cp, section); } #if FULL_SYSTEM - Event *getQuiesceEvent() { return actualXC->getQuiesceEvent(); } + EndQuiesceEvent *getQuiesceEvent() { return actualXC->getQuiesceEvent(); } Tick readLastActivate() { return actualXC->readLastActivate(); } Tick readLastSuspend() { return actualXC->readLastSuspend(); } @@ -324,18 +316,6 @@ class ProxyExecContext : public ExecContext int getThreadNum() { return actualXC->getThreadNum(); } - int getInstAsid() { return actualXC->getInstAsid(); } - int getDataAsid() { return actualXC->getDataAsid(); } - - Fault translateInstReq(RequestPtr &req) - { return actualXC->translateInstReq(req); } - - Fault translateDataReadReq(RequestPtr &req) - { return actualXC->translateDataReadReq(req); } - - Fault translateDataWriteReq(RequestPtr &req) - { return actualXC->translateDataWriteReq(req); } - // @todo: Do I need this? MachInst getInst() { return actualXC->getInst(); } @@ -406,17 +386,8 @@ class ProxyExecContext : public ExecContext void setStCondFailures(unsigned sc_failures) { actualXC->setStCondFailures(sc_failures); } - #if FULL_SYSTEM - int readIntrFlag() { return actualXC->readIntrFlag(); } - - void setIntrFlag(int val) { actualXC->setIntrFlag(val); } - - Fault hwrei() { return actualXC->hwrei(); } - bool inPalMode() { return actualXC->inPalMode(); } - - bool simPalCheck(int palFunc) { return actualXC->simPalCheck(palFunc); } #endif // @todo: Fix this! @@ -432,12 +403,8 @@ class ProxyExecContext : public ExecContext void setSyscallReturn(SyscallReturn return_value) { actualXC->setSyscallReturn(return_value); } - void syscall(int64_t callnum) { actualXC->syscall(callnum); } Counter readFuncExeInst() { return actualXC->readFuncExeInst(); } - - void setFuncExeInst(Counter new_val) - { return actualXC->setFuncExeInst(new_val); } #endif void changeRegFileContext(RegFile::ContextParam param, |