diff --git a/vl.c b/vl.c index a867c9c4d9eb4b119fca8fc3ae47a0d49728f1d8..f254b99bdb7d83fc9dd834b1bcac4497f6661a45 100644 --- a/vl.c +++ b/vl.c @@ -2698,6 +2698,19 @@ static int machine_set_property(void *opaque, */ static bool object_create_initial(const char *type) { + if (is_help_option(type)) { + GSList *l, *list; + + printf("List of user creatable objects:\n"); + list = object_class_get_list_sorted(TYPE_USER_CREATABLE, false); + for (l = list; l != NULL; l = l->next) { + ObjectClass *oc = OBJECT_CLASS(l->data); + printf("%s\n", object_class_get_name(oc)); + } + g_slist_free(list); + exit(0); + } + if (g_str_equal(type, "rng-egd") || g_str_has_prefix(type, "pr-manager-")) { return false;