gem5  v22.1.0.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
tlm::tlm_generic_payload Class Reference

#include <gp.hh>

Inheritance diagram for tlm::tlm_generic_payload:
SimpleATInitiator1::MyTransaction< DT > SimpleATInitiator2::MyTransaction< DT >

Public Member Functions

 tlm_generic_payload ()
 
 tlm_generic_payload (tlm_mm_interface *mm)
 
void acquire ()
 
void release ()
 
int get_ref_count () const
 
void set_mm (tlm_mm_interface *mm)
 
bool has_mm () const
 
void reset ()
 
void deep_copy_from (const tlm_generic_payload &other)
 
void update_original_from (const tlm_generic_payload &other, bool use_byte_enable_on_read=true)
 
void update_extensions_from (const tlm_generic_payload &other)
 
void free_all_extensions ()
 
virtual ~tlm_generic_payload ()
 
bool is_read () const
 
void set_read ()
 
bool is_write () const
 
void set_write ()
 
tlm_command get_command () const
 
void set_command (const tlm_command command)
 
sc_dt::uint64 get_address () const
 
void set_address (const sc_dt::uint64 address)
 
unsigned char * get_data_ptr () const
 
void set_data_ptr (unsigned char *data)
 
unsigned int get_data_length () const
 
void set_data_length (const unsigned int length)
 
bool is_response_ok () const
 
bool is_response_error () const
 
tlm_response_status get_response_status () const
 
void set_response_status (const tlm_response_status response_status)
 
std::string get_response_string () const
 
unsigned int get_streaming_width () const
 
void set_streaming_width (const unsigned int streaming_width)
 
unsigned char * get_byte_enable_ptr () const
 
void set_byte_enable_ptr (unsigned char *byte_enable)
 
unsigned int get_byte_enable_length () const
 
void set_byte_enable_length (const unsigned int byte_enable_length)
 
void set_dmi_allowed (bool dmi_allowed)
 
bool is_dmi_allowed () const
 
tlm_gp_option get_gp_option () const
 
void set_gp_option (const tlm_gp_option gp_opt)
 
template<typename T >
T * set_extension (T *ext)
 
tlm_extension_baseset_extension (unsigned int index, tlm_extension_base *ext)
 
template<typename T >
T * set_auto_extension (T *ext)
 
tlm_extension_baseset_auto_extension (unsigned int index, tlm_extension_base *ext)
 
template<typename T >
void get_extension (T *&ext) const
 
template<typename T >
T * get_extension () const
 
tlm_extension_baseget_extension (unsigned int index) const
 
template<typename T >
void clear_extension (const T *ext)
 
template<typename T >
void clear_extension ()
 
template<typename T >
void release_extension (T *ext)
 
template<typename T >
void release_extension ()
 
void resize_extensions ()
 

Private Member Functions

 tlm_generic_payload (const tlm_generic_payload &x)
 
tlm_generic_payloadoperator= (const tlm_generic_payload &x)
 
void clear_extension (unsigned int index)
 
void release_extension (unsigned int index)
 

Private Attributes

sc_dt::uint64 m_address
 
tlm_command m_command
 
unsigned char * m_data
 
unsigned int m_length
 
tlm_response_status m_response_status
 
bool m_dmi
 
unsigned char * m_byte_enable
 
unsigned int m_byte_enable_length
 
unsigned int m_streaming_width
 
tlm_gp_option m_gp_option
 
tlm_array< tlm_extension_base * > m_extensions
 
tlm_mm_interfacem_mm
 
unsigned int m_ref_count
 

Detailed Description

Definition at line 116 of file gp.hh.

Constructor & Destructor Documentation

◆ tlm_generic_payload() [1/3]

tlm::tlm_generic_payload::tlm_generic_payload ( )

Definition at line 100 of file gp.cc.

◆ tlm_generic_payload() [2/3]

tlm::tlm_generic_payload::tlm_generic_payload ( tlm_mm_interface mm)
explicit

Definition at line 108 of file gp.cc.

