diff mbox series

[1/2] qapi: Move RTC_CHANGE back out of target schema

Message ID 20210924140142.31398-2-peter.maydell@linaro.org
State Superseded
Headers show
Series qapi: Move RTC_CHANGE back out of target schema | expand

Commit Message

Peter Maydell Sept. 24, 2021, 2:01 p.m. UTC
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(-)

-- 
2.20.1

Comments

Greg Kurz Sept. 24, 2021, 2:07 p.m. UTC | #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"

>
diff mbox series

Patch

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"