libvirt/src/conf
Daniel P. Berrange 1dc10a7b28 Fully asynchronous monitor I/O processing
Change the QEMU monitor file handle watch to poll for both
read & write events, as well as EOF. All I/O to/from the
QEMU monitor FD is now done in the event callback thread.

When the QEMU driver needs to send a command, it puts the
data to be sent into a qemuMonitorMessagePtr object instance,
queues it for dispatch, and then goes to sleep on a condition
variable. The event thread sends all the data, and then waits
for the reply to arrive, putting the response / error data
back into the qemuMonitorMessagePtr and notifying the condition
variable.

There is a temporary hack in the disk passphrase callback to
avoid acquiring the domain lock.  This avoids a deadlock in
the command processing, since the domain lock is still held
when running monitor commands. The next commit will remove
the locking when running commands & thus allow re-introduction
of locking the disk passphrase callback

* src/qemu/qemu_driver.c: Temporarily don't acquire lock in
  disk passphrase callback. To be reverted in next commit
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Remove
  raw I/O functions, and a generic qemuMonitorSend() for
  invoking a command
* src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
  Remove all low level I/O, and use the new qemuMonitorSend()
  API. Provide a qemuMonitorTextIOProcess() method for detecting
  command/reply/prompt boundaries in the monitor data stream
2009-11-10 13:27:18 +00:00
..
capabilities.c Take domain type into account when looking up default machine 2009-10-12 10:57:35 +01:00
capabilities.h Allow for a driver specific private data blob in virDomainObjPtr 2009-11-02 11:03:10 -05:00
domain_conf.c Fully asynchronous monitor I/O processing 2009-11-10 13:27:18 +00:00
domain_conf.h Add reference counting on virDomainObjPtr objects 2009-11-10 12:16:53 +00:00
domain_event.c Move all XML configuration handling to src/conf/ 2009-09-21 14:41:46 +01:00
domain_event.h Move all XML configuration handling to src/conf/ 2009-09-21 14:41:46 +01:00
interface_conf.c Fix improper error return in virInterfaceDefParseProtoIPvX 2009-11-03 21:04:56 +01:00
interface_conf.h Support for IPv6 / multiple addresses per interfaces 2009-11-03 21:04:56 +01:00
network_conf.c Store the range size when adding a DHCP range 2009-11-06 18:07:24 +01:00
network_conf.h Store the range size when adding a DHCP range 2009-11-06 18:07:24 +01:00
node_device_conf.c Add missing OOM error checks, reports and cleanups 2009-11-09 23:17:45 +01:00
node_device_conf.h node device: Break out get_wwns and get_parent_node helpers 2009-10-20 14:17:35 -04:00
secret_conf.c Move all XML configuration handling to src/conf/ 2009-09-21 14:41:46 +01:00
secret_conf.h Move all XML configuration handling to src/conf/ 2009-09-21 14:41:46 +01:00
storage_conf.c Various error reporting fixes 2009-11-03 16:46:54 -05:00
storage_conf.h storage: Add ParseSourceString function for use with FindPoolSources. 2009-10-28 11:30:40 -04:00
storage_encryption_conf.c storage: conf: Fix memory leak in encryption parsing 2009-11-03 16:46:54 -05:00
storage_encryption_conf.h Move all XML configuration handling to src/conf/ 2009-09-21 14:41:46 +01:00