Deleted Added
sdiff udiff text old ( 13771:10d990934f15 ) new ( 13782:9f6654f478e2 )
full compact
1/*
2 * Copyright (c) 2011-2012,2015,2017 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

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

72
73 BaseSlavePort* _baseSlavePort;
74
75 BaseMasterPort(const std::string& name, PortID id=InvalidPortID);
76 virtual ~BaseMasterPort();
77
78 public:
79
80 virtual void bind(BaseSlavePort& slave_port) = 0;
81 virtual void unbind() = 0;
82 BaseSlavePort& getSlavePort() const;
83 bool isConnected() const;
84
85};
86
87/**
88 * A BaseSlavePort is a protocol-agnostic slave port, responsible
89 * only for the structural connection to a master port.
90 */
91class BaseSlavePort : public Port

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

96 BaseMasterPort* _baseMasterPort;
97
98 BaseSlavePort(const std::string& name, PortID id=InvalidPortID);
99 virtual ~BaseSlavePort();
100
101 public:
102
103 BaseMasterPort& getMasterPort() const;
104 bool isConnected() const;
105
106};
107
108/** Forward declaration */
109class SlavePort;
110
111/**
112 * A MasterPort is a specialisation of a BaseMasterPort, which

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

133 MasterPort(const std::string& name, MemObject* _owner,
134 PortID id=InvalidPortID);
135 virtual ~MasterPort();
136
137 /**
138 * Bind this master port to a slave port. This also does the
139 * mirror action and binds the slave port to the master port.
140 */
141 void bind(BaseSlavePort& slave_port);
142
143 /**
144 * Unbind this master port and the associated slave port.
145 */
146 void unbind();
147
148 /**
149 * Send an atomic request packet, where the data is moved and the
150 * state is updated in zero time, without interleaving with other
151 * memory accesses.
152 *
153 * @param pkt Packet to send.
154 *

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

389 * Get a list of the non-overlapping address ranges the owner is
390 * responsible for. All slave ports must override this function
391 * and return a populated list with at least one item.
392 *
393 * @return a list of ranges responded to
394 */
395 virtual AddrRangeList getAddrRanges() const = 0;
396
397 protected:
398
399 /**
400 * Called by the master port to unbind. Should never be called
401 * directly.
402 */
403 void unbind();
404
405 /**
406 * Called by the master port to bind. Should never be called
407 * directly.
408 */
409 void bind(MasterPort& master_port);
410
411 /**
412 * Receive an atomic request packet from the master port.
413 */
414 virtual Tick recvAtomic(PacketPtr pkt) = 0;
415
416 /**
417 * Receive a functional request packet from the master port.

--- 33 unchanged lines hidden ---