xref: /openbmc/qemu/include/block/qdict.h (revision e5af0da1dcbfb1a4694150f9954554fb6df88819)
1 /*
2  * Special QDict functions used by the block layer
3  *
4  * Copyright (c) 2013-2018 Red Hat, Inc.
5  *
6  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
7  * See the COPYING.LIB file in the top-level directory.
8  */
9 
10 #ifndef BLOCK_QDICT_H
11 #define BLOCK_QDICT_H
12 
13 #include "qapi/qmp/qdict.h"
14 
15 void qdict_copy_default(QDict *dst, QDict *src, const char *key);
16 void qdict_set_default_str(QDict *dst, const char *key, const char *val);
17 
18 void qdict_join(QDict *dest, QDict *src, bool overwrite);
19 
20 void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start);
21 void qdict_array_split(QDict *src, QList **dst);
22 int qdict_array_entries(QDict *src, const char *subqdict);
23 QObject *qdict_crumple(const QDict *src, Error **errp);
24 QObject *qdict_crumple_for_keyval_qiv(QDict *qdict, Error **errp);
25 void qdict_flatten(QDict *qdict);
26 
27 typedef struct QDictRenames {
28     const char *from;
29     const char *to;
30 } QDictRenames;
31 bool qdict_rename_keys(QDict *qdict, const QDictRenames *renames, Error **errp);
32 
33 #endif
34