[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 12/30] qdict: Extract qdict_extract_subqdict
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 12/30] qdict: Extract qdict_extract_subqdict |
Date: |
Fri, 27 Sep 2013 17:39:12 +0200 |
From: BenoƮt Canet <address@hidden>
Signed-off-by: Benoit Canet <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block.c | 23 ++---------------------
include/qapi/qmp/qdict.h | 2 ++
qobject/qdict.c | 21 +++++++++++++++++++++
3 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/block.c b/block.c
index 4a98250..4833b37 100644
--- a/block.c
+++ b/block.c
@@ -1007,25 +1007,6 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict
*options, Error **errp)
return 0;
}
-static void extract_subqdict(QDict *src, QDict **dst, const char *start)
-{
- const QDictEntry *entry, *next;
- const char *p;
-
- *dst = qdict_new();
- entry = qdict_first(src);
-
- while (entry != NULL) {
- next = qdict_next(src, entry);
- if (strstart(entry->key, start, &p)) {
- qobject_incref(entry->value);
- qdict_put_obj(*dst, p, entry->value);
- qdict_del(src, entry->key);
- }
- entry = next;
- }
-}
-
/*
* Opens a disk image (raw, qcow2, vmdk, ...)
*
@@ -1131,7 +1112,7 @@ int bdrv_open(BlockDriverState *bs, const char *filename,
QDict *options,
flags |= BDRV_O_ALLOW_RDWR;
}
- extract_subqdict(options, &file_options, "file.");
+ qdict_extract_subqdict(options, &file_options, "file.");
ret = bdrv_file_open(&file, filename, file_options,
bdrv_open_flags(bs, flags | BDRV_O_UNMAP),
&local_err);
@@ -1169,7 +1150,7 @@ int bdrv_open(BlockDriverState *bs, const char *filename,
QDict *options,
if ((flags & BDRV_O_NO_BACKING) == 0) {
QDict *backing_options;
- extract_subqdict(options, &backing_options, "backing.");
+ qdict_extract_subqdict(options, &backing_options, "backing.");
ret = bdrv_open_backing_file(bs, backing_options, &local_err);
if (ret < 0) {
goto close_and_fail;
diff --git a/include/qapi/qmp/qdict.h b/include/qapi/qmp/qdict.h
index d6855d1..5cefd80 100644
--- a/include/qapi/qmp/qdict.h
+++ b/include/qapi/qmp/qdict.h
@@ -67,4 +67,6 @@ const char *qdict_get_try_str(const QDict *qdict, const char
*key);
QDict *qdict_clone_shallow(const QDict *src);
void qdict_flatten(QDict *qdict);
+void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start);
+
#endif /* QDICT_H */
diff --git a/qobject/qdict.c b/qobject/qdict.c
index 472f106..0f3e0a6 100644
--- a/qobject/qdict.c
+++ b/qobject/qdict.c
@@ -527,3 +527,24 @@ void qdict_flatten(QDict *qdict)
{
qdict_do_flatten(qdict, qdict, NULL);
}
+
+/* extract all the src QDict entries starting by start into dst */
+void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start)
+
+{
+ const QDictEntry *entry, *next;
+ const char *p;
+
+ *dst = qdict_new();
+ entry = qdict_first(src);
+
+ while (entry != NULL) {
+ next = qdict_next(src, entry);
+ if (strstart(entry->key, start, &p)) {
+ qobject_incref(entry->value);
+ qdict_put_obj(*dst, p, entry->value);
+ qdict_del(src, entry->key);
+ }
+ entry = next;
+ }
+}
--
1.8.1.4
- [Qemu-devel] [PULL 05/30] block/get_block_status: set *pnum = 0 on error, (continued)
- [Qemu-devel] [PULL 05/30] block/get_block_status: set *pnum = 0 on error, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 06/30] block/get_block_status: avoid segfault if there is no backing_hd, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 04/30] qcow2: Don't shadow return value, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 03/30] qemu-iotests: Do not execute 052 with -nocache, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 10/30] block: introduce BlockDriver.bdrv_needs_filename to enable some drivers., Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 11/30] block: Fix compiler warning (-Werror=uninitialized), Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 07/30] vmdk: fix cluster size check for flat extents, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 09/30] qemu-iotests: add monolithicFlat creation test to 059, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 08/30] qemu-iotests: fix test case 059, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 17/30] block: qed - use QEMU_PACKED for on-disk structures, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 12/30] qdict: Extract qdict_extract_subqdict,
Kevin Wolf <=
- [Qemu-devel] [PULL 15/30] block: vpc - use QEMU_PACKED for on-disk structures, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 20/30] qemu-iotests: fix qmp.py search path, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 14/30] block: vdi - use QEMU_PACKED for on-disk structures, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 13/30] rbd: avoid qemu_rbd_snap_list() memory leaks, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 18/30] qcow2: Assert against currently impossible overflow, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 16/30] block: qcow2 - used QEMU_PACKED for on-disk structures, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 19/30] block: use DIV_ROUND_UP in bdrv_co_do_readv, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 21/30] qemu-iotests: Add basic ability to use binary sample images, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 22/30] qemu-iotests: Quote $TEST_IMG* and $TEST_DIR usage, Kevin Wolf, 2013/09/27
- [Qemu-devel] [PULL 26/30] qcow2: Always use error path in l2_allocate, Kevin Wolf, 2013/09/27