From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=43835 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OLm79-0004JN-M7 for qemu-devel@nongnu.org; Mon, 07 Jun 2010 19:52:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OLm78-00038J-ES for qemu-devel@nongnu.org; Mon, 07 Jun 2010 19:52:19 -0400 Received: from e6.ny.us.ibm.com ([32.97.182.146]:46666) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OLm78-000383-CH for qemu-devel@nongnu.org; Mon, 07 Jun 2010 19:52:18 -0400 Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e6.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id o57Nof2d025753 for ; Mon, 7 Jun 2010 19:50:41 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o57NqGPS127272 for ; Mon, 7 Jun 2010 19:52:16 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o57NqGZc010088 for ; Mon, 7 Jun 2010 20:52:16 -0300 From: Anthony Liguori Date: Mon, 7 Jun 2010 18:51:51 -0500 Message-Id: <1275954730-8196-4-git-send-email-aliguori@us.ibm.com> In-Reply-To: <1275954730-8196-1-git-send-email-aliguori@us.ibm.com> References: <1275954730-8196-1-git-send-email-aliguori@us.ibm.com> Subject: [Qemu-devel] [PATCH 03/22] QemuOpts: add function to set QemuOpts from defaults List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Glauber Costa , Anthony Liguori , Gerd Hoffman This lets us hard code a list of default QemuOpts values in a structured way. Signed-off-by: Anthony Liguori diff --git a/qemu-option.c b/qemu-option.c index 03b1ef7..b990cf5 100644 --- a/qemu-option.c +++ b/qemu-option.c @@ -954,3 +954,23 @@ int qemu_opts_foreach(QemuOptsList *list, qemu_opts_loopfunc func, void *opaque, loc_pop(&loc); return rc; } + +int qemu_opts_set_defaults(QemuOpts *opts, const QemuOptValue *defvals) +{ + int i; + + for (i = 0; defvals[i].name; i++) { + int ret; + + if (qemu_opt_get(opts, defvals[i].name)) { + continue; + } + + ret = qemu_opt_set(opts, defvals[i].name, defvals[i].value); + if (ret < 0) { + return ret; + } + } + + return 0; +} diff --git a/qemu-option.h b/qemu-option.h index 4823219..4a6717c 100644 --- a/qemu-option.h +++ b/qemu-option.h @@ -104,6 +104,11 @@ struct QemuOptsList { QemuOptDesc desc[]; }; +typedef struct QemuOptValue { + const char *name; + const char *value; +} QemuOptValue; + const char *qemu_opt_get(QemuOpts *opts, const char *name); int qemu_opt_get_bool(QemuOpts *opts, const char *name, int defval); uint64_t qemu_opt_get_number(QemuOpts *opts, const char *name, uint64_t defval); @@ -113,6 +118,8 @@ typedef int (*qemu_opt_loopfunc)(const char *name, const char *value, void *opaq int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque, int abort_on_failure); +int qemu_opts_set_defaults(QemuOpts *opts, const QemuOptValue *defvals); + QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id); QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, int fail_if_exists); int qemu_opts_set(QemuOptsList *list, const char *id, -- 1.7.0.4