gem5  v21.1.0.2
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 133 of file gp.hh.

Constructor & Destructor Documentation

◆ tlm_generic_payload() [1/3]

tlm::tlm_generic_payload::tlm_generic_payload ( )

Definition at line 117 of file gp.cc.

References m_extensions, m_gp_option, and tlm::TLM_MIN_PAYLOAD.

◆ tlm_generic_payload() [2/3]

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

◆ 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 279 of file gp.cc.

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 403 of file gp.hh.

◆ clear_extension() [2/3]

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

Definition at line 396 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 347 of file gp.cc.

References m_extensions, and tlm::max_num_extensions().

◆ deep_copy_from()

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

Definition at line 143 of file gp.cc.

References m_byte_enable, and m_byte_enable_length.

◆ free_all_extensions()

void tlm::tlm_generic_payload::free_all_extensions ( )

Definition at line 268 of file gp.cc.

◆ get_address()

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

◆ get_byte_enable_length()

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

Definition at line 243 of file gp.hh.

Referenced by tlm_generic_payload().

◆ get_byte_enable_ptr()

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

Definition at line 236 of file gp.hh.

Referenced by sc_gem5::TlmToGem5Bridge< BITWIDTH >::nb_transport_fw().

◆ get_command()

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

◆ 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

Definition at line 205 of file gp.hh.

Referenced by sc_gem5::payload2packet().

◆ get_extension() [1/3]

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

Definition at line 384 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 340 of file gp.cc.

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

◆ get_gp_option()

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

Definition at line 267 of file gp.hh.

◆ get_ref_count()

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

Definition at line 154 of file gp.hh.

◆ get_response_status()

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

Definition at line 216 of file gp.hh.

Referenced by tlm_generic_payload().

◆ get_response_string()

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

Definition at line 292 of file gp.cc.

Referenced by sc_gem5::TlmToGem5Bridge< BITWIDTH >::checkTransaction().

◆ 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

Definition at line 157 of file gp.hh.

Referenced by sc_gem5::packet2payload().

◆ is_dmi_allowed()

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

Definition at line 261 of file gp.hh.

◆ is_read()

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

Definition at line 193 of file gp.hh.

◆ is_response_error()

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

Definition at line 214 of file gp.hh.

Referenced by sc_gem5::TlmToGem5Bridge< BITWIDTH >::checkTransaction().

◆ is_response_ok()

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

Definition at line 213 of file gp.hh.

◆ is_write()

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

Definition at line 195 of file gp.hh.

◆ 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 418 of file gp.hh.

◆ release_extension() [2/3]

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

Definition at line 409 of file gp.hh.

◆ release_extension() [3/3]

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

Definition at line 354 of file gp.cc.

◆ reset()

void tlm::tlm_generic_payload::reset ( )

Definition at line 134 of file gp.cc.

References m_data, and m_length.

Referenced by mm::free(), and Gem5SystemC::MemoryManager::free().

◆ resize_extensions()

void tlm::tlm_generic_payload::resize_extensions ( )

Definition at line 366 of file gp.cc.

◆ 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 370 of file gp.hh.

Referenced by 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 327 of file gp.cc.

◆ set_byte_enable_length()

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

Definition at line 248 of file gp.hh.

◆ set_byte_enable_ptr()

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

Definition at line 238 of file gp.hh.

◆ 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 318 of file gp.cc.

◆ set_gp_option()

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

Definition at line 268 of file gp.hh.

◆ set_mm()

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

Definition at line 156 of file gp.hh.

◆ 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

Definition at line 230 of file gp.hh.

Referenced by sc_gem5::packet2payload().

◆ set_write()

void tlm::tlm_generic_payload::set_write ( )
inline

Definition at line 196 of file gp.hh.

◆ update_extensions_from()

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

Definition at line 249 of file gp.cc.

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

◆ update_original_from()

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

Definition at line 197 of file gp.cc.

References gem5::ArmISA::i, m_byte_enable, m_byte_enable_length, m_data, m_length, and gem5::ArmISA::u.

Member Data Documentation

◆ m_address

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

Definition at line 306 of file gp.hh.

Referenced by tlm_generic_payload().

◆ m_byte_enable

unsigned char* tlm::tlm_generic_payload::m_byte_enable
private

Definition at line 312 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 313 of file gp.hh.

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

◆ m_command

tlm_command tlm::tlm_generic_payload::m_command
private

Definition at line 307 of file gp.hh.

Referenced by tlm_generic_payload().

◆ m_data

unsigned char* tlm::tlm_generic_payload::m_data
private

Definition at line 308 of file gp.hh.

Referenced by reset(), and update_original_from().

◆ m_dmi

bool tlm::tlm_generic_payload::m_dmi
private

Definition at line 311 of file gp.hh.

◆ m_extensions

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

Definition at line 438 of file gp.hh.

Referenced by clear_extension(), get_extension(), tlm_generic_payload(), and update_extensions_from().

◆ m_gp_option

tlm_gp_option tlm::tlm_generic_payload::m_gp_option
private

Definition at line 315 of file gp.hh.

Referenced by tlm_generic_payload().

◆ m_length

unsigned int tlm::tlm_generic_payload::m_length
private

Definition at line 309 of file gp.hh.

Referenced by reset(), tlm_generic_payload(), and update_original_from().

◆ m_mm

tlm_mm_interface* tlm::tlm_generic_payload::m_mm
private

Definition at line 439 of file gp.hh.

◆ m_ref_count

unsigned int tlm::tlm_generic_payload::m_ref_count
private

Definition at line 440 of file gp.hh.

◆ m_response_status

tlm_response_status tlm::tlm_generic_payload::m_response_status
private

Definition at line 310 of file gp.hh.

Referenced by tlm_generic_payload().

◆ m_streaming_width

unsigned int tlm::tlm_generic_payload::m_streaming_width
private

Definition at line 314 of file gp.hh.

Referenced by tlm_generic_payload().


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

Generated on Tue Sep 21 2021 12:35:23 for gem5 by doxygen 1.8.17