Here's v5 of the modularization series. Since it seems the concensus is that modularizing the format drivers is unnecessary, this series no longer modularizes those and is thus much shorter than before.
v5: - No format drivers are modularized, therefore the probe functions are all being left completely untouched. The bdrv_find_format function is also left untouched as a result. - 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 (1): blockdev: prepare iSCSI block driver for dynamic loading Marc Mari (2): blockdev: Add dynamic generation of module_block.h blockdev: Add dynamic module loading for block drivers Makefile | 7 +++ block.c | 37 ++++++++++++--- block/Makefile.objs | 3 +- block/iscsi.c | 36 -------------- include/qemu/module.h | 3 ++ scripts/modules/module_block.py | 102 ++++++++++++++++++++++++++++++++++++++++ util/module.c | 38 +++++---------- vl.c | 38 +++++++++++++++ 8 files changed, 193 insertions(+), 71 deletions(-) create mode 100644 scripts/modules/module_block.py -- 2.5.5