28 #ifndef __SYSTEMC_CORE_PORT_HH__ 29 #define __SYSTEMC_CORE_PORT_HH__ 42 class StaticSensitivityPort;
43 class StaticSensitivityFinder;
77 for (
int i = 0;
i < pb->
size();
i++)
90 interface(interface),
port(nullptr)
104 port(port), finder(nullptr)
108 port(nullptr), finder(finder)
123 return pb->_gem5Port;
129 portBase(port_base), finalized(false), _maxSize(max), _size(0),
132 allPorts.push_front(
this);
140 if (bindings.empty())
143 bindings.push_back(
new Binding(interface));
149 bindings.push_back(
new Binding(port));
165 #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)