I'm working on cleanly separating block device host and guest parts. I'd like to route all this work through Kevin's block tree. This is the first part: new option -blockdev. Description of 13/13 lists future work.
Series is based on my "Collect block device code in new blockdev.c", as amended in v2 3/3. Markus Armbruster (13): block: Move error actions from DriveInfo to BlockDriverState block: Decouple block device "commit all" from DriveInfo monitor: Make "commit FOO" complain when FOO doesn't exist block: New bdrv_next() block: Decouple savevm from DriveInfo blockdev: Give drives internal linkage blockdev: Means to destroy blockdev only if made with drive_init() qdev: Decouple qdev_prop_drive from DriveInfo blockdev: drive_get_by_id() is no longer used, remove qemu-option: New qemu_opts_reset() qemu-option: New qemu_opt_next(), qemu_opt_name() blockdev: Factor option value parsers out of drive_init() blockdev: New -blockdev to define a host block device block.c | 29 ++++ block.h | 10 ++ block_int.h | 7 +- blockdev.c | 355 +++++++++++++++++++++++++++++++++++++------------- blockdev.h | 22 ++-- hw/fdc.c | 22 ++-- hw/ide/core.c | 16 +- hw/ide/internal.h | 2 +- hw/ide/qdev.c | 8 +- hw/pci-hotplug.c | 4 +- hw/qdev-properties.c | 39 +++++- hw/qdev.h | 6 +- hw/s390-virtio.c | 2 +- hw/scsi-bus.c | 8 +- hw/scsi-disk.c | 18 ++-- hw/scsi-generic.c | 5 +- hw/scsi.h | 2 +- hw/usb-msd.c | 10 +- hw/virtio-blk.c | 5 +- hw/virtio-pci.c | 12 +-- qemu-char.c | 7 +- qemu-config.c | 38 ++++++ qemu-config.h | 1 + qemu-option.c | 22 +++ qemu-option.h | 5 + qemu-options.hx | 49 +++++++ savevm.c | 32 ++--- vl.c | 29 ++++- 28 files changed, 557 insertions(+), 208 deletions(-)