gem5 v24.1.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
sc_core::sc_port_b< IF > Class Template Reference

#include <sc_port.hh>

Inheritance diagram for sc_core::sc_port_b< IF >:
sc_core::sc_port_base sc_core::sc_object sc_core::sc_port< ClockRateControlFwIf, 1, sc_core::SC_ONE_OR_MORE_BOUND > sc_core::sc_port< bw_interface_type, 1, sc_core::SC_ONE_OR_MORE_BOUND > sc_core::sc_port< SignalInterruptFwIf, 1, sc_core::SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_fifo_in_if< T >, 0 > sc_core::sc_port< sc_fifo_out_if< T >, 0 > sc_core::sc_port< sc_signal_in_if< T >, 1 > sc_core::sc_port< sc_signal_in_if< bool >, 1 > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_bigint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_biguint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_int< W > >, 1 > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_logic >, 1 > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_uint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_in_if< sc_dt::sc_lv< W > >, 1 > sc_core::sc_port< sc_signal_inout_if< T >, 1 > sc_core::sc_port< sc_signal_inout_if< bool >, 1 > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_bigint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_biguint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_int< W > >, 1 > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_logic >, 1 > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_uint< W > >, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< sc_signal_inout_if< sc_dt::sc_lv< W > >, 1 > sc_core::sc_port< tlm_fw_transport_if<>, 1, sc_core::SC_ONE_OR_MORE_BOUND > sc_core::sc_port< tlm_fw_transport_if< tlm_base_protocol_types >, N, POL > sc_core::sc_port< tlm_nonblocking_get_if< T >, 1 > sc_core::sc_port< tlm_nonblocking_peek_if< T >, 1 > sc_core::sc_port< tlm_nonblocking_put_if< T >, 1 > sc_core::sc_port< bw_interface_type, N, POL > sc_core::sc_port< tlm_fw_transport_if< tlm::tlm_base_protocol_types >, N, POL > sc_core::sc_port< tlm_fw_transport_if< TYPES >, N, POL > sc_core::sc_port< tlm_fw_transport_if< my_extended_payload_types >, N, POL > sc_core::sc_port< tlm::tlm_slave_if< REQ, RSP > > sc_core::sc_port< tlm::tlm_transport_if< REQ, RSP > > sc_core::sc_port< tlm::tlm_master_if< REQ, RSP > > sc_core::sc_port< IF, N, P >

Public Member Functions

void operator() (IF &i)
 The following warning is disabled because the bind methods are overloaded in the derived class and the base class.
 
void operator() (sc_port_b< IF > &p)
 
virtual void bind (IF &i)
 
virtual void bind (sc_port_b< IF > &p)
 
IF * operator-> ()
 
const IF * operator-> () const
 
IF * operator[] (int n)
 
const IF * operator[] (int n) const
 
sc_interfaceget_interface ()
 
const sc_interfaceget_interface () const
 
- Public Member Functions inherited from sc_core::sc_port_base
 sc_port_base (const char *name, int n, sc_port_policy p)
 
virtual ~sc_port_base ()
 
void warn_port_constructor () const
 
int maxSize () const
 
int size () const
 
const char * kind () const
 
- Public Member Functions inherited from sc_core::sc_object
const char * name () const
 
const char * basename () const
 
virtual void print (std::ostream &=std::cout) const
 
virtual void dump (std::ostream &=std::cout) const
 
virtual const std::vector< sc_object * > & get_child_objects () const
 
virtual const std::vector< sc_event * > & get_child_events () const
 
sc_objectget_parent_object () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_baseget_attribute (const std::string &)
 
sc_attr_baseremove_attribute (const std::string &)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltnattr_cltn ()
 
const sc_attr_cltnattr_cltn () const
 
sc_simcontextsimcontext () const
 

Protected Member Functions

void before_end_of_elaboration () override
 
void end_of_elaboration () override
 
void start_of_simulation () override
 
void end_of_simulation () override
 
 sc_port_b (int n, sc_port_policy p)
 
 sc_port_b (const char *name, int n, sc_port_policy p)
 
virtual ~sc_port_b ()
 
int vbind (sc_interface &i) override
 
int vbind (sc_port_base &pb) override
 
- Protected Member Functions inherited from sc_core::sc_port_base
void bind (sc_interface &)
 
void bind (sc_port_base &)
 
void report_error (const char *id, const char *add_msg) const
 
- Protected Member Functions inherited from sc_core::sc_object
 sc_object ()
 
 sc_object (const char *)
 
 sc_object (const sc_object &)
 
sc_objectoperator= (const sc_object &)
 
virtual ~sc_object ()
 

Private Member Functions

sc_interface_gem5Interface (int n) const override
 
void _gem5AddInterface (sc_interface *iface) override
 
const char * _ifTypeName () const override
 
 sc_port_b ()
 
 sc_port_b (const sc_port_b< IF > &)
 
sc_port_b< IF > & operator= (const sc_port_b< IF > &)
 

Private Attributes

std::vector< IF * > _interfaces
 

Detailed Description

template<class IF>
class sc_core::sc_port_b< IF >

Definition at line 118 of file sc_port.hh.

Constructor & Destructor Documentation

◆ sc_port_b() [1/4]

template<class IF >
sc_core::sc_port_b< IF >::sc_port_b ( int  n,
sc_port_policy  p 
)
inlineexplicitprotected

Definition at line 198 of file sc_port.hh.

References sc_core::sc_gen_unique_name().

◆ sc_port_b() [2/4]

