summaryrefslogtreecommitdiff
path: root/src/cpu/base.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/cpu/base.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/cpu/base.hh')
-rw-r--r--src/cpu/base.hh19
1 files changed, 2 insertions, 17 deletions
diff --git a/src/cpu/base.hh b/src/cpu/base.hh
index 5622031f8..d4de55453 100644
--- a/src/cpu/base.hh
+++ b/src/cpu/base.hh
@@ -126,7 +126,7 @@ class BaseCPU : public MemObject
* @param _name structural owner of this port
*/
CpuPort(const std::string& _name, MemObject* _owner) :
- Port(_name, _owner), snoopRangeSent(false)
+ Port(_name, _owner)
{ }
protected:
@@ -139,22 +139,7 @@ class BaseCPU : public MemObject
void recvFunctional(PacketPtr pkt);
- void recvStatusChange(Status status);
-
- /**
- * Add CPU ports are master ports and do not respond to any
- * address ranges. Note that the LSQ snoops for specific ISAs
- * and thus has to override this method.
- *
- * @param resp list of ranges this port responds to
- * @param snoop indicating if the port snoops or not
- */
- virtual void getDeviceAddressRanges(AddrRangeList& resp,
- bool& snoop);
-
- private:
-
- bool snoopRangeSent;
+ void recvRangeChange();
};