128035bcdSMarc-André Lureau /* 228035bcdSMarc-André Lureau * Copyright IBM, Corp. 2009 328035bcdSMarc-André Lureau * Copyright (c) 2013, 2015, 2017 Red Hat Inc. 428035bcdSMarc-André Lureau * 528035bcdSMarc-André Lureau * Authors: 628035bcdSMarc-André Lureau * Anthony Liguori <aliguori@us.ibm.com> 728035bcdSMarc-André Lureau * Markus Armbruster <armbru@redhat.com> 828035bcdSMarc-André Lureau * Marc-André Lureau <marcandre.lureau@redhat.com> 928035bcdSMarc-André Lureau * 1028035bcdSMarc-André Lureau * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 1128035bcdSMarc-André Lureau * See the COPYING.LIB file in the top-level directory. 1228035bcdSMarc-André Lureau * 1328035bcdSMarc-André Lureau */ 1428035bcdSMarc-André Lureau #ifndef QLIT_H 1528035bcdSMarc-André Lureau #define QLIT_H 1628035bcdSMarc-André Lureau 1728035bcdSMarc-André Lureau #include "qapi-types.h" 1828035bcdSMarc-André Lureau #include "qobject.h" 1928035bcdSMarc-André Lureau 20082696e7SMarc-André Lureau typedef struct QLitDictEntry QLitDictEntry; 21082696e7SMarc-André Lureau typedef struct QLitObject QLitObject; 2228035bcdSMarc-André Lureau 23082696e7SMarc-André Lureau struct QLitObject { 2428035bcdSMarc-André Lureau int type; 2528035bcdSMarc-André Lureau union { 2628035bcdSMarc-André Lureau int64_t qnum; 2728035bcdSMarc-André Lureau const char *qstr; 28082696e7SMarc-André Lureau QLitDictEntry *qdict; 29082696e7SMarc-André Lureau QLitObject *qlist; 3028035bcdSMarc-André Lureau } value; 3128035bcdSMarc-André Lureau }; 3228035bcdSMarc-André Lureau 33082696e7SMarc-André Lureau struct QLitDictEntry { 3428035bcdSMarc-André Lureau const char *key; 35082696e7SMarc-André Lureau QLitObject value; 3628035bcdSMarc-André Lureau }; 3728035bcdSMarc-André Lureau 3828035bcdSMarc-André Lureau #define QLIT_QNUM(val) \ 39*d5cd8fbfSMarc-André Lureau { .type = QTYPE_QNUM, .value.qnum = (val) } 4028035bcdSMarc-André Lureau #define QLIT_QSTR(val) \ 41*d5cd8fbfSMarc-André Lureau { .type = QTYPE_QSTRING, .value.qstr = (val) } 4228035bcdSMarc-André Lureau #define QLIT_QDICT(val) \ 43*d5cd8fbfSMarc-André Lureau { .type = QTYPE_QDICT, .value.qdict = (val) } 4428035bcdSMarc-André Lureau #define QLIT_QLIST(val) \ 45*d5cd8fbfSMarc-André Lureau { .type = QTYPE_QLIST, .value.qlist = (val) } 4628035bcdSMarc-André Lureau 47082696e7SMarc-André Lureau int compare_litqobj_to_qobj(QLitObject *lhs, QObject *rhs); 4828035bcdSMarc-André Lureau 4928035bcdSMarc-André Lureau #endif /* QLIT_H */ 50