14#ifndef SIMICS_SYSTEMC_IFACE_REGISTER_VIEW_SIMICS_ADAPTER_H
15#define SIMICS_SYSTEMC_IFACE_REGISTER_VIEW_SIMICS_ADAPTER_H
17#include <simics/model-iface/register-view.h>
29template<
typename TBase,
30 typename TInterface = RegisterViewInterface>
36 REGISTER_VIEW_INTERFACE, init_iface()) {
41 return adapter<TBase, TInterface>(obj)->description();
44 return adapter<TBase, TInterface>(obj)->big_endian_bitorder();
47 return adapter<TBase, TInterface>(obj)->number_of_registers();
50 return adapter<TBase, TInterface>(obj)->register_info(reg);
53 return adapter<TBase, TInterface>(obj)->get_register_value(reg);
57 adapter<TBase, TInterface>(obj)->set_register_value(reg, val);
61 std::vector<std::string>
description(conf_object_t *obj,
63 return descriptionBase<TBase, TInterface>(obj, type);
65 register_view_interface_t init_iface() {
66 register_view_interface_t iface = {};
Definition: register_view_simics_adapter.h:32
RegisterViewSimicsAdapter()
Definition: register_view_simics_adapter.h:34
::uint64 get_register_value(conf_object_t *obj, unsigned reg)
Definition: register_view_simics_adapter.h:52
static const char * description(conf_object_t *obj)
Definition: register_view_simics_adapter.h:40
static attr_value_t register_info(conf_object_t *obj, unsigned reg)
Definition: register_view_simics_adapter.h:49
static unsigned number_of_registers(conf_object_t *obj)
Definition: register_view_simics_adapter.h:46
static bool big_endian_bitorder(conf_object_t *obj)
Definition: register_view_simics_adapter.h:43
static void set_register_value(conf_object_t *obj, unsigned reg, ::uint64 val)
Definition: register_view_simics_adapter.h:55
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:45
DescriptionType
Definition: description_interface.h:23