1 /* 2 * QBool Module 3 * 4 * Copyright IBM, Corp. 2009 5 * 6 * Authors: 7 * Anthony Liguori <aliguori@us.ibm.com> 8 * 9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 10 * See the COPYING.LIB file in the top-level directory. 11 * 12 */ 13 14 #include "qemu/osdep.h" 15 #include "qapi/qmp/qbool.h" 16 #include "qobject-internal.h" 17 18 /** 19 * qbool_from_bool(): Create a new QBool from a bool 20 * 21 * Return strong reference. 22 */ 23 QBool *qbool_from_bool(bool value) 24 { 25 QBool *qb; 26 27 qb = g_malloc(sizeof(*qb)); 28 qobject_init(QOBJECT(qb), QTYPE_QBOOL); 29 qb->value = value; 30 31 return qb; 32 } 33 34 /** 35 * qbool_get_bool(): Get the stored bool 36 */ 37 bool qbool_get_bool(const QBool *qb) 38 { 39 return qb->value; 40 } 41 42 /** 43 * qbool_is_equal(): Test whether the two QBools are equal 44 */ 45 bool qbool_is_equal(const QObject *x, const QObject *y) 46 { 47 return qobject_to(QBool, x)->value == qobject_to(QBool, y)->value; 48 } 49 50 /** 51 * qbool_destroy_obj(): Free all memory allocated by a 52 * QBool object 53 */ 54 void qbool_destroy_obj(QObject *obj) 55 { 56 assert(obj != NULL); 57 g_free(qobject_to(QBool, obj)); 58 } 59 60 void qbool_unref(QBool *q) 61 { 62 qobject_unref(q); 63 } 64