text: /*
   * 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 "qemu/osdep.h"
  #include "qapi/qmp/qbool.h"
  #include "qapi/qmp/qobject.h"
  #include "qemu-common.h"
  
  /**
   * qbool_from_bool(): Create a new QBool from a bool
   *
   * Return strong reference.
   */
  QBool *qbool_from_bool(bool value)
  {
      QBool *qb;
  
      qb = g_malloc(sizeof(*qb));
      qobject_init(QOBJECT(qb), QTYPE_QBOOL);
      qb->value = value;
  
      return qb;
  }
  
  /**
   * qbool_get_bool(): Get the stored bool
   */
  bool qbool_get_bool(const QBool *qb)
  {
      return qb->value;
  }
  
  /**
   * qobject_to_qbool(): Convert a QObject into a QBool
   */
  QBool *qobject_to_qbool(const QObject *obj)
  {
      if (!obj || qobject_type(obj) != QTYPE_QBOOL) {
          return NULL;
      }
      return container_of(obj, QBool, base);
  }
  
  /**
   * qbool_destroy_obj(): Free all memory allocated by a
   * QBool object
   */
  void qbool_destroy_obj(QObject *obj)
  {
      assert(obj != NULL);
      g_free(qobject_to_qbool(obj));
  }
  