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_export< IF > Class Template Reference

#include <sc_export.hh>

Inheritance diagram for sc_core::sc_export< IF >:
sc_core::sc_export_base sc_core::sc_object tlm::tlm_base_target_socket< 64, ClockRateControlFwIf, ClockRateControlBwIf > tlm::tlm_base_target_socket< 64, SignalInterruptFwIf, SignalInterruptBwIf > tlm::tlm_base_target_socket< 32, tlm_fw_transport_if< tlm_base_protocol_types >, tlm_bw_transport_if< tlm_base_protocol_types >, 1, sc_core::SC_ONE_OR_MORE_BOUND > tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< tlm::tlm_base_protocol_types >, tlm_bw_transport_if< tlm::tlm_base_protocol_types >, N, POL > tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< TYPES >, tlm_bw_transport_if< TYPES >, N, POL > tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< tlm_base_protocol_types >, tlm_bw_transport_if< tlm_base_protocol_types >, 1, sc_core::SC_ONE_OR_MORE_BOUND > tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< my_extended_payload_types >, tlm_bw_transport_if< my_extended_payload_types >, N, POL > tlm::tlm_base_target_socket< BUSWIDTH, FW_IF, BW_IF, N, POL >

Public Member Functions

 sc_export ()
 
 sc_export (const char *n)
 
virtual ~sc_export ()
 
virtual const char * kind () const override
 
void operator() (IF &i)
 The following warning is disabled because the bind methods are overloaded in the derived class and the base class.
 
virtual void bind (IF &i)
 
 operator IF & ()
 
 operator const IF & () const
 
IF * operator-> ()
 
const IF * operator-> () const
 
sc_interfaceget_iterface () override
 
const sc_interfaceget_interface () const override
 
- Public Member Functions inherited from sc_core::sc_export_base
 sc_export_base (const char *n)
 
 ~sc_export_base ()
 
- 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
 
- 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_export (const sc_export< IF > &)
 
sc_export< IF > & operator= (const sc_export< IF > &)
 

Private Attributes

IF * interface
 

Detailed Description

template<class IF>
class sc_core::sc_export< IF >

Definition at line 60 of file sc_export.hh.

Constructor & Destructor Documentation

◆ sc_export() [1/3]

template<class IF >
sc_core::sc_export< IF >::sc_export ( )
inline

Definition at line 63 of file sc_export.hh.

References sc_core::sc_gen_unique_name().

◆ sc_export() [2/3]

template<class IF >
sc_core::sc_export< IF >::sc_export ( const char *  n)
inlineexplicit

Definition at line 66 of file sc_export.hh.

◆ ~sc_export()

template<class IF >
virtual sc_core::sc_export< IF >::~sc_export ( )
inlinevirtual

Definition at line 69 of file sc_export.hh.

◆ sc_export() [3/3]

template<class IF >
sc_core::sc_export< IF >::sc_export ( const sc_export< IF > &  )
private

Member Function Documentation

◆ before_end_of_elaboration()

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

Implements sc_core::sc_export_base.

Definition at line 122 of file sc_export.hh.

◆ bind()

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

◆ end_of_elaboration()

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

◆ end_of_simulation()

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

Implements sc_core::sc_export_base.

Definition at line 133 of file sc_export.hh.

◆ get_interface()

template<class IF >
const sc_interface * sc_core::sc_export< IF >::get_interface ( ) const
inlineoverridevirtual

◆ get_iterface()

template<class IF >
sc_interface * sc_core::sc_export< IF >::get_iterface ( )
inlineoverridevirtual

Implements sc_core::sc_export_base.

Definition at line 118 of file sc_export.hh.

References sc_core::sc_export< IF >::interface.

◆ kind()

template<class IF >
virtual const char * sc_core::sc_export< IF >::kind ( ) const
inlineoverridevirtual

Reimplemented from sc_core::sc_object.

