qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 14/22] nvram/ds1225y: Convert sysbus init functi


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 14/22] nvram/ds1225y: Convert sysbus init function to realize function
Date: Tue, 20 Nov 2018 14:51:19 +0000

On 19 November 2018 at 12:08, Mao Zhongyi
<address@hidden> wrote:
> Use DeviceClass rather than SysBusDeviceClass in
> nvram_sysbus_class_init().
>
> Cc: address@hidden
> Cc: address@hidden
>
> Signed-off-by: Mao Zhongyi <address@hidden>
> Signed-off-by: Zhang Shengju <address@hidden>
> ---
>  hw/nvram/ds1225y.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/hw/nvram/ds1225y.c b/hw/nvram/ds1225y.c
> index ad7345f288..b6ef463db0 100644
> --- a/hw/nvram/ds1225y.c
> +++ b/hw/nvram/ds1225y.c
> @@ -25,6 +25,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
>  #include "trace.h"
> +#include "qemu/error-report.h"
>
>  typedef struct {
>      MemoryRegion iomem;
> @@ -113,7 +114,7 @@ typedef struct {
>      NvRamState nvram;
>  } SysBusNvRamState;
>
> -static int nvram_sysbus_initfn(SysBusDevice *dev)
> +static void nvram_sysbus_realize(DeviceState *dev, Error **errp)
>  {
>      SysBusNvRamState *sys = DS1225Y(dev);
>      NvRamState *s = &sys->nvram;
> @@ -123,20 +124,18 @@ static int nvram_sysbus_initfn(SysBusDevice *dev)
>
>      memory_region_init_io(&s->iomem, OBJECT(s), &nvram_ops, s,
>                            "nvram", s->chip_size);
> -    sysbus_init_mmio(dev, &s->iomem);
> +    sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
>
>      /* Read current file */
>      file = s->filename ? fopen(s->filename, "rb") : NULL;
>      if (file) {
>          /* Read nvram contents */
>          if (fread(s->contents, s->chip_size, 1, file) != 1) {
> -            printf("nvram_sysbus_initfn: short read\n");
> +            error_report("nvram_sysbus_realize: short read");

It seems a bit odd that we don't make this cause the
device to fail its realize method, though I suppose
it was not previously.

>          }
>          fclose(file);
>      }
>      nvram_post_load(s, 0);
> -
> -    return 0;
>  }
>
>  static Property nvram_sysbus_properties[] = {
> @@ -148,9 +147,8 @@ static Property nvram_sysbus_properties[] = {
>  static void nvram_sysbus_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>
> -    k->init = nvram_sysbus_initfn;
> +    dc->realize = nvram_sysbus_realize;
>      dc->vmsd = &vmstate_nvram;
>      dc->props = nvram_sysbus_properties;
>  }
> --
> 2.17.1
>

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]