30 #ifndef __SYSTEMC_CORE_PORT_HH__ 31 #define __SYSTEMC_CORE_PORT_HH__ 44 class StaticSensitivityPort;
45 class StaticSensitivityFinder;
79 for (
int i = 0;
i < pb->
size();
i++)
92 interface(interface),
port(nullptr)
106 port(port), finder(nullptr)
110 port(nullptr), finder(finder)
125 return pb->_gem5Port;
131 portBase(port_base), finalized(false), _maxSize(max), _size(0),
134 allPorts.push_front(
this);
142 if (bindings.empty())
145 bindings.push_back(
new Binding(interface));
151 bindings.push_back(
new Binding(port));
167 #endif // __SYSTEMC_CORE_PORT_HH__ Ports are used to interface objects to each other.
StaticSensitivityFinder * finder
void addInterface(::sc_core::sc_interface *iface)
Binding(::sc_core::sc_port_base *port)
void finalizeFinder(StaticSensitivityFinder *finder)
Port(::sc_core::sc_port_base *port_base, int max)
std::vector< Binding * > bindings
void addReset(Reset *reset)
void finalizePort(StaticSensitivityPort *port)
std::vector< Reset * > resets
void finalizeReset(Reset *reset)
::sc_core::sc_interface * interface
virtual void _gem5AddInterface(sc_interface *i)=0
void addInterfaces(::sc_core::sc_port_base *pb)
virtual sc_interface * _gem5Interface(int n) const =0
void bind(::sc_core::sc_port_base *port)
Binding(::sc_core::sc_interface *interface)
void sensitive(StaticSensitivityPort *port)
::sc_core::sc_port_base * port
::sc_core::sc_port_base * sc_port_base()
static Port * fromPort(const ::sc_core::sc_port_base *pb)
std::vector< Sensitivity * > sensitivities
std::list< Port * > allPorts
::sc_core::sc_interface * getInterface(int i)
StaticSensitivityPort * port
void bind(::sc_core::sc_interface *interface)
Sensitivity(StaticSensitivityPort *port)
::sc_core::sc_port_base * portBase
::sc_gem5::Port * _gem5Port
Sensitivity(StaticSensitivityFinder *finder)