This commit effectively reverts commit 183e4281a30962, which moved
the RTC_CHANGE event to the target schema. That change was an
attempt to make the event target-specific to improve introspection,
but the event isn't really target-specific: it's machine or device
specific. Putting RTC_CHANGE in the target schema with an ifdef list
reduces maintainability (by adding an if: list with a long list of
targets that needs to be manually updated as architectures are added
or removed or as new devices gain the RTC_CHANGE functionality) and
increases compile time (by preventing RTC devices which emit the
event from being "compile once" rather than "compile once per
target", because qapi-events-misc-target.h uses TARGET_* ifdefs,
which are poisoned in "compile once" files.)
Move RTC_CHANGE back to misc.json.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
qapi/misc-target.json | 33 ---------------------------------
qapi/misc.json | 22 ++++++++++++++++++++++
hw/ppc/spapr_rtc.c | 2 +-
hw/rtc/mc146818rtc.c | 2 +-
4 files changed, 24 insertions(+), 35 deletions(-)
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index 3b05ad3dbfb..f442421e838 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -2,39 +2,6 @@
# vim: filetype=python
#
-##
-# @RTC_CHANGE:
-#
-# Emitted when the guest changes the RTC time.
-#
-# @offset: offset between base RTC clock (as specified by -rtc base), and
-# new RTC clock value
-#
-# Note: This event is rate-limited.
-#
-# Since: 0.13
-#
-# Example:
-#
-# <- { "event": "RTC_CHANGE",
-# "data": { "offset": 78 },
-# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
-#
-##
-{ 'event': 'RTC_CHANGE',
- 'data': { 'offset': 'int' },
- 'if': { 'any': [ 'TARGET_ALPHA',
- 'TARGET_ARM',
- 'TARGET_HPPA',
- 'TARGET_I386',
- 'TARGET_MIPS',
- 'TARGET_MIPS64',
- 'TARGET_PPC',
- 'TARGET_PPC64',
- 'TARGET_S390X',
- 'TARGET_SH4',
- 'TARGET_SPARC' ] } }
-
##
# @rtc-reset-reinjection:
#
diff --git a/qapi/misc.json b/qapi/misc.json
index 5c2ca3b5566..ce7edd3f7bf 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -523,3 +523,25 @@
'data': { '*option': 'str' },
'returns': ['CommandLineOptionInfo'],
'allow-preconfig': true }
+
+##
+# @RTC_CHANGE:
+#
+# Emitted when the guest changes the RTC time.
+#
+# @offset: offset between base RTC clock (as specified by -rtc base), and
+# new RTC clock value
+#
+# Note: This event is rate-limited.
+#
+# Since: 0.13
+#
+# Example:
+#
+# <- { "event": "RTC_CHANGE",
+# "data": { "offset": 78 },
+# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
+#
+##
+{ 'event': 'RTC_CHANGE',
+ 'data': { 'offset': 'int' } }
diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c
index fba4dfca358..7a185d45400 100644
--- a/hw/ppc/spapr_rtc.c
+++ b/hw/ppc/spapr_rtc.c
@@ -32,7 +32,7 @@
#include "hw/ppc/spapr.h"
#include "migration/vmstate.h"
#include "qapi/error.h"
-#include "qapi/qapi-events-misc-target.h"
+#include "qapi/qapi-events-misc.h"
#include "qemu/cutils.h"
#include "qemu/module.h"
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index 4fbafddb226..5ecf96142a1 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -40,7 +40,7 @@
#include "hw/rtc/mc146818rtc_regs.h"
#include "migration/vmstate.h"
#include "qapi/error.h"
-#include "qapi/qapi-events-misc-target.h"
+#include "qapi/qapi-events-misc.h"
#include "qapi/visitor.h"
#include "hw/rtc/mc146818rtc_regs.h"
--
2.20.1
On Fri, 24 Sep 2021 15:01:41 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:
> This commit effectively reverts commit 183e4281a30962, which moved
> the RTC_CHANGE event to the target schema. That change was an
> attempt to make the event target-specific to improve introspection,
> but the event isn't really target-specific: it's machine or device
> specific. Putting RTC_CHANGE in the target schema with an ifdef list
> reduces maintainability (by adding an if: list with a long list of
> targets that needs to be manually updated as architectures are added
> or removed or as new devices gain the RTC_CHANGE functionality) and
> increases compile time (by preventing RTC devices which emit the
> event from being "compile once" rather than "compile once per
> target", because qapi-events-misc-target.h uses TARGET_* ifdefs,
> which are poisoned in "compile once" files.)
>
> Move RTC_CHANGE back to misc.json.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
For the ppc part,
Acked-by: Greg Kurz <groug@kaod.org>
> qapi/misc-target.json | 33 ---------------------------------
> qapi/misc.json | 22 ++++++++++++++++++++++
> hw/ppc/spapr_rtc.c | 2 +-
> hw/rtc/mc146818rtc.c | 2 +-
> 4 files changed, 24 insertions(+), 35 deletions(-)
>
> diff --git a/qapi/misc-target.json b/qapi/misc-target.json
> index 3b05ad3dbfb..f442421e838 100644
> --- a/qapi/misc-target.json
> +++ b/qapi/misc-target.json
> @@ -2,39 +2,6 @@
> # vim: filetype=python
> #
>
> -##
> -# @RTC_CHANGE:
> -#
> -# Emitted when the guest changes the RTC time.
> -#
> -# @offset: offset between base RTC clock (as specified by -rtc base), and
> -# new RTC clock value
> -#
> -# Note: This event is rate-limited.
> -#
> -# Since: 0.13
> -#
> -# Example:
> -#
> -# <- { "event": "RTC_CHANGE",
> -# "data": { "offset": 78 },
> -# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
> -#
> -##
> -{ 'event': 'RTC_CHANGE',
> - 'data': { 'offset': 'int' },
> - 'if': { 'any': [ 'TARGET_ALPHA',
> - 'TARGET_ARM',
> - 'TARGET_HPPA',
> - 'TARGET_I386',
> - 'TARGET_MIPS',
> - 'TARGET_MIPS64',
> - 'TARGET_PPC',
> - 'TARGET_PPC64',
> - 'TARGET_S390X',
> - 'TARGET_SH4',
> - 'TARGET_SPARC' ] } }
> -
> ##
> # @rtc-reset-reinjection:
> #
> diff --git a/qapi/misc.json b/qapi/misc.json
> index 5c2ca3b5566..ce7edd3f7bf 100644
> --- a/qapi/misc.json
> +++ b/qapi/misc.json
> @@ -523,3 +523,25 @@
> 'data': { '*option': 'str' },
> 'returns': ['CommandLineOptionInfo'],
> 'allow-preconfig': true }
> +
> +##
> +# @RTC_CHANGE:
> +#
> +# Emitted when the guest changes the RTC time.
> +#
> +# @offset: offset between base RTC clock (as specified by -rtc base), and
> +# new RTC clock value
> +#
> +# Note: This event is rate-limited.
> +#
> +# Since: 0.13
> +#
> +# Example:
> +#
> +# <- { "event": "RTC_CHANGE",
> +# "data": { "offset": 78 },
> +# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
> +#
> +##
> +{ 'event': 'RTC_CHANGE',
> + 'data': { 'offset': 'int' } }
> diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c
> index fba4dfca358..7a185d45400 100644
> --- a/hw/ppc/spapr_rtc.c
> +++ b/hw/ppc/spapr_rtc.c
> @@ -32,7 +32,7 @@
> #include "hw/ppc/spapr.h"
> #include "migration/vmstate.h"
> #include "qapi/error.h"
> -#include "qapi/qapi-events-misc-target.h"
> +#include "qapi/qapi-events-misc.h"
> #include "qemu/cutils.h"
> #include "qemu/module.h"
>
> diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
> index 4fbafddb226..5ecf96142a1 100644
> --- a/hw/rtc/mc146818rtc.c
> +++ b/hw/rtc/mc146818rtc.c
> @@ -40,7 +40,7 @@
> #include "hw/rtc/mc146818rtc_regs.h"
> #include "migration/vmstate.h"
> #include "qapi/error.h"
> -#include "qapi/qapi-events-misc-target.h"
> +#include "qapi/qapi-events-misc.h"
> #include "qapi/visitor.h"
> #include "hw/rtc/mc146818rtc_regs.h"
>
© 2016 - 2026 Red Hat, Inc.