physical.cc (3584:8c3cdb2c001c) | physical.cc (3612:936dcb3f3e2d) |
---|---|
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; --- 274 unchanged lines hidden (view full) --- 283{ 284 memory->doFunctionalAccess(pkt); 285 return memory->calculateLatency(pkt); 286} 287 288void 289PhysicalMemory::MemoryPort::recvFunctional(PacketPtr pkt) 290{ | 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; --- 274 unchanged lines hidden (view full) --- 283{ 284 memory->doFunctionalAccess(pkt); 285 return memory->calculateLatency(pkt); 286} 287 288void 289PhysicalMemory::MemoryPort::recvFunctional(PacketPtr pkt) 290{ |
291 //Since we are overriding the function, make sure to have the impl of the 292 //check or functional accesses here. 293 std::list<std::pair<Tick,PacketPtr> >::iterator i = transmitList.begin(); 294 std::list<std::pair<Tick,PacketPtr> >::iterator end = transmitList.end(); 295 bool notDone = true; 296 297 while (i != end && notDone) { 298 PacketPtr target = i->second; 299 // If the target contains data, and it overlaps the 300 // probed request, need to update data 301 if (target->intersect(pkt)) 302 notDone = fixPacket(pkt, target); 303 i++; 304 } 305 |
|
291 // Default implementation of SimpleTimingPort::recvFunctional() 292 // calls recvAtomic() and throws away the latency; we can save a 293 // little here by just not calculating the latency. 294 memory->doFunctionalAccess(pkt); 295} 296 297unsigned int 298PhysicalMemory::drain(Event *de) --- 142 unchanged lines hidden --- | 306 // Default implementation of SimpleTimingPort::recvFunctional() 307 // calls recvAtomic() and throws away the latency; we can save a 308 // little here by just not calculating the latency. 309 memory->doFunctionalAccess(pkt); 310} 311 312unsigned int 313PhysicalMemory::drain(Event *de) --- 142 unchanged lines hidden --- |