[libvirt] [PATCH 12/14] Switch over to passing a callback table to QEMU monitor
Matthias Bolte
matthias.bolte at googlemail.com
Wed Dec 2 23:51:36 UTC 2009
2009/11/26 Daniel P. Berrange <berrange at redhat.com>:
> With addition of events there will be alot of callbacks.
> To avoid having to add many APIs to register callbacks,
> provide them all at once in a big table
>
> * src/qemu/qemu_driver.c: Pass in a callback table to QEMU
> monitor code
> * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h Replace
> the EOF and disk secret callbacks with a callback table
> ---
[...]
> diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
> index 0d9e315..7aa6ee5 100644
> --- a/src/qemu/qemu_monitor.h
> +++ b/src/qemu/qemu_monitor.h
> @@ -59,21 +59,25 @@ struct _qemuMonitorMessage {
> void *passwordOpaque;
> };
>
> -typedef void (*qemuMonitorEOFNotify)(qemuMonitorPtr mon,
> - virDomainObjPtr vm,
> - int withError);
> -
> -/* XXX we'd really like to avoid virCOnnectPtr here
> - * It is required so the callback can find the active
> - * secret driver. Need to change this to work like the
> - * security drivers do, to avoid this
> - */
> -typedef int (*qemuMonitorDiskSecretLookup)(qemuMonitorPtr mon,
> - virConnectPtr conn,
> - virDomainObjPtr vm,
> - const char *path,
> - char **secret,
> - size_t *secretLen);
> +typedef struct _qemuMonitorCallbacks qemuMonitorCallbacks;
> +typedef qemuMonitorCallbacks *qemuMonitorCallbacksPtr;
> +struct _qemuMonitorCallbacks {
> + void (*eofNotify)(qemuMonitorPtr mon,
> + virDomainObjPtr vm,
> + int withError);
> + /* XXX we'd really like to avoid virCOnnectPtr here
s/virCOnnectPtr/virConnectPtr/
> + * It is required so the callback can find the active
> + * secret driver. Need to change this to work like the
> + * security drivers do, to avoid this
> + */
> + int (*diskSecretLookup)(qemuMonitorPtr mon,
> + virConnectPtr conn,
> + virDomainObjPtr vm,
> + const char *path,
> + char **secret,
> + size_t *secretLen);
> +};
> +
>
> char *qemuMonitorEscapeArg(const char *in);
> char *qemuMonitorEscapeShell(const char *in);
ACK.
Matthias
More information about the libvir-list
mailing list