mem: Tidy up a few variables in the bus

This patch does some minor housekeeping on the bus code, removing
redundant code, and moving the extraction of the destination id to the
top of the functions using it.
This commit is contained in:
Andreas Hansson 2013-05-30 12:53:59 -04:00
parent 91f7b065a9
commit cb62d39835
2 changed files with 11 additions and 11 deletions

View file

@ -199,7 +199,7 @@ CoherentBus::recvTimingReq(PacketPtr pkt, PortID slave_port_id)
// update the bus state and schedule an idle event
reqLayer.failedTiming(src_port, master_port_id,
clockEdge(Cycles(headerCycles)));
clockEdge(headerCycles));
} else {
// update the bus state and schedule an idle event
reqLayer.succeededTiming(packetFinishTime);
@ -223,9 +223,12 @@ CoherentBus::recvTimingResp(PacketPtr pkt, PortID master_port_id)
// determine the source port based on the id
MasterPort *src_port = masterPorts[master_port_id];
// determine the destination based on what is stored in the packet
PortID slave_port_id = pkt->getDest();
// test if the bus should be considered occupied for the current
// port
if (!respLayer.tryTiming(src_port, pkt->getDest())) {
if (!respLayer.tryTiming(src_port, slave_port_id)) {
DPRINTF(CoherentBus, "recvTimingResp: src %s %s 0x%x BUSY\n",
src_port->name(), pkt->cmdString(), pkt->getAddr());
return false;
@ -249,9 +252,6 @@ CoherentBus::recvTimingResp(PacketPtr pkt, PortID master_port_id)
// remove it as outstanding
outstandingReq.erase(pkt->req);
// determine the destination based on what is stored in the packet
PortID slave_port_id = pkt->getDest();
// send the packet through the destination slave port
bool success M5_VAR_USED = slavePorts[slave_port_id]->sendTimingResp(pkt);

View file

@ -138,7 +138,7 @@ NoncoherentBus::recvTimingReq(PacketPtr pkt, PortID slave_port_id)
// occupy until the header is sent
reqLayer.failedTiming(src_port, master_port_id,
clockEdge(Cycles(headerCycles)));
clockEdge(headerCycles));
return false;
}
@ -160,9 +160,12 @@ NoncoherentBus::recvTimingResp(PacketPtr pkt, PortID master_port_id)
// determine the source port based on the id
MasterPort *src_port = masterPorts[master_port_id];
// determine the destination based on what is stored in the packet
PortID slave_port_id = pkt->getDest();
// test if the bus should be considered occupied for the current
// port
if (!respLayer.tryTiming(src_port, pkt->getDest())) {
if (!respLayer.tryTiming(src_port, slave_port_id)) {
DPRINTF(NoncoherentBus, "recvTimingResp: src %s %s 0x%x BUSY\n",
src_port->name(), pkt->cmdString(), pkt->getAddr());
return false;
@ -179,11 +182,8 @@ NoncoherentBus::recvTimingResp(PacketPtr pkt, PortID master_port_id)
calcPacketTiming(pkt);
Tick packetFinishTime = pkt->busLastWordDelay + curTick();
// determine the destination based on what is stored in the packet
PortID slave_port_id = pkt->getDest();
// send the packet through the destination slave port
bool success M5_VAR_USED = slavePorts[pkt->getDest()]->sendTimingResp(pkt);
bool success M5_VAR_USED = slavePorts[slave_port_id]->sendTimingResp(pkt);
// currently it is illegal to block responses... can lead to
// deadlock