◆ tlm_generic_payload() [3/3]

tlm::tlm_generic_payload::tlm_generic_payload ( const tlm_generic_payload x)
private

◆ ~tlm_generic_payload()

tlm::tlm_generic_payload::~tlm_generic_payload ( )
virtual

Definition at line 262 of file gp.cc.

References gem5::ArmISA::i, and m_extensions.

Member Function Documentation

◆ acquire()

void tlm::tlm_generic_payload::acquire ( )
inline

◆ clear_extension() [1/3]

template<typename T >
void tlm::tlm_generic_payload::clear_extension ( )
inline

Definition at line 386 of file gp.hh.

References clear_extension(), and gem5::ps2::keyboard::ID.

Referenced by clear_extension().

◆ clear_extension() [2/3]

template<typename T >
void tlm::tlm_generic_payload::clear_extension ( const T *  ext)
inline

Definition at line 379 of file gp.hh.

Referenced by adapt_gp2ext< BUSWIDTH >::get_dmi_pointer().

◆ clear_extension() [3/3]

void tlm::tlm_generic_payload::clear_extension ( unsigned int  index)
private

Definition at line 330 of file gp.cc.

References gem5::MipsISA::index, m_extensions, and sc_assert.

◆ deep_copy_from()

void tlm::tlm_generic_payload::deep_copy_from ( const tlm_generic_payload other)

◆ free_all_extensions()

void tlm::tlm_generic_payload::free_all_extensions ( )

Definition at line 251 of file gp.cc.

References gem5::ArmISA::i, and m_extensions.

◆ get_address()

sc_dt::uint64 tlm::tlm_generic_payload::get_address ( ) const
inline

Definition at line 184 of file gp.hh.

Referenced by SimpleLTTarget1::b_transport(), ExplicitATTarget::beginResponse(), SimpleATTarget1::beginResponse(), SimpleATTarget2::beginResponse(), deep_copy_from(), MultiSocketSimpleSwitchAT::fwPEQcb(), SimpleLTTarget1::get_direct_mem_ptr(), sc_gem5::Gem5ToTlmBridge< BITWIDTH >::getBackdoor(), SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::getDMIPointer(), SimpleBusLT< NR_OF_INITIATORS, NR_OF_TARGETS >::getDMIPointer(), SimpleBusLT< NR_OF_INITIATORS, NR_OF_TARGETS >::initiatorBTransport(), MultiSocketSimpleSwitchAT::initiatorNBTransport(), SimpleATInitiator1::logStartTransation(), SimpleATInitiator2::logStartTransation(), CoreDecouplingLTInitiator::logStartTransation(), SimpleLTInitiator1::logStartTransation(), SimpleLTInitiator1_dmi::logStartTransation(), SimpleLTInitiator2::logStartTransation(), SimpleLTInitiator2_dmi::logStartTransation(), SimpleLTInitiator3::logStartTransation(), SimpleLTInitiator3_dmi::logStartTransation(), SimpleLTInitiator_ext::logStartTransation(), ExplicitLTTarget::myBTransport(), SimpleLTTarget2::myBTransport(), SimpleLTTarget2::myGetDMIPtr(), SimpleLTTarget_ext::myGetDMIPtr(), ExplicitATTarget::myNBTransport(), SimpleATTarget1::myNBTransport(), SimpleATTarget2::myNBTransport(), SimpleLTTarget_ext::myNBTransport(), sc_gem5::payload2packet(), SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::RequestThread(), SimpleLTInitiator1_dmi::run(), SimpleLTInitiator2_dmi::run(), SimpleLTInitiator3_dmi::run(), SimpleLTInitiator_ext::run(), tlm::tlm_to_hostendian_generic(), tlm::tlm_to_hostendian_single(), tlm::tlm_to_hostendian_word(), SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::transportDebug(), and SimpleBusLT< NR_OF_INITIATORS, NR_OF_TARGETS >::transportDebug().

◆ get_byte_enable_length()

unsigned int tlm::tlm_generic_payload::get_byte_enable_length ( ) const
inline

Definition at line 226 of file gp.hh.

Referenced by deep_copy_from(), and tlm::tlm_to_hostendian_generic().

◆ get_byte_enable_ptr()

unsigned char* tlm::tlm_generic_payload::get_byte_enable_ptr ( ) const
inline

◆ get_command()

tlm_command tlm::tlm_generic_payload::get_command ( ) const
inline

Definition at line 180 of file gp.hh.

Referenced by SimpleLTTarget1::b_transport(), ExplicitATTarget::beginResponse(), SimpleATTarget1::beginResponse(), SimpleATTarget2::beginResponse(), deep_copy_from(), SimpleLTInitiator2_dmi::getDMIData(), SimpleLTInitiator3_dmi::getDMIData(), SimpleATInitiator1::logEndTransaction(), SimpleATInitiator2::logEndTransaction(), CoreDecouplingLTInitiator::logEndTransaction(), SimpleLTInitiator1::logEndTransaction(), SimpleLTInitiator1_dmi::logEndTransaction(), SimpleLTInitiator2::logEndTransaction(), SimpleLTInitiator2_dmi::logEndTransaction(), SimpleLTInitiator3::logEndTransaction(), SimpleLTInitiator3_dmi::logEndTransaction(), SimpleLTInitiator_ext::logEndTransaction(), SimpleATInitiator1::logStartTransation(), SimpleATInitiator2::logStartTransation(), CoreDecouplingLTInitiator::logStartTransation(), SimpleLTInitiator1::logStartTransation(), SimpleLTInitiator1_dmi::logStartTransation(), SimpleLTInitiator2::logStartTransation(), SimpleLTInitiator2_dmi::logStartTransation(), SimpleLTInitiator3::logStartTransation(), SimpleLTInitiator3_dmi::logStartTransation(), SimpleLTInitiator_ext::logStartTransation(), ExplicitLTTarget::myBTransport(), SimpleLTTarget2::myBTransport(), ExplicitATTarget::myNBTransport(), SimpleATTarget1::myNBTransport(), SimpleATTarget2::myNBTransport(), SimpleLTTarget_ext::myNBTransport(), sc_gem5::payload2packet(), SimpleLTInitiator1_dmi::run(), SimpleLTInitiator2_dmi::run(), SimpleLTInitiator3_dmi::run(), and SimpleLTInitiator_ext::run().

◆ get_data_length()

unsigned int tlm::tlm_generic_payload::get_data_length ( ) const
inline

◆ get_data_ptr()

unsigned char* tlm::tlm_generic_payload::get_data_ptr ( ) const
inline

◆ get_extension() [1/3]

template<typename T >
T* tlm::tlm_generic_payload::get_extension ( ) const
inline

Definition at line 367 of file gp.hh.

References gem5::ps2::keyboard::ID.

◆ get_extension() [2/3]

template<typename T >
void tlm::tlm_generic_payload::get_extension ( T *&  ext) const
inline

◆ get_extension() [3/3]

tlm_extension_base * tlm::tlm_generic_payload::get_extension ( unsigned int  index) const

Definition at line 323 of file gp.cc.

References gem5::MipsISA::index, m_extensions, and sc_assert.

◆ get_gp_option()

tlm_gp_option tlm::tlm_generic_payload::get_gp_option ( ) const
inline

Definition at line 250 of file gp.hh.

Referenced by deep_copy_from().

◆ get_ref_count()

int tlm::tlm_generic_payload::get_ref_count ( ) const
inline

Definition at line 137 of file gp.hh.

Referenced by MultiSocketSimpleSwitchAT::b_transport().

◆ get_response_status()

tlm_response_status tlm::tlm_generic_payload::get_response_status ( ) const
inline

◆ get_response_string()

std::string tlm::tlm_generic_payload::get_response_string ( ) const

◆ get_streaming_width()

unsigned int tlm::tlm_generic_payload::get_streaming_width ( ) const
inline

