diff options
author | Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> | 2016-03-14 10:44:36 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-03-15 18:23:40 +0100 |
commit | 33577b47c64435fcc2a1bc01c7e82534256f1fc3 (patch) | |
tree | 232204ccccc783d694b70e70d366e20a14a286ee /stubs/replay.c | |
parent | 39c350ee12e733070e63d64a21bd42607366ea99 (diff) |
replay: character devices
This patch implements record and replay of character devices.
It records chardevs communication in replay mode. Recorded information
include data read from backend and counter of bytes written
from frontend to backend to preserve frontend internal state.
If character device was configured through the command line in record mode,
then in replay mode it should be also added to command line. Backend of
the character device could be changed in replay mode.
Replaying of devices that perform ioctl and get_msgfd operations is not
supported.
gdbstub which also acts as a backend is not recorded to allow controlling
the replaying through gdb. Monitor backends are also not recorded.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-Id: <20160314074436.4980.83856.stgit@PASHA-ISP>
[Add stubs. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'stubs/replay.c')
-rw-r--r-- | stubs/replay.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/stubs/replay.c b/stubs/replay.c index 00ca01f55a..2f1a6dc62e 100644 --- a/stubs/replay.c +++ b/stubs/replay.c @@ -29,3 +29,37 @@ bool replay_events_enabled(void) void replay_finish(void) { } + +void replay_register_char_driver(CharDriverState *chr) +{ +} + +void replay_chr_be_write(CharDriverState *s, uint8_t *buf, int len) +{ + abort(); +} + +void replay_char_write_event_save(int res, int offset) +{ + abort(); +} + +void replay_char_write_event_load(int *res, int *offset) +{ + abort(); +} + +int replay_char_read_all_load(uint8_t *buf) +{ + abort(); +} + +void replay_char_read_all_save_error(int res) +{ + abort(); +} + +void replay_char_read_all_save_buf(uint8_t *buf, int offset) +{ + abort(); +} |