summaryrefslogtreecommitdiff
path: root/src/cpu/cpu_exec_context.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/cpu_exec_context.hh')
-rw-r--r--src/cpu/cpu_exec_context.hh28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/cpu/cpu_exec_context.hh b/src/cpu/cpu_exec_context.hh
index 2c06a7b3b..61e6550af 100644
--- a/src/cpu/cpu_exec_context.hh
+++ b/src/cpu/cpu_exec_context.hh
@@ -52,6 +52,10 @@ class FunctionalPort;
class PhysicalPort;
+namespace Kernel {
+ class Statistics;
+};
+
#else // !FULL_SYSTEM
#include "sim/process.hh"
@@ -142,23 +146,9 @@ class CPUExecContext
Addr profilePC;
void dumpFuncProfile();
- /** Event for timing out quiesce instruction */
- struct EndQuiesceEvent : public Event
- {
- /** A pointer to the execution context that is quiesced */
- CPUExecContext *cpuXC;
-
- EndQuiesceEvent(CPUExecContext *_cpuXC);
+ EndQuiesceEvent *quiesceEvent;
- /** Event process to occur at interrupt*/
- virtual void process();
-
- /** Event description */
- virtual const char *description();
- };
- EndQuiesceEvent quiesceEvent;
-
- Event *getQuiesceEvent() { return &quiesceEvent; }
+ EndQuiesceEvent *getQuiesceEvent() { return quiesceEvent; }
Tick readLastActivate() { return lastActivate; }
@@ -168,6 +158,9 @@ class CPUExecContext
void profileSample();
+ Kernel::Statistics *getKernelStats() { return kernelStats; }
+
+ Kernel::Statistics *kernelStats;
#else
/// Port that syscalls can use to access memory (provides translation step).
TranslatingPort *port;
@@ -208,7 +201,8 @@ class CPUExecContext
// constructor: initialize context from given process structure
#if FULL_SYSTEM
CPUExecContext(BaseCPU *_cpu, int _thread_num, System *_system,
- AlphaITB *_itb, AlphaDTB *_dtb);
+ AlphaITB *_itb, AlphaDTB *_dtb,
+ bool use_kernel_stats = true);
#else
CPUExecContext(BaseCPU *_cpu, int _thread_num, Process *_process, int _asid,
MemObject *memobj);