template<class IF >
sc_core::sc_port_b< IF >::sc_port_b ( const char *  name,
int  n,
sc_port_policy  p 
)
inlineprotected

Definition at line 201 of file sc_port.hh.

◆ ~sc_port_b()

template<class IF >
virtual sc_core::sc_port_b< IF >::~sc_port_b ( )
inlineprotectedvirtual

Definition at line 204 of file sc_port.hh.

◆ sc_port_b() [3/4]

template<class IF >
sc_core::sc_port_b< IF >::sc_port_b ( )
inlineprivate

Definition at line 255 of file sc_port.hh.

◆ sc_port_b() [4/4]

template<class IF >
sc_core::sc_port_b< IF >::sc_port_b ( const sc_port_b< IF > &  )
inlineprivate

Definition at line 256 of file sc_port.hh.

Member Function Documentation

◆ _gem5AddInterface()

template<class IF >
void sc_core::sc_port_b< IF >::_gem5AddInterface ( sc_interface iface)
inlineoverrideprivatevirtual

◆ _gem5Interface()

template<class IF >
sc_interface * sc_core::sc_port_b< IF >::_gem5Interface ( int  n) const
inlineoverrideprivatevirtual

◆ _ifTypeName()

template<class IF >
const char * sc_core::sc_port_b< IF >::_ifTypeName ( ) const
inlineoverrideprivatevirtual

Implements sc_core::sc_port_base.

Definition at line 252 of file sc_port.hh.

References sc_core::sc_object::name().

◆ before_end_of_elaboration()

template<class IF >
void sc_core::sc_port_b< IF >::before_end_of_elaboration ( )
inlineoverrideprotectedvirtual

Implements sc_core::sc_port_base.

Definition at line 193 of file sc_port.hh.

◆ bind() [1/2]

template<class IF >
virtual void sc_core::sc_port_b< IF >::bind ( IF &  i)
inlinevirtual

◆ bind() [2/2]

template<class IF >
virtual void sc_core::sc_port_b< IF >::bind ( sc_port_b< IF > &  p)
inlinevirtual

Definition at line 136 of file sc_port.hh.

References sc_core::sc_port_base::bind().

◆ end_of_elaboration()

template<class IF >
void sc_core::sc_port_b< IF >::end_of_elaboration ( )
inlineoverrideprotectedvirtual

Implements sc_core::sc_port_base.

Definition at line 194 of file sc_port.hh.

◆ end_of_simulation()

template<class IF >
void sc_core::sc_port_b< IF >::end_of_simulation ( )
inlineoverrideprotectedvirtual

Implements sc_core::sc_port_base.

Definition at line 196 of file sc_port.hh.

◆ get_interface() [1/2]

template<class IF >
sc_interface * sc_core::sc_port_b< IF >::get_interface ( )
inline

◆ get_interface() [2/2]

template<class IF >
const sc_interface * sc_core::sc_port_b< IF >::get_interface ( ) const
inline

Definition at line 185 of file sc_port.hh.

References sc_core::sc_port_b< IF >::_interfaces.

◆ operator()() [1/2]

template<class IF >
void sc_core::sc_port_b< IF >::operator() ( IF &  i)
inline

The following warning is disabled because the bind methods are overloaded in the derived class and the base class.

In GCC v13+ this 'overloaded-virtual' warning is strict enough to trigger here (though the code is correct). Please check section 9.3 of SystemC 2.3.1 release note for more details.

Definition at line 132 of file sc_port.hh.

References sc_core::sc_port_b< IF >::bind().

◆ operator()() [2/2]

template<class IF >
void sc_core::sc_port_b< IF >::operator() ( sc_port_b< IF > &  p)
inline

Definition at line 133 of file sc_port.hh.

References sc_core::sc_port_b< IF >::bind().

◆ operator->() [1/2]

template<class IF >
IF * sc_core::sc_port_b< IF >::operator-> ( )
inline

◆ operator->() [2/2]

template<class IF >
const IF * sc_core::sc_port_b< IF >::operator-> ( ) const
inline

◆ operator=()

template<class IF >
sc_port_b< IF > & sc_core::sc_port_b< IF >::operator= ( const sc_port_b< IF > &  )
inlineprivate

Definition at line 257 of file sc_port.hh.

◆ operator[]() [1/2]

template<class IF >
IF * sc_core::sc_port_b< IF >::operator[] ( int  n)
inline

◆ operator[]() [2/2]

template<class IF >
const IF * sc_core::sc_port_b< IF >::operator[] ( int  n) const
inline

◆ start_of_simulation()

template<class IF >
void sc_core::sc_port_b< IF >::start_of_simulation ( )
inlineoverrideprotectedvirtual

Implements sc_core::sc_port_base.

Definition at line 195 of file sc_port.hh.

◆ vbind() [1/2]

template<class IF >
int sc_core::sc_port_b< IF >::vbind ( sc_interface i)
inlineoverrideprotectedvirtual

◆ vbind() [2/2]

template<class IF >
int sc_core::sc_port_b< IF >::vbind ( sc_port_base pb)
inlineoverrideprotectedvirtual

Implements sc_core::sc_port_base.

Definition at line 217 of file sc_port.hh.

References sc_core::sc_port_base::bind().

Member Data Documentation

◆ _interfaces

template<class IF >
std::vector<IF *> sc_core::sc_port_b< IF >::_interfaces
private

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

Generated on Mon Jan 13 2025 04:30:41 for gem5 by doxygen 1.9.8