Hi On Wed, Oct 29, 2025 at 5:51 PM Philippe Mathieu-Daudé <[email protected]> wrote: > > On 27/10/25 16:10, [email protected] wrote: > > From: Marc-André Lureau <[email protected]> > > > > Proper lifecycle management with QOM state. > > > > Signed-off-by: Marc-André Lureau <[email protected]> > > --- > > audio/audio.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/audio/audio.c b/audio/audio.c > > index 4c3c3fd52f..853930bb48 100644 > > --- a/audio/audio.c > > +++ b/audio/audio.c > > @@ -1614,6 +1614,8 @@ static void audio_vm_change_state_handler (void > > *opaque, bool running, > > audio_reset_timer (s); > > } > > > > +static const VMStateDescription vmstate_audio; > > + > > static void audio_state_init(Object *obj) > > { > > AudioState *s = AUDIO_STATE(obj); > > @@ -1625,6 +1627,8 @@ static void audio_state_init(Object *obj) > > > > s->vmse = > > qemu_add_vm_change_state_handler(audio_vm_change_state_handler, s); > > assert(s->vmse != NULL); > > + > > + vmstate_register_any(NULL, &vmstate_audio, s); > > Please avoid legacy APIs: > > /** > * vmstate_register_any() - legacy function to register state > * serialisation description and let the function choose the id > * > * New code shouldn't be using this function as QOM-ified devices have > * dc->vmsd to store the serialisation description. > * > * Returns: 0 on success, -1 on failure > */ >
qdev/Device have vmsd, but not plain Object (or legacy code without object). -- Marc-André Lureau
