Lines Matching refs:v
27 void visit_complete(Visitor *v, void *opaque) in visit_complete() argument
29 assert(v->type != VISITOR_OUTPUT || v->complete); in visit_complete()
30 trace_visit_complete(v, opaque); in visit_complete()
31 if (v->complete) { in visit_complete()
32 v->complete(v, opaque); in visit_complete()
36 void visit_free(Visitor *v) in visit_free() argument
38 trace_visit_free(v); in visit_free()
39 if (v) { in visit_free()
40 v->free(v); in visit_free()
44 bool visit_start_struct(Visitor *v, const char *name, void **obj, in visit_start_struct() argument
49 trace_visit_start_struct(v, name, obj, size); in visit_start_struct()
52 assert(!(v->type & VISITOR_OUTPUT) || *obj); in visit_start_struct()
54 ok = v->start_struct(v, name, obj, size, errp); in visit_start_struct()
55 if (obj && (v->type & VISITOR_INPUT)) { in visit_start_struct()
61 bool visit_check_struct(Visitor *v, Error **errp) in visit_check_struct() argument
63 trace_visit_check_struct(v); in visit_check_struct()
64 return v->check_struct ? v->check_struct(v, errp) : true; in visit_check_struct()
67 void visit_end_struct(Visitor *v, void **obj) in visit_end_struct() argument
69 trace_visit_end_struct(v, obj); in visit_end_struct()
70 v->end_struct(v, obj); in visit_end_struct()
73 bool visit_start_list(Visitor *v, const char *name, GenericList **list, in visit_start_list() argument
79 trace_visit_start_list(v, name, list, size); in visit_start_list()
80 ok = v->start_list(v, name, list, size, errp); in visit_start_list()
81 if (list && (v->type & VISITOR_INPUT)) { in visit_start_list()
87 GenericList *visit_next_list(Visitor *v, GenericList *tail, size_t size) in visit_next_list() argument
90 trace_visit_next_list(v, tail, size); in visit_next_list()
91 return v->next_list(v, tail, size); in visit_next_list()
94 bool visit_check_list(Visitor *v, Error **errp) in visit_check_list() argument
96 trace_visit_check_list(v); in visit_check_list()
97 return v->check_list ? v->check_list(v, errp) : true; in visit_check_list()
100 void visit_end_list(Visitor *v, void **obj) in visit_end_list() argument
102 trace_visit_end_list(v, obj); in visit_end_list()
103 v->end_list(v, obj); in visit_end_list()
106 bool visit_start_alternate(Visitor *v, const char *name, in visit_start_alternate() argument
113 assert(!(v->type & VISITOR_OUTPUT) || *obj); in visit_start_alternate()
114 trace_visit_start_alternate(v, name, obj, size); in visit_start_alternate()
115 if (!v->start_alternate) { in visit_start_alternate()
116 assert(!(v->type & VISITOR_INPUT)); in visit_start_alternate()
119 ok = v->start_alternate(v, name, obj, size, errp); in visit_start_alternate()
120 if (v->type & VISITOR_INPUT) { in visit_start_alternate()
126 void visit_end_alternate(Visitor *v, void **obj) in visit_end_alternate() argument
128 trace_visit_end_alternate(v, obj); in visit_end_alternate()
129 if (v->end_alternate) { in visit_end_alternate()
130 v->end_alternate(v, obj); in visit_end_alternate()
134 bool visit_optional(Visitor *v, const char *name, bool *present) in visit_optional() argument
136 trace_visit_optional(v, name, present); in visit_optional()
137 if (v->optional) { in visit_optional()
138 v->optional(v, name, present); in visit_optional()
143 bool visit_policy_reject(Visitor *v, const char *name, in visit_policy_reject() argument
146 trace_visit_policy_reject(v, name); in visit_policy_reject()
147 if (v->policy_reject) { in visit_policy_reject()
148 return v->policy_reject(v, name, special_features, errp); in visit_policy_reject()
153 bool visit_policy_skip(Visitor *v, const char *name, in visit_policy_skip() argument
156 trace_visit_policy_skip(v, name); in visit_policy_skip()
157 if (v->policy_skip) { in visit_policy_skip()
158 return v->policy_skip(v, name, special_features); in visit_policy_skip()
163 void visit_set_policy(Visitor *v, CompatPolicy *policy) in visit_set_policy() argument
165 v->compat_policy = *policy; in visit_set_policy()
168 bool visit_is_input(Visitor *v) in visit_is_input() argument
170 return v->type == VISITOR_INPUT; in visit_is_input()
173 bool visit_is_dealloc(Visitor *v) in visit_is_dealloc() argument
175 return v->type == VISITOR_DEALLOC; in visit_is_dealloc()
178 bool visit_type_int(Visitor *v, const char *name, int64_t *obj, Error **errp) in visit_type_int() argument
181 trace_visit_type_int(v, name, obj); in visit_type_int()
182 return v->type_int64(v, name, obj, errp); in visit_type_int()
185 static bool visit_type_uintN(Visitor *v, uint64_t *obj, const char *name, in visit_type_uintN() argument
190 assert(v->type == VISITOR_INPUT || value <= max); in visit_type_uintN()
192 if (!v->type_uint64(v, name, &value, errp)) { in visit_type_uintN()
196 assert(v->type == VISITOR_INPUT); in visit_type_uintN()
205 bool visit_type_uint8(Visitor *v, const char *name, uint8_t *obj, in visit_type_uint8() argument
211 trace_visit_type_uint8(v, name, obj); in visit_type_uint8()
213 ok = visit_type_uintN(v, &value, name, UINT8_MAX, "uint8_t", errp); in visit_type_uint8()
218 bool visit_type_uint16(Visitor *v, const char *name, uint16_t *obj, in visit_type_uint16() argument
224 trace_visit_type_uint16(v, name, obj); in visit_type_uint16()
226 ok = visit_type_uintN(v, &value, name, UINT16_MAX, "uint16_t", errp); in visit_type_uint16()
231 bool visit_type_uint32(Visitor *v, const char *name, uint32_t *obj, in visit_type_uint32() argument
237 trace_visit_type_uint32(v, name, obj); in visit_type_uint32()
239 ok = visit_type_uintN(v, &value, name, UINT32_MAX, "uint32_t", errp); in visit_type_uint32()
244 bool visit_type_uint64(Visitor *v, const char *name, uint64_t *obj, in visit_type_uint64() argument
248 trace_visit_type_uint64(v, name, obj); in visit_type_uint64()
249 return v->type_uint64(v, name, obj, errp); in visit_type_uint64()
252 static bool visit_type_intN(Visitor *v, int64_t *obj, const char *name, in visit_type_intN() argument
258 assert(v->type == VISITOR_INPUT || (value >= min && value <= max)); in visit_type_intN()
260 if (!v->type_int64(v, name, &value, errp)) { in visit_type_intN()
264 assert(v->type == VISITOR_INPUT); in visit_type_intN()
273 bool visit_type_int8(Visitor *v, const char *name, int8_t *obj, Error **errp) in visit_type_int8() argument
278 trace_visit_type_int8(v, name, obj); in visit_type_int8()
280 ok = visit_type_intN(v, &value, name, INT8_MIN, INT8_MAX, "int8_t", errp); in visit_type_int8()
285 bool visit_type_int16(Visitor *v, const char *name, int16_t *obj, in visit_type_int16() argument
291 trace_visit_type_int16(v, name, obj); in visit_type_int16()
293 ok = visit_type_intN(v, &value, name, INT16_MIN, INT16_MAX, "int16_t", in visit_type_int16()
299 bool visit_type_int32(Visitor *v, const char *name, int32_t *obj, in visit_type_int32() argument
305 trace_visit_type_int32(v, name, obj); in visit_type_int32()
307 ok = visit_type_intN(v, &value, name, INT32_MIN, INT32_MAX, "int32_t", in visit_type_int32()
313 bool visit_type_int64(Visitor *v, const char *name, int64_t *obj, in visit_type_int64() argument
317 trace_visit_type_int64(v, name, obj); in visit_type_int64()
318 return v->type_int64(v, name, obj, errp); in visit_type_int64()
321 bool visit_type_size(Visitor *v, const char *name, uint64_t *obj, in visit_type_size() argument
325 trace_visit_type_size(v, name, obj); in visit_type_size()
326 if (v->type_size) { in visit_type_size()
327 return v->type_size(v, name, obj, errp); in visit_type_size()
329 return v->type_uint64(v, name, obj, errp); in visit_type_size()
332 bool visit_type_bool(Visitor *v, const char *name, bool *obj, Error **errp) in visit_type_bool() argument
335 trace_visit_type_bool(v, name, obj); in visit_type_bool()
336 return v->type_bool(v, name, obj, errp); in visit_type_bool()
339 bool visit_type_str(Visitor *v, const char *name, char **obj, Error **errp) in visit_type_str() argument
348 trace_visit_type_str(v, name, obj); in visit_type_str()
349 ok = v->type_str(v, name, obj, errp); in visit_type_str()
350 if (v->type & VISITOR_INPUT) { in visit_type_str()
356 bool visit_type_number(Visitor *v, const char *name, double *obj, in visit_type_number() argument
360 trace_visit_type_number(v, name, obj); in visit_type_number()
361 return v->type_number(v, name, obj, errp); in visit_type_number()
364 bool visit_type_any(Visitor *v, const char *name, QObject **obj, Error **errp) in visit_type_any() argument
369 assert(v->type != VISITOR_OUTPUT || *obj); in visit_type_any()
370 trace_visit_type_any(v, name, obj); in visit_type_any()
371 ok = v->type_any(v, name, obj, errp); in visit_type_any()
372 if (v->type == VISITOR_INPUT) { in visit_type_any()
378 bool visit_type_null(Visitor *v, const char *name, QNull **obj, in visit_type_null() argument
381 trace_visit_type_null(v, name, obj); in visit_type_null()
382 return v->type_null(v, name, obj, errp); in visit_type_null()
385 static bool output_type_enum(Visitor *v, const char *name, int *obj, in output_type_enum() argument
392 return visit_type_str(v, name, &enum_str, errp); in output_type_enum()
395 static bool input_type_enum(Visitor *v, const char *name, int *obj, in input_type_enum() argument
401 if (!visit_type_str(v, name, &enum_str, errp)) { in input_type_enum()
414 &v->compat_policy, in input_type_enum()
424 bool visit_type_enum(Visitor *v, const char *name, int *obj, in visit_type_enum() argument
428 trace_visit_type_enum(v, name, obj); in visit_type_enum()
429 switch (v->type) { in visit_type_enum()
431 return input_type_enum(v, name, obj, lookup, errp); in visit_type_enum()
433 return output_type_enum(v, name, obj, lookup, errp); in visit_type_enum()