20 #ifndef __SYSTEMC_EXT_TLM_CORE_2_GENERIC_PAYLOAD_GP_HH__ 21 #define __SYSTEMC_EXT_TLM_CORE_2_GENERIC_PAYLOAD_GP_HH__ 25 #include "../../../utils/sc_report_handler.hh" 31 class tlm_generic_payload;
52 virtual void free() {
delete this; }
56 static unsigned int register_extension(
const std::type_info &);
72 const static unsigned int ID;
107 #define TLM_BYTE_DISABLED 0x0 108 #define TLM_BYTE_ENABLED 0xff 114 extern template class tlm_array<tlm_extension_base *>;
133 if (--m_ref_count == 0)
140 bool has_mm()
const {
return m_mm != 0; }
160 bool use_byte_enable_on_read=
true);
167 void free_all_extensions();
201 return m_response_status;
206 m_response_status = response_status;
208 std::string get_response_string()
const;
215 m_streaming_width = streaming_width;
223 m_byte_enable = byte_enable;
228 return m_byte_enable_length;
233 m_byte_enable_length = byte_enable_length;
338 template <
typename T>
342 return static_cast<T *
>(set_extension(
T::ID, ext));
351 template <
typename T>
355 return static_cast<T *
>(set_auto_extension(
T::ID, ext));
363 template <
typename T>
365 template <
typename T>
369 return static_cast<T*
>(get_extension(
T::ID));
378 template <
typename T>
385 template <
typename T>
391 template <
typename T>
394 release_extension<T>();
400 template <
typename T>
403 release_extension(
T::ID);
408 void clear_extension(
unsigned int index);
410 void release_extension(
unsigned int index);
418 void resize_extensions();
void set_response_status(const tlm_response_status response_status)
void set_streaming_width(const unsigned int streaming_width)
void set_gp_option(const tlm_gp_option gp_opt)
void get_extension(T *&ext) const
void set_byte_enable_ptr(unsigned char *byte_enable)
unsigned int get_byte_enable_length() const
unsigned int max_num_extensions()
tlm_array< tlm_extension_base * > m_extensions
bool is_response_ok() const
bool is_dmi_allowed() const
unsigned char * get_byte_enable_ptr() const
unsigned char * m_byte_enable
sc_dt::uint64 get_address() const
void set_byte_enable_length(const unsigned int byte_enable_length)
void set_address(const sc_dt::uint64 address)
bool is_response_error() const
unsigned char * get_data_ptr() const
T * get_extension() const
void clear_extension(const T *ext)
void release_extension(T *ext)
unsigned int get_data_length() const
virtual ~tlm_mm_interface()
static unsigned int register_extension(const std::type_info &)
void set_data_ptr(unsigned char *data)
tlm_gp_option m_gp_option
unsigned int get_streaming_width() const
tlm_gp_option get_gp_option() const
unsigned int m_streaming_width
T * set_extension(T *ext)
unsigned int m_byte_enable_length
const std::vector< uint8_t > ID
tlm_response_status get_response_status() const
static const unsigned int ID
void set_dmi_allowed(bool dmi_allowed)
virtual void free(tlm_generic_payload *)=0
tlm_response_status m_response_status
tlm_command get_command() const
void set_command(const tlm_command command)
void set_mm(tlm_mm_interface *mm)
virtual ~tlm_extension_base()
int get_ref_count() const
T * set_auto_extension(T *ext)
void set_data_length(const unsigned int length)