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 --- |