From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41351) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCWL2-00050r-GY for qemu-devel@nongnu.org; Fri, 14 Sep 2012 09:53:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TCWL0-0007Z6-LR for qemu-devel@nongnu.org; Fri, 14 Sep 2012 09:53:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14740) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCWL0-0007Yu-Cu for qemu-devel@nongnu.org; Fri, 14 Sep 2012 09:53:42 -0400 Message-ID: <505336E0.6010509@redhat.com> Date: Fri, 14 Sep 2012 15:53:36 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <50532E80.5060905@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] directory hierarchy List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel Il 14/09/2012 15:36, Peter Maydell ha scritto: > On 14 September 2012 14:17, Paolo Bonzini wrote: >> here is a proposal for moving around 150 C files currently in the >> toplevel directory to separate, well-delimited subdirectories. > > No general objection (though some specific comments below). However > I think it would be helpful if you could provide some descriptions of > how your new subdirectories are defined. Otherwise the "well-delimited" > bit is largely in your head and future new files aren't likely to > respect it except by accident :-) Good question. I just tried to use some taste, so well-delimited is a bit of a lie. I mostly care that sysemu/, tools/, qga/ and user/ are well-delimited, i.e. executables do not have sources from other executables' directories, and similarly common/ is just for emulators. >> Header >> files would be moved for now in include/, preparing for subsequent >> reorganization of headers. > > Just in include/, or in include/qemu/ ? (IIRC Anthony was hoping > to only move cleaned-up headers in there?) I dislike include/qemu, for the same reason I dislike qemu-*. :) Moving to include/ would be to clean up the top-level directory, withour touching the source code. If something can be moved directly to one of the new source directories, that's also fine but I don't have high hopes. >> Usually the files would keep their names, but I loathe names starting >> with qemu-* so I took the occasion to rename those. >> >> This does not touch the hw/ directory, which is its own mess and worth a >> separate discussion. Cleaning it up may require introducing more >> CONFIG_* symbols and moving stuff to libhw whenever possible (for >> example if we want all NICs in hw/net, all RTCs in hw/rtc, etc. perhaps >> with some exceptions for USB). >> >> Opinions, flames, "stop this guy"s are welcome as usual. >> >> Paolo >> >> block: >> qemu-progress.c block/progress.c > > This should go in util/, surely? Yes. I considered tools/ but right now it is in block-obj-y and I haven't yet checked if the emulators depend on it. But util/ is probably better. > >> block/coroutine: > > If this is accompanied by saying "no more use of coroutines > outside the block drivers" then I'm cool with that. Otherwise > it's not really the right place. There is no use right now outside the block drivers or the block jobs. So s/more//. Let's say this would discourage using coroutines outside the block drivers, but if somebody has a really good reason it would move to util/. It's a two-line change. >> exec: >> cpu-exec.c >> disas.c >> exec.c >> gdbstub.c >> tci.c (note: TCI can't go in tcg/ for licensing reasons) > > More to the point, it shouldn't go in tcg/ because it's not a > TCG backend -- this is the interpreter part. Ok. >> sysemu: > > So, sysemu.h is one of those dumping-ground header files. What's > the dividing line that means a file goes into sysemu/ and not > somewhere else? It must only be used by the system emulators. >> vl.c > > While we're at it is there some less bonkers name than 'vl.c' > for the system emulator main file? I was about to do that, but I like to keep the historical name if it's just a one-off... Just some respect for Fabrice. :) >> tcg: >> tcg-runtime.c tcg/runtime.c > > This is kind of breaking an existing division, where tcg/ > contains the code generator, and code outside tcg provides > the execution environment for that generated code. In particular > tcg-runtime.c is the QEMU implementation of a bunch of runtime > functions and in theory some other runtime that embedded TCG > could provide its own runtime helpers. (In practice TCG isn't > as neatly separated from the rest of QEMU as you might like, > if for instance you wanted to do TCG unit tests.) If that would mean putting it in exec/, that would be fine. >> util: >> main-loop.c > > This file is either misnamed or shouldn't be in util/... It implements a generic main loop based on select. It is used by system emulators, qemu-io and qemu-nbd. Paolo