Lines Matching +full:- +full:v

4  * Copyright (C) 2012-2016 Red Hat, Inc.
11 * See the COPYING.LIB file in the top-level directory.
16 #include "qapi/compat-policy.h"
17 #include "qapi/qobject-output-visitor.h"
18 #include "qapi/visitor-impl.h"
46 static QObjectOutputVisitor *to_qov(Visitor *v) in to_qov() argument
48 return container_of(v, QObjectOutputVisitor, visitor); in to_qov()
57 assert(qov->root); in qobject_output_push_obj()
59 e->value = value; in qobject_output_push_obj()
60 e->qapi = qapi; in qobject_output_push_obj()
61 QSLIST_INSERT_HEAD(&qov->stack, e, node); in qobject_output_push_obj()
67 QStackEntry *e = QSLIST_FIRST(&qov->stack); in qobject_output_pop()
71 assert(e->qapi == qapi); in qobject_output_pop()
72 QSLIST_REMOVE_HEAD(&qov->stack, node); in qobject_output_pop()
73 value = e->value; in qobject_output_pop()
85 QStackEntry *e = QSLIST_FIRST(&qov->stack); in qobject_output_add_obj()
86 QObject *cur = e ? e->value : NULL; in qobject_output_add_obj()
90 assert(!qov->root); in qobject_output_add_obj()
91 qov->root = value; in qobject_output_add_obj()
108 static bool qobject_output_start_struct(Visitor *v, const char *name, in qobject_output_start_struct() argument
111 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_start_struct()
119 static void qobject_output_end_struct(Visitor *v, void **obj) in qobject_output_end_struct() argument
121 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_end_struct()
126 static bool qobject_output_start_list(Visitor *v, const char *name, in qobject_output_start_list() argument
130 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_start_list()
138 static GenericList *qobject_output_next_list(Visitor *v, GenericList *tail, in qobject_output_next_list() argument
141 return tail->next; in qobject_output_next_list()
144 static void qobject_output_end_list(Visitor *v, void **obj) in qobject_output_end_list() argument
146 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_end_list()
151 static bool qobject_output_type_int64(Visitor *v, const char *name, in qobject_output_type_int64() argument
154 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_int64()
159 static bool qobject_output_type_uint64(Visitor *v, const char *name, in qobject_output_type_uint64() argument
162 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_uint64()
167 static bool qobject_output_type_bool(Visitor *v, const char *name, bool *obj, in qobject_output_type_bool() argument
170 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_bool()
175 static bool qobject_output_type_str(Visitor *v, const char *name, char **obj, in qobject_output_type_str() argument
178 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_str()
187 static bool qobject_output_type_number(Visitor *v, const char *name, in qobject_output_type_number() argument
190 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_number()
195 static bool qobject_output_type_any(Visitor *v, const char *name, in qobject_output_type_any() argument
198 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_any()
204 static bool qobject_output_type_null(Visitor *v, const char *name, in qobject_output_type_null() argument
207 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_type_null()
212 static bool qobject_output_policy_skip(Visitor *v, const char *name, in qobject_output_policy_skip() argument
215 CompatPolicy *pol = &v->compat_policy; in qobject_output_policy_skip()
218 && pol->deprecated_output == COMPAT_POLICY_OUTPUT_HIDE) in qobject_output_policy_skip()
220 && pol->unstable_output == COMPAT_POLICY_OUTPUT_HIDE); in qobject_output_policy_skip()
226 static void qobject_output_complete(Visitor *v, void *opaque) in qobject_output_complete() argument
228 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_complete()
231 assert(qov->root && QSLIST_EMPTY(&qov->stack)); in qobject_output_complete()
232 assert(opaque == qov->result); in qobject_output_complete()
234 *qov->result = qobject_ref(qov->root); in qobject_output_complete()
235 qov->result = NULL; in qobject_output_complete()
238 static void qobject_output_free(Visitor *v) in qobject_output_free() argument
240 QObjectOutputVisitor *qov = to_qov(v); in qobject_output_free()
243 while (!QSLIST_EMPTY(&qov->stack)) { in qobject_output_free()
244 e = QSLIST_FIRST(&qov->stack); in qobject_output_free()
245 QSLIST_REMOVE_HEAD(&qov->stack, node); in qobject_output_free()
249 qobject_unref(qov->root); in qobject_output_free()
255 QObjectOutputVisitor *v; in qobject_output_visitor_new() local
257 v = g_malloc0(sizeof(*v)); in qobject_output_visitor_new()
259 v->visitor.type = VISITOR_OUTPUT; in qobject_output_visitor_new()
260 v->visitor.start_struct = qobject_output_start_struct; in qobject_output_visitor_new()
261 v->visitor.end_struct = qobject_output_end_struct; in qobject_output_visitor_new()
262 v->visitor.start_list = qobject_output_start_list; in qobject_output_visitor_new()
263 v->visitor.next_list = qobject_output_next_list; in qobject_output_visitor_new()
264 v->visitor.end_list = qobject_output_end_list; in qobject_output_visitor_new()
265 v->visitor.type_int64 = qobject_output_type_int64; in qobject_output_visitor_new()
266 v->visitor.type_uint64 = qobject_output_type_uint64; in qobject_output_visitor_new()
267 v->visitor.type_bool = qobject_output_type_bool; in qobject_output_visitor_new()
268 v->visitor.type_str = qobject_output_type_str; in qobject_output_visitor_new()
269 v->visitor.type_number = qobject_output_type_number; in qobject_output_visitor_new()
270 v->visitor.type_any = qobject_output_type_any; in qobject_output_visitor_new()
271 v->visitor.type_null = qobject_output_type_null; in qobject_output_visitor_new()
272 v->visitor.policy_skip = qobject_output_policy_skip; in qobject_output_visitor_new()
273 v->visitor.complete = qobject_output_complete; in qobject_output_visitor_new()
274 v->visitor.free = qobject_output_free; in qobject_output_visitor_new()
277 v->result = result; in qobject_output_visitor_new()
279 return &v->visitor; in qobject_output_visitor_new()