◆ has_mm()

bool tlm::tlm_generic_payload::has_mm ( ) const
inline

◆ is_dmi_allowed()

bool tlm::tlm_generic_payload::is_dmi_allowed ( ) const
inline

◆ is_read()

bool tlm::tlm_generic_payload::is_read ( ) const
inline

◆ is_response_error()

bool tlm::tlm_generic_payload::is_response_error ( ) const
inline

Definition at line 197 of file gp.hh.

◆ is_response_ok()

bool tlm::tlm_generic_payload::is_response_ok ( ) const
inline

Definition at line 196 of file gp.hh.

◆ is_write()

bool tlm::tlm_generic_payload::is_write ( ) const
inline

Definition at line 178 of file gp.hh.

References tlm::TLM_WRITE_COMMAND.

Referenced by tlm::tlm_to_hostendian_aligned(), and tlm::tlm_to_hostendian_generic().

◆ operator=()

tlm_generic_payload& tlm::tlm_generic_payload::operator= ( const tlm_generic_payload x)
private

◆ release()

void tlm::tlm_generic_payload::release ( )
inline

◆ release_extension() [1/3]

template<typename T >
void tlm::tlm_generic_payload::release_extension ( )
inline

Definition at line 401 of file gp.hh.

References gem5::ps2::keyboard::ID.

◆ release_extension() [2/3]

template<typename T >
void tlm::tlm_generic_payload::release_extension ( T *  ext)
inline

Definition at line 392 of file gp.hh.

◆ release_extension() [3/3]

void tlm::tlm_generic_payload::release_extension ( unsigned int  index)
private

Definition at line 337 of file gp.cc.

References gem5::MipsISA::index, m_extensions, m_mm, and sc_assert.

◆ reset()

void tlm::tlm_generic_payload::reset ( )

◆ resize_extensions()

void tlm::tlm_generic_payload::resize_extensions ( )

Definition at line 349 of file gp.cc.

References m_extensions, and tlm::max_num_extensions().

◆ set_address()

void tlm::tlm_generic_payload::set_address ( const sc_dt::uint64  address)
inline

◆ set_auto_extension() [1/2]

template<typename T >
T* tlm::tlm_generic_payload::set_auto_extension ( T *  ext)
inline

Definition at line 353 of file gp.hh.

References gem5::ArmISA::ext, and gem5::ps2::keyboard::ID.

Referenced by deep_copy_from(), and sc_gem5::packet2payload().

◆ set_auto_extension() [2/2]

tlm_extension_base * tlm::tlm_generic_payload::set_auto_extension ( unsigned int  index,
tlm_extension_base ext 
)

Definition at line 310 of file gp.cc.

References gem5::ArmISA::ext, gem5::MipsISA::index, m_extensions, m_mm, and sc_assert.

◆ set_byte_enable_length()

void tlm::tlm_generic_payload::set_byte_enable_length ( const unsigned int  byte_enable_length)
inline

◆ set_byte_enable_ptr()

void tlm::tlm_generic_payload::set_byte_enable_ptr ( unsigned char *  byte_enable)
inline

◆ set_command()

void tlm::tlm_generic_payload::set_command ( const tlm_command  command)
inline

◆ set_data_length()

void tlm::tlm_generic_payload::set_data_length ( const unsigned int  length)
inline

◆ set_data_ptr()

void tlm::tlm_generic_payload::set_data_ptr ( unsigned char *  data)
inline

◆ set_dmi_allowed()

void tlm::tlm_generic_payload::set_dmi_allowed ( bool  dmi_allowed)
inline

◆ set_extension() [1/2]

template<typename T >
T* tlm::tlm_generic_payload::set_extension ( T *  ext)
inline

◆ set_extension() [2/2]

tlm_extension_base * tlm::tlm_generic_payload::set_extension ( unsigned int  index,
tlm_extension_base ext 
)

Definition at line 301 of file gp.cc.

References gem5::ArmISA::ext, gem5::MipsISA::index, m_extensions, and sc_assert.

