xref: /qemu/qobject/qbool.c (revision c4b8ffcb)
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