Ruby: Simplify tester ports by not using SimpleTimingPort
authorAndreas Hansson <andreas.hansson@arm.com>
Fri, 24 Feb 2012 16:48:48 +0000 (11:48 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Fri, 24 Feb 2012 16:48:48 +0000 (11:48 -0500)
This patch simplfies the master ports used by RubyDirectedTester and
RubyTester by avoiding the use of SimpleTimingPort. Neither tester
made any use of the functionality offered by SimpleTimingPort besides
a trivial implementation of recvFunctional (only snoops) and
recvRangeChange (not relevant since there is only one master).

The patch does not change or add any functionality, it merely makes
the introduction of a master/slave port easier (in a future patch).

src/cpu/testers/directedtest/RubyDirectedTester.hh
src/cpu/testers/rubytest/RubyTester.hh

index 53c3896928bdb1aa1ea86c24a4aa7e374226440d..cd0632976357adedb85e26bc459a14e5cc37d948 100644 (file)
@@ -47,14 +47,15 @@ class DirectedGenerator;
 class RubyDirectedTester : public MemObject
 {
   public:
-    class CpuPort : public SimpleTimingPort
+    class CpuPort : public Port
     {
       private:
         RubyDirectedTester *tester;
 
       public:
-        CpuPort(const std::string &_name, RubyDirectedTester *_tester, uint32_t _idx)
-            : SimpleTimingPort(_name, _tester), tester(_tester), idx(_idx)
+        CpuPort(const std::string &_name, RubyDirectedTester *_tester,
+                uint32_t _idx)
+            : Port(_name, _tester), tester(_tester), idx(_idx)
         {}
 
         uint32_t idx;
@@ -62,6 +63,8 @@ class RubyDirectedTester : public MemObject
       protected:
         virtual bool recvTiming(PacketPtr pkt);
         virtual Tick recvAtomic(PacketPtr pkt);
+        virtual void recvFunctional(PacketPtr pkt) { }
+        virtual void recvRangeChange() { }
     };
 
     typedef RubyDirectedTesterParams Params;
index fae40a417536f184e0aa703cf2596baddd7d9ea6..e8cf4c87461ba2872fca1fea41dcef214a81e4bf 100644 (file)
 class RubyTester : public MemObject
 {
   public:
-    class CpuPort : public SimpleTimingPort
+    class CpuPort : public Port
     {
       private:
         RubyTester *tester;
 
       public:
         CpuPort(const std::string &_name, RubyTester *_tester, int _idx)
-            : SimpleTimingPort(_name, _tester), tester(_tester), idx(_idx)
+            : Port(_name, _tester), tester(_tester), idx(_idx)
         {}
 
         int idx;
@@ -60,6 +60,8 @@ class RubyTester : public MemObject
       protected:
         virtual bool recvTiming(PacketPtr pkt);
         virtual Tick recvAtomic(PacketPtr pkt);
+        virtual void recvFunctional(PacketPtr pkt) { }
+        virtual void recvRangeChange() { }
     };
 
     struct SenderState : public Packet::SenderState