qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

qlit.h (1344B)


      1 /*
      2  * Copyright IBM, Corp. 2009
      3  * Copyright (c) 2013, 2015, 2017 Red Hat Inc.
      4  *
      5  * Authors:
      6  *  Anthony Liguori   <aliguori@us.ibm.com>
      7  *  Markus Armbruster <armbru@redhat.com>
      8  *  Marc-André Lureau <marcandre.lureau@redhat.com>
      9  *
     10  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
     11  * See the COPYING.LIB file in the top-level directory.
     12  *
     13  */
     14 #ifndef QLIT_H
     15 #define QLIT_H
     16 
     17 #include "qobject.h"
     18 
     19 typedef struct QLitDictEntry QLitDictEntry;
     20 typedef struct QLitObject QLitObject;
     21 
     22 struct QLitObject {
     23     QType type;
     24     union {
     25         bool qbool;
     26         int64_t qnum;
     27         const char *qstr;
     28         QLitDictEntry *qdict;
     29         QLitObject *qlist;
     30     } value;
     31 };
     32 
     33 struct QLitDictEntry {
     34     const char *key;
     35     QLitObject value;
     36 };
     37 
     38 #define QLIT_QNULL \
     39     { .type = QTYPE_QNULL }
     40 #define QLIT_QBOOL(val) \
     41     { .type = QTYPE_QBOOL, .value.qbool = (val) }
     42 #define QLIT_QNUM(val) \
     43     { .type = QTYPE_QNUM, .value.qnum = (val) }
     44 #define QLIT_QSTR(val) \
     45     { .type = QTYPE_QSTRING, .value.qstr = (val) }
     46 #define QLIT_QDICT(val) \
     47     { .type = QTYPE_QDICT, .value.qdict = (val) }
     48 #define QLIT_QLIST(val) \
     49     { .type = QTYPE_QLIST, .value.qlist = (val) }
     50 
     51 bool qlit_equal_qobject(const QLitObject *lhs, const QObject *rhs);
     52 
     53 QObject *qobject_from_qlit(const QLitObject *qlit);
     54 
     55 #endif /* QLIT_H */