From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37415) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUaQo-000215-Vh for qemu-devel@nongnu.org; Tue, 02 Aug 2016 10:12:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUaQk-0007V7-BO for qemu-devel@nongnu.org; Tue, 02 Aug 2016 10:12:30 -0400 From: Colin Lord Date: Tue, 2 Aug 2016 10:12:13 -0400 Message-Id: <1470147137-21970-1-git-send-email-clord@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v6 0/4] Dynamic module loading for block drivers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, Colin Lord 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=3Dgluster, 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 --=20 2.5.5