diff options
Diffstat (limited to 'contrib/qemu/qobject/qbool.c')
| -rw-r--r-- | contrib/qemu/qobject/qbool.c | 68 | 
1 files changed, 68 insertions, 0 deletions
diff --git a/contrib/qemu/qobject/qbool.c b/contrib/qemu/qobject/qbool.c new file mode 100644 index 000000000..a3d2afa82 --- /dev/null +++ b/contrib/qemu/qobject/qbool.c @@ -0,0 +1,68 @@ +/* + * QBool Module + * + * Copyright IBM, Corp. 2009 + * + * Authors: + *  Anthony Liguori   <aliguori@us.ibm.com> + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. + * See the COPYING.LIB file in the top-level directory. + * + */ + +#include "qapi/qmp/qbool.h" +#include "qapi/qmp/qobject.h" +#include "qemu-common.h" + +static void qbool_destroy_obj(QObject *obj); + +static const QType qbool_type = { +    .code = QTYPE_QBOOL, +    .destroy = qbool_destroy_obj, +}; + +/** + * qbool_from_int(): Create a new QBool from an int + * + * Return strong reference. + */ +QBool *qbool_from_int(int value) +{ +    QBool *qb; + +    qb = g_malloc(sizeof(*qb)); +    qb->value = value; +    QOBJECT_INIT(qb, &qbool_type); + +    return qb; +} + +/** + * qbool_get_int(): Get the stored int + */ +int qbool_get_int(const QBool *qb) +{ +    return qb->value; +} + +/** + * qobject_to_qbool(): Convert a QObject into a QBool + */ +QBool *qobject_to_qbool(const QObject *obj) +{ +    if (qobject_type(obj) != QTYPE_QBOOL) +        return NULL; + +    return container_of(obj, QBool, base); +} + +/** + * qbool_destroy_obj(): Free all memory allocated by a + * QBool object + */ +static void qbool_destroy_obj(QObject *obj) +{ +    assert(obj != NULL); +    g_free(qobject_to_qbool(obj)); +}  | 
