[Qemu-devel] [PATCH 03/10] hw: Use CFI_PFLASH0{1, 2} and TYPE_CFI_PFLASH0{1, 2}

Markus Armbruster posted 10 patches 6 years, 11 months ago
Maintainers: Aurelien Jarno <aurelien@aurel32.net>, Jan Kiszka <jan.kiszka@web.de>, Magnus Damm <magnus.damm@gmail.com>, Aleksandar Markovic <amarkovic@wavecomp.com>, Eduardo Habkost <ehabkost@redhat.com>, Aleksandar Rikalo <arikalo@wavecomp.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Kevin Wolf <kwolf@redhat.com>, Alistair Francis <alistair@alistair23.me>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Peter Maydell <peter.maydell@linaro.org>, BALATON Zoltan <balaton@eik.bme.hu>, Andrzej Zaborowski <balrogg@gmail.com>, Richard Henderson <rth@twiddle.net>, Michael Walle <michael@walle.cc>, Antony Pavlov <antonynpavlov@gmail.com>, Max Filippov <jcmvbkbc@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, Max Reitz <mreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, David Gibson <david@gibson.dropbear.id.au>
There is a newer version of this series
[Qemu-devel] [PATCH 03/10] hw: Use CFI_PFLASH0{1, 2} and TYPE_CFI_PFLASH0{1, 2}
Posted by Markus Armbruster 6 years, 11 months ago
We have two open-coded copies of macro CFI_PFLASH01().  Move the macro
to the header, so we can ditch the copies.  Move CFI_PFLASH02() to the
header for symmetry.

We define macros TYPE_CFI_PFLASH01 and TYPE_CFI_PFLASH02 for type name
strings, then mostly use the strings.  If the macros are worth
defining, they are worth using.  Replace the strings by the macros.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/arm/vexpress.c        | 4 ++--
 hw/arm/virt.c            | 3 ++-
 hw/block/pflash_cfi01.c  | 3 ---
 hw/block/pflash_cfi02.c  | 3 ---
 hw/xtensa/xtfpga.c       | 4 ++--
 include/hw/block/flash.h | 4 ++++
 6 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index ed46d2e730..00913f2655 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -515,7 +515,7 @@ static void vexpress_modify_dtb(const struct arm_boot_info *info, void *fdt)
 static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
                                              DriveInfo *di)
 {
-    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
+    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
 
     if (di) {
         qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di),
@@ -536,7 +536,7 @@ static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
     qdev_init_nofail(dev);
 
     sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
-    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
+    return CFI_PFLASH01(dev);
 }
 
 static void vexpress_common_init(MachineState *machine)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 99c2b6e60d..b7d53b2b87 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -34,6 +34,7 @@
 #include "hw/arm/arm.h"
 #include "hw/arm/primecell.h"
 #include "hw/arm/virt.h"
+#include "hw/block/flash.h"
 #include "hw/vfio/vfio-calxeda-xgmac.h"
 #include "hw/vfio/vfio-amd-xgbe.h"
 #include "hw/display/ramfb.h"
