I'm sending one more version of this series. v5 didn't seem to need any huge makeovers, but I found a small bug in it so I'm hoping it hasn't been committed yet. In v5, if a user explicitly specified the driver to use, eg driver=gluster, and the driver was modularized, it was not correctly detected and qemu would exit since it could not find the driver. This series fixes that.
In addition, the two patches I sent to remove unneeded lines in the Makefile and to modularize nfs are included in this series. v6: - Fix bug so that users can specify a modularized driver on the cli without qemu exiting - Remove extra lines from Makefile - Add patch to modularize NFS v5: - No format drivers are modularized, therefore the probe functions are all being left completely untouched. - Remove dmg from block-obj-m since it is not a target of the modularization effort. - Modify module_block.py to only include the library name and protocol name fields in the generated struct. The other fields are no longer necessary for the drivers that are being modularized. v4: - Fix indentation of the generated header file module_block.h - Drivers and probe functions are now all located in the block/ directory, rather than being split between block/ and block/probe/. In addition the header files for each probe/driver pair are in the block/ directory, not the include/block/driver/ directory (which no longer exists). - Since the probe files are in block/ now, they follow the naming pattern of format-probe.c - Renamed crypto probe file to be crypto-probe.c, luks is no longer in the filename - Fixed formatting of parallels_probe() function header - Enforced consistent naming convention for the probe functions. They now follow the pattern bdrv_format_probe(). Colin Lord (3): blockdev: prepare iSCSI block driver for dynamic loading blockdev: Add dynamic module loading for block drivers blockdev: Modularize nfs block driver Marc Mari (1): blockdev: Add dynamic generation of module_block.h Makefile | 10 ++-- block.c | 62 ++++++++++++++++++++--- block/Makefile.objs | 4 +- block/iscsi.c | 36 -------------- configure | 4 +- include/qemu/module.h | 3 ++ scripts/modules/module_block.py | 108 ++++++++++++++++++++++++++++++++++++++++ util/module.c | 38 ++++---------- vl.c | 38 ++++++++++++++ 9 files changed, 226 insertions(+), 77 deletions(-) create mode 100644 scripts/modules/module_block.py -- 2.5.5