physical.cc (4475:fb185cc1c845) | physical.cc (4490:f9d3db907eec) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 400 unchanged lines hidden (view full) --- 409{ 410 memory->doFunctionalAccess(pkt); 411 return memory->calculateLatency(pkt); 412} 413 414void 415PhysicalMemory::MemoryPort::recvFunctional(PacketPtr pkt) 416{ | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 400 unchanged lines hidden (view full) --- 409{ 410 memory->doFunctionalAccess(pkt); 411 return memory->calculateLatency(pkt); 412} 413 414void 415PhysicalMemory::MemoryPort::recvFunctional(PacketPtr pkt) 416{ |
417 //Since we are overriding the function, make sure to have the impl of the 418 //check or functional accesses here. 419 std::list<std::pair<Tick,PacketPtr> >::iterator i = transmitList.begin(); 420 std::list<std::pair<Tick,PacketPtr> >::iterator end = transmitList.end(); 421 bool notDone = true; | 417 checkFunctional(pkt); |
422 | 418 |
423 while (i != end && notDone) { 424 PacketPtr target = i->second; 425 // If the target contains data, and it overlaps the 426 // probed request, need to update data 427 if (target->intersect(pkt)) 428 notDone = fixPacket(pkt, target); 429 i++; 430 } 431 | |
432 // Default implementation of SimpleTimingPort::recvFunctional() 433 // calls recvAtomic() and throws away the latency; we can save a 434 // little here by just not calculating the latency. 435 memory->doFunctionalAccess(pkt); 436} 437 438unsigned int 439PhysicalMemory::drain(Event *de) --- 149 unchanged lines hidden --- | 419 // Default implementation of SimpleTimingPort::recvFunctional() 420 // calls recvAtomic() and throws away the latency; we can save a 421 // little here by just not calculating the latency. 422 memory->doFunctionalAccess(pkt); 423} 424 425unsigned int 426PhysicalMemory::drain(Event *de) --- 149 unchanged lines hidden --- |