◆ set_gp_option()

void tlm::tlm_generic_payload::set_gp_option ( const tlm_gp_option  gp_opt)
inline

Definition at line 251 of file gp.hh.

◆ set_mm()

void tlm::tlm_generic_payload::set_mm ( tlm_mm_interface mm)
inline

Definition at line 139 of file gp.hh.

References gem5::SparcISA::mm.

Referenced by MultiSocketSimpleSwitchAT::b_transport().

◆ set_read()

void tlm::tlm_generic_payload::set_read ( )
inline

◆ set_response_status()

void tlm::tlm_generic_payload::set_response_status ( const tlm_response_status  response_status)
inline

◆ set_streaming_width()

void tlm::tlm_generic_payload::set_streaming_width ( const unsigned int  streaming_width)
inline

◆ set_write()

void tlm::tlm_generic_payload::set_write ( )
inline

Definition at line 179 of file gp.hh.

References tlm::TLM_WRITE_COMMAND.

Referenced by SimpleLTInitiator1_dmi::run(), and SimpleLTInitiator_ext::run().

◆ update_extensions_from()

void tlm::tlm_generic_payload::update_extensions_from ( const tlm_generic_payload other)

Definition at line 232 of file gp.cc.

References gem5::ArmISA::i, m_extensions, and sc_assert.

Referenced by update_original_from().

◆ update_original_from()

void tlm::tlm_generic_payload::update_original_from ( const tlm_generic_payload other,
bool  use_byte_enable_on_read = true 
)

Member Data Documentation

◆ m_address

sc_dt::uint64 tlm::tlm_generic_payload::m_address
private

Definition at line 289 of file gp.hh.

Referenced by deep_copy_from().

◆ m_byte_enable

unsigned char* tlm::tlm_generic_payload::m_byte_enable
private

Definition at line 295 of file gp.hh.

Referenced by deep_copy_from(), and update_original_from().

◆ m_byte_enable_length

unsigned int tlm::tlm_generic_payload::m_byte_enable_length
private

Definition at line 296 of file gp.hh.

Referenced by deep_copy_from(), and update_original_from().

◆ m_command

tlm_command tlm::tlm_generic_payload::m_command
private

Definition at line 290 of file gp.hh.

Referenced by deep_copy_from().

◆ m_data

unsigned char* tlm::tlm_generic_payload::m_data
private

Definition at line 291 of file gp.hh.

Referenced by deep_copy_from(), and update_original_from().

◆ m_dmi

bool tlm::tlm_generic_payload::m_dmi
private

Definition at line 294 of file gp.hh.

Referenced by deep_copy_from(), and update_original_from().

◆ m_extensions

tlm_array<tlm_extension_base *> tlm::tlm_generic_payload::m_extensions
private

◆ m_gp_option

tlm_gp_option tlm::tlm_generic_payload::m_gp_option
private

Definition at line 298 of file gp.hh.

Referenced by deep_copy_from(), and reset().

◆ m_length

unsigned int tlm::tlm_generic_payload::m_length
private

Definition at line 292 of file gp.hh.

Referenced by deep_copy_from(), and update_original_from().

◆ m_mm

tlm_mm_interface* tlm::tlm_generic_payload::m_mm
private

Definition at line 422 of file gp.hh.

Referenced by release_extension(), and set_auto_extension().

◆ m_ref_count

unsigned int tlm::tlm_generic_payload::m_ref_count
private

Definition at line 423 of file gp.hh.

◆ m_response_status

tlm_response_status tlm::tlm_generic_payload::m_response_status
private

Definition at line 293 of file gp.hh.

Referenced by deep_copy_from(), get_response_string(), and update_original_from().

◆ m_streaming_width

unsigned int tlm::tlm_generic_payload::m_streaming_width
private

Definition at line 297 of file gp.hh.

Referenced by deep_copy_from().


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

Generated on Wed Dec 21 2022 10:25:12 for gem5 by doxygen 1.9.1