v2: - Implement .bdrv_parse_filename() function to convert the shortuct version with a single string to the individual options. - Remove global variables and move relevant fields to ArchipelagoAIOCB struct. - Remove ArchipelagoConf struct and use the relevant fields as individual arguments. - Remove ArchipelagoCB struct and use ArchipelagoAIOCB instead. - Remove ArchipelagoThread struct and move relevant fields to ArchipelagoAIOCB instead. Now an I/O thread is spawned for per-device to handle all async I/O requests. - Remove double data copy, use qemu_iovec_from_buf() and copy data directly to the destination buffer. - Remove archipelago_aio_bh_cb() function, a full request is completed in qemu_archipelago_complete_aio() instead. - Resolve proposed changes from Kevin Wolf and miscellaneous style issues.
Chrysostomos Nanakos (1): block: Support Archipelago as a QEMU block backend MAINTAINERS | 5 + block/Makefile.objs | 1 + block/archipelago.c | 1174 +++++++++++++++++++++++++++++++++++++++++++++++++++ configure | 40 ++ 4 files changed, 1220 insertions(+) create mode 100644 block/archipelago.c -- 1.7.10.4