[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 07/30] qapi/qom: Add ObjectOptions for rng-*, deprecate 'opene
From: |
Kevin Wolf |
Subject: |
[PATCH v3 07/30] qapi/qom: Add ObjectOptions for rng-*, deprecate 'opened' |
Date: |
Mon, 8 Mar 2021 17:54:17 +0100 |
This adds a QAPI schema for the properties of the rng-* objects.
The 'opened' property doesn't seem to make sense as an external
interface: It is automatically set to true in ucc->complete, and
explicitly setting it to true earlier just means that trying to set
additional options will result in an error. After the property has once
been set to true (i.e. when the object construction has completed), it
can never be reset to false. In other words, the 'opened' property is
useless. Mark it as deprecated in the schema from the start.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
qapi/qom.json | 56 ++++++++++++++++++++++++++++++++++++--
docs/system/deprecated.rst | 9 ++++++
2 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/qapi/qom.json b/qapi/qom.json
index 8c0e06c198..6d3b8c4fe0 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -382,6 +382,52 @@
'*hugetlbsize': 'size',
'*seal': 'bool' } }
+##
+# @RngProperties:
+#
+# Properties for objects of classes derived from rng.
+#
+# @opened: if true, the device is opened immediately when applying this option
+# and will probably fail when processing the next option. Don't use;
+# only provided for compatibility. (default: false)
+#
+# Features:
+# @deprecated: Member @opened is deprecated. Setting true doesn't make sense,
+# and false is already the default.
+#
+# Since: 1.3
+##
+{ 'struct': 'RngProperties',
+ 'data': { '*opened': { 'type': 'bool', 'features': ['deprecated'] } } }
+
+##
+# @RngEgdProperties:
+#
+# Properties for rng-egd objects.
+#
+# @chardev: the name of a character device backend that provides the connection
+# to the RNG daemon
+#
+# Since: 1.3
+##
+{ 'struct': 'RngEgdProperties',
+ 'base': 'RngProperties',
+ 'data': { 'chardev': 'str' } }
+
+##
+# @RngRandomProperties:
+#
+# Properties for rng-random objects.
+#
+# @filename: the filename of the device on the host to obtain entropy from
+# (default: "/dev/urandom")
+#
+# Since: 1.3
+##
+{ 'struct': 'RngRandomProperties',
+ 'base': 'RngProperties',
+ 'data': { '*filename': 'str' } }
+
##
# @ObjectType:
#
@@ -400,7 +446,10 @@
'iothread',
'memory-backend-file',
'memory-backend-memfd',
- 'memory-backend-ram'
+ 'memory-backend-ram',
+ 'rng-builtin',
+ 'rng-egd',
+ 'rng-random'
] }
##
@@ -432,7 +481,10 @@
'memory-backend-file': 'MemoryBackendFileProperties',
'memory-backend-memfd': { 'type': 'MemoryBackendMemfdProperties',
'if': 'defined(CONFIG_LINUX)' },
- 'memory-backend-ram': 'MemoryBackendProperties'
+ 'memory-backend-ram': 'MemoryBackendProperties',
+ 'rng-builtin': 'RngProperties',
+ 'rng-egd': 'RngEgdProperties',
+ 'rng-random': 'RngRandomProperties'
} }
##
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 893f3e8579..3dac79f600 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -153,6 +153,15 @@ The ``-writeconfig`` option is not able to serialize the
entire contents
of the QEMU command line. It is thus considered a failed experiment
and deprecated, with no current replacement.
+``opened`` property of ``rng-*`` objects (since 6.0.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The only effect of specifying ``opened=on`` in the command line or QMP
+``object-add`` is that the device is opened immediately, possibly before all
+other options have been processed. This will either have no effect (if
+``opened`` was the last option) or cause errors. The property is therefore
+useless and should not be specified.
+
QEMU Machine Protocol (QMP) commands
------------------------------------
--
2.29.2
- [PATCH v3 00/30] qapi/qom: QAPIfy --object and object-add, Kevin Wolf, 2021/03/08
- [PATCH v3 01/30] qapi/qom: Drop deprecated 'props' from object-add, Kevin Wolf, 2021/03/08
- [PATCH v3 02/30] qapi/qom: Add ObjectOptions for iothread, Kevin Wolf, 2021/03/08
- [PATCH v3 03/30] qapi/qom: Add ObjectOptions for authz-*, Kevin Wolf, 2021/03/08
- [PATCH v3 04/30] qapi/qom: Add ObjectOptions for cryptodev-*, Kevin Wolf, 2021/03/08
- [PATCH v3 05/30] qapi/qom: Add ObjectOptions for dbus-vmstate, Kevin Wolf, 2021/03/08
- [PATCH v3 06/30] qapi/qom: Add ObjectOptions for memory-backend-*, Kevin Wolf, 2021/03/08
- [PATCH v3 07/30] qapi/qom: Add ObjectOptions for rng-*, deprecate 'opened',
Kevin Wolf <=
- [PATCH v3 09/30] qapi/qom: Add ObjectOptions for secret*, deprecate 'loaded', Kevin Wolf, 2021/03/08
- [PATCH v3 10/30] qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded', Kevin Wolf, 2021/03/08
- [PATCH v3 11/30] qapi/qom: Add ObjectOptions for can-*, Kevin Wolf, 2021/03/08
- [PATCH v3 12/30] qapi/qom: Add ObjectOptions for colo-compare, Kevin Wolf, 2021/03/08
- [PATCH v3 14/30] qapi/qom: Add ObjectOptions for pr-manager-helper, Kevin Wolf, 2021/03/08
- [PATCH v3 13/30] qapi/qom: Add ObjectOptions for filter-*, Kevin Wolf, 2021/03/08
- [PATCH v3 17/30] qapi/qom: Add ObjectOptions for x-remote-object, Kevin Wolf, 2021/03/08
- [PATCH v3 18/30] qapi/qom: QAPIfy object-add, Kevin Wolf, 2021/03/08