pcspk: adding vmstate for save/restore
VMState added by this patch preserves correct loading of the PC speaker device state. Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Message-Id: <20160915090133.6440.65457.stgit@PASHA-ISP> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
46f5feaa0a
commit
39c88f5697
@ -52,8 +52,8 @@ typedef struct {
|
|||||||
unsigned int pit_count;
|
unsigned int pit_count;
|
||||||
unsigned int samples;
|
unsigned int samples;
|
||||||
unsigned int play_pos;
|
unsigned int play_pos;
|
||||||
int data_on;
|
uint8_t data_on;
|
||||||
int dummy_refresh_clock;
|
uint8_t dummy_refresh_clock;
|
||||||
} PCSpkState;
|
} PCSpkState;
|
||||||
|
|
||||||
static const char *s_spk = "pcspk";
|
static const char *s_spk = "pcspk";
|
||||||
@ -187,6 +187,18 @@ static void pcspk_realizefn(DeviceState *dev, Error **errp)
|
|||||||
pcspk_state = s;
|
pcspk_state = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 Property pcspk_properties[] = {
|
static Property pcspk_properties[] = {
|
||||||
DEFINE_PROP_UINT32("iobase", PCSpkState, iobase, -1),
|
DEFINE_PROP_UINT32("iobase", PCSpkState, iobase, -1),
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
@ -198,6 +210,7 @@ static void pcspk_class_initfn(ObjectClass *klass, void *data)
|
|||||||
|
|
||||||
dc->realize = pcspk_realizefn;
|
dc->realize = pcspk_realizefn;
|
||||||
set_bit(DEVICE_CATEGORY_SOUND, dc->categories);
|
set_bit(DEVICE_CATEGORY_SOUND, dc->categories);
|
||||||
|
dc->vmsd = &vmstate_spk;
|
||||||
dc->props = pcspk_properties;
|
dc->props = pcspk_properties;
|
||||||
/* Reason: realize sets global pcspk_state */
|
/* Reason: realize sets global pcspk_state */
|
||||||
dc->cannot_instantiate_with_device_add_yet = true;
|
dc->cannot_instantiate_with_device_add_yet = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user