qom: move user_creatable_add_opts logic to vl.c and QAPIfy it
commitbc2f4fcb1dd1a66ede126593fa091c23a94e3ab8
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 12 Mar 2021 17:35:46 +0000 (12 12:35 -0500)
committerKevin Wolf <kwolf@redhat.com>
Fri, 19 Mar 2021 09:18:17 +0000 (19 10:18 +0100)
tree40d23d69ce1f64f69ef3535c2c021befc48eca20
parent53c9956d8b3f5eb621fb15c6e6ea67e12f9677e7
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>
include/qom/object_interfaces.h
qom/object_interfaces.c
softmmu/vl.c