bridge.cc (4469:1a5deb8fffd3) | bridge.cc (4475:fb185cc1c845) |
---|---|
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 --- 98 unchanged lines hidden (view full) --- 107 return queuedRequests >= reqQueueLimit; 108} 109 110/** Function called by the port when the bus is receiving a Timing 111 * transaction.*/ 112bool 113Bridge::BridgePort::recvTiming(PacketPtr pkt) 114{ | 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 --- 98 unchanged lines hidden (view full) --- 107 return queuedRequests >= reqQueueLimit; 108} 109 110/** Function called by the port when the bus is receiving a Timing 111 * transaction.*/ 112bool 113Bridge::BridgePort::recvTiming(PacketPtr pkt) 114{ |
115 if (!(pkt->flags & SNOOP_COMMIT)) 116 return true; 117 118 |
|
115 DPRINTF(BusBridge, "recvTiming: src %d dest %d addr 0x%x\n", 116 pkt->getSrc(), pkt->getDest(), pkt->getAddr()); 117 118 DPRINTF(BusBridge, "Local queue size: %d outreq: %d outresp: %d\n", 119 sendQueue.size(), queuedRequests, outstandingResponses); 120 DPRINTF(BusBridge, "Remove queue size: %d outreq: %d outresp: %d\n", 121 otherPort->sendQueue.size(), otherPort->queuedRequests, 122 otherPort->outstandingResponses); --- 121 unchanged lines hidden (view full) --- 244 assert(!sendQueue.empty()); 245 246 PacketBuffer *buf = sendQueue.front(); 247 248 assert(buf->ready <= curTick); 249 250 PacketPtr pkt = buf->pkt; 251 | 119 DPRINTF(BusBridge, "recvTiming: src %d dest %d addr 0x%x\n", 120 pkt->getSrc(), pkt->getDest(), pkt->getAddr()); 121 122 DPRINTF(BusBridge, "Local queue size: %d outreq: %d outresp: %d\n", 123 sendQueue.size(), queuedRequests, outstandingResponses); 124 DPRINTF(BusBridge, "Remove queue size: %d outreq: %d outresp: %d\n", 125 otherPort->sendQueue.size(), otherPort->queuedRequests, 126 otherPort->outstandingResponses); --- 121 unchanged lines hidden (view full) --- 248 assert(!sendQueue.empty()); 249 250 PacketBuffer *buf = sendQueue.front(); 251 252 assert(buf->ready <= curTick); 253 254 PacketPtr pkt = buf->pkt; 255 |
256 pkt->flags &= ~SNOOP_COMMIT; //CLear it if it was set 257 |
|
252 // Ugly! @todo When multilevel coherence works this will be removed 253 if (pkt->cmd == MemCmd::WriteInvalidateReq && fixPartialWrite && 254 pkt->result != Packet::Nacked) { 255 PacketPtr funcPkt = new Packet(pkt->req, MemCmd::WriteReq, 256 Packet::Broadcast); 257 funcPkt->dataStatic(pkt->getPtr<uint8_t>()); 258 sendFunctional(funcPkt); 259 pkt->cmd = MemCmd::WriteReq; --- 96 unchanged lines hidden (view full) --- 356void 357Bridge::BridgePort::recvStatusChange(Port::Status status) 358{ 359 otherPort->sendStatusChange(status); 360} 361 362void 363Bridge::BridgePort::getDeviceAddressRanges(AddrRangeList &resp, | 258 // Ugly! @todo When multilevel coherence works this will be removed 259 if (pkt->cmd == MemCmd::WriteInvalidateReq && fixPartialWrite && 260 pkt->result != Packet::Nacked) { 261 PacketPtr funcPkt = new Packet(pkt->req, MemCmd::WriteReq, 262 Packet::Broadcast); 263 funcPkt->dataStatic(pkt->getPtr<uint8_t>()); 264 sendFunctional(funcPkt); 265 pkt->cmd = MemCmd::WriteReq; --- 96 unchanged lines hidden (view full) --- 362void 363Bridge::BridgePort::recvStatusChange(Port::Status status) 364{ 365 otherPort->sendStatusChange(status); 366} 367 368void 369Bridge::BridgePort::getDeviceAddressRanges(AddrRangeList &resp, |
364 AddrRangeList &snoop) | 370 bool &snoop) |
365{ 366 otherPort->getPeerAddressRanges(resp, snoop); 367} 368 369BEGIN_DECLARE_SIM_OBJECT_PARAMS(Bridge) 370 371 Param<int> req_size_a; 372 Param<int> req_size_b; --- 43 unchanged lines hidden --- | 371{ 372 otherPort->getPeerAddressRanges(resp, snoop); 373} 374 375BEGIN_DECLARE_SIM_OBJECT_PARAMS(Bridge) 376 377 Param<int> req_size_a; 378 Param<int> req_size_b; --- 43 unchanged lines hidden --- |