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 BlakeQBool *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 Blakebool 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 Reitzbool 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 Blakevoid 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é Lureauvoid qbool_unref(QBool *q) 61*d709bbf3SMarc-André Lureau { 62*d709bbf3SMarc-André Lureau qobject_unref(q); 63*d709bbf3SMarc-André Lureau } 64