Class that implements the Simics transaction interface and translates it into a TLM transaction. More...
#include <transaction.h>
Public Member Functions | |
| exception_type_t | issue (transaction_t *transaction, uint64 addr) override |
| void | set_deferrable (bool enable) |
| Toggle code paths for deferred transactions. | |
Public Member Functions inherited from simics::systemc::iface::TransactionInterface | |
| virtual exception_type_t | issue (transaction_t *t, uint64 addr)=0 |
| virtual | ~TransactionInterface () |
Public Member Functions inherited from simics::systemc::simics2tlm::GasketOwner | |
| GasketOwner () | |
| GasketOwner (const GasketOwner &)=delete | |
| GasketOwner & | operator= (const GasketOwner &)=delete |
| virtual | ~GasketOwner ()=default |
| void | set_gasket (GasketInterface::Ptr gasketInterface) |
| virtual void | gasketUpdated () |
| GasketInterface::Ptr | gasket () const |
Public Member Functions inherited from simics::systemc::ClassType | |
| ClassType () | |
| std::string | type () const |
| bool | operator== (const ClassType &type) const |
| bool | operator!= (const ClassType &type) const |
| bool | operator< (const ClassType &type) const |
| template<class T > | |
| T * | get_interface () |
| virtual | ~ClassType () |
Additional Inherited Members | |
Static Public Member Functions inherited from simics::systemc::ClassType | |
| template<class T > | |
| static ClassType | typeForClass () |
Protected Member Functions inherited from simics::systemc::ClassType | |
| void | set_type () |
Protected Attributes inherited from simics::systemc::simics2tlm::GasketOwner | |
| GasketInterface::Ptr | gasket_ |
Protected Attributes inherited from simics::systemc::ClassType | |
| std::string | type_ |
| ClassType * | implementor_ |
Class that implements the Simics transaction interface and translates it into a TLM transaction.
The TLM2 return codes are translated to Simics like this: TLM_OK_RESPONSE => Sim_PE_No_Exception, TLM_ADDRESS_ERROR_RESPONSE => Sim_PE_IO_Not_Taken or Sim_PE_Inquiry_Outside_Memory on inquiry access, remaining TLM2 errors => Sim_PE_IO_Error or Sim_PE_Inquiry_Unhandled on inquiry access
|
overridevirtual |
Implements simics::systemc::iface::TransactionInterface.
|
inline |
Toggle code paths for deferred transactions.
When enabled (true), the code path that checks whether the
incoming Simics transaction_t can be deferred will be used. The
actual decision still depends on the Simics runtime function
SIM_transaction_is_deferrable(transaction); both checks must pass
for a transaction to be deferred. This is a slower path.
When disabled (false, the default), the synchronous path is used. This is a faster path as there is no need to create callbacks to handle deferred transactions.