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 QObject *qdict_crumple(const QDict *src, Error **errp); 16 void qdict_flatten(QDict *qdict); 17 18 void qdict_copy_default(QDict *dst, QDict *src, const char *key); 19 void qdict_set_default_str(QDict *dst, const char *key, const char *val); 20 21 void qdict_join(QDict *dest, QDict *src, bool overwrite); 22 23 void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start); 24 void qdict_array_split(QDict *src, QList **dst); 25 int qdict_array_entries(QDict *src, const char *subqdict); 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 Visitor *qobject_input_visitor_new_flat_confused(QDict *qdict, 34 Error **errp); 35 #endif 36