Sean Wilson has submitted this change and it was merged. ( https://gem5-review.googlesource.com/3929 )

Change subject: arm: Refactor some Event subclasses to lambdas
......................................................................

arm: Refactor some Event subclasses to lambdas

Change-Id: Ic59add8afee1d49633634272d9687a4b1558537e
Signed-off-by: Sean Wilson <spwils...@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3929
Reviewed-by: Jason Lowe-Power <ja...@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandb...@arm.com>
Maintainer: Andreas Sandberg <andreas.sandb...@arm.com>
---
M src/dev/arm/gic_pl390.cc
M src/dev/arm/gic_pl390.hh
M src/dev/arm/vgic.cc
M src/dev/arm/vgic.hh
4 files changed, 17 insertions(+), 32 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Andreas Sandberg: Looks good to me, approved; Looks good to me, approved



diff --git a/src/dev/arm/gic_pl390.cc b/src/dev/arm/gic_pl390.cc
index 126431f..d2ec1d7 100644
--- a/src/dev/arm/gic_pl390.cc
+++ b/src/dev/arm/gic_pl390.cc
@@ -87,7 +87,9 @@
         cpuBpr[x] = GICC_BPR_MINIMUM;
         // Initialize cpu highest int
         cpuHighestInt[x] = SPURIOUS_INT;
-        postIntEvent[x] = new PostIntEvent(*this, x);
+        postIntEvent[x] =
+            new EventFunctionWrapper([this, x]{ postDelayedInt(x); },
+                                     "Post Interrupt to CPU");
     }
DPRINTF(Interrupt, "cpuEnabled[0]=%d cpuEnabled[1]=%d\n", cpuEnabled[0],
             cpuEnabled[1]);
diff --git a/src/dev/arm/gic_pl390.hh b/src/dev/arm/gic_pl390.hh
index 60d9ae3..58d8434 100644
--- a/src/dev/arm/gic_pl390.hh
+++ b/src/dev/arm/gic_pl390.hh
@@ -353,21 +353,7 @@
      */
     void postDelayedInt(uint32_t cpu);

-    /** Event definition to post interrupt to CPU after a delay
-    */
-    class PostIntEvent : public Event
-    {
-      private:
-        Pl390 &parent;
-        uint32_t cpu;
-      public:
-        PostIntEvent(Pl390 &_parent, uint32_t _cpu)
-            : parent(_parent), cpu(_cpu)
-        { }
-        void process() { parent.postDelayedInt(cpu); }
-        const char *description() const { return "Post Interrupt to CPU"; }
-    };
-    PostIntEvent *postIntEvent[CPU_MAX];
+    EventFunctionWrapper *postIntEvent[CPU_MAX];
     int pendingDelayedInterrupts;

   public:
diff --git a/src/dev/arm/vgic.cc b/src/dev/arm/vgic.cc
index 6744ad5..cc8ad77 100644
--- a/src/dev/arm/vgic.cc
+++ b/src/dev/arm/vgic.cc
@@ -53,7 +53,9 @@
       maintInt(p->ppint)
 {
     for (int x = 0; x < VGIC_CPU_MAX; x++) {
-        postVIntEvent[x] = new PostVIntEvent(x, p->platform);
+        postVIntEvent[x] = new EventFunctionWrapper(
+            [this, x]{ processPostVIntEvent(x); },
+            "Post VInterrupt to CPU");
         maintIntPosted[x] = false;
         vIntPosted[x] = false;
     }
@@ -369,6 +371,13 @@
 }

 void
+VGic::processPostVIntEvent(uint32_t cpu)
+{
+     platform->intrctrl->post(cpu, ArmISA::INT_VIRT_IRQ, 0);
+}
+
+
+void
 VGic::postMaintInt(uint32_t cpu)
 {
     DPRINTF(VGIC, "Posting maintenance PPI to GIC/cpu%d\n", cpu);
diff --git a/src/dev/arm/vgic.hh b/src/dev/arm/vgic.hh
index e9bc29c..40e42d4 100644
--- a/src/dev/arm/vgic.hh
+++ b/src/dev/arm/vgic.hh
@@ -104,22 +104,10 @@
     static const uint32_t LR_PENDING    = 1;
     static const uint32_t LR_ACTIVE     = 2;

-    /** Event definition to post interrupt to CPU after a delay
-    */
-    class PostVIntEvent : public Event
-    {
-      private:
-        uint32_t cpu;
-        Platform *platform;
-      public:
-        PostVIntEvent( uint32_t c, Platform* p)
-            : cpu(c), platform(p)
-        { }
- void process() { platform->intrctrl->post(cpu, ArmISA::INT_VIRT_IRQ, 0);} - const char *description() const { return "Post VInterrupt to CPU"; }
-    };
+    /** Post interrupt to CPU */
+    void processPostVIntEvent(uint32_t cpu);

-    PostVIntEvent *postVIntEvent[VGIC_CPU_MAX];
+    EventFunctionWrapper *postVIntEvent[VGIC_CPU_MAX];
     bool        maintIntPosted[VGIC_CPU_MAX];
     bool        vIntPosted[VGIC_CPU_MAX];


--
To view, visit https://gem5-review.googlesource.com/3929
To unsubscribe, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic59add8afee1d49633634272d9687a4b1558537e
Gerrit-Change-Number: 3929
Gerrit-PatchSet: 6
Gerrit-Owner: Sean Wilson <spwils...@wisc.edu>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Jason Lowe-Power <ja...@lowepower.com>
Gerrit-Reviewer: Sean Wilson <spwils...@wisc.edu>
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to