16#ifndef SIMICS_BANK_INSTRUMENTATION_SUBSCRIBE_CONNECTION_H
17#define SIMICS_BANK_INSTRUMENTATION_SUBSCRIBE_CONNECTION_H
20#include <simics/c++/model-iface/bank-instrumentation.h>
21#include <simics/c++/model-iface/instrumentation-provider.h>
42 :
public iface::BankInstrumentationSubscribeInterface,
43 public iface::InstrumentationOrderInterface,
48 after_read_callback_t cb;
54 after_write_callback_t cb;
60 before_read_callback_t cb;
66 before_write_callback_t cb;
69 typedef std::map<bank_callback_handle_t, AfterRead> ar_map;
70 typedef std::map<bank_callback_handle_t, AfterWrite> aw_map;
71 typedef std::map<bank_callback_handle_t, BeforeRead> br_map;
72 typedef std::map<bank_callback_handle_t, BeforeWrite> bw_map;
73 typedef std::tuple<bool, ar_map, aw_map, br_map, bw_map> cb_tuple;
74 typedef std::pair<conf_object_t *, cb_tuple> conf_obj_cb_pair;
75 typedef std::vector<conf_obj_cb_pair>::iterator vect_iter;
84 after_read_callback_t after_read, lang_void *user_data)
override;
87 after_write_callback_t after_write, lang_void *user_data)
override;
90 before_read_callback_t before_read, lang_void *user_data)
override;
93 before_write_callback_t before_write,
94 lang_void *user_data)
override;
118 bank_after_read_interface_t ar_iface_;
119 bank_after_write_interface_t aw_iface_;
120 bank_before_read_interface_t br_iface_;
121 bank_before_write_interface_t bw_iface_;
123 bank_callback_handle_t handle_ {0};
124 std::vector<conf_obj_cb_pair> connection_callbacks_;
struct conf_object conf_object_t
Definition: bank-issue-callbacks-interface.h:23
Definition: bank-instrumentation-subscribe-connection.h:44
bank_callback_handle_t register_after_write(conf_object_t *connection, uint64 offset, uint64 size, after_write_callback_t after_write, lang_void *user_data) override
void remove_callback(bank_callback_handle_t callback) override
bank_callback_handle_t register_before_write(conf_object_t *connection, uint64 offset, uint64 size, before_write_callback_t before_write, lang_void *user_data) override
bank_callback_handle_t register_before_read(conf_object_t *connection, uint64 offset, uint64 size, before_read_callback_t before_read, lang_void *user_data) override
void remove_connection_callbacks(conf_object_t *connection) override
void disable_connection_callbacks(conf_object_t *connection) override
virtual ~BankInstrumentationSubscribeConnection()=default
BankInstrumentationSubscribeConnection()
void enable_connection_callbacks(conf_object_t *connection) override
unsigned int number_of_callbacks() const
void issue_callbacks(BankAccess *access, CallbackType type) const override
attr_value_t get_connections() override
bank_callback_handle_t register_after_read(conf_object_t *connection, uint64 offset, uint64 size, after_read_callback_t after_read, lang_void *user_data) override
bool move_before(conf_object_t *connection, conf_object_t *before) override
Definition: bank-issue-callbacks-interface.h:31
Definition: attr-value.h:23
CallbackType
Definition: bank-issue-callbacks-interface.h:29
Definition: bank-access.h:43