From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PATCH 1/5] QemuOpts: add some functions
Date: Thu, 30 Jul 2009 12:43:37 +0200 [thread overview]
Message-ID: <1248950621-22249-2-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1248950621-22249-1-git-send-email-kraxel@redhat.com>
qemu_opt_foreach: loop over all QemuOpts entries.
qemu_opts_id: return QemuOpts id.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
qemu-option.c | 19 +++++++++++++++++++
qemu-option.h | 4 ++++
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/qemu-option.c b/qemu-option.c
index 73c2175..86c0b09 100644
--- a/qemu-option.c
+++ b/qemu-option.c
@@ -606,6 +606,20 @@ int qemu_opt_set(QemuOpts *opts, const char *name, const char *value)
return 0;
}
+int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque,
+ int abort_on_failure)
+{
+ QemuOpt *opt;
+ int rc = 0;
+
+ TAILQ_FOREACH(opt, &opts->head, next) {
+ rc = func(opt->name, opt->str, opaque);
+ if (abort_on_failure && rc != 0)
+ break;
+ }
+ return rc;
+}
+
QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id)
{
QemuOpts *opts;
@@ -662,6 +676,11 @@ int qemu_opts_set(QemuOptsList *list, const char *id,
return qemu_opt_set(opts, name, value);
}
+const char *qemu_opts_id(QemuOpts *opts)
+{
+ return opts->id;
+}
+
void qemu_opts_del(QemuOpts *opts)
{
QemuOpt *opt;
diff --git a/qemu-option.h b/qemu-option.h
index 428c947..56c7eac 100644
--- a/qemu-option.h
+++ b/qemu-option.h
@@ -104,11 +104,15 @@ 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);
uint64_t qemu_opt_get_size(QemuOpts *opts, const char *name, uint64_t defval);
int qemu_opt_set(QemuOpts *opts, const char *name, const char *value);
+typedef int (*qemu_opt_loopfunc)(const char *name, const char *value, void *opaque);
+int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque,
+ int abort_on_failure);
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,
const char *name, const char *value);
+const char *qemu_opts_id(QemuOpts *opts);
void qemu_opts_del(QemuOpts *opts);
QemuOpts *qemu_opts_parse(QemuOptsList *list, const char *params, const char *firstname);
--
1.6.2.5
next prev parent reply other threads:[~2009-07-30 10:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-30 10:43 [Qemu-devel] [PATCH 0/5] QemuOpts patches Gerd Hoffmann
2009-07-30 10:43 ` Gerd Hoffmann [this message]
2009-07-30 10:43 ` [Qemu-devel] [PATCH 2/5] QemuOpts: qemu_opts_parse: fix id= parsing Gerd Hoffmann
2009-07-30 10:43 ` [Qemu-devel] [PATCH 3/5] QemuOpts: make the drive id actually show up in "info block" Gerd Hoffmann
2009-07-30 10:43 ` [Qemu-devel] [PATCH 4/5] QemuOpts: add -drive-set option Gerd Hoffmann
2009-07-30 13:58 ` Anthony Liguori
2009-07-30 14:35 ` Gerd Hoffmann
2009-07-30 18:44 ` Anthony Liguori
2009-07-30 10:43 ` [Qemu-devel] [PATCH 5/5] QemuOpts: switch over -device Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1248950621-22249-2-git-send-email-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).