Moved the idle event out of system_events.hh. The skipFuncEvent can be made ISA indep...
authorGabe Black <gblack@eecs.umich.edu>
Tue, 7 Nov 2006 10:38:33 +0000 (05:38 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 7 Nov 2006 10:38:33 +0000 (05:38 -0500)
--HG--
extra : convert_revision : b2631b1163397ecc99f2f315e2b88537e2002731

src/arch/alpha/linux/system.cc
src/arch/alpha/linux/system.hh
src/kern/alpha/idle_event.cc [new file with mode: 0644]
src/kern/alpha/idle_event.hh [new file with mode: 0644]
src/kern/system_events.cc
src/kern/system_events.hh

index 7cf234eeb33747e030461170a39b0145376c8704..00684edbbe231abf0ff87e05cc0b175f4f854a20 100644 (file)
@@ -49,6 +49,7 @@
 #include "cpu/thread_context.hh"
 #include "cpu/base.hh"
 #include "dev/platform.hh"
+#include "kern/alpha/idle_event.hh"
 #include "kern/linux/printk.hh"
 #include "kern/linux/events.hh"
 #include "mem/physical.hh"
index 6921ba820cb67b69ca8284dc6e358b12bd157dc4..d4c92ac01680e62f0242ed63429f8572f8101d83 100644 (file)
@@ -39,6 +39,7 @@ class BreakPCEvent;
 class IdleStartEvent;
 
 #include "arch/alpha/system.hh"
+#include "kern/alpha/idle_event.hh"
 #include "kern/linux/events.hh"
 
 using namespace AlphaISA;
diff --git a/src/kern/alpha/idle_event.cc b/src/kern/alpha/idle_event.cc
new file mode 100644 (file)
index 0000000..3f07b6c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004-2005 The Regents of The University of Michigan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Lisa Hsu
+ *          Nathan Binkert
+ */
+
+#include "cpu/thread_context.hh"
+#include "kern/alpha/idle_event.hh"
+#include "kern/kernel_stats.hh"
+
+using namespace TheISA;
+
+void
+IdleStartEvent::process(ThreadContext *tc)
+{
+    if (tc->getKernelStats())
+        tc->getKernelStats()->setIdleProcess(
+            tc->readMiscReg(AlphaISA::IPR_PALtemp23), tc);
+    remove();
+}
diff --git a/src/kern/alpha/idle_event.hh b/src/kern/alpha/idle_event.hh
new file mode 100644 (file)
index 0000000..97d5bdd
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2004-2005 The Regents of The University of Michigan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Nathan Binkert
+ *          Lisa Hsu
+ *          Ali Saidi
+ */
+
+#ifndef __KERN_ALPHA_IDLE_EVENT_HH__
+#define __KERN_ALPHA_IDLE_EVENT_HH__
+
+#include "cpu/pc_event.hh"
+
+class IdleStartEvent : public PCEvent
+{
+  public:
+    IdleStartEvent(PCEventQueue *q, const std::string &desc, Addr addr)
+        : PCEvent(q, desc, addr)
+    {}
+    virtual void process(ThreadContext *tc);
+};
+
+#endif // __KERN_ALPHA_IDLE_EVENT_HH__
index 177ce96d16db466d197f84bda2677a4412e44260..a6337a2fdefbeed132762b761fe5dccfe6b42813 100644 (file)
  *          Nathan Binkert
  */
 
-#include "cpu/base.hh"
+#include "base/trace.hh"
 #include "cpu/thread_context.hh"
-#include "kern/kernel_stats.hh"
 #include "kern/system_events.hh"
-#include "sim/system.hh"
 
 using namespace TheISA;
 
@@ -47,19 +45,4 @@ SkipFuncEvent::process(ThreadContext *tc)
 
     tc->setPC(newpc);
     tc->setNextPC(tc->readPC() + sizeof(TheISA::MachInst));
-/*
-    BranchPred *bp = tc->getCpuPtr()->getBranchPred();
-    if (bp != NULL) {
-        bp->popRAS(tc->getThreadNum());
-    }
-*/
-}
-
-void
-IdleStartEvent::process(ThreadContext *tc)
-{
-    if (tc->getKernelStats())
-        tc->getKernelStats()->setIdleProcess(
-            tc->readMiscReg(AlphaISA::IPR_PALtemp23), tc);
-    remove();
 }
index 93b5eb5287f86e8f728325f59e7ea28db9af20c6..58cbc480838bfb0bf6144657388050684d1c116b 100644 (file)
@@ -35,8 +35,6 @@
 
 #include "cpu/pc_event.hh"
 
-class System;
-
 class SkipFuncEvent : public PCEvent
 {
   public:
@@ -46,13 +44,4 @@ class SkipFuncEvent : public PCEvent
     virtual void process(ThreadContext *tc);
 };
 
-class IdleStartEvent : public PCEvent
-{
-  public:
-    IdleStartEvent(PCEventQueue *q, const std::string &desc, Addr addr)
-        : PCEvent(q, desc, addr)
-    {}
-    virtual void process(ThreadContext *tc);
-};
-
 #endif // __SYSTEM_EVENTS_HH__