SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
dmi_transaction_handler.h
Go to the documentation of this file.
1/*
2 © 2013 Intel Corporation
3
4 This software and the related documents are Intel copyrighted materials, and
5 your use of them is governed by the express license under which they were
6 provided to you ("License"). Unless the License provides otherwise, you may
7 not use, modify, copy, publish, distribute, disclose or transmit this software
8 or the related documents without Intel's prior written permission.
9
10 This software and the related documents are provided as is, with no express or
11 implied warranties, other than those that are expressly stated in the License.
12*/
13
14#ifndef SIMICS_SYSTEMC_TLM2SIMICS_DMI_TRANSACTION_HANDLER_H
15#define SIMICS_SYSTEMC_TLM2SIMICS_DMI_TRANSACTION_HANDLER_H
16
17#include <simics/model-iface/direct-memory.h>
18
20
21namespace simics {
22namespace systemc {
23namespace tlm2simics {
24
29 : public TransactionHandler,
31 public:
33 iface::ReceiverInterface *ignore_receiver = NULL,
34 InterfaceProvider *dmi_interface_provider = NULL);
36
37 // Invalidate the interface_provider_ handle
38 void invalidate();
39
40 // TransactionHandler
41 bool get_direct_mem_ptr(ConfObjectRef &simics_obj,
42 tlm::tlm_generic_payload &trans,
43 tlm::tlm_dmi& dmi_data) override;
44 void update_dmi_allowed(ConfObjectRef &simics_obj,
45 tlm::tlm_generic_payload *trans) override;
46
47 // TargetUpdateListener
48 void update_target(ConfObjectRef old_target,
49 ConfObjectRef new_target) override;
50
51 protected:
53 ConfObjectRef target);
56
57 private:
58 bool hasDirectMemoryUpdateInterface(ConfObjectRef simics_obj);
59
60 InterfaceProvider direct_memory_provider_;
61 InterfaceProvider direct_memory_lookup_provider_;
62 bool has_direct_memory_update_iface_checked_;
63 bool has_direct_memory_update_iface_;
64};
65
66} // namespace tlm2simics
67} // namespace systemc
68} // namespace simics
69
70#endif
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:30
Definition: simics_target_lock.h:25
Interface implemented by the ExtensionReceiver class, used by the ExtensionDispatcher.
Definition: receiver_interface.h:27
Base class for transaction handlers that support DMI.
Definition: dmi_transaction_handler.h:30
bool get_direct_mem_ptr(ConfObjectRef &simics_obj, tlm::tlm_generic_payload &trans, tlm::tlm_dmi &dmi_data) override
SimicsTargetLock< const direct_memory_lookup_interface_t > direct_memory_lookup()
DmiTransactionHandler(InterfaceProvider *interface_provider, iface::ReceiverInterface *ignore_receiver=NULL, InterfaceProvider *dmi_interface_provider=NULL)
void update_dmi_allowed(ConfObjectRef &simics_obj, tlm::tlm_generic_payload *trans) override
void update_target(ConfObjectRef old_target, ConfObjectRef new_target) override
SimicsTargetLock< const direct_memory_interface_t > direct_memory(ConfObjectRef target)
Base class for transaction handlers without support for DMI.
Definition: transaction_handler.h:34
const InterfaceProvider * interface_provider() const override
Definition: adapter.h:79