Move more common functionality into SimpleTimingPort,

allowing derived classes to be simplified.

--HG--
extra : convert_revision : c980d3aec5e6c044d8f41e96252726fe9a256605
This commit is contained in:
Steve Reinhardt
2006-08-30 16:24:26 -07:00
parent a8a7ce2b88
commit f9ae0dcf10
9 changed files with 104 additions and 165 deletions

View File

@@ -78,17 +78,13 @@ class PciConfigData : public SimObject
*/
class PciDev : public DmaDevice
{
class PciConfigPort : public PioPort
class PciConfigPort : public SimpleTimingPort
{
protected:
PciDev *device;
virtual bool recvTiming(Packet *pkt);
virtual Tick recvAtomic(Packet *pkt);
virtual void recvFunctional(Packet *pkt) ;
virtual void getDeviceAddressRanges(AddrRangeList &resp,
AddrRangeList &snoop);
@@ -102,9 +98,7 @@ class PciDev : public DmaDevice
public:
PciConfigPort(PciDev *dev, int busid, int devid, int funcid,
Platform *p);
friend class PioPort::SendEvent;
Platform *p);
};
public:
@@ -239,10 +233,6 @@ class PciDev : public DmaDevice
*/
void addressRanges(AddrRangeList &range_list);
/** Do a PCI Configspace memory access. */
Tick recvConfig(Packet *pkt)
{ return pkt->isRead() ? readConfig(pkt) : writeConfig(pkt); }
/**
* Constructor for PCI Dev. This function copies data from the
* config file object PCIConfigData and registers the device with