#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)