On 05/30/2017 06:11 AM, Juan Quintela wrote: > Vladislav Yasevich <vyase...@redhat.com> wrote: >> Add a qmp command that can trigger guest announcements. >> >> Based on work of Germano Veit Michel <germ...@redhat.com> >> >> Signed-off-by: Vladislav Yasevich <vyase...@redhat.com> >> --- >> migration/savevm.c | 14 ++++++++++++++ >> qapi-schema.json | 19 +++++++++++++++++++ >> 2 files changed, 33 insertions(+) >> >> diff --git a/migration/savevm.c b/migration/savevm.c >> index a4097c9..b55ce6a 100644 >> --- a/migration/savevm.c >> +++ b/migration/savevm.c >> @@ -265,6 +265,20 @@ void qemu_announce_self(AnnounceParameters *params) >> qemu_announce_self_once(timer); >> } >> >> +void qmp_announce_self(bool has_params, AnnounceParameters *params, >> + Error **errp) >> +{ >> + AnnounceParameters announce_params; >> + >> + memcpy(&announce_params, qemu_get_announce_params(), >> + sizeof(announce_params)); >> + >> + if (has_params) >> + qemu_set_announce_parameters(&announce_params, params); >> + >> + qemu_announce_self(&announce_params); > > Are I missreading qemu_annouce_self()? > My reading is that it passes announce_params to a timer (i.e. async > function), but here announce_params is a local variable here, no? >
The AnnounceTimer holds a copy since each timer may have it's own values. Thanks -vlad