@@ -874,7 +875,7 @@ static void create_one_flash(const char *name, hwaddr flashbase,
      * parameters as the flash devices on the Versatile Express board.
      */
     DriveInfo *dinfo = drive_get_next(IF_PFLASH);
-    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
+    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
     SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
     const uint64_t sectorlength = 256 * 1024;
 
diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index f73c30a3ee..43dbb7db26 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -59,9 +59,6 @@ do {                                                        \
 #define DPRINTF(fmt, ...) do { } while (0)
 #endif
 
-#define CFI_PFLASH01(obj) \
-    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
-
 #define PFLASH_BE          0
 #define PFLASH_SECURE      1
 
diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 424cc106d6..e9c76d6cfb 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -57,9 +57,6 @@ do {                                                       \
 
 #define PFLASH_LAZY_ROMD_THRESHOLD 42
 
-#define CFI_PFLASH02(obj) \
-    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
-
 struct PFlashCFI02 {
     /*< private >*/
     SysBusDevice parent_obj;
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index 3d59a7a356..a726d5632a 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -167,7 +167,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
                                       DriveInfo *dinfo, int be)
 {
     SysBusDevice *s;
-    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
+    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
 
     qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo),
                         &error_abort);
@@ -181,7 +181,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
     s = SYS_BUS_DEVICE(dev);
     memory_region_add_subregion(address_space, board->flash->base,
                                 sysbus_mmio_get_region(s, 0));
-    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
+    return CFI_PFLASH01(dev);
 }
 
 static uint64_t translate_phys_addr(void *opaque, uint64_t addr)
diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h
index 51d8f60c65..1078dc7238 100644
--- a/include/hw/block/flash.h
+++ b/include/hw/block/flash.h
@@ -8,6 +8,8 @@
 /* pflash_cfi01.c */
 
 #define TYPE_CFI_PFLASH01 "cfi.pflash01"
+#define CFI_PFLASH01(obj) \
+    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
 
 typedef struct PFlashCFI01 PFlashCFI01;
 
@@ -25,6 +27,8 @@ MemoryRegion *pflash_cfi01_get_memory(PFlashCFI01 *fl);
 /* pflash_cfi02.c */
 
 #define TYPE_CFI_PFLASH02 "cfi.pflash02"
+#define CFI_PFLASH02(obj) \
+    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
 
 typedef struct PFlashCFI02 PFlashCFI02;
 
-- 
2.17.2


Re: [Qemu-devel] [PATCH 03/10] hw: Use CFI_PFLASH0{1, 2} and TYPE_CFI_PFLASH0{1, 2}
Posted by Laszlo Ersek 6 years, 11 months ago
On 02/18/19 13:56, Markus Armbruster wrote:
> We have two open-coded copies of macro CFI_PFLASH01().  Move the macro
> to the header, so we can ditch the copies.  Move CFI_PFLASH02() to the
> header for symmetry.
> 
> We define macros TYPE_CFI_PFLASH01 and TYPE_CFI_PFLASH02 for type name
> strings, then mostly use the strings.  If the macros are worth
> defining, they are worth using.  Replace the strings by the macros.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/arm/vexpress.c        | 4 ++--
>  hw/arm/virt.c            | 3 ++-
>  hw/block/pflash_cfi01.c  | 3 ---
>  hw/block/pflash_cfi02.c  | 3 ---
>  hw/xtensa/xtfpga.c       | 4 ++--
>  include/hw/block/flash.h | 4 ++++
>  6 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index ed46d2e730..00913f2655 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -515,7 +515,7 @@ static void vexpress_modify_dtb(const struct arm_boot_info *info, void *fdt)
>  static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>                                               DriveInfo *di)
>  {
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>  
>      if (di) {
>          qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di),
> @@ -536,7 +536,7 @@ static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>      qdev_init_nofail(dev);
>  
>      sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>  
>  static void vexpress_common_init(MachineState *machine)
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 99c2b6e60d..b7d53b2b87 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -34,6 +34,7 @@
>  #include "hw/arm/arm.h"
>  #include "hw/arm/primecell.h"
>  #include "hw/arm/virt.h"
> +#include "hw/block/flash.h"
>  #include "hw/vfio/vfio-calxeda-xgmac.h"
>  #include "hw/vfio/vfio-amd-xgbe.h"
>  #include "hw/display/ramfb.h"
> @@ -874,7 +875,7 @@ static void create_one_flash(const char *name, hwaddr flashbase,
>       * parameters as the flash devices on the Versatile Express board.
>       */
>      DriveInfo *dinfo = drive_get_next(IF_PFLASH);
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>      SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
>      const uint64_t sectorlength = 256 * 1024;
>  
> diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
> index f73c30a3ee..43dbb7db26 100644
> --- a/hw/block/pflash_cfi01.c
> +++ b/hw/block/pflash_cfi01.c
> @@ -59,9 +59,6 @@ do {                                                        \
>  #define DPRINTF(fmt, ...) do { } while (0)
>  #endif
>  
> -#define CFI_PFLASH01(obj) \
> -    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
> -
>  #define PFLASH_BE          0
>  #define PFLASH_SECURE      1
>  
> diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
> index 424cc106d6..e9c76d6cfb 100644
> --- a/hw/block/pflash_cfi02.c
> +++ b/hw/block/pflash_cfi02.c
> @@ -57,9 +57,6 @@ do {                                                       \
>  
>  #define PFLASH_LAZY_ROMD_THRESHOLD 42
>  
> -#define CFI_PFLASH02(obj) \
> -    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
> -
>  struct PFlashCFI02 {
>      /*< private >*/
>      SysBusDevice parent_obj;
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 3d59a7a356..a726d5632a 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -167,7 +167,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>                                        DriveInfo *dinfo, int be)
>  {
>      SysBusDevice *s;
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>  
>      qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo),
>                          &error_abort);
> @@ -181,7 +181,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>      s = SYS_BUS_DEVICE(dev);
>      memory_region_add_subregion(address_space, board->flash->base,
>                                  sysbus_mmio_get_region(s, 0));
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>  
>  static uint64_t translate_phys_addr(void *opaque, uint64_t addr)
> diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h
> index 51d8f60c65..1078dc7238 100644
> --- a/include/hw/block/flash.h
> +++ b/include/hw/block/flash.h
> @@ -8,6 +8,8 @@
>  /* pflash_cfi01.c */
>  
>  #define TYPE_CFI_PFLASH01 "cfi.pflash01"
> +#define CFI_PFLASH01(obj) \
> +    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
>  
>  typedef struct PFlashCFI01 PFlashCFI01;
>  
> @@ -25,6 +27,8 @@ MemoryRegion *pflash_cfi01_get_memory(PFlashCFI01 *fl);
>  /* pflash_cfi02.c */
>  
>  #define TYPE_CFI_PFLASH02 "cfi.pflash02"
> +#define CFI_PFLASH02(obj) \
> +    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
>  
>  typedef struct PFlashCFI02 PFlashCFI02;
>  
> 

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Re: [Qemu-devel] [PATCH 03/10] hw: Use CFI_PFLASH0{1, 2} and TYPE_CFI_PFLASH0{1, 2}
Posted by Philippe Mathieu-Daudé 6 years, 11 months ago
On 2/18/19 1:56 PM, Markus Armbruster wrote:
> We have two open-coded copies of macro CFI_PFLASH01().  Move the macro
> to the header, so we can ditch the copies.  Move CFI_PFLASH02() to the
> header for symmetry.
> 
> We define macros TYPE_CFI_PFLASH01 and TYPE_CFI_PFLASH02 for type name
> strings, then mostly use the strings.  If the macros are worth
> defining, they are worth using.  Replace the strings by the macros.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
>  hw/arm/vexpress.c        | 4 ++--
>  hw/arm/virt.c            | 3 ++-
>  hw/block/pflash_cfi01.c  | 3 ---
>  hw/block/pflash_cfi02.c  | 3 ---
>  hw/xtensa/xtfpga.c       | 4 ++--
>  include/hw/block/flash.h | 4 ++++
>  6 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index ed46d2e730..00913f2655 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -515,7 +515,7 @@ static void vexpress_modify_dtb(const struct arm_boot_info *info, void *fdt)
>  static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>                                               DriveInfo *di)
>  {
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>  
>      if (di) {
>          qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di),
> @@ -536,7 +536,7 @@ static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>      qdev_init_nofail(dev);
>  
>      sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>  
>  static void vexpress_common_init(MachineState *machine)
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 99c2b6e60d..b7d53b2b87 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -34,6 +34,7 @@
>  #include "hw/arm/arm.h"
>  #include "hw/arm/primecell.h"
>  #include "hw/arm/virt.h"
> +#include "hw/block/flash.h"
>  #include "hw/vfio/vfio-calxeda-xgmac.h"
>  #include "hw/vfio/vfio-amd-xgbe.h"
>  #include "hw/display/ramfb.h"
> @@ -874,7 +875,7 @@ static void create_one_flash(const char *name, hwaddr flashbase,
>       * parameters as the flash devices on the Versatile Express board.
>       */
>      DriveInfo *dinfo = drive_get_next(IF_PFLASH);
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>      SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
>      const uint64_t sectorlength = 256 * 1024;
>  
> diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
> index f73c30a3ee..43dbb7db26 100644
> --- a/hw/block/pflash_cfi01.c
> +++ b/hw/block/pflash_cfi01.c
> @@ -59,9 +59,6 @@ do {                                                        \
>  #define DPRINTF(fmt, ...) do { } while (0)
>  #endif
>  
> -#define CFI_PFLASH01(obj) \
> -    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
> -
>  #define PFLASH_BE          0
>  #define PFLASH_SECURE      1
>  
> diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
> index 424cc106d6..e9c76d6cfb 100644
> --- a/hw/block/pflash_cfi02.c
> +++ b/hw/block/pflash_cfi02.c
> @@ -57,9 +57,6 @@ do {                                                       \
>  
>  #define PFLASH_LAZY_ROMD_THRESHOLD 42
>  
> -#define CFI_PFLASH02(obj) \
> -    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
> -
>  struct PFlashCFI02 {
>      /*< private >*/
>      SysBusDevice parent_obj;
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 3d59a7a356..a726d5632a 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -167,7 +167,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>                                        DriveInfo *dinfo, int be)
>  {
>      SysBusDevice *s;
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>  
>      qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo),
>                          &error_abort);
> @@ -181,7 +181,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>      s = SYS_BUS_DEVICE(dev);
>      memory_region_add_subregion(address_space, board->flash->base,
>                                  sysbus_mmio_get_region(s, 0));
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>  
>  static uint64_t translate_phys_addr(void *opaque, uint64_t addr)
> diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h
> index 51d8f60c65..1078dc7238 100644
> --- a/include/hw/block/flash.h
> +++ b/include/hw/block/flash.h
> @@ -8,6 +8,8 @@
>  /* pflash_cfi01.c */
>  
>  #define TYPE_CFI_PFLASH01 "cfi.pflash01"
> +#define CFI_PFLASH01(obj) \
> +    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
>  
>  typedef struct PFlashCFI01 PFlashCFI01;
>  
> @@ -25,6 +27,8 @@ MemoryRegion *pflash_cfi01_get_memory(PFlashCFI01 *fl);
>  /* pflash_cfi02.c */
>  
>  #define TYPE_CFI_PFLASH02 "cfi.pflash02"
> +#define CFI_PFLASH02(obj) \
> +    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
>  
>  typedef struct PFlashCFI02 PFlashCFI02;
>  
> 

Re: [Qemu-devel] [PATCH 03/10] hw: Use CFI_PFLASH0{1, 2} and TYPE_CFI_PFLASH0{1, 2}
Posted by Alex Bennée 6 years, 11 months ago
Markus Armbruster <armbru@redhat.com> writes:

> We have two open-coded copies of macro CFI_PFLASH01().  Move the macro
> to the header, so we can ditch the copies.  Move CFI_PFLASH02() to the
> header for symmetry.
>
> We define macros TYPE_CFI_PFLASH01 and TYPE_CFI_PFLASH02 for type name
> strings, then mostly use the strings.  If the macros are worth
> defining, they are worth using.  Replace the strings by the macros.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

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

> ---
>  hw/arm/vexpress.c        | 4 ++--
>  hw/arm/virt.c            | 3 ++-
>  hw/block/pflash_cfi01.c  | 3 ---
>  hw/block/pflash_cfi02.c  | 3 ---
>  hw/xtensa/xtfpga.c       | 4 ++--
>  include/hw/block/flash.h | 4 ++++
>  6 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index ed46d2e730..00913f2655 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -515,7 +515,7 @@ static void vexpress_modify_dtb(const struct arm_boot_info *info, void *fdt)
>  static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>                                               DriveInfo *di)
>  {
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>
>      if (di) {
>          qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di),
> @@ -536,7 +536,7 @@ static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr base, const char *name,
>      qdev_init_nofail(dev);
>
>      sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>
>  static void vexpress_common_init(MachineState *machine)
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 99c2b6e60d..b7d53b2b87 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -34,6 +34,7 @@
>  #include "hw/arm/arm.h"
>  #include "hw/arm/primecell.h"
>  #include "hw/arm/virt.h"
> +#include "hw/block/flash.h"
>  #include "hw/vfio/vfio-calxeda-xgmac.h"
>  #include "hw/vfio/vfio-amd-xgbe.h"
>  #include "hw/display/ramfb.h"
> @@ -874,7 +875,7 @@ static void create_one_flash(const char *name, hwaddr flashbase,
>       * parameters as the flash devices on the Versatile Express board.
>       */
>      DriveInfo *dinfo = drive_get_next(IF_PFLASH);
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>      SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
>      const uint64_t sectorlength = 256 * 1024;
>
> diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
> index f73c30a3ee..43dbb7db26 100644
> --- a/hw/block/pflash_cfi01.c
> +++ b/hw/block/pflash_cfi01.c
> @@ -59,9 +59,6 @@ do {                                                        \
>  #define DPRINTF(fmt, ...) do { } while (0)
>  #endif
>
> -#define CFI_PFLASH01(obj) \
> -    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
> -
>  #define PFLASH_BE          0
>  #define PFLASH_SECURE      1
>
> diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
> index 424cc106d6..e9c76d6cfb 100644
> --- a/hw/block/pflash_cfi02.c
> +++ b/hw/block/pflash_cfi02.c
> @@ -57,9 +57,6 @@ do {                                                       \
>
>  #define PFLASH_LAZY_ROMD_THRESHOLD 42
>
> -#define CFI_PFLASH02(obj) \
> -    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
> -
>  struct PFlashCFI02 {
>      /*< private >*/
>      SysBusDevice parent_obj;
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 3d59a7a356..a726d5632a 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -167,7 +167,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>                                        DriveInfo *dinfo, int be)
>  {
>      SysBusDevice *s;
> -    DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
> +    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH01);
>
>      qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo),
>                          &error_abort);
> @@ -181,7 +181,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *address_space,
>      s = SYS_BUS_DEVICE(dev);
>      memory_region_add_subregion(address_space, board->flash->base,
>                                  sysbus_mmio_get_region(s, 0));
> -    return OBJECT_CHECK(PFlashCFI01, (dev), "cfi.pflash01");
> +    return CFI_PFLASH01(dev);
>  }
>
>  static uint64_t translate_phys_addr(void *opaque, uint64_t addr)
> diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h
> index 51d8f60c65..1078dc7238 100644
> --- a/include/hw/block/flash.h
> +++ b/include/hw/block/flash.h
> @@ -8,6 +8,8 @@
>  /* pflash_cfi01.c */
>
>  #define TYPE_CFI_PFLASH01 "cfi.pflash01"
> +#define CFI_PFLASH01(obj) \
> +    OBJECT_CHECK(PFlashCFI01, (obj), TYPE_CFI_PFLASH01)
>
>  typedef struct PFlashCFI01 PFlashCFI01;
>
> @@ -25,6 +27,8 @@ MemoryRegion *pflash_cfi01_get_memory(PFlashCFI01 *fl);
>  /* pflash_cfi02.c */
>
>  #define TYPE_CFI_PFLASH02 "cfi.pflash02"
> +#define CFI_PFLASH02(obj) \
> +    OBJECT_CHECK(PFlashCFI02, (obj), TYPE_CFI_PFLASH02)
>
>  typedef struct PFlashCFI02 PFlashCFI02;


--
Alex Bennée