16#ifndef SIMICS_SYSTEMC_SYSTEMC2SIMICS_GASKET_H
17#define SIMICS_SYSTEMC_SYSTEMC2SIMICS_GASKET_H
27#if INTC_EXT && USE_SIMICS_CHECKPOINTING
28#include <systemc-checkpoint/serialization/sc_signal.h>
29#include <systemc-checkpoint/serialization/serializer.h>
30#include <systemc-checkpoint/serialization/smd.h>
35namespace systemc2simics {
40 ,
public sc_core::sc_module {
48 bool initial_value =
false);
50 sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> *
signal()
override {
64 void call_iface(
bool value);
66 sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> signal_;
69 bool initial_value_{
false};
72#if INTC_EXT && USE_SIMICS_CHECKPOINTING
73class GasketSerializable :
public GasketBase {
75 GasketSerializable(sc_core::sc_module_name,
77 bool initial_value =
false);
79 friend class cci::serialization::access;
80 template <
class Archive>
81 void serialize(Archive &ar,
const unsigned int version) {
84 static sc_checkpoint::serialization::Serializer<
85 GasketSerializable> gasket_serializer;
87using Gasket = GasketSerializable;
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:32
Definition: null_simulation.h:28
Definition: registry.h:89
Gasket for translating a SystemC sc_signal of type bool into a Simics signal interface call.
Definition: gasket.h:40
GasketBase(sc_core::sc_module_name, simics::systemc::InterfaceProvider *provider, bool initial_value=false)
std::string gasket_name() const override
Definition: gasket.h:53
void end_of_elaboration() override
sc_core::sc_signal< bool, sc_core::SC_MANY_WRITERS > * signal() override
Definition: gasket.h:50
const InterfaceProvider * interface_provider() const override
Definition: gasket.h:56
SC_HAS_PROCESS(GasketBase)
GasketBase Gasket
Definition: gasket.h:89