On Tue, Nov 03, 2009 at 02:50:01PM -0500, Daniel P. Berrange wrote:
Change the QEMU driver to not directly invoke the text mode monitor
APIs. Instead add a generic wrapper layer, which will eventually
invoke either the text or JSON protocol code as needed. Pass an
qemuMonitorPtr object into the monitor APIs instead of virDomainObjPtr
to complete the de-coupling of the monitor impl from virDomainObj
data structures
* src/qemu/qemu_conf.h: Remove qemuDomainObjPrivate definition
* src/qemu/qemu_driver.c: Add qemuDomainObjPrivate definition.
Pass qemuMonitorPtr into all monitor APIs instead of the
virDomainObjPtr instance.
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Add thin
wrappers for all qemuMonitorXXX command APIs, calling into
qemu_monitor_text.c/h
* src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
Rename qemuMonitor -> qemuMonitorText & update to accept
qemuMonitorPtr instead of virDomainObjPtr
[...]
@@ -1192,7 +1199,7 @@ qemudInitCpus(virConnectPtr conn,
if (migrateFrom == NULL) {
/* Allow the CPUS to start executing */
- if (qemuMonitorStartCPUs(conn, vm) < 0) {
+ if (qemuMonitorStartCPUs(priv->mon, conn) < 0) {
err args are really swapped now ? I gues steh compiled would complain
loudly if this wasn't the case ...
- (qemuMonitorSetBalloon(vm, vm->def->memory) < 0)
||
+ (qemuMonitorSetBalloon(((qemuDomainObjPrivatePtr)vm->privateData)->mon,
vm->def->memory) < 0) ||
any possibility to wrap to 80 ?
if (vm->state == VIR_DOMAIN_PAUSED) {
- if (qemuMonitorStartCPUs(dom->conn, vm) < 0) {
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+ if (qemuMonitorStartCPUs(priv->mon, dom->conn) < 0) {
apparently yes swapped now ...
+
+int
+qemuMonitorStartCPUs(qemuMonitorPtr mon,
+ virConnectPtr conn)
+{
+ DEBUG("mon=%p, fd=%d", mon, mon->fd);
+
+ return qemuMonitorTextStartCPUs(mon, conn);
+}
Okay ... qemuMonitorPtr is the first arg for all those entry points
now, makes sense...
ACK a fairly long patch but mostly automatic change and the addition
of the indirection, nothing really surprizing :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/