SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
simics::systemc::simics2tlm::DirectMemoryUpdate Class Reference

Class that implements the Simics direct_memory_update interface. More...

#include <direct_memory_update.h>

Inheritance diagram for simics::systemc::simics2tlm::DirectMemoryUpdate:
simics::systemc::iface::DirectMemoryUpdateInterface

Public Member Functions

 DirectMemoryUpdate ()
 
 DirectMemoryUpdate (const DirectMemoryUpdate &)=delete
 
DirectMemoryUpdateoperator= (const DirectMemoryUpdate &)=delete
 
virtual ~DirectMemoryUpdate ()=default
 
void release (conf_object_t *target, direct_memory_handle_t handle, direct_memory_ack_id_t id)
 
void update_permission (conf_object_t *target, direct_memory_handle_t handle, access_t lost_access, access_t lost_permission, access_t lost_inhibit, direct_memory_ack_id_t id)
 
void conflicting_access (conf_object_t *target, direct_memory_handle_t handle, access_t conflicting_permission, direct_memory_ack_id_t id)
 
void set_gasket (tlm2simics::GasketInterface::Ptr gasket)
 
- Public Member Functions inherited from simics::systemc::iface::DirectMemoryUpdateInterface
virtual void release (conf_object_t *target, direct_memory_handle_t handle, direct_memory_ack_id_t id)=0
 
virtual void update_permission (conf_object_t *target, direct_memory_handle_t handle, access_t lost_access, access_t lost_permission, access_t lost_inhibit, direct_memory_ack_id_t id)=0
 
virtual void conflicting_access (conf_object_t *target, direct_memory_handle_t handle, access_t conflicting_permission, direct_memory_ack_id_t id)=0
 
virtual ~DirectMemoryUpdateInterface ()
 

Protected Member Functions

SimicsTargetLock< const direct_memory_interface_t > direct_memory (ConfObjectRef target)
 
void invalidate_direct_mem_ptr (conf_object_t *target, direct_memory_handle_t handle, direct_memory_ack_id_t id)
 

Detailed Description

Class that implements the Simics direct_memory_update interface.

What makes this class a bit special, is that it is not derived from GasketOwner. This is because it does not carry any information for the forward-path TLM2 protocol. Instead, it is intended to be associated with a tlm2simics gasket and use this gasket to get the target socket so that it can invalidate the DMI using the backward-path of the TLM2 protocol.

Constructor & Destructor Documentation

◆ DirectMemoryUpdate() [1/2]

simics::systemc::simics2tlm::DirectMemoryUpdate::DirectMemoryUpdate ( )
inline

◆ DirectMemoryUpdate() [2/2]

simics::systemc::simics2tlm::DirectMemoryUpdate::DirectMemoryUpdate ( const DirectMemoryUpdate )
delete

◆ ~DirectMemoryUpdate()

virtual simics::systemc::simics2tlm::DirectMemoryUpdate::~DirectMemoryUpdate ( )
virtualdefault

Member Function Documentation

◆ conflicting_access()

void simics::systemc::simics2tlm::DirectMemoryUpdate::conflicting_access ( conf_object_t *  target,
direct_memory_handle_t  handle,
access_t  conflicting_permission,
direct_memory_ack_id_t  id 
)
inlinevirtual

◆ direct_memory()

SimicsTargetLock< const direct_memory_interface_t > simics::systemc::simics2tlm::DirectMemoryUpdate::direct_memory ( ConfObjectRef  target)
inlineprotected

◆ invalidate_direct_mem_ptr()

void simics::systemc::simics2tlm::DirectMemoryUpdate::invalidate_direct_mem_ptr ( conf_object_t *  target,
direct_memory_handle_t  handle,
direct_memory_ack_id_t  id 
)
inlineprotected

◆ operator=()

DirectMemoryUpdate & simics::systemc::simics2tlm::DirectMemoryUpdate::operator= ( const DirectMemoryUpdate )
delete

◆ release()

void simics::systemc::simics2tlm::DirectMemoryUpdate::release ( conf_object_t *  target,
direct_memory_handle_t  handle,
direct_memory_ack_id_t  id 
)
inlinevirtual

◆ set_gasket()

void simics::systemc::simics2tlm::DirectMemoryUpdate::set_gasket ( tlm2simics::GasketInterface::Ptr  gasket)
inline

◆ update_permission()

void simics::systemc::simics2tlm::DirectMemoryUpdate::update_permission ( conf_object_t *  target,
direct_memory_handle_t  handle,
access_t  lost_access,
access_t  lost_permission,
access_t  lost_inhibit,
direct_memory_ack_id_t  id 
)
inlinevirtual

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