From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH kvm-unit-tests 2/4] Introduce a C++ wrapper for the kvm APIs Date: Wed, 24 Nov 2010 18:47:28 +0200 Message-ID: <4CED41A0.8060003@redhat.com> References: <1290595933-13122-1-git-send-email-avi@redhat.com> <1290595933-13122-3-git-send-email-avi@redhat.com> <50DD1E97-0ECD-41E6-B6F8-1D78AA4A4876@suse.de> <4CED2416.1040102@codemonkey.ws> <20101124154006.GE15111@redhat.com> <4CED344B.3030000@codemonkey.ws> <4CED3FE6.50900@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Anthony Liguori , Gleb Natapov , Alexander Graf , Marcelo Tosatti , kvm@vger.kernel.org To: Jes Sorensen Return-path: Received: from mx1.redhat.com ([209.132.183.28]:1150 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754547Ab0KXQrf (ORCPT ); Wed, 24 Nov 2010 11:47:35 -0500 In-Reply-To: <4CED3FE6.50900@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: 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. > >>> So whereas we have this very complicate machine create function that > >>> attempts to create and composite all of these devices after the > >>> fact, when written in C++, partially due to good design, but > >>> partially due to the fact that the languages forces you to think a > >>> certain way, you get a tremendous simplification. > > That is clearly dependent on the eyes of the person who looks at it. It's independent of language. It should be done in C as well. C++ just makes it easier by reducing the boilerplate. -- error compiling committee.c: too many arguments to function