noncoherent_xbar.hh (10719:b4fc9ad648aa) noncoherent_xbar.hh (10888:85a001f2193b)
1/*
2 * Copyright (c) 2011-2015 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

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

79 std::vector<ReqLayer*> reqLayers;
80 std::vector<RespLayer*> respLayers;
81
82 /**
83 * Declaration of the non-coherent crossbar slave port type, one
84 * will be instantiated for each of the master ports connecting to
85 * the crossbar.
86 */
1/*
2 * Copyright (c) 2011-2015 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

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

79 std::vector<ReqLayer*> reqLayers;
80 std::vector<RespLayer*> respLayers;
81
82 /**
83 * Declaration of the non-coherent crossbar slave port type, one
84 * will be instantiated for each of the master ports connecting to
85 * the crossbar.
86 */
87 class NoncoherentXBarSlavePort : public SlavePort
87 class NoncoherentXBarSlavePort : public QueuedSlavePort
88 {
89 private:
90
91 /** A reference to the crossbar to which this port belongs. */
92 NoncoherentXBar &xbar;
93
88 {
89 private:
90
91 /** A reference to the crossbar to which this port belongs. */
92 NoncoherentXBar &xbar;
93
94 /** A normal packet queue used to store responses. */
95 RespPacketQueue queue;
96
94 public:
95
96 NoncoherentXBarSlavePort(const std::string &_name,
97 NoncoherentXBar &_xbar, PortID _id)
97 public:
98
99 NoncoherentXBarSlavePort(const std::string &_name,
100 NoncoherentXBar &_xbar, PortID _id)
98 : SlavePort(_name, &_xbar, _id), xbar(_xbar)
101 : QueuedSlavePort(_name, &_xbar, queue, _id), xbar(_xbar),
102 queue(_xbar, *this)
99 { }
100
101 protected:
102
103 /**
104 * When receiving a timing request, pass it to the crossbar.
105 */
106 virtual bool recvTimingReq(PacketPtr pkt)

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

114
115 /**
116 * When receiving a functional request, pass it to the crossbar.
117 */
118 virtual void recvFunctional(PacketPtr pkt)
119 { xbar.recvFunctional(pkt, id); }
120
121 /**
103 { }
104
105 protected:
106
107 /**
108 * When receiving a timing request, pass it to the crossbar.
109 */
110 virtual bool recvTimingReq(PacketPtr pkt)

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

118
119 /**
120 * When receiving a functional request, pass it to the crossbar.
121 */
122 virtual void recvFunctional(PacketPtr pkt)
123 { xbar.recvFunctional(pkt, id); }
124
125 /**
122 * When receiving a retry, pass it to the crossbar.
123 */
124 virtual void recvRespRetry()
125 { panic("Crossbar slave ports should never retry.\n"); }
126
127 /**
128 * Return the union of all adress ranges seen by this crossbar.
129 */
130 virtual AddrRangeList getAddrRanges() const
131 { return xbar.getAddrRanges(); }
132
133 };
134
135 /**

--- 74 unchanged lines hidden ---
126 * Return the union of all adress ranges seen by this crossbar.
127 */
128 virtual AddrRangeList getAddrRanges() const
129 { return xbar.getAddrRanges(); }
130
131 };
132
133 /**

--- 74 unchanged lines hidden ---