14#ifndef SIMICS_SYSTEMC_IFACE_INSTRUMENTATION_BANK_INSTRUMENTATION_SUBSCRIBE_SIMICS_ADAPTER_H
15#define SIMICS_SYSTEMC_IFACE_INSTRUMENTATION_BANK_INSTRUMENTATION_SUBSCRIBE_SIMICS_ADAPTER_H
17#include <simics/model-iface/bank-instrumentation.h>
27namespace instrumentation {
29template<
typename TBase,
30 typename TInterface = BankInstrumentationSubscribeInterface>
32 :
public SimicsAdapter<bank_instrumentation_subscribe_interface_t> {
36 BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE, init_iface()) {
40 conf_object_t *NOTNULL bank,
41 conf_object_t *connection,
44 before_read_callback_t before_read,
45 lang_void *user_data) {
46 return adapter<TBase, TInterface>(bank)->register_before_read(
47 connection, offset, size, before_read, user_data);
50 conf_object_t *NOTNULL bank,
51 conf_object_t *connection,
54 after_read_callback_t after_read,
55 lang_void *user_data) {
56 return adapter<TBase, TInterface>(bank)->register_after_read(
57 connection, offset, size, after_read, user_data);
60 conf_object_t *NOTNULL bank,
61 conf_object_t *connection,
64 before_write_callback_t before_write,
65 lang_void *user_data) {
66 return adapter<TBase, TInterface>(bank)->register_before_write(
67 connection, offset, size, before_write, user_data);
70 conf_object_t *NOTNULL bank,
71 conf_object_t *connection,
74 after_write_callback_t after_write,
75 lang_void *user_data) {
76 return adapter<TBase, TInterface>(bank)->register_after_write(
77 connection, offset, size, after_write, user_data);
81 bank_callback_handle_t callback) {
82 adapter<TBase, TInterface>(bank)->remove_callback(callback);
86 conf_object_t *NOTNULL connection) {
87 adapter<TBase, TInterface>(bank)->remove_connection_callbacks(
91 conf_object_t *NOTNULL connection) {
92 adapter<TBase, TInterface>(bank)->enable_connection_callbacks(
96 conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection) {
97 adapter<TBase, TInterface>(bank)->disable_connection_callbacks(
102 std::vector<std::string> description(conf_object_t *obj,
104 return descriptionBase<TBase, TInterface>(obj, type);
106 bank_instrumentation_subscribe_interface_t init_iface() {
107 bank_instrumentation_subscribe_interface_t iface = {};
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:45
Definition: bank_instrumentation_subscribe_simics_adapter.h:32
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:49
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:59
static void remove_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:85
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:69
BankInstrumentationSubscribeSimicsAdapter()
Definition: bank_instrumentation_subscribe_simics_adapter.h:34
static void enable_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:90
static void remove_callback(conf_object_t *NOTNULL bank, bank_callback_handle_t callback)
Definition: bank_instrumentation_subscribe_simics_adapter.h:80
static void disable_connection_callbacks(conf_object_t *NOTNULL bank, conf_object_t *NOTNULL connection)
Definition: bank_instrumentation_subscribe_simics_adapter.h:95
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:39
DescriptionType
Definition: description_interface.h:23