All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 14/29] migration: Move the VMStateDescription typedef to typedefs.h
Date: Wed, 07 Aug 2019 16:22:34 +0100	[thread overview]
Message-ID: <87imr9huf9.fsf@linaro.org> (raw)
In-Reply-To: <20190806151435.10740-15-armbru@redhat.com>


Markus Armbruster <armbru@redhat.com> writes:

> We declare incomplete struct VMStateDescription in a couple of places
> so we don't have to include migration/vmstate.h for the typedef.
> That's fine with me.  However, the next commit will drop
> migration/vmstate.h from a massive number of compiles.  Move the
> typedef to qemu/typedefs.h now, so I don't have to insert struct in
> front of VMStateDescription all over the place then.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> ---
>  include/hw/qdev-core.h      | 6 ++----
>  include/migration/vmstate.h | 1 -
>  include/qemu/typedefs.h     | 1 +
>  include/qom/cpu.h           | 4 ++--
>  target/alpha/cpu.h          | 2 +-
>  target/arm/cpu.h            | 2 +-
>  target/cris/cpu.h           | 2 +-
>  target/hppa/cpu.h           | 2 +-
>  target/i386/cpu.h           | 2 +-
>  target/lm32/cpu.h           | 2 +-
>  target/mips/internal.h      | 2 +-
>  target/openrisc/cpu.h       | 2 +-
>  target/ppc/cpu-qom.h        | 2 +-
>  target/ppc/cpu.h            | 2 +-
>  target/s390x/cpu.h          | 2 +-
>  target/sparc/cpu.h          | 2 +-
>  16 files changed, 17 insertions(+), 19 deletions(-)
>
> diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
> index b870c8ceeb..e5b62dd2fc 100644
> --- a/include/hw/qdev-core.h
> +++ b/include/hw/qdev-core.h
> @@ -35,8 +35,6 @@ typedef void (*DeviceReset)(DeviceState *dev);
>  typedef void (*BusRealize)(BusState *bus, Error **errp);
>  typedef void (*BusUnrealize)(BusState *bus, Error **errp);
>
> -struct VMStateDescription;
> -
>  /**
>   * DeviceClass:
>   * @props: Properties accessing state fields.
> @@ -112,7 +110,7 @@ typedef struct DeviceClass {
>      DeviceUnrealize unrealize;
>
>      /* device state */
> -    const struct VMStateDescription *vmsd;
> +    const VMStateDescription *vmsd;
>
>      /* Private to qdev / bus.  */
>      const char *bus_type;
> @@ -425,7 +423,7 @@ void device_class_set_parent_unrealize(DeviceClass *dc,
>                                         DeviceUnrealize dev_unrealize,
>                                         DeviceUnrealize *parent_unrealize);
>
> -const struct VMStateDescription *qdev_get_vmsd(DeviceState *dev);
> +const VMStateDescription *qdev_get_vmsd(DeviceState *dev);
>
>  const char *qdev_fw_name(DeviceState *dev);
>
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index c2bfa7a7f0..1fbfd099dd 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -28,7 +28,6 @@
>  #define QEMU_VMSTATE_H
>
>  typedef struct VMStateInfo VMStateInfo;
> -typedef struct VMStateDescription VMStateDescription;
>  typedef struct VMStateField VMStateField;
>
>  /* VMStateInfo allows customized migration of objects that don't fit in
> diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
> index c32efb5b18..9e1283aacf 100644
> --- a/include/qemu/typedefs.h
> +++ b/include/qemu/typedefs.h
> @@ -101,6 +101,7 @@ typedef struct SHPCDevice SHPCDevice;
>  typedef struct SSIBus SSIBus;
>  typedef struct VirtIODevice VirtIODevice;
>  typedef struct Visitor Visitor;
> +typedef struct VMStateDescription VMStateDescription;
>
>  /*
>   * Pointer types
> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
> index 5ee0046b62..ddb91bbaff 100644
> --- a/include/qom/cpu.h
> +++ b/include/qom/cpu.h
> @@ -215,7 +215,7 @@ typedef struct CPUClass {
>      int (*write_elf32_qemunote)(WriteCoreDumpFunction f, CPUState *cpu,
>                                  void *opaque);
>
> -    const struct VMStateDescription *vmsd;
> +    const VMStateDescription *vmsd;
>      const char *gdb_core_xml_file;
>      gchar * (*gdb_arch_name)(CPUState *cpu);
>      const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname);
> @@ -1108,7 +1108,7 @@ bool target_words_bigendian(void);
>  #ifdef NEED_CPU_H
>
>  #ifdef CONFIG_SOFTMMU
> -extern const struct VMStateDescription vmstate_cpu_common;
> +extern const VMStateDescription vmstate_cpu_common;
>  #else
>  #define vmstate_cpu_common vmstate_dummy
>  #endif
> diff --git a/target/alpha/cpu.h b/target/alpha/cpu.h
> index b3e8a823e1..4619530660 100644
> --- a/target/alpha/cpu.h
> +++ b/target/alpha/cpu.h
> @@ -277,7 +277,7 @@ struct AlphaCPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_alpha_cpu;
> +extern const VMStateDescription vmstate_alpha_cpu;
>  #endif
>
>  void alpha_cpu_do_interrupt(CPUState *cpu);
> diff --git a/target/arm/cpu.h b/target/arm/cpu.h
> index 94c990cddb..2cdde6c4bc 100644
> --- a/target/arm/cpu.h
> +++ b/target/arm/cpu.h
> @@ -922,7 +922,7 @@ void arm_cpu_post_init(Object *obj);
>  uint64_t arm_cpu_mp_affinity(int idx, uint8_t clustersz);
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_arm_cpu;
> +extern const VMStateDescription vmstate_arm_cpu;
>  #endif
>
>  void arm_cpu_do_interrupt(CPUState *cpu);
> diff --git a/target/cris/cpu.h b/target/cris/cpu.h
> index fb14ad51f1..aba0a66474 100644
> --- a/target/cris/cpu.h
> +++ b/target/cris/cpu.h
> @@ -183,7 +183,7 @@ struct CRISCPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_cris_cpu;
> +extern const VMStateDescription vmstate_cris_cpu;
>  #endif
>
>  void cris_cpu_do_interrupt(CPUState *cpu);
> diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
> index e9fba96be9..4b816cc13a 100644
> --- a/target/hppa/cpu.h
> +++ b/target/hppa/cpu.h
> @@ -334,7 +334,7 @@ bool hppa_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
>  int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
>                                int type, hwaddr *pphys, int *pprot);
>  extern const MemoryRegionOps hppa_io_eir_ops;
> -extern const struct VMStateDescription vmstate_hppa_cpu;
> +extern const VMStateDescription vmstate_hppa_cpu;
>  void hppa_cpu_alarm_timer(void *);
>  int hppa_artype_for_page(CPUHPPAState *env, target_ulong vaddr);
>  #endif
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 8b3dc5533e..ecd0ec0899 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -1516,7 +1516,7 @@ struct X86CPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern struct VMStateDescription vmstate_x86_cpu;
> +extern VMStateDescription vmstate_x86_cpu;
>  #endif
>
>  /**
> diff --git a/target/lm32/cpu.h b/target/lm32/cpu.h
> index c2bbfa2780..064c6b1267 100644
> --- a/target/lm32/cpu.h
> +++ b/target/lm32/cpu.h
> @@ -195,7 +195,7 @@ struct LM32CPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_lm32_cpu;
> +extern const VMStateDescription vmstate_lm32_cpu;
>  #endif
>
>  void lm32_cpu_do_interrupt(CPUState *cpu);
> diff --git a/target/mips/internal.h b/target/mips/internal.h
> index b2b41a51ab..d5aa5490d3 100644
> --- a/target/mips/internal.h
> +++ b/target/mips/internal.h
> @@ -148,7 +148,7 @@ hwaddr cpu_mips_translate_address(CPUMIPSState *env, target_ulong address,
>  #define cpu_signal_handler cpu_mips_signal_handler
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_mips_cpu;
> +extern const VMStateDescription vmstate_mips_cpu;
>  #endif
>
>  static inline bool cpu_mips_hw_interrupts_enabled(CPUMIPSState *env)
> diff --git a/target/openrisc/cpu.h b/target/openrisc/cpu.h
> index f23b25262d..61ade1d4f0 100644
> --- a/target/openrisc/cpu.h
> +++ b/target/openrisc/cpu.h
> @@ -333,7 +333,7 @@ int print_insn_or1k(bfd_vma addr, disassemble_info *info);
>  #define cpu_signal_handler cpu_openrisc_signal_handler
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_openrisc_cpu;
> +extern const VMStateDescription vmstate_openrisc_cpu;
>
>  /* hw/openrisc_pic.c */
>  void cpu_openrisc_pic_init(OpenRISCCPU *cpu);
> diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h
> index be9b4c30c3..a2f202f021 100644
> --- a/target/ppc/cpu-qom.h
> +++ b/target/ppc/cpu-qom.h
> @@ -203,7 +203,7 @@ typedef struct PPCTimebase {
>      int64_t time_of_the_day_ns;
>  } PPCTimebase;
>
> -extern const struct VMStateDescription vmstate_ppc_timebase;
> +extern const VMStateDescription vmstate_ppc_timebase;
>
>  #define VMSTATE_PPC_TIMEBASE_V(_field, _state, _version) {            \
>      .name       = (stringify(_field)),                                \
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index c9beba2a5c..4ea33cf696 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -1255,7 +1255,7 @@ int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs,
>                                 int cpuid, void *opaque);
>  #ifndef CONFIG_USER_ONLY
>  void ppc_cpu_do_system_reset(CPUState *cs);
> -extern const struct VMStateDescription vmstate_ppc_cpu;
> +extern const VMStateDescription vmstate_ppc_cpu;
>  #endif
>
>  /*****************************************************************************/
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index a606547b4d..3d9de25f7c 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -163,7 +163,7 @@ struct S390CPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_s390_cpu;
> +extern const VMStateDescription vmstate_s390_cpu;
>  #endif
>
>  /* distinguish between 24 bit and 31 bit addressing */
> diff --git a/target/sparc/cpu.h b/target/sparc/cpu.h
> index 8ed2250cd0..0d5b01efe5 100644
> --- a/target/sparc/cpu.h
> +++ b/target/sparc/cpu.h
> @@ -532,7 +532,7 @@ struct SPARCCPU {
>
>
>  #ifndef CONFIG_USER_ONLY
> -extern const struct VMStateDescription vmstate_sparc_cpu;
> +extern const VMStateDescription vmstate_sparc_cpu;
>  #endif
>
>  void sparc_cpu_do_interrupt(CPUState *cpu);


--
Alex Bennée


  reply	other threads:[~2019-08-07 15:23 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-06 15:14 [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 01/29] include: Make headers more self-contained Markus Armbruster
2019-08-07 15:03   ` Alex Bennée
2019-08-07 19:45     ` Markus Armbruster
2019-08-07 21:28       ` Alex Bennée
2019-08-08  4:21         ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 02/29] Include generated QAPI headers less Markus Armbruster
2019-08-06 21:50   ` Eric Blake
2019-08-07  9:53   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 03/29] qapi: Split error.json off common.json Markus Armbruster
2019-08-07  9:57   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class Markus Armbruster
2019-08-07 10:11   ` Philippe Mathieu-Daudé
2019-08-07 10:16     ` Paolo Bonzini
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 05/29] queue: Drop superfluous #include qemu/atomic.h Markus Armbruster
2019-08-07 10:21   ` Philippe Mathieu-Daudé
2019-08-07 15:40   ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 06/29] trace: Eliminate use of TARGET_FMT_plx Markus Armbruster
2019-08-07  9:29   ` Stefan Hajnoczi
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 07/29] trace: Do not include qom/cpu.h into generated trace.h Markus Armbruster
2019-08-07  9:32   ` Stefan Hajnoczi
2019-08-07 10:30     ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 08/29] Include sysemu/reset.h a lot less Markus Armbruster
2019-08-07 10:38   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h " Markus Armbruster
2019-08-07 12:25   ` Philippe Mathieu-Daudé
2019-08-07 17:30     ` Philippe Mathieu-Daudé
2019-08-07 19:46       ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 10/29] ide: Include hw/ide/internal a bit less outside hw/ide/ Markus Armbruster
2019-08-06 21:40   ` John Snow
2019-08-07 12:29     ` Philippe Mathieu-Daudé
2019-08-07 14:56       ` John Snow
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 11/29] typedefs: Separate incomplete types and function types Markus Armbruster
2019-08-07 12:31   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 12/29] Include hw/irq.h a lot less Markus Armbruster
2019-08-07 13:04   ` Philippe Mathieu-Daudé
2019-08-07 21:06     ` Eric Blake
2019-08-08  4:27       ` Markus Armbruster
2019-08-08  5:09         ` Richard Henderson
2019-08-08 11:48         ` Eric Blake
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 13/29] Clean up inclusion of exec/cpu-common.h Markus Armbruster
2019-08-07 14:20   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 14/29] migration: Move the VMStateDescription typedef to typedefs.h Markus Armbruster
2019-08-07 15:22   ` Alex Bennée [this message]
2019-08-07 17:13   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 15/29] Include migration/vmstate.h less Markus Armbruster
2019-08-07 14:44   ` Philippe Mathieu-Daudé
2019-08-08 11:36     ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 16/29] Include exec/memory.h slightly less Markus Armbruster
2019-08-07 14:50   ` Philippe Mathieu-Daudé
2019-08-08 12:16     ` Markus Armbruster
2019-08-08 12:36       ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 17/29] Include qom/object.h " Markus Armbruster
2019-08-07 17:11   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 18/29] Include hw/hw.h exactly where needed Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 19/29] Include qemu/queue.h slightly less Markus Armbruster
2019-08-07 15:57   ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 20/29] Include qemu/main-loop.h less Markus Armbruster
2019-08-07 13:18   ` Philippe Mathieu-Daudé
2019-08-07 13:49     ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 21/29] Include hw/qdev-properties.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 22/29] Include hw/boards.h a bit less Markus Armbruster
2019-08-06 21:37   ` Alistair Francis
2019-08-07 17:26   ` Philippe Mathieu-Daudé
2019-08-07 17:57     ` Eduardo Habkost
2019-08-07 18:05       ` Philippe Mathieu-Daudé
2019-08-07 18:19         ` Eduardo Habkost
2019-08-08 11:57           ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 23/29] numa: Don't include hw/boards.h into sysemu/numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 24/29] Include sysemu/hostmem.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 25/29] numa: Move remaining NUMA declarations from sysemu.h to numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 26/29] Clean up inclusion of sysemu/sysemu.h Markus Armbruster
2019-08-06 21:36   ` Alistair Francis
2019-08-07 15:47   ` Alex Bennée
2019-08-07 20:10     ` Markus Armbruster
2019-08-08 14:21       ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less Markus Armbruster
2019-08-06 21:38   ` Alistair Francis
2019-08-07  9:28   ` Stefan Hajnoczi
2019-08-07 13:24   ` Philippe Mathieu-Daudé
2019-08-07 13:51     ` Markus Armbruster
2019-08-07 17:31   ` Philippe Mathieu-Daudé
2019-08-07 20:16     ` Markus Armbruster
2019-08-07 21:05       ` Philippe Mathieu-Daudé
2019-08-08  4:48         ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Markus Armbruster
2019-08-08  5:38           ` [Qemu-devel] Is network backend netmap worth keeping? Jason Wang
2019-08-08 13:36             ` Philippe Mathieu-Daudé
2019-08-08 17:27               ` Vincenzo Maffione
2019-08-08  7:27           ` Giuseppe Lettieri
2019-08-08 11:52             ` Markus Armbruster
2019-08-12 12:32               ` Philippe Mathieu-Daudé
2019-08-12 12:34                 ` Philippe Mathieu-Daudé
2019-09-02 20:50                 ` Giuseppe Lettieri
2019-09-13 13:04                   ` Markus Armbruster
2019-09-16 14:45                     ` Giuseppe Lettieri
2019-09-23 11:21                       ` Markus Armbruster
2019-10-04 13:02                         ` [PATCH] netmap: support git-submodule build otption Giuseppe Lettieri
2019-10-04 13:08                           ` Peter Maydell
2019-10-07 10:49                             ` Markus Armbruster
2019-10-07 11:58                               ` Peter Maydell
2019-10-07 12:35                                 ` Markus Armbruster
2019-10-07 12:39                                   ` Peter Maydell
2019-10-08  9:17                                     ` Daniel P. Berrangé
2019-10-08 11:57                                       ` Markus Armbruster
2019-10-07 15:37                                   ` Thomas Huth
2019-10-07 17:53                                     ` Markus Armbruster
2019-10-07 15:44                                 ` Markus Armbruster
2019-08-08  8:12           ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Stefano Garzarella
2019-10-07 18:21           ` Is network backend vde worth keeping? (was: Is network backend netmap worth keeping?) Markus Armbruster
2019-10-09  9:13             ` Thomas Huth
2019-10-11  6:55               ` Thomas Huth
2019-10-10 17:07             ` Julia Suvorova
2019-10-10 17:39             ` Daniel P. Berrangé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 28/29] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Markus Armbruster
2019-08-07 15:26   ` Alex Bennée
2019-08-07 20:19     ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 29/29] sysemu: Split sysemu/runstate.h off sysemu/sysemu.h Markus Armbruster
2019-08-07  4:40   ` Markus Armbruster
2019-08-07 10:15     ` Paolo Bonzini
2019-08-06 16:02 ` [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers no-reply
2019-08-06 16:56 ` no-reply
2019-08-07 16:32 ` Alex Bennée
2019-08-07 20:21   ` Markus Armbruster
2019-08-08 13:21   ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87imr9huf9.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.