This patch series is to replace QEMUOptionParameter with QemuOpts, so that only one Qemu Option structure is kept in QEMU code.
--- Changes to v21: * Move find_desc_by_name and qemu_opt_del functions ahead in separate patches before later calling, so to avoid static declaration. * Remove some changes that not quite necessary for this patch series: improve qemu_opt_set, improve assert() in qemu_opt_get, NULL check in qemu_opt_get and qemu_opt_find. * improve convert functions and qemu_opts_append() functions * improve block layer changes to support both struct * other fixes according to Eric and Stefan's comments. Not added: * QemuOpts test suite what Eric suggests, not included in this version, since: Currently, things that changes QemuOpts original syntax only include: qemu_opts_del: NULL input check. opt->name, opt->str: from const char * to char * Generally, no big change to its original usage. Things that are newly added to QemuOpts are: qemu_opt_append function qemu_opt_get_*_del functions I think we could add tests for these functions later based on Leandro Dorileo's test suite patches: https://lists.gnu.org/archive/html/qemu-devel/2014-03/msg03282.html Chunyan Liu (32): move find_desc_by_name ahead for later calling add def_value_str to QemuOptDesc qapi: output def_value_str when query command line options change opt->name and opt->str from (const char *) to (char *) move qemu_opt_del ahead for later calling add qemu_opt_get_*_del functions for replace work add qemu_opts_print_help to replace print_option_help add convert functions between QEMUOptionParameter to QemuOpts add qemu_opts_append to repalce append_option_parameters check NULL input for qemu_opts_del qemu_opts_print: change fprintf stderr to printf qcow2.c: remove 'assigned' check in amend change block layer to support both QemuOpts and QEMUOptionParamter vvfat.c: handle cross_driver's create_options and create_opts cow.c: replace QEMUOptionParameter with QemuOpts gluster.c: replace QEMUOptionParameter with QemuOpts iscsi.c: replace QEMUOptionParameter with QemuOpts qcow.c: replace QEMUOptionParameter with QemuOpts qcow2.c: replace QEMUOptionParameter with QemuOpts qed.c: replace QEMUOptionParameter with QemuOpts raw-posix.c: replace QEMUOptionParameter with QemuOpts raw-win32.c: replace QEMUOptionParameter with QemuOpts raw_bsd.c: replace QEMUOptionParameter with QemuOpts rbd.c: replace QEMUOptionParameter with QemuOpts sheepdog.c: replace QEMUOptionParameter with QemuOpts ssh.c: replace QEMUOptionParameter with QemuOpts vdi.c: replace QEMUOptionParameter with QemuOpts vhdx.c: replace QEMUOptionParameter with QemuOpts vmdk.c: replace QEMUOptionParameter with QemuOpts vpc.c: replace QEMUOptionParameter with QemuOpts cleanup QEMUOptionParameter cleanup tmp 'mallocd' member from QemuOptsList block.c | 96 ++++---- block/cow.c | 52 ++--- block/gluster.c | 73 +++--- block/iscsi.c | 29 ++- block/qcow.c | 72 +++--- block/qcow2.c | 320 +++++++++++++------------- block/qed.c | 112 ++++----- block/qed.h | 3 +- block/raw-posix.c | 55 ++--- block/raw-win32.c | 38 ++-- block/raw_bsd.c | 25 +- block/rbd.c | 61 +++-- block/sheepdog.c | 102 +++++---- block/ssh.c | 30 ++- block/vdi.c | 71 +++--- block/vhdx.c | 97 ++++---- block/vhdx.h | 1 + block/vmdk.c | 121 +++++----- block/vpc.c | 60 ++--- block/vvfat.c | 11 +- include/block/block.h | 7 +- include/block/block_int.h | 9 +- include/qemu/option.h | 52 +---- include/qemu/option_int.h | 4 +- qapi-schema.json | 6 +- qapi/opts-visitor.c | 10 +- qemu-img.c | 89 ++++---- qmp-commands.hx | 2 + util/qemu-config.c | 4 + util/qemu-option.c | 563 +++++++++++++++++++--------------------------- 30 files changed, 1026 insertions(+), 1149 deletions(-) -- 1.7.12.4