1 #include "qemu/osdep.h" 2 #include "qom/object_interfaces.h" 3 #include "qemu/module.h" 4 5 void user_creatable_complete(Object *obj, Error **errp) 6 { 7 8 UserCreatableClass *ucc; 9 UserCreatable *uc = 10 (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE); 11 12 if (!uc) { 13 return; 14 } 15 16 ucc = USER_CREATABLE_GET_CLASS(uc); 17 if (ucc->complete) { 18 ucc->complete(uc, errp); 19 } 20 } 21 22 bool user_creatable_can_be_deleted(UserCreatable *uc, Error **errp) 23 { 24 25 UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc); 26 27 if (ucc->can_be_deleted) { 28 return ucc->can_be_deleted(uc, errp); 29 } else { 30 return true; 31 } 32 } 33 34 static void register_types(void) 35 { 36 static const TypeInfo uc_interface_info = { 37 .name = TYPE_USER_CREATABLE, 38 .parent = TYPE_INTERFACE, 39 .class_size = sizeof(UserCreatableClass), 40 }; 41 42 type_register_static(&uc_interface_info); 43 } 44 45 type_init(register_types) 46