diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-02-12 16:07:38 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-02-12 16:07:38 -0600 |
commit | 8aaa39e93dfe000ad423b585e78a4c2ee7418363 (patch) | |
tree | 0f7b6d1efb630745bd6bf6af05a722a08c8640cb /src/dev | |
parent | 7e104a1af235823e3d641a972ea920937f7ec67d (diff) | |
download | gem5-8aaa39e93dfe000ad423b585e78a4c2ee7418363.tar.xz |
mem: Add a master ID to each request object.
This change adds a master id to each request object which can be
used identify every device in the system that is capable of issuing a request.
This is part of the way to removing the numCpus+1 stats in the cache and
replacing them with the master ids. This is one of a series of changes
that make way for the stats output to be changed to python.
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/io_device.cc | 4 | ||||
-rw-r--r-- | src/dev/io_device.hh | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/dev/io_device.cc b/src/dev/io_device.cc index 840343dce..b1f6f5e02 100644 --- a/src/dev/io_device.cc +++ b/src/dev/io_device.cc @@ -116,6 +116,7 @@ BasicPioDevice::getAddrRanges() DmaPort::DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff, bool recv_snoops) : Port(dev->name() + "-dmaport", dev), device(dev), sys(s), + masterId(s->getMasterId(dev->name())), pendingCount(0), actionInProgress(0), drainEvent(NULL), backoffTime(0), minBackoffDelay(min_backoff), maxBackoffDelay(max_backoff), inRetry(false), recvSnoops(recv_snoops), @@ -187,7 +188,6 @@ DmaDevice::DmaDevice(const Params *p) : PioDevice(p), dmaPort(NULL) { } - unsigned int DmaDevice::drain(Event *de) { @@ -254,7 +254,7 @@ DmaPort::dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, event ? event->scheduled() : -1 ); for (ChunkGenerator gen(addr, size, peerBlockSize()); !gen.done(); gen.next()) { - Request *req = new Request(gen.addr(), gen.size(), flag); + Request *req = new Request(gen.addr(), gen.size(), flag, masterId); PacketPtr pkt = new Packet(req, cmd, Packet::Broadcast); // Increment the data pointer on a write diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index ea2364f33..c5f6958ee 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -104,6 +104,9 @@ class DmaPort : public Port * we are currently operating in. */ System *sys; + /** Id for all requests */ + MasterID masterId; + /** Number of outstanding packets the dma port has. */ int pendingCount; |