1/* |
2 * Copyright (c) 2011-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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 22 unchanged lines hidden (view full) --- 33 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 * 40 * Authors: Ron Dreslinski |
41 * Andreas Hansson |
42 */ 43 44/** 45 * @file 46 * Port Object Declaration. Ports are used to interface memory objects to 47 * each other. They will always come in pairs, and we refer to the other 48 * port object as the peer. These are used to make the design more 49 * modular so that a specific interface between every type of objcet doesn't 50 * have to be created. 51 */ 52 53#ifndef __MEM_PORT_HH__ 54#define __MEM_PORT_HH__ 55 56#include <list> 57 |
58#include "base/range.hh" |
59#include "mem/packet.hh" |
60 61/** This typedef is used to clean up getAddrRanges(). It's declared 62 * outside the Port object since it's also used by some mem objects. 63 * Eventually we should move this typedef to wherever Addr is 64 * defined. 65 */ 66 67typedef std::list<Range<Addr> > AddrRangeList; --- 152 unchanged lines hidden (view full) --- 220 */ 221 void sendRetry() { return peer->recvRetry(); } 222 223 /** Called by the associated device if it wishes to find out the blocksize 224 of the device on attached to the peer port. 225 */ 226 unsigned peerBlockSize() const { return peer->deviceBlockSize(); } 227 |
228 /** Inject a PrintReq for the given address to print the state of 229 * that address throughout the memory system. For debugging. 230 */ 231 void printAddr(Addr a); |
232}; 233 234#endif //__MEM_PORT_HH__ |