Interrupts: Inline some code and remove duplication.
authorAli Saidi <saidi@eecs.umich.edu>
Thu, 8 Nov 2007 15:46:41 +0000 (10:46 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Thu, 8 Nov 2007 15:46:41 +0000 (10:46 -0500)
--HG--
extra : convert_revision : 0631c601f281bdd2a12ff0d0ae94576780115c2a

src/cpu/intr_control.cc
src/cpu/intr_control.hh

index 018ae1886a5848eab73fb0e0c7ca8224aa161b6d..c3a11ad91ba1af4c379754f017e8638586e5c7e4 100644 (file)
@@ -32,6 +32,7 @@
 #include <string>
 #include <vector>
 
+#include "base/trace.hh"
 #include "cpu/base.hh"
 #include "cpu/thread_context.hh"
 #include "cpu/intr_control.hh"
@@ -43,36 +44,22 @@ IntrControl::IntrControl(const Params *p)
     : SimObject(p), sys(p->sys)
 {}
 
-void
-IntrControl::post(int int_num, int index)
-{
-    std::vector<ThreadContext *> &tcvec = sys->threadContexts;
-    BaseCPU *temp = tcvec[0]->getCpuPtr();
-    temp->post_interrupt(int_num, index);
-}
-
 void
 IntrControl::post(int cpu_id, int int_num, int index)
 {
+    DPRINTF(IntrControl, "post  %d:%d (cpu %d)\n", int_num, index, cpu_id);
     std::vector<ThreadContext *> &tcvec = sys->threadContexts;
-    BaseCPU *temp = tcvec[cpu_id]->getCpuPtr();
-    temp->post_interrupt(int_num, index);
-}
-
-void
-IntrControl::clear(int int_num, int index)
-{
-    std::vector<ThreadContext *> &tcvec = sys->threadContexts;
-    BaseCPU *temp = tcvec[0]->getCpuPtr();
-    temp->clear_interrupt(int_num, index);
+    BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr();
+    cpu->post_interrupt(int_num, index);
 }
 
 void
 IntrControl::clear(int cpu_id, int int_num, int index)
 {
+    DPRINTF(IntrControl, "clear %d:%d (cpu %d)\n", int_num, index, cpu_id);
     std::vector<ThreadContext *> &tcvec = sys->threadContexts;
-    BaseCPU *temp = tcvec[cpu_id]->getCpuPtr();
-    temp->clear_interrupt(int_num, index);
+    BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr();
+    cpu->clear_interrupt(int_num, index);
 }
 
 IntrControl *
index 746859fab3e6ee56cfaa5bc3747c852e44e1d410..2a63cf608cbfd476ec95e2a6e25d33b32f8b641c 100644 (file)
@@ -47,10 +47,20 @@ class IntrControl : public SimObject
     typedef IntrControlParams Params;
     IntrControl(const Params *p);
 
-    void clear(int int_num, int index = 0);
-    void post(int int_num, int index = 0);
     void clear(int cpu_id, int int_num, int index);
     void post(int cpu_id, int int_num, int index);
+
+    void
+    clear(int int_num, int index = 0)
+    {
+        clear(0, int_num, index);
+    }
+
+    void
+    post(int int_num, int index = 0)
+    {
+        post(0, int_num, index);
+    }
 };
 
 #endif // __INTR_CONTROL_HH__