qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] directory hierarchy


From: Blue Swirl
Subject: Re: [Qemu-devel] directory hierarchy
Date: Fri, 14 Sep 2012 19:51:47 +0000

On Fri, Sep 14, 2012 at 1:17 PM, Paolo Bonzini <address@hidden> 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/.

>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]