From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K929P-0000Ld-VE for qemu-devel@nongnu.org; Wed, 18 Jun 2008 14:12:55 -0400 Received: from [199.232.76.173] (port=47526 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K929P-0000L9-5o for qemu-devel@nongnu.org; Wed, 18 Jun 2008 14:12:55 -0400 Received: from mx1.polytechnique.org ([129.104.30.34]:58768) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1K929P-00063J-5L for qemu-devel@nongnu.org; Wed, 18 Jun 2008 14:12:55 -0400 Received: from fbe1.dev.netgem.com (gw.netgem.com [195.68.2.34]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTP id 75C1A3316A for ; Wed, 18 Jun 2008 20:12:52 +0200 (CEST) Message-ID: <48595024.7050400@bellard.org> Date: Wed, 18 Jun 2008 20:12:52 +0200 From: Fabrice Bellard MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] QEMU configuration files Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hi, My snapshot of the "object based" QEMU configuration system can be found at http://bellard.org/qemu/patches . I only tried it for x86 targets. It is not yet in committable state and comments are welcome ! General ideas: - User preferences and machine definitions are separated. User preferences are in ~/.qemu/config for Unix systems. Machine definitions can override user preferences but I believe it should be the exception. - Command line options override the user preferences and machine definitions. - Machine definitions contain machine parameters and device definitions. Device definitions are used to create new devices not instanciated in the hardcoded machine definition such as PCI and USB devices. There are many details which need clarification, in particular: - PCI, IDE, SCSI and buses naming. It is important if we want to be able to dynamically instantiate complicated bus topologies. - USB port naming - Is it worth specifying board specific network controllers as separate devices (I tried to do that for smc91c111 devices) ? A simpler solution would be to add new machine parameters to do that. - It would be logical to define QEMUDevice for every instanciated device and that register_savevm() use QEMUDevice as parameter, but it requires more changes in the code. - Is it worth handling class defaults parameters ? I find the current implementation too complicated. Fabrice.