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