* Gerd Hoffmann (kra...@redhat.com) wrote: > Add QemuSpiceOps struct. This struct holds function pointers to the > spice functions. It will be initialized with pointers to the stub > functions. When spice gets initialized the function pointers will > be re-written to the real functions. > > The spice stubs will move from qemu-spice.h to spice-module.c for that, > because they will be needed for both "CONFIG_SPICE=n" and "CONFIG_SPICE=y > but spice module not loaded" cases. > > This patch adds the infrastructure and starts with moving > qemu_spice_migrate_info() to QemuSpiceOps. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- > include/ui/qemu-spice-module.h | 5 +++++ > include/ui/qemu-spice.h | 5 ----- > monitor/misc.c | 2 +- > ui/spice-core.c | 5 +++++ > ui/spice-module.c | 10 ++++++++++ > 5 files changed, 21 insertions(+), 6 deletions(-) > > diff --git a/include/ui/qemu-spice-module.h b/include/ui/qemu-spice-module.h > index 1af0e659a109..7a9963dd5810 100644 > --- a/include/ui/qemu-spice-module.h > +++ b/include/ui/qemu-spice-module.h > @@ -18,6 +18,11 @@ > #ifndef QEMU_SPICE_MODULE_H > #define QEMU_SPICE_MODULE_H > > +struct QemuSpiceOps { > + int (*migrate_info)(const char *h, int p, int t, const char *s); > +}; > +
I realise that's mostly a move, but if you need to repost, can you expand those 4 single character parameter names? Dave > extern int using_spice; > +extern struct QemuSpiceOps qemu_spice; > > #endif > diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h > index ab523788b9a9..3157016c2bb4 100644 > --- a/include/ui/qemu-spice.h > +++ b/include/ui/qemu-spice.h > @@ -60,11 +60,6 @@ static inline int qemu_spice_set_pw_expire(time_t expires) > { > return -1; > } > -static inline int qemu_spice_migrate_info(const char *h, int p, int t, > - const char *s) > -{ > - return -1; > -} > > static inline int qemu_spice_display_add_client(int csock, int skipauth, > int tls) > diff --git a/monitor/misc.c b/monitor/misc.c > index 4a859fb24a21..32e6a8c13d07 100644 > --- a/monitor/misc.c > +++ b/monitor/misc.c > @@ -437,7 +437,7 @@ void qmp_client_migrate_info(const char *protocol, const > char *hostname, > return; > } > > - if (qemu_spice_migrate_info(hostname, > + if (qemu_spice.migrate_info(hostname, > has_port ? port : -1, > has_tls_port ? tls_port : -1, > cert_subject)) { > diff --git a/ui/spice-core.c b/ui/spice-core.c > index a7fa5743585f..b03d743cf9b9 100644 > --- a/ui/spice-core.c > +++ b/ui/spice-core.c > @@ -993,8 +993,13 @@ int qemu_spice_display_is_running(SimpleSpiceDisplay > *ssd) > return spice_display_is_running; > } > > +static struct QemuSpiceOps real_spice_ops = { > + .migrate_info = qemu_spice_migrate_info, > +}; > + > static void spice_register_config(void) > { > + qemu_spice = real_spice_ops; > qemu_add_opts(&qemu_spice_opts); > } > opts_init(spice_register_config); > diff --git a/ui/spice-module.c b/ui/spice-module.c > index f86b0ac517dc..f1939545a684 100644 > --- a/ui/spice-module.c > +++ b/ui/spice-module.c > @@ -21,3 +21,13 @@ > #include "ui/qemu-spice-module.h" > > int using_spice; > + > +static int qemu_spice_migrate_info_stub(const char *h, int p, int t, > + const char *s) > +{ > + return -1; > +} > + > +struct QemuSpiceOps qemu_spice = { > + .migrate_info = qemu_spice_migrate_info_stub, > +}; > -- > 2.27.0 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK