summaryrefslogtreecommitdiffstats
path: root/qemu/qapi/qapi-dealloc-visitor.c
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/qapi/qapi-dealloc-visitor.c
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/qapi/qapi-dealloc-visitor.c')
-rw-r--r--qemu/qapi/qapi-dealloc-visitor.c205
1 files changed, 0 insertions, 205 deletions
diff --git a/qemu/qapi/qapi-dealloc-visitor.c b/qemu/qapi/qapi-dealloc-visitor.c
deleted file mode 100644
index 69221794e..000000000
--- a/qemu/qapi/qapi-dealloc-visitor.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Dealloc Visitor
- *
- * Copyright (C) 2012-2016 Red Hat, Inc.
- * Copyright IBM, Corp. 2011
- *
- * Authors:
- * Michael Roth <mdroth@linux.vnet.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/dealloc-visitor.h"
-#include "qemu/queue.h"
-#include "qemu-common.h"
-#include "qapi/qmp/types.h"
-#include "qapi/visitor-impl.h"
-
-typedef struct StackEntry
-{
- void *value;
- bool is_list_head;
- QTAILQ_ENTRY(StackEntry) node;
-} StackEntry;
-
-struct QapiDeallocVisitor
-{
- Visitor visitor;
- QTAILQ_HEAD(, StackEntry) stack;
-};
-
-static QapiDeallocVisitor *to_qov(Visitor *v)
-{
- return container_of(v, QapiDeallocVisitor, visitor);
-}
-
-static void qapi_dealloc_push(QapiDeallocVisitor *qov, void *value)
-{
- StackEntry *e = g_malloc0(sizeof(*e));
-
- e->value = value;
-
- /* see if we're just pushing a list head tracker */
- if (value == NULL) {
- e->is_list_head = true;
- }
- QTAILQ_INSERT_HEAD(&qov->stack, e, node);
-}
-
-static void *qapi_dealloc_pop(QapiDeallocVisitor *qov)
-{
- StackEntry *e = QTAILQ_FIRST(&qov->stack);
- QObject *value;
- QTAILQ_REMOVE(&qov->stack, e, node);
- value = e->value;
- g_free(e);
- return value;
-}
-
-static void qapi_dealloc_start_struct(Visitor *v, const char *name, void **obj,
- size_t unused, Error **errp)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- qapi_dealloc_push(qov, obj);
-}
-
-static void qapi_dealloc_end_struct(Visitor *v, Error **errp)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- void **obj = qapi_dealloc_pop(qov);
- if (obj) {
- g_free(*obj);
- }
-}
-
-static void qapi_dealloc_start_alternate(Visitor *v, const char *name,
- GenericAlternate **obj, size_t size,
- bool promote_int, Error **errp)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- qapi_dealloc_push(qov, obj);
-}
-
-static void qapi_dealloc_end_alternate(Visitor *v)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- void **obj = qapi_dealloc_pop(qov);
- if (obj) {
- g_free(*obj);
- }
-}
-
-static void qapi_dealloc_start_list(Visitor *v, const char *name, Error **errp)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- qapi_dealloc_push(qov, NULL);
-}
-
-static GenericList *qapi_dealloc_next_list(Visitor *v, GenericList **listp,
- size_t size)
-{
- GenericList *list = *listp;
- QapiDeallocVisitor *qov = to_qov(v);
- StackEntry *e = QTAILQ_FIRST(&qov->stack);
-
- if (e && e->is_list_head) {
- e->is_list_head = false;
- return list;
- }
-
- if (list) {
- list = list->next;
- g_free(*listp);
- return list;
- }
-
- return NULL;
-}
-
-static void qapi_dealloc_end_list(Visitor *v)
-{
- QapiDeallocVisitor *qov = to_qov(v);
- void *obj = qapi_dealloc_pop(qov);
- assert(obj == NULL); /* should've been list head tracker with no payload */
-}
-
-static void qapi_dealloc_type_str(Visitor *v, const char *name, char **obj,
- Error **errp)
-{
- if (obj) {
- g_free(*obj);
- }
-}
-
-static void qapi_dealloc_type_int64(Visitor *v, const char *name, int64_t *obj,
- Error **errp)
-{
-}
-
-static void qapi_dealloc_type_uint64(Visitor *v, const char *name,
- uint64_t *obj, Error **errp)
-{
-}
-
-static void qapi_dealloc_type_bool(Visitor *v, const char *name, bool *obj,
- Error **errp)
-{
-}
-
-static void qapi_dealloc_type_number(Visitor *v, const char *name, double *obj,
- Error **errp)
-{
-}
-
-static void qapi_dealloc_type_anything(Visitor *v, const char *name,
- QObject **obj, Error **errp)
-{
- if (obj) {
- qobject_decref(*obj);
- }
-}
-
-static void qapi_dealloc_type_enum(Visitor *v, const char *name, int *obj,
- const char * const strings[], Error **errp)
-{
-}
-
-Visitor *qapi_dealloc_get_visitor(QapiDeallocVisitor *v)
-{
- return &v->visitor;
-}
-
-void qapi_dealloc_visitor_cleanup(QapiDeallocVisitor *v)
-{
- g_free(v);
-}
-
-QapiDeallocVisitor *qapi_dealloc_visitor_new(void)
-{
- QapiDeallocVisitor *v;
-
- v = g_malloc0(sizeof(*v));
-
- v->visitor.start_struct = qapi_dealloc_start_struct;
- v->visitor.end_struct = qapi_dealloc_end_struct;
- v->visitor.start_alternate = qapi_dealloc_start_alternate;
- v->visitor.end_alternate = qapi_dealloc_end_alternate;
- v->visitor.start_list = qapi_dealloc_start_list;
- v->visitor.next_list = qapi_dealloc_next_list;
- v->visitor.end_list = qapi_dealloc_end_list;
- v->visitor.type_enum = qapi_dealloc_type_enum;
- v->visitor.type_int64 = qapi_dealloc_type_int64;
- v->visitor.type_uint64 = qapi_dealloc_type_uint64;
- v->visitor.type_bool = qapi_dealloc_type_bool;
- v->visitor.type_str = qapi_dealloc_type_str;
- v->visitor.type_number = qapi_dealloc_type_number;
- v->visitor.type_any = qapi_dealloc_type_anything;
-
- QTAILQ_INIT(&v->stack);
-
- return v;
-}