Re: [PATCH kvm-unit-tests 2/4] Introduce a C++ wrapper for the kvm APIs

Gleb Natapov
2010-11-24T16:55:08Z

On Wed, Nov 24, 2010 at 06:47:28PM +0200, Avi Kivity wrote:
> On 11/24/2010 06:40 PM, Jes Sorensen wrote:
> >>>>
> >>> The fact that in physical implementation they sit in the same silicon
> >>> does not mean that logically they belong to the same class. PIIX3
> >>> is ISA bridge. It doesn't mean it owns devices on the ISA bus it
> >>> provides. The information that you are trying to convey here belongs to
> >>> configuration file.
> >>
> >> Why would we specify a PIIX3 device based on a configuration file?
> >> There is only one PIIX3 device in the world. I don't see a lot of need
> >> to create arbitrary types of devices.
> >
> >Well the problem here is that the i8042 is in the i440fx.c file, it
> >shouldn't be there in the first place. The gluing together things in
> >silicon is really just a way to shorten the wires and make it easier,
> >they are still separate devices and as long as the i8042 requires ISA
> >access, and to be treated like an ISA device, we should glue it onto the
> >virtual ISA bus within QEMU.
> >
> >What you did above is making the exact same mistake as is done with the
> >current i440fx.c code.
>
> If a real life 440fx has an i8042, then an emulated 440fx should
> have an emulated i8042. It's not complicated.
>
Correct. But it can be achieved by making 440fx a class that includes
other classes or by building it from different classes linked through
common interfaces.

--
Gleb.