tport.cc (8914:8c3bd7bea667) tport.cc (8922:17f037ad8918)
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

41 * Andreas Hansson
42 */
43
44#include "mem/mem_object.hh"
45#include "mem/tport.hh"
46
47SimpleTimingPort::SimpleTimingPort(const std::string& _name,
48 MemObject* _owner) :
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

41 * Andreas Hansson
42 */
43
44#include "mem/mem_object.hh"
45#include "mem/tport.hh"
46
47SimpleTimingPort::SimpleTimingPort(const std::string& _name,
48 MemObject* _owner) :
49 QueuedPort(_name, _owner, queue), queue(*_owner, *this)
49 QueuedSlavePort(_name, _owner, queue), queue(*_owner, *this)
50{
51}
52
53void
54SimpleTimingPort::recvFunctional(PacketPtr pkt)
55{
56 assert(pkt->isRequest());
57 if (!queue.checkFunctional(pkt)) {
58 // do an atomic access and throw away the returned latency
59 recvAtomic(pkt);
60 }
61}
62
63bool
64SimpleTimingPort::recvTiming(PacketPtr pkt)
65{
50{
51}
52
53void
54SimpleTimingPort::recvFunctional(PacketPtr pkt)
55{
56 assert(pkt->isRequest());
57 if (!queue.checkFunctional(pkt)) {
58 // do an atomic access and throw away the returned latency
59 recvAtomic(pkt);
60 }
61}
62
63bool
64SimpleTimingPort::recvTiming(PacketPtr pkt)
65{
66 // the port is a slave and should hence only get timing requests
67 assert(pkt->isRequest());
68
66 if (pkt->memInhibitAsserted()) {
67 // snooper will supply based on copy of packet
68 // still target's responsibility to delete packet
69 delete pkt;
70 return true;
71 }
72
73 bool needsResponse = pkt->needsResponse();

--- 13 unchanged lines hidden ---
69 if (pkt->memInhibitAsserted()) {
70 // snooper will supply based on copy of packet
71 // still target's responsibility to delete packet
72 delete pkt;
73 return true;
74 }
75
76 bool needsResponse = pkt->needsResponse();

--- 13 unchanged lines hidden ---