gem5 v25.0.0.1
Loading...
Searching...
No Matches
sc_port_b< IF > Class Template Reference

#include <sc_port.hh>

Inheritance diagram for sc_port_b< IF >:
sc_core::sc_port_base sc_core::sc_object sc_core::sc_port< sc_event_queue_if, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< fw_interface_type, N, POL > sc_core::sc_port< if_type, 1 > sc_core::sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > sc_core::sc_port< IF, N, P > sc_core::sc_inout< data_type > tlm::tlm_base_initiator_socket< 64, ClockRateControlFwIf, ClockRateControlBwIf > tlm::tlm_base_initiator_socket< 64, SignalInterruptFwIf, SignalInterruptBwIf > tlm::tlm_base_initiator_socket< BUSWIDTH, FW_IF, BW_IF, N, POL > sc_core::sc_out< data_type > gem5::ClockRateControlInitiatorSocket gem5::SignalInterruptInitiatorSocket

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_port_b ()
 sc_port_b (const sc_port_b< IF > &)
sc_interface_gem5Interface (int n) const override
void _gem5AddInterface (sc_interface *iface) override
const char * _ifTypeName () const override
sc_port_b< IF > & operator= (const sc_port_b< IF > &)

Private Attributes

std::vector< IF * > _interfaces

Detailed Description

template<class IF>
class 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.

◆ 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() [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.

◆ ~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.

Member Function Documentation

◆ _gem5AddInterface()

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

Implements sc_core::sc_port_base.

Definition at line 239 of file sc_port.hh.

◆ _gem5Interface()

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

Implements sc_core::sc_port_base.

Definition at line 230 of file sc_port.hh.

◆ _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.

◆ 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

Definition at line 135 of file sc_port.hh.

◆ 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.

◆ 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

Definition at line 178 of file sc_port.hh.

◆ 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.

◆ 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.

◆ 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.

◆ operator->() [1/2]

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

Definition at line 140 of file sc_port.hh.

◆ operator->() [2/2]

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

Definition at line 149 of file sc_port.hh.

◆ 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

Definition at line 159 of file sc_port.hh.

◆ operator[]() [2/2]

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

Definition at line 168 of file sc_port.hh.

◆ 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

Implements sc_core::sc_port_base.

Definition at line 208 of file sc_port.hh.

◆ 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.

Member Data Documentation

◆ _interfaces

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

Definition at line 227 of file sc_port.hh.


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

Generated on Sat Oct 18 2025 08:06:48 for gem5 by doxygen 1.14.0