16#ifndef SIMICS_SYSTEMC_IFACE_CONCURRENCY_GROUP_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_CONCURRENCY_GROUP_SIMICS_ADAPTER_H
19#include <simics/model-iface/concurrency.h>
22#include <simics/attribute-traits.h>
32template<
typename TBase,
typename TInterface = ConcurrencyGroupInterface>
38 CONCURRENCY_GROUP_INTERFACE, init_iface()) {}
42 unsigned group_index) {
43 std::vector<conf_object_t *> v = adapter<TBase, TInterface>(
44 obj)->serialized_memory_group(group_index);
45 return vectorToList(v);
48 unsigned group_index) {
49 std::vector<conf_object_t *> v = adapter<TBase, TInterface>(
50 obj)->execution_group(group_index);
51 return vectorToList(v);
55 static attr_value_t vectorToList(
const std::vector<conf_object_t *> &v) {
57 return SIM_make_attr_nil();
58 return simics::std_to_attr(
59 std::vector<simics::ConfObjectRef>(v.begin(), v.end()));
61 std::vector<std::string> description(conf_object_t *obj,
63 return descriptionBase<TBase, TInterface>(obj, type);
65 concurrency_group_interface_t init_iface() {
66 concurrency_group_interface_t iface = {};
Adapter for concurrency mode interface.
Definition: concurrency_group_simics_adapter.h:34
static attr_value_t execution_group(conf_object_t *NOTNULL obj, unsigned group_index)
Definition: concurrency_group_simics_adapter.h:47
ConcurrencyGroupSimicsAdapter()
Definition: concurrency_group_simics_adapter.h:36
static attr_value_t serialized_memory_group(conf_object_t *NOTNULL obj, unsigned group_index)
Definition: concurrency_group_simics_adapter.h:41
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
DescriptionType
Definition: description_interface.h:25