Lines Matching full:obj

62     void (*instance_init)(Object *obj);
63 void (*instance_post_init)(Object *obj);
64 void (*instance_finalize)(Object *obj);
421 static void object_init_with_type(Object *obj, TypeImpl *ti) in object_init_with_type() argument
424 object_init_with_type(obj, type_get_parent(ti)); in object_init_with_type()
428 ti->instance_init(obj); in object_init_with_type()
432 static void object_post_init_with_type(Object *obj, TypeImpl *ti) in object_post_init_with_type() argument
435 object_post_init_with_type(obj, type_get_parent(ti)); in object_post_init_with_type()
439 ti->instance_post_init(obj); in object_post_init_with_type()
443 bool object_apply_global_props(Object *obj, const GPtrArray *props, in object_apply_global_props() argument
456 if (object_dynamic_cast(obj, p->driver) == NULL) { in object_apply_global_props()
459 if (p->optional && !object_property_find(obj, p->property)) { in object_apply_global_props()
463 if (!object_property_parse(obj, p->property, p->value, &err)) { in object_apply_global_props()
533 void object_apply_compat_props(Object *obj) in object_apply_compat_props() argument
538 object_apply_global_props(obj, object_compat_props[i], in object_apply_compat_props()
543 static void object_class_property_init_all(Object *obj) in object_class_property_init_all() argument
548 object_class_property_iter_init(&iter, object_get_class(obj)); in object_class_property_init_all()
551 prop->init(obj, prop); in object_class_property_init_all()
556 static void object_initialize_with_type(Object *obj, size_t size, TypeImpl *type) in object_initialize_with_type() argument
564 memset(obj, 0, type->instance_size); in object_initialize_with_type()
565 obj->class = type->class; in object_initialize_with_type()
566 object_ref(obj); in object_initialize_with_type()
567 object_class_property_init_all(obj); in object_initialize_with_type()
568 obj->properties = g_hash_table_new_full(g_str_hash, g_str_equal, in object_initialize_with_type()
570 object_init_with_type(obj, type); in object_initialize_with_type()
571 object_post_init_with_type(obj, type); in object_initialize_with_type()
605 Object *obj; in object_initialize_child_with_propsv() local
609 obj = OBJECT(childobj); in object_initialize_child_with_propsv()
611 if (!object_set_propv(obj, errp, vargs)) { in object_initialize_child_with_propsv()
615 object_property_add_child(parentobj, propname, obj); in object_initialize_child_with_propsv()
617 uc = (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE); in object_initialize_child_with_propsv()
620 object_unparent(obj); in object_initialize_child_with_propsv()
629 * We want @obj's reference to be 1 on success, 0 on failure. in object_initialize_child_with_propsv()
636 object_unref(obj); in object_initialize_child_with_propsv()
654 static void object_property_del_all(Object *obj) in object_property_del_all() argument
663 object_property_iter_init(&iter, obj); in object_property_del_all()
667 prop->release(obj, prop->name, prop->opaque); in object_property_del_all()
675 g_hash_table_unref(obj->properties); in object_property_del_all()
678 static void object_property_del_child(Object *obj, Object *child) in object_property_del_child() argument
684 g_hash_table_iter_init(&iter, obj->properties); in object_property_del_child()
689 prop->release(obj, prop->name, prop->opaque); in object_property_del_child()
695 g_hash_table_iter_init(&iter, obj->properties); in object_property_del_child()
705 void object_unparent(Object *obj) in object_unparent() argument
707 if (obj->parent) { in object_unparent()
708 object_property_del_child(obj->parent, obj); in object_unparent()
712 static void object_deinit(Object *obj, TypeImpl *type) in object_deinit() argument
715 type->instance_finalize(obj); in object_deinit()
719 object_deinit(obj, type_get_parent(type)); in object_deinit()
725 Object *obj = data; in object_finalize() local
726 TypeImpl *ti = obj->class->type; in object_finalize()
728 object_property_del_all(obj); in object_finalize()
729 object_deinit(obj, ti); in object_finalize()
731 g_assert(obj->ref == 0); in object_finalize()
732 g_assert(obj->parent == NULL); in object_finalize()
733 if (obj->free) { in object_finalize()
734 obj->free(obj); in object_finalize()
752 Object *obj; in object_new_with_type() local
767 obj = g_malloc(size); in object_new_with_type()
770 obj = qemu_memalign(align, size); in object_new_with_type()
774 object_initialize_with_type(obj, size, type); in object_new_with_type()
775 obj->free = obj_free; in object_new_with_type()
777 return obj; in object_new_with_type()
800 Object *obj; in object_new_with_props() local
803 obj = object_new_with_propv(typename, parent, id, errp, vargs); in object_new_with_props()
806 return obj; in object_new_with_props()
816 Object *obj; in object_new_with_propv() local
830 obj = object_new_with_type(klass->type); in object_new_with_propv()
832 if (!object_set_propv(obj, errp, vargs)) { in object_new_with_propv()
837 object_property_add_child(parent, id, obj); in object_new_with_propv()
840 uc = (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE); in object_new_with_propv()
844 object_unparent(obj); in object_new_with_propv()
850 object_unref(obj); in object_new_with_propv()
851 return obj; in object_new_with_propv()
854 object_unref(obj); in object_new_with_propv()
859 bool object_set_props(Object *obj, in object_set_props() argument
867 ret = object_set_propv(obj, errp, vargs); in object_set_props()
874 bool object_set_propv(Object *obj, in object_set_propv() argument
885 if (!object_property_parse(obj, propname, value, errp)) { in object_set_propv()
895 Object *object_dynamic_cast(Object *obj, const char *typename) in object_dynamic_cast() argument
897 if (obj && object_class_dynamic_cast(object_get_class(obj), typename)) { in object_dynamic_cast()
898 return obj; in object_dynamic_cast()
904 Object *object_dynamic_cast_assert(Object *obj, const char *typename, in object_dynamic_cast_assert() argument
907 trace_object_dynamic_cast_assert(obj ? obj->class->type->name : "(null)", in object_dynamic_cast_assert()
914 for (i = 0; obj && i < OBJECT_CLASS_CAST_CACHE; i++) { in object_dynamic_cast_assert()
915 if (qatomic_read(&obj->class->object_cast_cache[i]) == typename) { in object_dynamic_cast_assert()
920 inst = object_dynamic_cast(obj, typename); in object_dynamic_cast_assert()
922 if (!inst && obj) { in object_dynamic_cast_assert()
924 file, line, func, obj, typename); in object_dynamic_cast_assert()
928 assert(obj == inst); in object_dynamic_cast_assert()
930 if (obj && obj == inst) { in object_dynamic_cast_assert()
932 qatomic_set(&obj->class->object_cast_cache[i - 1], in object_dynamic_cast_assert()
933 qatomic_read(&obj->class->object_cast_cache[i])); in object_dynamic_cast_assert()
935 qatomic_set(&obj->class->object_cast_cache[i - 1], typename); in object_dynamic_cast_assert()
940 return obj; in object_dynamic_cast_assert()
1036 const char *object_get_typename(const Object *obj) in object_get_typename() argument
1038 return obj->class->type->name; in object_get_typename()
1041 ObjectClass *object_get_class(Object *obj) in object_get_class() argument
1043 return obj->class; in object_get_class()
1136 static int do_object_child_foreach(Object *obj, in do_object_child_foreach() argument
1144 g_hash_table_iter_init(&iter, obj->properties); in do_object_child_foreach()
1164 int object_child_foreach(Object *obj, int (*fn)(Object *child, void *opaque), in object_child_foreach() argument
1167 return do_object_child_foreach(obj, fn, opaque, false); in object_child_foreach()
1170 int object_child_foreach_recursive(Object *obj, in object_child_foreach_recursive() argument
1174 return do_object_child_foreach(obj, fn, opaque, true); in object_child_foreach_recursive()
1210 Object *obj = OBJECT(objptr); in object_ref() local
1213 if (!obj) { in object_ref()
1216 ref = qatomic_fetch_inc(&obj->ref); in object_ref()
1219 return obj; in object_ref()
1224 Object *obj = OBJECT(objptr); in object_unref() local
1225 if (!obj) { in object_unref()
1228 g_assert(obj->ref > 0); in object_unref()
1231 if (qatomic_fetch_dec(&obj->ref) == 1) { in object_unref()
1232 object_finalize(obj); in object_unref()
1237 object_property_try_add(Object *obj, const char *name, const char *type, in object_property_try_add() argument
1255 ret = object_property_try_add(obj, full_name, type, get, set, in object_property_try_add()
1267 if (object_property_find(obj, name) != NULL) { in object_property_try_add()
1269 name, object_get_typename(obj)); in object_property_try_add()
1283 g_hash_table_insert(obj->properties, prop->name, prop); in object_property_try_add()
1288 object_property_add(Object *obj, const char *name, const char *type, in object_property_add() argument
1294 return object_property_try_add(obj, name, type, get, set, release, in object_property_add()
1326 ObjectProperty *object_property_find(Object *obj, const char *name) in object_property_find() argument
1329 ObjectClass *klass = object_get_class(obj); in object_property_find()
1336 return g_hash_table_lookup(obj->properties, name); in object_property_find()
1339 ObjectProperty *object_property_find_err(Object *obj, const char *name, in object_property_find_err() argument
1342 ObjectProperty *prop = object_property_find(obj, name); in object_property_find_err()
1345 object_get_typename(obj), name); in object_property_find_err()
1351 Object *obj) in object_property_iter_init() argument
1353 g_hash_table_iter_init(&iter->iter, obj->properties); in object_property_iter_init()
1354 iter->nextclass = object_get_class(obj); in object_property_iter_init()
1405 void object_property_del(Object *obj, const char *name) in object_property_del() argument
1407 ObjectProperty *prop = g_hash_table_lookup(obj->properties, name); in object_property_del()
1410 prop->release(obj, name, prop->opaque); in object_property_del()
1412 g_hash_table_remove(obj->properties, name); in object_property_del()
1415 bool object_property_get(Object *obj, const char *name, Visitor *v, in object_property_get() argument
1419 ObjectProperty *prop = object_property_find_err(obj, name, errp); in object_property_get()
1427 object_get_typename(obj), name); in object_property_get()
1430 prop->get(obj, v, name, prop->opaque, &err); in object_property_get()
1435 bool object_property_set(Object *obj, const char *name, Visitor *v, in object_property_set() argument
1439 ObjectProperty *prop = object_property_find_err(obj, name, errp); in object_property_set()
1447 object_get_typename(obj), name); in object_property_set()
1450 prop->set(obj, v, name, prop->opaque, errp); in object_property_set()
1454 bool object_property_set_str(Object *obj, const char *name, in object_property_set_str() argument
1458 bool ok = object_property_set_qobject(obj, name, QOBJECT(qstr), errp); in object_property_set_str()
1464 char *object_property_get_str(Object *obj, const char *name, in object_property_get_str() argument
1467 QObject *ret = object_property_get_qobject(obj, name, errp); in object_property_get_str()
1487 bool object_property_set_link(Object *obj, const char *name, in object_property_set_link() argument
1495 return object_property_set_str(obj, name, path ?: "", errp); in object_property_set_link()
1498 Object *object_property_get_link(Object *obj, const char *name, in object_property_get_link() argument
1501 char *str = object_property_get_str(obj, name, errp); in object_property_get_link()
1516 bool object_property_set_bool(Object *obj, const char *name, in object_property_set_bool() argument
1520 bool ok = object_property_set_qobject(obj, name, QOBJECT(qbool), errp); in object_property_set_bool()
1526 bool object_property_get_bool(Object *obj, const char *name, in object_property_get_bool() argument
1529 QObject *ret = object_property_get_qobject(obj, name, errp); in object_property_get_bool()
1549 bool object_property_set_int(Object *obj, const char *name, in object_property_set_int() argument
1553 bool ok = object_property_set_qobject(obj, name, QOBJECT(qnum), errp); in object_property_set_int()
1559 int64_t object_property_get_int(Object *obj, const char *name, in object_property_get_int() argument
1562 QObject *ret = object_property_get_qobject(obj, name, errp); in object_property_get_int()
1581 static void object_property_init_defval(Object *obj, ObjectProperty *prop) in object_property_init_defval() argument
1586 prop->set(obj, v, prop->name, prop->opaque, &error_abort); in object_property_init_defval()
1625 bool object_property_set_uint(Object *obj, const char *name, in object_property_set_uint() argument
1629 bool ok = object_property_set_qobject(obj, name, QOBJECT(qnum), errp); in object_property_set_uint()
1635 uint64_t object_property_get_uint(Object *obj, const char *name, in object_property_get_uint() argument
1638 QObject *ret = object_property_get_qobject(obj, name, errp); in object_property_get_uint()
1662 int object_property_get_enum(Object *obj, const char *name, in object_property_get_enum() argument
1667 ObjectProperty *prop = object_property_find_err(obj, name, errp); in object_property_get_enum()
1677 object_get_class(obj)), typename); in object_property_get_enum()
1683 str = object_property_get_str(obj, name, errp); in object_property_get_enum()
1694 bool object_property_parse(Object *obj, const char *name, in object_property_parse() argument
1698 bool ok = object_property_set(obj, name, v, errp); in object_property_parse()
1704 char *object_property_print(Object *obj, const char *name, bool human, in object_property_print() argument
1711 if (!object_property_get(obj, name, v, errp)) { in object_property_print()
1722 const char *object_property_get_type(Object *obj, const char *name, Error **errp) in object_property_get_type() argument
1724 ObjectProperty *prop = object_property_find_err(obj, name, errp); in object_property_get_type()
1791 static void object_get_child_property(Object *obj, Visitor *v, in object_get_child_property() argument
1809 static void object_finalize_child_property(Object *obj, const char *name, in object_finalize_child_property() argument
1822 object_property_try_add_child(Object *obj, const char *name, in object_property_try_add_child() argument
1832 op = object_property_try_add(obj, name, type, object_get_child_property, in object_property_try_add_child()
1840 child->parent = obj; in object_property_try_add_child()
1845 object_property_add_child(Object *obj, const char *name, in object_property_add_child() argument
1848 return object_property_try_add_child(obj, name, child, &error_abort); in object_property_add_child()
1851 void object_property_allow_set_link(const Object *obj, const char *name, in object_property_allow_set_link() argument
1868 object_link_get_targetp(Object *obj, LinkProperty *lprop) in object_link_get_targetp() argument
1873 return (void *)obj + lprop->offset; in object_link_get_targetp()
1879 static void object_get_link_property(Object *obj, Visitor *v, in object_get_link_property() argument
1884 Object **targetp = object_link_get_targetp(obj, lprop); in object_get_link_property()
1906 static Object *object_resolve_link(Object *obj, const char *name, in object_resolve_link() argument
1915 type = object_property_get_type(obj, name, NULL); in object_resolve_link()
1938 static void object_set_link_property(Object *obj, Visitor *v, in object_set_link_property() argument
1944 Object **targetp = object_link_get_targetp(obj, prop); in object_set_link_property()
1954 new_target = object_resolve_link(obj, name, path, errp); in object_set_link_property()
1965 prop->check(obj, name, new_target, &local_err); in object_set_link_property()
1986 static void object_release_link_property(Object *obj, const char *name, in object_release_link_property() argument
1990 Object **targetp = object_link_get_targetp(obj, prop); in object_release_link_property()
2001 object_add_link_prop(Object *obj, const char *name, in object_add_link_prop() argument
2021 op = object_property_add(obj, name, full_type, in object_add_link_prop()
2031 object_property_add_link(Object *obj, const char *name, in object_property_add_link() argument
2037 return object_add_link_prop(obj, name, type, targetp, check, flags); in object_property_add_link()
2044 void (*check)(const Object *obj, const char *name, in object_class_property_add_link() argument
2071 object_property_add_const_link(Object *obj, const char *name, in object_property_add_const_link() argument
2074 return object_add_link_prop(obj, name, in object_property_add_const_link()
2079 const char *object_get_canonical_path_component(const Object *obj) in object_get_canonical_path_component() argument
2084 if (obj->parent == NULL) { in object_get_canonical_path_component()
2088 g_hash_table_iter_init(&iter, obj->parent->properties); in object_get_canonical_path_component()
2094 if (prop->opaque == obj) { in object_get_canonical_path_component()
2099 /* obj had a parent but was not a child, should never happen */ in object_get_canonical_path_component()
2103 char *object_get_canonical_path(const Object *obj) in object_get_canonical_path() argument
2108 if (obj == root) { in object_get_canonical_path()
2113 const char *component = object_get_canonical_path_component(obj); in object_get_canonical_path()
2126 obj = obj->parent; in object_get_canonical_path()
2127 } while (obj != root); in object_get_canonical_path()
2173 Object *obj; in object_resolve_partial_path() local
2177 obj = object_resolve_abs_path(parent, parts, typename); in object_resolve_partial_path()
2190 if (obj) { in object_resolve_partial_path()
2194 obj = found; in object_resolve_partial_path()
2202 return obj; in object_resolve_partial_path()
2208 Object *obj; in object_resolve_path_type() local
2216 obj = object_resolve_partial_path(object_get_root(), parts, in object_resolve_path_type()
2222 obj = object_resolve_abs_path(object_get_root(), parts + 1, typename); in object_resolve_path_type()
2230 return obj; in object_resolve_path_type()
2271 static void property_get_str(Object *obj, Visitor *v, const char *name, in property_get_str() argument
2278 value = prop->get(obj, &err); in property_get_str()
2288 static void property_set_str(Object *obj, Visitor *v, const char *name, in property_set_str() argument
2298 prop->set(obj, value, errp); in property_set_str()
2302 static void property_release_data(Object *obj, const char *name, in property_release_data() argument
2309 object_property_add_str(Object *obj, const char *name, in object_property_add_str() argument
2318 return object_property_add(obj, name, "string", in object_property_add_str()
2349 static void property_get_bool(Object *obj, Visitor *v, const char *name, in property_get_bool() argument
2356 value = prop->get(obj, &err); in property_get_bool()
2365 static void property_set_bool(Object *obj, Visitor *v, const char *name, in property_set_bool() argument
2375 prop->set(obj, value, errp); in property_set_bool()
2379 object_property_add_bool(Object *obj, const char *name, in object_property_add_bool() argument
2388 return object_property_add(obj, name, "bool", in object_property_add_bool()
2412 static void property_get_enum(Object *obj, Visitor *v, const char *name, in property_get_enum() argument
2419 value = prop->get(obj, &err); in property_get_enum()
2428 static void property_set_enum(Object *obj, Visitor *v, const char *name, in property_set_enum() argument
2437 prop->set(obj, value, errp); in property_set_enum()
2441 object_property_add_enum(Object *obj, const char *name, in object_property_add_enum() argument
2453 return object_property_add(obj, name, typename, in object_property_add_enum()
2484 static void property_get_tm(Object *obj, Visitor *v, const char *name, in property_get_tm() argument
2491 prop->get(obj, &value, &err); in property_get_tm()
2524 object_property_add_tm(Object *obj, const char *name, in object_property_add_tm() argument
2531 return object_property_add(obj, name, "struct tm", in object_property_add_tm()
2550 static char *object_get_type(Object *obj, Error **errp) in object_get_type() argument
2552 return g_strdup(object_get_typename(obj)); in object_get_type()
2555 static void property_get_uint8_ptr(Object *obj, Visitor *v, const char *name, in property_get_uint8_ptr() argument
2562 static void property_set_uint8_ptr(Object *obj, Visitor *v, const char *name, in property_set_uint8_ptr() argument
2575 static void property_get_uint16_ptr(Object *obj, Visitor *v, const char *name, in property_get_uint16_ptr() argument
2582 static void property_set_uint16_ptr(Object *obj, Visitor *v, const char *name, in property_set_uint16_ptr() argument
2595 static void property_get_uint32_ptr(Object *obj, Visitor *v, const char *name, in property_get_uint32_ptr() argument
2602 static void property_set_uint32_ptr(Object *obj, Visitor *v, const char *name, in property_set_uint32_ptr() argument
2615 static void property_get_uint64_ptr(Object *obj, Visitor *v, const char *name, in property_get_uint64_ptr() argument
2622 static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *name, in property_set_uint64_ptr() argument
2636 object_property_add_uint8_ptr(Object *obj, const char *name, in object_property_add_uint8_ptr() argument
2651 return object_property_add(obj, name, "uint8", in object_property_add_uint8_ptr()
2676 object_property_add_uint16_ptr(Object *obj, const char *name, in object_property_add_uint16_ptr() argument
2691 return object_property_add(obj, name, "uint16", in object_property_add_uint16_ptr()
2716 object_property_add_uint32_ptr(Object *obj, const char *name, in object_property_add_uint32_ptr() argument
2731 return object_property_add(obj, name, "uint32", in object_property_add_uint32_ptr()
2756 object_property_add_uint64_ptr(Object *obj, const char *name, in object_property_add_uint64_ptr() argument
2771 return object_property_add(obj, name, "uint64", in object_property_add_uint64_ptr()
2800 static void property_get_alias(Object *obj, Visitor *v, const char *name, in property_get_alias() argument
2810 static void property_set_alias(Object *obj, Visitor *v, const char *name, in property_set_alias() argument
2820 static Object *property_resolve_alias(Object *obj, void *opaque, in property_resolve_alias() argument
2828 static void property_release_alias(Object *obj, const char *name, void *opaque) in property_release_alias() argument
2837 object_property_add_alias(Object *obj, const char *name, in object_property_add_alias() argument
2859 op = object_property_add(obj, name, prop_type, in object_property_add_alias()
2869 object_property_set_description(obj, op->name, in object_property_add_alias()
2874 void object_property_set_description(Object *obj, const char *name, in object_property_set_description() argument
2879 op = object_property_find_err(obj, name, &error_abort); in object_property_set_description()