16#ifndef SIMICS_SYSTEMC_IFACE_INSTRUMENTATION_BANK_INSTRUMENTATION_SUBSCRIBE_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_INSTRUMENTATION_BANK_INSTRUMENTATION_SUBSCRIBE_SIMICS_ADAPTER_H
19#include <simics/model-iface/bank-instrumentation.h>
29namespace instrumentation {
31template<
typename TBase,
32 typename TInterface = BankInstrumentationSubscribeInterface>
34 :
public SimicsAdapter<bank_instrumentation_subscribe_interface_t> {
38 BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE, init_iface()) {
42 conf_object_t *NOTNULL bank,
43 conf_object_t *connection,
46 before_read_callback_t before_read,
47 lang_void *user_data) {
48 return adapter<TBase, TInterface>(bank)->register_before_read(
49 connection, offset, size, before_read, user_data);
52 conf_object_t *NOTNULL bank,
53 conf_object_t *connection,
56 after_read_callback_t after_read,
57 lang_void *user_data) {
58 return adapter<TBase, TInterface>(bank)->register_after_read(
59 connection, offset, size, after_read, user_data);
62 conf_object_t *NOTNULL bank,
63 conf_object_t *connection,
66 before_write_callback_t before_write,
67 lang_void *user_data) {
68 return adapter<TBase, TInterface>(bank)->register_before_write(
69 connection, offset, size, before_write, user_data);
72 conf_object_t *NOTNULL bank,
73 conf_object_t *connection,
76 after_write_callback_t after_write,
77 lang_void *user_data) {
78 return adapter<TBase, TInterface>(bank)->register_after_write(
79 connection, offset, size, after_write, user_data);
83 bank_callback_handle_t callback) {
84 adapter<TBase, TInterface>(bank)->remove_callback(callback);
88 conf_object_t *NOTNULL connection) {
89 adapter<TBase, TInterface>(bank)->remove_connection_callbacks(
93 conf_object_t *NOTNULL connection) {
94 adapter<TBase, TInterface>(bank)->enable_connection_callbacks(
98 conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection) {
99 adapter<TBase, TInterface>(bank)->disable_connection_callbacks(
104 std::vector<std::string> description(conf_object_t *obj,
106 return descriptionBase<TBase, TInterface>(obj, type);
108 bank_instrumentation_subscribe_interface_t init_iface() {
109 bank_instrumentation_subscribe_interface_t iface = {};
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
Definition: bank_instrumentation_subscribe_simics_adapter.h:34
static bank_callback_handle_t register_after_read(conf_object_t *NOTNULL bank, conf_object_t *connection, ::uint64 offset, ::uint64 size, after_read_callback_t after_read, lang_void *user_data)
Definition: bank_instrumentation_subscribe_simics_adapter.h:51
static bank_callback_handle_t register_before_write(conf_object_t *NOTNULL bank, conf_object_t *connection, ::uint64 offset, ::uint64 size, before_write_callback_t before_write, lang_void *user_data)
Definition: bank_instrumentation_subscribe_simics_adapter.h:61
static void remove_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:87
static bank_callback_handle_t register_after_write(conf_object_t *NOTNULL bank, conf_object_t *connection, ::uint64 offset, ::uint64 size, after_write_callback_t after_write, lang_void *user_data)
Definition: bank_instrumentation_subscribe_simics_adapter.h:71
BankInstrumentationSubscribeSimicsAdapter()
Definition: bank_instrumentation_subscribe_simics_adapter.h:36
static void enable_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:92
static void remove_callback(conf_object_t *NOTNULL bank, bank_callback_handle_t callback)
Definition: bank_instrumentation_subscribe_simics_adapter.h:82
static void disable_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:97
static bank_callback_handle_t register_before_read(conf_object_t *NOTNULL bank, conf_object_t *connection, ::uint64 offset, ::uint64 size, before_read_callback_t before_read, lang_void *user_data)
Definition: bank_instrumentation_subscribe_simics_adapter.h:41
DescriptionType
Definition: description_interface.h:25
Definition: pci_bus_interface.h:24