From: "Pavel Dovgaluk" <Pavel.Dovgaluk@ispras.ru>
To: 'qemu-devel' <qemu-devel@nongnu.org>
Subject: [Qemu-devel] [PATCH] Save/load PC speaker internal state (v2)
Date: Tue, 28 Aug 2012 10:58:49 +0400 [thread overview]
Message-ID: <002701cd84ea$93644c50$ba2ce4f0$@Dovgaluk@ispras.ru> (raw)
Save PC speaker state to remove differences between system
states after saving the snapshot and after loading it again.
This patch is needed for deterministic replay of the execution.
v2: Do not save the data that cannot affect the guest code behavior.
Signed-off-by: Pavel Dovgalyuk<pavel.dovgaluk@gmail.com>
---
hw/pcspk.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/hw/pcspk.c b/hw/pcspk.c
index e430324..07a3de0 100644
--- a/hw/pcspk.c
+++ b/hw/pcspk.c
@@ -46,8 +46,8 @@ typedef struct {
unsigned int pit_count;
unsigned int samples;
unsigned int play_pos;
- int data_on;
- int dummy_refresh_clock;
+ uint8_t data_on;
+ uint8_t dummy_refresh_clock;
} PCSpkState;
static const char *s_spk = "pcspk";
@@ -159,6 +159,18 @@ static const MemoryRegionOps pcspk_io_ops = {
},
};
+static const VMStateDescription vmstate_spk = {
+ .name = "pcspk",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT8(data_on, PCSpkState),
+ VMSTATE_UINT8(dummy_refresh_clock, PCSpkState),
+ VMSTATE_END_OF_LIST()
+ }
+};
+
static int pcspk_initfn(ISADevice *dev)
{
PCSpkState *s = DO_UPCAST(PCSpkState, dev, dev);
@@ -185,6 +197,7 @@ static void pcspk_class_initfn(ObjectClass *klass, void *data)
ic->init = pcspk_initfn;
dc->no_user = 1;
dc->props = pcspk_properties;
+ dc->vmsd = &vmstate_spk;
}
static TypeInfo pcspk_info = {
next reply other threads:[~2012-08-28 6:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-28 6:58 Pavel Dovgaluk [this message]
[not found] <48961.0236989849$1346137146@news.gmane.org>
2012-08-28 7:12 ` [Qemu-devel] [PATCH] Save/load PC speaker internal state (v2) Jan Kiszka
2012-08-29 7:05 ` Pavel Dovgaluk
2012-08-29 8:57 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='002701cd84ea$93644c50$ba2ce4f0$@Dovgaluk@ispras.ru' \
--to=pavel.dovgaluk@ispras.ru \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.