On Fri, Sep 14, 2012 at 1:17 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Hi all, > > here is a proposal for moving around 150 C files currently in the > toplevel directory to separate, well-delimited subdirectories. Header > files would be moved for now in include/, preparing for subsequent > reorganization of headers. > > 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.
Good idea. > > Paolo > > block: > aes.c > aio.c > async.c > block.c > blockjob.c (with plans to move it in sysemu/block) > nbd.c > qemu-progress.c block/progress.c > > block/coroutine: > coroutine-gthread.c block/coroutine/gthread.c > coroutine-sigaltstack.c block/coroutine/sigaltstack.c > coroutine-ucontext.c block/coroutine/ucontext.c > coroutine-win32.c block/coroutine/win32.c > qemu-coroutine-io.c block/coroutine/io.c > qemu-coroutine-lock.c block/coroutine/lock.c > qemu-coroutine-sleep.c block/coroutine/sleep.c > qemu-coroutine.c block/coroutine/coroutine.c > > block/drivers: > block/blkdebug.c > block/blkverify.c > block/bochs.c > block/cloop.c > block/cow.c > block/curl.c > block/dmg.c > block/iscsi.c > block/mirror.c > block/nbd.c > block/parallels.c > block/qcow.c > block/qcow2-cache.c > block/qcow2-cluster.c > block/qcow2-refcount.c > block/qcow2-snapshot.c > block/qcow2.c > block/qed-check.c > block/qed-cluster.c > block/qed-gencb.c > block/qed-l2-cache.c > block/qed-table.c > block/qed.c > block/raw-posix.c > block/raw-win32.c > block/raw.c > block/rbd.c > block/sheepdog.c > block/vdi.c > block/vmdk.c > block/vpc.c > block/vvfat.c > linux-aio.c > posix-aio-compat.c > > exec: These files need cleanup so that TCG code gets into tcg/. Maybe also TB and CPUTLB handling. > cpu-exec.c > disas.c > exec.c > gdbstub.c > tci.c (note: TCI can't go in tcg/ for licensing reasons) The directory organization should not be affected by licensing issues, it's licenses of each file that counts. We could create a new directory and move code from TCG to that. > translate-all.c > > hw: > hw/dma.c hw/i8257.c > dma-helpers.c hw/dma.c > > libdis: > alpha-dis.c libdis/alpha.c > arm-dis.c libdis/arm.c > cris-dis.c libdis/cris.c > hppa-dis.c libdis/hppa.c > i386-dis.c libdis/i386.c > ia64-dis.c libdis/ia64.c > lm32-dis.c libdis/lm32.c > m68k-dis.c libdis/m68k.c > microblaze-dis.c libdis/microblaze.c > mips-dis.c libdis/mips.c > ppc-dis.c libdis/ppc.c > s390-dis.c libdis/s390.c > sh4-dis.c libdis/sh4.c > sparc-dis.c libdis/sparc.c > tci-dis.c libdis/tci.c > > net: > net.c > > qapi: > error.c > > qga: > qemu-ga.c qga/main.c > > qobject: > json-lexer.c > json-parser.c > json-streamer.c > qbool.c > qdict.c > qerror.c > qfloat.c > qint.c > qjson.c > qlist.c > qstring.c > > sysemu: > arch_init.c > balloon.c > cpus.c > cputlb.c > cursor.c > device_tree.c > dump-stub.c > dump.c > ioport.c > kvm-all.c > kvm-stub.c How about kvm and xen as top level directories? > memory.c > memory_mapping-stub.c > memory_mapping.c > os-posix.c > os-win32.c > pflib.c > qemu-error.c sysemu/error.c > qemu-seccomp.c sysemu/seccomp.c > qtest.c > vl.c > xen-all.c > xen-mapcache.c > xen-stub.c > qemu-options.hx > > sysemu/block: This distinction is not so clear to me. For example, why do block/ and qobject/ reside in the top level? > block/stream.c > blockdev.c > > sysemu/bt: > bt-host.c sysemu/bt/host.c > bt-vhci.c sysemu/bt/vhci.c > > sysemu/char: > qemu-char.c sysemu/char/chardev.c > qemu-sockets.c sysemu/char/sockets.c > spice-qemu-char.c sysemu/char/spice.c > > sysemu/migration: > block-migration.c migration/block.c > buffered_file.c > migration-exec.c > migration-fd.c > migration-tcp.c > migration-unix.c > migration.c > page_cache.c > savevm.c > > sysemu/monitor: > hmp.c > monitor.c > qmp.c > readline.c > hmp-commands.hx > qmp-commands.hx I think audio and maybe net could also fit here as subdirectories of sysemu. > > tcg: > tcg-runtime.c tcg/runtime.c > > tools: > cmd.c > qemu-bridge-helper.c > qemu-img.c > qemu-img-cmds.hx > qemu-io.c > qemu-nbd.c > qemu-tool.c tools/stub.c > > ui: > console.c > input.c > > user: > qemu-user.c user/stub.c > thunk.c > user-exec.c user/cpu-exec.c Also user-exec.c is related to TCG. But the difference is not so interesting here since there's no KVM nor Xen for user emulators. > > util: > acl.c > bitmap.c > bitops.c > cache-utils.c > compatfd.c > cutils.c > envlist.c > event_notifier.c > host-utils.c > iohandler.c > iov.c > main-loop.c > module.c > notify.c > osdep.c > oslib-posix.c > oslib-win32.c > path.c > qemu-config.c util/config.c > qemu-log.c util/log.c > qemu-option.c util/option.c > qemu-thread-posix.c util/thread-posix.c > qemu-thread-win32.c util/thread-win32.c > qemu-timer-common.c util/clock.c > qemu-timer.c util/timer.c Some of these could also go to compat/. > >