tport.cc (3349:fec4a86fa212) tport.cc (3352:8e940d22b2a8)
1/*
2 * Copyright (c) 2006 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;

--- 19 unchanged lines hidden (view full) ---

28 * Authors: Ali Saidi
29 */
30
31#include "mem/tport.hh"
32
33void
34SimpleTimingPort::recvFunctional(PacketPtr pkt)
35{
1/*
2 * Copyright (c) 2006 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;

--- 19 unchanged lines hidden (view full) ---

28 * Authors: Ali Saidi
29 */
30
31#include "mem/tport.hh"
32
33void
34SimpleTimingPort::recvFunctional(PacketPtr pkt)
35{
36 //First check queued events
37 std::list<PacketPtr>::iterator i = transmitList.begin();
38 std::list<PacketPtr>::iterator end = transmitList.end();
39 bool cont = true;
40
36 std::list<PacketPtr>::iterator i = transmitList.begin();
37 std::list<PacketPtr>::iterator end = transmitList.end();
38 bool cont = true;
39
41 while (i != end && cont) {
40 while (i != end) {
42 PacketPtr target = *i;
43 // If the target contains data, and it overlaps the
44 // probed request, need to update data
45 if (target->intersect(pkt))
46 fixPacket(pkt, target);
47
48 }
41 PacketPtr target = *i;
42 // If the target contains data, and it overlaps the
43 // probed request, need to update data
44 if (target->intersect(pkt))
45 fixPacket(pkt, target);
46
47 }
48
49 //Then just do an atomic access and throw away the returned latency
49 //Then just do an atomic access and throw away the returned latency
50 if (cont)
50 if (pkt->result != Packet::Success)
51 recvAtomic(pkt);
52}
53
54bool
55SimpleTimingPort::recvTiming(PacketPtr pkt)
56{
57 // If the device is only a slave, it should only be sending
58 // responses, which should never get nacked. There used to be

--- 76 unchanged lines hidden ---
51 recvAtomic(pkt);
52}
53
54bool
55SimpleTimingPort::recvTiming(PacketPtr pkt)
56{
57 // If the device is only a slave, it should only be sending
58 // responses, which should never get nacked. There used to be

--- 76 unchanged lines hidden ---