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