Hi, The following patch series implement a Spice block device, which allows the client to redirect a block device using the NBD protocol, which greatly simplifies the Spice code by reusing an existing protocol, and allows sharing existing qemu NBD implementation. This block device driver is a bit special, since it is successfully initialized with size 0, and once the client is connected (or want to change block device) it re-opens itself. For this to work, we allow a block driver to be open with an existing opaque data. The backend only support read-only device atm (although it shouldn't be hard to add write support if necessary). Migration hasn't been tested yet. Usage with a CDROM drive: -device ide-cd,drive=cd -drive if=none,id=cd,readonly,file=spicebd: The associated server and client bits are: http://lists.freedesktop.org/archives/spice-devel/2013-June/013608.html http://lists.freedesktop.org/archives/spice-devel/2013-June/013609.html http://lists.freedesktop.org/archives/spice-devel/2013-June/013610.html Marc-André Lureau (12): include: add missing config-host.h include char: add qemu_chr_fe_event() nbd: don't change socket block during negotiate Split nbd block client code nbd: pass export name as init argument nbd: make session_close() idempotent block: save the associated child in BlockDriverState block: extract make_snapshot() from bdrv_open() block: add "snapshot.size" option to avoid extra bdrv_open() block: learn to open a driver with a given opaque block: allow to call bdrv_open() with an opaque block: add spice block device backend block.c | 191 ++++++++++------- block/Makefile.objs | 3 +- block/nbd-client.c | 391 ++++++++++++++++++++++++++++++++++ block/nbd-client.h | 51 +++++ block/nbd.c | 394 ++++------------------------------ block/spice.c | 523 ++++++++++++++++++++++++++++++++++++++++++++++ include/block/block_int.h | 1 + include/sysemu/char.h | 10 + include/ui/qemu-spice.h | 2 + nbd.c | 1 - qemu-char.c | 7 + spice-qemu-char.c | 10 + 12 files changed, 1151 insertions(+), 433 deletions(-) create mode 100644 block/nbd-client.c create mode 100644 block/nbd-client.h create mode 100644 block/spice.c -- 1.8.3.rc1.49.g8d97506 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel