diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2021-03-12 12:35:46 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-03-19 10:18:17 +0100 |
commit | bc2f4fcb1dd1a66ede126593fa091c23a94e3ab8 (patch) | |
tree | 40d23d69ce1f64f69ef3535c2c021befc48eca20 /include/qom | |
parent | 53c9956d8b3f5eb621fb15c6e6ea67e12f9677e7 (diff) |
qom: move user_creatable_add_opts logic to vl.c and QAPIfy it
Emulators are currently using OptsVisitor (via user_creatable_add_opts)
to parse the -object command line option. This has one extra feature,
compared to keyval, which is automatic conversion of integers to lists
as well as support for lists as repeated options:
-object memory-backend-ram,id=pc.ram,size=1048576000,host-nodes=0,policy=bind
So we cannot replace OptsVisitor with keyval right now. Still, this
patch moves the user_creatable_add_opts logic to vl.c since it is
not needed anywhere else, and makes it go through user_creatable_add_qapi.
In order to minimize code changes, the predicate still takes a string.
This can be changed later to use the ObjectType QAPI enum directly.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210312173547.1283477-3-pbonzini@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include/qom')
-rw-r--r-- | include/qom/object_interfaces.h | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/include/qom/object_interfaces.h b/include/qom/object_interfaces.h index fb32330901..81541e2080 100644 --- a/include/qom/object_interfaces.h +++ b/include/qom/object_interfaces.h @@ -94,57 +94,10 @@ Object *user_creatable_add_type(const char *type, const char *id, * * Create an instance of the user creatable object according to the * options passed in @opts as described in the QAPI schema documentation. - * - * Returns: the newly created object or NULL on error */ void user_creatable_add_qapi(ObjectOptions *options, Error **errp); /** - * user_creatable_add_opts: - * @opts: the object definition - * @errp: if an error occurs, a pointer to an area to store the error - * - * Create an instance of the user creatable object whose type - * is defined in @opts by the 'qom-type' option, placing it - * in the object composition tree with name provided by the - * 'id' field. The remaining options in @opts are used to - * initialize the object properties. - * - * Returns: the newly created object or NULL on error - */ -Object *user_creatable_add_opts(QemuOpts *opts, Error **errp); - - -/** - * user_creatable_add_opts_predicate: - * @type: the QOM type to be added - * - * A callback function to determine whether an object - * of type @type should be created. Instances of this - * callback should be passed to user_creatable_add_opts_foreach - */ -typedef bool (*user_creatable_add_opts_predicate)(const char *type); - -/** - * user_creatable_add_opts_foreach: - * @opaque: a user_creatable_add_opts_predicate callback or NULL - * @opts: options to create - * @errp: unused - * - * An iterator callback to be used in conjunction with - * the qemu_opts_foreach() method for creating a list of - * objects from a set of QemuOpts - * - * The @opaque parameter can be passed a user_creatable_add_opts_predicate - * callback to filter which types of object are created during iteration. - * When it fails, report the error. - * - * Returns: 0 on success, -1 when an error was reported. - */ -int user_creatable_add_opts_foreach(void *opaque, - QemuOpts *opts, Error **errp); - -/** * user_creatable_parse_str: * @optarg: the object definition string as passed on the command line * @errp: if an error occurs, a pointer to an area to store the error |