MEM: Remove Port removeConn and MemObject deletePortRefs
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 17 Jan 2012 18:55:09 +0000 (12:55 -0600)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 17 Jan 2012 18:55:09 +0000 (12:55 -0600)
Cleaning up and simplifying the ports and going towards a more strict
elaboration-time creation and binding of the ports.

src/mem/bus.cc
src/mem/bus.hh
src/mem/cache/cache.hh
src/mem/cache/cache_impl.hh
src/mem/mem_object.cc
src/mem/mem_object.hh
src/mem/port.cc
src/mem/port.hh

index db71b86b73cdda88dd9323b73ea80a08d93cf417..ce834515b83f6ffb7d02844f08289f8c21b81840 100644 (file)
@@ -94,21 +94,6 @@ Bus::getPort(const std::string &if_name, int idx)
     return bp;
 }
 
-void
-Bus::deletePortRefs(Port *p)
-{
-
-    BusPort *bp =  dynamic_cast<BusPort*>(p);
-    if (bp == NULL)
-        panic("Couldn't convert Port* to BusPort*\n");
-    // If this is our one functional port
-    if (funcPort == bp)
-        return;
-    interfaces.erase(bp->getId());
-    clearBusCache();
-    delete bp;
-}
-
 /** Get the ranges of anyone other buses that we are connected to. */
 void
 Bus::init()
index 17d22ec831e74b1848a304f55101235b58156d03..df80063f80295882fb0e99e486dd48af16f4f697 100644 (file)
@@ -367,7 +367,6 @@ class Bus : public MemObject
 
     /** A function used to return the port associated with this bus object. */
     virtual Port *getPort(const std::string &if_name, int idx = -1);
-    virtual void deletePortRefs(Port *p);
 
     virtual void init();
     virtual void startup();
index 8d30ed443cee1ad3207fd8a1d682cb5afdb23daa..7b1c877f9278514a49d26ddf4c643e8ad89cf82b 100644 (file)
@@ -216,7 +216,6 @@ class Cache : public BaseCache
     Cache(const Params *p, TagStore *tags, BasePrefetcher *prefetcher);
 
     virtual Port *getPort(const std::string &if_name, int idx = -1);
-    virtual void deletePortRefs(Port *p);
 
     void regStats();
 
index 581435010893f7475c819629597d8fd51e58a8a6..1e5b59e174f476dc2c7a9e6fead4d340932af4ed 100644 (file)
@@ -114,17 +114,6 @@ Cache<TagStore>::getPort(const std::string &if_name, int idx)
     }
 }
 
-template<class TagStore>
-void
-Cache<TagStore>::deletePortRefs(Port *p)
-{
-    if (cpuSidePort == p || memSidePort == p)
-        panic("Can only delete functional ports\n");
-
-    delete p;
-}
-
-
 template<class TagStore>
 void
 Cache<TagStore>::cmpAndSwap(BlkType *blk, PacketPtr pkt)
index 20a1b4cd87a60fc68610c10735768ae3e7a34aef..111d3718c2fd22dd9b250739c1653a55f8c46906 100644 (file)
@@ -34,9 +34,3 @@ MemObject::MemObject(const Params *params)
     : SimObject(params)
 {
 }
-
-void
-MemObject::deletePortRefs(Port *p)
-{
-    panic("This object does not support port deletion\n");
-}
index b8bf4b939052b847b3064270cbbe69ce265e9fc4..5865fc93549162445770c171521c1b0be4f782ed 100644 (file)
@@ -56,10 +56,6 @@ class MemObject : public SimObject
   public:
     /** Additional function to return the Port of a memory object. */
     virtual Port *getPort(const std::string &if_name, int idx = -1) = 0;
-
-    /** Tell object that this port is about to disappear, so it should remove it
-     * from any structures that it's keeping it in. */
-    virtual void deletePortRefs(Port *p) ;
 };
 
 #endif //__MEM_MEM_OBJECT_HH__
index eae18c6ea6e6d82842746e64ad48ff9749439ff4..fb1715db699dc9a282256908b6389bc6a7954333 100644 (file)
@@ -63,14 +63,6 @@ Port::setOwner(MemObject *_owner)
     owner = _owner;
 }
 
-void
-Port::removeConn()
-{
-    if (peer != NULL)
-        peer->getOwner()->deletePortRefs(peer);
-    peer = NULL;
-}
-
 void
 Port::blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd)
 {
index 4adf8f4cdaf473fd95ed41d33d4cf6bfd085027c..0399a2a0e6aad58851b28012f2885b8e5bab0feb 100644 (file)
@@ -123,10 +123,6 @@ class Port
     /** Function to return the owner of this port. */
     MemObject *getOwner() { return owner; }
 
-    /** Inform the peer port to delete itself and notify it's owner about it's
-     * demise. */
-    void removeConn();
-
     bool isConnected() { return peer != NULL; }
 
   protected: