bridge.cc (4477:375b35072b58) | bridge.cc (4626:ed8aacb19c03) |
---|---|
1 2/* 3 * Copyright (c) 2006 The Regents of The University of Michigan 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 325 unchanged lines hidden (view full) --- 334} 335 336/** Function called by the port when the bus is receiving a Functional 337 * transaction.*/ 338void 339Bridge::BridgePort::recvFunctional(PacketPtr pkt) 340{ 341 std::list<PacketBuffer*>::iterator i; | 1 2/* 3 * Copyright (c) 2006 The Regents of The University of Michigan 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 325 unchanged lines hidden (view full) --- 334} 335 336/** Function called by the port when the bus is receiving a Functional 337 * transaction.*/ 338void 339Bridge::BridgePort::recvFunctional(PacketPtr pkt) 340{ 341 std::list<PacketBuffer*>::iterator i; |
342 bool pktContinue = true; | |
343 344 for (i = sendQueue.begin(); i != sendQueue.end(); ++i) { | 342 343 for (i = sendQueue.begin(); i != sendQueue.end(); ++i) { |
345 if (pkt->intersect((*i)->pkt)) { 346 pktContinue &= fixPacket(pkt, (*i)->pkt); 347 } | 344 if (pkt->checkFunctional((*i)->pkt)) 345 return; |
348 } 349 | 346 } 347 |
350 if (pktContinue) { 351 otherPort->sendFunctional(pkt); 352 } | 348 // fall through if pkt still not satisfied 349 otherPort->sendFunctional(pkt); |
353} 354 355/** Function called by the port when the bus is receiving a status change.*/ 356void 357Bridge::BridgePort::recvStatusChange(Port::Status status) 358{ 359 otherPort->sendStatusChange(status); 360} --- 55 unchanged lines hidden --- | 350} 351 352/** Function called by the port when the bus is receiving a status change.*/ 353void 354Bridge::BridgePort::recvStatusChange(Port::Status status) 355{ 356 otherPort->sendStatusChange(status); 357} --- 55 unchanged lines hidden --- |