tport.cc (3309:183edf675c27) tport.cc (3342:19e716ad518e)
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(Packet *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(Packet *pkt)
35{
36 //First check queued events
37 std::list<Packet *>::iterator i = transmitList.begin();
38 std::list<Packet *>::iterator end = transmitList.end();
39 bool cont = true;
36 std::list<Packet *>::iterator i;
37 std::list<Packet *>::iterator end;
40
38
41 while (i != end && cont) {
39 //First check queued events
40 i = transmitList.begin();
41 end = transmitList.end();
42 while (i != end) {
42 Packet * 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 }
43 Packet * target = *i;
44 // If the target contains data, and it overlaps the
45 // probed request, need to update data
46 if (target->intersect(pkt))
47 fixPacket(pkt, target);
48
49 }
50
49 //Then just do an atomic access and throw away the returned latency
51 //Then just do an atomic access and throw away the returned latency
50 if (cont)
52 if (pkt->result != Packet::Success)
51 recvAtomic(pkt);
52}
53
54bool
55SimpleTimingPort::recvTiming(Packet *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 ---
53 recvAtomic(pkt);
54}
55
56bool
57SimpleTimingPort::recvTiming(Packet *pkt)
58{
59 // If the device is only a slave, it should only be sending
60 // responses, which should never get nacked. There used to be

--- 76 unchanged lines hidden ---