This patch adds global variables, defines, functions declarations, and function stubs for deterministic VM replay used by external modules.
Signed-off-by: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> --- Makefile.target | 1 + replay/Makefile.objs | 1 + replay/replay.c | 19 +++++++++++++++++++ replay/replay.h | 32 ++++++++++++++++++++++++++++++++ stubs/Makefile.objs | 1 + stubs/replay.c | 9 +++++++++ 6 files changed, 63 insertions(+), 0 deletions(-) create mode 100755 replay/Makefile.objs create mode 100755 replay/replay.c create mode 100755 replay/replay.h create mode 100755 stubs/replay.c diff --git a/Makefile.target b/Makefile.target index 137d0b0..9830313 100644 --- a/Makefile.target +++ b/Makefile.target @@ -76,6 +76,7 @@ all: $(PROGS) stap ######################################################### # cpu emulator library obj-y = exec.o translate-all.o cpu-exec.o +obj-y += replay/ obj-y += tcg/tcg.o tcg/optimize.o obj-$(CONFIG_TCG_INTERPRETER) += tci.o obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o diff --git a/replay/Makefile.objs b/replay/Makefile.objs new file mode 100755 index 0000000..7ea860f --- /dev/null +++ b/replay/Makefile.objs @@ -0,0 +1 @@ +obj-y += replay.o diff --git a/replay/replay.c b/replay/replay.c new file mode 100755 index 0000000..5a69465 --- /dev/null +++ b/replay/replay.c @@ -0,0 +1,19 @@ +/* + * replay.c + * + * Copyright (c) 2010-2014 Institute for System Programming + * of the Russian Academy of Sciences. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#include "replay.h" + +int replay_mode = REPLAY_NONE; +/*! Stores current submode for PLAY mode */ +int play_submode = REPLAY_PLAY_UNKNOWN; + +/* Suffix for the disk images filenames */ +char *replay_image_suffix; diff --git a/replay/replay.h b/replay/replay.h new file mode 100755 index 0000000..a883aa4 --- /dev/null +++ b/replay/replay.h @@ -0,0 +1,32 @@ +#ifndef REPLAY_H +#define REPLAY_H + +/* + * replay.h + * + * Copyright (c) 2010-2014 Institute for System Programming + * of the Russian Academy of Sciences. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +/* replay modes */ +#define REPLAY_NONE 0 +#define REPLAY_SAVE 1 +#define REPLAY_PLAY 2 +/* replay submodes */ +#define REPLAY_PLAY_UNKNOWN 0 +/* Normal log replaying */ +#define REPLAY_PLAY_NORMAL 1 + +extern int replay_mode; +extern char *replay_image_suffix; +/*! Shift value for icount based on replay or zero, if it is disabled. */ +extern int replay_icount; + +/*! Returns replay play submode */ +int replay_get_play_submode(void); + +#endif diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 528e161..b90c60a 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -26,6 +26,7 @@ stub-obj-y += notify-event.o stub-obj-y += pci-drive-hot-add.o stub-obj-$(CONFIG_SPICE) += qemu-chr-open-spice.o stub-obj-y += qtest.o +stub-obj-y += replay.o stub-obj-y += reset.o stub-obj-y += runstate-check.o stub-obj-y += set-fd-handler.o diff --git a/stubs/replay.c b/stubs/replay.c new file mode 100755 index 0000000..1e99ca4 --- /dev/null +++ b/stubs/replay.c @@ -0,0 +1,9 @@ +#include "replay/replay.h" + +int replay_mode; +int replay_icount; + +int replay_get_play_submode(void) +{ + return 0; +}