gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
gem5::SignalSinkPort< State > Class Template Reference

#include <signal.hh>

Inheritance diagram for gem5::SignalSinkPort< State >:
gem5::Port

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. More...
 
void unbind () override
 Dettach from a peer port. More...
 
- Public Member Functions inherited from gem5::Port
virtual ~Port ()
 Virtual destructor due to inheritance. More...
 
PortgetPeer ()
 Return a reference to this port's peer. More...
 
const std::string name () const
 Return port name (for DPRINTF). More...
 
PortID getId () const
 Get the port id. More...
 
bool isConnected () const
 Is this port currently connected to a peer? More...
 
void takeOverFrom (Port *old)
 A utility function to make it easier to swap out ports. More...
 

Protected Member Functions

void set (const State &new_state)
 
- Protected Member Functions inherited from gem5::Port
void reportUnbound () const
 
 Port (const std::string &_name, PortID _id)
 Abstract base class for ports. More...
 

Private Attributes

friend SignalSourcePort< State >
 
SignalSourcePort< State > * _source = nullptr
 
State _state = {}
 
OnChangeFunc _onChange
 

Additional Inherited Members

- Protected Attributes inherited from gem5::Port
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. More...
 
Port_peer
 A pointer to this port's peer. More...
 
bool _connected
 Whether this port is currently connected to a peer port. More...
 

Detailed Description

template<typename State>
class gem5::SignalSinkPort< State >

Definition at line 43 of file signal.hh.

Member Typedef Documentation

◆ OnChangeFunc

template<typename State >
using gem5::SignalSinkPort< State >::OnChangeFunc = std::function<void(const State &new_val)>

Definition at line 46 of file signal.hh.

Constructor & Destructor Documentation

◆ SignalSinkPort()

template<typename State >
gem5::SignalSinkPort< State >::SignalSinkPort ( const std::string &  _name,
PortID  _id = InvalidPortID 
)
inline

Definition at line 69 of file signal.hh.

Member Function Documentation

◆ bind()

template<typename State >
void gem5::SignalSinkPort< State >::bind ( Port peer)
inlineoverridevirtual

Attach to a peer port.

Reimplemented from gem5::Port.

Definition at line 77 of file signal.hh.

◆ onChange()

template<typename State >
void gem5::SignalSinkPort< State >::onChange ( OnChangeFunc  func)
inline

◆ set()

template<typename State >
void gem5::SignalSinkPort< State >::set ( const State &  new_state)
inlineprotected

Definition at line 58 of file signal.hh.

◆ state()

template<typename State >
const State& gem5::SignalSinkPort< State >::state ( ) const
inline

Definition at line 73 of file signal.hh.

Referenced by gem5::BaseCPU::activateContext().

◆ unbind()

template<typename State >
void gem5::SignalSinkPort< State >::unbind ( )
inlineoverridevirtual

Dettach from a peer port.

Reimplemented from gem5::Port.

Definition at line 85 of file signal.hh.

Member Data Documentation

◆ _onChange

template<typename State >
OnChangeFunc gem5::SignalSinkPort< State >::_onChange
private

◆ _source

template<typename State >
SignalSourcePort<State>* gem5::SignalSinkPort< State >::_source = nullptr
private

◆ _state

template<typename State >
State gem5::SignalSinkPort< State >::_state = {}
private

◆ SignalSourcePort< State >

template<typename State >
friend gem5::SignalSinkPort< State >::SignalSourcePort< State >
private

Definition at line 49 of file signal.hh.


The documentation for this class was generated from the following file:

Generated on Sun Jul 30 2023 01:57:17 for gem5 by doxygen 1.8.17