16#ifndef SIMICS_SYSTEMC_CHECKPOINT_H
17#define SIMICS_SYSTEMC_CHECKPOINT_H
23#if INTC_EXT && USE_SIMICS_CHECKPOINTING
24#include <systemc-checkpoint/time_information_interface.h>
39 return std::vector<std::string>();
44#if INTC_EXT && USE_SIMICS_CHECKPOINTING
46class CheckpointControl;
48class Checkpoint :
public iface::CheckpointInterface,
49 public iface::TemporalStateInterface,
50 public sc_checkpoint::ExternalTimeInformationInterface {
52 explicit Checkpoint(iface::SimulationInterface *simulation);
53 Checkpoint(
const Checkpoint&) =
delete;
54 Checkpoint &operator=(
const Checkpoint&) =
delete;
55 virtual ~Checkpoint();
58 virtual void save(
const char *path);
59 virtual void finish(
int success);
60 virtual int has_persistent_data();
63 virtual lang_void *save();
64 virtual void merge(lang_void *prev, lang_void *killed);
65 virtual void prepare_restore();
66 virtual void finish_restore(lang_void *state);
69 virtual void set_time_information(int64_t high, uint64_t low);
70 virtual void time_information(int64_t *high, uint64_t *low);
72 std::vector<std::string> systemcState()
const;
73 void setSystemcState(
const std::vector<std::string> &checkpoints);
75 void readCheckpointFromDisk();
78 void initializeCheckpoint(CheckpointControl *control);
81 iface::SimulationInterface *simulation_;
82 CheckpointControl *control_;
84 std::vector<std::string> checkpoints_;
Definition: checkpoint.h:34
virtual ~CheckpointStub()
Definition: checkpoint.h:37
std::vector< std::string > systemcState() const
Definition: checkpoint.h:38
void setSystemcState(const std::vector< std::string > &checkpoints)
Definition: checkpoint.h:41
CheckpointStub()
Definition: checkpoint.h:36
Definition: pci_bus_interface.h:24