14#ifndef SIMICS_SYSTEMC_SYSTEMC2SIMICS_GASKET_H
15#define SIMICS_SYSTEMC_SYSTEMC2SIMICS_GASKET_H
25#if INTC_EXT && USE_SIMICS_CHECKPOINTING
26#include <systemc-checkpoint/serialization/sc_signal.h>
27#include <systemc-checkpoint/serialization/serializer.h>
28#include <systemc-checkpoint/serialization/smd.h>
33namespace systemc2simics {
38 ,
public sc_core::sc_module {
46 bool initial_value =
false);
48 sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> *
signal()
override {
62 void call_iface(
bool value);
64 sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> signal_;
67 bool initial_value_{
false};
70#if INTC_EXT && USE_SIMICS_CHECKPOINTING
71class GasketSerializable :
public GasketBase {
73 GasketSerializable(sc_core::sc_module_name,
75 bool initial_value =
false);
77 friend class cci::serialization::access;
78 template <
class Archive>
79 void serialize(Archive &ar,
const unsigned int version) {
82 static sc_checkpoint::serialization::Serializer<
83 GasketSerializable> gasket_serializer;
85using Gasket = GasketSerializable;
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:30
Definition: null_simulation.h:26
Definition: registry.h:86
Gasket for translating a SystemC sc_signal of type bool into a Simics signal interface call.
Definition: gasket.h:38
GasketBase(sc_core::sc_module_name, simics::systemc::InterfaceProvider *provider, bool initial_value=false)
std::string gasket_name() const override
Definition: gasket.h:51
void end_of_elaboration() override
sc_core::sc_signal< bool, sc_core::SC_MANY_WRITERS > * signal() override
Definition: gasket.h:48
const InterfaceProvider * interface_provider() const override
Definition: gasket.h:54
SC_HAS_PROCESS(GasketBase)
GasketBase Gasket
Definition: gasket.h:87