qemu/qobject/qint.c
<<
>>
Prefs
   1/*
   2 * QInt Module
   3 *
   4 * Copyright (C) 2009 Red Hat Inc.
   5 *
   6 * Authors:
   7 *  Luiz Capitulino <lcapitulino@redhat.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#include "qemu/osdep.h"
  14#include "qapi/qmp/qint.h"
  15#include "qapi/qmp/qobject.h"
  16#include "qemu-common.h"
  17
  18/**
  19 * qint_from_int(): Create a new QInt from an int64_t
  20 *
  21 * Return strong reference.
  22 */
  23QInt *qint_from_int(int64_t value)
  24{
  25    QInt *qi;
  26
  27    qi = g_malloc(sizeof(*qi));
  28    qobject_init(QOBJECT(qi), QTYPE_QINT);
  29    qi->value = value;
  30
  31    return qi;
  32}
  33
  34/**
  35 * qint_get_int(): Get the stored integer
  36 */
  37int64_t qint_get_int(const QInt *qi)
  38{
  39    return qi->value;
  40}
  41
  42/**
  43 * qobject_to_qint(): Convert a QObject into a QInt
  44 */
  45QInt *qobject_to_qint(const QObject *obj)
  46{
  47    if (!obj || qobject_type(obj) != QTYPE_QINT) {
  48        return NULL;
  49    }
  50    return container_of(obj, QInt, base);
  51}
  52
  53/**
  54 * qint_destroy_obj(): Free all memory allocated by a
  55 * QInt object
  56 */
  57void qint_destroy_obj(QObject *obj)
  58{
  59    assert(obj != NULL);
  60    g_free(qobject_to_qint(obj));
  61}
  62