Reimplemented in tlm::tlm_base_target_socket< BUSWIDTH, FW_IF, BW_IF, N, POL >, tlm::tlm_base_target_socket< 32, tlm_fw_transport_if< tlm_base_protocol_types >, tlm_bw_transport_if< tlm_base_protocol_types >, 1, sc_core::SC_ONE_OR_MORE_BOUND >, tlm::tlm_base_target_socket< 64, ClockRateControlFwIf, ClockRateControlBwIf >, tlm::tlm_base_target_socket< 64, SignalInterruptFwIf, SignalInterruptBwIf >, tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< my_extended_payload_types >, tlm_bw_transport_if< my_extended_payload_types >, N, POL >, tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< tlm::tlm_base_protocol_types >, tlm_bw_transport_if< tlm::tlm_base_protocol_types >, N, POL >, tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< tlm_base_protocol_types >, tlm_bw_transport_if< tlm_base_protocol_types >, 1, sc_core::SC_ONE_OR_MORE_BOUND >, tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< TYPES >, tlm_bw_transport_if< TYPES >, N, POL >, tlm::tlm_target_socket< BUSWIDTH, TYPES, N, POL >, tlm::tlm_target_socket< 32 >, tlm::tlm_target_socket< 32, tlm::tlm_base_protocol_types, 0, sc_core::SC_ONE_OR_MORE_BOUND >, tlm::tlm_target_socket< BUSWIDTH, my_extended_payload_types, 1, sc_core::SC_ONE_OR_MORE_BOUND >, tlm::tlm_target_socket< BUSWIDTH, tlm::tlm_base_protocol_types, 1, POL >, tlm::tlm_target_socket< BUSWIDTH, tlm::tlm_base_protocol_types, 1, sc_core::SC_ONE_OR_MORE_BOUND >, tlm::tlm_target_socket< BUSWIDTH, tlm::tlm_base_protocol_types, N, POL >, tlm::tlm_target_socket< BUSWIDTH, TYPES, 1, sc_core::SC_ONE_OR_MORE_BOUND >, gem5::ClockRateControlTargetSocket, and gem5::SignalInterruptTargetSocket.

Definition at line 71 of file sc_export.hh.

Referenced by sc_core::sc_export< IF >::end_of_elaboration().

◆ operator const IF &()

template<class IF >
sc_core::sc_export< IF >::operator const IF & ( ) const
inline

Definition at line 101 of file sc_export.hh.

◆ operator IF &()

template<class IF >
sc_core::sc_export< IF >::operator IF & ( )
inline

Definition at line 95 of file sc_export.hh.

◆ operator()()

template<class IF >
void sc_core::sc_export< 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 84 of file sc_export.hh.

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

◆ operator->() [1/2]

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

◆ operator->() [2/2]

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

◆ operator=()

template<class IF >
sc_export< IF > & sc_core::sc_export< IF >::operator= ( const sc_export< IF > &  )
private

◆ start_of_simulation()

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

Implements sc_core::sc_export_base.

Reimplemented in tlm_utils::simple_target_socket_b< MODULE, BUSWIDTH, TYPES, POL >, tlm_utils::simple_target_socket_b< adapt_ext2gp, BUSWIDTH, my_extended_payload_types >, tlm_utils::simple_target_socket_b< adapt_gp2ext, BUSWIDTH, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< ExplicitATTarget, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< ExplicitLTTarget, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< gem5::fastmodel::AmbaFromTlmBridge64, BUSWIDTH, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< gem5::fastmodel::AmbaToTlmBridge64, BUSWIDTH, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< gem5::memory::DRAMSysWrapper, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< MODULE, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< MODULE, 32, tlm::tlm_base_protocol_types, sc_core::SC_ZERO_OR_MORE_BOUND >, tlm_utils::simple_target_socket_b< sc_gem5::TlmToGem5Bridge< BITWIDTH >, BUSWIDTH, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< SimpleATTarget1, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< SimpleATTarget2, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_b< SimpleLTTarget_ext, BUSWIDTH, my_extended_payload_types >, tlm_utils::simple_target_socket_tagged_b< MODULE, BUSWIDTH, TYPES, POL >, tlm_utils::simple_target_socket_tagged_b< MODULE, 32, tlm::tlm_base_protocol_types >, tlm_utils::simple_target_socket_tagged_b< MODULE, 32, tlm::tlm_base_protocol_types, sc_core::SC_ZERO_OR_MORE_BOUND >, tlm_utils::simple_target_socket_tagged_b< SimpleBusAT, 32, tlm::tlm_base_protocol_types >, and tlm_utils::simple_target_socket_tagged_b< SimpleBusLT, 32, tlm::tlm_base_protocol_types >.

Definition at line 132 of file sc_export.hh.

Member Data Documentation

◆ interface

template<class IF >
IF* sc_core::sc_export< IF >::interface
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