summaryrefslogtreecommitdiff
path: root/src/mem/physical.hh
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-01-17 12:55:09 -0600
committerAndreas Hansson <andreas.hansson@arm.com>2012-01-17 12:55:09 -0600
commit07cf9d914b292008ead7021182ec2ef8fc4671f1 (patch)
treef99ab26383bcdde2f8761af1e75a431d7a84c634 /src/mem/physical.hh
parent142380a373e28cd61b79d348361ec1ed4ed330e5 (diff)
downloadgem5-07cf9d914b292008ead7021182ec2ef8fc4671f1.tar.xz
MEM: Separate queries for snooping and address ranges
This patch simplifies the address-range determination mechanism and also unifies the naming across ports and devices. It further splits the queries for determining if a port is snooping and what address ranges it responds to (aiming towards a separation of cache-maintenance ports and pure memory-mapped ports). Default behaviours are such that most ports do not have to define isSnooping, and master ports need not implement getAddrRanges.
Diffstat (limited to 'src/mem/physical.hh')
-rw-r--r--src/mem/physical.hh8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mem/physical.hh b/src/mem/physical.hh
index cd6d809e2..1e00d8f5b 100644
--- a/src/mem/physical.hh
+++ b/src/mem/physical.hh
@@ -65,10 +65,9 @@ class PhysicalMemory : public MemObject
virtual void recvFunctional(PacketPtr pkt);
- virtual void recvStatusChange(Status status);
+ virtual void recvRangeChange();
- virtual void getDeviceAddressRanges(AddrRangeList &resp,
- bool &snoop);
+ virtual AddrRangeList getAddrRanges();
virtual unsigned deviceBlockSize() const;
};
@@ -172,7 +171,7 @@ class PhysicalMemory : public MemObject
public:
unsigned deviceBlockSize() const;
- void getAddressRanges(AddrRangeList &resp, bool &snoop);
+ AddrRangeList getAddrRanges();
virtual Port *getPort(const std::string &if_name, int idx = -1);
void virtual init();
unsigned int drain(Event *de);
@@ -181,7 +180,6 @@ class PhysicalMemory : public MemObject
Tick doAtomicAccess(PacketPtr pkt);
void doFunctionalAccess(PacketPtr pkt);
virtual Tick calculateLatency(PacketPtr pkt);
- void recvStatusChange(Port::Status status);
public:
virtual void serialize(std::ostream &os);