From: Jan Kiszka <jan.kiszka@siemens.com>
To: Pavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>
Cc: 'qemu-devel' <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] Save/load PC speaker internal state
Date: Mon, 27 Aug 2012 19:27:13 +0200 [thread overview]
Message-ID: <503BADF1.7000200@siemens.com> (raw)
In-Reply-To: <36635.9908286997$1346070105@news.gmane.org>
On 2012-08-27 14:21, Pavel Dovgaluk wrote:
> 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.
>
> Signed-off-by: Pavel Dovgalyuk<pavel.dovgaluk@gmail.com>
> ---
> hw/pcspk.c | 18 ++++++++++++++++++
> 1 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/hw/pcspk.c b/hw/pcspk.c
> index e430324..3fb3dd1 100644
> --- a/hw/pcspk.c
> +++ b/hw/pcspk.c
> @@ -159,10 +159,28 @@ 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_ARRAY(sample_buf, PCSpkState, PCSPK_BUF_LEN),
Can be regenerated on load.
> + VMSTATE_UINT32(pit_count, PCSpkState),
> + VMSTATE_UINT32(samples, PCSpkState),
Same here.
> + VMSTATE_UINT32(play_pos, PCSpkState),
> + VMSTATE_INT32(data_on, PCSpkState),
> + VMSTATE_INT32(dummy_refresh_clock, PCSpkState),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> static int pcspk_initfn(ISADevice *dev)
> {
> PCSpkState *s = DO_UPCAST(PCSpkState, dev, dev);
>
> + vmstate_register(NULL, 0, &vmstate_spk, s);
> +
This function is for legacy users only. You have to register the vmstate
via pcspk_class_initfn (set vmsd of the device class).
> memory_region_init_io(&s->ioport, &pcspk_io_ops, s, "elcr", 1);
> isa_register_ioport(dev, &s->ioport, s->iobase);
>
>
>
>
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
next parent reply other threads:[~2012-08-27 17:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <36635.9908286997$1346070105@news.gmane.org>
2012-08-27 17:27 ` Jan Kiszka [this message]
[not found] <503b6650.c88ddc0a.7e15.ffffb689SMTPIN_ADDED@mx.google.com>
2012-08-27 12:49 ` [Qemu-devel] [PATCH] Save/load PC speaker internal state Peter Maydell
2012-08-28 7:01 ` Pavel Dovgaluk
2012-08-27 12:21 Pavel Dovgaluk
2012-08-27 16:39 ` Andreas Färber
2012-08-28 11:23 ` Juan Quintela
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=503BADF1.7000200@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=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.