This is still a RFC, I cut some block image formats to simplify the exploring.
patch 1-3 are from Luiz, added Markus's comments, discussion could be found here: http://lists.nongnu.org/archive/html/qemu-devel/2012-07/msg02716.html patch 4-5: because qemu_opts_create can not fail while id is null, so create function qemu_opts_create_nofail and use it. patch 6: create function qemu_opt_set_number, like qemu_opt_set_bool. patch 7: remove QEMUOptionParameter and use QemuOpts parser. v1->v2: 1) add Luiz's patches. 2) create qemu_opt_set_number() and qemu_opts_create_nofail() functions. 3) add QemuOptsList map to drivers. 4) use original opts parser, not creating new ones. 5) fix other bugs. Dong Xu Wang (7): qemu-option: qemu_opt_set_bool(): fix code duplication qemu-option: opt_set(): split it up into more functions qemu-option: qemu_opts_validate(): fix duplicated code introduce qemu_opts_create_nofail function use qemu_opts_create_nofail create new function: qemu_opt_set_number remove QEMUOptionParameter block.c | 88 +++++----- block.h | 5 +- block/Makefile.objs | 9 +- block/qcow2.c | 175 ++++++++++--------- block/raw-posix.c | 68 ++++---- block/raw.c | 31 ++-- block_int.h | 6 +- blockdev.c | 2 +- hw/watchdog.c | 2 +- qemu-config.c | 7 +- qemu-img.c | 60 +++---- qemu-option.c | 501 ++++++++++++++++----------------------------------- qemu-option.h | 47 +---- qemu-sockets.c | 8 +- vl.c | 6 +- 15 files changed, 401 insertions(+), 614 deletions(-)
