From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VnqWy-0001Jw-Jy for qemu-devel@nongnu.org; Tue, 03 Dec 2013 09:00:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VnqWs-0008Sb-Gi for qemu-devel@nongnu.org; Tue, 03 Dec 2013 09:00:52 -0500 Message-ID: <529DE3F0.2050101@redhat.com> Date: Tue, 03 Dec 2013 15:00:16 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1385364460-24332-1-git-send-email-aik@ozlabs.ru> <1385364460-24332-3-git-send-email-aik@ozlabs.ru> <529DA675.8030705@redhat.com> <529DE041.70006@suse.de> In-Reply-To: <529DE041.70006@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 2/5] machine: introduce get_fw_dev_path() callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-1?Q?Andreas_F=E4rber?= Cc: Alexey Kardashevskiy , qemu-ppc@nongnu.org, Paul Mackerras , qemu-devel@nongnu.org, Nikunj A Dadhania Il 03/12/2013 14:44, Andreas F=E4rber ha scritto: >> >=20 >> > You can check "if (current_machine && >> > current_machine->get_fw_dev_path)", and move current_machine from vl= .c >> > to hw/qdev/core.c. > Please don't encourage moving random stuff into "core" device code. >=20 > If needed, we can easily add a machine.c, but that should remain > softmmu-only. Another solution would be to: (1) add an interface which contains "get_fw_dev_path". When qdev_get_fw_dev_path is called, walk the QOM tree until an object that implements the interface is found. If none is found, call the bus implementation as usual. (2) in vl.c, add a way for current_machine to override the /machine object. A 100%-QOMified machine indeed could put a SOC-like Device there. (3) for spapr, define the machine object to something that implements said interface. It seemed a bit complicated for this particular problem, but I cannot say it's overengineered. More aspects of the configuration could be moved to the new interface over time, for example compat properties. Paolo