While refreshing and testing my series to add domain capabilities and UEFI support to the libxl driver [1], I realized it would be useful to support the '--with-loader-nvram' configure option as well. This would allow users/packagers to specify system-provided firmwares instead of those provided by the Xen installation. Instead of copying code from the qemu driver, I decided to create a virFirmware object containing the firmware name (loader) and associated nvram, along with a few operations on the object. Patch1 introduces the object in src/util/virfirmware.[ch] and switches the qemu driver to use. The patch could be split along those lines, but I thought it would be review-friendly to see the movement of code in a single patch. But it can be split if preferred. Patch2 adds virFirmware to the libxl driver config. It is unused in this series, but if this approach is aggreable it will be used when rebasing the domain capabilities series. Note that currently Xen does not support storage for non-volitile variables for UEFI firmware (OVMF), so 'nvram' will be unused for the time being. Adding a 'nvram' option to libxl.conf can be deferred until support is added to Xen. But even with this limitation, folks are using UEFI + HVM guests with xl/libxl and would like to do the same with libvirt. Patch1 is a lot of code movement to avoid copying virQEMUDriverConfigLoaderNVRAMParse (and eventually virQEMUDriverConfigNVRAMParse). But I've complained about copy/paste in some of my recent reviews and shouldn't be doing the same in my own patches :-). [1] https://www.redhat.com/archives/libvir-list/2016-April/msg01358.html Jim Fehlig (2): driver config: Introduce virFirmware object libxl: add default firmwares to driver config object po/POTFILES.in | 1 + src/Makefile.am | 1 + src/libvirt_private.syms | 6 ++ src/libxl/libxl_conf.c | 21 +++++++ src/libxl/libxl_conf.h | 4 ++ src/qemu/qemu_capabilities.c | 22 +++---- src/qemu/qemu_capabilities.h | 5 +- src/qemu/qemu_conf.c | 127 ++++++---------------------------------- src/qemu/qemu_conf.h | 7 +-- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_process.c | 6 +- src/util/virfirmware.c | 135 +++++++++++++++++++++++++++++++++++++++++++ src/util/virfirmware.h | 51 ++++++++++++++++ tests/domaincapstest.c | 3 +- 14 files changed, 260 insertions(+), 131 deletions(-) create mode 100644 src/util/virfirmware.c create mode 100644 src/util/virfirmware.h -- 2.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list