[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 14/18] qapi/qdev.json: unite DEVICE_* event data into sing
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v5 14/18] qapi/qdev.json: unite DEVICE_* event data into single structure |
Date: |
Wed, 1 Mar 2023 16:08:24 -0500 |
On Thu, Feb 16, 2023 at 09:03:52PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> DEVICE_DELETED and DEVICE_UNPLUG_GUEST_ERROR has equal data, let's
> refactor it to one structure. That also helps to add new events
> consistently.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Needs ack from QAPI maintainers.
> ---
> qapi/qdev.json | 39 +++++++++++++++++++++++++++------------
> 1 file changed, 27 insertions(+), 12 deletions(-)
>
> diff --git a/qapi/qdev.json b/qapi/qdev.json
> index 2708fb4e99..135cd81586 100644
> --- a/qapi/qdev.json
> +++ b/qapi/qdev.json
> @@ -114,16 +114,37 @@
> { 'command': 'device_del', 'data': {'id': 'str'} }
>
> ##
> -# @DEVICE_DELETED:
> +# @DeviceAndPath:
> #
> -# Emitted whenever the device removal completion is acknowledged by the
> guest.
> -# At this point, it's safe to reuse the specified device ID. Device removal
> can
> -# be initiated by the guest or by HMP/QMP commands.
> +# In events we designate devices by both their ID (if the device has one)
> +# and QOM path.
> +#
> +# Why we need ID? User specify ID in device_add command and in command line
> +# and expects same identifier in the event data.
> +#
> +# Why we need QOM path? Some devices don't have ID and we still want to emit
> +# events for them.
> +#
> +# So, we have a bit of redundancy, as QOM path for device that has ID is
> +# always /machine/peripheral/ID. But that's hard to change keeping both
> +# simple interface for most users and universality for the generic case.
> #
> # @device: the device's ID if it has one
> #
> # @path: the device's QOM path
> #
> +# Since: 8.0
> +##
> +{ 'struct': 'DeviceAndPath',
> + 'data': { '*device': 'str', 'path': 'str' } }
> +
> +##
> +# @DEVICE_DELETED:
> +#
> +# Emitted whenever the device removal completion is acknowledged by the
> guest.
> +# At this point, it's safe to reuse the specified device ID. Device removal
> can
> +# be initiated by the guest or by HMP/QMP commands.
> +#
> # Since: 1.5
> #
> # Example:
> @@ -134,18 +155,13 @@
> # "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
> #
> ##
> -{ 'event': 'DEVICE_DELETED',
> - 'data': { '*device': 'str', 'path': 'str' } }
> +{ 'event': 'DEVICE_DELETED', 'data': 'DeviceAndPath' }
>
> ##
> # @DEVICE_UNPLUG_GUEST_ERROR:
> #
> # Emitted when a device hot unplug fails due to a guest reported error.
> #
> -# @device: the device's ID if it has one
> -#
> -# @path: the device's QOM path
> -#
> # Since: 6.2
> #
> # Example:
> @@ -156,5 +172,4 @@
> # "timestamp": { "seconds": 1615570772, "microseconds": 202844 } }
> #
> ##
> -{ 'event': 'DEVICE_UNPLUG_GUEST_ERROR',
> - 'data': { '*device': 'str', 'path': 'str' } }
> +{ 'event': 'DEVICE_UNPLUG_GUEST_ERROR', 'data': 'DeviceAndPath' }
> --
> 2.34.1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v5 14/18] qapi/qdev.json: unite DEVICE_* event data into single structure,
Michael S. Tsirkin <=