gem5 v24.0.0.0
|
#include <signal.hh>
Public Types | |
using | OnChangeFunc = std::function<void(const State &new_val)> |
Public Member Functions | |
SignalSinkPort (const std::string &_name, PortID _id=InvalidPortID) | |
const State & | state () const |
void | onChange (OnChangeFunc func) |
void | bind (Port &peer) override |
Attach to a peer port. | |
void | unbind () override |
Dettach from a peer port. | |
![]() | |
virtual | ~Port () |
Virtual destructor due to inheritance. | |
Port & | getPeer () |
Return a reference to this port's peer. | |
const std::string | name () const |
Return port name (for DPRINTF). | |
PortID | getId () const |
Get the port id. | |
bool | isConnected () const |
Is this port currently connected to a peer? | |
void | takeOverFrom (Port *old) |
A utility function to make it easier to swap out ports. | |
Protected Member Functions | |
void | set (const State &new_state, const bool bypass_on_change=false) |
![]() | |
void | reportUnbound () const |
Port (const std::string &_name, PortID _id) | |
Abstract base class for ports. | |
Private Attributes | |
friend | SignalSourcePort< State > |
SignalSourcePort< State > * | _source = nullptr |
State | _state = {} |
OnChangeFunc | _onChange |
Additional Inherited Members | |
![]() | |
const PortID | id |
A numeric identifier to distinguish ports in a vector, and set to InvalidPortID in case this port is not part of a vector. | |
Port * | _peer |
A pointer to this port's peer. | |
bool | _connected |
Whether this port is currently connected to a peer port. | |
using gem5::SignalSinkPort< State >::OnChangeFunc = std::function<void(const State &new_val)> |
|
inline |
|
inlineoverridevirtual |
Attach to a peer port.
Reimplemented from gem5::Port.
Definition at line 79 of file signal.hh.
References gem5::SignalSinkPort< State >::_source, gem5::SignalSinkPort< State >::_state, gem5::Port::bind(), fatal_if, and gem5::Port::name().
|
inline |
Definition at line 76 of file signal.hh.
References gem5::SignalSinkPort< State >::_onChange.
Referenced by gem5::fastmodel::ScxEvsCortexA76< Types >::ScxEvsCortexA76(), and gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().
|
inlineprotected |
Definition at line 60 of file signal.hh.
References gem5::SignalSinkPort< State >::_onChange, and gem5::SignalSinkPort< State >::_state.
|
inline |
Definition at line 75 of file signal.hh.
References gem5::SignalSinkPort< State >::_state.
Referenced by gem5::BaseCPU::activateContext().
|
inlineoverridevirtual |
Dettach from a peer port.
Reimplemented from gem5::Port.
Definition at line 89 of file signal.hh.
References gem5::SignalSinkPort< State >::_source, and gem5::Port::unbind().
|
private |
Definition at line 54 of file signal.hh.
Referenced by gem5::SignalSinkPort< State >::onChange(), and gem5::SignalSinkPort< State >::set().
|
private |
Definition at line 51 of file signal.hh.
Referenced by gem5::SignalSinkPort< State >::bind(), and gem5::SignalSinkPort< State >::unbind().
|
private |
Definition at line 53 of file signal.hh.
Referenced by gem5::SignalSinkPort< State >::bind(), gem5::SignalSinkPort< State >::set(), and gem5::SignalSinkPort< State >::state().
|
private |