Fixed some void functions with returns, first stab at cpu ports.
authorRon Dreslinski <rdreslin@umich.edu>
Tue, 31 Jan 2006 19:39:41 +0000 (14:39 -0500)
committerRon Dreslinski <rdreslin@umich.edu>
Tue, 31 Jan 2006 19:39:41 +0000 (14:39 -0500)
cpu/simple/cpu.hh:
    Adding port definitions to simple cpu, still needs work.
mem/bus.hh:
    no return for void functions

--HG--
extra : convert_revision : 42e5bc16af187d3a46eb25a15b600a8a11b88cc5

cpu/simple/cpu.hh
mem/bus.hh

index 0f72512374f16e1f8db34c4ff67c5d7ed67fe765..30fea0f861f344fe039d63d71b73e92c44d83b0e 100644 (file)
@@ -63,6 +63,40 @@ namespace Trace {
 
 class SimpleCPU : public BaseCPU
 {
+    class CpuPort : public Port
+    {
+
+        SimpleCPU *cpu;
+
+      public:
+
+        CpuPort(SimpleCPU *_cpu)
+            : cpu(_cpu)
+        { }
+
+      protected:
+
+        virtual bool recvTiming(Packet &pkt)
+        { return cpu->recvTiming(pkt); }
+
+        virtual Tick recvAtomic(Packet &pkt)
+        { return cpu->recvAtomic(pkt); }
+
+        virtual void recvFunctional(Packet &pkt)
+        { cpu->recvFunctional(pkt); }
+
+        virtual void recvStatusChange(Status status)
+        { cpu->recvStatusChange(status); }
+
+    };
+
+    CpuPort icache_port;
+    CpuPort dcache_port;
+
+    bool recvTiming(Packet &pkt);
+    Tick recvAtomic(Packet &pkt);
+    void recvFunctional(Packet &pkt);
+
   public:
     // main simulation loop (one cycle)
     void tick();
index 0fd450c4f43642808bfb4291de580d2d1e0532ff..e1b29bac6899d4fbe18f58245b81cd37984b5108 100644 (file)
@@ -92,7 +92,7 @@ class Bus : public MemObject
         /** When reciving a Functional requestfrom the peer port (at id),
             pass it to the bus. */
         virtual void recvFunctional(Packet &pkt)
-        { return bus->recvFunctional(pkt, id); }
+        { bus->recvFunctional(pkt, id); }
 
         /** When reciving a status changefrom the peer port (at id),
             pass it to the bus. */