| #include "qom/object_interfaces.h" |
| #include "qemu/module.h" |
| |
| void user_creatable_complete(Object *obj, Error **errp) |
| { |
| |
| UserCreatableClass *ucc; |
| UserCreatable *uc = |
| (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE); |
| |
| if (!uc) { |
| return; |
| } |
| |
| ucc = USER_CREATABLE_GET_CLASS(uc); |
| if (ucc->complete) { |
| ucc->complete(uc, errp); |
| } |
| } |
| |
| bool user_creatable_can_be_deleted(UserCreatable *uc, Error **errp) |
| { |
| |
| UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc); |
| |
| if (ucc->can_be_deleted) { |
| return ucc->can_be_deleted(uc, errp); |
| } else { |
| return true; |
| } |
| } |
| |
| static void register_types(void) |
| { |
| static const TypeInfo uc_interface_info = { |
| .name = TYPE_USER_CREATABLE, |
| .parent = TYPE_INTERFACE, |
| .class_size = sizeof(UserCreatableClass), |
| }; |
| |
| type_register_static(&uc_interface_info); |
| } |
| |
| type_init(register_types) |