qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 0/5]: Improve machine type functions


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 0/5]: Improve machine type functions
Date: Fri, 24 Feb 2012 08:58:55 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15

On 02/24/2012 08:13 AM, Luiz Capitulino wrote:
I was reading some related code yesterday and couldn't resist improving this.
Not sure if this is aligned with any possible QOM work in this area, but I'm
posting this anyway...

I'm not sure how easy this is, but the way to do this with QOM would be:

1) Introduce a Machine abstract type. It would have the normal properties for the various machine parameters we have today (that are standard for all machines).

2) Convert all the registered users of QEMUMachine to subtypes of Machine. Note that this would tremendously simplify PC since each version could subclass the previous and we wouldn't need to duplicate globals. Use a realize() method to trigger what we think of as the machine->init() function today (but it would take no parameters).

3) Change machine listing to a object_type_foreach() call that passed TYPE_MACHINE for 'implements'.

4) Change machine initialization to creating an object of type (3), setting the properties appropriately, and then calling the realize() method of the object.

That's not to say this series isn't a good cleanup. I haven't actually reviewed it yet. I just wanted to illustrate the next QOM steps.

Regards,

Anthony Liguori


  Makefile.target               |    3 +-
  hw/alpha_dp264.c              |    2 +-
  hw/an5206.c                   |    2 +-
  hw/axis_dev88.c               |    2 +-
  hw/boards.c                   |   86 +++++++++++++++++++++++++++++++++++++++++
  hw/boards.h                   |    9 +++-
  hw/collie.c                   |    2 +-
  hw/dummy_m68k.c               |    2 +-
  hw/exynos4_boards.c           |    4 +-
  hw/gumstix.c                  |    4 +-
  hw/highbank.c                 |    2 +-
  hw/integratorcp.c             |    2 +-
  hw/leon3.c                    |    2 +-
  hw/lm32_boards.c              |    4 +-
  hw/mainstone.c                |    2 +-
  hw/mcf5208.c                  |    2 +-
  hw/milkymist.c                |    2 +-
  hw/mips_fulong2e.c            |    2 +-
  hw/mips_jazz.c                |    4 +-
  hw/mips_malta.c               |    2 +-
  hw/mips_mipssim.c             |    2 +-
  hw/mips_r4k.c                 |    2 +-
  hw/musicpal.c                 |    2 +-
  hw/nseries.c                  |    4 +-
  hw/omap_sx1.c                 |    4 +-
  hw/palm.c                     |    2 +-
  hw/pc_piix.c                  |   20 +++++-----
  hw/pc_sysfw.c                 |    2 +-
  hw/petalogix_ml605_mmu.c      |    2 +-
  hw/petalogix_s3adsp1800_mmu.c |    2 +-
  hw/ppc405_boards.c            |    4 +-
  hw/ppc440_bamboo.c            |    2 +-
  hw/ppc_newworld.c             |    2 +-
  hw/ppc_oldworld.c             |    2 +-
  hw/ppc_prep.c                 |    2 +-
  hw/ppce500_mpc8544ds.c        |    2 +-
  hw/r2d.c                      |    2 +-
  hw/realview.c                 |    8 ++--
  hw/s390-virtio.c              |    2 +-
  hw/shix.c                     |    2 +-
  hw/spapr.c                    |    2 +-
  hw/spitz.c                    |    8 ++--
  hw/stellaris.c                |    4 +-
  hw/sun4m.c                    |   24 ++++++------
  hw/sun4u.c                    |    6 +-
  hw/tosa.c                     |    2 +-
  hw/versatilepb.c              |    4 +-
  hw/vexpress.c                 |    4 +-
  hw/virtex_ml507.c             |    2 +-
  hw/xen_machine_pv.c           |    2 +-
  hw/xtensa_lx60.c              |    4 +-
  hw/xtensa_sim.c               |    2 +-
  hw/z2.c                       |    2 +-
  vl.c                          |   65 +------------------------------
  54 files changed, 184 insertions(+), 157 deletions(-)





reply via email to

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