50,51c50,51
< AddrRangeList
< PioPort::getAddrRanges()
---
> void
> PioPort::getDeviceAddressRanges(AddrRangeList &resp, bool &snoop)
53c53,56
< return device->getAddrRanges();
---
> snoop = false;
> device->addressRanges(resp);
> for (AddrRangeIter i = resp.begin(); i != resp.end(); i++)
> DPRINTF(BusAddrRanges, "Adding Range %#x-%#x\n", i->start, i->end);
58c61
< : MemObject(p), platform(p->platform), sys(p->system), pioPort(NULL)
---
> : MemObject(p), sys(p->system), pioPort(NULL)
71,72c74,75
< panic("Pio port of %s not connected to anything!", name());
< pioPort->sendRangeChange();
---
> panic("Pio port not connected to anything!");
> pioPort->sendStatusChange(Port::RangeChange);
75,86d77
< Port *
< PioDevice::getPort(const std::string &if_name, int idx)
< {
< if (if_name == "pio") {
< if (pioPort != NULL)
< fatal("%s: pio port already connected to %s",
< name(), pioPort->getPeer()->name());
< pioPort = new PioPort(this, sys);
< return pioPort;
< }
< return NULL;
< }
105,106c96,97
< AddrRangeList
< BasicPioDevice::getAddrRanges()
---
> void
> BasicPioDevice::addressRanges(AddrRangeList &range_list)
109c100
< AddrRangeList ranges;
---
> range_list.clear();
111,112c102
< ranges.push_back(RangeSize(pioAddr, pioSize));
< return ranges;
---
> range_list.push_back(RangeSize(pioAddr, pioSize));
116,117c106
< DmaPort::DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff,
< bool recv_snoops)
---
> DmaPort::DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff)
121,122c110
< maxBackoffDelay(max_backoff), inRetry(false), recvSnoops(recv_snoops),
< backoffEvent(this)
---
> maxBackoffDelay(max_backoff), inRetry(false), backoffEvent(this)
137c125
< device->reschedule(backoffEvent, curTick() + backoffTime, true);
---
> reschedule(backoffEvent, curTick() + backoffTime, true);
143,144d130
< } else if (pkt->isRequest() && recvSnoops) {
< return true;
165,166c151
< device->schedule(state->completionEvent,
< curTick() + state->delay);
---
> schedule(state->completionEvent, curTick() + state->delay);
236c221
< device->schedule(backoffEvent, backoffTime + curTick());
---
> schedule(backoffEvent, backoffTime + curTick());
322c307
< device->schedule(backoffEvent, backoffTime + curTick());
---
> schedule(backoffEvent, backoffTime + curTick());
344,345c329
< device->schedule(state->completionEvent,
< curTick() + lat + state->delay);
---
> schedule(state->completionEvent, curTick() + lat + state->delay);
368,383d351
<
<
< Port *
< DmaDevice::getPort(const std::string &if_name, int idx)
< {
< if (if_name == "dma") {
< if (dmaPort != NULL)
< fatal("%s: dma port already connected to %s",
< name(), dmaPort->getPeer()->name());
< dmaPort = new DmaPort(this, sys, params()->min_backoff_delay,
< params()->max_backoff_delay);
< return dmaPort;
< }
< return PioDevice::getPort(if_name, idx);
< }
<