From patchwork Mon Jun 7 23:51:51 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony Liguori X-Patchwork-Id: 54896 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 06E0EB7D43 for ; Tue, 8 Jun 2010 09:53:48 +1000 (EST) Received: from localhost ([127.0.0.1]:48655 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OLm8X-0004LB-1v for incoming@patchwork.ozlabs.org; Mon, 07 Jun 2010 19:53:45 -0400 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 Received: from localhost.localdomain (sig-9-65-84-205.mts.ibm.com [9.65.84.205]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o57NqDqq009965; Mon, 7 Jun 2010 20:52:15 -0300 From: Anthony Liguori To: qemu-devel@nongnu.org Date: Mon, 7 Jun 2010 18:51:51 -0500 Message-Id: <1275954730-8196-4-git-send-email-aliguori@us.ibm.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1275954730-8196-1-git-send-email-aliguori@us.ibm.com> References: <1275954730-8196-1-git-send-email-aliguori@us.ibm.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) Cc: Glauber Costa , Anthony Liguori , Gerd Hoffman Subject: [Qemu-devel] [PATCH 03/22] QemuOpts: add function to set QemuOpts from defaults X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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,