xref: /openbmc/qemu/include/block/qdict.h (revision 28298069afff3eb696e4995e63b2579b27adf378)
1609f45eaSMax Reitz /*
2609f45eaSMax Reitz  * Special QDict functions used by the block layer
3609f45eaSMax Reitz  *
4609f45eaSMax Reitz  * Copyright (c) 2013-2018 Red Hat, Inc.
5609f45eaSMax Reitz  *
6609f45eaSMax Reitz  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
7609f45eaSMax Reitz  * See the COPYING.LIB file in the top-level directory.
8609f45eaSMax Reitz  */
9609f45eaSMax Reitz 
10609f45eaSMax Reitz #ifndef BLOCK_QDICT_H
11609f45eaSMax Reitz #define BLOCK_QDICT_H
12609f45eaSMax Reitz 
13609f45eaSMax Reitz #include "qapi/qmp/qdict.h"
14609f45eaSMax Reitz 
15*215aea0cSMarc-André Lureau QObject *qdict_crumple(const QDict *src, Error **errp);
16*215aea0cSMarc-André Lureau void qdict_flatten(QDict *qdict);
17*215aea0cSMarc-André Lureau 
18609f45eaSMax Reitz void qdict_copy_default(QDict *dst, QDict *src, const char *key);
19609f45eaSMax Reitz void qdict_set_default_str(QDict *dst, const char *key, const char *val);
20609f45eaSMax Reitz 
21609f45eaSMax Reitz void qdict_join(QDict *dest, QDict *src, bool overwrite);
22609f45eaSMax Reitz 
23609f45eaSMax Reitz void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start);
24609f45eaSMax Reitz void qdict_array_split(QDict *src, QList **dst);
25609f45eaSMax Reitz int qdict_array_entries(QDict *src, const char *subqdict);
26609f45eaSMax Reitz 
27609f45eaSMax Reitz typedef struct QDictRenames {
28609f45eaSMax Reitz     const char *from;
29609f45eaSMax Reitz     const char *to;
30609f45eaSMax Reitz } QDictRenames;
31609f45eaSMax Reitz bool qdict_rename_keys(QDict *qdict, const QDictRenames *renames, Error **errp);
32609f45eaSMax Reitz 
33af91062eSMarkus Armbruster Visitor *qobject_input_visitor_new_flat_confused(QDict *qdict,
34af91062eSMarkus Armbruster                                                  Error **errp);
35609f45eaSMax Reitz #endif
36