All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
@ 2013-03-18 17:34 Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 01/35] hw: move headers to include/ Paolo Bonzini
                   ` (35 more replies)
  0 siblings, 36 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Richard Henderson, Andreas Färber, Edgar E. Iglesias

This is part 2 of the reorganization, following the list sent
last week, with the changes suggested by Edgar and Richard.
Since I posted the list TPM emulation got in and I moved it
to hw/tpm (there isn't really a clear front-end/back-end
separation, unfortunately).

I checked that the same symbols exist in the binaries before
and after the patches.

The positive diffstat is mostly due to the new Makefiles listing files
one-per-line.

The following changes since commit e531761d63b7f8fe6b6423fafb3616ebbff768aa:

  Merge remote-tracking branch 'kraxel/pixman.v8' into staging (2013-03-18 07:34:24 -0500)

are available in the git repository at:

  git://github.com/bonzini/qemu.git hw-dirs

for you to fetch changes up to da4582b8234b11a64a95f198bdfc946ca4fcc7a9:

  hw: move private headers to hw/ subdirectories. (2013-03-18 18:24:37 +0100)

Because the patches are huge, you've been CCed only on the cover
letter.

Paolo

----------------------------------------------------------------
Paolo Bonzini (35):
      hw: move headers to include/
      hw: make subdirectories for devices
      configure: fix TPM logic
      tpm: reorganize headers and split hardware part
      hw: move another file to hw/alpha/
      hw: move target-independent files to subdirectories
      hw: move virtio devices to hw/ subdirectories
      hw: make all of hw/ide/ configurable via default-configs/
      hw: make all of hw/usb/ configurable via default-configs/
      hw: make all of hw/pci/ configurable via default-configs/
      hw: move watchdogs to hw/watchdog, configure via default-configs/
      hw: move MC146818RTC to hw/timer/, configure via default-configs/
      hw: move NICs to hw/net/, configure via default-configs/
      hw: move block devices to hw/block/, configure via default-configs/
      hw: move audio devices to hw/audio/, configure via default-configs/
      hw: move display devices to hw/display/, configure via default-configs/
      hw: move I2C controllers to hw/i2c/, configure via default-configs/
      hw: move SSI controllers to hw/ssi/, configure via default-configs/
      hw: move SCSI controllers to hw/scsi/, configure via default-configs/
      hw: move more files to hw/xen/
      hw: move char devices to hw/char/, configure via default-configs/
      hw: move ISA bridges and devices to hw/isa/, configure with default-configs/
      hw: move timer devices to hw/timer/, configure with default-configs/
      hw: move input devices to hw/input/, configure with default-configs/
      hw: move SD/MMC devices to hw/sd/, configure with default-configs/
      hw: move PCI bridges to hw/pci/, configure with default-configs/
      hw: move VFIO and ivshmem to hw/pci/
      hw: move DMA controllers to hw/dma/, configure with default-configs/
      hw: move interrupt controllers to hw/intc/, configure with default-configs/
      hw: move GPIO interfaces to hw/gpio/, configure with default-configs/
      hw: move NVRAM interfaces to hw/nvram/, configure with default-configs/
      hw: move other devices to hw/misc/, configure with default-configs/
      arm: move remaining files to hw/arm/
      MAINTAINERS: update for source code movement
      hw: move private headers to hw/ subdirectories.

 MAINTAINERS                                        | 170 +++++++-------
 Makefile.objs                                      |   2 +-
 arch_init.c                                        |   8 +-
 block/iscsi.c                                      |   4 +-
 blockdev-nbd.c                                     |   2 +-
 blockdev.c                                         |   2 +-
 configure                                          |  24 +-
 default-configs/alpha-softmmu.mak                  |   1 +
 default-configs/arm-softmmu.mak                    |  25 +++
 default-configs/cris-softmmu.mak                   |   1 +
 default-configs/i386-softmmu.mak                   |  19 +-
 default-configs/lm32-softmmu.mak                   |   3 +
 default-configs/m68k-softmmu.mak                   |   1 +
 default-configs/microblaze-softmmu.mak             |   2 +
 default-configs/microblazeel-softmmu.mak           |   2 +
 default-configs/mips-softmmu.mak                   |   4 +-
 default-configs/mips64-softmmu.mak                 |   4 +-
 default-configs/mips64el-softmmu.mak               |   4 +-
 default-configs/mipsel-softmmu.mak                 |   4 +-
 default-configs/pci.mak                            |   1 +
 default-configs/ppc-softmmu.mak                    |   7 +-
 default-configs/ppc64-softmmu.mak                  |   9 +-
 default-configs/ppcemb-softmmu.mak                 |   7 +-
 default-configs/s390x-softmmu.mak                  |   1 +
 default-configs/sh4-softmmu.mak                    |   3 +
 default-configs/sh4eb-softmmu.mak                  |   3 +
 default-configs/sparc-softmmu.mak                  |   8 +
 default-configs/sparc64-softmmu.mak                |   2 +
 default-configs/x86_64-softmmu.mak                 |  18 +-
 exec.c                                             |   2 +-
 gdbstub.c                                          |   2 +-
 hw/9pfs/virtio-9p-device.c                         |   4 +-
 hw/9pfs/virtio-9p-handle.c                         |   2 +-
 hw/9pfs/virtio-9p-local.c                          |   2 +-
 hw/9pfs/virtio-9p-posix-acl.c                      |   2 +-
 hw/9pfs/virtio-9p-proxy.c                          |   2 +-
 hw/9pfs/virtio-9p-synth.c                          |   2 +-
 hw/9pfs/virtio-9p-xattr-user.c                     |   2 +-
 hw/9pfs/virtio-9p-xattr.c                          |   2 +-
 hw/9pfs/virtio-9p.c                                |   4 +-
 hw/9pfs/virtio-9p.h                                |   2 +-
 hw/Makefile.objs                                   | 247 +++------------------
 hw/acpi/Makefile.objs                              |   2 +
 hw/{acpi.c => acpi/core.c}                         |   4 +-
 hw/{acpi_ich9.c => acpi/ich9.c}                    |   6 +-
 hw/{acpi_piix4.c => acpi/piix4.c}                  |  10 +-
 hw/alpha/Makefile.objs                             |   7 +-
 hw/alpha/dp264.c                                   |   8 +-
 hw/alpha/pci.c                                     |   2 +-
 hw/{alpha_typhoon.c => alpha/typhoon.c}            |   4 +-
 hw/arm/Makefile.objs                               |  34 +--
 hw/{ => arm}/a15mpcore.c                           |   0
 hw/{ => arm}/a9mpcore.c                            |   0
 hw/{ => arm}/arm11mpcore.c                         |   0
 hw/arm/armv7m.c                                    |   2 +-
 hw/arm/boot.c                                      |   2 +-
 hw/arm/collie.c                                    |   8 +-
 hw/arm/exynos4210.c                                |   4 +-
 hw/arm/exynos4_boards.c                            |   4 +-
 hw/arm/gumstix.c                                   |   6 +-
 hw/arm/highbank.c                                  |   4 +-
 hw/arm/integratorcp.c                              |   4 +-
 hw/arm/kzm.c                                       |   8 +-
 hw/arm/mainstone.c                                 |   8 +-
 hw/arm/musicpal.c                                  |  10 +-
 hw/arm/nseries.c                                   |  10 +-
 hw/arm/omap1.c                                     |   6 +-
 hw/arm/omap2.c                                     |   8 +-
 hw/arm/omap_sx1.c                                  |   6 +-
 hw/arm/palm.c                                      |   6 +-
 hw/arm/pic_cpu.c                                   |   2 +-
 hw/arm/pxa2xx.c                                    |   6 +-
 hw/arm/pxa2xx_gpio.c                               |   2 +-
 hw/arm/pxa2xx_pic.c                                |   2 +-
 hw/arm/realview.c                                  |   8 +-
 hw/arm/spitz.c                                     |  12 +-
 hw/arm/stellaris.c                                 |   6 +-
 hw/{ => arm}/strongarm.c                           |   4 +-
 hw/{ => arm}/strongarm.h                           |   0
 hw/arm/tosa.c                                      |  10 +-
 hw/arm/versatilepb.c                               |   8 +-
 hw/arm/vexpress.c                                  |   8 +-
 hw/arm/xilinx_zynq.c                               |   4 +-
 hw/arm/z2.c                                        |  10 +-
 hw/audio/Makefile.objs                             |  20 ++
 hw/{ => audio}/ac97.c                              |   2 +-
 hw/{ => audio}/adlib.c                             |   6 +-
 hw/{ => audio}/cs4231.c                            |   0
 hw/{ => audio}/cs4231a.c                           |   4 +-
 hw/{ => audio}/es1370.c                            |   2 +-
 hw/{ => audio}/fmopl.c                             |   2 +-
 hw/{ => audio}/fmopl.h                             |   0
 hw/{ => audio}/gus.c                               |   8 +-
 hw/{ => audio}/gusemu.h                            |   0
 hw/{ => audio}/gusemu_hal.c                        |   4 +-
 hw/{ => audio}/gusemu_mixer.c                      |   4 +-
 hw/{ => audio}/gustate.h                           |   0
 hw/{hda-audio.c => audio/hda-codec.c}              |   4 +-
 hw/{ => audio}/intel-hda-defs.h                    |   0
 hw/{ => audio}/intel-hda.c                         |   6 +-
 hw/{ => audio}/intel-hda.h                         |   0
 hw/{ => audio}/lm4549.c                            |   2 +-
 hw/{ => audio}/lm4549.h                            |   0
 .../marvell_88w8618.c}                             |   2 +-
 hw/{ => audio}/milkymist-ac97.c                    |   0
 hw/{ => audio}/pcspk.c                             |   8 +-
 hw/{ => audio}/pl041.c                             |   4 +-
 hw/{ => audio}/pl041.h                             |   0
 hw/{ => audio}/pl041.hx                            |   0
 hw/{ => audio}/sb16.c                              |   4 +-
 hw/{ => audio}/wm8750.c                            |   2 +-
 hw/block/Makefile.objs                             |  14 ++
 hw/{block-common.c => block/block.c}               |   2 +-
 hw/{ => block}/cdrom.c                             |   2 +-
 hw/{ => block}/dataplane/Makefile.objs             |   0
 hw/{ => block}/dataplane/hostmem.c                 |   0
 hw/{ => block}/dataplane/hostmem.h                 |   0
 hw/{ => block}/dataplane/ioq.c                     |   0
 hw/{ => block}/dataplane/ioq.h                     |   0
 hw/{ => block}/dataplane/virtio-blk.c              |   4 +-
 hw/{ => block}/dataplane/virtio-blk.h              |   2 +-
 hw/{ => block}/dataplane/vring.c                   |   0
 hw/{ => block}/dataplane/vring.h                   |   2 +-
 hw/{ => block}/ecc.c                               |   2 +-
 hw/{ => block}/fdc.c                               |   4 +-
 hw/{ => block}/hd-geometry.c                       |   2 +-
 hw/{ => block}/m25p80.c                            |   2 +-
 hw/{ => block}/nand.c                              |   2 +-
 hw/{ => block}/onenand.c                           |   2 +-
 hw/{ => block}/pc_sysfw.c                          |   4 +-
 hw/{ => block}/pflash_cfi01.c                      |   2 +-
 hw/{ => block}/pflash_cfi02.c                      |   2 +-
 hw/{ => block}/tc58128.c                           |   2 +-
 hw/{ => block}/virtio-blk.c                        |   6 +-
 hw/{ => block}/xen_blkif.h                         |   0
 hw/{ => block}/xen_disk.c                          |   4 +-
 hw/bt/Makefile.objs                                |   3 +
 hw/{bt.c => bt/core.c}                             |   0
 hw/{bt-hci-csr.c => bt/hci-csr.c}                  |   0
 hw/{bt-hci.c => bt/hci.c}                          |   0
 hw/{bt-hid.c => bt/hid.c}                          |   2 +-
 hw/{bt-l2cap.c => bt/l2cap.c}                      |   0
 hw/{bt-sdp.c => bt/sdp.c}                          |   0
 hw/char/Makefile.objs                              |  27 +++
 hw/{ => char}/cadence_uart.c                       |   0
 hw/{ => char}/debugcon.c                           |   4 +-
 hw/{ => char}/escc.c                               |   2 +-
 hw/{ => char}/etraxfs_ser.c                        |   0
 hw/{ => char}/exynos4210_uart.c                    |   2 +-
 hw/{ => char}/grlib_apbuart.c                      |   0
 hw/{ => char}/imx_serial.c                         |   2 +-
 hw/{ => char}/ipack.c                              |   2 +-
 hw/{ => char}/ipack.h                              |   0
 hw/{ => char}/ipoctal232.c                         |   2 +-
 hw/{ => char}/lm32_juart.c                         |   2 +-
 hw/{ => char}/lm32_uart.c                          |   0
 hw/{ => char}/mcf_uart.c                           |   2 +-
 hw/{ => char}/milkymist-uart.c                     |   0
 hw/{ => char}/omap_uart.c                          |   4 +-
 hw/{ => char}/parallel.c                           |   4 +-
 hw/{ => char}/pl011.c                              |   0
 hw/{s390x => char}/sclpconsole.c                   |   0
 hw/{ => char}/serial-isa.c                         |   4 +-
 hw/{ => char}/serial-pci.c                         |   2 +-
 hw/{ => char}/serial.c                             |   2 +-
 hw/{ => char}/sh_serial.c                          |   2 +-
 hw/{ => char}/spapr_vty.c                          |   4 +-
 hw/{ => char}/tpci200.c                            |   2 +-
 hw/{ => char}/virtio-console.c                     |   2 +-
 hw/{ => char}/virtio-serial-bus.c                  |   2 +-
 hw/{ => char}/xen_console.c                        |   2 +-
 hw/{ => char}/xilinx_uartlite.c                    |   0
 hw/core/Makefile.objs                              |  14 ++
 hw/{ => core}/empty_slot.c                         |   0
 hw/{ => core}/irq.c                                |   0
 hw/{ => core}/loader.c                             |   4 +-
 hw/{ => core}/null-machine.c                       |   0
 hw/{ => core}/ptimer.c                             |   0
 hw/{ => core}/qdev-addr.c                          |   0
 hw/{ => core}/qdev-properties-system.c             |   2 +-
 hw/{ => core}/qdev-properties.c                    |   2 +-
 hw/{ => core}/qdev.c                               |   0
 hw/{ => core}/stream.c                             |   0
 hw/{ => core}/sysbus.c                             |   0
 hw/{ => core}/uboot_image.h                        |   0
 hw/cris/Makefile.objs                              |  10 -
 hw/cris/axis_dev88.c                               |   6 +-
 hw/cris/boot.c                                     |   2 +-
 hw/{cris-boot.h => cris/boot.h}                    |   0
 hw/cris/pic_cpu.c                                  |   2 +-
 hw/display/Makefile.objs                           |  34 +++
 hw/{ => display}/ads7846.c                         |   0
 hw/{ => display}/blizzard.c                        |  14 +-
 hw/{ => display}/blizzard_template.h               |   0
 hw/{ => display}/cirrus_vga.c                      |  38 ++--
 hw/{ => display}/cirrus_vga_rop.h                  |   8 +-
 hw/{ => display}/cirrus_vga_rop2.h                 |   0
 hw/{ => display}/cirrus_vga_template.h             |   0
 hw/{ => display}/exynos4210_fimd.c                 |   0
 hw/{ => display}/framebuffer.c                     |   2 +-
 hw/{ => display}/framebuffer.h                     |   0
 hw/{ => display}/g364fb.c                          |   0
 hw/{ => display}/jazz_led.c                        |   0
 hw/{ => display}/milkymist-tmu2.c                  |   0
 hw/{ => display}/milkymist-vgafb.c                 |  12 +-
 hw/{ => display}/milkymist-vgafb_template.h        |   0
 hw/{ => display}/omap_dss.c                        |   2 +-
 hw/{ => display}/omap_lcd_template.h               |   0
 hw/{ => display}/omap_lcdc.c                       |  12 +-
 hw/{ => display}/pl110.c                           |  12 +-
 hw/{ => display}/pl110_template.h                  |  12 +-
 hw/{ => display}/pxa2xx_lcd.c                      |  14 +-
 hw/{ => display}/pxa2xx_template.h                 |   0
 hw/{ => display}/qxl-logger.c                      |   2 +-
 hw/{ => display}/qxl-render.c                      |   2 +-
 hw/{ => display}/qxl.c                             |   2 +-
 hw/{ => display}/qxl.h                             |   2 +-
 hw/{ => display}/sm501.c                           |  18 +-
 hw/{ => display}/sm501_template.h                  |   0
 hw/{ => display}/ssd0303.c                         |   2 +-
 hw/{ => display}/ssd0323.c                         |   0
 hw/{ => display}/tc6393xb.c                        |  14 +-
 hw/{ => display}/tc6393xb_template.h               |   0
 hw/{ => display}/tcx.c                             |   0
 hw/{ => display}/vga-isa-mm.c                      |   4 +-
 hw/{ => display}/vga-isa.c                         |   4 +-
 hw/{ => display}/vga-pci.c                         |   2 +-
 hw/{ => display}/vga.c                             |  22 +-
 hw/{ => display}/vga.h                             |   0
 hw/{ => display}/vga_int.h                         |   0
 hw/{ => display}/vga_template.h                    |   0
 hw/{ => display}/vmware_vga.c                      |   2 +-
 hw/{ => display}/xenfb.c                           |   2 +-
 hw/dma/Makefile.objs                               |  12 +
 hw/{ => dma}/etraxfs_dma.c                         |   2 +-
 hw/{dma.c => dma/i8257.c}                          |   2 +-
 hw/{ => dma}/omap_dma.c                            |   4 +-
 hw/{ => dma}/pl080.c                               |   0
 hw/{ => dma}/pl330.c                               |   2 +-
 hw/{ => dma}/puv3_dma.c                            |   2 +-
 hw/{ => dma}/pxa2xx_dma.c                          |   2 +-
 hw/{ => dma}/rc4030.c                              |   2 +-
 hw/{ => dma}/soc_dma.c                             |   2 +-
 hw/{ => dma}/sparc32_dma.c                         |   4 +-
 hw/{ => dma}/sun4m_iommu.c                         |   2 +-
 hw/{ => dma}/xilinx_axidma.c                       |   0
 hw/gpio/Makefile.objs                              |   6 +
 hw/{ => gpio}/max7310.c                            |   2 +-
 hw/{ => gpio}/omap_gpio.c                          |   2 +-
 hw/{ => gpio}/pl061.c                              |   0
 hw/{ => gpio}/puv3_gpio.c                          |   2 +-
 hw/{ => gpio}/zaurus.c                             |   2 +-
 hw/i2c/Makefile.objs                               |   7 +
 hw/{ => i2c}/bitbang_i2c.c                         |   2 +-
 hw/{ => i2c}/bitbang_i2c.h                         |   2 +-
 hw/{i2c.c => i2c/core.c}                           |   2 +-
 hw/{ => i2c}/exynos4210_i2c.c                      |   2 +-
 hw/{ => i2c}/omap_i2c.c                            |   4 +-
 hw/{ => i2c}/pm_smbus.c                            |   6 +-
 hw/{ => i2c}/smbus.c                               |   4 +-
 hw/{ => i2c}/smbus_eeprom.c                        |   4 +-
 hw/{ => i2c}/smbus_ich9.c                          |  10 +-
 hw/{ => i2c}/versatile_i2c.c                       |   2 +-
 hw/i386/Makefile.objs                              |  13 --
 hw/i386/kvmvapic.c                                 |   2 +-
 hw/i386/multiboot.c                                |   4 +-
 hw/{ => i386}/multiboot.h                          |   0
 hw/i386/pc.c                                       |  26 +--
 hw/i386/pc_piix.c                                  |   8 +-
 hw/i386/pc_q35.c                                   |  10 +-
 hw/i386/smbios.c                                   |   2 +-
 hw/i386/xen_domainbuild.c                          |   4 +-
 hw/{ => i386}/xen_domainbuild.h                    |   2 +-
 hw/i386/xen_machine_pv.c                           |   6 +-
 hw/ide/Makefile.objs                               |   2 +
 hw/ide/ahci.c                                      |   2 +-
 hw/ide/atapi.c                                     |   2 +-
 hw/ide/cmd646.c                                    |   4 +-
 hw/ide/core.c                                      |   6 +-
 hw/ide/ich.c                                       |   4 +-
 hw/ide/internal.h                                  |   6 +-
 hw/ide/isa.c                                       |   4 +-
 hw/ide/macio.c                                     |   2 +-
 hw/ide/microdrive.c                                |   2 +-
 hw/ide/pci.c                                       |   4 +-
 hw/ide/piix.c                                      |   4 +-
 hw/ide/qdev.c                                      |   2 +-
 hw/ide/via.c                                       |   4 +-
 hw/input/Makefile.objs                             |  13 ++
 hw/{ => input}/adb.c                               |   2 +-
 hw/{ => input}/hid.c                               |   2 +-
 hw/{ => input}/lm832x.c                            |   2 +-
 hw/{ => input}/milkymist-softusb.c                 |   2 +-
 hw/{ => input}/pckbd.c                             |   6 +-
 hw/{ => input}/pl050.c                             |   2 +-
 hw/{ => input}/ps2.c                               |   2 +-
 hw/{ => input}/pxa2xx_keypad.c                     |   2 +-
 hw/{ => input}/stellaris_input.c                   |   2 +-
 hw/{ => input}/tsc2005.c                           |   2 +-
 hw/{ => input}/tsc210x.c                           |   4 +-
 hw/{ => input}/vmmouse.c                           |   4 +-
 hw/intc/Makefile.objs                              |  21 ++
 hw/{ => intc}/apic.c                               |  10 +-
 hw/{ => intc}/apic_common.c                        |   4 +-
 hw/{ => intc}/arm_gic.c                            |   2 +-
 hw/{ => intc}/arm_gic_common.c                     |   2 +-
 hw/{ => intc}/armv7m_nvic.c                        |   4 +-
 hw/{ => intc}/etraxfs_pic.c                        |   0
 hw/{ => intc}/exynos4210_combiner.c                |   2 +-
 hw/{ => intc}/exynos4210_gic.c                     |   2 +-
 hw/{arm_gic_internal.h => intc/gic_internal.h}     |   0
 hw/{ => intc}/grlib_irqmp.c                        |   2 +-
 hw/{ => intc}/heathrow_pic.c                       |   0
 hw/{ => intc}/i8259.c                              |   6 +-
 hw/{ => intc}/i8259_common.c                       |   4 +-
 hw/{ => intc}/imx_avic.c                           |   0
 hw/{ => intc}/ioapic.c                             |   8 +-
 hw/{ => intc}/ioapic_common.c                      |   4 +-
 hw/{ => intc}/lm32_pic.c                           |   4 +-
 hw/{ => intc}/omap_intc.c                          |   2 +-
 hw/{ => intc}/openpic.c                            |   4 +-
 hw/{ => intc}/pl190.c                              |   0
 hw/{ => intc}/puv3_intc.c                          |   2 +-
 hw/{ => intc}/realview_gic.c                       |   0
 hw/{ => intc}/sbi.c                                |   0
 hw/{ => intc}/sh_intc.c                            |   4 +-
 hw/{ => intc}/slavio_intctl.c                      |   2 +-
 hw/{ => intc}/sun4c_intctl.c                       |   2 +-
 hw/{ => intc}/xilinx_intc.c                        |   0
 hw/isa/Makefile.objs                               |  15 ++
 hw/{ => isa}/apm.c                                 |   2 +-
 hw/{ => isa}/applesmc.c                            |   2 +-
 hw/{ => isa}/debugexit.c                           |   2 +-
 hw/{ => isa}/i82374.c                              |   2 +-
 hw/{ => isa}/i82378.c                              |   6 +-
 hw/{ => isa}/isa-bus.c                             |   2 +-
 hw/{ => isa}/isa_mmio.c                            |   2 +-
 hw/{ => isa}/lpc_ich9.c                            |  16 +-
 hw/{ => isa}/pc-testdev.c                          |   2 +-
 hw/{ => isa}/pc87312.c                             |   2 +-
 hw/{ => isa}/piix4.c                               |   4 +-
 hw/{ => isa}/sga.c                                 |   2 +-
 hw/{ => isa}/vmport.c                              |   4 +-
 hw/{ => isa}/vt82c686.c                            |  18 +-
 hw/kvm/apic.c                                      |   2 +-
 hw/kvm/arm_gic.c                                   |   2 +-
 hw/kvm/i8254.c                                     |   4 +-
 hw/kvm/i8259.c                                     |   4 +-
 hw/kvm/ioapic.c                                    |   6 +-
 hw/kvm/pci-assign.c                                |   2 +-
 hw/lm32/Makefile.objs                              |  20 --
 hw/{ => lm32}/lm32.h                               |   0
 hw/lm32/lm32_boards.c                              |   8 +-
 hw/{ => lm32}/lm32_hwsetup.h                       |   0
 hw/{ => lm32}/milkymist-hw.h                       |   0
 hw/lm32/milkymist.c                                |   8 +-
 hw/m68k/Makefile.objs                              |   4 -
 hw/m68k/an5206.c                                   |   2 +-
 hw/m68k/mcf5206.c                                  |   2 +-
 hw/m68k/mcf5208.c                                  |   2 +-
 hw/m68k/mcf_intc.c                                 |   2 +-
 hw/microblaze/Makefile.objs                        |   5 -
 hw/microblaze/boot.c                               |   2 +-
 hw/{microblaze_boot.h => microblaze/boot.h}        |   0
 hw/microblaze/petalogix_ml605_mmu.c                |  10 +-
 hw/microblaze/petalogix_s3adsp1800_mmu.c           |   8 +-
 hw/microblaze/pic_cpu.c                            |   2 +-
 hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h}  |   0
 hw/mips/Makefile.objs                              |   5 -
 hw/mips/addr.c                                     |   2 +-
 hw/mips/cputimer.c                                 |   2 +-
 hw/mips/mips_fulong2e.c                            |  22 +-
 hw/mips/mips_int.c                                 |   2 +-
 hw/mips/mips_jazz.c                                |  22 +-
 hw/mips/mips_malta.c                               |  20 +-
 hw/mips/mips_mipssim.c                             |  10 +-
 hw/mips/mips_r4k.c                                 |  18 +-
 hw/misc/Makefile.objs                              |  29 +++
 hw/{ => misc}/a9scu.c                              |   0
 hw/{ => misc}/arm_l2x0.c                           |   0
 hw/{ => misc}/arm_sysctl.c                         |   2 +-
 hw/{ => misc}/cbus.c                               |   2 +-
 hw/{ => misc}/eccmemctl.c                          |   0
 hw/{ => misc}/exynos4210_pmu.c                     |   0
 hw/{ => misc}/imx_ccm.c                            |   2 +-
 hw/{ => misc}/lm32_sys.c                           |   0
 hw/misc/macio/Makefile.objs                        |   3 +
 hw/{ => misc/macio}/cuda.c                         |   2 +-
 hw/{ => misc/macio}/mac_dbdma.c                    |   4 +-
 hw/{ => misc/macio}/macio.c                        |   4 +-
 hw/{ => misc}/max111x.c                            |   0
 hw/{ => misc}/milkymist-hpdmc.c                    |   0
 hw/{ => misc}/milkymist-pfpu.c                     |   0
 hw/{ => misc}/mst_fpga.c                           |   0
 hw/{ => misc}/omap_clk.c                           |   2 +-
 hw/{ => misc}/omap_gpmc.c                          |   4 +-
 hw/{ => misc}/omap_l4.c                            |   2 +-
 hw/{ => misc}/omap_sdrc.c                          |   2 +-
 hw/{ => misc}/omap_tap.c                           |   2 +-
 hw/{ => misc}/puv3_pm.c                            |   2 +-
 hw/{ => misc}/pxa2xx_pcmcia.c                      |   2 +-
 hw/{ => misc}/slavio_misc.c                        |   0
 hw/{ => misc}/tmp105.c                             |   4 +-
 hw/{ => misc}/tmp105.h                             |   4 +-
 hw/{ => misc}/zynq_slcr.c                          |   0
 hw/net/Makefile.objs                               |  31 +++
 hw/{ => net}/cadence_gem.c                         |   0
 hw/{ => net}/dp8393x.c                             |   2 +-
 hw/{ => net}/e1000.c                               |   2 +-
 hw/{e1000_hw.h => net/e1000_regs.h}                |   0
 hw/{ => net}/eepro100.c                            |   2 +-
 hw/{ => net}/etraxfs_eth.c                         |   2 +-
 hw/{ => net}/lan9118.c                             |   2 +-
 hw/{ => net}/lance.c                               |   4 +-
 hw/{ => net}/mcf_fec.c                             |   2 +-
 hw/{ => net}/milkymist-minimac2.c                  |   0
 hw/{ => net}/mipsnet.c                             |   0
 hw/{ => net}/ne2000-isa.c                          |   6 +-
 hw/{ => net}/ne2000.c                              |   2 +-
 hw/{ => net}/ne2000.h                              |   0
 hw/{ => net}/opencores_eth.c                       |   0
 hw/{ => net}/pcnet-pci.c                           |   2 +-
 hw/{ => net}/pcnet.c                               |   2 +-
 hw/{ => net}/pcnet.h                               |   0
 hw/{ => net}/rtl8139.c                             |   0
 hw/{ => net}/smc91c111.c                           |   2 +-
 hw/{ => net}/spapr_llan.c                          |   4 +-
 hw/{ => net}/stellaris_enet.c                      |   0
 hw/{ => net}/vhost_net.c                           |   6 +-
 hw/{ => net}/virtio-net.c                          |   6 +-
 hw/{ => net}/xen_nic.c                             |   2 +-
 hw/{ => net}/xgmac.c                               |   0
 hw/{ => net}/xilinx_axienet.c                      |   0
 hw/{ => net}/xilinx_ethlite.c                      |   0
 hw/nvram/Makefile.objs                             |   5 +
 hw/{ => nvram}/ds1225y.c                           |   0
 hw/{ => nvram}/eeprom93xx.c                        |   2 +-
 hw/{ => nvram}/fw_cfg.c                            |   4 +-
 hw/{ => nvram}/mac_nvram.c                         |   2 +-
 hw/{ => nvram}/spapr_nvram.c                       |   4 +-
 hw/openrisc/openrisc_sim.c                         |   2 +-
 hw/pci/Makefile.objs                               |  39 +++-
 hw/{apb_pci.c => pci/host-apb.c}                   |   2 +-
 hw/{bonito.c => pci/host-bonito.c}                 |   4 +-
 hw/{dec_pci.c => pci/host-dec.c}                   |   2 +-
 hw/{dec_pci.h => pci/host-dec.h}                   |   0
 hw/{grackle_pci.c => pci/host-grackle.c}           |   0
 hw/{gt64xxx.c => pci/host-gt64xxx.c}               |   4 +-
 hw/{piix_pci.c => pci/host-piix.c}                 |   8 +-
 hw/{ppc4xx_pci.c => pci/host-ppc4xx.c}             |   4 +-
 hw/{ppce500_pci.c => pci/host-ppce500.c}           |   2 +-
 hw/{prep_pci.c => pci/host-prep.c}                 |   2 +-
 hw/{q35.c => pci/host-q35.c}                       |   2 +-
 hw/{sh_pci.c => pci/host-sh.c}                     |   2 +-
 hw/{spapr_pci.c => pci/host-spapr.c}               |   4 +-
 hw/{unin_pci.c => pci/host-uninorth.c}             |   0
 hw/{versatile_pci.c => pci/host-versatile.c}       |   0
 hw/{ => pci}/i82801b11.c                           |   2 +-
 hw/{ => pci}/ioh3420.c                             |   2 +-
 hw/{ => pci}/ioh3420.h                             |   0
 hw/{ => pci}/ivshmem.c                             |   2 +-
 hw/{ => pci}/pam.c                                 |   2 +-
 hw/pci/pci-hotplug.c                               |   6 +-
 hw/pci/pci.h                                       |   2 +-
 hw/{ => pci}/pci_bridge_dev.c                      |   0
 hw/{vfio_pci.c => pci/vfio.c}                      |   0
 hw/{ => pci}/xio3130_downstream.c                  |   2 +-
 hw/{ => pci}/xio3130_downstream.h                  |   0
 hw/{ => pci}/xio3130_upstream.c                    |   2 +-
 hw/{ => pci}/xio3130_upstream.h                    |   0
 hw/ppc/Makefile.objs                               |  16 --
 hw/ppc/e500.c                                      |   8 +-
 hw/ppc/e500plat.c                                  |   2 +-
 hw/ppc/mac.h                                       |   2 +-
 hw/ppc/mac_newworld.c                              |  14 +-
 hw/ppc/mac_oldworld.c                              |  12 +-
 hw/ppc/mpc8544ds.c                                 |   2 +-
 hw/ppc/ppc.c                                       |   4 +-
 hw/{ => ppc}/ppc405.h                              |   2 +-
 hw/ppc/ppc405_boards.c                             |   8 +-
 hw/ppc/ppc405_uc.c                                 |   6 +-
 hw/ppc/ppc440_bamboo.c                             |   6 +-
 hw/ppc/ppc4xx_devs.c                               |   4 +-
 hw/ppc/ppc_booke.c                                 |   4 +-
 hw/ppc/prep.c                                      |  16 +-
 hw/ppc/spapr.c                                     |  10 +-
 hw/ppc/spapr_events.c                              |   4 +-
 hw/ppc/spapr_hcall.c                               |   2 +-
 hw/ppc/spapr_iommu.c                               |   2 +-
 hw/ppc/spapr_rtas.c                                |   4 +-
 hw/ppc/spapr_vio.c                                 |   6 +-
 hw/ppc/virtex_ml507.c                              |  12 +-
 hw/ppc/xics.c                                      |   4 +-
 hw/s390x/Makefile.objs                             |   2 +-
 hw/s390x/s390-virtio-bus.c                         |  10 +-
 hw/s390x/s390-virtio-bus.h                         |  12 +-
 hw/s390x/s390-virtio.c                             |   2 +-
 hw/s390x/virtio-ccw.c                              |   8 +-
 hw/s390x/virtio-ccw.h                              |  12 +-
 hw/scsi/Makefile.objs                              |   8 +
 hw/{ => scsi}/esp-pci.c                            |   4 +-
 hw/{ => scsi}/esp.c                                |   2 +-
 hw/{ => scsi}/lsi53c895a.c                         |   2 +-
 hw/{ => scsi}/megasas.c                            |   6 +-
 hw/{ => scsi}/mfi.h                                |   0
 hw/{ => scsi}/scsi-bus.c                           |   4 +-
 hw/{ => scsi}/scsi-disk.c                          |   6 +-
 hw/{ => scsi}/scsi-generic.c                       |   4 +-
 hw/{ => scsi}/spapr_vscsi.c                        |  12 +-
 hw/{ => scsi}/srp.h                                |   0
 hw/{ppc-viosrp.h => scsi/viosrp.h}                 |   0
 hw/{ => scsi}/virtio-scsi.c                        |   6 +-
 hw/sd/Makefile.objs                                |   8 +
 hw/{ => sd}/milkymist-memcard.c                    |   0
 hw/{ => sd}/omap_mmc.c                             |   2 +-
 hw/{ => sd}/pl181.c                                |   0
 hw/{ => sd}/pxa2xx_mmci.c                          |   2 +-
 hw/{ => sd}/sd.c                                   |   0
 hw/{ => sd}/sdhci.c                                |   2 +-
 hw/{ => sd}/sdhci.h                                |   0
 hw/{ => sd}/ssi-sd.c                               |   0
 hw/sh4/Makefile.objs                               |   6 -
 hw/sh4/r2d.c                                       |   8 +-
 hw/sh4/sh7750.c                                    |   8 +-
 hw/sh4/sh7750_regnames.c                           |   6 +-
 hw/{ => sh4}/sh7750_regnames.h                     |   0
 hw/{ => sh4}/sh7750_regs.h                         |   0
 hw/sh4/shix.c                                      |   2 +-
 hw/sparc/Makefile.objs                             |   9 -
 hw/sparc/leon3.c                                   |   2 +-
 hw/sparc/sun4m.c                                   |  20 +-
 hw/sparc64/Makefile.objs                           |   5 -
 hw/sparc64/sun4u.c                                 |  14 +-
 hw/ssi/Makefile.objs                               |   6 +
 hw/{ => ssi}/omap_spi.c                            |   2 +-
 hw/{ => ssi}/pl022.c                               |   0
 hw/{ => ssi}/ssi.c                                 |   0
 hw/{ => ssi}/xilinx_spi.c                          |   0
 hw/{ => ssi}/xilinx_spips.c                        |   0
 hw/timer/Makefile.objs                             |  28 +++
 hw/{ => timer}/arm_mptimer.c                       |   0
 hw/{ => timer}/arm_timer.c                         |   0
 hw/{ => timer}/cadence_ttc.c                       |   0
 hw/{ => timer}/ds1338.c                            |   2 +-
 hw/{ => timer}/etraxfs_timer.c                     |   0
 hw/{ => timer}/exynos4210_mct.c                    |   2 +-
 hw/{ => timer}/exynos4210_pwm.c                    |   2 +-
 hw/{ => timer}/exynos4210_rtc.c                    |   2 +-
 hw/{ => timer}/grlib_gptimer.c                     |   0
 hw/{ => timer}/hpet.c                              |   8 +-
 hw/{ => timer}/i8254.c                             |   8 +-
 hw/{ => timer}/i8254_common.c                      |   8 +-
 hw/{ => timer}/imx_timer.c                         |   2 +-
 hw/{ => timer}/lm32_timer.c                        |   0
 hw/{ => timer}/m48t59.c                            |   4 +-
 hw/{ => timer}/mc146818rtc.c                       |   4 +-
 hw/{ => timer}/milkymist-sysctl.c                  |   0
 hw/{ => timer}/omap_gptimer.c                      |   2 +-
 hw/{ => timer}/omap_synctimer.c                    |   2 +-
 hw/{ => timer}/pl031.c                             |   0
 hw/{ => timer}/puv3_ost.c                          |   2 +-
 hw/{ => timer}/pxa2xx_timer.c                      |   2 +-
 hw/{ => timer}/sh_timer.c                          |   2 +-
 hw/{ => timer}/slavio_timer.c                      |   2 +-
 hw/{ => timer}/tusb6010.c                          |   4 +-
 hw/{ => timer}/twl92230.c                          |   2 +-
 hw/{ => timer}/xilinx_timer.c                      |   0
 {tpm => hw/tpm}/Makefile.objs                      |   3 -
 {tpm => hw/tpm}/tpm_backend.c                      |  14 ++
 hw/tpm/tpm_int.h                                   |  65 ++++++
 {tpm => hw/tpm}/tpm_passthrough.c                  |   2 +-
 {tpm => hw/tpm}/tpm_tis.c                          |   2 +-
 {tpm => hw/tpm}/tpm_tis.h                          |   7 +-
 hw/unicore32/puv3.c                                |   4 +-
 hw/usb/Makefile.objs                               |   8 +-
 hw/{ => usb}/ccid-card-emulated.c                  |   2 +-
 hw/{ => usb}/ccid-card-passthru.c                  |   2 +-
 hw/{ => usb}/ccid.h                                |   0
 hw/usb/dev-audio.c                                 |   2 +-
 hw/usb/dev-hid.c                                   |   2 +-
 hw/usb/dev-smartcard-reader.c                      |   2 +-
 hw/usb/dev-storage.c                               |   2 +-
 hw/usb/dev-uas.c                                   |   4 +-
 hw/virtio/Makefile.objs                            |   6 +
 hw/{ => virtio}/vhost.c                            |   2 +-
 hw/{ => virtio}/virtio-balloon.c                   |   6 +-
 hw/{ => virtio}/virtio-bus.c                       |   4 +-
 hw/{ => virtio}/virtio-pci.c                       |  14 +-
 hw/{ => virtio}/virtio-pci.h                       |  14 +-
 hw/{ => virtio}/virtio-rng.c                       |   4 +-
 hw/{ => virtio}/virtio.c                           |   4 +-
 hw/watchdog/Makefile.objs                          |   3 +
 hw/{ => watchdog}/watchdog.c                       |   2 +-
 hw/{ => watchdog}/wdt_i6300esb.c                   |   2 +-
 hw/{ => watchdog}/wdt_ib700.c                      |   6 +-
 hw/xen/Makefile.objs                               |   6 +
 hw/{ => xen}/xen-host-pci-device.c                 |   2 +-
 hw/{ => xen}/xen-host-pci-device.h                 |   0
 hw/{ => xen}/xen_apic.c                            |   4 +-
 hw/{ => xen}/xen_backend.c                         |   2 +-
 hw/{ => xen}/xen_devconfig.c                       |   2 +-
 hw/{ => xen}/xen_platform.c                        |   6 +-
 hw/{ => xen}/xen_pt.c                              |   6 +-
 hw/{ => xen}/xen_pt.h                              |   4 +-
 hw/{ => xen}/xen_pt_config_init.c                  |   4 +-
 hw/{ => xen}/xen_pt_msi.c                          |   6 +-
 hw/{ => xtensa}/xtensa_bootparam.h                 |   0
 hw/xtensa/xtensa_lx60.c                            |   6 +-
 hw/scsi-defs.h => include/block/scsi.h             |   0
 include/exec/memory-internal.h                     |   2 +-
 {hw => include/hw/acpi}/acpi.h                     |   0
 hw/acpi_ich9.h => include/hw/acpi/ich9.h           |   2 +-
 hw/arm-misc.h => include/hw/arm.h                  |   0
 {hw => include/hw/arm}/devices.h                   |   0
 {hw => include/hw/arm}/exynos4210.h                |   0
 {hw => include/hw/arm}/imx.h                       |   0
 {hw => include/hw/arm}/omap.h                      |   0
 {hw => include/hw/arm}/primecell.h                 |   0
 {hw => include/hw/arm}/pxa.h                       |   0
 {hw => include/hw/arm}/sharpsl.h                   |   0
 {hw => include/hw/arm}/soc_dma.h                   |   0
 hw/audiodev.h => include/hw/audio/audio.h          |   0
 {hw => include/hw/audio}/pcspk.h                   |   2 +-
 hw/block-common.h => include/hw/block/block.h      |   0
 {hw => include/hw/block}/fdc.h                     |   0
 {hw => include/hw/block}/flash.h                   |   0
 {hw => include/hw}/boards.h                        |   0
 {hw => include/hw}/bt.h                            |   0
 {hw => include/hw/char}/escc.h                     |   0
 {hw => include/hw/char}/serial.h                   |   0
 {hw => include/hw/cris}/etraxfs.h                  |   2 +-
 {hw => include/hw/cris}/etraxfs_dma.h              |   0
 {hw => include/hw}/elf_ops.h                       |   0
 {hw => include/hw}/empty_slot.h                    |   0
 {hw => include/hw}/hw.h                            |   0
 {hw => include/hw/i2c}/i2c.h                       |   0
 {hw => include/hw/i2c}/pm_smbus.h                  |   0
 {hw => include/hw/i2c}/smbus.h                     |   2 +-
 {hw => include/hw/i386}/apic-msidef.h              |   0
 {hw => include/hw/i386}/apic.h                     |   0
 {hw => include/hw/i386}/apic_internal.h            |   0
 {hw => include/hw/i386}/ich9.h                     |  14 +-
 {hw => include/hw/i386}/ioapic.h                   |   0
 {hw => include/hw/i386}/ioapic_internal.h          |   0
 {hw => include/hw/i386}/pc.h                       |   6 +-
 {hw => include/hw/i386}/smbios.h                   |   0
 {hw => include/hw}/ide.h                           |   2 +-
 {hw => include/hw/input}/adb.h                     |   0
 {hw => include/hw/input}/hid.h                     |   0
 {hw => include/hw/input}/ps2.h                     |   0
 {hw => include/hw}/irq.h                           |   0
 {hw => include/hw/isa}/apm.h                       |   0
 {hw => include/hw/isa}/i8259_internal.h            |   4 +-
 {hw => include/hw/isa}/isa.h                       |   0
 {hw => include/hw/isa}/pc87312.h                   |   2 +-
 {hw => include/hw/isa}/vt82c686.h                  |   0
 {hw => include/hw}/kvm/clock.h                     |   0
 {hw => include/hw/lm32}/lm32_juart.h               |   0
 {hw => include/hw/lm32}/lm32_pic.h                 |   0
 {hw => include/hw}/loader.h                        |   0
 {hw => include/hw/m68k}/mcf.h                      |   0
 hw/mips-bios.h => include/hw/mips/bios.h           |   0
 hw/mips_cpudevs.h => include/hw/mips/cpudevs.h     |   0
 {hw => include/hw/mips}/mips.h                     |   0
 {hw => include/hw/misc}/tmp105_regs.h              |   0
 {hw => include/hw/nvram}/eeprom93xx.h              |   0
 {hw => include/hw/nvram}/fw_cfg.h                  |   0
 hw/apb_pci.h => include/hw/pci/host-apb.h          |   0
 hw/ppce500_pci.h => include/hw/pci/host-ppce500.h  |   0
 hw/q35.h => include/hw/pci/host-q35.h              |  14 +-
 hw/spapr_pci.h => include/hw/pci/host-spapr.h      |   2 +-
 hw/alpha_sys.h => include/hw/pci/host-typhoon.h    |   2 +-
 {hw => include/hw/pci}/pam.h                       |   0
 {hw => include/hw}/pcmcia.h                        |   0
 {hw => include/hw/ppc}/mac_dbdma.h                 |   0
 {hw => include/hw/ppc}/openpic.h                   |   0
 {hw => include/hw/ppc}/ppc.h                       |   0
 {hw => include/hw/ppc}/ppc4xx.h                    |   0
 {hw => include/hw/ppc}/spapr.h                     |   2 +-
 {hw => include/hw/ppc}/spapr_vio.h                 |   0
 {hw => include/hw/ppc}/xics.h                      |   0
 {hw => include/hw}/ptimer.h                        |   0
 {hw => include/hw}/qdev-addr.h                     |   0
 {hw => include/hw}/qdev-core.h                     |   0
 {hw => include/hw}/qdev-dma.h                      |   0
 {hw => include/hw}/qdev-properties.h               |   0
 {hw => include/hw}/qdev.h                          |   0
 {hw => include/hw}/s390x/event-facility.h          |   0
 {hw => include/hw}/s390x/sclp.h                    |   0
 {hw => include/hw/scsi}/esp.h                      |   2 +-
 {hw => include/hw/scsi}/scsi.h                     |   2 +-
 {hw => include/hw}/sd.h                            |   0
 {hw => include/hw/sh4}/sh.h                        |   2 +-
 {hw => include/hw/sh4}/sh_intc.h                   |   0
 {hw => include/hw/sparc}/firmware_abi.h            |   0
 {hw => include/hw/sparc}/grlib.h                   |   0
 {hw => include/hw/sparc}/sparc32_dma.h             |   0
 {hw => include/hw/sparc}/sun4m.h                   |   2 +-
 {hw => include/hw}/ssi.h                           |   0
 {hw => include/hw}/stream.h                        |   0
 {hw => include/hw}/sysbus.h                        |   0
 hw/hpet_emul.h => include/hw/timer/hpet.h          |   0
 {hw => include/hw/timer}/i8254.h                   |   2 +-
 {hw => include/hw/timer}/i8254_internal.h          |   4 +-
 hw/nvram.h => include/hw/timer/m48t59.h            |   0
 {hw => include/hw/timer}/mc146818rtc.h             |   4 +-
 {hw => include/hw/timer}/mc146818rtc_regs.h        |   0
 {hw => include/hw/unicore32}/puv3.h                |   0
 {hw => include/hw}/usb.h                           |   0
 {hw => include/hw/virtio}/vhost.h                  |   2 +-
 .../hw/virtio/virtio-9p.h                          |   0
 {hw => include/hw/virtio}/virtio-balloon.h         |   2 +-
 {hw => include/hw/virtio}/virtio-blk.h             |   4 +-
 {hw => include/hw/virtio}/virtio-bus.h             |   2 +-
 {hw => include/hw/virtio}/virtio-net.h             |   2 +-
 {hw => include/hw/virtio}/virtio-rng.h             |   0
 {hw => include/hw/virtio}/virtio-scsi.h            |   2 +-
 {hw => include/hw/virtio}/virtio-serial.h          |   2 +-
 {hw => include/hw/virtio}/virtio.h                 |   2 +-
 {hw => include/hw/xen}/xen.h                       |   0
 {hw => include/hw/xen}/xen_backend.h               |   2 +-
 {hw => include/hw/xen}/xen_common.h                |   2 +-
 {hw => include/hw}/xilinx.h                        |   0
 {hw => include/net}/vhost_net.h                    |   0
 {hw => include/sysemu}/watchdog.h                  |   0
 {tpm => include/tpm}/tpm_backend.h                 |  57 +++++
 monitor.c                                          |   8 +-
 net/tap.c                                          |   2 +-
 pc-bios/optionrom/optionrom.h                      |   2 +-
 target-arm/arm-semi.c                              |   2 +-
 target-arm/kvm.c                                   |   2 +-
 target-i386/cpu.c                                  |   4 +-
 target-i386/cpu.h                                  |   2 +-
 target-i386/kvm.c                                  |   4 +-
 target-i386/machine.c                              |   4 +-
 target-lm32/op_helper.c                            |   4 +-
 target-lm32/translate.c                            |   2 +-
 target-ppc/kvm.c                                   |   6 +-
 target-sh4/helper.c                                |   2 +-
 tests/rtc-test.c                                   |   2 +-
 tests/tmp105-test.c                                |   2 +-
 tpm/tpm.c => tpm.c                                 |  18 +-
 tpm/tpm_int.h                                      | 116 ----------
 vl.c                                               |  12 +-
 xen-all.c                                          |   6 +-
 xen-mapcache.c                                     |   2 +-
 xen-stub.c                                         |   2 +-
 747 files changed, 1753 insertions(+), 1557 deletions(-)
 create mode 100644 hw/acpi/Makefile.objs
 rename hw/{acpi.c => acpi/core.c} (99%)
 rename hw/{acpi_ich9.c => acpi/ich9.c} (98%)
 rename hw/{acpi_piix4.c => acpi/piix4.c} (99%)
 rename hw/{alpha_typhoon.c => alpha/typhoon.c} (99%)
 rename hw/{ => arm}/a15mpcore.c (100%)
 rename hw/{ => arm}/a9mpcore.c (100%)
 rename hw/{ => arm}/arm11mpcore.c (100%)
 rename hw/{ => arm}/strongarm.c (99%)
 rename hw/{ => arm}/strongarm.h (100%)
 create mode 100644 hw/audio/Makefile.objs
 rename hw/{ => audio}/ac97.c (99%)
 rename hw/{ => audio}/adlib.c (99%)
 rename hw/{ => audio}/cs4231.c (100%)
 rename hw/{ => audio}/cs4231a.c (99%)
 rename hw/{ => audio}/es1370.c (99%)
 rename hw/{ => audio}/fmopl.c (99%)
 rename hw/{ => audio}/fmopl.h (100%)
 rename hw/{ => audio}/gus.c (98%)
 rename hw/{ => audio}/gusemu.h (100%)
 rename hw/{ => audio}/gusemu_hal.c (99%)
 rename hw/{ => audio}/gusemu_mixer.c (99%)
 rename hw/{ => audio}/gustate.h (100%)
 rename hw/{hda-audio.c => audio/hda-codec.c} (99%)
 rename hw/{ => audio}/intel-hda-defs.h (100%)
 rename hw/{ => audio}/intel-hda.c (99%)
 rename hw/{ => audio}/intel-hda.h (100%)
 rename hw/{ => audio}/lm4549.c (99%)
 rename hw/{ => audio}/lm4549.h (100%)
 rename hw/{marvell_88w8618_audio.c => audio/marvell_88w8618.c} (99%)
 rename hw/{ => audio}/milkymist-ac97.c (100%)
 rename hw/{ => audio}/pcspk.c (98%)
 rename hw/{ => audio}/pl041.c (99%)
 rename hw/{ => audio}/pl041.h (100%)
 rename hw/{ => audio}/pl041.hx (100%)
 rename hw/{ => audio}/sb16.c (99%)
 rename hw/{ => audio}/wm8750.c (99%)
 create mode 100644 hw/block/Makefile.objs
 rename hw/{block-common.c => block/block.c} (98%)
 rename hw/{ => block}/cdrom.c (99%)
 rename hw/{ => block}/dataplane/Makefile.objs (100%)
 rename hw/{ => block}/dataplane/hostmem.c (100%)
 rename hw/{ => block}/dataplane/hostmem.h (100%)
 rename hw/{ => block}/dataplane/ioq.c (100%)
 rename hw/{ => block}/dataplane/ioq.h (100%)
 rename hw/{ => block}/dataplane/virtio-blk.c (99%)
 rename hw/{ => block}/dataplane/virtio-blk.h (96%)
 rename hw/{ => block}/dataplane/vring.c (100%)
 rename hw/{ => block}/dataplane/vring.h (98%)
 rename hw/{ => block}/ecc.c (99%)
 rename hw/{ => block}/fdc.c (99%)
 rename hw/{ => block}/hd-geometry.c (99%)
 rename hw/{ => block}/m25p80.c (99%)
 rename hw/{ => block}/nand.c (99%)
 rename hw/{ => block}/onenand.c (99%)
 rename hw/{ => block}/pc_sysfw.c (99%)
 rename hw/{ => block}/pflash_cfi01.c (99%)
 rename hw/{ => block}/pflash_cfi02.c (99%)
 rename hw/{ => block}/tc58128.c (99%)
 rename hw/{ => block}/virtio-blk.c (99%)
 rename hw/{ => block}/xen_blkif.h (100%)
 rename hw/{ => block}/xen_disk.c (99%)
 create mode 100644 hw/bt/Makefile.objs
 rename hw/{bt.c => bt/core.c} (100%)
 rename hw/{bt-hci-csr.c => bt/hci-csr.c} (100%)
 rename hw/{bt-hci.c => bt/hci.c} (100%)
 rename hw/{bt-hid.c => bt/hid.c} (99%)
 rename hw/{bt-l2cap.c => bt/l2cap.c} (100%)
 rename hw/{bt-sdp.c => bt/sdp.c} (100%)
 create mode 100644 hw/char/Makefile.objs
 rename hw/{ => char}/cadence_uart.c (100%)
 rename hw/{ => char}/debugcon.c (98%)
 rename hw/{ => char}/escc.c (99%)
 rename hw/{ => char}/etraxfs_ser.c (100%)
 rename hw/{ => char}/exynos4210_uart.c (99%)
 rename hw/{ => char}/grlib_apbuart.c (100%)
 rename hw/{ => char}/imx_serial.c (99%)
 rename hw/{ => char}/ipack.c (99%)
 rename hw/{ => char}/ipack.h (100%)
 rename hw/{ => char}/ipoctal232.c (99%)
 rename hw/{ => char}/lm32_juart.c (99%)
 rename hw/{ => char}/lm32_uart.c (100%)
 rename hw/{ => char}/mcf_uart.c (99%)
 rename hw/{ => char}/milkymist-uart.c (100%)
 rename hw/{ => char}/omap_uart.c (98%)
 rename hw/{ => char}/parallel.c (99%)
 rename hw/{ => char}/pl011.c (100%)
 rename hw/{s390x => char}/sclpconsole.c (100%)
 rename hw/{ => char}/serial-isa.c (98%)
 rename hw/{ => char}/serial-pci.c (99%)
 rename hw/{ => char}/serial.c (99%)
 rename hw/{ => char}/sh_serial.c (99%)
 rename hw/{ => char}/spapr_vty.c (99%)
 rename hw/{ => char}/tpci200.c (99%)
 rename hw/{ => char}/virtio-console.c (99%)
 rename hw/{ => char}/virtio-serial-bus.c (99%)
 rename hw/{ => char}/xen_console.c (99%)
 rename hw/{ => char}/xilinx_uartlite.c (100%)
 create mode 100644 hw/core/Makefile.objs
 rename hw/{ => core}/empty_slot.c (100%)
 rename hw/{ => core}/irq.c (100%)
 rename hw/{ => core}/loader.c (99%)
 rename hw/{ => core}/null-machine.c (100%)
 rename hw/{ => core}/ptimer.c (100%)
 rename hw/{ => core}/qdev-addr.c (100%)
 rename hw/{ => core}/qdev-properties-system.c (99%)
 rename hw/{ => core}/qdev-properties.c (99%)
 rename hw/{ => core}/qdev.c (100%)
 rename hw/{ => core}/stream.c (100%)
 rename hw/{ => core}/sysbus.c (100%)
 rename hw/{ => core}/uboot_image.h (100%)
 rename hw/{cris-boot.h => cris/boot.h} (100%)
 create mode 100644 hw/display/Makefile.objs
 rename hw/{ => display}/ads7846.c (100%)
 rename hw/{ => display}/blizzard.c (99%)
 rename hw/{ => display}/blizzard_template.h (100%)
 rename hw/{ => display}/cirrus_vga.c (99%)
 rename hw/{ => display}/cirrus_vga_rop.h (97%)
 rename hw/{ => display}/cirrus_vga_rop2.h (100%)
 rename hw/{ => display}/cirrus_vga_template.h (100%)
 rename hw/{ => display}/exynos4210_fimd.c (100%)
 rename hw/{ => display}/framebuffer.c (99%)
 rename hw/{ => display}/framebuffer.h (100%)
 rename hw/{ => display}/g364fb.c (100%)
 rename hw/{ => display}/jazz_led.c (100%)
 rename hw/{ => display}/milkymist-tmu2.c (100%)
 rename hw/{ => display}/milkymist-vgafb.c (97%)
 rename hw/{ => display}/milkymist-vgafb_template.h (100%)
 rename hw/{ => display}/omap_dss.c (99%)
 rename hw/{ => display}/omap_lcd_template.h (100%)
 rename hw/{ => display}/omap_lcdc.c (98%)
 rename hw/{ => display}/pl110.c (98%)
 rename hw/{ => display}/pl110_template.h (98%)
 rename hw/{ => display}/pxa2xx_lcd.c (99%)
 rename hw/{ => display}/pxa2xx_template.h (100%)
 rename hw/{ => display}/qxl-logger.c (99%)
 rename hw/{ => display}/qxl-render.c (99%)
 rename hw/{ => display}/qxl.c (99%)
 rename hw/{ => display}/qxl.h (99%)
 rename hw/{ => display}/sm501.c (99%)
 rename hw/{ => display}/sm501_template.h (100%)
 rename hw/{ => display}/ssd0303.c (99%)
 rename hw/{ => display}/ssd0323.c (100%)
 rename hw/{ => display}/tc6393xb.c (98%)
 rename hw/{ => display}/tc6393xb_template.h (100%)
 rename hw/{ => display}/tcx.c (100%)
 rename hw/{ => display}/vga-isa-mm.c (98%)
 rename hw/{ => display}/vga-isa.c (98%)
 rename hw/{ => display}/vga-pci.c (99%)
 rename hw/{ => display}/vga.c (99%)
 rename hw/{ => display}/vga.h (100%)
 rename hw/{ => display}/vga_int.h (100%)
 rename hw/{ => display}/vga_template.h (100%)
 rename hw/{ => display}/vmware_vga.c (99%)
 rename hw/{ => display}/xenfb.c (99%)
 create mode 100644 hw/dma/Makefile.objs
 rename hw/{ => dma}/etraxfs_dma.c (99%)
 rename hw/{dma.c => dma/i8257.c} (99%)
 rename hw/{ => dma}/omap_dma.c (99%)
 rename hw/{ => dma}/pl080.c (100%)
 rename hw/{ => dma}/pl330.c (99%)
 rename hw/{ => dma}/puv3_dma.c (98%)
 rename hw/{ => dma}/pxa2xx_dma.c (99%)
 rename hw/{ => dma}/rc4030.c (99%)
 rename hw/{ => dma}/soc_dma.c (99%)
 rename hw/{ => dma}/sparc32_dma.c (99%)
 rename hw/{ => dma}/sun4m_iommu.c (99%)
 rename hw/{ => dma}/xilinx_axidma.c (100%)
 create mode 100644 hw/gpio/Makefile.objs
 rename hw/{ => gpio}/max7310.c (99%)
 rename hw/{ => gpio}/omap_gpio.c (99%)
 rename hw/{ => gpio}/pl061.c (100%)
 rename hw/{ => gpio}/puv3_gpio.c (99%)
 rename hw/{ => gpio}/zaurus.c (99%)
 create mode 100644 hw/i2c/Makefile.objs
 rename hw/{ => i2c}/bitbang_i2c.c (99%)
 rename hw/{ => i2c}/bitbang_i2c.h (92%)
 rename hw/{i2c.c => i2c/core.c} (99%)
 rename hw/{ => i2c}/exynos4210_i2c.c (99%)
 rename hw/{ => i2c}/omap_i2c.c (99%)
 rename hw/{ => i2c}/pm_smbus.c (98%)
 rename hw/{ => i2c}/smbus.c (99%)
 rename hw/{ => i2c}/smbus_eeprom.c (98%)
 rename hw/{ => i2c}/smbus_ich9.c (96%)
 rename hw/{ => i2c}/versatile_i2c.c (99%)
 rename hw/{ => i386}/multiboot.h (100%)
 rename hw/{ => i386}/xen_domainbuild.h (93%)
 create mode 100644 hw/input/Makefile.objs
 rename hw/{ => input}/adb.c (99%)
 rename hw/{ => input}/hid.c (99%)
 rename hw/{ => input}/lm832x.c (99%)
 rename hw/{ => input}/milkymist-softusb.c (99%)
 rename hw/{ => input}/pckbd.c (99%)
 rename hw/{ => input}/pl050.c (99%)
 rename hw/{ => input}/ps2.c (99%)
 rename hw/{ => input}/pxa2xx_keypad.c (99%)
 rename hw/{ => input}/stellaris_input.c (98%)
 rename hw/{ => input}/tsc2005.c (99%)
 rename hw/{ => input}/tsc210x.c (99%)
 rename hw/{ => input}/vmmouse.c (99%)
 create mode 100644 hw/intc/Makefile.objs
 rename hw/{ => intc}/apic.c (99%)
 rename hw/{ => intc}/apic_common.c (99%)
 rename hw/{ => intc}/arm_gic.c (99%)
 rename hw/{ => intc}/arm_gic_common.c (99%)
 rename hw/{ => intc}/armv7m_nvic.c (99%)
 rename hw/{ => intc}/etraxfs_pic.c (100%)
 rename hw/{ => intc}/exynos4210_combiner.c (99%)
 rename hw/{ => intc}/exynos4210_gic.c (99%)
 rename hw/{arm_gic_internal.h => intc/gic_internal.h} (100%)
 rename hw/{ => intc}/grlib_irqmp.c (99%)
 rename hw/{ => intc}/heathrow_pic.c (100%)
 rename hw/{ => intc}/i8259.c (99%)
 rename hw/{ => intc}/i8259_common.c (98%)
 rename hw/{ => intc}/imx_avic.c (100%)
 rename hw/{ => intc}/ioapic.c (98%)
 rename hw/{ => intc}/ioapic_common.c (98%)
 rename hw/{ => intc}/lm32_pic.c (98%)
 rename hw/{ => intc}/omap_intc.c (99%)
 rename hw/{ => intc}/openpic.c (99%)
 rename hw/{ => intc}/pl190.c (100%)
 rename hw/{ => intc}/puv3_intc.c (99%)
 rename hw/{ => intc}/realview_gic.c (100%)
 rename hw/{ => intc}/sbi.c (100%)
 rename hw/{ => intc}/sh_intc.c (99%)
 rename hw/{ => intc}/slavio_intctl.c (99%)
 rename hw/{ => intc}/sun4c_intctl.c (99%)
 rename hw/{ => intc}/xilinx_intc.c (100%)
 create mode 100644 hw/isa/Makefile.objs
 rename hw/{ => isa}/apm.c (99%)
 rename hw/{ => isa}/applesmc.c (99%)
 rename hw/{ => isa}/debugexit.c (98%)
 rename hw/{ => isa}/i82374.c (99%)
 rename hw/{ => isa}/i82378.c (98%)
 rename hw/{ => isa}/isa-bus.c (99%)
 rename hw/{ => isa}/isa_mmio.c (99%)
 rename hw/{ => isa}/lpc_ich9.c (98%)
 rename hw/{ => isa}/pc-testdev.c (99%)
 rename hw/{ => isa}/pc87312.c (99%)
 rename hw/{ => isa}/piix4.c (98%)
 rename hw/{ => isa}/sga.c (98%)
 rename hw/{ => isa}/vmport.c (98%)
 rename hw/{ => isa}/vt82c686.c (98%)
 rename hw/{ => lm32}/lm32.h (100%)
 rename hw/{ => lm32}/lm32_hwsetup.h (100%)
 rename hw/{ => lm32}/milkymist-hw.h (100%)
 rename hw/{microblaze_boot.h => microblaze/boot.h} (100%)
 rename hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h} (100%)
 create mode 100644 hw/misc/Makefile.objs
 rename hw/{ => misc}/a9scu.c (100%)
 rename hw/{ => misc}/arm_l2x0.c (100%)
 rename hw/{ => misc}/arm_sysctl.c (99%)
 rename hw/{ => misc}/cbus.c (99%)
 rename hw/{ => misc}/eccmemctl.c (100%)
 rename hw/{ => misc}/exynos4210_pmu.c (100%)
 rename hw/{ => misc}/imx_ccm.c (99%)
 rename hw/{ => misc}/lm32_sys.c (100%)
 create mode 100644 hw/misc/macio/Makefile.objs
 rename hw/{ => misc/macio}/cuda.c (99%)
 rename hw/{ => misc/macio}/mac_dbdma.c (99%)
 rename hw/{ => misc/macio}/macio.c (99%)
 rename hw/{ => misc}/max111x.c (100%)
 rename hw/{ => misc}/milkymist-hpdmc.c (100%)
 rename hw/{ => misc}/milkymist-pfpu.c (100%)
 rename hw/{ => misc}/mst_fpga.c (100%)
 rename hw/{ => misc}/omap_clk.c (99%)
 rename hw/{ => misc}/omap_gpmc.c (99%)
 rename hw/{ => misc}/omap_l4.c (99%)
 rename hw/{ => misc}/omap_sdrc.c (99%)
 rename hw/{ => misc}/omap_tap.c (99%)
 rename hw/{ => misc}/puv3_pm.c (99%)
 rename hw/{ => misc}/pxa2xx_pcmcia.c (99%)
 rename hw/{ => misc}/slavio_misc.c (100%)
 rename hw/{ => misc}/tmp105.c (99%)
 rename hw/{ => misc}/tmp105.h (94%)
 rename hw/{ => misc}/zynq_slcr.c (100%)
 create mode 100644 hw/net/Makefile.objs
 rename hw/{ => net}/cadence_gem.c (100%)
 rename hw/{ => net}/dp8393x.c (99%)
 rename hw/{ => net}/e1000.c (99%)
 rename hw/{e1000_hw.h => net/e1000_regs.h} (100%)
 rename hw/{ => net}/eepro100.c (99%)
 rename hw/{ => net}/etraxfs_eth.c (99%)
 rename hw/{ => net}/lan9118.c (99%)
 rename hw/{ => net}/lance.c (99%)
 rename hw/{ => net}/mcf_fec.c (99%)
 rename hw/{ => net}/milkymist-minimac2.c (100%)
 rename hw/{ => net}/mipsnet.c (100%)
 rename hw/{ => net}/ne2000-isa.c (98%)
 rename hw/{ => net}/ne2000.c (99%)
 rename hw/{ => net}/ne2000.h (100%)
 rename hw/{ => net}/opencores_eth.c (100%)
 rename hw/{ => net}/pcnet-pci.c (99%)
 rename hw/{ => net}/pcnet.c (99%)
 rename hw/{ => net}/pcnet.h (100%)
 rename hw/{ => net}/rtl8139.c (100%)
 rename hw/{ => net}/smc91c111.c (99%)
 rename hw/{ => net}/spapr_llan.c (99%)
 rename hw/{ => net}/stellaris_enet.c (100%)
 rename hw/{ => net}/vhost_net.c (98%)
 rename hw/{ => net}/virtio-net.c (99%)
 rename hw/{ => net}/xen_nic.c (99%)
 rename hw/{ => net}/xgmac.c (100%)
 rename hw/{ => net}/xilinx_axienet.c (100%)
 rename hw/{ => net}/xilinx_ethlite.c (100%)
 create mode 100644 hw/nvram/Makefile.objs
 rename hw/{ => nvram}/ds1225y.c (100%)
 rename hw/{ => nvram}/eeprom93xx.c (99%)
 rename hw/{ => nvram}/fw_cfg.c (99%)
 rename hw/{ => nvram}/mac_nvram.c (99%)
 rename hw/{ => nvram}/spapr_nvram.c (98%)
 rename hw/{apb_pci.c => pci/host-apb.c} (99%)
 rename hw/{bonito.c => pci/host-bonito.c} (99%)
 rename hw/{dec_pci.c => pci/host-dec.c} (99%)
 rename hw/{dec_pci.h => pci/host-dec.h} (100%)
 rename hw/{grackle_pci.c => pci/host-grackle.c} (100%)
 rename hw/{gt64xxx.c => pci/host-gt64xxx.c} (99%)
 rename hw/{piix_pci.c => pci/host-piix.c} (99%)
 rename hw/{ppc4xx_pci.c => pci/host-ppc4xx.c} (99%)
 rename hw/{ppce500_pci.c => pci/host-ppce500.c} (99%)
 rename hw/{prep_pci.c => pci/host-prep.c} (99%)
 rename hw/{q35.c => pci/host-q35.c} (99%)
 rename hw/{sh_pci.c => pci/host-sh.c} (99%)
 rename hw/{spapr_pci.c => pci/host-spapr.c} (99%)
 rename hw/{unin_pci.c => pci/host-uninorth.c} (100%)
 rename hw/{versatile_pci.c => pci/host-versatile.c} (100%)
 rename hw/{ => pci}/i82801b11.c (99%)
 rename hw/{ => pci}/ioh3420.c (99%)
 rename hw/{ => pci}/ioh3420.h (100%)
 rename hw/{ => pci}/ivshmem.c (99%)
 rename hw/{ => pci}/pam.c (99%)
 rename hw/{ => pci}/pci_bridge_dev.c (100%)
 rename hw/{vfio_pci.c => pci/vfio.c} (100%)
 rename hw/{ => pci}/xio3130_downstream.c (99%)
 rename hw/{ => pci}/xio3130_downstream.h (100%)
 rename hw/{ => pci}/xio3130_upstream.c (99%)
 rename hw/{ => pci}/xio3130_upstream.h (100%)
 rename hw/{ => ppc}/ppc405.h (99%)
 create mode 100644 hw/scsi/Makefile.objs
 rename hw/{ => scsi}/esp-pci.c (99%)
 rename hw/{ => scsi}/esp.c (99%)
 rename hw/{ => scsi}/lsi53c895a.c (99%)
 rename hw/{ => scsi}/megasas.c (99%)
 rename hw/{ => scsi}/mfi.h (100%)
 rename hw/{ => scsi}/scsi-bus.c (99%)
 rename hw/{ => scsi}/scsi-disk.c (99%)
 rename hw/{ => scsi}/scsi-generic.c (99%)
 rename hw/{ => scsi}/spapr_vscsi.c (99%)
 rename hw/{ => scsi}/srp.h (100%)
 rename hw/{ppc-viosrp.h => scsi/viosrp.h} (100%)
 rename hw/{ => scsi}/virtio-scsi.c (99%)
 create mode 100644 hw/sd/Makefile.objs
 rename hw/{ => sd}/milkymist-memcard.c (100%)
 rename hw/{ => sd}/omap_mmc.c (99%)
 rename hw/{ => sd}/pl181.c (100%)
 rename hw/{ => sd}/pxa2xx_mmci.c (99%)
 rename hw/{ => sd}/sd.c (100%)
 rename hw/{ => sd}/sdhci.c (99%)
 rename hw/{ => sd}/sdhci.h (100%)
 rename hw/{ => sd}/ssi-sd.c (100%)
 rename hw/{ => sh4}/sh7750_regnames.h (100%)
 rename hw/{ => sh4}/sh7750_regs.h (100%)
 create mode 100644 hw/ssi/Makefile.objs
 rename hw/{ => ssi}/omap_spi.c (99%)
 rename hw/{ => ssi}/pl022.c (100%)
 rename hw/{ => ssi}/ssi.c (100%)
 rename hw/{ => ssi}/xilinx_spi.c (100%)
 rename hw/{ => ssi}/xilinx_spips.c (100%)
 create mode 100644 hw/timer/Makefile.objs
 rename hw/{ => timer}/arm_mptimer.c (100%)
 rename hw/{ => timer}/arm_timer.c (100%)
 rename hw/{ => timer}/cadence_ttc.c (100%)
 rename hw/{ => timer}/ds1338.c (99%)
 rename hw/{ => timer}/etraxfs_timer.c (100%)
 rename hw/{ => timer}/exynos4210_mct.c (99%)
 rename hw/{ => timer}/exynos4210_pwm.c (99%)
 rename hw/{ => timer}/exynos4210_rtc.c (99%)
 rename hw/{ => timer}/grlib_gptimer.c (100%)
 rename hw/{ => timer}/hpet.c (99%)
 rename hw/{ => timer}/i8254.c (98%)
 rename hw/{ => timer}/i8254_common.c (98%)
 rename hw/{ => timer}/imx_timer.c (99%)
 rename hw/{ => timer}/lm32_timer.c (100%)
 rename hw/{ => timer}/m48t59.c (99%)
 rename hw/{ => timer}/mc146818rtc.c (99%)
 rename hw/{ => timer}/milkymist-sysctl.c (100%)
 rename hw/{ => timer}/omap_gptimer.c (99%)
 rename hw/{ => timer}/omap_synctimer.c (99%)
 rename hw/{ => timer}/pl031.c (100%)
 rename hw/{ => timer}/puv3_ost.c (99%)
 rename hw/{ => timer}/pxa2xx_timer.c (99%)
 rename hw/{ => timer}/sh_timer.c (99%)
 rename hw/{ => timer}/slavio_timer.c (99%)
 rename hw/{ => timer}/tusb6010.c (99%)
 rename hw/{ => timer}/twl92230.c (99%)
 rename hw/{ => timer}/xilinx_timer.c (100%)
 rename {tpm => hw/tpm}/Makefile.objs (72%)
 rename {tpm => hw/tpm}/tpm_backend.c (82%)
 create mode 100644 hw/tpm/tpm_int.h
 rename {tpm => hw/tpm}/tpm_passthrough.c (99%)
 rename {tpm => hw/tpm}/tpm_tis.c (99%)
 rename {tpm => hw/tpm}/tpm_tis.h (93%)
 rename hw/{ => usb}/ccid-card-emulated.c (99%)
 rename hw/{ => usb}/ccid-card-passthru.c (99%)
 rename hw/{ => usb}/ccid.h (100%)
 create mode 100644 hw/virtio/Makefile.objs
 rename hw/{ => virtio}/vhost.c (99%)
 rename hw/{ => virtio}/virtio-balloon.c (99%)
 rename hw/{ => virtio}/virtio-bus.c (98%)
 rename hw/{ => virtio}/virtio-pci.c (99%)
 rename hw/{ => virtio}/virtio-pci.h (91%)
 rename hw/{ => virtio}/virtio-rng.c (98%)
 rename hw/{ => virtio}/virtio.c (99%)
 create mode 100644 hw/watchdog/Makefile.objs
 rename hw/{ => watchdog}/watchdog.c (99%)
 rename hw/{ => watchdog}/wdt_i6300esb.c (99%)
 rename hw/{ => watchdog}/wdt_ib700.c (98%)
 create mode 100644 hw/xen/Makefile.objs
 rename hw/{ => xen}/xen-host-pci-device.c (99%)
 rename hw/{ => xen}/xen-host-pci-device.h (100%)
 rename hw/{ => xen}/xen_apic.c (97%)
 rename hw/{ => xen}/xen_backend.c (99%)
 rename hw/{ => xen}/xen_devconfig.c (99%)
 rename hw/{ => xen}/xen_platform.c (99%)
 rename hw/{ => xen}/xen_pt.c (99%)
 rename hw/{ => xen}/xen_pt.h (99%)
 rename hw/{ => xen}/xen_pt_config_init.c (99%)
 rename hw/{ => xen}/xen_pt_msi.c (99%)
 rename hw/{ => xtensa}/xtensa_bootparam.h (100%)
 rename hw/scsi-defs.h => include/block/scsi.h (100%)
 rename {hw => include/hw/acpi}/acpi.h (100%)
 rename hw/acpi_ich9.h => include/hw/acpi/ich9.h (98%)
 rename hw/arm-misc.h => include/hw/arm.h (100%)
 rename {hw => include/hw/arm}/devices.h (100%)
 rename {hw => include/hw/arm}/exynos4210.h (100%)
 rename {hw => include/hw/arm}/imx.h (100%)
 rename {hw => include/hw/arm}/omap.h (100%)
 rename {hw => include/hw/arm}/primecell.h (100%)
 rename {hw => include/hw/arm}/pxa.h (100%)
 rename {hw => include/hw/arm}/sharpsl.h (100%)
 rename {hw => include/hw/arm}/soc_dma.h (100%)
 rename hw/audiodev.h => include/hw/audio/audio.h (100%)
 rename {hw => include/hw/audio}/pcspk.h (98%)
 rename hw/block-common.h => include/hw/block/block.h (100%)
 rename {hw => include/hw/block}/fdc.h (100%)
 rename {hw => include/hw/block}/flash.h (100%)
 rename {hw => include/hw}/boards.h (100%)
 rename {hw => include/hw}/bt.h (100%)
 rename {hw => include/hw/char}/escc.h (100%)
 rename {hw => include/hw/char}/serial.h (100%)
 rename {hw => include/hw/cris}/etraxfs.h (98%)
 rename {hw => include/hw/cris}/etraxfs_dma.h (100%)
 rename {hw => include/hw}/elf_ops.h (100%)
 rename {hw => include/hw}/empty_slot.h (100%)
 rename {hw => include/hw}/hw.h (100%)
 rename {hw => include/hw/i2c}/i2c.h (100%)
 rename {hw => include/hw/i2c}/pm_smbus.h (100%)
 rename {hw => include/hw/i2c}/smbus.h (99%)
 rename {hw => include/hw/i386}/apic-msidef.h (100%)
 rename {hw => include/hw/i386}/apic.h (100%)
 rename {hw => include/hw/i386}/apic_internal.h (100%)
 rename {hw => include/hw/i386}/ich9.h (97%)
 rename {hw => include/hw/i386}/ioapic.h (100%)
 rename {hw => include/hw/i386}/ioapic_internal.h (100%)
 rename {hw => include/hw/i386}/pc.h (98%)
 rename {hw => include/hw/i386}/smbios.h (100%)
 rename {hw => include/hw}/ide.h (97%)
 rename {hw => include/hw/input}/adb.h (100%)
 rename {hw => include/hw/input}/hid.h (100%)
 rename {hw => include/hw/input}/ps2.h (100%)
 rename {hw => include/hw}/irq.h (100%)
 rename {hw => include/hw/isa}/apm.h (100%)
 rename {hw => include/hw/isa}/i8259_internal.h (98%)
 rename {hw => include/hw/isa}/isa.h (100%)
 rename {hw => include/hw/isa}/pc87312.h (98%)
 rename {hw => include/hw/isa}/vt82c686.h (100%)
 rename {hw => include/hw}/kvm/clock.h (100%)
 rename {hw => include/hw/lm32}/lm32_juart.h (100%)
 rename {hw => include/hw/lm32}/lm32_pic.h (100%)
 rename {hw => include/hw}/loader.h (100%)
 rename {hw => include/hw/m68k}/mcf.h (100%)
 rename hw/mips-bios.h => include/hw/mips/bios.h (100%)
 rename hw/mips_cpudevs.h => include/hw/mips/cpudevs.h (100%)
 rename {hw => include/hw/mips}/mips.h (100%)
 rename {hw => include/hw/misc}/tmp105_regs.h (100%)
 rename {hw => include/hw/nvram}/eeprom93xx.h (100%)
 rename {hw => include/hw/nvram}/fw_cfg.h (100%)
 rename hw/apb_pci.h => include/hw/pci/host-apb.h (100%)
 rename hw/ppce500_pci.h => include/hw/pci/host-ppce500.h (100%)
 rename hw/q35.h => include/hw/pci/host-q35.h (97%)
 rename hw/spapr_pci.h => include/hw/pci/host-spapr.h (99%)
 rename hw/alpha_sys.h => include/hw/pci/host-typhoon.h (95%)
 rename {hw => include/hw/pci}/pam.h (100%)
 rename {hw => include/hw}/pcmcia.h (100%)
 rename {hw => include/hw/ppc}/mac_dbdma.h (100%)
 rename {hw => include/hw/ppc}/openpic.h (100%)
 rename {hw => include/hw/ppc}/ppc.h (100%)
 rename {hw => include/hw/ppc}/ppc4xx.h (100%)
 rename {hw => include/hw/ppc}/spapr.h (99%)
 rename {hw => include/hw/ppc}/spapr_vio.h (100%)
 rename {hw => include/hw/ppc}/xics.h (100%)
 rename {hw => include/hw}/ptimer.h (100%)
 rename {hw => include/hw}/qdev-addr.h (100%)
 rename {hw => include/hw}/qdev-core.h (100%)
 rename {hw => include/hw}/qdev-dma.h (100%)
 rename {hw => include/hw}/qdev-properties.h (100%)
 rename {hw => include/hw}/qdev.h (100%)
 rename {hw => include/hw}/s390x/event-facility.h (100%)
 rename {hw => include/hw}/s390x/sclp.h (100%)
 rename {hw => include/hw/scsi}/esp.h (99%)
 rename {hw => include/hw/scsi}/scsi.h (99%)
 rename {hw => include/hw}/sd.h (100%)
 rename {hw => include/hw/sh4}/sh.h (98%)
 rename {hw => include/hw/sh4}/sh_intc.h (100%)
 rename {hw => include/hw/sparc}/firmware_abi.h (100%)
 rename {hw => include/hw/sparc}/grlib.h (100%)
 rename {hw => include/hw/sparc}/sparc32_dma.h (100%)
 rename {hw => include/hw/sparc}/sun4m.h (96%)
 rename {hw => include/hw}/ssi.h (100%)
 rename {hw => include/hw}/stream.h (100%)
 rename {hw => include/hw}/sysbus.h (100%)
 rename hw/hpet_emul.h => include/hw/timer/hpet.h (100%)
 rename {hw => include/hw/timer}/i8254.h (98%)
 rename {hw => include/hw/timer}/i8254_internal.h (98%)
 rename hw/nvram.h => include/hw/timer/m48t59.h (100%)
 rename {hw => include/hw/timer}/mc146818rtc.h (80%)
 rename {hw => include/hw/timer}/mc146818rtc_regs.h (100%)
 rename {hw => include/hw/unicore32}/puv3.h (100%)
 rename {hw => include/hw}/usb.h (100%)
 rename {hw => include/hw/virtio}/vhost.h (98%)
 rename hw/9pfs/virtio-9p-device.h => include/hw/virtio/virtio-9p.h (100%)
 rename {hw => include/hw/virtio}/virtio-balloon.h (98%)
 rename {hw => include/hw/virtio}/virtio-blk.h (98%)
 rename {hw => include/hw/virtio}/virtio-bus.h (99%)
 rename {hw => include/hw/virtio}/virtio-net.h (99%)
 rename {hw => include/hw/virtio}/virtio-rng.h (100%)
 rename {hw => include/hw/virtio}/virtio-scsi.h (97%)
 rename {hw => include/hw/virtio}/virtio-serial.h (99%)
 rename {hw => include/hw/virtio}/virtio.h (99%)
 rename {hw => include/hw/xen}/xen.h (100%)
 rename {hw => include/hw/xen}/xen_backend.h (99%)
 rename {hw => include/hw/xen}/xen_common.h (99%)
 rename {hw => include/hw}/xilinx.h (100%)
 rename {hw => include/net}/vhost_net.h (100%)
 rename {hw => include/sysemu}/watchdog.h (100%)
 rename {tpm => include/tpm}/tpm_backend.h (50%)
 rename tpm/tpm.c => tpm.c (93%)
 delete mode 100644 tpm/tpm_int.h

Paolo

Paolo Bonzini (35):
  hw: move headers to include/
  hw: make subdirectories for devices
  configure: fix TPM logic
  tpm: reorganize headers and split hardware part
  hw: move another file to hw/alpha/
  hw: move target-independent files to subdirectories
  hw: move virtio devices to hw/ subdirectories
  hw: make all of hw/ide/ configurable via default-configs/
  hw: make all of hw/usb/ configurable via default-configs/
  hw: make all of hw/pci/ configurable via default-configs/
  hw: move watchdogs to hw/watchdog, configure via default-configs/
  hw: move MC146818RTC to hw/timer/, configure via default-configs/
  hw: move NICs to hw/net/, configure via default-configs/
  hw: move block devices to hw/block/, configure via default-configs/
  hw: move audio devices to hw/audio/, configure via default-configs/
  hw: move display devices to hw/display/, configure via
    default-configs/
  hw: move I2C controllers to hw/i2c/, configure via default-configs/
  hw: move SSI controllers to hw/ssi/, configure via default-configs/
  hw: move SCSI controllers to hw/scsi/, configure via default-configs/
  hw: move more files to hw/xen/
  hw: move char devices to hw/char/, configure via default-configs/
  hw: move ISA bridges and devices to hw/isa/, configure with
    default-configs/
  hw: move timer devices to hw/timer/, configure with default-configs/
  hw: move input devices to hw/input/, configure with default-configs/
  hw: move SD/MMC devices to hw/sd/, configure with default-configs/
  hw: move PCI bridges to hw/pci/, configure with default-configs/
  hw: move VFIO and ivshmem to hw/pci/
  hw: move DMA controllers to hw/dma/, configure with default-configs/
  hw: move interrupt controllers to hw/intc/, configure with
    default-configs/
  hw: move GPIO interfaces to hw/gpio/, configure with default-configs/
  hw: move NVRAM interfaces to hw/nvram/, configure with
    default-configs/
  hw: move other devices to hw/misc/, configure with default-configs/
  arm: move remaining files to hw/arm/
  MAINTAINERS: update for source code movement
  hw: move private headers to hw/ subdirectories.

 MAINTAINERS                                        | 170 +++++++-------
 Makefile.objs                                      |   2 +-
 arch_init.c                                        |   8 +-
 block/iscsi.c                                      |   4 +-
 blockdev-nbd.c                                     |   2 +-
 blockdev.c                                         |   2 +-
 configure                                          |  24 +-
 default-configs/alpha-softmmu.mak                  |   1 +
 default-configs/arm-softmmu.mak                    |  25 +++
 default-configs/cris-softmmu.mak                   |   1 +
 default-configs/i386-softmmu.mak                   |  19 +-
 default-configs/lm32-softmmu.mak                   |   3 +
 default-configs/m68k-softmmu.mak                   |   1 +
 default-configs/microblaze-softmmu.mak             |   2 +
 default-configs/microblazeel-softmmu.mak           |   2 +
 default-configs/mips-softmmu.mak                   |   4 +-
 default-configs/mips64-softmmu.mak                 |   4 +-
 default-configs/mips64el-softmmu.mak               |   4 +-
 default-configs/mipsel-softmmu.mak                 |   4 +-
 default-configs/pci.mak                            |   1 +
 default-configs/ppc-softmmu.mak                    |   7 +-
 default-configs/ppc64-softmmu.mak                  |   9 +-
 default-configs/ppcemb-softmmu.mak                 |   7 +-
 default-configs/s390x-softmmu.mak                  |   1 +
 default-configs/sh4-softmmu.mak                    |   3 +
 default-configs/sh4eb-softmmu.mak                  |   3 +
 default-configs/sparc-softmmu.mak                  |   8 +
 default-configs/sparc64-softmmu.mak                |   2 +
 default-configs/x86_64-softmmu.mak                 |  18 +-
 exec.c                                             |   2 +-
 gdbstub.c                                          |   2 +-
 hw/9pfs/virtio-9p-device.c                         |   4 +-
 hw/9pfs/virtio-9p-handle.c                         |   2 +-
 hw/9pfs/virtio-9p-local.c                          |   2 +-
 hw/9pfs/virtio-9p-posix-acl.c                      |   2 +-
 hw/9pfs/virtio-9p-proxy.c                          |   2 +-
 hw/9pfs/virtio-9p-synth.c                          |   2 +-
 hw/9pfs/virtio-9p-xattr-user.c                     |   2 +-
 hw/9pfs/virtio-9p-xattr.c                          |   2 +-
 hw/9pfs/virtio-9p.c                                |   4 +-
 hw/9pfs/virtio-9p.h                                |   2 +-
 hw/Makefile.objs                                   | 247 +++------------------
 hw/acpi/Makefile.objs                              |   2 +
 hw/{acpi.c => acpi/core.c}                         |   4 +-
 hw/{acpi_ich9.c => acpi/ich9.c}                    |   6 +-
 hw/{acpi_piix4.c => acpi/piix4.c}                  |  10 +-
 hw/alpha/Makefile.objs                             |   7 +-
 hw/alpha/dp264.c                                   |   8 +-
 hw/alpha/pci.c                                     |   2 +-
 hw/{alpha_typhoon.c => alpha/typhoon.c}            |   4 +-
 hw/arm/Makefile.objs                               |  34 +--
 hw/{ => arm}/a15mpcore.c                           |   0
 hw/{ => arm}/a9mpcore.c                            |   0
 hw/{ => arm}/arm11mpcore.c                         |   0
 hw/arm/armv7m.c                                    |   2 +-
 hw/arm/boot.c                                      |   2 +-
 hw/arm/collie.c                                    |   8 +-
 hw/arm/exynos4210.c                                |   4 +-
 hw/arm/exynos4_boards.c                            |   4 +-
 hw/arm/gumstix.c                                   |   6 +-
 hw/arm/highbank.c                                  |   4 +-
 hw/arm/integratorcp.c                              |   4 +-
 hw/arm/kzm.c                                       |   8 +-
 hw/arm/mainstone.c                                 |   8 +-
 hw/arm/musicpal.c                                  |  10 +-
 hw/arm/nseries.c                                   |  10 +-
 hw/arm/omap1.c                                     |   6 +-
 hw/arm/omap2.c                                     |   8 +-
 hw/arm/omap_sx1.c                                  |   6 +-
 hw/arm/palm.c                                      |   6 +-
 hw/arm/pic_cpu.c                                   |   2 +-
 hw/arm/pxa2xx.c                                    |   6 +-
 hw/arm/pxa2xx_gpio.c                               |   2 +-
 hw/arm/pxa2xx_pic.c                                |   2 +-
 hw/arm/realview.c                                  |   8 +-
 hw/arm/spitz.c                                     |  12 +-
 hw/arm/stellaris.c                                 |   6 +-
 hw/{ => arm}/strongarm.c                           |   4 +-
 hw/{ => arm}/strongarm.h                           |   0
 hw/arm/tosa.c                                      |  10 +-
 hw/arm/versatilepb.c                               |   8 +-
 hw/arm/vexpress.c                                  |   8 +-
 hw/arm/xilinx_zynq.c                               |   4 +-
 hw/arm/z2.c                                        |  10 +-
 hw/audio/Makefile.objs                             |  20 ++
 hw/{ => audio}/ac97.c                              |   2 +-
 hw/{ => audio}/adlib.c                             |   6 +-
 hw/{ => audio}/cs4231.c                            |   0
 hw/{ => audio}/cs4231a.c                           |   4 +-
 hw/{ => audio}/es1370.c                            |   2 +-
 hw/{ => audio}/fmopl.c                             |   2 +-
 hw/{ => audio}/fmopl.h                             |   0
 hw/{ => audio}/gus.c                               |   8 +-
 hw/{ => audio}/gusemu.h                            |   0
 hw/{ => audio}/gusemu_hal.c                        |   4 +-
 hw/{ => audio}/gusemu_mixer.c                      |   4 +-
 hw/{ => audio}/gustate.h                           |   0
 hw/{hda-audio.c => audio/hda-codec.c}              |   4 +-
 hw/{ => audio}/intel-hda-defs.h                    |   0
 hw/{ => audio}/intel-hda.c                         |   6 +-
 hw/{ => audio}/intel-hda.h                         |   0
 hw/{ => audio}/lm4549.c                            |   2 +-
 hw/{ => audio}/lm4549.h                            |   0
 .../marvell_88w8618.c}                             |   2 +-
 hw/{ => audio}/milkymist-ac97.c                    |   0
 hw/{ => audio}/pcspk.c                             |   8 +-
 hw/{ => audio}/pl041.c                             |   4 +-
 hw/{ => audio}/pl041.h                             |   0
 hw/{ => audio}/pl041.hx                            |   0
 hw/{ => audio}/sb16.c                              |   4 +-
 hw/{ => audio}/wm8750.c                            |   2 +-
 hw/block/Makefile.objs                             |  14 ++
 hw/{block-common.c => block/block.c}               |   2 +-
 hw/{ => block}/cdrom.c                             |   2 +-
 hw/{ => block}/dataplane/Makefile.objs             |   0
 hw/{ => block}/dataplane/hostmem.c                 |   0
 hw/{ => block}/dataplane/hostmem.h                 |   0
 hw/{ => block}/dataplane/ioq.c                     |   0
 hw/{ => block}/dataplane/ioq.h                     |   0
 hw/{ => block}/dataplane/virtio-blk.c              |   4 +-
 hw/{ => block}/dataplane/virtio-blk.h              |   2 +-
 hw/{ => block}/dataplane/vring.c                   |   0
 hw/{ => block}/dataplane/vring.h                   |   2 +-
 hw/{ => block}/ecc.c                               |   2 +-
 hw/{ => block}/fdc.c                               |   4 +-
 hw/{ => block}/hd-geometry.c                       |   2 +-
 hw/{ => block}/m25p80.c                            |   2 +-
 hw/{ => block}/nand.c                              |   2 +-
 hw/{ => block}/onenand.c                           |   2 +-
 hw/{ => block}/pc_sysfw.c                          |   4 +-
 hw/{ => block}/pflash_cfi01.c                      |   2 +-
 hw/{ => block}/pflash_cfi02.c                      |   2 +-
 hw/{ => block}/tc58128.c                           |   2 +-
 hw/{ => block}/virtio-blk.c                        |   6 +-
 hw/{ => block}/xen_blkif.h                         |   0
 hw/{ => block}/xen_disk.c                          |   4 +-
 hw/bt/Makefile.objs                                |   3 +
 hw/{bt.c => bt/core.c}                             |   0
 hw/{bt-hci-csr.c => bt/hci-csr.c}                  |   0
 hw/{bt-hci.c => bt/hci.c}                          |   0
 hw/{bt-hid.c => bt/hid.c}                          |   2 +-
 hw/{bt-l2cap.c => bt/l2cap.c}                      |   0
 hw/{bt-sdp.c => bt/sdp.c}                          |   0
 hw/char/Makefile.objs                              |  27 +++
 hw/{ => char}/cadence_uart.c                       |   0
 hw/{ => char}/debugcon.c                           |   4 +-
 hw/{ => char}/escc.c                               |   2 +-
 hw/{ => char}/etraxfs_ser.c                        |   0
 hw/{ => char}/exynos4210_uart.c                    |   2 +-
 hw/{ => char}/grlib_apbuart.c                      |   0
 hw/{ => char}/imx_serial.c                         |   2 +-
 hw/{ => char}/ipack.c                              |   2 +-
 hw/{ => char}/ipack.h                              |   0
 hw/{ => char}/ipoctal232.c                         |   2 +-
 hw/{ => char}/lm32_juart.c                         |   2 +-
 hw/{ => char}/lm32_uart.c                          |   0
 hw/{ => char}/mcf_uart.c                           |   2 +-
 hw/{ => char}/milkymist-uart.c                     |   0
 hw/{ => char}/omap_uart.c                          |   4 +-
 hw/{ => char}/parallel.c                           |   4 +-
 hw/{ => char}/pl011.c                              |   0
 hw/{s390x => char}/sclpconsole.c                   |   0
 hw/{ => char}/serial-isa.c                         |   4 +-
 hw/{ => char}/serial-pci.c                         |   2 +-
 hw/{ => char}/serial.c                             |   2 +-
 hw/{ => char}/sh_serial.c                          |   2 +-
 hw/{ => char}/spapr_vty.c                          |   4 +-
 hw/{ => char}/tpci200.c                            |   2 +-
 hw/{ => char}/virtio-console.c                     |   2 +-
 hw/{ => char}/virtio-serial-bus.c                  |   2 +-
 hw/{ => char}/xen_console.c                        |   2 +-
 hw/{ => char}/xilinx_uartlite.c                    |   0
 hw/core/Makefile.objs                              |  14 ++
 hw/{ => core}/empty_slot.c                         |   0
 hw/{ => core}/irq.c                                |   0
 hw/{ => core}/loader.c                             |   4 +-
 hw/{ => core}/null-machine.c                       |   0
 hw/{ => core}/ptimer.c                             |   0
 hw/{ => core}/qdev-addr.c                          |   0
 hw/{ => core}/qdev-properties-system.c             |   2 +-
 hw/{ => core}/qdev-properties.c                    |   2 +-
 hw/{ => core}/qdev.c                               |   0
 hw/{ => core}/stream.c                             |   0
 hw/{ => core}/sysbus.c                             |   0
 hw/{ => core}/uboot_image.h                        |   0
 hw/cris/Makefile.objs                              |  10 -
 hw/cris/axis_dev88.c                               |   6 +-
 hw/cris/boot.c                                     |   2 +-
 hw/{cris-boot.h => cris/boot.h}                    |   0
 hw/cris/pic_cpu.c                                  |   2 +-
 hw/display/Makefile.objs                           |  34 +++
 hw/{ => display}/ads7846.c                         |   0
 hw/{ => display}/blizzard.c                        |  14 +-
 hw/{ => display}/blizzard_template.h               |   0
 hw/{ => display}/cirrus_vga.c                      |  38 ++--
 hw/{ => display}/cirrus_vga_rop.h                  |   8 +-
 hw/{ => display}/cirrus_vga_rop2.h                 |   0
 hw/{ => display}/cirrus_vga_template.h             |   0
 hw/{ => display}/exynos4210_fimd.c                 |   0
 hw/{ => display}/framebuffer.c                     |   2 +-
 hw/{ => display}/framebuffer.h                     |   0
 hw/{ => display}/g364fb.c                          |   0
 hw/{ => display}/jazz_led.c                        |   0
 hw/{ => display}/milkymist-tmu2.c                  |   0
 hw/{ => display}/milkymist-vgafb.c                 |  12 +-
 hw/{ => display}/milkymist-vgafb_template.h        |   0
 hw/{ => display}/omap_dss.c                        |   2 +-
 hw/{ => display}/omap_lcd_template.h               |   0
 hw/{ => display}/omap_lcdc.c                       |  12 +-
 hw/{ => display}/pl110.c                           |  12 +-
 hw/{ => display}/pl110_template.h                  |  12 +-
 hw/{ => display}/pxa2xx_lcd.c                      |  14 +-
 hw/{ => display}/pxa2xx_template.h                 |   0
 hw/{ => display}/qxl-logger.c                      |   2 +-
 hw/{ => display}/qxl-render.c                      |   2 +-
 hw/{ => display}/qxl.c                             |   2 +-
 hw/{ => display}/qxl.h                             |   2 +-
 hw/{ => display}/sm501.c                           |  18 +-
 hw/{ => display}/sm501_template.h                  |   0
 hw/{ => display}/ssd0303.c                         |   2 +-
 hw/{ => display}/ssd0323.c                         |   0
 hw/{ => display}/tc6393xb.c                        |  14 +-
 hw/{ => display}/tc6393xb_template.h               |   0
 hw/{ => display}/tcx.c                             |   0
 hw/{ => display}/vga-isa-mm.c                      |   4 +-
 hw/{ => display}/vga-isa.c                         |   4 +-
 hw/{ => display}/vga-pci.c                         |   2 +-
 hw/{ => display}/vga.c                             |  22 +-
 hw/{ => display}/vga.h                             |   0
 hw/{ => display}/vga_int.h                         |   0
 hw/{ => display}/vga_template.h                    |   0
 hw/{ => display}/vmware_vga.c                      |   2 +-
 hw/{ => display}/xenfb.c                           |   2 +-
 hw/dma/Makefile.objs                               |  12 +
 hw/{ => dma}/etraxfs_dma.c                         |   2 +-
 hw/{dma.c => dma/i8257.c}                          |   2 +-
 hw/{ => dma}/omap_dma.c                            |   4 +-
 hw/{ => dma}/pl080.c                               |   0
 hw/{ => dma}/pl330.c                               |   2 +-
 hw/{ => dma}/puv3_dma.c                            |   2 +-
 hw/{ => dma}/pxa2xx_dma.c                          |   2 +-
 hw/{ => dma}/rc4030.c                              |   2 +-
 hw/{ => dma}/soc_dma.c                             |   2 +-
 hw/{ => dma}/sparc32_dma.c                         |   4 +-
 hw/{ => dma}/sun4m_iommu.c                         |   2 +-
 hw/{ => dma}/xilinx_axidma.c                       |   0
 hw/gpio/Makefile.objs                              |   6 +
 hw/{ => gpio}/max7310.c                            |   2 +-
 hw/{ => gpio}/omap_gpio.c                          |   2 +-
 hw/{ => gpio}/pl061.c                              |   0
 hw/{ => gpio}/puv3_gpio.c                          |   2 +-
 hw/{ => gpio}/zaurus.c                             |   2 +-
 hw/i2c/Makefile.objs                               |   7 +
 hw/{ => i2c}/bitbang_i2c.c                         |   2 +-
 hw/{ => i2c}/bitbang_i2c.h                         |   2 +-
 hw/{i2c.c => i2c/core.c}                           |   2 +-
 hw/{ => i2c}/exynos4210_i2c.c                      |   2 +-
 hw/{ => i2c}/omap_i2c.c                            |   4 +-
 hw/{ => i2c}/pm_smbus.c                            |   6 +-
 hw/{ => i2c}/smbus.c                               |   4 +-
 hw/{ => i2c}/smbus_eeprom.c                        |   4 +-
 hw/{ => i2c}/smbus_ich9.c                          |  10 +-
 hw/{ => i2c}/versatile_i2c.c                       |   2 +-
 hw/i386/Makefile.objs                              |  13 --
 hw/i386/kvmvapic.c                                 |   2 +-
 hw/i386/multiboot.c                                |   4 +-
 hw/{ => i386}/multiboot.h                          |   0
 hw/i386/pc.c                                       |  26 +--
 hw/i386/pc_piix.c                                  |   8 +-
 hw/i386/pc_q35.c                                   |  10 +-
 hw/i386/smbios.c                                   |   2 +-
 hw/i386/xen_domainbuild.c                          |   4 +-
 hw/{ => i386}/xen_domainbuild.h                    |   2 +-
 hw/i386/xen_machine_pv.c                           |   6 +-
 hw/ide/Makefile.objs                               |   2 +
 hw/ide/ahci.c                                      |   2 +-
 hw/ide/atapi.c                                     |   2 +-
 hw/ide/cmd646.c                                    |   4 +-
 hw/ide/core.c                                      |   6 +-
 hw/ide/ich.c                                       |   4 +-
 hw/ide/internal.h                                  |   6 +-
 hw/ide/isa.c                                       |   4 +-
 hw/ide/macio.c                                     |   2 +-
 hw/ide/microdrive.c                                |   2 +-
 hw/ide/pci.c                                       |   4 +-
 hw/ide/piix.c                                      |   4 +-
 hw/ide/qdev.c                                      |   2 +-
 hw/ide/via.c                                       |   4 +-
 hw/input/Makefile.objs                             |  13 ++
 hw/{ => input}/adb.c                               |   2 +-
 hw/{ => input}/hid.c                               |   2 +-
 hw/{ => input}/lm832x.c                            |   2 +-
 hw/{ => input}/milkymist-softusb.c                 |   2 +-
 hw/{ => input}/pckbd.c                             |   6 +-
 hw/{ => input}/pl050.c                             |   2 +-
 hw/{ => input}/ps2.c                               |   2 +-
 hw/{ => input}/pxa2xx_keypad.c                     |   2 +-
 hw/{ => input}/stellaris_input.c                   |   2 +-
 hw/{ => input}/tsc2005.c                           |   2 +-
 hw/{ => input}/tsc210x.c                           |   4 +-
 hw/{ => input}/vmmouse.c                           |   4 +-
 hw/intc/Makefile.objs                              |  21 ++
 hw/{ => intc}/apic.c                               |  10 +-
 hw/{ => intc}/apic_common.c                        |   4 +-
 hw/{ => intc}/arm_gic.c                            |   2 +-
 hw/{ => intc}/arm_gic_common.c                     |   2 +-
 hw/{ => intc}/armv7m_nvic.c                        |   4 +-
 hw/{ => intc}/etraxfs_pic.c                        |   0
 hw/{ => intc}/exynos4210_combiner.c                |   2 +-
 hw/{ => intc}/exynos4210_gic.c                     |   2 +-
 hw/{arm_gic_internal.h => intc/gic_internal.h}     |   0
 hw/{ => intc}/grlib_irqmp.c                        |   2 +-
 hw/{ => intc}/heathrow_pic.c                       |   0
 hw/{ => intc}/i8259.c                              |   6 +-
 hw/{ => intc}/i8259_common.c                       |   4 +-
 hw/{ => intc}/imx_avic.c                           |   0
 hw/{ => intc}/ioapic.c                             |   8 +-
 hw/{ => intc}/ioapic_common.c                      |   4 +-
 hw/{ => intc}/lm32_pic.c                           |   4 +-
 hw/{ => intc}/omap_intc.c                          |   2 +-
 hw/{ => intc}/openpic.c                            |   4 +-
 hw/{ => intc}/pl190.c                              |   0
 hw/{ => intc}/puv3_intc.c                          |   2 +-
 hw/{ => intc}/realview_gic.c                       |   0
 hw/{ => intc}/sbi.c                                |   0
 hw/{ => intc}/sh_intc.c                            |   4 +-
 hw/{ => intc}/slavio_intctl.c                      |   2 +-
 hw/{ => intc}/sun4c_intctl.c                       |   2 +-
 hw/{ => intc}/xilinx_intc.c                        |   0
 hw/isa/Makefile.objs                               |  15 ++
 hw/{ => isa}/apm.c                                 |   2 +-
 hw/{ => isa}/applesmc.c                            |   2 +-
 hw/{ => isa}/debugexit.c                           |   2 +-
 hw/{ => isa}/i82374.c                              |   2 +-
 hw/{ => isa}/i82378.c                              |   6 +-
 hw/{ => isa}/isa-bus.c                             |   2 +-
 hw/{ => isa}/isa_mmio.c                            |   2 +-
 hw/{ => isa}/lpc_ich9.c                            |  16 +-
 hw/{ => isa}/pc-testdev.c                          |   2 +-
 hw/{ => isa}/pc87312.c                             |   2 +-
 hw/{ => isa}/piix4.c                               |   4 +-
 hw/{ => isa}/sga.c                                 |   2 +-
 hw/{ => isa}/vmport.c                              |   4 +-
 hw/{ => isa}/vt82c686.c                            |  18 +-
 hw/kvm/apic.c                                      |   2 +-
 hw/kvm/arm_gic.c                                   |   2 +-
 hw/kvm/i8254.c                                     |   4 +-
 hw/kvm/i8259.c                                     |   4 +-
 hw/kvm/ioapic.c                                    |   6 +-
 hw/kvm/pci-assign.c                                |   2 +-
 hw/lm32/Makefile.objs                              |  20 --
 hw/{ => lm32}/lm32.h                               |   0
 hw/lm32/lm32_boards.c                              |   8 +-
 hw/{ => lm32}/lm32_hwsetup.h                       |   0
 hw/{ => lm32}/milkymist-hw.h                       |   0
 hw/lm32/milkymist.c                                |   8 +-
 hw/m68k/Makefile.objs                              |   4 -
 hw/m68k/an5206.c                                   |   2 +-
 hw/m68k/mcf5206.c                                  |   2 +-
 hw/m68k/mcf5208.c                                  |   2 +-
 hw/m68k/mcf_intc.c                                 |   2 +-
 hw/microblaze/Makefile.objs                        |   5 -
 hw/microblaze/boot.c                               |   2 +-
 hw/{microblaze_boot.h => microblaze/boot.h}        |   0
 hw/microblaze/petalogix_ml605_mmu.c                |  10 +-
 hw/microblaze/petalogix_s3adsp1800_mmu.c           |   8 +-
 hw/microblaze/pic_cpu.c                            |   2 +-
 hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h}  |   0
 hw/mips/Makefile.objs                              |   5 -
 hw/mips/addr.c                                     |   2 +-
 hw/mips/cputimer.c                                 |   2 +-
 hw/mips/mips_fulong2e.c                            |  22 +-
 hw/mips/mips_int.c                                 |   2 +-
 hw/mips/mips_jazz.c                                |  22 +-
 hw/mips/mips_malta.c                               |  20 +-
 hw/mips/mips_mipssim.c                             |  10 +-
 hw/mips/mips_r4k.c                                 |  18 +-
 hw/misc/Makefile.objs                              |  29 +++
 hw/{ => misc}/a9scu.c                              |   0
 hw/{ => misc}/arm_l2x0.c                           |   0
 hw/{ => misc}/arm_sysctl.c                         |   2 +-
 hw/{ => misc}/cbus.c                               |   2 +-
 hw/{ => misc}/eccmemctl.c                          |   0
 hw/{ => misc}/exynos4210_pmu.c                     |   0
 hw/{ => misc}/imx_ccm.c                            |   2 +-
 hw/{ => misc}/lm32_sys.c                           |   0
 hw/misc/macio/Makefile.objs                        |   3 +
 hw/{ => misc/macio}/cuda.c                         |   2 +-
 hw/{ => misc/macio}/mac_dbdma.c                    |   4 +-
 hw/{ => misc/macio}/macio.c                        |   4 +-
 hw/{ => misc}/max111x.c                            |   0
 hw/{ => misc}/milkymist-hpdmc.c                    |   0
 hw/{ => misc}/milkymist-pfpu.c                     |   0
 hw/{ => misc}/mst_fpga.c                           |   0
 hw/{ => misc}/omap_clk.c                           |   2 +-
 hw/{ => misc}/omap_gpmc.c                          |   4 +-
 hw/{ => misc}/omap_l4.c                            |   2 +-
 hw/{ => misc}/omap_sdrc.c                          |   2 +-
 hw/{ => misc}/omap_tap.c                           |   2 +-
 hw/{ => misc}/puv3_pm.c                            |   2 +-
 hw/{ => misc}/pxa2xx_pcmcia.c                      |   2 +-
 hw/{ => misc}/slavio_misc.c                        |   0
 hw/{ => misc}/tmp105.c                             |   4 +-
 hw/{ => misc}/tmp105.h                             |   4 +-
 hw/{ => misc}/zynq_slcr.c                          |   0
 hw/net/Makefile.objs                               |  31 +++
 hw/{ => net}/cadence_gem.c                         |   0
 hw/{ => net}/dp8393x.c                             |   2 +-
 hw/{ => net}/e1000.c                               |   2 +-
 hw/{e1000_hw.h => net/e1000_regs.h}                |   0
 hw/{ => net}/eepro100.c                            |   2 +-
 hw/{ => net}/etraxfs_eth.c                         |   2 +-
 hw/{ => net}/lan9118.c                             |   2 +-
 hw/{ => net}/lance.c                               |   4 +-
 hw/{ => net}/mcf_fec.c                             |   2 +-
 hw/{ => net}/milkymist-minimac2.c                  |   0
 hw/{ => net}/mipsnet.c                             |   0
 hw/{ => net}/ne2000-isa.c                          |   6 +-
 hw/{ => net}/ne2000.c                              |   2 +-
 hw/{ => net}/ne2000.h                              |   0
 hw/{ => net}/opencores_eth.c                       |   0
 hw/{ => net}/pcnet-pci.c                           |   2 +-
 hw/{ => net}/pcnet.c                               |   2 +-
 hw/{ => net}/pcnet.h                               |   0
 hw/{ => net}/rtl8139.c                             |   0
 hw/{ => net}/smc91c111.c                           |   2 +-
 hw/{ => net}/spapr_llan.c                          |   4 +-
 hw/{ => net}/stellaris_enet.c                      |   0
 hw/{ => net}/vhost_net.c                           |   6 +-
 hw/{ => net}/virtio-net.c                          |   6 +-
 hw/{ => net}/xen_nic.c                             |   2 +-
 hw/{ => net}/xgmac.c                               |   0
 hw/{ => net}/xilinx_axienet.c                      |   0
 hw/{ => net}/xilinx_ethlite.c                      |   0
 hw/nvram/Makefile.objs                             |   5 +
 hw/{ => nvram}/ds1225y.c                           |   0
 hw/{ => nvram}/eeprom93xx.c                        |   2 +-
 hw/{ => nvram}/fw_cfg.c                            |   4 +-
 hw/{ => nvram}/mac_nvram.c                         |   2 +-
 hw/{ => nvram}/spapr_nvram.c                       |   4 +-
 hw/openrisc/openrisc_sim.c                         |   2 +-
 hw/pci/Makefile.objs                               |  39 +++-
 hw/{apb_pci.c => pci/host-apb.c}                   |   2 +-
 hw/{bonito.c => pci/host-bonito.c}                 |   4 +-
 hw/{dec_pci.c => pci/host-dec.c}                   |   2 +-
 hw/{dec_pci.h => pci/host-dec.h}                   |   0
 hw/{grackle_pci.c => pci/host-grackle.c}           |   0
 hw/{gt64xxx.c => pci/host-gt64xxx.c}               |   4 +-
 hw/{piix_pci.c => pci/host-piix.c}                 |   8 +-
 hw/{ppc4xx_pci.c => pci/host-ppc4xx.c}             |   4 +-
 hw/{ppce500_pci.c => pci/host-ppce500.c}           |   2 +-
 hw/{prep_pci.c => pci/host-prep.c}                 |   2 +-
 hw/{q35.c => pci/host-q35.c}                       |   2 +-
 hw/{sh_pci.c => pci/host-sh.c}                     |   2 +-
 hw/{spapr_pci.c => pci/host-spapr.c}               |   4 +-
 hw/{unin_pci.c => pci/host-uninorth.c}             |   0
 hw/{versatile_pci.c => pci/host-versatile.c}       |   0
 hw/{ => pci}/i82801b11.c                           |   2 +-
 hw/{ => pci}/ioh3420.c                             |   2 +-
 hw/{ => pci}/ioh3420.h                             |   0
 hw/{ => pci}/ivshmem.c                             |   2 +-
 hw/{ => pci}/pam.c                                 |   2 +-
 hw/pci/pci-hotplug.c                               |   6 +-
 hw/pci/pci.h                                       |   2 +-
 hw/{ => pci}/pci_bridge_dev.c                      |   0
 hw/{vfio_pci.c => pci/vfio.c}                      |   0
 hw/{ => pci}/xio3130_downstream.c                  |   2 +-
 hw/{ => pci}/xio3130_downstream.h                  |   0
 hw/{ => pci}/xio3130_upstream.c                    |   2 +-
 hw/{ => pci}/xio3130_upstream.h                    |   0
 hw/ppc/Makefile.objs                               |  16 --
 hw/ppc/e500.c                                      |   8 +-
 hw/ppc/e500plat.c                                  |   2 +-
 hw/ppc/mac.h                                       |   2 +-
 hw/ppc/mac_newworld.c                              |  14 +-
 hw/ppc/mac_oldworld.c                              |  12 +-
 hw/ppc/mpc8544ds.c                                 |   2 +-
 hw/ppc/ppc.c                                       |   4 +-
 hw/{ => ppc}/ppc405.h                              |   2 +-
 hw/ppc/ppc405_boards.c                             |   8 +-
 hw/ppc/ppc405_uc.c                                 |   6 +-
 hw/ppc/ppc440_bamboo.c                             |   6 +-
 hw/ppc/ppc4xx_devs.c                               |   4 +-
 hw/ppc/ppc_booke.c                                 |   4 +-
 hw/ppc/prep.c                                      |  16 +-
 hw/ppc/spapr.c                                     |  10 +-
 hw/ppc/spapr_events.c                              |   4 +-
 hw/ppc/spapr_hcall.c                               |   2 +-
 hw/ppc/spapr_iommu.c                               |   2 +-
 hw/ppc/spapr_rtas.c                                |   4 +-
 hw/ppc/spapr_vio.c                                 |   6 +-
 hw/ppc/virtex_ml507.c                              |  12 +-
 hw/ppc/xics.c                                      |   4 +-
 hw/s390x/Makefile.objs                             |   2 +-
 hw/s390x/s390-virtio-bus.c                         |  10 +-
 hw/s390x/s390-virtio-bus.h                         |  12 +-
 hw/s390x/s390-virtio.c                             |   2 +-
 hw/s390x/virtio-ccw.c                              |   8 +-
 hw/s390x/virtio-ccw.h                              |  12 +-
 hw/scsi/Makefile.objs                              |   8 +
 hw/{ => scsi}/esp-pci.c                            |   4 +-
 hw/{ => scsi}/esp.c                                |   2 +-
 hw/{ => scsi}/lsi53c895a.c                         |   2 +-
 hw/{ => scsi}/megasas.c                            |   6 +-
 hw/{ => scsi}/mfi.h                                |   0
 hw/{ => scsi}/scsi-bus.c                           |   4 +-
 hw/{ => scsi}/scsi-disk.c                          |   6 +-
 hw/{ => scsi}/scsi-generic.c                       |   4 +-
 hw/{ => scsi}/spapr_vscsi.c                        |  12 +-
 hw/{ => scsi}/srp.h                                |   0
 hw/{ppc-viosrp.h => scsi/viosrp.h}                 |   0
 hw/{ => scsi}/virtio-scsi.c                        |   6 +-
 hw/sd/Makefile.objs                                |   8 +
 hw/{ => sd}/milkymist-memcard.c                    |   0
 hw/{ => sd}/omap_mmc.c                             |   2 +-
 hw/{ => sd}/pl181.c                                |   0
 hw/{ => sd}/pxa2xx_mmci.c                          |   2 +-
 hw/{ => sd}/sd.c                                   |   0
 hw/{ => sd}/sdhci.c                                |   2 +-
 hw/{ => sd}/sdhci.h                                |   0
 hw/{ => sd}/ssi-sd.c                               |   0
 hw/sh4/Makefile.objs                               |   6 -
 hw/sh4/r2d.c                                       |   8 +-
 hw/sh4/sh7750.c                                    |   8 +-
 hw/sh4/sh7750_regnames.c                           |   6 +-
 hw/{ => sh4}/sh7750_regnames.h                     |   0
 hw/{ => sh4}/sh7750_regs.h                         |   0
 hw/sh4/shix.c                                      |   2 +-
 hw/sparc/Makefile.objs                             |   9 -
 hw/sparc/leon3.c                                   |   2 +-
 hw/sparc/sun4m.c                                   |  20 +-
 hw/sparc64/Makefile.objs                           |   5 -
 hw/sparc64/sun4u.c                                 |  14 +-
 hw/ssi/Makefile.objs                               |   6 +
 hw/{ => ssi}/omap_spi.c                            |   2 +-
 hw/{ => ssi}/pl022.c                               |   0
 hw/{ => ssi}/ssi.c                                 |   0
 hw/{ => ssi}/xilinx_spi.c                          |   0
 hw/{ => ssi}/xilinx_spips.c                        |   0
 hw/timer/Makefile.objs                             |  28 +++
 hw/{ => timer}/arm_mptimer.c                       |   0
 hw/{ => timer}/arm_timer.c                         |   0
 hw/{ => timer}/cadence_ttc.c                       |   0
 hw/{ => timer}/ds1338.c                            |   2 +-
 hw/{ => timer}/etraxfs_timer.c                     |   0
 hw/{ => timer}/exynos4210_mct.c                    |   2 +-
 hw/{ => timer}/exynos4210_pwm.c                    |   2 +-
 hw/{ => timer}/exynos4210_rtc.c                    |   2 +-
 hw/{ => timer}/grlib_gptimer.c                     |   0
 hw/{ => timer}/hpet.c                              |   8 +-
 hw/{ => timer}/i8254.c                             |   8 +-
 hw/{ => timer}/i8254_common.c                      |   8 +-
 hw/{ => timer}/imx_timer.c                         |   2 +-
 hw/{ => timer}/lm32_timer.c                        |   0
 hw/{ => timer}/m48t59.c                            |   4 +-
 hw/{ => timer}/mc146818rtc.c                       |   4 +-
 hw/{ => timer}/milkymist-sysctl.c                  |   0
 hw/{ => timer}/omap_gptimer.c                      |   2 +-
 hw/{ => timer}/omap_synctimer.c                    |   2 +-
 hw/{ => timer}/pl031.c                             |   0
 hw/{ => timer}/puv3_ost.c                          |   2 +-
 hw/{ => timer}/pxa2xx_timer.c                      |   2 +-
 hw/{ => timer}/sh_timer.c                          |   2 +-
 hw/{ => timer}/slavio_timer.c                      |   2 +-
 hw/{ => timer}/tusb6010.c                          |   4 +-
 hw/{ => timer}/twl92230.c                          |   2 +-
 hw/{ => timer}/xilinx_timer.c                      |   0
 {tpm => hw/tpm}/Makefile.objs                      |   3 -
 {tpm => hw/tpm}/tpm_backend.c                      |  14 ++
 {tpm => hw/tpm}/tpm_int.h                          |  55 +----
 {tpm => hw/tpm}/tpm_passthrough.c                  |   2 +-
 {tpm => hw/tpm}/tpm_tis.c                          |   2 +-
 {tpm => hw/tpm}/tpm_tis.h                          |   7 +-
 hw/unicore32/puv3.c                                |   4 +-
 hw/usb/Makefile.objs                               |   8 +-
 hw/{ => usb}/ccid-card-emulated.c                  |   2 +-
 hw/{ => usb}/ccid-card-passthru.c                  |   2 +-
 hw/{ => usb}/ccid.h                                |   0
 hw/usb/dev-audio.c                                 |   2 +-
 hw/usb/dev-hid.c                                   |   2 +-
 hw/usb/dev-smartcard-reader.c                      |   2 +-
 hw/usb/dev-storage.c                               |   2 +-
 hw/usb/dev-uas.c                                   |   4 +-
 hw/virtio/Makefile.objs                            |   6 +
 hw/{ => virtio}/vhost.c                            |   2 +-
 hw/{ => virtio}/virtio-balloon.c                   |   6 +-
 hw/{ => virtio}/virtio-bus.c                       |   4 +-
 hw/{ => virtio}/virtio-pci.c                       |  14 +-
 hw/{ => virtio}/virtio-pci.h                       |  14 +-
 hw/{ => virtio}/virtio-rng.c                       |   4 +-
 hw/{ => virtio}/virtio.c                           |   4 +-
 hw/watchdog/Makefile.objs                          |   3 +
 hw/{ => watchdog}/watchdog.c                       |   2 +-
 hw/{ => watchdog}/wdt_i6300esb.c                   |   2 +-
 hw/{ => watchdog}/wdt_ib700.c                      |   6 +-
 hw/xen/Makefile.objs                               |   6 +
 hw/{ => xen}/xen-host-pci-device.c                 |   2 +-
 hw/{ => xen}/xen-host-pci-device.h                 |   0
 hw/{ => xen}/xen_apic.c                            |   4 +-
 hw/{ => xen}/xen_backend.c                         |   2 +-
 hw/{ => xen}/xen_devconfig.c                       |   2 +-
 hw/{ => xen}/xen_platform.c                        |   6 +-
 hw/{ => xen}/xen_pt.c                              |   6 +-
 hw/{ => xen}/xen_pt.h                              |   4 +-
 hw/{ => xen}/xen_pt_config_init.c                  |   4 +-
 hw/{ => xen}/xen_pt_msi.c                          |   6 +-
 hw/{ => xtensa}/xtensa_bootparam.h                 |   0
 hw/xtensa/xtensa_lx60.c                            |   6 +-
 hw/scsi-defs.h => include/block/scsi.h             |   0
 include/exec/memory-internal.h                     |   2 +-
 {hw => include/hw/acpi}/acpi.h                     |   0
 hw/acpi_ich9.h => include/hw/acpi/ich9.h           |   2 +-
 hw/arm-misc.h => include/hw/arm.h                  |   0
 {hw => include/hw/arm}/devices.h                   |   0
 {hw => include/hw/arm}/exynos4210.h                |   0
 {hw => include/hw/arm}/imx.h                       |   0
 {hw => include/hw/arm}/omap.h                      |   0
 {hw => include/hw/arm}/primecell.h                 |   0
 {hw => include/hw/arm}/pxa.h                       |   0
 {hw => include/hw/arm}/sharpsl.h                   |   0
 {hw => include/hw/arm}/soc_dma.h                   |   0
 hw/audiodev.h => include/hw/audio/audio.h          |   0
 {hw => include/hw/audio}/pcspk.h                   |   2 +-
 hw/block-common.h => include/hw/block/block.h      |   0
 {hw => include/hw/block}/fdc.h                     |   0
 {hw => include/hw/block}/flash.h                   |   0
 {hw => include/hw}/boards.h                        |   0
 {hw => include/hw}/bt.h                            |   0
 {hw => include/hw/char}/escc.h                     |   0
 {hw => include/hw/char}/serial.h                   |   0
 {hw => include/hw/cris}/etraxfs.h                  |   2 +-
 {hw => include/hw/cris}/etraxfs_dma.h              |   0
 {hw => include/hw}/elf_ops.h                       |   0
 {hw => include/hw}/empty_slot.h                    |   0
 {hw => include/hw}/hw.h                            |   0
 {hw => include/hw/i2c}/i2c.h                       |   0
 {hw => include/hw/i2c}/pm_smbus.h                  |   0
 {hw => include/hw/i2c}/smbus.h                     |   2 +-
 {hw => include/hw/i386}/apic-msidef.h              |   0
 {hw => include/hw/i386}/apic.h                     |   0
 {hw => include/hw/i386}/apic_internal.h            |   0
 {hw => include/hw/i386}/ich9.h                     |  14 +-
 {hw => include/hw/i386}/ioapic.h                   |   0
 {hw => include/hw/i386}/ioapic_internal.h          |   0
 {hw => include/hw/i386}/pc.h                       |   6 +-
 {hw => include/hw/i386}/smbios.h                   |   0
 {hw => include/hw}/ide.h                           |   2 +-
 {hw => include/hw/input}/adb.h                     |   0
 {hw => include/hw/input}/hid.h                     |   0
 {hw => include/hw/input}/ps2.h                     |   0
 {hw => include/hw}/irq.h                           |   0
 {hw => include/hw/isa}/apm.h                       |   0
 {hw => include/hw/isa}/i8259_internal.h            |   4 +-
 {hw => include/hw/isa}/isa.h                       |   0
 {hw => include/hw/isa}/pc87312.h                   |   2 +-
 {hw => include/hw/isa}/vt82c686.h                  |   0
 {hw => include/hw}/kvm/clock.h                     |   0
 {hw => include/hw/lm32}/lm32_juart.h               |   0
 {hw => include/hw/lm32}/lm32_pic.h                 |   0
 {hw => include/hw}/loader.h                        |   0
 {hw => include/hw/m68k}/mcf.h                      |   0
 hw/mips-bios.h => include/hw/mips/bios.h           |   0
 hw/mips_cpudevs.h => include/hw/mips/cpudevs.h     |   0
 {hw => include/hw/mips}/mips.h                     |   0
 {hw => include/hw/misc}/tmp105_regs.h              |   0
 {hw => include/hw/nvram}/eeprom93xx.h              |   0
 {hw => include/hw/nvram}/fw_cfg.h                  |   0
 hw/apb_pci.h => include/hw/pci/host-apb.h          |   0
 hw/ppce500_pci.h => include/hw/pci/host-ppce500.h  |   0
 hw/q35.h => include/hw/pci/host-q35.h              |  14 +-
 hw/spapr_pci.h => include/hw/pci/host-spapr.h      |   2 +-
 hw/alpha_sys.h => include/hw/pci/host-typhoon.h    |   2 +-
 {hw => include/hw/pci}/pam.h                       |   0
 {hw => include/hw}/pcmcia.h                        |   0
 {hw => include/hw/ppc}/mac_dbdma.h                 |   0
 {hw => include/hw/ppc}/openpic.h                   |   0
 {hw => include/hw/ppc}/ppc.h                       |   0
 {hw => include/hw/ppc}/ppc4xx.h                    |   0
 {hw => include/hw/ppc}/spapr.h                     |   2 +-
 {hw => include/hw/ppc}/spapr_vio.h                 |   0
 {hw => include/hw/ppc}/xics.h                      |   0
 {hw => include/hw}/ptimer.h                        |   0
 {hw => include/hw}/qdev-addr.h                     |   0
 {hw => include/hw}/qdev-core.h                     |   0
 {hw => include/hw}/qdev-dma.h                      |   0
 {hw => include/hw}/qdev-properties.h               |   0
 {hw => include/hw}/qdev.h                          |   0
 {hw => include/hw}/s390x/event-facility.h          |   0
 {hw => include/hw}/s390x/sclp.h                    |   0
 {hw => include/hw/scsi}/esp.h                      |   2 +-
 {hw => include/hw/scsi}/scsi.h                     |   2 +-
 {hw => include/hw}/sd.h                            |   0
 {hw => include/hw/sh4}/sh.h                        |   2 +-
 {hw => include/hw/sh4}/sh_intc.h                   |   0
 {hw => include/hw/sparc}/firmware_abi.h            |   0
 {hw => include/hw/sparc}/grlib.h                   |   0
 {hw => include/hw/sparc}/sparc32_dma.h             |   0
 {hw => include/hw/sparc}/sun4m.h                   |   2 +-
 {hw => include/hw}/ssi.h                           |   0
 {hw => include/hw}/stream.h                        |   0
 {hw => include/hw}/sysbus.h                        |   0
 hw/hpet_emul.h => include/hw/timer/hpet.h          |   0
 {hw => include/hw/timer}/i8254.h                   |   2 +-
 {hw => include/hw/timer}/i8254_internal.h          |   4 +-
 hw/nvram.h => include/hw/timer/m48t59.h            |   0
 {hw => include/hw/timer}/mc146818rtc.h             |   4 +-
 {hw => include/hw/timer}/mc146818rtc_regs.h        |   0
 {hw => include/hw/unicore32}/puv3.h                |   0
 {hw => include/hw}/usb.h                           |   0
 {hw => include/hw/virtio}/vhost.h                  |   2 +-
 .../hw/virtio/virtio-9p.h                          |   0
 {hw => include/hw/virtio}/virtio-balloon.h         |   2 +-
 {hw => include/hw/virtio}/virtio-blk.h             |   4 +-
 {hw => include/hw/virtio}/virtio-bus.h             |   2 +-
 {hw => include/hw/virtio}/virtio-net.h             |   2 +-
 {hw => include/hw/virtio}/virtio-rng.h             |   0
 {hw => include/hw/virtio}/virtio-scsi.h            |   2 +-
 {hw => include/hw/virtio}/virtio-serial.h          |   2 +-
 {hw => include/hw/virtio}/virtio.h                 |   2 +-
 {hw => include/hw/xen}/xen.h                       |   0
 {hw => include/hw/xen}/xen_backend.h               |   2 +-
 {hw => include/hw/xen}/xen_common.h                |   2 +-
 {hw => include/hw}/xilinx.h                        |   0
 {hw => include/net}/vhost_net.h                    |   0
 {hw => include/sysemu}/watchdog.h                  |   0
 {tpm => include/tpm}/tpm_backend.h                 |  57 +++++
 monitor.c                                          |   8 +-
 net/tap.c                                          |   2 +-
 pc-bios/optionrom/optionrom.h                      |   2 +-
 target-arm/arm-semi.c                              |   2 +-
 target-arm/kvm.c                                   |   2 +-
 target-i386/cpu.c                                  |   4 +-
 target-i386/cpu.h                                  |   2 +-
 target-i386/kvm.c                                  |   4 +-
 target-i386/machine.c                              |   4 +-
 target-lm32/op_helper.c                            |   4 +-
 target-lm32/translate.c                            |   2 +-
 target-ppc/kvm.c                                   |   6 +-
 target-sh4/helper.c                                |   2 +-
 tests/rtc-test.c                                   |   2 +-
 tests/tmp105-test.c                                |   2 +-
 tpm/tpm.c => tpm.c                                 |  18 +-
 vl.c                                               |  12 +-
 xen-all.c                                          |   6 +-
 xen-mapcache.c                                     |   2 +-
 xen-stub.c                                         |   2 +-
 746 files changed, 1690 insertions(+), 1494 deletions(-)
 create mode 100644 hw/acpi/Makefile.objs
 rename hw/{acpi.c => acpi/core.c} (99%)
 rename hw/{acpi_ich9.c => acpi/ich9.c} (98%)
 rename hw/{acpi_piix4.c => acpi/piix4.c} (99%)
 rename hw/{alpha_typhoon.c => alpha/typhoon.c} (99%)
 rename hw/{ => arm}/a15mpcore.c (100%)
 rename hw/{ => arm}/a9mpcore.c (100%)
 rename hw/{ => arm}/arm11mpcore.c (100%)
 rename hw/{ => arm}/strongarm.c (99%)
 rename hw/{ => arm}/strongarm.h (100%)
 create mode 100644 hw/audio/Makefile.objs
 rename hw/{ => audio}/ac97.c (99%)
 rename hw/{ => audio}/adlib.c (99%)
 rename hw/{ => audio}/cs4231.c (100%)
 rename hw/{ => audio}/cs4231a.c (99%)
 rename hw/{ => audio}/es1370.c (99%)
 rename hw/{ => audio}/fmopl.c (99%)
 rename hw/{ => audio}/fmopl.h (100%)
 rename hw/{ => audio}/gus.c (98%)
 rename hw/{ => audio}/gusemu.h (100%)
 rename hw/{ => audio}/gusemu_hal.c (99%)
 rename hw/{ => audio}/gusemu_mixer.c (99%)
 rename hw/{ => audio}/gustate.h (100%)
 rename hw/{hda-audio.c => audio/hda-codec.c} (99%)
 rename hw/{ => audio}/intel-hda-defs.h (100%)
 rename hw/{ => audio}/intel-hda.c (99%)
 rename hw/{ => audio}/intel-hda.h (100%)
 rename hw/{ => audio}/lm4549.c (99%)
 rename hw/{ => audio}/lm4549.h (100%)
 rename hw/{marvell_88w8618_audio.c => audio/marvell_88w8618.c} (99%)
 rename hw/{ => audio}/milkymist-ac97.c (100%)
 rename hw/{ => audio}/pcspk.c (98%)
 rename hw/{ => audio}/pl041.c (99%)
 rename hw/{ => audio}/pl041.h (100%)
 rename hw/{ => audio}/pl041.hx (100%)
 rename hw/{ => audio}/sb16.c (99%)
 rename hw/{ => audio}/wm8750.c (99%)
 create mode 100644 hw/block/Makefile.objs
 rename hw/{block-common.c => block/block.c} (98%)
 rename hw/{ => block}/cdrom.c (99%)
 rename hw/{ => block}/dataplane/Makefile.objs (100%)
 rename hw/{ => block}/dataplane/hostmem.c (100%)
 rename hw/{ => block}/dataplane/hostmem.h (100%)
 rename hw/{ => block}/dataplane/ioq.c (100%)
 rename hw/{ => block}/dataplane/ioq.h (100%)
 rename hw/{ => block}/dataplane/virtio-blk.c (99%)
 rename hw/{ => block}/dataplane/virtio-blk.h (96%)
 rename hw/{ => block}/dataplane/vring.c (100%)
 rename hw/{ => block}/dataplane/vring.h (98%)
 rename hw/{ => block}/ecc.c (99%)
 rename hw/{ => block}/fdc.c (99%)
 rename hw/{ => block}/hd-geometry.c (99%)
 rename hw/{ => block}/m25p80.c (99%)
 rename hw/{ => block}/nand.c (99%)
 rename hw/{ => block}/onenand.c (99%)
 rename hw/{ => block}/pc_sysfw.c (99%)
 rename hw/{ => block}/pflash_cfi01.c (99%)
 rename hw/{ => block}/pflash_cfi02.c (99%)
 rename hw/{ => block}/tc58128.c (99%)
 rename hw/{ => block}/virtio-blk.c (99%)
 rename hw/{ => block}/xen_blkif.h (100%)
 rename hw/{ => block}/xen_disk.c (99%)
 create mode 100644 hw/bt/Makefile.objs
 rename hw/{bt.c => bt/core.c} (100%)
 rename hw/{bt-hci-csr.c => bt/hci-csr.c} (100%)
 rename hw/{bt-hci.c => bt/hci.c} (100%)
 rename hw/{bt-hid.c => bt/hid.c} (99%)
 rename hw/{bt-l2cap.c => bt/l2cap.c} (100%)
 rename hw/{bt-sdp.c => bt/sdp.c} (100%)
 create mode 100644 hw/char/Makefile.objs
 rename hw/{ => char}/cadence_uart.c (100%)
 rename hw/{ => char}/debugcon.c (98%)
 rename hw/{ => char}/escc.c (99%)
 rename hw/{ => char}/etraxfs_ser.c (100%)
 rename hw/{ => char}/exynos4210_uart.c (99%)
 rename hw/{ => char}/grlib_apbuart.c (100%)
 rename hw/{ => char}/imx_serial.c (99%)
 rename hw/{ => char}/ipack.c (99%)
 rename hw/{ => char}/ipack.h (100%)
 rename hw/{ => char}/ipoctal232.c (99%)
 rename hw/{ => char}/lm32_juart.c (99%)
 rename hw/{ => char}/lm32_uart.c (100%)
 rename hw/{ => char}/mcf_uart.c (99%)
 rename hw/{ => char}/milkymist-uart.c (100%)
 rename hw/{ => char}/omap_uart.c (98%)
 rename hw/{ => char}/parallel.c (99%)
 rename hw/{ => char}/pl011.c (100%)
 rename hw/{s390x => char}/sclpconsole.c (100%)
 rename hw/{ => char}/serial-isa.c (98%)
 rename hw/{ => char}/serial-pci.c (99%)
 rename hw/{ => char}/serial.c (99%)
 rename hw/{ => char}/sh_serial.c (99%)
 rename hw/{ => char}/spapr_vty.c (99%)
 rename hw/{ => char}/tpci200.c (99%)
 rename hw/{ => char}/virtio-console.c (99%)
 rename hw/{ => char}/virtio-serial-bus.c (99%)
 rename hw/{ => char}/xen_console.c (99%)
 rename hw/{ => char}/xilinx_uartlite.c (100%)
 create mode 100644 hw/core/Makefile.objs
 rename hw/{ => core}/empty_slot.c (100%)
 rename hw/{ => core}/irq.c (100%)
 rename hw/{ => core}/loader.c (99%)
 rename hw/{ => core}/null-machine.c (100%)
 rename hw/{ => core}/ptimer.c (100%)
 rename hw/{ => core}/qdev-addr.c (100%)
 rename hw/{ => core}/qdev-properties-system.c (99%)
 rename hw/{ => core}/qdev-properties.c (99%)
 rename hw/{ => core}/qdev.c (100%)
 rename hw/{ => core}/stream.c (100%)
 rename hw/{ => core}/sysbus.c (100%)
 rename hw/{ => core}/uboot_image.h (100%)
 rename hw/{cris-boot.h => cris/boot.h} (100%)
 create mode 100644 hw/display/Makefile.objs
 rename hw/{ => display}/ads7846.c (100%)
 rename hw/{ => display}/blizzard.c (99%)
 rename hw/{ => display}/blizzard_template.h (100%)
 rename hw/{ => display}/cirrus_vga.c (99%)
 rename hw/{ => display}/cirrus_vga_rop.h (97%)
 rename hw/{ => display}/cirrus_vga_rop2.h (100%)
 rename hw/{ => display}/cirrus_vga_template.h (100%)
 rename hw/{ => display}/exynos4210_fimd.c (100%)
 rename hw/{ => display}/framebuffer.c (99%)
 rename hw/{ => display}/framebuffer.h (100%)
 rename hw/{ => display}/g364fb.c (100%)
 rename hw/{ => display}/jazz_led.c (100%)
 rename hw/{ => display}/milkymist-tmu2.c (100%)
 rename hw/{ => display}/milkymist-vgafb.c (97%)
 rename hw/{ => display}/milkymist-vgafb_template.h (100%)
 rename hw/{ => display}/omap_dss.c (99%)
 rename hw/{ => display}/omap_lcd_template.h (100%)
 rename hw/{ => display}/omap_lcdc.c (98%)
 rename hw/{ => display}/pl110.c (98%)
 rename hw/{ => display}/pl110_template.h (98%)
 rename hw/{ => display}/pxa2xx_lcd.c (99%)
 rename hw/{ => display}/pxa2xx_template.h (100%)
 rename hw/{ => display}/qxl-logger.c (99%)
 rename hw/{ => display}/qxl-render.c (99%)
 rename hw/{ => display}/qxl.c (99%)
 rename hw/{ => display}/qxl.h (99%)
 rename hw/{ => display}/sm501.c (99%)
 rename hw/{ => display}/sm501_template.h (100%)
 rename hw/{ => display}/ssd0303.c (99%)
 rename hw/{ => display}/ssd0323.c (100%)
 rename hw/{ => display}/tc6393xb.c (98%)
 rename hw/{ => display}/tc6393xb_template.h (100%)
 rename hw/{ => display}/tcx.c (100%)
 rename hw/{ => display}/vga-isa-mm.c (98%)
 rename hw/{ => display}/vga-isa.c (98%)
 rename hw/{ => display}/vga-pci.c (99%)
 rename hw/{ => display}/vga.c (99%)
 rename hw/{ => display}/vga.h (100%)
 rename hw/{ => display}/vga_int.h (100%)
 rename hw/{ => display}/vga_template.h (100%)
 rename hw/{ => display}/vmware_vga.c (99%)
 rename hw/{ => display}/xenfb.c (99%)
 create mode 100644 hw/dma/Makefile.objs
 rename hw/{ => dma}/etraxfs_dma.c (99%)
 rename hw/{dma.c => dma/i8257.c} (99%)
 rename hw/{ => dma}/omap_dma.c (99%)
 rename hw/{ => dma}/pl080.c (100%)
 rename hw/{ => dma}/pl330.c (99%)
 rename hw/{ => dma}/puv3_dma.c (98%)
 rename hw/{ => dma}/pxa2xx_dma.c (99%)
 rename hw/{ => dma}/rc4030.c (99%)
 rename hw/{ => dma}/soc_dma.c (99%)
 rename hw/{ => dma}/sparc32_dma.c (99%)
 rename hw/{ => dma}/sun4m_iommu.c (99%)
 rename hw/{ => dma}/xilinx_axidma.c (100%)
 create mode 100644 hw/gpio/Makefile.objs
 rename hw/{ => gpio}/max7310.c (99%)
 rename hw/{ => gpio}/omap_gpio.c (99%)
 rename hw/{ => gpio}/pl061.c (100%)
 rename hw/{ => gpio}/puv3_gpio.c (99%)
 rename hw/{ => gpio}/zaurus.c (99%)
 create mode 100644 hw/i2c/Makefile.objs
 rename hw/{ => i2c}/bitbang_i2c.c (99%)
 rename hw/{ => i2c}/bitbang_i2c.h (92%)
 rename hw/{i2c.c => i2c/core.c} (99%)
 rename hw/{ => i2c}/exynos4210_i2c.c (99%)
 rename hw/{ => i2c}/omap_i2c.c (99%)
 rename hw/{ => i2c}/pm_smbus.c (98%)
 rename hw/{ => i2c}/smbus.c (99%)
 rename hw/{ => i2c}/smbus_eeprom.c (98%)
 rename hw/{ => i2c}/smbus_ich9.c (96%)
 rename hw/{ => i2c}/versatile_i2c.c (99%)
 rename hw/{ => i386}/multiboot.h (100%)
 rename hw/{ => i386}/xen_domainbuild.h (93%)
 create mode 100644 hw/input/Makefile.objs
 rename hw/{ => input}/adb.c (99%)
 rename hw/{ => input}/hid.c (99%)
 rename hw/{ => input}/lm832x.c (99%)
 rename hw/{ => input}/milkymist-softusb.c (99%)
 rename hw/{ => input}/pckbd.c (99%)
 rename hw/{ => input}/pl050.c (99%)
 rename hw/{ => input}/ps2.c (99%)
 rename hw/{ => input}/pxa2xx_keypad.c (99%)
 rename hw/{ => input}/stellaris_input.c (98%)
 rename hw/{ => input}/tsc2005.c (99%)
 rename hw/{ => input}/tsc210x.c (99%)
 rename hw/{ => input}/vmmouse.c (99%)
 create mode 100644 hw/intc/Makefile.objs
 rename hw/{ => intc}/apic.c (99%)
 rename hw/{ => intc}/apic_common.c (99%)
 rename hw/{ => intc}/arm_gic.c (99%)
 rename hw/{ => intc}/arm_gic_common.c (99%)
 rename hw/{ => intc}/armv7m_nvic.c (99%)
 rename hw/{ => intc}/etraxfs_pic.c (100%)
 rename hw/{ => intc}/exynos4210_combiner.c (99%)
 rename hw/{ => intc}/exynos4210_gic.c (99%)
 rename hw/{arm_gic_internal.h => intc/gic_internal.h} (100%)
 rename hw/{ => intc}/grlib_irqmp.c (99%)
 rename hw/{ => intc}/heathrow_pic.c (100%)
 rename hw/{ => intc}/i8259.c (99%)
 rename hw/{ => intc}/i8259_common.c (98%)
 rename hw/{ => intc}/imx_avic.c (100%)
 rename hw/{ => intc}/ioapic.c (98%)
 rename hw/{ => intc}/ioapic_common.c (98%)
 rename hw/{ => intc}/lm32_pic.c (98%)
 rename hw/{ => intc}/omap_intc.c (99%)
 rename hw/{ => intc}/openpic.c (99%)
 rename hw/{ => intc}/pl190.c (100%)
 rename hw/{ => intc}/puv3_intc.c (99%)
 rename hw/{ => intc}/realview_gic.c (100%)
 rename hw/{ => intc}/sbi.c (100%)
 rename hw/{ => intc}/sh_intc.c (99%)
 rename hw/{ => intc}/slavio_intctl.c (99%)
 rename hw/{ => intc}/sun4c_intctl.c (99%)
 rename hw/{ => intc}/xilinx_intc.c (100%)
 create mode 100644 hw/isa/Makefile.objs
 rename hw/{ => isa}/apm.c (99%)
 rename hw/{ => isa}/applesmc.c (99%)
 rename hw/{ => isa}/debugexit.c (98%)
 rename hw/{ => isa}/i82374.c (99%)
 rename hw/{ => isa}/i82378.c (98%)
 rename hw/{ => isa}/isa-bus.c (99%)
 rename hw/{ => isa}/isa_mmio.c (99%)
 rename hw/{ => isa}/lpc_ich9.c (98%)
 rename hw/{ => isa}/pc-testdev.c (99%)
 rename hw/{ => isa}/pc87312.c (99%)
 rename hw/{ => isa}/piix4.c (98%)
 rename hw/{ => isa}/sga.c (98%)
 rename hw/{ => isa}/vmport.c (98%)
 rename hw/{ => isa}/vt82c686.c (98%)
 rename hw/{ => lm32}/lm32.h (100%)
 rename hw/{ => lm32}/lm32_hwsetup.h (100%)
 rename hw/{ => lm32}/milkymist-hw.h (100%)
 rename hw/{microblaze_boot.h => microblaze/boot.h} (100%)
 rename hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h} (100%)
 create mode 100644 hw/misc/Makefile.objs
 rename hw/{ => misc}/a9scu.c (100%)
 rename hw/{ => misc}/arm_l2x0.c (100%)
 rename hw/{ => misc}/arm_sysctl.c (99%)
 rename hw/{ => misc}/cbus.c (99%)
 rename hw/{ => misc}/eccmemctl.c (100%)
 rename hw/{ => misc}/exynos4210_pmu.c (100%)
 rename hw/{ => misc}/imx_ccm.c (99%)
 rename hw/{ => misc}/lm32_sys.c (100%)
 create mode 100644 hw/misc/macio/Makefile.objs
 rename hw/{ => misc/macio}/cuda.c (99%)
 rename hw/{ => misc/macio}/mac_dbdma.c (99%)
 rename hw/{ => misc/macio}/macio.c (99%)
 rename hw/{ => misc}/max111x.c (100%)
 rename hw/{ => misc}/milkymist-hpdmc.c (100%)
 rename hw/{ => misc}/milkymist-pfpu.c (100%)
 rename hw/{ => misc}/mst_fpga.c (100%)
 rename hw/{ => misc}/omap_clk.c (99%)
 rename hw/{ => misc}/omap_gpmc.c (99%)
 rename hw/{ => misc}/omap_l4.c (99%)
 rename hw/{ => misc}/omap_sdrc.c (99%)
 rename hw/{ => misc}/omap_tap.c (99%)
 rename hw/{ => misc}/puv3_pm.c (99%)
 rename hw/{ => misc}/pxa2xx_pcmcia.c (99%)
 rename hw/{ => misc}/slavio_misc.c (100%)
 rename hw/{ => misc}/tmp105.c (99%)
 rename hw/{ => misc}/tmp105.h (94%)
 rename hw/{ => misc}/zynq_slcr.c (100%)
 create mode 100644 hw/net/Makefile.objs
 rename hw/{ => net}/cadence_gem.c (100%)
 rename hw/{ => net}/dp8393x.c (99%)
 rename hw/{ => net}/e1000.c (99%)
 rename hw/{e1000_hw.h => net/e1000_regs.h} (100%)
 rename hw/{ => net}/eepro100.c (99%)
 rename hw/{ => net}/etraxfs_eth.c (99%)
 rename hw/{ => net}/lan9118.c (99%)
 rename hw/{ => net}/lance.c (99%)
 rename hw/{ => net}/mcf_fec.c (99%)
 rename hw/{ => net}/milkymist-minimac2.c (100%)
 rename hw/{ => net}/mipsnet.c (100%)
 rename hw/{ => net}/ne2000-isa.c (98%)
 rename hw/{ => net}/ne2000.c (99%)
 rename hw/{ => net}/ne2000.h (100%)
 rename hw/{ => net}/opencores_eth.c (100%)
 rename hw/{ => net}/pcnet-pci.c (99%)
 rename hw/{ => net}/pcnet.c (99%)
 rename hw/{ => net}/pcnet.h (100%)
 rename hw/{ => net}/rtl8139.c (100%)
 rename hw/{ => net}/smc91c111.c (99%)
 rename hw/{ => net}/spapr_llan.c (99%)
 rename hw/{ => net}/stellaris_enet.c (100%)
 rename hw/{ => net}/vhost_net.c (98%)
 rename hw/{ => net}/virtio-net.c (99%)
 rename hw/{ => net}/xen_nic.c (99%)
 rename hw/{ => net}/xgmac.c (100%)
 rename hw/{ => net}/xilinx_axienet.c (100%)
 rename hw/{ => net}/xilinx_ethlite.c (100%)
 create mode 100644 hw/nvram/Makefile.objs
 rename hw/{ => nvram}/ds1225y.c (100%)
 rename hw/{ => nvram}/eeprom93xx.c (99%)
 rename hw/{ => nvram}/fw_cfg.c (99%)
 rename hw/{ => nvram}/mac_nvram.c (99%)
 rename hw/{ => nvram}/spapr_nvram.c (98%)
 rename hw/{apb_pci.c => pci/host-apb.c} (99%)
 rename hw/{bonito.c => pci/host-bonito.c} (99%)
 rename hw/{dec_pci.c => pci/host-dec.c} (99%)
 rename hw/{dec_pci.h => pci/host-dec.h} (100%)
 rename hw/{grackle_pci.c => pci/host-grackle.c} (100%)
 rename hw/{gt64xxx.c => pci/host-gt64xxx.c} (99%)
 rename hw/{piix_pci.c => pci/host-piix.c} (99%)
 rename hw/{ppc4xx_pci.c => pci/host-ppc4xx.c} (99%)
 rename hw/{ppce500_pci.c => pci/host-ppce500.c} (99%)
 rename hw/{prep_pci.c => pci/host-prep.c} (99%)
 rename hw/{q35.c => pci/host-q35.c} (99%)
 rename hw/{sh_pci.c => pci/host-sh.c} (99%)
 rename hw/{spapr_pci.c => pci/host-spapr.c} (99%)
 rename hw/{unin_pci.c => pci/host-uninorth.c} (100%)
 rename hw/{versatile_pci.c => pci/host-versatile.c} (100%)
 rename hw/{ => pci}/i82801b11.c (99%)
 rename hw/{ => pci}/ioh3420.c (99%)
 rename hw/{ => pci}/ioh3420.h (100%)
 rename hw/{ => pci}/ivshmem.c (99%)
 rename hw/{ => pci}/pam.c (99%)
 rename hw/{ => pci}/pci_bridge_dev.c (100%)
 rename hw/{vfio_pci.c => pci/vfio.c} (100%)
 rename hw/{ => pci}/xio3130_downstream.c (99%)
 rename hw/{ => pci}/xio3130_downstream.h (100%)
 rename hw/{ => pci}/xio3130_upstream.c (99%)
 rename hw/{ => pci}/xio3130_upstream.h (100%)
 rename hw/{ => ppc}/ppc405.h (99%)
 create mode 100644 hw/scsi/Makefile.objs
 rename hw/{ => scsi}/esp-pci.c (99%)
 rename hw/{ => scsi}/esp.c (99%)
 rename hw/{ => scsi}/lsi53c895a.c (99%)
 rename hw/{ => scsi}/megasas.c (99%)
 rename hw/{ => scsi}/mfi.h (100%)
 rename hw/{ => scsi}/scsi-bus.c (99%)
 rename hw/{ => scsi}/scsi-disk.c (99%)
 rename hw/{ => scsi}/scsi-generic.c (99%)
 rename hw/{ => scsi}/spapr_vscsi.c (99%)
 rename hw/{ => scsi}/srp.h (100%)
 rename hw/{ppc-viosrp.h => scsi/viosrp.h} (100%)
 rename hw/{ => scsi}/virtio-scsi.c (99%)
 create mode 100644 hw/sd/Makefile.objs
 rename hw/{ => sd}/milkymist-memcard.c (100%)
 rename hw/{ => sd}/omap_mmc.c (99%)
 rename hw/{ => sd}/pl181.c (100%)
 rename hw/{ => sd}/pxa2xx_mmci.c (99%)
 rename hw/{ => sd}/sd.c (100%)
 rename hw/{ => sd}/sdhci.c (99%)
 rename hw/{ => sd}/sdhci.h (100%)
 rename hw/{ => sd}/ssi-sd.c (100%)
 rename hw/{ => sh4}/sh7750_regnames.h (100%)
 rename hw/{ => sh4}/sh7750_regs.h (100%)
 create mode 100644 hw/ssi/Makefile.objs
 rename hw/{ => ssi}/omap_spi.c (99%)
 rename hw/{ => ssi}/pl022.c (100%)
 rename hw/{ => ssi}/ssi.c (100%)
 rename hw/{ => ssi}/xilinx_spi.c (100%)
 rename hw/{ => ssi}/xilinx_spips.c (100%)
 create mode 100644 hw/timer/Makefile.objs
 rename hw/{ => timer}/arm_mptimer.c (100%)
 rename hw/{ => timer}/arm_timer.c (100%)
 rename hw/{ => timer}/cadence_ttc.c (100%)
 rename hw/{ => timer}/ds1338.c (99%)
 rename hw/{ => timer}/etraxfs_timer.c (100%)
 rename hw/{ => timer}/exynos4210_mct.c (99%)
 rename hw/{ => timer}/exynos4210_pwm.c (99%)
 rename hw/{ => timer}/exynos4210_rtc.c (99%)
 rename hw/{ => timer}/grlib_gptimer.c (100%)
 rename hw/{ => timer}/hpet.c (99%)
 rename hw/{ => timer}/i8254.c (98%)
 rename hw/{ => timer}/i8254_common.c (98%)
 rename hw/{ => timer}/imx_timer.c (99%)
 rename hw/{ => timer}/lm32_timer.c (100%)
 rename hw/{ => timer}/m48t59.c (99%)
 rename hw/{ => timer}/mc146818rtc.c (99%)
 rename hw/{ => timer}/milkymist-sysctl.c (100%)
 rename hw/{ => timer}/omap_gptimer.c (99%)
 rename hw/{ => timer}/omap_synctimer.c (99%)
 rename hw/{ => timer}/pl031.c (100%)
 rename hw/{ => timer}/puv3_ost.c (99%)
 rename hw/{ => timer}/pxa2xx_timer.c (99%)
 rename hw/{ => timer}/sh_timer.c (99%)
 rename hw/{ => timer}/slavio_timer.c (99%)
 rename hw/{ => timer}/tusb6010.c (99%)
 rename hw/{ => timer}/twl92230.c (99%)
 rename hw/{ => timer}/xilinx_timer.c (100%)
 rename {tpm => hw/tpm}/Makefile.objs (72%)
 rename {tpm => hw/tpm}/tpm_backend.c (82%)
 rename {tpm => hw/tpm}/tpm_int.h (49%)
 rename {tpm => hw/tpm}/tpm_passthrough.c (99%)
 rename {tpm => hw/tpm}/tpm_tis.c (99%)
 rename {tpm => hw/tpm}/tpm_tis.h (93%)
 rename hw/{ => usb}/ccid-card-emulated.c (99%)
 rename hw/{ => usb}/ccid-card-passthru.c (99%)
 rename hw/{ => usb}/ccid.h (100%)
 create mode 100644 hw/virtio/Makefile.objs
 rename hw/{ => virtio}/vhost.c (99%)
 rename hw/{ => virtio}/virtio-balloon.c (99%)
 rename hw/{ => virtio}/virtio-bus.c (98%)
 rename hw/{ => virtio}/virtio-pci.c (99%)
 rename hw/{ => virtio}/virtio-pci.h (91%)
 rename hw/{ => virtio}/virtio-rng.c (98%)
 rename hw/{ => virtio}/virtio.c (99%)
 create mode 100644 hw/watchdog/Makefile.objs
 rename hw/{ => watchdog}/watchdog.c (99%)
 rename hw/{ => watchdog}/wdt_i6300esb.c (99%)
 rename hw/{ => watchdog}/wdt_ib700.c (98%)
 create mode 100644 hw/xen/Makefile.objs
 rename hw/{ => xen}/xen-host-pci-device.c (99%)
 rename hw/{ => xen}/xen-host-pci-device.h (100%)
 rename hw/{ => xen}/xen_apic.c (97%)
 rename hw/{ => xen}/xen_backend.c (99%)
 rename hw/{ => xen}/xen_devconfig.c (99%)
 rename hw/{ => xen}/xen_platform.c (99%)
 rename hw/{ => xen}/xen_pt.c (99%)
 rename hw/{ => xen}/xen_pt.h (99%)
 rename hw/{ => xen}/xen_pt_config_init.c (99%)
 rename hw/{ => xen}/xen_pt_msi.c (99%)
 rename hw/{ => xtensa}/xtensa_bootparam.h (100%)
 rename hw/scsi-defs.h => include/block/scsi.h (100%)
 rename {hw => include/hw/acpi}/acpi.h (100%)
 rename hw/acpi_ich9.h => include/hw/acpi/ich9.h (98%)
 rename hw/arm-misc.h => include/hw/arm.h (100%)
 rename {hw => include/hw/arm}/devices.h (100%)
 rename {hw => include/hw/arm}/exynos4210.h (100%)
 rename {hw => include/hw/arm}/imx.h (100%)
 rename {hw => include/hw/arm}/omap.h (100%)
 rename {hw => include/hw/arm}/primecell.h (100%)
 rename {hw => include/hw/arm}/pxa.h (100%)
 rename {hw => include/hw/arm}/sharpsl.h (100%)
 rename {hw => include/hw/arm}/soc_dma.h (100%)
 rename hw/audiodev.h => include/hw/audio/audio.h (100%)
 rename {hw => include/hw/audio}/pcspk.h (98%)
 rename hw/block-common.h => include/hw/block/block.h (100%)
 rename {hw => include/hw/block}/fdc.h (100%)
 rename {hw => include/hw/block}/flash.h (100%)
 rename {hw => include/hw}/boards.h (100%)
 rename {hw => include/hw}/bt.h (100%)
 rename {hw => include/hw/char}/escc.h (100%)
 rename {hw => include/hw/char}/serial.h (100%)
 rename {hw => include/hw/cris}/etraxfs.h (98%)
 rename {hw => include/hw/cris}/etraxfs_dma.h (100%)
 rename {hw => include/hw}/elf_ops.h (100%)
 rename {hw => include/hw}/empty_slot.h (100%)
 rename {hw => include/hw}/hw.h (100%)
 rename {hw => include/hw/i2c}/i2c.h (100%)
 rename {hw => include/hw/i2c}/pm_smbus.h (100%)
 rename {hw => include/hw/i2c}/smbus.h (99%)
 rename {hw => include/hw/i386}/apic-msidef.h (100%)
 rename {hw => include/hw/i386}/apic.h (100%)
 rename {hw => include/hw/i386}/apic_internal.h (100%)
 rename {hw => include/hw/i386}/ich9.h (97%)
 rename {hw => include/hw/i386}/ioapic.h (100%)
 rename {hw => include/hw/i386}/ioapic_internal.h (100%)
 rename {hw => include/hw/i386}/pc.h (98%)
 rename {hw => include/hw/i386}/smbios.h (100%)
 rename {hw => include/hw}/ide.h (97%)
 rename {hw => include/hw/input}/adb.h (100%)
 rename {hw => include/hw/input}/hid.h (100%)
 rename {hw => include/hw/input}/ps2.h (100%)
 rename {hw => include/hw}/irq.h (100%)
 rename {hw => include/hw/isa}/apm.h (100%)
 rename {hw => include/hw/isa}/i8259_internal.h (98%)
 rename {hw => include/hw/isa}/isa.h (100%)
 rename {hw => include/hw/isa}/pc87312.h (98%)
 rename {hw => include/hw/isa}/vt82c686.h (100%)
 rename {hw => include/hw}/kvm/clock.h (100%)
 rename {hw => include/hw/lm32}/lm32_juart.h (100%)
 rename {hw => include/hw/lm32}/lm32_pic.h (100%)
 rename {hw => include/hw}/loader.h (100%)
 rename {hw => include/hw/m68k}/mcf.h (100%)
 rename hw/mips-bios.h => include/hw/mips/bios.h (100%)
 rename hw/mips_cpudevs.h => include/hw/mips/cpudevs.h (100%)
 rename {hw => include/hw/mips}/mips.h (100%)
 rename {hw => include/hw/misc}/tmp105_regs.h (100%)
 rename {hw => include/hw/nvram}/eeprom93xx.h (100%)
 rename {hw => include/hw/nvram}/fw_cfg.h (100%)
 rename hw/apb_pci.h => include/hw/pci/host-apb.h (100%)
 rename hw/ppce500_pci.h => include/hw/pci/host-ppce500.h (100%)
 rename hw/q35.h => include/hw/pci/host-q35.h (97%)
 rename hw/spapr_pci.h => include/hw/pci/host-spapr.h (99%)
 rename hw/alpha_sys.h => include/hw/pci/host-typhoon.h (95%)
 rename {hw => include/hw/pci}/pam.h (100%)
 rename {hw => include/hw}/pcmcia.h (100%)
 rename {hw => include/hw/ppc}/mac_dbdma.h (100%)
 rename {hw => include/hw/ppc}/openpic.h (100%)
 rename {hw => include/hw/ppc}/ppc.h (100%)
 rename {hw => include/hw/ppc}/ppc4xx.h (100%)
 rename {hw => include/hw/ppc}/spapr.h (99%)
 rename {hw => include/hw/ppc}/spapr_vio.h (100%)
 rename {hw => include/hw/ppc}/xics.h (100%)
 rename {hw => include/hw}/ptimer.h (100%)
 rename {hw => include/hw}/qdev-addr.h (100%)
 rename {hw => include/hw}/qdev-core.h (100%)
 rename {hw => include/hw}/qdev-dma.h (100%)
 rename {hw => include/hw}/qdev-properties.h (100%)
 rename {hw => include/hw}/qdev.h (100%)
 rename {hw => include/hw}/s390x/event-facility.h (100%)
 rename {hw => include/hw}/s390x/sclp.h (100%)
 rename {hw => include/hw/scsi}/esp.h (99%)
 rename {hw => include/hw/scsi}/scsi.h (99%)
 rename {hw => include/hw}/sd.h (100%)
 rename {hw => include/hw/sh4}/sh.h (98%)
 rename {hw => include/hw/sh4}/sh_intc.h (100%)
 rename {hw => include/hw/sparc}/firmware_abi.h (100%)
 rename {hw => include/hw/sparc}/grlib.h (100%)
 rename {hw => include/hw/sparc}/sparc32_dma.h (100%)
 rename {hw => include/hw/sparc}/sun4m.h (96%)
 rename {hw => include/hw}/ssi.h (100%)
 rename {hw => include/hw}/stream.h (100%)
 rename {hw => include/hw}/sysbus.h (100%)
 rename hw/hpet_emul.h => include/hw/timer/hpet.h (100%)
 rename {hw => include/hw/timer}/i8254.h (98%)
 rename {hw => include/hw/timer}/i8254_internal.h (98%)
 rename hw/nvram.h => include/hw/timer/m48t59.h (100%)
 rename {hw => include/hw/timer}/mc146818rtc.h (80%)
 rename {hw => include/hw/timer}/mc146818rtc_regs.h (100%)
 rename {hw => include/hw/unicore32}/puv3.h (100%)
 rename {hw => include/hw}/usb.h (100%)
 rename {hw => include/hw/virtio}/vhost.h (98%)
 rename hw/9pfs/virtio-9p-device.h => include/hw/virtio/virtio-9p.h (100%)
 rename {hw => include/hw/virtio}/virtio-balloon.h (98%)
 rename {hw => include/hw/virtio}/virtio-blk.h (98%)
 rename {hw => include/hw/virtio}/virtio-bus.h (99%)
 rename {hw => include/hw/virtio}/virtio-net.h (99%)
 rename {hw => include/hw/virtio}/virtio-rng.h (100%)
 rename {hw => include/hw/virtio}/virtio-scsi.h (97%)
 rename {hw => include/hw/virtio}/virtio-serial.h (99%)
 rename {hw => include/hw/virtio}/virtio.h (99%)
 rename {hw => include/hw/xen}/xen.h (100%)
 rename {hw => include/hw/xen}/xen_backend.h (99%)
 rename {hw => include/hw/xen}/xen_common.h (99%)
 rename {hw => include/hw}/xilinx.h (100%)
 rename {hw => include/net}/vhost_net.h (100%)
 rename {hw => include/sysemu}/watchdog.h (100%)
 rename {tpm => include/tpm}/tpm_backend.h (50%)
 rename tpm/tpm.c => tpm.c (93%)

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 01/35] hw: move headers to include/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 02/35] hw: make subdirectories for devices Paolo Bonzini
                   ` (34 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

Many of these should be cleaned up with proper qdev-/QOM-ification.
Right now there are many catch-all headers in include/hw/ARCH depending
on cpu.h, and this makes it necessary to compile these files per-target.
However, fixing this does not belong in these patches.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 arch_init.c                                        |  8 ++++----
 block/iscsi.c                                      |  4 ++--
 blockdev-nbd.c                                     |  2 +-
 blockdev.c                                         |  2 +-
 exec.c                                             |  2 +-
 gdbstub.c                                          |  2 +-
 hw/9pfs/virtio-9p-device.c                         |  4 ++--
 hw/9pfs/virtio-9p-handle.c                         |  2 +-
 hw/9pfs/virtio-9p-local.c                          |  2 +-
 hw/9pfs/virtio-9p-posix-acl.c                      |  2 +-
 hw/9pfs/virtio-9p-proxy.c                          |  2 +-
 hw/9pfs/virtio-9p-synth.c                          |  2 +-
 hw/9pfs/virtio-9p-xattr-user.c                     |  2 +-
 hw/9pfs/virtio-9p-xattr.c                          |  2 +-
 hw/9pfs/virtio-9p.c                                |  4 ++--
 hw/9pfs/virtio-9p.h                                |  2 +-
 hw/ac97.c                                          |  2 +-
 hw/acpi.c                                          |  4 ++--
 hw/acpi_ich9.c                                     |  6 +++---
 hw/acpi_piix4.c                                    | 10 ++++-----
 hw/adb.c                                           |  2 +-
 hw/adlib.c                                         |  4 ++--
 hw/alpha/dp264.c                                   |  8 ++++----
 hw/alpha/pci.c                                     |  2 +-
 hw/alpha_typhoon.c                                 |  4 ++--
 hw/apb_pci.c                                       |  2 +-
 hw/apic.c                                          | 10 ++++-----
 hw/apic_common.c                                   |  4 ++--
 hw/apm.c                                           |  2 +-
 hw/applesmc.c                                      |  2 +-
 hw/arm/armv7m.c                                    |  2 +-
 hw/arm/boot.c                                      |  2 +-
 hw/arm/collie.c                                    |  6 +++---
 hw/arm/exynos4210.c                                |  4 ++--
 hw/arm/exynos4_boards.c                            |  4 ++--
 hw/arm/gumstix.c                                   |  6 +++---
 hw/arm/highbank.c                                  |  4 ++--
 hw/arm/integratorcp.c                              |  4 ++--
 hw/arm/kzm.c                                       |  8 ++++----
 hw/arm/mainstone.c                                 |  8 ++++----
 hw/arm/musicpal.c                                  | 10 ++++-----
 hw/arm/nseries.c                                   | 10 ++++-----
 hw/arm/omap1.c                                     |  6 +++---
 hw/arm/omap2.c                                     |  8 ++++----
 hw/arm/omap_sx1.c                                  |  6 +++---
 hw/arm/palm.c                                      |  6 +++---
 hw/arm/pic_cpu.c                                   |  2 +-
 hw/arm/pxa2xx.c                                    |  6 +++---
 hw/arm/pxa2xx_gpio.c                               |  2 +-
 hw/arm/pxa2xx_pic.c                                |  2 +-
 hw/arm/realview.c                                  |  8 ++++----
 hw/arm/spitz.c                                     | 12 +++++------
 hw/arm/stellaris.c                                 |  6 +++---
 hw/arm/tosa.c                                      | 10 ++++-----
 hw/arm/versatilepb.c                               |  8 ++++----
 hw/arm/vexpress.c                                  |  8 ++++----
 hw/arm/xilinx_zynq.c                               |  4 ++--
 hw/arm/z2.c                                        | 10 ++++-----
 hw/arm_sysctl.c                                    |  2 +-
 hw/armv7m_nvic.c                                   |  2 +-
 hw/bitbang_i2c.h                                   |  2 +-
 hw/blizzard.c                                      |  2 +-
 hw/block-common.c                                  |  2 +-
 hw/bonito.c                                        |  4 ++--
 hw/bt-hid.c                                        |  2 +-
 hw/cbus.c                                          |  2 +-
 hw/cdrom.c                                         |  2 +-
 hw/cris/axis_dev88.c                               |  4 ++--
 hw/cris/pic_cpu.c                                  |  2 +-
 hw/cs4231a.c                                       |  4 ++--
 hw/cuda.c                                          |  2 +-
 hw/dataplane/virtio-blk.c                          |  4 ++--
 hw/dataplane/virtio-blk.h                          |  2 +-
 hw/dataplane/vring.h                               |  2 +-
 hw/debugcon.c                                      |  4 ++--
 hw/debugexit.c                                     |  2 +-
 hw/dma.c                                           |  2 +-
 hw/dp8393x.c                                       |  2 +-
 hw/ds1338.c                                        |  2 +-
 hw/ecc.c                                           |  2 +-
 hw/eepro100.c                                      |  2 +-
 hw/eeprom93xx.c                                    |  2 +-
 hw/es1370.c                                        |  2 +-
 hw/escc.c                                          |  2 +-
 hw/esp-pci.c                                       |  4 ++--
 hw/esp.c                                           |  2 +-
 hw/etraxfs_dma.c                                   |  2 +-
 hw/etraxfs_eth.c                                   |  2 +-
 hw/exynos4210_combiner.c                           |  2 +-
 hw/exynos4210_gic.c                                |  2 +-
 hw/exynos4210_i2c.c                                |  2 +-
 hw/exynos4210_mct.c                                |  2 +-
 hw/exynos4210_pwm.c                                |  2 +-
 hw/exynos4210_rtc.c                                |  2 +-
 hw/exynos4210_uart.c                               |  2 +-
 hw/fdc.c                                           |  4 ++--
 hw/fw_cfg.c                                        |  4 ++--
 hw/grlib_irqmp.c                                   |  2 +-
 hw/gt64xxx.c                                       |  4 ++--
 hw/gus.c                                           |  4 ++--
 hw/hd-geometry.c                                   |  2 +-
 hw/hid.c                                           |  2 +-
 hw/hpet.c                                          |  8 ++++----
 hw/i2c.c                                           |  2 +-
 hw/i386/kvmvapic.c                                 |  2 +-
 hw/i386/multiboot.c                                |  2 +-
 hw/i386/pc.c                                       | 24 +++++++++++-----------
 hw/i386/pc_piix.c                                  |  8 ++++----
 hw/i386/pc_q35.c                                   | 10 ++++-----
 hw/i386/smbios.c                                   |  2 +-
 hw/i386/xen_domainbuild.c                          |  2 +-
 hw/i386/xen_machine_pv.c                           |  4 ++--
 hw/i82374.c                                        |  2 +-
 hw/i82378.c                                        |  6 +++---
 hw/i8254.c                                         |  8 ++++----
 hw/i8254_common.c                                  |  8 ++++----
 hw/i8259.c                                         |  6 +++---
 hw/i8259_common.c                                  |  4 ++--
 hw/i82801b11.c                                     |  2 +-
 hw/ide/ahci.c                                      |  2 +-
 hw/ide/atapi.c                                     |  2 +-
 hw/ide/cmd646.c                                    |  4 ++--
 hw/ide/core.c                                      |  6 +++---
 hw/ide/ich.c                                       |  4 ++--
 hw/ide/internal.h                                  |  6 +++---
 hw/ide/isa.c                                       |  4 ++--
 hw/ide/macio.c                                     |  2 +-
 hw/ide/microdrive.c                                |  2 +-
 hw/ide/pci.c                                       |  4 ++--
 hw/ide/piix.c                                      |  4 ++--
 hw/ide/qdev.c                                      |  2 +-
 hw/ide/via.c                                       |  4 ++--
 hw/imx_ccm.c                                       |  2 +-
 hw/imx_serial.c                                    |  2 +-
 hw/imx_timer.c                                     |  2 +-
 hw/intel-hda.c                                     |  2 +-
 hw/ioapic.c                                        |  8 ++++----
 hw/ioapic_common.c                                 |  4 ++--
 hw/isa-bus.c                                       |  2 +-
 hw/isa_mmio.c                                      |  2 +-
 hw/ivshmem.c                                       |  2 +-
 hw/kvm/apic.c                                      |  2 +-
 hw/kvm/i8254.c                                     |  4 ++--
 hw/kvm/i8259.c                                     |  4 ++--
 hw/kvm/ioapic.c                                    |  6 +++---
 hw/kvm/pci-assign.c                                |  2 +-
 hw/lan9118.c                                       |  2 +-
 hw/lance.c                                         |  2 +-
 hw/lm32/lm32_boards.c                              |  4 ++--
 hw/lm32/milkymist.c                                |  4 ++--
 hw/lm32_juart.c                                    |  2 +-
 hw/lm32_pic.c                                      |  4 ++--
 hw/lm832x.c                                        |  2 +-
 hw/loader.c                                        |  2 +-
 hw/lpc_ich9.c                                      | 16 +++++++--------
 hw/lsi53c895a.c                                    |  2 +-
 hw/m25p80.c                                        |  2 +-
 hw/m48t59.c                                        |  4 ++--
 hw/m68k/an5206.c                                   |  2 +-
 hw/m68k/mcf5206.c                                  |  2 +-
 hw/m68k/mcf5208.c                                  |  2 +-
 hw/m68k/mcf_intc.c                                 |  2 +-
 hw/mac_dbdma.c                                     |  4 ++--
 hw/mac_nvram.c                                     |  2 +-
 hw/macio.c                                         |  4 ++--
 hw/marvell_88w8618_audio.c                         |  2 +-
 hw/max7310.c                                       |  2 +-
 hw/mc146818rtc.c                                   |  4 ++--
 hw/mcf_fec.c                                       |  2 +-
 hw/mcf_uart.c                                      |  2 +-
 hw/megasas.c                                       |  4 ++--
 hw/microblaze/petalogix_ml605_mmu.c                |  6 +++---
 hw/microblaze/petalogix_s3adsp1800_mmu.c           |  4 ++--
 hw/milkymist-softusb.c                             |  2 +-
 hw/mips/addr.c                                     |  2 +-
 hw/mips/cputimer.c                                 |  2 +-
 hw/mips/mips_fulong2e.c                            | 22 ++++++++++----------
 hw/mips/mips_int.c                                 |  2 +-
 hw/mips/mips_jazz.c                                | 22 ++++++++++----------
 hw/mips/mips_malta.c                               | 20 +++++++++---------
 hw/mips/mips_mipssim.c                             | 10 ++++-----
 hw/mips/mips_r4k.c                                 | 18 ++++++++--------
 hw/nand.c                                          |  2 +-
 hw/ne2000-isa.c                                    |  4 ++--
 hw/omap_clk.c                                      |  2 +-
 hw/omap_dma.c                                      |  4 ++--
 hw/omap_dss.c                                      |  2 +-
 hw/omap_gpio.c                                     |  2 +-
 hw/omap_gpmc.c                                     |  4 ++--
 hw/omap_gptimer.c                                  |  2 +-
 hw/omap_i2c.c                                      |  4 ++--
 hw/omap_intc.c                                     |  2 +-
 hw/omap_l4.c                                       |  2 +-
 hw/omap_lcdc.c                                     |  2 +-
 hw/omap_mmc.c                                      |  2 +-
 hw/omap_sdrc.c                                     |  2 +-
 hw/omap_spi.c                                      |  2 +-
 hw/omap_synctimer.c                                |  2 +-
 hw/omap_tap.c                                      |  2 +-
 hw/omap_uart.c                                     |  4 ++--
 hw/onenand.c                                       |  2 +-
 hw/openpic.c                                       |  4 ++--
 hw/openrisc/openrisc_sim.c                         |  2 +-
 hw/pam.c                                           |  2 +-
 hw/parallel.c                                      |  4 ++--
 hw/pc-testdev.c                                    |  2 +-
 hw/pc87312.c                                       |  2 +-
 hw/pc_sysfw.c                                      |  4 ++--
 hw/pci/pci-hotplug.c                               |  6 +++---
 hw/pci/pci.h                                       |  2 +-
 hw/pckbd.c                                         |  6 +++---
 hw/pcspk.c                                         |  8 ++++----
 hw/pflash_cfi01.c                                  |  2 +-
 hw/pflash_cfi02.c                                  |  2 +-
 hw/piix4.c                                         |  4 ++--
 hw/piix_pci.c                                      |  8 ++++----
 hw/pl050.c                                         |  2 +-
 hw/pl330.c                                         |  2 +-
 hw/pm_smbus.c                                      |  6 +++---
 hw/ppc/e500.c                                      |  8 ++++----
 hw/ppc/e500plat.c                                  |  2 +-
 hw/ppc/mac.h                                       |  2 +-
 hw/ppc/mac_newworld.c                              | 14 ++++++-------
 hw/ppc/mac_oldworld.c                              | 12 +++++------
 hw/ppc/mpc8544ds.c                                 |  2 +-
 hw/ppc/ppc.c                                       |  4 ++--
 hw/ppc/ppc405_boards.c                             |  6 +++---
 hw/ppc/ppc405_uc.c                                 |  4 ++--
 hw/ppc/ppc440_bamboo.c                             |  4 ++--
 hw/ppc/ppc4xx_devs.c                               |  4 ++--
 hw/ppc/ppc_booke.c                                 |  4 ++--
 hw/ppc/prep.c                                      | 16 +++++++--------
 hw/ppc/spapr.c                                     | 10 ++++-----
 hw/ppc/spapr_events.c                              |  4 ++--
 hw/ppc/spapr_hcall.c                               |  2 +-
 hw/ppc/spapr_iommu.c                               |  2 +-
 hw/ppc/spapr_rtas.c                                |  4 ++--
 hw/ppc/spapr_vio.c                                 |  6 +++---
 hw/ppc/virtex_ml507.c                              | 10 ++++-----
 hw/ppc/xics.c                                      |  4 ++--
 hw/ppc405.h                                        |  2 +-
 hw/ppc4xx_pci.c                                    |  4 ++--
 hw/ppce500_pci.c                                   |  2 +-
 hw/prep_pci.c                                      |  2 +-
 hw/ps2.c                                           |  2 +-
 hw/puv3_dma.c                                      |  2 +-
 hw/puv3_gpio.c                                     |  2 +-
 hw/puv3_intc.c                                     |  2 +-
 hw/puv3_ost.c                                      |  2 +-
 hw/puv3_pm.c                                       |  2 +-
 hw/pxa2xx_dma.c                                    |  2 +-
 hw/pxa2xx_keypad.c                                 |  2 +-
 hw/pxa2xx_lcd.c                                    |  2 +-
 hw/pxa2xx_mmci.c                                   |  2 +-
 hw/pxa2xx_pcmcia.c                                 |  2 +-
 hw/pxa2xx_timer.c                                  |  2 +-
 hw/q35.c                                           |  2 +-
 hw/qdev-properties-system.c                        |  2 +-
 hw/qdev-properties.c                               |  2 +-
 hw/rc4030.c                                        |  2 +-
 hw/s390x/s390-virtio-bus.c                         | 10 ++++-----
 hw/s390x/s390-virtio-bus.h                         | 12 +++++------
 hw/s390x/s390-virtio.c                             |  2 +-
 hw/s390x/virtio-ccw.c                              |  8 ++++----
 hw/s390x/virtio-ccw.h                              | 12 +++++------
 hw/sb16.c                                          |  4 ++--
 hw/scsi-bus.c                                      |  4 ++--
 hw/scsi-disk.c                                     |  6 +++---
 hw/scsi-generic.c                                  |  4 ++--
 hw/serial-isa.c                                    |  4 ++--
 hw/serial-pci.c                                    |  2 +-
 hw/serial.c                                        |  2 +-
 hw/sga.c                                           |  2 +-
 hw/sh4/r2d.c                                       |  6 +++---
 hw/sh4/sh7750.c                                    |  4 ++--
 hw/sh4/sh7750_regnames.c                           |  2 +-
 hw/sh4/shix.c                                      |  2 +-
 hw/sh_intc.c                                       |  4 ++--
 hw/sh_pci.c                                        |  2 +-
 hw/sh_serial.c                                     |  2 +-
 hw/sh_timer.c                                      |  2 +-
 hw/slavio_intctl.c                                 |  2 +-
 hw/slavio_timer.c                                  |  2 +-
 hw/sm501.c                                         |  4 ++--
 hw/smbus.c                                         |  4 ++--
 hw/smbus_eeprom.c                                  |  4 ++--
 hw/smbus_ich9.c                                    | 10 ++++-----
 hw/smc91c111.c                                     |  2 +-
 hw/soc_dma.c                                       |  2 +-
 hw/spapr_llan.c                                    |  4 ++--
 hw/spapr_nvram.c                                   |  4 ++--
 hw/spapr_pci.c                                     |  4 ++--
 hw/spapr_vscsi.c                                   |  8 ++++----
 hw/spapr_vty.c                                     |  4 ++--
 hw/sparc/leon3.c                                   |  2 +-
 hw/sparc/sun4m.c                                   | 20 +++++++++---------
 hw/sparc32_dma.c                                   |  4 ++--
 hw/sparc64/sun4u.c                                 | 14 ++++++-------
 hw/ssd0303.c                                       |  2 +-
 hw/stellaris_input.c                               |  2 +-
 hw/strongarm.c                                     |  2 +-
 hw/sun4c_intctl.c                                  |  2 +-
 hw/sun4m_iommu.c                                   |  2 +-
 hw/tc58128.c                                       |  2 +-
 hw/tc6393xb.c                                      |  4 ++--
 hw/tmp105.c                                        |  2 +-
 hw/tmp105.h                                        |  4 ++--
 hw/tsc2005.c                                       |  2 +-
 hw/tsc210x.c                                       |  4 ++--
 hw/tusb6010.c                                      |  4 ++--
 hw/twl92230.c                                      |  2 +-
 hw/unicore32/puv3.c                                |  4 ++--
 hw/usb/dev-audio.c                                 |  2 +-
 hw/usb/dev-hid.c                                   |  2 +-
 hw/usb/dev-storage.c                               |  2 +-
 hw/usb/dev-uas.c                                   |  4 ++--
 hw/vga-isa-mm.c                                    |  2 +-
 hw/vga-isa.c                                       |  2 +-
 hw/vga.c                                           |  4 ++--
 hw/vhost.c                                         |  2 +-
 hw/vhost_net.c                                     |  6 +++---
 hw/virtio-balloon.c                                |  6 +++---
 hw/virtio-blk.c                                    |  6 +++---
 hw/virtio-bus.c                                    |  4 ++--
 hw/virtio-console.c                                |  2 +-
 hw/virtio-net.c                                    |  6 +++---
 hw/virtio-pci.c                                    | 12 +++++------
 hw/virtio-pci.h                                    | 14 ++++++-------
 hw/virtio-rng.c                                    |  4 ++--
 hw/virtio-scsi.c                                   |  6 +++---
 hw/virtio-serial-bus.c                             |  2 +-
 hw/virtio.c                                        |  4 ++--
 hw/vmmouse.c                                       |  4 ++--
 hw/vmport.c                                        |  4 ++--
 hw/vt82c686.c                                      | 18 ++++++++--------
 hw/watchdog.c                                      |  2 +-
 hw/wdt_i6300esb.c                                  |  2 +-
 hw/wdt_ib700.c                                     |  6 +++---
 hw/wm8750.c                                        |  2 +-
 hw/xen_apic.c                                      |  4 ++--
 hw/xen_backend.c                                   |  2 +-
 hw/xen_console.c                                   |  2 +-
 hw/xen_devconfig.c                                 |  2 +-
 hw/xen_disk.c                                      |  2 +-
 hw/xen_domainbuild.h                               |  2 +-
 hw/xen_nic.c                                       |  2 +-
 hw/xen_platform.c                                  |  6 +++---
 hw/xen_pt.c                                        |  4 ++--
 hw/xen_pt.h                                        |  2 +-
 hw/xen_pt_config_init.c                            |  2 +-
 hw/xen_pt_msi.c                                    |  4 ++--
 hw/xenfb.c                                         |  2 +-
 hw/xtensa/xtensa_lx60.c                            |  4 ++--
 hw/zaurus.c                                        |  2 +-
 hw/scsi-defs.h => include/block/scsi.h             |  0
 include/exec/memory-internal.h                     |  2 +-
 {hw => include/hw/acpi}/acpi.h                     |  0
 hw/acpi_ich9.h => include/hw/acpi/ich9.h           |  2 +-
 hw/arm-misc.h => include/hw/arm.h                  |  0
 {hw => include/hw/arm}/devices.h                   |  0
 {hw => include/hw/arm}/exynos4210.h                |  0
 {hw => include/hw/arm}/imx.h                       |  0
 {hw => include/hw/arm}/omap.h                      |  0
 {hw => include/hw/arm}/primecell.h                 |  0
 {hw => include/hw/arm}/pxa.h                       |  0
 {hw => include/hw/arm}/sharpsl.h                   |  0
 {hw => include/hw/arm}/soc_dma.h                   |  0
 hw/audiodev.h => include/hw/audio/audio.h          |  0
 {hw => include/hw/audio}/pcspk.h                   |  2 +-
 hw/block-common.h => include/hw/block/block.h      |  0
 {hw => include/hw/block}/fdc.h                     |  0
 {hw => include/hw/block}/flash.h                   |  0
 {hw => include/hw}/boards.h                        |  0
 {hw => include/hw}/bt.h                            |  0
 {hw => include/hw/char}/escc.h                     |  0
 {hw => include/hw/char}/serial.h                   |  0
 {hw => include/hw/cris}/etraxfs.h                  |  2 +-
 {hw => include/hw/cris}/etraxfs_dma.h              |  0
 {hw => include/hw}/elf_ops.h                       |  0
 {hw => include/hw}/empty_slot.h                    |  0
 {hw => include/hw}/hw.h                            |  0
 {hw => include/hw/i2c}/i2c.h                       |  0
 {hw => include/hw/i2c}/pm_smbus.h                  |  0
 {hw => include/hw/i2c}/smbus.h                     |  2 +-
 {hw => include/hw/i386}/apic-msidef.h              |  0
 {hw => include/hw/i386}/apic.h                     |  0
 {hw => include/hw/i386}/apic_internal.h            |  0
 {hw => include/hw/i386}/ich9.h                     | 14 ++++++-------
 {hw => include/hw/i386}/ioapic.h                   |  0
 {hw => include/hw/i386}/ioapic_internal.h          |  0
 {hw => include/hw/i386}/pc.h                       |  6 +++---
 {hw => include/hw/i386}/smbios.h                   |  0
 {hw => include/hw}/ide.h                           |  2 +-
 {hw => include/hw/input}/adb.h                     |  0
 {hw => include/hw/input}/hid.h                     |  0
 {hw => include/hw/input}/ps2.h                     |  0
 {hw => include/hw}/irq.h                           |  0
 {hw => include/hw/isa}/apm.h                       |  0
 {hw => include/hw/isa}/i8259_internal.h            |  4 ++--
 {hw => include/hw/isa}/isa.h                       |  0
 {hw => include/hw/isa}/pc87312.h                   |  2 +-
 {hw => include/hw/isa}/vt82c686.h                  |  0
 {hw => include/hw}/kvm/clock.h                     |  0
 {hw => include/hw/lm32}/lm32_juart.h               |  0
 {hw => include/hw/lm32}/lm32_pic.h                 |  0
 {hw => include/hw}/loader.h                        |  0
 {hw => include/hw/m68k}/mcf.h                      |  0
 hw/mips-bios.h => include/hw/mips/bios.h           |  0
 hw/mips_cpudevs.h => include/hw/mips/cpudevs.h     |  0
 {hw => include/hw/mips}/mips.h                     |  0
 {hw => include/hw/misc}/tmp105_regs.h              |  0
 {hw => include/hw/nvram}/eeprom93xx.h              |  0
 {hw => include/hw/nvram}/fw_cfg.h                  |  0
 hw/apb_pci.h => include/hw/pci/host-apb.h          |  0
 hw/ppce500_pci.h => include/hw/pci/host-ppce500.h  |  0
 hw/q35.h => include/hw/pci/host-q35.h              | 14 ++++++-------
 hw/spapr_pci.h => include/hw/pci/host-spapr.h      |  2 +-
 hw/alpha_sys.h => include/hw/pci/host-typhoon.h    |  2 +-
 {hw => include/hw/pci}/pam.h                       |  0
 {hw => include/hw}/pcmcia.h                        |  0
 {hw => include/hw/ppc}/mac_dbdma.h                 |  0
 {hw => include/hw/ppc}/openpic.h                   |  0
 {hw => include/hw/ppc}/ppc.h                       |  0
 {hw => include/hw/ppc}/ppc4xx.h                    |  0
 {hw => include/hw/ppc}/spapr.h                     |  2 +-
 {hw => include/hw/ppc}/spapr_vio.h                 |  0
 {hw => include/hw/ppc}/xics.h                      |  0
 {hw => include/hw}/ptimer.h                        |  0
 {hw => include/hw}/qdev-addr.h                     |  0
 {hw => include/hw}/qdev-core.h                     |  0
 {hw => include/hw}/qdev-dma.h                      |  0
 {hw => include/hw}/qdev-properties.h               |  0
 {hw => include/hw}/qdev.h                          |  0
 {hw => include/hw}/s390x/event-facility.h          |  0
 {hw => include/hw}/s390x/sclp.h                    |  0
 {hw => include/hw/scsi}/esp.h                      |  2 +-
 {hw => include/hw/scsi}/scsi.h                     |  2 +-
 {hw => include/hw}/sd.h                            |  0
 {hw => include/hw/sh4}/sh.h                        |  2 +-
 {hw => include/hw/sh4}/sh_intc.h                   |  0
 {hw => include/hw/sparc}/firmware_abi.h            |  0
 {hw => include/hw/sparc}/grlib.h                   |  0
 {hw => include/hw/sparc}/sparc32_dma.h             |  0
 {hw => include/hw/sparc}/sun4m.h                   |  2 +-
 {hw => include/hw}/ssi.h                           |  0
 {hw => include/hw}/stream.h                        |  0
 {hw => include/hw}/sysbus.h                        |  0
 hw/hpet_emul.h => include/hw/timer/hpet.h          |  0
 {hw => include/hw/timer}/i8254.h                   |  2 +-
 {hw => include/hw/timer}/i8254_internal.h          |  4 ++--
 hw/nvram.h => include/hw/timer/m48t59.h            |  0
 {hw => include/hw/timer}/mc146818rtc.h             |  4 ++--
 {hw => include/hw/timer}/mc146818rtc_regs.h        |  0
 {hw => include/hw/unicore32}/puv3.h                |  0
 {hw => include/hw}/usb.h                           |  0
 {hw => include/hw/virtio}/vhost.h                  |  2 +-
 .../hw/virtio/virtio-9p.h                          |  0
 {hw => include/hw/virtio}/virtio-balloon.h         |  2 +-
 {hw => include/hw/virtio}/virtio-blk.h             |  4 ++--
 {hw => include/hw/virtio}/virtio-bus.h             |  2 +-
 {hw => include/hw/virtio}/virtio-net.h             |  2 +-
 {hw => include/hw/virtio}/virtio-rng.h             |  0
 {hw => include/hw/virtio}/virtio-scsi.h            |  2 +-
 {hw => include/hw/virtio}/virtio-serial.h          |  2 +-
 {hw => include/hw/virtio}/virtio.h                 |  2 +-
 {hw => include/hw/xen}/xen.h                       |  0
 {hw => include/hw/xen}/xen_backend.h               |  2 +-
 {hw => include/hw/xen}/xen_common.h                |  2 +-
 {hw => include/hw}/xilinx.h                        |  0
 {hw => include/net}/vhost_net.h                    |  0
 {hw => include/sysemu}/watchdog.h                  |  0
 monitor.c                                          |  8 ++++----
 net/tap.c                                          |  2 +-
 pc-bios/optionrom/optionrom.h                      |  2 +-
 target-arm/arm-semi.c                              |  2 +-
 target-arm/kvm.c                                   |  2 +-
 target-i386/cpu.c                                  |  4 ++--
 target-i386/cpu.h                                  |  2 +-
 target-i386/kvm.c                                  |  4 ++--
 target-i386/machine.c                              |  4 ++--
 target-lm32/op_helper.c                            |  4 ++--
 target-lm32/translate.c                            |  2 +-
 target-ppc/kvm.c                                   |  6 +++---
 target-sh4/helper.c                                |  2 +-
 tests/rtc-test.c                                   |  2 +-
 tests/tmp105-test.c                                |  2 +-
 tpm/tpm_passthrough.c                              |  2 +-
 tpm/tpm_tis.c                                      |  2 +-
 tpm/tpm_tis.h                                      |  2 +-
 vl.c                                               | 12 +++++------
 xen-all.c                                          |  6 +++---
 xen-mapcache.c                                     |  2 +-
 xen-stub.c                                         |  2 +-
 493 files changed, 811 insertions(+), 811 deletions(-)
 rename hw/scsi-defs.h => include/block/scsi.h (100%)
 rename {hw => include/hw/acpi}/acpi.h (100%)
 rename hw/acpi_ich9.h => include/hw/acpi/ich9.h (98%)
 rename hw/arm-misc.h => include/hw/arm.h (100%)
 rename {hw => include/hw/arm}/devices.h (100%)
 rename {hw => include/hw/arm}/exynos4210.h (100%)
 rename {hw => include/hw/arm}/imx.h (100%)
 rename {hw => include/hw/arm}/omap.h (100%)
 rename {hw => include/hw/arm}/primecell.h (100%)
 rename {hw => include/hw/arm}/pxa.h (100%)
 rename {hw => include/hw/arm}/sharpsl.h (100%)
 rename {hw => include/hw/arm}/soc_dma.h (100%)
 rename hw/audiodev.h => include/hw/audio/audio.h (100%)
 rename {hw => include/hw/audio}/pcspk.h (98%)
 rename hw/block-common.h => include/hw/block/block.h (100%)
 rename {hw => include/hw/block}/fdc.h (100%)
 rename {hw => include/hw/block}/flash.h (100%)
 rename {hw => include/hw}/boards.h (100%)
 rename {hw => include/hw}/bt.h (100%)
 rename {hw => include/hw/char}/escc.h (100%)
 rename {hw => include/hw/char}/serial.h (100%)
 rename {hw => include/hw/cris}/etraxfs.h (98%)
 rename {hw => include/hw/cris}/etraxfs_dma.h (100%)
 rename {hw => include/hw}/elf_ops.h (100%)
 rename {hw => include/hw}/empty_slot.h (100%)
 rename {hw => include/hw}/hw.h (100%)
 rename {hw => include/hw/i2c}/i2c.h (100%)
 rename {hw => include/hw/i2c}/pm_smbus.h (100%)
 rename {hw => include/hw/i2c}/smbus.h (99%)
 rename {hw => include/hw/i386}/apic-msidef.h (100%)
 rename {hw => include/hw/i386}/apic.h (100%)
 rename {hw => include/hw/i386}/apic_internal.h (100%)
 rename {hw => include/hw/i386}/ich9.h (97%)
 rename {hw => include/hw/i386}/ioapic.h (100%)
 rename {hw => include/hw/i386}/ioapic_internal.h (100%)
 rename {hw => include/hw/i386}/pc.h (98%)
 rename {hw => include/hw/i386}/smbios.h (100%)
 rename {hw => include/hw}/ide.h (97%)
 rename {hw => include/hw/input}/adb.h (100%)
 rename {hw => include/hw/input}/hid.h (100%)
 rename {hw => include/hw/input}/ps2.h (100%)
 rename {hw => include/hw}/irq.h (100%)
 rename {hw => include/hw/isa}/apm.h (100%)
 rename {hw => include/hw/isa}/i8259_internal.h (98%)
 rename {hw => include/hw/isa}/isa.h (100%)
 rename {hw => include/hw/isa}/pc87312.h (98%)
 rename {hw => include/hw/isa}/vt82c686.h (100%)
 rename {hw => include/hw}/kvm/clock.h (100%)
 rename {hw => include/hw/lm32}/lm32_juart.h (100%)
 rename {hw => include/hw/lm32}/lm32_pic.h (100%)
 rename {hw => include/hw}/loader.h (100%)
 rename {hw => include/hw/m68k}/mcf.h (100%)
 rename hw/mips-bios.h => include/hw/mips/bios.h (100%)
 rename hw/mips_cpudevs.h => include/hw/mips/cpudevs.h (100%)
 rename {hw => include/hw/mips}/mips.h (100%)
 rename {hw => include/hw/misc}/tmp105_regs.h (100%)
 rename {hw => include/hw/nvram}/eeprom93xx.h (100%)
 rename {hw => include/hw/nvram}/fw_cfg.h (100%)
 rename hw/apb_pci.h => include/hw/pci/host-apb.h (100%)
 rename hw/ppce500_pci.h => include/hw/pci/host-ppce500.h (100%)
 rename hw/q35.h => include/hw/pci/host-q35.h (97%)
 rename hw/spapr_pci.h => include/hw/pci/host-spapr.h (99%)
 rename hw/alpha_sys.h => include/hw/pci/host-typhoon.h (95%)
 rename {hw => include/hw/pci}/pam.h (100%)
 rename {hw => include/hw}/pcmcia.h (100%)
 rename {hw => include/hw/ppc}/mac_dbdma.h (100%)
 rename {hw => include/hw/ppc}/openpic.h (100%)
 rename {hw => include/hw/ppc}/ppc.h (100%)
 rename {hw => include/hw/ppc}/ppc4xx.h (100%)
 rename {hw => include/hw/ppc}/spapr.h (99%)
 rename {hw => include/hw/ppc}/spapr_vio.h (100%)
 rename {hw => include/hw/ppc}/xics.h (100%)
 rename {hw => include/hw}/ptimer.h (100%)
 rename {hw => include/hw}/qdev-addr.h (100%)
 rename {hw => include/hw}/qdev-core.h (100%)
 rename {hw => include/hw}/qdev-dma.h (100%)
 rename {hw => include/hw}/qdev-properties.h (100%)
 rename {hw => include/hw}/qdev.h (100%)
 rename {hw => include/hw}/s390x/event-facility.h (100%)
 rename {hw => include/hw}/s390x/sclp.h (100%)
 rename {hw => include/hw/scsi}/esp.h (99%)
 rename {hw => include/hw/scsi}/scsi.h (99%)
 rename {hw => include/hw}/sd.h (100%)
 rename {hw => include/hw/sh4}/sh.h (98%)
 rename {hw => include/hw/sh4}/sh_intc.h (100%)
 rename {hw => include/hw/sparc}/firmware_abi.h (100%)
 rename {hw => include/hw/sparc}/grlib.h (100%)
 rename {hw => include/hw/sparc}/sparc32_dma.h (100%)
 rename {hw => include/hw/sparc}/sun4m.h (96%)
 rename {hw => include/hw}/ssi.h (100%)
 rename {hw => include/hw}/stream.h (100%)
 rename {hw => include/hw}/sysbus.h (100%)
 rename hw/hpet_emul.h => include/hw/timer/hpet.h (100%)
 rename {hw => include/hw/timer}/i8254.h (98%)
 rename {hw => include/hw/timer}/i8254_internal.h (98%)
 rename hw/nvram.h => include/hw/timer/m48t59.h (100%)
 rename {hw => include/hw/timer}/mc146818rtc.h (80%)
 rename {hw => include/hw/timer}/mc146818rtc_regs.h (100%)
 rename {hw => include/hw/unicore32}/puv3.h (100%)
 rename {hw => include/hw}/usb.h (100%)
 rename {hw => include/hw/virtio}/vhost.h (98%)
 rename hw/9pfs/virtio-9p-device.h => include/hw/virtio/virtio-9p.h (100%)
 rename {hw => include/hw/virtio}/virtio-balloon.h (98%)
 rename {hw => include/hw/virtio}/virtio-blk.h (98%)
 rename {hw => include/hw/virtio}/virtio-bus.h (99%)
 rename {hw => include/hw/virtio}/virtio-net.h (99%)
 rename {hw => include/hw/virtio}/virtio-rng.h (100%)
 rename {hw => include/hw/virtio}/virtio-scsi.h (97%)
 rename {hw => include/hw/virtio}/virtio-serial.h (99%)
 rename {hw => include/hw/virtio}/virtio.h (99%)
 rename {hw => include/hw/xen}/xen.h (100%)
 rename {hw => include/hw/xen}/xen_backend.h (99%)
 rename {hw => include/hw/xen}/xen_common.h (99%)
 rename {hw => include/hw}/xilinx.h (100%)
 rename {hw => include/net}/vhost_net.h (100%)
 rename {hw => include/sysemu}/watchdog.h (100%)

diff --git a/arch_init.c b/arch_init.c
index 98e2bc6..558c568 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -35,15 +35,15 @@
 #include "qemu/bitmap.h"
 #include "sysemu/arch_init.h"
 #include "audio/audio.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "sysemu/kvm.h"
 #include "migration/migration.h"
 #include "exec/gdbstub.h"
-#include "hw/smbios.h"
+#include "hw/i386/smbios.h"
 #include "exec/address-spaces.h"
-#include "hw/pcspk.h"
+#include "hw/audio/pcspk.h"
 #include "migration/page_cache.h"
 #include "qemu/config-file.h"
 #include "qmp-commands.h"
diff --git a/block/iscsi.c b/block/iscsi.c
index 3d52921..b33e40a 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -31,14 +31,14 @@
 #include "qemu/error-report.h"
 #include "block/block_int.h"
 #include "trace.h"
-#include "hw/scsi-defs.h"
+#include "block/scsi.h"
 
 #include <iscsi/iscsi.h>
 #include <iscsi/scsi-lowlevel.h>
 
 #ifdef __linux__
 #include <scsi/sg.h>
-#include <hw/scsi-defs.h>
+#include <block/scsi.h>
 #endif
 
 typedef struct IscsiLun {
diff --git a/blockdev-nbd.c b/blockdev-nbd.c
index dc4e9a2..95f10c8 100644
--- a/blockdev-nbd.c
+++ b/blockdev-nbd.c
@@ -10,7 +10,7 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "monitor/monitor.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/sysemu.h"
diff --git a/blockdev.c b/blockdev.c
index 09f76b7..51e6f4a 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -31,7 +31,7 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "block/blockjob.h"
 #include "monitor/monitor.h"
 #include "qapi/qmp/qerror.h"
diff --git a/exec.c b/exec.c
index 8a6aac3..2ae53d4 100644
--- a/exec.c
+++ b/exec.c
@@ -31,7 +31,7 @@
 #include "hw/qdev.h"
 #include "qemu/osdep.h"
 #include "sysemu/kvm.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "qemu/timer.h"
 #include "qemu/config-file.h"
 #include "exec/memory.h"
diff --git a/gdbstub.c b/gdbstub.c
index 43b7d4d..4c4226c 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1606,7 +1606,7 @@ static int cpu_gdb_write_register(CPUS390XState *env, uint8_t *mem_buf, int n)
 }
 #elif defined (TARGET_LM32)
 
-#include "hw/lm32_pic.h"
+#include "hw/lm32/lm32_pic.h"
 #define NUM_CORE_REGS (32 + 7)
 
 static int cpu_gdb_read_register(CPULM32State *env, uint8_t *mem_buf, int n)
diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
index d321c80..43f930e 100644
--- a/hw/9pfs/virtio-9p-device.c
+++ b/hw/9pfs/virtio-9p-device.c
@@ -11,8 +11,8 @@
  *
  */
 
-#include "hw/virtio.h"
-#include "hw/pc.h"
+#include "hw/virtio/virtio.h"
+#include "hw/i386/pc.h"
 #include "qemu/sockets.h"
 #include "virtio-9p.h"
 #include "fsdev/qemu-fsdev.h"
diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c
index e30fdb6..fe8e0ed 100644
--- a/hw/9pfs/virtio-9p-handle.c
+++ b/hw/9pfs/virtio-9p-handle.c
@@ -11,7 +11,7 @@
  *
  */
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "virtio-9p-xattr.h"
 #include <arpa/inet.h>
diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c
index f1b1c83..be898ec 100644
--- a/hw/9pfs/virtio-9p-local.c
+++ b/hw/9pfs/virtio-9p-local.c
@@ -11,7 +11,7 @@
  *
  */
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "virtio-9p-xattr.h"
 #include <arpa/inet.h>
diff --git a/hw/9pfs/virtio-9p-posix-acl.c b/hw/9pfs/virtio-9p-posix-acl.c
index 08bb0e8..339c5ec 100644
--- a/hw/9pfs/virtio-9p-posix-acl.c
+++ b/hw/9pfs/virtio-9p-posix-acl.c
@@ -13,7 +13,7 @@
 
 #include <sys/types.h>
 #include "qemu/xattr.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "fsdev/file-op-9p.h"
 #include "virtio-9p-xattr.h"
diff --git a/hw/9pfs/virtio-9p-proxy.c b/hw/9pfs/virtio-9p-proxy.c
index 7300279..8ba2959 100644
--- a/hw/9pfs/virtio-9p-proxy.c
+++ b/hw/9pfs/virtio-9p-proxy.c
@@ -11,7 +11,7 @@
  */
 #include <sys/socket.h>
 #include <sys/un.h>
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "qemu/error-report.h"
 #include "fsdev/qemu-fsdev.h"
diff --git a/hw/9pfs/virtio-9p-synth.c b/hw/9pfs/virtio-9p-synth.c
index e95a856..840e4eb 100644
--- a/hw/9pfs/virtio-9p-synth.c
+++ b/hw/9pfs/virtio-9p-synth.c
@@ -12,7 +12,7 @@
  *
  */
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "virtio-9p-xattr.h"
 #include "fsdev/qemu-fsdev.h"
diff --git a/hw/9pfs/virtio-9p-xattr-user.c b/hw/9pfs/virtio-9p-xattr-user.c
index 5bb6020..e0c92eb 100644
--- a/hw/9pfs/virtio-9p-xattr-user.c
+++ b/hw/9pfs/virtio-9p-xattr-user.c
@@ -12,7 +12,7 @@
  */
 
 #include <sys/types.h>
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "fsdev/file-op-9p.h"
 #include "virtio-9p-xattr.h"
diff --git a/hw/9pfs/virtio-9p-xattr.c b/hw/9pfs/virtio-9p-xattr.c
index a839606..90ae565 100644
--- a/hw/9pfs/virtio-9p-xattr.c
+++ b/hw/9pfs/virtio-9p-xattr.c
@@ -11,7 +11,7 @@
  *
  */
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "virtio-9p.h"
 #include "fsdev/file-op-9p.h"
 #include "virtio-9p-xattr.h"
diff --git a/hw/9pfs/virtio-9p.c b/hw/9pfs/virtio-9p.c
index 5cc4c92..db2ae32 100644
--- a/hw/9pfs/virtio-9p.c
+++ b/hw/9pfs/virtio-9p.c
@@ -11,8 +11,8 @@
  *
  */
 
-#include "hw/virtio.h"
-#include "hw/pc.h"
+#include "hw/virtio/virtio.h"
+#include "hw/i386/pc.h"
 #include "qemu/sockets.h"
 #include "virtio-9p.h"
 #include "fsdev/qemu-fsdev.h"
diff --git a/hw/9pfs/virtio-9p.h b/hw/9pfs/virtio-9p.h
index 52b1c69..95a8ec3 100644
--- a/hw/9pfs/virtio-9p.h
+++ b/hw/9pfs/virtio-9p.h
@@ -6,7 +6,7 @@
 #include <sys/time.h>
 #include <utime.h>
 #include <sys/resource.h>
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "fsdev/file-op-9p.h"
 #include "fsdev/virtio-9p-marshal.h"
 #include "qemu/thread.h"
diff --git a/hw/ac97.c b/hw/ac97.c
index c7d601f..ab68ec6 100644
--- a/hw/ac97.c
+++ b/hw/ac97.c
@@ -18,7 +18,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
 #include "hw/pci/pci.h"
 #include "sysemu/dma.h"
diff --git a/hw/acpi.c b/hw/acpi.c
index 53e47d5..ca7eac0 100644
--- a/hw/acpi.c
+++ b/hw/acpi.c
@@ -20,8 +20,8 @@
  */
 #include "sysemu/sysemu.h"
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/acpi.h"
+#include "hw/i386/pc.h"
+#include "hw/acpi/acpi.h"
 #include "monitor/monitor.h"
 
 struct acpi_table_header {
diff --git a/hw/acpi_ich9.c b/hw/acpi_ich9.c
index 29f84ff..5debbd8 100644
--- a/hw/acpi_ich9.c
+++ b/hw/acpi_ich9.c
@@ -24,15 +24,15 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/acpi.h"
+#include "hw/acpi/acpi.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
 
-#include "hw/ich9.h"
+#include "hw/i386/ich9.h"
 
 //#define DEBUG
 
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index 7a4b712..ab38751 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -19,15 +19,15 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/apm.h"
-#include "hw/pm_smbus.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/apm.h"
+#include "hw/i2c/pm_smbus.h"
 #include "hw/pci/pci.h"
-#include "hw/acpi.h"
+#include "hw/acpi/acpi.h"
 #include "sysemu/sysemu.h"
 #include "qemu/range.h"
 #include "exec/ioport.h"
-#include "hw/fw_cfg.h"
+#include "hw/nvram/fw_cfg.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG
diff --git a/hw/adb.c b/hw/adb.c
index fd9052c..a75d3fd 100644
--- a/hw/adb.c
+++ b/hw/adb.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/adb.h"
+#include "hw/input/adb.h"
 #include "ui/console.h"
 
 /* debug ADB */
diff --git a/hw/adlib.c b/hw/adlib.c
index e6bce59..133c0ff 100644
--- a/hw/adlib.c
+++ b/hw/adlib.c
@@ -23,9 +23,9 @@
  */
 
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 //#define DEBUG
 
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 13aaa57..b1ea802 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -10,12 +10,12 @@
 #include "elf.h"
 #include "hw/loader.h"
 #include "hw/boards.h"
-#include "hw/alpha_sys.h"
+#include "hw/pci/host-typhoon.h"
 #include "sysemu/sysemu.h"
-#include "hw/mc146818rtc.h"
+#include "hw/timer/mc146818rtc.h"
 #include "hw/ide.h"
-#include "hw/i8254.h"
-#include "hw/serial.h"
+#include "hw/timer/i8254.h"
+#include "hw/char/serial.h"
 
 #define MAX_IDE_BUS 2
 
diff --git a/hw/alpha/pci.c b/hw/alpha/pci.c
index 8462868..0b9ef83 100644
--- a/hw/alpha/pci.c
+++ b/hw/alpha/pci.c
@@ -7,7 +7,7 @@
  */
 
 #include "config.h"
-#include "hw/alpha_sys.h"
+#include "hw/pci/host-typhoon.h"
 #include "qemu/log.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/alpha_typhoon.c b/hw/alpha_typhoon.c
index 770dc8c..54060a8 100644
--- a/hw/alpha_typhoon.c
+++ b/hw/alpha_typhoon.c
@@ -9,9 +9,9 @@
 #include "cpu.h"
 #include "exec/exec-all.h"
 #include "hw/hw.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "sysemu/sysemu.h"
-#include "hw/alpha_sys.h"
+#include "hw/pci/host-typhoon.h"
 #include "exec/address-spaces.h"
 
 
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 7992d6f..672a9fc 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -31,7 +31,7 @@
 #include "hw/pci/pci_host.h"
 #include "hw/pci/pci_bridge.h"
 #include "hw/pci/pci_bus.h"
-#include "hw/apb_pci.h"
+#include "hw/pci/host-apb.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/apic.c b/hw/apic.c
index d2395f0..2d79a9e 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -17,14 +17,14 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>
  */
 #include "qemu/thread.h"
-#include "hw/apic_internal.h"
-#include "hw/apic.h"
-#include "hw/ioapic.h"
+#include "hw/i386/apic_internal.h"
+#include "hw/i386/apic.h"
+#include "hw/i386/ioapic.h"
 #include "hw/pci/msi.h"
 #include "qemu/host-utils.h"
 #include "trace.h"
-#include "hw/pc.h"
-#include "hw/apic-msidef.h"
+#include "hw/i386/pc.h"
+#include "hw/i386/apic-msidef.h"
 
 #define MAX_APIC_WORDS 8
 
diff --git a/hw/apic_common.c b/hw/apic_common.c
index d0c2616..8d0982d 100644
--- a/hw/apic_common.c
+++ b/hw/apic_common.c
@@ -17,8 +17,8 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, see <http://www.gnu.org/licenses/>
  */
-#include "hw/apic.h"
-#include "hw/apic_internal.h"
+#include "hw/i386/apic.h"
+#include "hw/i386/apic_internal.h"
 #include "trace.h"
 #include "sysemu/kvm.h"
 
diff --git a/hw/apm.c b/hw/apm.c
index e2846f9..5f21d21 100644
--- a/hw/apm.c
+++ b/hw/apm.c
@@ -20,7 +20,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw/apm.h"
+#include "hw/isa/apm.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
 
diff --git a/hw/applesmc.c b/hw/applesmc.c
index 44b9bac..c29558b 100644
--- a/hw/applesmc.c
+++ b/hw/applesmc.c
@@ -31,7 +31,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
 
diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
index 1d5bb59..a4bdd5f 100644
--- a/hw/arm/armv7m.c
+++ b/hw/arm/armv7m.c
@@ -8,7 +8,7 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "hw/loader.h"
 #include "elf.h"
 
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index 43253fd..c79c590 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -9,7 +9,7 @@
 
 #include "config.h"
 #include "hw/hw.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
diff --git a/hw/arm/collie.c b/hw/arm/collie.c
index 17fddc8..76eda8e 100644
--- a/hw/arm/collie.c
+++ b/hw/arm/collie.c
@@ -11,10 +11,10 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/boards.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/strongarm.h"
-#include "hw/arm-misc.h"
-#include "hw/flash.h"
+#include "hw/arm.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index 4592514..78b8b74 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -24,9 +24,9 @@
 #include "hw/boards.h"
 #include "sysemu/sysemu.h"
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "hw/loader.h"
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 #include "hw/usb/hcd-ehci.h"
 
 #define EXYNOS4210_CHIPID_ADDR         0x10000000
diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c
index 473da34..ba14a1f 100644
--- a/hw/arm/exynos4_boards.c
+++ b/hw/arm/exynos4_boards.c
@@ -24,9 +24,9 @@
 #include "sysemu/sysemu.h"
 #include "hw/sysbus.h"
 #include "net/net.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "exec/address-spaces.h"
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 #include "hw/boards.h"
 
 #undef DEBUG
diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c
index 8859b73..4d800c9 100644
--- a/hw/arm/gumstix.c
+++ b/hw/arm/gumstix.c
@@ -35,10 +35,10 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "net/net.h"
-#include "hw/flash.h"
-#include "hw/devices.h"
+#include "hw/block/flash.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index a622224..58f73c1 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -18,8 +18,8 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "hw/loader.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c
index e0ba327..8d0fb75 100644
--- a/hw/arm/integratorcp.c
+++ b/hw/arm/integratorcp.c
@@ -8,9 +8,9 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "net/net.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/arm/kzm.c b/hw/arm/kzm.c
index ec50a31..46264cd 100644
--- a/hw/arm/kzm.c
+++ b/hw/arm/kzm.c
@@ -16,13 +16,13 @@
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 #include "hw/hw.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/serial.h"
-#include "hw/imx.h"
+#include "hw/char/serial.h"
+#include "hw/arm/imx.h"
 
     /* Memory map for Kzm Emulation Baseboard:
      * 0x00000000-0x00003fff 16k secure ROM       IGNORED
diff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c
index aea908f..b78e6f0 100644
--- a/hw/arm/mainstone.c
+++ b/hw/arm/mainstone.c
@@ -12,12 +12,12 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/pxa.h"
-#include "hw/arm-misc.h"
+#include "hw/arm/pxa.h"
+#include "hw/arm.h"
 #include "net/net.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index edd5282..620b3cc 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -10,18 +10,18 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
 #include "block/block.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "ui/console.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 #include "ui/pixel_ops.h"
diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c
index 6747c1c..13fb98f 100644
--- a/hw/arm/nseries.c
+++ b/hw/arm/nseries.c
@@ -20,14 +20,14 @@
 
 #include "qemu-common.h"
 #include "sysemu/sysemu.h"
-#include "hw/omap.h"
-#include "hw/arm-misc.h"
+#include "hw/arm/omap.h"
+#include "hw/arm.h"
 #include "hw/irq.h"
 #include "ui/console.h"
 #include "hw/boards.h"
-#include "hw/i2c.h"
-#include "hw/devices.h"
-#include "hw/flash.h"
+#include "hw/i2c/i2c.h"
+#include "hw/arm/devices.h"
+#include "hw/block/flash.h"
 #include "hw/hw.h"
 #include "hw/bt.h"
 #include "hw/loader.h"
diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c
index 3245c62..17caa61 100644
--- a/hw/arm/omap1.c
+++ b/hw/arm/omap1.c
@@ -17,10 +17,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/arm-misc.h"
-#include "hw/omap.h"
+#include "hw/arm.h"
+#include "hw/arm/omap.h"
 #include "sysemu/sysemu.h"
-#include "hw/soc_dma.h"
+#include "hw/arm/soc_dma.h"
 #include "sysemu/blockdev.h"
 #include "qemu/range.h"
 #include "hw/sysbus.h"
diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
index 0a2cd7b..010c483 100644
--- a/hw/arm/omap2.c
+++ b/hw/arm/omap2.c
@@ -20,13 +20,13 @@
 
 #include "sysemu/blockdev.h"
 #include "hw/hw.h"
-#include "hw/arm-misc.h"
-#include "hw/omap.h"
+#include "hw/arm.h"
+#include "hw/arm/omap.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
 #include "char/char.h"
-#include "hw/flash.h"
-#include "hw/soc_dma.h"
+#include "hw/block/flash.h"
+#include "hw/arm/soc_dma.h"
 #include "hw/sysbus.h"
 #include "audio/audio.h"
 
diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c
index 8598233..aa85602 100644
--- a/hw/arm/omap_sx1.c
+++ b/hw/arm/omap_sx1.c
@@ -27,10 +27,10 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/boards.h"
-#include "hw/arm-misc.h"
-#include "hw/flash.h"
+#include "hw/arm.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/arm/palm.c b/hw/arm/palm.c
index baeb585..0bc11ae 100644
--- a/hw/arm/palm.c
+++ b/hw/arm/palm.c
@@ -20,10 +20,10 @@
 #include "audio/audio.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/boards.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "hw/loader.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/arm/pic_cpu.c b/hw/arm/pic_cpu.c
index 3a3f065..787767f 100644
--- a/hw/arm/pic_cpu.c
+++ b/hw/arm/pic_cpu.c
@@ -8,7 +8,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "sysemu/kvm.h"
 
 /* Input 0 is IRQ and input 1 is FIQ.  */
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index 7467cca..bce1a7f 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -8,10 +8,10 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "sysemu/sysemu.h"
-#include "hw/serial.h"
-#include "hw/i2c.h"
+#include "hw/char/serial.h"
+#include "hw/i2c/i2c.h"
 #include "hw/ssi.h"
 #include "char/char.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c
index 55ebcd7..fa31575 100644
--- a/hw/arm/pxa2xx_gpio.c
+++ b/hw/arm/pxa2xx_gpio.c
@@ -9,7 +9,7 @@
 
 #include "hw/hw.h"
 #include "hw/sysbus.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 
 #define PXA2XX_GPIO_BANKS	4
 
diff --git a/hw/arm/pxa2xx_pic.c b/hw/arm/pxa2xx_pic.c
index 25e9089..835d07c 100644
--- a/hw/arm/pxa2xx_pic.c
+++ b/hw/arm/pxa2xx_pic.c
@@ -9,7 +9,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "hw/sysbus.h"
 
 #define ICIP	0x00	/* Interrupt Controller IRQ Pending register */
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index 5fb490c..afd52d3 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -8,14 +8,14 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
-#include "hw/primecell.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/primecell.h"
+#include "hw/arm/devices.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
index f5832be..fa434dc 100644
--- a/hw/arm/spitz.c
+++ b/hw/arm/spitz.c
@@ -11,16 +11,16 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
-#include "hw/arm-misc.h"
+#include "hw/arm/pxa.h"
+#include "hw/arm.h"
 #include "sysemu/sysemu.h"
 #include "hw/pcmcia.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "hw/ssi.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "qemu/timer.h"
-#include "hw/devices.h"
-#include "hw/sharpsl.h"
+#include "hw/arm/devices.h"
+#include "hw/arm/sharpsl.h"
 #include "ui/console.h"
 #include "block/block.h"
 #include "audio/audio.h"
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
index f4ce794..952087c 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -9,10 +9,10 @@
 
 #include "hw/sysbus.h"
 #include "hw/ssi.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "qemu/timer.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "net/net.h"
 #include "hw/boards.h"
 #include "exec/address-spaces.h"
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
index 747888c..c4362d4 100644
--- a/hw/arm/tosa.c
+++ b/hw/arm/tosa.c
@@ -12,14 +12,14 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
-#include "hw/sharpsl.h"
+#include "hw/arm/pxa.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
+#include "hw/arm/sharpsl.h"
 #include "hw/pcmcia.h"
 #include "block/block.h"
 #include "hw/boards.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "hw/ssi.h"
 #include "sysemu/blockdev.h"
 #include "hw/sysbus.h"
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index baaa265..d9be604 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -8,16 +8,16 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/pci/pci.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "hw/boards.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 
 #define VERSATILE_FLASH_ADDR 0x34000000
 #define VERSATILE_FLASH_SIZE (64 * 1024 * 1024)
diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 2e1a5d0..96e0985 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -22,15 +22,15 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
-#include "hw/primecell.h"
-#include "hw/devices.h"
+#include "hw/arm.h"
+#include "hw/arm/primecell.h"
+#include "hw/arm/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
 #include "exec/address-spaces.h"
 #include "sysemu/blockdev.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 
 #define VEXPRESS_BOARD_ID 0x8e0
 #define VEXPRESS_FLASH_SIZE (64 * 1024 * 1024)
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index 6f36286..93dbfe2 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -16,12 +16,12 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "net/net.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "hw/loader.h"
 #include "hw/ssi.h"
diff --git a/hw/arm/z2.c b/hw/arm/z2.c
index cbb6d80..3e27208 100644
--- a/hw/arm/z2.c
+++ b/hw/arm/z2.c
@@ -12,14 +12,14 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
-#include "hw/arm-misc.h"
-#include "hw/devices.h"
-#include "hw/i2c.h"
+#include "hw/arm/pxa.h"
+#include "hw/arm.h"
+#include "hw/arm/devices.h"
+#include "hw/i2c/i2c.h"
 #include "hw/ssi.h"
 #include "hw/boards.h"
 #include "sysemu/sysemu.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "ui/console.h"
 #include "audio/audio.h"
diff --git a/hw/arm_sysctl.c b/hw/arm_sysctl.c
index 25fc6ea..c8b55a8 100644
--- a/hw/arm_sysctl.c
+++ b/hw/arm_sysctl.c
@@ -11,7 +11,7 @@
 #include "qemu/timer.h"
 #include "qemu/bitops.h"
 #include "hw/sysbus.h"
-#include "hw/primecell.h"
+#include "hw/arm/primecell.h"
 #include "sysemu/sysemu.h"
 
 #define LOCK_VALUE 0xa05f
diff --git a/hw/armv7m_nvic.c b/hw/armv7m_nvic.c
index d198cfd..39d727e 100644
--- a/hw/armv7m_nvic.c
+++ b/hw/armv7m_nvic.c
@@ -12,7 +12,7 @@
 
 #include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "exec/address-spaces.h"
 #include "hw/arm_gic_internal.h"
 
diff --git a/hw/bitbang_i2c.h b/hw/bitbang_i2c.h
index e860627..2866ac3 100644
--- a/hw/bitbang_i2c.h
+++ b/hw/bitbang_i2c.h
@@ -1,7 +1,7 @@
 #ifndef BITBANG_I2C_H
 #define BITBANG_I2C_H
 
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 typedef struct bitbang_i2c_interface bitbang_i2c_interface;
 
diff --git a/hw/blizzard.c b/hw/blizzard.c
index 020d3de..bdb0b15 100644
--- a/hw/blizzard.c
+++ b/hw/blizzard.c
@@ -20,7 +20,7 @@
 
 #include "qemu-common.h"
 #include "ui/console.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 
diff --git a/hw/block-common.c b/hw/block-common.c
index d21ec3a..33dd3f3 100644
--- a/hw/block-common.c
+++ b/hw/block-common.c
@@ -8,7 +8,7 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "qemu/error-report.h"
 
 void blkconf_serial(BlockConf *conf, char **serial)
diff --git a/hw/bonito.c b/hw/bonito.c
index 3456e78..e7f001b 100644
--- a/hw/bonito.c
+++ b/hw/bonito.c
@@ -41,8 +41,8 @@
 
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
-#include "hw/pc.h"
-#include "hw/mips.h"
+#include "hw/i386/pc.h"
+#include "hw/mips/mips.h"
 #include "hw/pci/pci_host.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
diff --git a/hw/bt-hid.c b/hw/bt-hid.c
index 69ccf9b..af494e1 100644
--- a/hw/bt-hid.c
+++ b/hw/bt-hid.c
@@ -21,7 +21,7 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "hw/hid.h"
+#include "hw/input/hid.h"
 #include "hw/bt.h"
 
 enum hid_transaction_req {
diff --git a/hw/cbus.c b/hw/cbus.c
index 29b467b..3d9027f 100644
--- a/hw/cbus.c
+++ b/hw/cbus.c
@@ -22,7 +22,7 @@
 
 #include "qemu-common.h"
 #include "hw/irq.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "sysemu/sysemu.h"
 
 //#define DEBUG
diff --git a/hw/cdrom.c b/hw/cdrom.c
index a018eec..38469fa 100644
--- a/hw/cdrom.c
+++ b/hw/cdrom.c
@@ -26,7 +26,7 @@
    here.  */
 
 #include "qemu-common.h"
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 
 static void lba_to_msf(uint8_t *buf, int lba)
 {
diff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c
index eccd423..00daceb 100644
--- a/hw/cris/axis_dev88.c
+++ b/hw/cris/axis_dev88.c
@@ -24,9 +24,9 @@
 
 #include "hw/sysbus.h"
 #include "net/net.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "hw/boards.h"
-#include "hw/etraxfs.h"
+#include "hw/cris/etraxfs.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/cris-boot.h"
diff --git a/hw/cris/pic_cpu.c b/hw/cris/pic_cpu.c
index 85c68c0..bd47bf1 100644
--- a/hw/cris/pic_cpu.c
+++ b/hw/cris/pic_cpu.c
@@ -24,7 +24,7 @@
 
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/etraxfs.h"
+#include "hw/cris/etraxfs.h"
 
 #define D(x)
 
diff --git a/hw/cs4231a.c b/hw/cs4231a.c
index f005f25..5711b62 100644
--- a/hw/cs4231a.c
+++ b/hw/cs4231a.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/qdev.h"
 #include "qemu/timer.h"
 
diff --git a/hw/cuda.c b/hw/cuda.c
index 2ae430d..f797796 100644
--- a/hw/cuda.c
+++ b/hw/cuda.c
@@ -24,7 +24,7 @@
  */
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
-#include "hw/adb.h"
+#include "hw/input/adb.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/dataplane/virtio-blk.c b/hw/dataplane/virtio-blk.c
index 1242d61..3b12df7 100644
--- a/hw/dataplane/virtio-blk.c
+++ b/hw/dataplane/virtio-blk.c
@@ -20,8 +20,8 @@
 #include "ioq.h"
 #include "migration/migration.h"
 #include "block/block.h"
-#include "hw/virtio-blk.h"
-#include "hw/dataplane/virtio-blk.h"
+#include "hw/virtio/virtio-blk.h"
+#include "virtio-blk.h"
 #include "block/aio.h"
 
 enum {
diff --git a/hw/dataplane/virtio-blk.h b/hw/dataplane/virtio-blk.h
index 1e8fdfe..c90e99f 100644
--- a/hw/dataplane/virtio-blk.h
+++ b/hw/dataplane/virtio-blk.h
@@ -15,7 +15,7 @@
 #ifndef HW_DATAPLANE_VIRTIO_BLK_H
 #define HW_DATAPLANE_VIRTIO_BLK_H
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 
 typedef struct VirtIOBlockDataPlane VirtIOBlockDataPlane;
 
diff --git a/hw/dataplane/vring.h b/hw/dataplane/vring.h
index defb1ef..9380cb5 100644
--- a/hw/dataplane/vring.h
+++ b/hw/dataplane/vring.h
@@ -20,7 +20,7 @@
 #include <linux/virtio_ring.h>
 #include "qemu-common.h"
 #include "hostmem.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 
 typedef struct {
     HostMem hostmem;                /* guest memory mapper */
diff --git a/hw/debugcon.c b/hw/debugcon.c
index cab7691..0588eeb 100644
--- a/hw/debugcon.c
+++ b/hw/debugcon.c
@@ -26,8 +26,8 @@
 
 #include "hw/hw.h"
 #include "char/char.h"
-#include "hw/isa.h"
-#include "hw/pc.h"
+#include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
 
 #define TYPE_ISA_DEBUGCON_DEVICE "isa-debugcon"
 #define ISA_DEBUGCON_DEVICE(obj) \
diff --git a/hw/debugexit.c b/hw/debugexit.c
index ba67a8f..59bed5b 100644
--- a/hw/debugexit.c
+++ b/hw/debugexit.c
@@ -8,7 +8,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 #define TYPE_ISA_DEBUG_EXIT_DEVICE "isa-debug-exit"
 #define ISA_DEBUG_EXIT_DEVICE(obj) \
diff --git a/hw/dma.c b/hw/dma.c
index fd1161c..eb60d45 100644
--- a/hw/dma.c
+++ b/hw/dma.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "qemu/main-loop.h"
 
 /* #define DEBUG_DMA */
diff --git a/hw/dp8393x.c b/hw/dp8393x.c
index 8b5ca6a..2289f08 100644
--- a/hw/dp8393x.c
+++ b/hw/dp8393x.c
@@ -20,7 +20,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "net/net.h"
-#include "hw/mips.h"
+#include "hw/mips/mips.h"
 
 //#define DEBUG_SONIC
 
diff --git a/hw/ds1338.c b/hw/ds1338.c
index ae7ca9f..8987cdc 100644
--- a/hw/ds1338.c
+++ b/hw/ds1338.c
@@ -10,7 +10,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 /* Size of NVRAM including both the user-accessible area and the
  * secondary register area.
diff --git a/hw/ecc.c b/hw/ecc.c
index 8c97c33..8c888cc 100644
--- a/hw/ecc.c
+++ b/hw/ecc.c
@@ -12,7 +12,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 
 /*
  * Pre-calculated 256-way 1 byte column parity.  Table borrowed from Linux.
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 68d729c..dc99ea6 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -44,7 +44,7 @@
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
-#include "hw/eeprom93xx.h"
+#include "hw/nvram/eeprom93xx.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/eeprom93xx.c b/hw/eeprom93xx.c
index 39f5605..08f4df5 100644
--- a/hw/eeprom93xx.c
+++ b/hw/eeprom93xx.c
@@ -36,7 +36,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/eeprom93xx.h"
+#include "hw/nvram/eeprom93xx.h"
 
 /* Debug EEPROM emulation. */
 //~ #define DEBUG_EEPROM
diff --git a/hw/es1370.c b/hw/es1370.c
index e64cf23..9fe5708 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -27,7 +27,7 @@
 #define SILENT_ES1370
 
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
 #include "hw/pci/pci.h"
 #include "sysemu/dma.h"
diff --git a/hw/escc.c b/hw/escc.c
index baf0219..067b055 100644
--- a/hw/escc.c
+++ b/hw/escc.c
@@ -24,7 +24,7 @@
 
 #include "hw/hw.h"
 #include "hw/sysbus.h"
-#include "hw/escc.h"
+#include "hw/char/escc.h"
 #include "char/char.h"
 #include "ui/console.h"
 #include "trace.h"
diff --git a/hw/esp-pci.c b/hw/esp-pci.c
index 7599b39..3ca5c8c 100644
--- a/hw/esp-pci.c
+++ b/hw/esp-pci.c
@@ -24,8 +24,8 @@
  */
 
 #include "hw/pci/pci.h"
-#include "hw/eeprom93xx.h"
-#include "hw/esp.h"
+#include "hw/nvram/eeprom93xx.h"
+#include "hw/scsi/esp.h"
 #include "trace.h"
 #include "qemu/log.h"
 
diff --git a/hw/esp.c b/hw/esp.c
index 5365eac..17adbec 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -24,7 +24,7 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/esp.h"
+#include "hw/scsi/esp.h"
 #include "trace.h"
 #include "qemu/log.h"
 
diff --git a/hw/etraxfs_dma.c b/hw/etraxfs_dma.c
index a84ec1f..6a8c222 100644
--- a/hw/etraxfs_dma.c
+++ b/hw/etraxfs_dma.c
@@ -28,7 +28,7 @@
 #include "qemu-common.h"
 #include "sysemu/sysemu.h"
 
-#include "hw/etraxfs_dma.h"
+#include "hw/cris/etraxfs_dma.h"
 
 #define D(x)
 
diff --git a/hw/etraxfs_eth.c b/hw/etraxfs_eth.c
index 591bee2..1039913 100644
--- a/hw/etraxfs_eth.c
+++ b/hw/etraxfs_eth.c
@@ -25,7 +25,7 @@
 #include <stdio.h>
 #include "hw/sysbus.h"
 #include "net/net.h"
-#include "hw/etraxfs.h"
+#include "hw/cris/etraxfs.h"
 
 #define D(x)
 
diff --git a/hw/exynos4210_combiner.c b/hw/exynos4210_combiner.c
index 5818f10..6874287 100644
--- a/hw/exynos4210_combiner.c
+++ b/hw/exynos4210_combiner.c
@@ -29,7 +29,7 @@
 
 #include "hw/sysbus.h"
 
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 //#define DEBUG_COMBINER
 
diff --git a/hw/exynos4210_gic.c b/hw/exynos4210_gic.c
index 807849c..bad6dde 100644
--- a/hw/exynos4210_gic.c
+++ b/hw/exynos4210_gic.c
@@ -23,7 +23,7 @@
 #include "hw/sysbus.h"
 #include "qemu-common.h"
 #include "hw/irq.h"
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 enum ExtGicId {
     EXT_GIC_ID_MDMA_LCD0 = 66,
diff --git a/hw/exynos4210_i2c.c b/hw/exynos4210_i2c.c
index 9e42875..196f889 100644
--- a/hw/exynos4210_i2c.c
+++ b/hw/exynos4210_i2c.c
@@ -22,7 +22,7 @@
 
 #include "qemu/timer.h"
 #include "hw/sysbus.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 #ifndef EXYNOS4_I2C_DEBUG
 #define EXYNOS4_I2C_DEBUG                 0
diff --git a/hw/exynos4210_mct.c b/hw/exynos4210_mct.c
index 862c962..87ce75b 100644
--- a/hw/exynos4210_mct.c
+++ b/hw/exynos4210_mct.c
@@ -57,7 +57,7 @@
 #include "qemu-common.h"
 #include "hw/ptimer.h"
 
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 //#define DEBUG_MCT
 
diff --git a/hw/exynos4210_pwm.c b/hw/exynos4210_pwm.c
index 6d74cd4..185ccb9 100644
--- a/hw/exynos4210_pwm.c
+++ b/hw/exynos4210_pwm.c
@@ -25,7 +25,7 @@
 #include "qemu-common.h"
 #include "hw/ptimer.h"
 
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 //#define DEBUG_PWM
 
diff --git a/hw/exynos4210_rtc.c b/hw/exynos4210_rtc.c
index d170ca7..bceee44 100644
--- a/hw/exynos4210_rtc.c
+++ b/hw/exynos4210_rtc.c
@@ -34,7 +34,7 @@
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 #define DEBUG_RTC 0
 
diff --git a/hw/exynos4210_uart.c b/hw/exynos4210_uart.c
index 006f3d4..8b4e72c 100644
--- a/hw/exynos4210_uart.c
+++ b/hw/exynos4210_uart.c
@@ -23,7 +23,7 @@
 #include "sysemu/sysemu.h"
 #include "char/char.h"
 
-#include "hw/exynos4210.h"
+#include "hw/arm/exynos4210.h"
 
 #undef DEBUG_UART
 #undef DEBUG_UART_EXTEND
diff --git a/hw/fdc.c b/hw/fdc.c
index a4bb129..1ed874f 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -28,10 +28,10 @@
  */
 
 #include "hw/hw.h"
-#include "hw/fdc.h"
+#include "hw/block/fdc.h"
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
 #include "hw/qdev-addr.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 63a1998..97bba87 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -23,8 +23,8 @@
  */
 #include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "hw/isa.h"
-#include "hw/fw_cfg.h"
+#include "hw/isa/isa.h"
+#include "hw/nvram/fw_cfg.h"
 #include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/error-report.h"
diff --git a/hw/grlib_irqmp.c b/hw/grlib_irqmp.c
index 7ee469d..68dfe6a 100644
--- a/hw/grlib_irqmp.c
+++ b/hw/grlib_irqmp.c
@@ -27,7 +27,7 @@
 #include "hw/sysbus.h"
 #include "cpu.h"
 
-#include "hw/grlib.h"
+#include "hw/sparc/grlib.h"
 
 #include "trace.h"
 
diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c
index c73a58a..e00cad6 100644
--- a/hw/gt64xxx.c
+++ b/hw/gt64xxx.c
@@ -23,10 +23,10 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips.h"
+#include "hw/mips/mips.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG
diff --git a/hw/gus.c b/hw/gus.c
index d268224..e44704b 100644
--- a/hw/gus.c
+++ b/hw/gus.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/gusemu.h"
 #include "hw/gustate.h"
 
diff --git a/hw/hd-geometry.c b/hw/hd-geometry.c
index c305143..6feb4f8 100644
--- a/hw/hd-geometry.c
+++ b/hw/hd-geometry.c
@@ -31,7 +31,7 @@
  */
 
 #include "block/block.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "trace.h"
 
 struct partition {
diff --git a/hw/hid.c b/hw/hid.c
index 28b3474..5fbde98 100644
--- a/hw/hid.c
+++ b/hw/hid.c
@@ -25,7 +25,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
-#include "hw/hid.h"
+#include "hw/input/hid.h"
 
 #define HID_USAGE_ERROR_ROLLOVER        0x01
 #define HID_USAGE_POSTFAIL              0x02
diff --git a/hw/hpet.c b/hw/hpet.c
index 6bfbf3a..95dd01d 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -25,13 +25,13 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
-#include "hw/hpet_emul.h"
+#include "hw/timer/hpet.h"
 #include "hw/sysbus.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
 
 //#define HPET_DEBUG
 #ifdef HPET_DEBUG
diff --git a/hw/i2c.c b/hw/i2c.c
index ad361cc..0c4fc1d 100644
--- a/hw/i2c.c
+++ b/hw/i2c.c
@@ -7,7 +7,7 @@
  * This code is licensed under the LGPL.
  */
 
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 struct i2c_bus
 {
diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index c151c95..60c481d 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -11,7 +11,7 @@
 #include "sysemu/sysemu.h"
 #include "sysemu/cpus.h"
 #include "sysemu/kvm.h"
-#include "hw/apic_internal.h"
+#include "hw/i386/apic_internal.h"
 
 #define APIC_DEFAULT_ADDRESS    0xfee00000
 
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index 3cb228f..c7f01df 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -23,7 +23,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/fw_cfg.h"
+#include "hw/nvram/fw_cfg.h"
 #include "hw/multiboot.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ed7d9ba..cb8623c 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -22,30 +22,30 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/apic.h"
-#include "hw/fdc.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/i386/apic.h"
+#include "hw/block/fdc.h"
 #include "hw/ide.h"
 #include "hw/pci/pci.h"
 #include "monitor/monitor.h"
-#include "hw/fw_cfg.h"
-#include "hw/hpet_emul.h"
-#include "hw/smbios.h"
+#include "hw/nvram/fw_cfg.h"
+#include "hw/timer/hpet.h"
+#include "hw/i386/smbios.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/multiboot.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
-#include "hw/pcspk.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
+#include "hw/audio/pcspk.h"
 #include "hw/pci/msi.h"
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/kvm.h"
 #include "kvm_i386.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "ui/qemu-spice.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 0abc9f1..cff8013 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -25,8 +25,8 @@
 #include <glib.h>
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/apic.h"
+#include "hw/i386/pc.h"
+#include "hw/i386/apic.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_ids.h"
 #include "hw/usb.h"
@@ -39,8 +39,8 @@
 #include "hw/sysbus.h"
 #include "sysemu/arch_init.h"
 #include "sysemu/blockdev.h"
-#include "hw/smbus.h"
-#include "hw/xen.h"
+#include "hw/i2c/smbus.h"
+#include "hw/xen/xen.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 #include "cpu.h"
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 4f5f347..f2c912f 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -29,15 +29,15 @@
  */
 #include "hw/hw.h"
 #include "sysemu/arch_init.h"
-#include "hw/smbus.h"
+#include "hw/i2c/smbus.h"
 #include "hw/boards.h"
-#include "hw/mc146818rtc.h"
-#include "hw/xen.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/xen/xen.h"
 #include "sysemu/kvm.h"
 #include "hw/kvm/clock.h"
-#include "hw/q35.h"
+#include "hw/pci/host-q35.h"
 #include "exec/address-spaces.h"
-#include "hw/ich9.h"
+#include "hw/i386/ich9.h"
 #include "hw/ide/pci.h"
 #include "hw/ide/ahci.h"
 #include "hw/usb.h"
diff --git a/hw/i386/smbios.c b/hw/i386/smbios.c
index 672ee9b..c00bb2f 100644
--- a/hw/i386/smbios.c
+++ b/hw/i386/smbios.c
@@ -14,7 +14,7 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "hw/smbios.h"
+#include "hw/i386/smbios.h"
 #include "hw/loader.h"
 
 /*
diff --git a/hw/i386/xen_domainbuild.c b/hw/i386/xen_domainbuild.c
index d477061..ed90b4b 100644
--- a/hw/i386/xen_domainbuild.c
+++ b/hw/i386/xen_domainbuild.c
@@ -1,5 +1,5 @@
 #include <signal.h>
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_domainbuild.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c
index 37ba34e..fdd9374 100644
--- a/hw/i386/xen_machine_pv.c
+++ b/hw/i386/xen_machine_pv.c
@@ -23,9 +23,9 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/boards.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_domainbuild.h"
 #include "sysemu/blockdev.h"
 
diff --git a/hw/i82374.c b/hw/i82374.c
index 22115e4..835639d 100644
--- a/hw/i82374.c
+++ b/hw/i82374.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 //#define DEBUG_I82374
 
diff --git a/hw/i82378.c b/hw/i82378.c
index 6f8c48b..cced9af 100644
--- a/hw/i82378.c
+++ b/hw/i82378.c
@@ -18,9 +18,9 @@
  */
 
 #include "hw/pci/pci.h"
-#include "hw/pc.h"
-#include "hw/i8254.h"
-#include "hw/pcspk.h"
+#include "hw/i386/pc.h"
+#include "hw/timer/i8254.h"
+#include "hw/audio/pcspk.h"
 
 //#define DEBUG_I82378
 
diff --git a/hw/i8254.c b/hw/i8254.c
index 67bfc6a..20c0c36 100644
--- a/hw/i8254.c
+++ b/hw/i8254.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "qemu/timer.h"
-#include "hw/i8254.h"
-#include "hw/i8254_internal.h"
+#include "hw/timer/i8254.h"
+#include "hw/timer/i8254_internal.h"
 
 //#define DEBUG_PIT
 
diff --git a/hw/i8254_common.c b/hw/i8254_common.c
index c6c0c80..5342df4 100644
--- a/hw/i8254_common.c
+++ b/hw/i8254_common.c
@@ -23,11 +23,11 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "qemu/timer.h"
-#include "hw/i8254.h"
-#include "hw/i8254_internal.h"
+#include "hw/timer/i8254.h"
+#include "hw/timer/i8254_internal.h"
 
 /* val must be 0 or 1 */
 void pit_set_gate(ISADevice *dev, int channel, int val)
diff --git a/hw/i8259.c b/hw/i8259.c
index 1d82752..ce14bd0 100644
--- a/hw/i8259.c
+++ b/hw/i8259.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "monitor/monitor.h"
 #include "qemu/timer.h"
-#include "hw/i8259_internal.h"
+#include "hw/isa/i8259_internal.h"
 
 /* debug PIC */
 //#define DEBUG_PIC
diff --git a/hw/i8259_common.c b/hw/i8259_common.c
index 98052db..996ba9d 100644
--- a/hw/i8259_common.c
+++ b/hw/i8259_common.c
@@ -22,8 +22,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw/pc.h"
-#include "hw/i8259_internal.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/i8259_internal.h"
 
 void pic_reset_common(PICCommonState *s)
 {
diff --git a/hw/i82801b11.c b/hw/i82801b11.c
index 992095c..9d1b981 100644
--- a/hw/i82801b11.c
+++ b/hw/i82801b11.c
@@ -42,7 +42,7 @@
  */
 
 #include "hw/pci/pci.h"
-#include "hw/ich9.h"
+#include "hw/i386/ich9.h"
 
 
 /*****************************************************************************/
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index ad0094f..d0ae8af 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -23,7 +23,7 @@
 
 #include <hw/hw.h>
 #include <hw/pci/msi.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
 #include <hw/sysbus.h>
 
diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
index 861fd2b..05e60b1 100644
--- a/hw/ide/atapi.c
+++ b/hw/ide/atapi.c
@@ -24,7 +24,7 @@
  */
 
 #include "hw/ide/internal.h"
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 
 static void ide_atapi_cmd_read_dma_cb(void *opaque, int ret);
 
diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c
index 745ef94..541d4ef 100644
--- a/hw/ide/cmd646.c
+++ b/hw/ide/cmd646.c
@@ -23,9 +23,9 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "block/block.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 3743dc3..87d67b7 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -23,14 +23,14 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "sysemu/blockdev.h"
 
 #include <hw/ide/internal.h>
diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index cc30adc..ed1f1a2 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -62,9 +62,9 @@
 
 #include <hw/hw.h>
 #include <hw/pci/msi.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "block/block.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index d80360e..2c89b50 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -7,12 +7,12 @@
  * non-internal declarations are in hw/ide.h
  */
 #include <hw/ide.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "exec/iorange.h"
 #include "sysemu/dma.h"
 #include "sysemu/sysemu.h"
-#include "hw/block-common.h"
-#include "hw/scsi-defs.h"
+#include "hw/block/block.h"
+#include "block/scsi.h"
 
 /* debug IDE devices */
 //#define DEBUG_IDE
diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index fb7bb82..e0d47bf 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -23,8 +23,8 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
-#include <hw/isa.h>
+#include <hw/i386/pc.h>
+#include <hw/isa/isa.h>
 #include "block/block.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index 375c46f..64b2406 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -24,7 +24,7 @@
  */
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
-#include "hw/mac_dbdma.h"
+#include "hw/ppc/mac_dbdma.h"
 #include "block/block.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index 642774e..92c1df0 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pcmcia.h>
 #include "block/block.h"
 #include "sysemu/dma.h"
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 59fd539..a310975 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -23,9 +23,9 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "block/block.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/ide/piix.c b/hw/ide/piix.c
index 4d3e822..1de284d 100644
--- a/hw/ide/piix.c
+++ b/hw/ide/piix.c
@@ -24,9 +24,9 @@
  */
 
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "sysemu/blockdev.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index fd06da7..8a9a891 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -21,7 +21,7 @@
 #include "qemu/error-report.h"
 #include <hw/ide/internal.h>
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "sysemu/sysemu.h"
 
 /* --------------------------------- */
diff --git a/hw/ide/via.c b/hw/ide/via.c
index f40c1ad..9d6a644 100644
--- a/hw/ide/via.c
+++ b/hw/ide/via.c
@@ -24,9 +24,9 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include <hw/pc.h>
+#include <hw/i386/pc.h>
 #include <hw/pci/pci.h>
-#include <hw/isa.h>
+#include <hw/isa/isa.h>
 #include "block/block.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
diff --git a/hw/imx_ccm.c b/hw/imx_ccm.c
index ad7aad3..c153a24 100644
--- a/hw/imx_ccm.c
+++ b/hw/imx_ccm.c
@@ -13,7 +13,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
-#include "hw/imx.h"
+#include "hw/arm/imx.h"
 
 #define CKIH_FREQ 26000000 /* 26MHz crystal input */
 #define CKIL_FREQ    32768 /* nominal 32khz clock */
diff --git a/hw/imx_serial.c b/hw/imx_serial.c
index 746723c..d7ec209 100644
--- a/hw/imx_serial.c
+++ b/hw/imx_serial.c
@@ -21,7 +21,7 @@
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "char/char.h"
-#include "hw/imx.h"
+#include "hw/arm/imx.h"
 
 //#define DEBUG_SERIAL 1
 #ifdef DEBUG_SERIAL
diff --git a/hw/imx_timer.c b/hw/imx_timer.c
index a8c31114..03197e3 100644
--- a/hw/imx_timer.c
+++ b/hw/imx_timer.c
@@ -15,7 +15,7 @@
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
 #include "hw/sysbus.h"
-#include "hw/imx.h"
+#include "hw/arm/imx.h"
 
 //#define DEBUG_TIMER 1
 #ifdef DEBUG_TIMER
diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index 728b60f..68201cd 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -21,7 +21,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci/msi.h"
 #include "qemu/timer.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "hw/intel-hda.h"
 #include "hw/intel-hda-defs.h"
 #include "sysemu/dma.h"
diff --git a/hw/ioapic.c b/hw/ioapic.c
index 78629fa..7089fa8 100644
--- a/hw/ioapic.c
+++ b/hw/ioapic.c
@@ -21,10 +21,10 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/apic.h"
-#include "hw/ioapic.h"
-#include "hw/ioapic_internal.h"
+#include "hw/i386/pc.h"
+#include "hw/i386/apic.h"
+#include "hw/i386/ioapic.h"
+#include "hw/i386/ioapic_internal.h"
 
 //#define DEBUG_IOAPIC
 
diff --git a/hw/ioapic_common.c b/hw/ioapic_common.c
index d4aff29..42c7adc 100644
--- a/hw/ioapic_common.c
+++ b/hw/ioapic_common.c
@@ -19,8 +19,8 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw/ioapic.h"
-#include "hw/ioapic_internal.h"
+#include "hw/i386/ioapic.h"
+#include "hw/i386/ioapic_internal.h"
 #include "hw/sysbus.h"
 
 void ioapic_reset_common(DeviceState *dev)
diff --git a/hw/isa-bus.c b/hw/isa-bus.c
index 67ff8fd..7860b17 100644
--- a/hw/isa-bus.c
+++ b/hw/isa-bus.c
@@ -20,7 +20,7 @@
 #include "monitor/monitor.h"
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "exec/address-spaces.h"
 
 static ISABus *isabus;
diff --git a/hw/isa_mmio.c b/hw/isa_mmio.c
index a7860e7..d4dbf13 100644
--- a/hw/isa_mmio.c
+++ b/hw/isa_mmio.c
@@ -23,7 +23,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "exec/address-spaces.h"
 
 static void isa_mmio_writeb (void *opaque, hwaddr addr,
diff --git a/hw/ivshmem.c b/hw/ivshmem.c
index 68a2cf2..a014af2 100644
--- a/hw/ivshmem.c
+++ b/hw/ivshmem.c
@@ -17,7 +17,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/msix.h"
 #include "sysemu/kvm.h"
diff --git a/hw/kvm/apic.c b/hw/kvm/apic.c
index d994ea7..c6ff982 100644
--- a/hw/kvm/apic.c
+++ b/hw/kvm/apic.c
@@ -9,7 +9,7 @@
  * This work is licensed under the terms of the GNU GPL version 2.
  * See the COPYING file in the top-level directory.
  */
-#include "hw/apic_internal.h"
+#include "hw/i386/apic_internal.h"
 #include "hw/pci/msi.h"
 #include "sysemu/kvm.h"
 
diff --git a/hw/kvm/i8254.c b/hw/kvm/i8254.c
index 04ad649..da90711 100644
--- a/hw/kvm/i8254.c
+++ b/hw/kvm/i8254.c
@@ -24,8 +24,8 @@
  */
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/i8254.h"
-#include "hw/i8254_internal.h"
+#include "hw/timer/i8254.h"
+#include "hw/timer/i8254_internal.h"
 #include "sysemu/kvm.h"
 
 #define KVM_PIT_REINJECT_BIT 0
diff --git a/hw/kvm/i8259.c b/hw/kvm/i8259.c
index 5ae8b68..ea77be8 100644
--- a/hw/kvm/i8259.c
+++ b/hw/kvm/i8259.c
@@ -9,8 +9,8 @@
  * This work is licensed under the terms of the GNU GPL version 2.
  * See the COPYING file in the top-level directory.
  */
-#include "hw/i8259_internal.h"
-#include "hw/apic_internal.h"
+#include "hw/isa/i8259_internal.h"
+#include "hw/i386/apic_internal.h"
 #include "sysemu/kvm.h"
 
 static void kvm_pic_get(PICCommonState *s)
diff --git a/hw/kvm/ioapic.c b/hw/kvm/ioapic.c
index 23877d4..a3bd519 100644
--- a/hw/kvm/ioapic.c
+++ b/hw/kvm/ioapic.c
@@ -10,9 +10,9 @@
  * See the COPYING file in the top-level directory.
  */
 
-#include "hw/pc.h"
-#include "hw/ioapic_internal.h"
-#include "hw/apic_internal.h"
+#include "hw/i386/pc.h"
+#include "hw/i386/ioapic_internal.h"
+#include "hw/i386/apic_internal.h"
 #include "sysemu/kvm.h"
 
 /* PC Utility function */
diff --git a/hw/kvm/pci-assign.c b/hw/kvm/pci-assign.c
index da64b5b..c1e08ec 100644
--- a/hw/kvm/pci-assign.c
+++ b/hw/kvm/pci-assign.c
@@ -27,7 +27,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "qemu/error-report.h"
 #include "ui/console.h"
 #include "hw/loader.h"
diff --git a/hw/lan9118.c b/hw/lan9118.c
index 403fb86..04cf267 100644
--- a/hw/lan9118.c
+++ b/hw/lan9118.c
@@ -12,7 +12,7 @@
 
 #include "hw/sysbus.h"
 #include "net/net.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "sysemu/sysemu.h"
 #include "hw/ptimer.h"
 /* For crc32 */
diff --git a/hw/lance.c b/hw/lance.c
index acfffae..0f4e808 100644
--- a/hw/lance.c
+++ b/hw/lance.c
@@ -39,7 +39,7 @@
 #include "net/net.h"
 #include "qemu/timer.h"
 #include "qemu/sockets.h"
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #include "hw/pcnet.h"
 #include "trace.h"
 
diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c
index db92948..b22c94f 100644
--- a/hw/lm32/lm32_boards.c
+++ b/hw/lm32/lm32_boards.c
@@ -19,8 +19,8 @@
 
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/flash.h"
-#include "hw/devices.h"
+#include "hw/block/flash.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c
index b347cf9..c3724de 100644
--- a/hw/lm32/milkymist.c
+++ b/hw/lm32/milkymist.c
@@ -19,9 +19,9 @@
 
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/lm32_juart.c b/hw/lm32_juart.c
index 472e9c2..93f0d15 100644
--- a/hw/lm32_juart.c
+++ b/hw/lm32_juart.c
@@ -22,7 +22,7 @@
 #include "trace.h"
 #include "char/char.h"
 
-#include "hw/lm32_juart.h"
+#include "hw/lm32/lm32_juart.h"
 
 enum {
     LM32_JUART_MIN_SAVE_VERSION = 0,
diff --git a/hw/lm32_pic.c b/hw/lm32_pic.c
index d17c310..b4e80c8 100644
--- a/hw/lm32_pic.c
+++ b/hw/lm32_pic.c
@@ -20,11 +20,11 @@
 #include <assert.h>
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "monitor/monitor.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "hw/lm32_pic.h"
+#include "hw/lm32/lm32_pic.h"
 
 struct LM32PicState {
     SysBusDevice busdev;
diff --git a/hw/lm832x.c b/hw/lm832x.c
index a064dfd..bacbeb2 100644
--- a/hw/lm832x.c
+++ b/hw/lm832x.c
@@ -19,7 +19,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
 
diff --git a/hw/loader.c b/hw/loader.c
index 6ce66fb..2f5072d 100644
--- a/hw/loader.c
+++ b/hw/loader.c
@@ -48,7 +48,7 @@
 #include "sysemu/sysemu.h"
 #include "hw/uboot_image.h"
 #include "hw/loader.h"
-#include "hw/fw_cfg.h"
+#include "hw/nvram/fw_cfg.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/lpc_ich9.c b/hw/lpc_ich9.c
index ff0a309..e26f112 100644
--- a/hw/lpc_ich9.c
+++ b/hw/lpc_ich9.c
@@ -30,18 +30,18 @@
 #include "qemu-common.h"
 #include "hw/hw.h"
 #include "qemu/range.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
-#include "hw/pc.h"
-#include "hw/apm.h"
-#include "hw/ioapic.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/apm.h"
+#include "hw/i386/ioapic.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pcie_host.h"
 #include "hw/pci/pci_bridge.h"
-#include "hw/ich9.h"
-#include "hw/acpi.h"
-#include "hw/acpi_ich9.h"
-#include "hw/pam.h"
+#include "hw/i386/ich9.h"
+#include "hw/acpi/acpi.h"
+#include "hw/acpi/ich9.h"
+#include "hw/pci/pam.h"
 #include "hw/pci/pci_bus.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 5a8bf4d..c601b29 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -14,7 +14,7 @@
 
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 #include "sysemu/dma.h"
 
 //#define DEBUG_LSI
diff --git a/hw/m25p80.c b/hw/m25p80.c
index 55e9d0d..cd560e3 100644
--- a/hw/m25p80.c
+++ b/hw/m25p80.c
@@ -24,7 +24,7 @@
 #include "hw/hw.h"
 #include "sysemu/blockdev.h"
 #include "hw/ssi.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 
 #ifdef M25P80_ERR_DEBUG
 #define DB_PRINT(...) do { \
diff --git a/hw/m48t59.c b/hw/m48t59.c
index 39a9d80..5019e06 100644
--- a/hw/m48t59.c
+++ b/hw/m48t59.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/nvram.h"
+#include "hw/timer/m48t59.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "hw/sysbus.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG_NVRAM
diff --git a/hw/m68k/an5206.c b/hw/m68k/an5206.c
index 7c21c66..c4a5626 100644
--- a/hw/m68k/an5206.c
+++ b/hw/m68k/an5206.c
@@ -7,7 +7,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c
index 58cd8d4..bcc619d 100644
--- a/hw/m68k/mcf5206.c
+++ b/hw/m68k/mcf5206.c
@@ -6,7 +6,7 @@
  * This code is licensed under the GPL
  */
 #include "hw/hw.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c
index 748bf56..05efde7 100644
--- a/hw/m68k/mcf5208.c
+++ b/hw/m68k/mcf5208.c
@@ -6,7 +6,7 @@
  * This code is licensed under the GPL
  */
 #include "hw/hw.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
index fff27b3..cfe660d 100644
--- a/hw/m68k/mcf_intc.c
+++ b/hw/m68k/mcf_intc.c
@@ -6,7 +6,7 @@
  * This code is licensed under the GPL
  */
 #include "hw/hw.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 #include "exec/address-spaces.h"
 
 typedef struct {
diff --git a/hw/mac_dbdma.c b/hw/mac_dbdma.c
index 61d2f35..a2363bb 100644
--- a/hw/mac_dbdma.c
+++ b/hw/mac_dbdma.c
@@ -37,8 +37,8 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/isa.h"
-#include "hw/mac_dbdma.h"
+#include "hw/isa/isa.h"
+#include "hw/ppc/mac_dbdma.h"
 #include "qemu/main-loop.h"
 
 /* debug DBDMA */
diff --git a/hw/mac_nvram.c b/hw/mac_nvram.c
index ed32bde..5223330 100644
--- a/hw/mac_nvram.c
+++ b/hw/mac_nvram.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/firmware_abi.h"
+#include "hw/sparc/firmware_abi.h"
 #include "sysemu/sysemu.h"
 #include "hw/ppc/mac.h"
 
diff --git a/hw/macio.c b/hw/macio.c
index e91143e..2f389dd 100644
--- a/hw/macio.c
+++ b/hw/macio.c
@@ -25,8 +25,8 @@
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
 #include "hw/pci/pci.h"
-#include "hw/mac_dbdma.h"
-#include "hw/escc.h"
+#include "hw/ppc/mac_dbdma.h"
+#include "hw/char/escc.h"
 
 #define TYPE_MACIO "macio"
 #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
diff --git a/hw/marvell_88w8618_audio.c b/hw/marvell_88w8618_audio.c
index e042046..f9b68fd 100644
--- a/hw/marvell_88w8618_audio.c
+++ b/hw/marvell_88w8618_audio.c
@@ -11,7 +11,7 @@
  */
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "hw/sysbus.h"
 #include "audio/audio.h"
 
diff --git a/hw/max7310.c b/hw/max7310.c
index e5cb810..59b2877 100644
--- a/hw/max7310.c
+++ b/hw/max7310.c
@@ -7,7 +7,7 @@
  * This file is licensed under GNU GPL.
  */
 
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 typedef struct {
     I2CSlave i2c;
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c
index a2119ad..69e6844 100644
--- a/hw/mc146818rtc.c
+++ b/hw/mc146818rtc.c
@@ -24,11 +24,11 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/mc146818rtc.h"
+#include "hw/timer/mc146818rtc.h"
 #include "qapi/visitor.h"
 
 #ifdef TARGET_I386
-#include "hw/apic.h"
+#include "hw/i386/apic.h"
 #endif
 
 //#define DEBUG_CMOS
diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c
index 0227bd8..9b68052 100644
--- a/hw/mcf_fec.c
+++ b/hw/mcf_fec.c
@@ -7,7 +7,7 @@
  */
 #include "hw/hw.h"
 #include "net/net.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 /* For crc32 */
 #include <zlib.h>
 #include "exec/address-spaces.h"
diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c
index aacf0f0..86045eb 100644
--- a/hw/mcf_uart.c
+++ b/hw/mcf_uart.c
@@ -6,7 +6,7 @@
  * This code is licensed under the GPL
  */
 #include "hw/hw.h"
-#include "hw/mcf.h"
+#include "hw/m68k/mcf.h"
 #include "char/char.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/megasas.c b/hw/megasas.c
index 9b815d4..f46f800 100644
--- a/hw/megasas.c
+++ b/hw/megasas.c
@@ -23,8 +23,8 @@
 #include "sysemu/dma.h"
 #include "hw/pci/msix.h"
 #include "qemu/iov.h"
-#include "hw/scsi.h"
-#include "hw/scsi-defs.h"
+#include "hw/scsi/scsi.h"
+#include "block/scsi.h"
 #include "trace.h"
 
 #include "hw/mfi.h"
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index cfc0220..813ef8c 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -28,13 +28,13 @@
 #include "hw/sysbus.h"
 #include "hw/hw.h"
 #include "net/net.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "hw/xilinx.h"
 #include "sysemu/blockdev.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "exec/address-spaces.h"
 #include "hw/ssi.h"
 
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index 2498362..b386403 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -26,9 +26,9 @@
 #include "hw/sysbus.h"
 #include "hw/hw.h"
 #include "net/net.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "hw/xilinx.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/milkymist-softusb.c b/hw/milkymist-softusb.c
index d911686..b46b8ef 100644
--- a/hw/milkymist-softusb.c
+++ b/hw/milkymist-softusb.c
@@ -25,7 +25,7 @@
 #include "hw/sysbus.h"
 #include "trace.h"
 #include "ui/console.h"
-#include "hw/hid.h"
+#include "hw/input/hid.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/mips/addr.c b/hw/mips/addr.c
index cddc25c..99488f1 100644
--- a/hw/mips/addr.c
+++ b/hw/mips/addr.c
@@ -21,7 +21,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips_cpudevs.h"
+#include "hw/mips/cpudevs.h"
 
 uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr)
 {
diff --git a/hw/mips/cputimer.c b/hw/mips/cputimer.c
index 9ad13f3..e0266bf 100644
--- a/hw/mips/cputimer.c
+++ b/hw/mips/cputimer.c
@@ -21,7 +21,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips_cpudevs.h"
+#include "hw/mips/cpudevs.h"
 #include "qemu/timer.h"
 
 #define TIMER_FREQ	100 * 1000 * 1000
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 766aa9d..3cf27fa 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -19,28 +19,28 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/fdc.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "hw/boards.h"
-#include "hw/smbus.h"
+#include "hw/i2c/smbus.h"
 #include "block/block.h"
-#include "hw/flash.h"
-#include "hw/mips.h"
-#include "hw/mips_cpudevs.h"
+#include "hw/block/flash.h"
+#include "hw/mips/mips.h"
+#include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
 #include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "audio/audio.h"
 #include "qemu/log.h"
 #include "hw/loader.h"
-#include "hw/mips-bios.h"
+#include "hw/mips/bios.h"
 #include "hw/ide.h"
 #include "elf.h"
-#include "hw/vt82c686.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
+#include "hw/isa/vt82c686.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/mips/mips_int.c b/hw/mips/mips_int.c
index 0e5e866..7dbd24d 100644
--- a/hw/mips/mips_int.c
+++ b/hw/mips/mips_int.c
@@ -21,7 +21,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips_cpudevs.h"
+#include "hw/mips/cpudevs.h"
 #include "cpu.h"
 
 static void cpu_mips_irq_request(void *opaque, int irq, int level)
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index daeb985..fd3a5f9 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -23,22 +23,22 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips.h"
-#include "hw/mips_cpudevs.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/isa.h"
-#include "hw/fdc.h"
+#include "hw/mips/mips.h"
+#include "hw/mips/cpudevs.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/isa/isa.h"
+#include "hw/block/fdc.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
 #include "hw/boards.h"
 #include "net/net.h"
-#include "hw/esp.h"
-#include "hw/mips-bios.h"
+#include "hw/scsi/esp.h"
+#include "hw/mips/bios.h"
 #include "hw/loader.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
-#include "hw/pcspk.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
+#include "hw/audio/pcspk.h"
 #include "sysemu/blockdev.h"
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 9a67dce..a3e936b 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -23,28 +23,28 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/fdc.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "hw/boards.h"
-#include "hw/smbus.h"
+#include "hw/i2c/smbus.h"
 #include "block/block.h"
-#include "hw/flash.h"
-#include "hw/mips.h"
-#include "hw/mips_cpudevs.h"
+#include "hw/block/flash.h"
+#include "hw/mips/mips.h"
+#include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
 #include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
 #include "hw/boards.h"
 #include "qemu/log.h"
-#include "hw/mips-bios.h"
+#include "hw/mips/bios.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 #include "hw/sysbus.h"             /* SysBusDevice */
diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c
index 4935c78..d1681ec 100644
--- a/hw/mips/mips_mipssim.c
+++ b/hw/mips/mips_mipssim.c
@@ -25,14 +25,14 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/mips.h"
-#include "hw/mips_cpudevs.h"
-#include "hw/serial.h"
-#include "hw/isa.h"
+#include "hw/mips/mips.h"
+#include "hw/mips/cpudevs.h"
+#include "hw/char/serial.h"
+#include "hw/isa/isa.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/mips-bios.h"
+#include "hw/mips/bios.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index 539a562..4646ab6 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -8,22 +8,22 @@
  * the standard PC ISA addresses.
 */
 #include "hw/hw.h"
-#include "hw/mips.h"
-#include "hw/mips_cpudevs.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/isa.h"
+#include "hw/mips/mips.h"
+#include "hw/mips/cpudevs.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/isa/isa.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "qemu/log.h"
-#include "hw/mips-bios.h"
+#include "hw/mips/bios.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/mc146818rtc.h"
-#include "hw/i8254.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/timer/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/nand.c b/hw/nand.c
index de3e502..43de933 100644
--- a/hw/nand.c
+++ b/hw/nand.c
@@ -19,7 +19,7 @@
 #ifndef NAND_IO
 
 # include "hw/hw.h"
-# include "hw/flash.h"
+# include "hw/block/flash.h"
 # include "sysemu/blockdev.h"
 # include "hw/sysbus.h"
 #include "qemu/error-report.h"
diff --git a/hw/ne2000-isa.c b/hw/ne2000-isa.c
index 47c00c3..e4c10db 100644
--- a/hw/ne2000-isa.c
+++ b/hw/ne2000-isa.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "hw/qdev.h"
 #include "net/net.h"
 #include "hw/ne2000.h"
diff --git a/hw/omap_clk.c b/hw/omap_clk.c
index c7b5c11..80a3c50 100644
--- a/hw/omap_clk.c
+++ b/hw/omap_clk.c
@@ -19,7 +19,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 struct clk {
     const char *name;
diff --git a/hw/omap_dma.c b/hw/omap_dma.c
index 0c5902f..184fcee 100644
--- a/hw/omap_dma.c
+++ b/hw/omap_dma.c
@@ -19,9 +19,9 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/irq.h"
-#include "hw/soc_dma.h"
+#include "hw/arm/soc_dma.h"
 
 struct omap_dma_channel_s {
     /* transfer data */
diff --git a/hw/omap_dss.c b/hw/omap_dss.c
index 948ad8f..ea3afce 100644
--- a/hw/omap_dss.c
+++ b/hw/omap_dss.c
@@ -19,7 +19,7 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 struct omap_dss_s {
     qemu_irq irq;
diff --git a/hw/omap_gpio.c b/hw/omap_gpio.c
index c79f61c..f5eeaea 100644
--- a/hw/omap_gpio.c
+++ b/hw/omap_gpio.c
@@ -19,7 +19,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/sysbus.h"
 
 struct omap_gpio_s {
diff --git a/hw/omap_gpmc.c b/hw/omap_gpmc.c
index ebb259c..91adb66 100644
--- a/hw/omap_gpmc.c
+++ b/hw/omap_gpmc.c
@@ -19,8 +19,8 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/flash.h"
-#include "hw/omap.h"
+#include "hw/block/flash.h"
+#include "hw/arm/omap.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/omap_gptimer.c b/hw/omap_gptimer.c
index 8485ee8..9b0e9dd 100644
--- a/hw/omap_gptimer.c
+++ b/hw/omap_gptimer.c
@@ -19,7 +19,7 @@
  */
 #include "hw/hw.h"
 #include "qemu/timer.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 /* GP timers */
 struct omap_gp_timer_s {
diff --git a/hw/omap_i2c.c b/hw/omap_i2c.c
index 92f7b37..efb2254 100644
--- a/hw/omap_i2c.c
+++ b/hw/omap_i2c.c
@@ -17,8 +17,8 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/i2c.h"
-#include "hw/omap.h"
+#include "hw/i2c/i2c.h"
+#include "hw/arm/omap.h"
 #include "hw/sysbus.h"
 
 
diff --git a/hw/omap_intc.c b/hw/omap_intc.c
index 7da9c35..875eba4 100644
--- a/hw/omap_intc.c
+++ b/hw/omap_intc.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/sysbus.h"
 
 /* Interrupt Handlers */
diff --git a/hw/omap_l4.c b/hw/omap_l4.c
index cbe8a06..ac8251f 100644
--- a/hw/omap_l4.c
+++ b/hw/omap_l4.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 struct omap_l4_s {
     MemoryRegion *address_space;
diff --git a/hw/omap_lcdc.c b/hw/omap_lcdc.c
index 4f5b094..4048cc1 100644
--- a/hw/omap_lcdc.c
+++ b/hw/omap_lcdc.c
@@ -18,7 +18,7 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/framebuffer.h"
 #include "ui/pixel_ops.h"
 
diff --git a/hw/omap_mmc.c b/hw/omap_mmc.c
index 6e48110..d4079cd 100644
--- a/hw/omap_mmc.c
+++ b/hw/omap_mmc.c
@@ -17,7 +17,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/sd.h"
 
 struct omap_mmc_s {
diff --git a/hw/omap_sdrc.c b/hw/omap_sdrc.c
index 510e6cc..e38b571 100644
--- a/hw/omap_sdrc.c
+++ b/hw/omap_sdrc.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 /* SDRAM Controller Subsystem */
 struct omap_sdrc_s {
diff --git a/hw/omap_spi.c b/hw/omap_spi.c
index 1cbd98d..11403c4 100644
--- a/hw/omap_spi.c
+++ b/hw/omap_spi.c
@@ -20,7 +20,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 /* Multichannel SPI */
 struct omap_mcspi_s {
diff --git a/hw/omap_synctimer.c b/hw/omap_synctimer.c
index 13e7280..a24f35c 100644
--- a/hw/omap_synctimer.c
+++ b/hw/omap_synctimer.c
@@ -19,7 +19,7 @@
  */
 #include "hw/hw.h"
 #include "qemu/timer.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 struct omap_synctimer_s {
     MemoryRegion iomem;
     uint32_t val;
diff --git a/hw/omap_tap.c b/hw/omap_tap.c
index 181ecee..99b70d5 100644
--- a/hw/omap_tap.c
+++ b/hw/omap_tap.c
@@ -19,7 +19,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 
 /* TEST-Chip-level TAP */
 static uint64_t omap_tap_read(void *opaque, hwaddr addr,
diff --git a/hw/omap_uart.c b/hw/omap_uart.c
index af51ce7..26c1426 100644
--- a/hw/omap_uart.c
+++ b/hw/omap_uart.c
@@ -19,8 +19,8 @@
  */
 #include "char/char.h"
 #include "hw/hw.h"
-#include "hw/omap.h"
-#include "hw/serial.h"
+#include "hw/arm/omap.h"
+#include "hw/char/serial.h"
 #include "exec/address-spaces.h"
 
 /* UARTs */
diff --git a/hw/onenand.c b/hw/onenand.c
index ddba366..2dae0f5 100644
--- a/hw/onenand.c
+++ b/hw/onenand.c
@@ -20,7 +20,7 @@
 
 #include "qemu-common.h"
 #include "hw/hw.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "hw/irq.h"
 #include "sysemu/blockdev.h"
 #include "exec/memory.h"
diff --git a/hw/openpic.c b/hw/openpic.c
index 03a7075..c788714 100644
--- a/hw/openpic.c
+++ b/hw/openpic.c
@@ -36,11 +36,11 @@
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
 #include "hw/pci/pci.h"
-#include "hw/openpic.h"
+#include "hw/ppc/openpic.h"
 #include "hw/sysbus.h"
 #include "hw/pci/msi.h"
 #include "qemu/bitops.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 
 //#define DEBUG_OPENPIC
 
diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
index db2aac8..49bab1f 100644
--- a/hw/openrisc/openrisc_sim.c
+++ b/hw/openrisc/openrisc_sim.c
@@ -21,7 +21,7 @@
 #include "hw/hw.h"
 #include "hw/boards.h"
 #include "elf.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "net/net.h"
 #include "hw/loader.h"
 #include "exec/address-spaces.h"
diff --git a/hw/pam.c b/hw/pam.c
index 6c0061e..d8524c1 100644
--- a/hw/pam.c
+++ b/hw/pam.c
@@ -27,7 +27,7 @@
  * THE SOFTWARE.
  */
 #include "sysemu/sysemu.h"
-#include "hw/pam.h"
+#include "hw/pci/pam.h"
 
 void smram_update(MemoryRegion *smram_region, uint8_t smram,
                   uint8_t smm_enabled)
diff --git a/hw/parallel.c b/hw/parallel.c
index 0b9af43..863a6fb 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -24,8 +24,8 @@
  */
 #include "hw/hw.h"
 #include "char/char.h"
-#include "hw/isa.h"
-#include "hw/pc.h"
+#include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
 #include "sysemu/sysemu.h"
 
 //#define DEBUG_PARALLEL
diff --git a/hw/pc-testdev.c b/hw/pc-testdev.c
index 8236bce..32df175 100644
--- a/hw/pc-testdev.c
+++ b/hw/pc-testdev.c
@@ -41,7 +41,7 @@
 #endif
 #include "hw/hw.h"
 #include "hw/qdev.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 #define IOMEM_LEN    0x10000
 
diff --git a/hw/pc87312.c b/hw/pc87312.c
index c4e4c62..9f5e185 100644
--- a/hw/pc87312.c
+++ b/hw/pc87312.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/pc87312.h"
+#include "hw/isa/pc87312.h"
 #include "qemu/error-report.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c
index 3e01528..0d95c8a 100644
--- a/hw/pc_sysfw.c
+++ b/hw/pc_sysfw.c
@@ -27,11 +27,11 @@
 #include "qemu/error-report.h"
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
 #include "sysemu/sysemu.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/kvm.h"
 
 #define BIOS_FILENAME "bios.bin"
diff --git a/hw/pci/pci-hotplug.c b/hw/pci/pci-hotplug.c
index f38df30..7b71f75 100644
--- a/hw/pci/pci-hotplug.c
+++ b/hw/pci/pci-hotplug.c
@@ -26,10 +26,10 @@
 #include "hw/boards.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "monitor/monitor.h"
-#include "hw/scsi.h"
-#include "hw/virtio-blk.h"
+#include "hw/scsi/scsi.h"
+#include "hw/virtio/virtio-blk.h"
 #include "qemu/config-file.h"
 #include "sysemu/blockdev.h"
 #include "qapi/error.h"
diff --git a/hw/pci/pci.h b/hw/pci/pci.h
index f340fe5..2c7a498 100644
--- a/hw/pci/pci.h
+++ b/hw/pci/pci.h
@@ -8,7 +8,7 @@
 #include "sysemu/dma.h"
 
 /* PCI includes legacy ISA access.  */
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 #include "hw/pci/pcie.h"
 
diff --git a/hw/pckbd.c b/hw/pckbd.c
index cc63df0..08ceb9f 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/isa.h"
-#include "hw/pc.h"
-#include "hw/ps2.h"
+#include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/input/ps2.h"
 #include "sysemu/sysemu.h"
 
 /* debug PC keyboard */
diff --git a/hw/pcspk.c b/hw/pcspk.c
index d533415..34e0df7 100644
--- a/hw/pcspk.c
+++ b/hw/pcspk.c
@@ -23,12 +23,12 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "audio/audio.h"
 #include "qemu/timer.h"
-#include "hw/i8254.h"
-#include "hw/pcspk.h"
+#include "hw/timer/i8254.h"
+#include "hw/audio/pcspk.h"
 
 #define PCSPK_BUF_LEN 1792
 #define PCSPK_SAMPLE_RATE 32000
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 5d57bab..287fb0c 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -37,7 +37,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "block/block.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c
index 37b4fcc..9a7fa70 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/pflash_cfi02.c
@@ -36,7 +36,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "qemu/timer.h"
 #include "block/block.h"
 #include "exec/address-spaces.h"
diff --git a/hw/piix4.c b/hw/piix4.c
index 0f5cd01..d750413 100644
--- a/hw/piix4.c
+++ b/hw/piix4.c
@@ -23,9 +23,9 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
 
 PCIDevice *piix4_dev;
diff --git a/hw/piix_pci.c b/hw/piix_pci.c
index e10bc1c..96c28a2 100644
--- a/hw/piix_pci.c
+++ b/hw/piix_pci.c
@@ -23,14 +23,14 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
 #include "qemu/range.h"
-#include "hw/xen.h"
-#include "hw/pam.h"
+#include "hw/xen/xen.h"
+#include "hw/pci/pam.h"
 #include "sysemu/sysemu.h"
 
 /*
diff --git a/hw/pl050.c b/hw/pl050.c
index bc31ab6..d9ef95d 100644
--- a/hw/pl050.c
+++ b/hw/pl050.c
@@ -8,7 +8,7 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/ps2.h"
+#include "hw/input/ps2.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/pl330.c b/hw/pl330.c
index 1a04773..3491a2d 100644
--- a/hw/pl330.c
+++ b/hw/pl330.c
@@ -14,7 +14,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/pm_smbus.c b/hw/pm_smbus.c
index 7900610..0b5bb89 100644
--- a/hw/pm_smbus.c
+++ b/hw/pm_smbus.c
@@ -18,9 +18,9 @@
  * <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/pm_smbus.h"
-#include "hw/smbus.h"
+#include "hw/i386/pc.h"
+#include "hw/i2c/pm_smbus.h"
+#include "hw/i2c/smbus.h"
 
 /* no save/load? */
 
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index fef9c5d..23e9494 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -21,21 +21,21 @@
 #include "net/net.h"
 #include "qemu/config-file.h"
 #include "hw/hw.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "hw/pci/pci.h"
 #include "hw/boards.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 #include "sysemu/device_tree.h"
-#include "hw/openpic.h"
-#include "hw/ppc.h"
+#include "hw/ppc/openpic.h"
+#include "hw/ppc/ppc.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 #include "qemu/host-utils.h"
-#include "hw/ppce500_pci.h"
+#include "hw/pci/host-ppce500.h"
 
 #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
 #define UIMAGE_LOAD_BASE           0
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
index 4b30575..7292ce1 100644
--- a/hw/ppc/e500plat.c
+++ b/hw/ppc/e500plat.c
@@ -15,7 +15,7 @@
 #include "hw/boards.h"
 #include "sysemu/device_tree.h"
 #include "hw/pci/pci.h"
-#include "hw/openpic.h"
+#include "hw/ppc/openpic.h"
 
 static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
 {
diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
index b17107b..54efaed 100644
--- a/hw/ppc/mac.h
+++ b/hw/ppc/mac.h
@@ -28,7 +28,7 @@
 #include "exec/memory.h"
 #include "hw/sysbus.h"
 #include "hw/ide/internal.h"
-#include "hw/adb.h"
+#include "hw/input/adb.h"
 
 /* SMP is not enabled, for now */
 #define MAX_CPUS 1
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index a08a6b2..4a9b883 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -47,18 +47,18 @@
  *
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "hw/ppc/mac.h"
-#include "hw/adb.h"
-#include "hw/mac_dbdma.h"
-#include "hw/nvram.h"
+#include "hw/input/adb.h"
+#include "hw/ppc/mac_dbdma.h"
+#include "hw/timer/m48t59.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/fw_cfg.h"
-#include "hw/escc.h"
-#include "hw/openpic.h"
+#include "hw/nvram/fw_cfg.h"
+#include "hw/char/escc.h"
+#include "hw/ppc/openpic.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 2778e45..3acca94 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -24,17 +24,17 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "mac.h"
-#include "hw/adb.h"
-#include "hw/nvram.h"
+#include "hw/input/adb.h"
+#include "hw/timer/m48t59.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/pci/pci.h"
 #include "hw/boards.h"
-#include "hw/fw_cfg.h"
-#include "hw/escc.h"
+#include "hw/nvram/fw_cfg.h"
+#include "hw/char/escc.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
index cf29788..444da02 100644
--- a/hw/ppc/mpc8544ds.c
+++ b/hw/ppc/mpc8544ds.c
@@ -14,7 +14,7 @@
 #include "e500.h"
 #include "hw/boards.h"
 #include "sysemu/device_tree.h"
-#include "hw/openpic.h"
+#include "hw/ppc/openpic.h"
 
 static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt)
 {
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index 85bc821..fb57b42 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/nvram.h"
+#include "hw/timer/m48t59.h"
 #include "qemu/log.h"
 #include "hw/loader.h"
 #include "sysemu/kvm.h"
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index ba443cf..18a29db 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "hw/ppc405.h"
-#include "hw/nvram.h"
-#include "hw/flash.h"
+#include "hw/timer/m48t59.h"
+#include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
 #include "block/block.h"
 #include "hw/boards.h"
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 56bae8f..82b8956 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "hw/ppc405.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 66911b5..48a0218 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -23,8 +23,8 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
-#include "hw/serial.h"
-#include "hw/ppc.h"
+#include "hw/char/serial.h"
+#include "hw/ppc/ppc.h"
 #include "hw/ppc405.h"
 #include "sysemu/sysemu.h"
 #include "hw/sysbus.h"
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 49ec728..d8e3dae 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
-#include "hw/ppc4xx.h"
+#include "hw/ppc/ppc.h"
+#include "hw/ppc/ppc4xx.h"
 #include "qemu/log.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/ppc/ppc_booke.c b/hw/ppc/ppc_booke.c
index 30375c0..585f53b 100644
--- a/hw/ppc/ppc_booke.c
+++ b/hw/ppc/ppc_booke.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/nvram.h"
+#include "hw/timer/m48t59.h"
 #include "qemu/log.h"
 #include "hw/loader.h"
 
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 2920911..cceab3e 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -22,22 +22,22 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/nvram.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/fdc.h"
+#include "hw/timer/m48t59.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "hw/boards.h"
 #include "qemu/log.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
-#include "hw/mc146818rtc.h"
-#include "hw/pc87312.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/isa/pc87312.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/arch_init.h"
 #include "exec/address-spaces.h"
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f355a9b..1ff5021 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -34,13 +34,13 @@
 #include "kvm_ppc.h"
 
 #include "hw/boards.h"
-#include "hw/ppc.h"
+#include "hw/ppc/ppc.h"
 #include "hw/loader.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
-#include "hw/spapr_pci.h"
-#include "hw/xics.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
+#include "hw/pci/host-spapr.h"
+#include "hw/ppc/xics.h"
 #include "hw/pci/msi.h"
 
 #include "sysemu/kvm.h"
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index ce78f09..ff87ac3 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -30,8 +30,8 @@
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index dd72743..b559bb9 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -2,7 +2,7 @@
 #include "cpu.h"
 #include "sysemu/sysemu.h"
 #include "helper_regs.h"
-#include "hw/spapr.h"
+#include "hw/ppc/spapr.h"
 
 #define HPTES_PER_GROUP 8
 
diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
index 8d500bf..d2782cf 100644
--- a/hw/ppc/spapr_iommu.c
+++ b/hw/ppc/spapr_iommu.c
@@ -23,7 +23,7 @@
 #include "sysemu/dma.h"
 #include "exec/address-spaces.h"
 
-#include "hw/spapr.h"
+#include "hw/ppc/spapr.h"
 
 #include <libfdt.h>
 
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index a24e853..b71b59c 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -30,8 +30,8 @@
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c
index 6eb3ab5..4dbc315 100644
--- a/hw/ppc/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -30,9 +30,9 @@
 #include "sysemu/device_tree.h"
 #include "kvm_ppc.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
-#include "hw/xics.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
+#include "hw/ppc/xics.h"
 
 #ifdef CONFIG_FDT
 #include <libfdt.h>
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 41eab16..db52649 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -24,10 +24,10 @@
 
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/serial.h"
-#include "hw/flash.h"
+#include "hw/char/serial.h"
+#include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/boards.h"
 #include "sysemu/device_tree.h"
 #include "hw/loader.h"
@@ -35,8 +35,8 @@
 #include "qemu/log.h"
 #include "exec/address-spaces.h"
 
-#include "hw/ppc.h"
-#include "hw/ppc4xx.h"
+#include "hw/ppc/ppc.h"
+#include "hw/ppc/ppc4xx.h"
 #include "hw/ppc405.h"
 
 #include "sysemu/blockdev.h"
diff --git a/hw/ppc/xics.c b/hw/ppc/xics.c
index c3ef12f..ed475f5 100644
--- a/hw/ppc/xics.c
+++ b/hw/ppc/xics.c
@@ -27,8 +27,8 @@
 
 #include "hw/hw.h"
 #include "trace.h"
-#include "hw/spapr.h"
-#include "hw/xics.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/xics.h"
 
 /*
  * ICP: Presentation layer
diff --git a/hw/ppc405.h b/hw/ppc405.h
index 45c2159..1c5f04f 100644
--- a/hw/ppc405.h
+++ b/hw/ppc405.h
@@ -25,7 +25,7 @@
 #if !defined(PPC_405_H)
 #define PPC_405_H
 
-#include "hw/ppc4xx.h"
+#include "hw/ppc/ppc4xx.h"
 
 /* Bootinfo as set-up by u-boot */
 typedef struct ppc4xx_bd_info_t ppc4xx_bd_info_t;
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index f3bbe88..a70f103 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -20,8 +20,8 @@
  * 4xx SoCs, such as the 440EP. */
 
 #include "hw/hw.h"
-#include "hw/ppc.h"
-#include "hw/ppc4xx.h"
+#include "hw/ppc/ppc.h"
+#include "hw/ppc/ppc4xx.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
 #include "exec/address-spaces.h"
diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 310ae1c..34ea939 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -19,7 +19,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
 #include "qemu/bswap.h"
-#include "hw/ppce500_pci.h"
+#include "hw/pci/host-ppce500.h"
 
 #ifdef DEBUG_PCI
 #define pci_debug(fmt, ...) fprintf(stderr, fmt, ## __VA_ARGS__)
diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index d21e876..396a465 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -27,7 +27,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/pci_host.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "exec/address-spaces.h"
 
 #define TYPE_RAVEN_PCI_DEVICE "raven"
diff --git a/hw/ps2.c b/hw/ps2.c
index 233a087..3412079 100644
--- a/hw/ps2.c
+++ b/hw/ps2.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ps2.h"
+#include "hw/input/ps2.h"
 #include "ui/console.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/puv3_dma.c b/hw/puv3_dma.c
index c05a14e..32844b5 100644
--- a/hw/puv3_dma.c
+++ b/hw/puv3_dma.c
@@ -12,7 +12,7 @@
 #include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 #define PUV3_DMA_CH_NR          (6)
 #define PUV3_DMA_CH_MASK        (0xff)
diff --git a/hw/puv3_gpio.c b/hw/puv3_gpio.c
index b2a790b..5bab97e 100644
--- a/hw/puv3_gpio.c
+++ b/hw/puv3_gpio.c
@@ -12,7 +12,7 @@
 #include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/puv3_intc.c b/hw/puv3_intc.c
index 6bc9e1a..0cd5e9e 100644
--- a/hw/puv3_intc.c
+++ b/hw/puv3_intc.c
@@ -11,7 +11,7 @@
 #include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/puv3_ost.c b/hw/puv3_ost.c
index 10a522a..0c3d827 100644
--- a/hw/puv3_ost.c
+++ b/hw/puv3_ost.c
@@ -12,7 +12,7 @@
 #include "hw/ptimer.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 /* puv3 ostimer implementation. */
 typedef struct {
diff --git a/hw/puv3_pm.c b/hw/puv3_pm.c
index 6b8d94d..0aacdc2 100644
--- a/hw/puv3_pm.c
+++ b/hw/puv3_pm.c
@@ -12,7 +12,7 @@
 #include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/pxa2xx_dma.c b/hw/pxa2xx_dma.c
index 1db21c9..6e4c1f6 100644
--- a/hw/pxa2xx_dma.c
+++ b/hw/pxa2xx_dma.c
@@ -9,7 +9,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "hw/sysbus.h"
 
 #define PXA255_DMA_NUM_CHANNELS 16
diff --git a/hw/pxa2xx_keypad.c b/hw/pxa2xx_keypad.c
index 32ea7a5..1fd5f20 100644
--- a/hw/pxa2xx_keypad.c
+++ b/hw/pxa2xx_keypad.c
@@ -12,7 +12,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "ui/console.h"
 
 /*
diff --git a/hw/pxa2xx_lcd.c b/hw/pxa2xx_lcd.c
index f2b0c93..ee59bc2 100644
--- a/hw/pxa2xx_lcd.c
+++ b/hw/pxa2xx_lcd.c
@@ -12,7 +12,7 @@
 
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "ui/pixel_ops.h"
 /* FIXME: For graphic_rotate. Should probably be done in common code.  */
 #include "sysemu/sysemu.h"
diff --git a/hw/pxa2xx_mmci.c b/hw/pxa2xx_mmci.c
index 0df83cc..2db1cab 100644
--- a/hw/pxa2xx_mmci.c
+++ b/hw/pxa2xx_mmci.c
@@ -11,7 +11,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "hw/sd.h"
 #include "hw/qdev.h"
 
diff --git a/hw/pxa2xx_pcmcia.c b/hw/pxa2xx_pcmcia.c
index 66fefba..323d458 100644
--- a/hw/pxa2xx_pcmcia.c
+++ b/hw/pxa2xx_pcmcia.c
@@ -12,7 +12,7 @@
 
 #include "hw/hw.h"
 #include "hw/pcmcia.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 
 
 struct PXA2xxPCMCIAState {
diff --git a/hw/pxa2xx_timer.c b/hw/pxa2xx_timer.c
index c173fe4..8ea2416 100644
--- a/hw/pxa2xx_timer.c
+++ b/hw/pxa2xx_timer.c
@@ -10,7 +10,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "hw/pxa.h"
+#include "hw/arm/pxa.h"
 #include "hw/sysbus.h"
 
 #define OSMR0	0x00
diff --git a/hw/q35.c b/hw/q35.c
index 0a25b8b..12d5787 100644
--- a/hw/q35.c
+++ b/hw/q35.c
@@ -28,7 +28,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/q35.h"
+#include "hw/pci/host-q35.h"
 
 /****************************************************************************
  * Q35 host
diff --git a/hw/qdev-properties-system.c b/hw/qdev-properties-system.c
index 8795144..d466bbd 100644
--- a/hw/qdev-properties-system.c
+++ b/hw/qdev-properties-system.c
@@ -14,7 +14,7 @@
 #include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "net/hub.h"
 #include "qapi/visitor.h"
 #include "char/char.h"
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 247ca6c..afc3d13 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -2,7 +2,7 @@
 #include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "net/hub.h"
 #include "qapi/visitor.h"
 #include "char/char.h"
diff --git a/hw/rc4030.c b/hw/rc4030.c
index b065515..03f92f1 100644
--- a/hw/rc4030.c
+++ b/hw/rc4030.c
@@ -23,7 +23,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/mips.h"
+#include "hw/mips/mips.h"
 #include "qemu/timer.h"
 
 /********************************************************/
diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c
index d9b7f83..3023737 100644
--- a/hw/s390x/s390-virtio-bus.c
+++ b/hw/s390x/s390-virtio-bus.c
@@ -24,15 +24,15 @@
 #include "monitor/monitor.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/virtio.h"
-#include "hw/virtio-rng.h"
-#include "hw/virtio-serial.h"
-#include "hw/virtio-net.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-rng.h"
+#include "hw/virtio/virtio-serial.h"
+#include "hw/virtio/virtio-net.h"
 #include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 
 #include "hw/s390x/s390-virtio-bus.h"
-#include "hw/virtio-bus.h"
+#include "hw/virtio/virtio-bus.h"
 
 /* #define DEBUG_S390 */
 
diff --git a/hw/s390x/s390-virtio-bus.h b/hw/s390x/s390-virtio-bus.h
index 4aacf83..f5a4fd1 100644
--- a/hw/s390x/s390-virtio-bus.h
+++ b/hw/s390x/s390-virtio-bus.h
@@ -19,12 +19,12 @@
 #ifndef HW_S390_VIRTIO_BUS_H
 #define HW_S390_VIRTIO_BUS_H 1
 
-#include "hw/virtio-blk.h"
-#include "hw/virtio-net.h"
-#include "hw/virtio-rng.h"
-#include "hw/virtio-serial.h"
-#include "hw/virtio-scsi.h"
-#include "hw/virtio-bus.h"
+#include "hw/virtio/virtio-blk.h"
+#include "hw/virtio/virtio-net.h"
+#include "hw/virtio/virtio-rng.h"
+#include "hw/virtio/virtio-serial.h"
+#include "hw/virtio/virtio-scsi.h"
+#include "hw/virtio/virtio-bus.h"
 
 #define VIRTIO_DEV_OFFS_TYPE		0	/* 8 bits */
 #define VIRTIO_DEV_OFFS_NUM_VQ		1	/* 8 bits */
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index ca275bd..f82c0e1 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -29,7 +29,7 @@
 #include "hw/boards.h"
 #include "monitor/monitor.h"
 #include "hw/loader.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index d4361f6..5e83ee6 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -15,12 +15,12 @@
 #include "sysemu/sysemu.h"
 #include "net/net.h"
 #include "monitor/monitor.h"
-#include "hw/virtio.h"
-#include "hw/virtio-serial.h"
-#include "hw/virtio-net.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-serial.h"
+#include "hw/virtio/virtio-net.h"
 #include "hw/sysbus.h"
 #include "qemu/bitops.h"
-#include "hw/virtio-bus.h"
+#include "hw/virtio/virtio-bus.h"
 
 #include "ioinst.h"
 #include "css.h"
diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h
index 88c46c0..2a6f4a1 100644
--- a/hw/s390x/virtio-ccw.h
+++ b/hw/s390x/virtio-ccw.h
@@ -12,12 +12,12 @@
 #ifndef HW_S390X_VIRTIO_CCW_H
 #define HW_S390X_VIRTIO_CCW_H
 
-#include <hw/virtio-blk.h>
-#include <hw/virtio-net.h>
-#include <hw/virtio-serial.h>
-#include <hw/virtio-scsi.h>
-#include <hw/virtio-rng.h>
-#include <hw/virtio-bus.h>
+#include <hw/virtio/virtio-blk.h>
+#include <hw/virtio/virtio-net.h>
+#include <hw/virtio/virtio-serial.h>
+#include <hw/virtio/virtio-scsi.h>
+#include <hw/virtio/virtio-rng.h>
+#include <hw/virtio/virtio-bus.h>
 
 #define VIRTUAL_CSSID 0xfe
 
diff --git a/hw/sb16.c b/hw/sb16.c
index bd51ceb..783b6b4 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/qdev.h"
 #include "qemu/timer.h"
 #include "qemu/host-utils.h"
diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
index 08787c2..eb4524b 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi-bus.c
@@ -1,7 +1,7 @@
 #include "hw/hw.h"
 #include "qemu/error-report.h"
-#include "hw/scsi.h"
-#include "hw/scsi-defs.h"
+#include "hw/scsi/scsi.h"
+#include "block/scsi.h"
 #include "hw/qdev.h"
 #include "sysemu/blockdev.h"
 #include "trace.h"
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index c5c7bf3..f52bd11 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -30,11 +30,11 @@ do { printf("scsi-disk: " fmt , ## __VA_ARGS__); } while (0)
 
 #include "qemu-common.h"
 #include "qemu/error-report.h"
-#include "hw/scsi.h"
-#include "hw/scsi-defs.h"
+#include "hw/scsi/scsi.h"
+#include "block/scsi.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "sysemu/dma.h"
 
 #ifdef __linux
diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c
index 4d04cac..2a9a561 100644
--- a/hw/scsi-generic.c
+++ b/hw/scsi-generic.c
@@ -13,7 +13,7 @@
 
 #include "qemu-common.h"
 #include "qemu/error-report.h"
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 #include "sysemu/blockdev.h"
 
 #ifdef __linux__
@@ -35,7 +35,7 @@ do { fprintf(stderr, "scsi-generic: " fmt , ## __VA_ARGS__); } while (0)
 #include <sys/stat.h>
 #include <unistd.h>
 #include <scsi/sg.h>
-#include "hw/scsi-defs.h"
+#include "block/scsi.h"
 
 #define SCSI_SENSE_BUF_SIZE 96
 
diff --git a/hw/serial-isa.c b/hw/serial-isa.c
index a630a7d..ed140d0 100644
--- a/hw/serial-isa.c
+++ b/hw/serial-isa.c
@@ -23,8 +23,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw/serial.h"
-#include "hw/isa.h"
+#include "hw/char/serial.h"
+#include "hw/isa/isa.h"
 
 typedef struct ISASerialState {
     ISADevice dev;
diff --git a/hw/serial-pci.c b/hw/serial-pci.c
index 954657b..2138e35 100644
--- a/hw/serial-pci.c
+++ b/hw/serial-pci.c
@@ -25,7 +25,7 @@
 
 /* see docs/specs/pci-serial.txt */
 
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "hw/pci/pci.h"
 
 #define PCI_SERIAL_MAX_PORTS 4
diff --git a/hw/serial.c b/hw/serial.c
index 48a5eb6..79050ab 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "char/char.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/sga.c b/hw/sga.c
index 4b1d4e5..5cf4b86 100644
--- a/hw/sga.c
+++ b/hw/sga.c
@@ -25,7 +25,7 @@
  *
  */
 #include "hw/pci/pci.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/loader.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
index faa03d2..bcc326a 100644
--- a/hw/sh4/r2d.c
+++ b/hw/sh4/r2d.c
@@ -25,8 +25,8 @@
 
 #include "hw/sysbus.h"
 #include "hw/hw.h"
-#include "hw/sh.h"
-#include "hw/devices.h"
+#include "hw/sh4/sh.h"
+#include "hw/arm/devices.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
 #include "hw/pci/pci.h"
@@ -35,7 +35,7 @@
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "hw/usb.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c
index e4d37ad..d72708e 100644
--- a/hw/sh4/sh7750.c
+++ b/hw/sh4/sh7750.c
@@ -24,11 +24,11 @@
  */
 #include <stdio.h>
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "sysemu/sysemu.h"
 #include "hw/sh7750_regs.h"
 #include "hw/sh7750_regnames.h"
-#include "hw/sh_intc.h"
+#include "hw/sh4/sh_intc.h"
 #include "cpu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh4/sh7750_regnames.c b/hw/sh4/sh7750_regnames.c
index 389698d..7a3cdf3 100644
--- a/hw/sh4/sh7750_regnames.c
+++ b/hw/sh4/sh7750_regnames.c
@@ -1,5 +1,5 @@
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "hw/sh7750_regs.h"
 #include "hw/sh7750_regnames.h"
 
diff --git a/hw/sh4/shix.c b/hw/sh4/shix.c
index 192579d..c23d4af 100644
--- a/hw/sh4/shix.c
+++ b/hw/sh4/shix.c
@@ -28,7 +28,7 @@
    More information in target-sh4/README.sh4
 */
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
diff --git a/hw/sh_intc.c b/hw/sh_intc.c
index 29e3d8f..050bfb6 100644
--- a/hw/sh_intc.c
+++ b/hw/sh_intc.c
@@ -8,9 +8,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw/sh_intc.h"
+#include "hw/sh4/sh_intc.h"
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 
 //#define DEBUG_INTC
 //#define DEBUG_INTC_SOURCES
diff --git a/hw/sh_pci.c b/hw/sh_pci.c
index 96535db..eade0d0 100644
--- a/hw/sh_pci.c
+++ b/hw/sh_pci.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "hw/sysbus.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
 #include "qemu/bswap.h"
diff --git a/hw/sh_serial.c b/hw/sh_serial.c
index 40e797c..a7bb8ed 100644
--- a/hw/sh_serial.c
+++ b/hw/sh_serial.c
@@ -25,7 +25,7 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "char/char.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh_timer.c b/hw/sh_timer.c
index b450323..f92ff4f 100644
--- a/hw/sh_timer.c
+++ b/hw/sh_timer.c
@@ -9,7 +9,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
 #include "hw/ptimer.h"
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c
index b60592b..b367752 100644
--- a/hw/slavio_intctl.c
+++ b/hw/slavio_intctl.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #include "monitor/monitor.h"
 #include "hw/sysbus.h"
 #include "trace.h"
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index 83f22a0..1145a87 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
 #include "hw/sysbus.h"
diff --git a/hw/sm501.c b/hw/sm501.c
index 93a06c9..d9fcead 100644
--- a/hw/sm501.c
+++ b/hw/sm501.c
@@ -24,9 +24,9 @@
 
 #include <stdio.h>
 #include "hw/hw.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "ui/console.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/sysbus.h"
 #include "hw/qdev-addr.h"
 #include "qemu/range.h"
diff --git a/hw/smbus.c b/hw/smbus.c
index 9626415..25d2d04 100644
--- a/hw/smbus.c
+++ b/hw/smbus.c
@@ -10,8 +10,8 @@
 /* TODO: Implement PEC.  */
 
 #include "hw/hw.h"
-#include "hw/i2c.h"
-#include "hw/smbus.h"
+#include "hw/i2c/i2c.h"
+#include "hw/i2c/smbus.h"
 
 //#define DEBUG_SMBUS 1
 
diff --git a/hw/smbus_eeprom.c b/hw/smbus_eeprom.c
index dff8403d..0154283 100644
--- a/hw/smbus_eeprom.c
+++ b/hw/smbus_eeprom.c
@@ -23,8 +23,8 @@
  */
 
 #include "hw/hw.h"
-#include "hw/i2c.h"
-#include "hw/smbus.h"
+#include "hw/i2c/i2c.h"
+#include "hw/i2c/smbus.h"
 
 //#define DEBUG
 
diff --git a/hw/smbus_ich9.c b/hw/smbus_ich9.c
index 732ebd3..ca22978 100644
--- a/hw/smbus_ich9.c
+++ b/hw/smbus_ich9.c
@@ -25,14 +25,14 @@
  *
  */
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/pm_smbus.h"
+#include "hw/i386/pc.h"
+#include "hw/i2c/pm_smbus.h"
 #include "hw/pci/pci.h"
 #include "sysemu/sysemu.h"
-#include "hw/i2c.h"
-#include "hw/smbus.h"
+#include "hw/i2c/i2c.h"
+#include "hw/i2c/smbus.h"
 
-#include "hw/ich9.h"
+#include "hw/i386/ich9.h"
 
 #define TYPE_ICH9_SMB_DEVICE "ICH9 SMB"
 #define ICH9_SMB_DEVICE(obj) \
diff --git a/hw/smc91c111.c b/hw/smc91c111.c
index c2feae6..f659256 100644
--- a/hw/smc91c111.c
+++ b/hw/smc91c111.c
@@ -9,7 +9,7 @@
 
 #include "hw/sysbus.h"
 #include "net/net.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 /* For crc32 */
 #include <zlib.h>
 
diff --git a/hw/soc_dma.c b/hw/soc_dma.c
index db5d609..5e3491d 100644
--- a/hw/soc_dma.c
+++ b/hw/soc_dma.c
@@ -19,7 +19,7 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "hw/soc_dma.h"
+#include "hw/arm/soc_dma.h"
 
 static void transfer_mem2mem(struct soc_dma_ch_s *ch)
 {
diff --git a/hw/spapr_llan.c b/hw/spapr_llan.c
index 19701e7..34332f2 100644
--- a/hw/spapr_llan.c
+++ b/hw/spapr_llan.c
@@ -27,8 +27,8 @@
 #include "hw/hw.h"
 #include "net/net.h"
 #include "hw/qdev.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_nvram.c b/hw/spapr_nvram.c
index 680cdba..0cc6cba 100644
--- a/hw/spapr_nvram.c
+++ b/hw/spapr_nvram.c
@@ -26,8 +26,8 @@
 
 #include "sysemu/device_tree.h"
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 typedef struct sPAPRNVRAM {
     VIOsPAPRDevice sdev;
diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index 36adbc5..a7228ca 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -27,8 +27,8 @@
 #include "hw/pci/msi.h"
 #include "hw/pci/msix.h"
 #include "hw/pci/pci_host.h"
-#include "hw/spapr.h"
-#include "hw/spapr_pci.h"
+#include "hw/ppc/spapr.h"
+#include "hw/pci/host-spapr.h"
 #include "exec/address-spaces.h"
 #include <libfdt.h>
 #include "trace.h"
diff --git a/hw/spapr_vscsi.c b/hw/spapr_vscsi.c
index 2794094..e92b09a 100644
--- a/hw/spapr_vscsi.c
+++ b/hw/spapr_vscsi.c
@@ -32,12 +32,12 @@
  *  - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)
  */
 #include "hw/hw.h"
-#include "hw/scsi.h"
-#include "hw/scsi-defs.h"
+#include "hw/scsi/scsi.h"
+#include "block/scsi.h"
 #include "hw/srp.h"
 #include "hw/qdev.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 #include "hw/ppc-viosrp.h"
 
 #include <libfdt.h>
diff --git a/hw/spapr_vty.c b/hw/spapr_vty.c
index be08571..9df018a 100644
--- a/hw/spapr_vty.c
+++ b/hw/spapr_vty.c
@@ -1,7 +1,7 @@
 #include "hw/qdev.h"
 #include "char/char.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 #define VTERM_BUFSIZE   16
 
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index bf06bf4..3b27d40 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -32,7 +32,7 @@
 #include "trace.h"
 #include "exec/address-spaces.h"
 
-#include "hw/grlib.h"
+#include "hw/sparc/grlib.h"
 
 /* Default system clock.  */
 #define CPU_CLK (40 * 1000 * 1000)
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 2f214da..b37354a 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -23,19 +23,19 @@
  */
 #include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "hw/sun4m.h"
-#include "hw/nvram.h"
-#include "hw/sparc32_dma.h"
-#include "hw/fdc.h"
+#include "hw/sparc/sun4m.h"
+#include "hw/timer/m48t59.h"
+#include "hw/sparc/sparc32_dma.h"
+#include "hw/block/fdc.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
 #include "hw/boards.h"
-#include "hw/firmware_abi.h"
-#include "hw/esp.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
-#include "hw/fw_cfg.h"
-#include "hw/escc.h"
+#include "hw/sparc/firmware_abi.h"
+#include "hw/scsi/esp.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
+#include "hw/nvram/fw_cfg.h"
+#include "hw/char/escc.h"
 #include "hw/empty_slot.h"
 #include "hw/qdev-addr.h"
 #include "hw/loader.h"
diff --git a/hw/sparc32_dma.c b/hw/sparc32_dma.c
index 18e368e..fd21533 100644
--- a/hw/sparc32_dma.c
+++ b/hw/sparc32_dma.c
@@ -26,8 +26,8 @@
  */
 
 #include "hw/hw.h"
-#include "hw/sparc32_dma.h"
-#include "hw/sun4m.h"
+#include "hw/sparc/sparc32_dma.h"
+#include "hw/sparc/sun4m.h"
 #include "hw/sysbus.h"
 #include "trace.h"
 
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 4c39cf6..f78dd30 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -23,17 +23,17 @@
  */
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
-#include "hw/apb_pci.h"
-#include "hw/pc.h"
-#include "hw/serial.h"
-#include "hw/nvram.h"
-#include "hw/fdc.h"
+#include "hw/pci/host-apb.h"
+#include "hw/i386/pc.h"
+#include "hw/char/serial.h"
+#include "hw/timer/m48t59.h"
+#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "hw/boards.h"
-#include "hw/firmware_abi.h"
-#include "hw/fw_cfg.h"
+#include "hw/sparc/firmware_abi.h"
+#include "hw/nvram/fw_cfg.h"
 #include "hw/sysbus.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
diff --git a/hw/ssd0303.c b/hw/ssd0303.c
index 68d1f24..183a878 100644
--- a/hw/ssd0303.c
+++ b/hw/ssd0303.c
@@ -10,7 +10,7 @@
 /* The controller can support a variety of different displays, but we only
    implement one.  Most of the commends relating to brightness and geometry
    setup are ignored. */
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "ui/console.h"
 
 //#define DEBUG_SSD0303 1
diff --git a/hw/stellaris_input.c b/hw/stellaris_input.c
index 4e40792..f83fc3f 100644
--- a/hw/stellaris_input.c
+++ b/hw/stellaris_input.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 #include "hw/hw.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "ui/console.h"
 
 typedef struct {
diff --git a/hw/strongarm.c b/hw/strongarm.c
index 49f9577..0e5262d 100644
--- a/hw/strongarm.c
+++ b/hw/strongarm.c
@@ -29,7 +29,7 @@
 #include "hw/sysbus.h"
 #include "hw/strongarm.h"
 #include "qemu/error-report.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "hw/ssi.h"
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c
index 9d443d1..1096375 100644
--- a/hw/sun4c_intctl.c
+++ b/hw/sun4c_intctl.c
@@ -23,7 +23,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #include "monitor/monitor.h"
 #include "hw/sysbus.h"
 
diff --git a/hw/sun4m_iommu.c b/hw/sun4m_iommu.c
index 33e77b0..744b584 100644
--- a/hw/sun4m_iommu.c
+++ b/hw/sun4m_iommu.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #include "hw/sysbus.h"
 #include "trace.h"
 
diff --git a/hw/tc58128.c b/hw/tc58128.c
index f76f96d..a3929d4 100644
--- a/hw/tc58128.c
+++ b/hw/tc58128.c
@@ -1,5 +1,5 @@
 #include "hw/hw.h"
-#include "hw/sh.h"
+#include "hw/sh4/sh.h"
 #include "hw/loader.h"
 
 #define CE1  0x0100
diff --git a/hw/tc6393xb.c b/hw/tc6393xb.c
index 79c971b..2d5fa89 100644
--- a/hw/tc6393xb.c
+++ b/hw/tc6393xb.c
@@ -11,8 +11,8 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/devices.h"
-#include "hw/flash.h"
+#include "hw/arm/devices.h"
+#include "hw/block/flash.h"
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/tmp105.c b/hw/tmp105.c
index 47e5437..21a27a6 100644
--- a/hw/tmp105.c
+++ b/hw/tmp105.c
@@ -19,7 +19,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "hw/tmp105.h"
 #include "qapi/visitor.h"
 
diff --git a/hw/tmp105.h b/hw/tmp105.h
index 9a9632c..9ba05ec 100644
--- a/hw/tmp105.h
+++ b/hw/tmp105.h
@@ -14,8 +14,8 @@
 #ifndef QEMU_TMP105_H
 #define QEMU_TMP105_H
 
-#include "hw/i2c.h"
-#include "hw/tmp105_regs.h"
+#include "hw/i2c/i2c.h"
+#include "hw/misc/tmp105_regs.h"
 
 #define TYPE_TMP105 "tmp105"
 #define TMP105(obj) OBJECT_CHECK(TMP105State, (obj), TYPE_TMP105)
diff --git a/hw/tsc2005.c b/hw/tsc2005.c
index a771cd5..34ee1fb 100644
--- a/hw/tsc2005.c
+++ b/hw/tsc2005.c
@@ -21,7 +21,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 
 #define TSC_CUT_RESOLUTION(value, p)	((value) >> (16 - (p ? 12 : 10)))
 
diff --git a/hw/tsc210x.c b/hw/tsc210x.c
index b93e502..e6c217c 100644
--- a/hw/tsc210x.c
+++ b/hw/tsc210x.c
@@ -23,8 +23,8 @@
 #include "audio/audio.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "hw/omap.h"	/* For I2SCodec and uWireSlave */
-#include "hw/devices.h"
+#include "hw/arm/omap.h"	/* For I2SCodec and uWireSlave */
+#include "hw/arm/devices.h"
 
 #define TSC_DATA_REGISTERS_PAGE		0x0
 #define TSC_CONTROL_REGISTERS_PAGE	0x1
diff --git a/hw/tusb6010.c b/hw/tusb6010.c
index a5251a3..533938a 100644
--- a/hw/tusb6010.c
+++ b/hw/tusb6010.c
@@ -21,9 +21,9 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "hw/usb.h"
-#include "hw/omap.h"
+#include "hw/arm/omap.h"
 #include "hw/irq.h"
-#include "hw/devices.h"
+#include "hw/arm/devices.h"
 #include "hw/sysbus.h"
 
 typedef struct TUSBState {
diff --git a/hw/twl92230.c b/hw/twl92230.c
index 7d020c4..b730d85 100644
--- a/hw/twl92230.c
+++ b/hw/twl92230.c
@@ -21,7 +21,7 @@
 
 #include "hw/hw.h"
 #include "qemu/timer.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
 
diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
index 78ab13f..7c8fc36 100644
--- a/hw/unicore32/puv3.c
+++ b/hw/unicore32/puv3.c
@@ -16,10 +16,10 @@
 #include "hw/sysbus.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 
 #undef DEBUG_PUV3
-#include "hw/puv3.h"
+#include "hw/unicore32/puv3.h"
 
 #define KERNEL_LOAD_ADDR        0x03000000
 #define KERNEL_MAX_SIZE         0x00800000 /* Just a guess */
diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c
index b8c79b8..44fc43f 100644
--- a/hw/usb/dev-audio.c
+++ b/hw/usb/dev-audio.c
@@ -33,7 +33,7 @@
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
 #include "hw/hw.h"
-#include "hw/audiodev.h"
+#include "hw/audio/audio.h"
 #include "audio/audio.h"
 
 #define USBAUDIO_VENDOR_NUM     0x46f4 /* CRC16() of "QEMU" */
diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
index 9701048..5f3a4b4 100644
--- a/hw/usb/dev-hid.c
+++ b/hw/usb/dev-hid.c
@@ -27,7 +27,7 @@
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
 #include "qemu/timer.h"
-#include "hw/hid.h"
+#include "hw/input/hid.h"
 
 /* HID interface requests */
 #define GET_REPORT   0xa101
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index d3f01aa..5780837 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -12,7 +12,7 @@
 #include "qemu/config-file.h"
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 #include "ui/console.h"
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
index 1ac5117..c8c42ee 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -16,8 +16,8 @@
 
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "hw/scsi.h"
-#include "hw/scsi-defs.h"
+#include "hw/scsi/scsi.h"
+#include "block/scsi.h"
 
 /* --------------------------------------------------------------------- */
 
diff --git a/hw/vga-isa-mm.c b/hw/vga-isa-mm.c
index 02356d4..3b08720 100644
--- a/hw/vga-isa-mm.c
+++ b/hw/vga-isa-mm.c
@@ -23,7 +23,7 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
diff --git a/hw/vga-isa.c b/hw/vga-isa.c
index 9e29321..89d7fa6 100644
--- a/hw/vga-isa.c
+++ b/hw/vga-isa.c
@@ -25,7 +25,7 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
diff --git a/hw/vga.c b/hw/vga.c
index 59bfb22..dc31fd5 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -24,12 +24,12 @@
 #include "hw/hw.h"
 #include "hw/vga.h"
 #include "ui/console.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
 #include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "trace.h"
 
 //#define DEBUG_VGA
diff --git a/hw/vhost.c b/hw/vhost.c
index 4d6aee3..636fad0 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -14,7 +14,7 @@
  */
 
 #include <sys/ioctl.h>
-#include "hw/vhost.h"
+#include "hw/virtio/vhost.h"
 #include "hw/hw.h"
 #include "qemu/range.h"
 #include <linux/vhost.h>
diff --git a/hw/vhost_net.c b/hw/vhost_net.c
index d3218a0..8c5384c 100644
--- a/hw/vhost_net.c
+++ b/hw/vhost_net.c
@@ -16,8 +16,8 @@
 #include "net/net.h"
 #include "net/tap.h"
 
-#include "hw/virtio-net.h"
-#include "hw/vhost_net.h"
+#include "hw/virtio/virtio-net.h"
+#include "net/vhost_net.h"
 #include "qemu/error-report.h"
 
 #include "config.h"
@@ -36,7 +36,7 @@
 
 #include <stdio.h>
 
-#include "hw/vhost.h"
+#include "hw/virtio/vhost.h"
 
 struct vhost_net {
     struct vhost_dev dev;
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index 6bfcddc..ce1b68e 100644
--- a/hw/virtio-balloon.c
+++ b/hw/virtio-balloon.c
@@ -16,11 +16,11 @@
 #include "qemu/iov.h"
 #include "qemu/timer.h"
 #include "qemu-common.h"
-#include "hw/virtio.h"
-#include "hw/pc.h"
+#include "hw/virtio/virtio.h"
+#include "hw/i386/pc.h"
 #include "cpu.h"
 #include "sysemu/balloon.h"
-#include "hw/virtio-balloon.h"
+#include "hw/virtio/virtio-balloon.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
 #include "qapi/visitor.h"
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 6b69236..cc02ec9 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -14,13 +14,13 @@
 #include "qemu-common.h"
 #include "qemu/error-report.h"
 #include "trace.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "sysemu/blockdev.h"
-#include "hw/virtio-blk.h"
+#include "hw/virtio/virtio-blk.h"
 #ifdef CONFIG_VIRTIO_BLK_DATA_PLANE
 #include "dataplane/virtio-blk.h"
 #endif
-#include "hw/scsi-defs.h"
+#include "block/scsi.h"
 #ifdef __linux__
 # include <scsi/sg.h>
 #endif
diff --git a/hw/virtio-bus.c b/hw/virtio-bus.c
index 6c2aab0..1596a1c 100644
--- a/hw/virtio-bus.c
+++ b/hw/virtio-bus.c
@@ -25,8 +25,8 @@
 #include "hw/hw.h"
 #include "qemu/error-report.h"
 #include "hw/qdev.h"
-#include "hw/virtio-bus.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio-bus.h"
+#include "hw/virtio/virtio.h"
 
 /* #define DEBUG_VIRTIO_BUS */
 
diff --git a/hw/virtio-console.c b/hw/virtio-console.c
index e2d1c58..59d0996 100644
--- a/hw/virtio-console.c
+++ b/hw/virtio-console.c
@@ -13,7 +13,7 @@
 #include "char/char.h"
 #include "qemu/error-report.h"
 #include "trace.h"
-#include "hw/virtio-serial.h"
+#include "hw/virtio/virtio-serial.h"
 
 typedef struct VirtConsole {
     VirtIOSerialPort port;
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 8c9d871..80d6c79 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -12,14 +12,14 @@
  */
 
 #include "qemu/iov.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "net/net.h"
 #include "net/checksum.h"
 #include "net/tap.h"
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
-#include "hw/virtio-net.h"
-#include "hw/vhost_net.h"
+#include "hw/virtio/virtio-net.h"
+#include "net/vhost_net.h"
 
 #define VIRTIO_NET_VM_VERSION    11
 
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index 39c1966..c29be01 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -17,11 +17,11 @@
 
 #include <inttypes.h>
 
-#include "hw/virtio.h"
-#include "hw/virtio-blk.h"
-#include "hw/virtio-net.h"
-#include "hw/virtio-serial.h"
-#include "hw/virtio-scsi.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-blk.h"
+#include "hw/virtio/virtio-net.h"
+#include "hw/virtio/virtio-serial.h"
+#include "hw/virtio/virtio-scsi.h"
 #include "hw/pci/pci.h"
 #include "qemu/error-report.h"
 #include "hw/pci/msi.h"
@@ -31,7 +31,7 @@
 #include "sysemu/blockdev.h"
 #include "hw/virtio-pci.h"
 #include "qemu/range.h"
-#include "hw/virtio-bus.h"
+#include "hw/virtio/virtio-bus.h"
 
 /* from Linux's linux/virtio_pci.h */
 
diff --git a/hw/virtio-pci.h b/hw/virtio-pci.h
index 2ae96f8..895d9ff 100644
--- a/hw/virtio-pci.h
+++ b/hw/virtio-pci.h
@@ -16,13 +16,13 @@
 #define QEMU_VIRTIO_PCI_H
 
 #include "hw/pci/msi.h"
-#include "hw/virtio-blk.h"
-#include "hw/virtio-net.h"
-#include "hw/virtio-rng.h"
-#include "hw/virtio-serial.h"
-#include "hw/virtio-scsi.h"
-#include "hw/virtio-bus.h"
-#include "hw/9pfs/virtio-9p-device.h"
+#include "hw/virtio/virtio-blk.h"
+#include "hw/virtio/virtio-net.h"
+#include "hw/virtio/virtio-rng.h"
+#include "hw/virtio/virtio-serial.h"
+#include "hw/virtio/virtio-scsi.h"
+#include "hw/virtio/virtio-bus.h"
+#include "hw/virtio/virtio-9p.h"
 
 typedef struct VirtIOPCIProxy VirtIOPCIProxy;
 
diff --git a/hw/virtio-rng.c b/hw/virtio-rng.c
index 54c1421..9983ff2 100644
--- a/hw/virtio-rng.c
+++ b/hw/virtio-rng.c
@@ -12,8 +12,8 @@
 #include "qemu/iov.h"
 #include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
-#include "hw/virtio.h"
-#include "hw/virtio-rng.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-rng.h"
 #include "qemu/rng.h"
 
 typedef struct VirtIORNG {
diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
index 72cc519..ad95a88 100644
--- a/hw/virtio-scsi.c
+++ b/hw/virtio-scsi.c
@@ -13,10 +13,10 @@
  *
  */
 
-#include "hw/virtio-scsi.h"
+#include "hw/virtio/virtio-scsi.h"
 #include "qemu/error-report.h"
-#include <hw/scsi.h>
-#include <hw/scsi-defs.h>
+#include <hw/scsi/scsi.h>
+#include <block/scsi.h>
 
 #define VIRTIO_SCSI_VQ_SIZE     128
 #define VIRTIO_SCSI_CDB_SIZE    32
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index 7d0515f..190c0e7 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -23,7 +23,7 @@
 #include "qemu/queue.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "hw/virtio-serial.h"
+#include "hw/virtio/virtio-serial.h"
 
 /* The virtio-serial bus on top of which the ports will ride as devices */
 struct VirtIOSerialBus {
diff --git a/hw/virtio.c b/hw/virtio.c
index 26fbc79..1c2282c 100644
--- a/hw/virtio.c
+++ b/hw/virtio.c
@@ -15,9 +15,9 @@
 
 #include "trace.h"
 #include "qemu/error-report.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "qemu/atomic.h"
-#include "hw/virtio-bus.h"
+#include "hw/virtio/virtio-bus.h"
 
 /* The alignment to use between consumer and producer parts of vring.
  * x86 pagesize again. */
diff --git a/hw/vmmouse.c b/hw/vmmouse.c
index a9d227e..f4f9c93 100644
--- a/hw/vmmouse.c
+++ b/hw/vmmouse.c
@@ -23,8 +23,8 @@
  */
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/ps2.h"
-#include "hw/pc.h"
+#include "hw/input/ps2.h"
+#include "hw/i386/pc.h"
 #include "hw/qdev.h"
 
 /* debug only vmmouse */
diff --git a/hw/vmport.c b/hw/vmport.c
index cc1466a..0d07ea1 100644
--- a/hw/vmport.c
+++ b/hw/vmport.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/isa.h"
-#include "hw/pc.h"
+#include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
 #include "sysemu/kvm.h"
 #include "hw/qdev.h"
 
diff --git a/hw/vt82c686.c b/hw/vt82c686.c
index 4529508..fb93b70 100644
--- a/hw/vt82c686.c
+++ b/hw/vt82c686.c
@@ -11,17 +11,17 @@
  */
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/vt82c686.h"
-#include "hw/i2c.h"
-#include "hw/smbus.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/vt82c686.h"
+#include "hw/i2c/i2c.h"
+#include "hw/i2c/smbus.h"
 #include "hw/pci/pci.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
-#include "hw/mips.h"
-#include "hw/apm.h"
-#include "hw/acpi.h"
-#include "hw/pm_smbus.h"
+#include "hw/mips/mips.h"
+#include "hw/isa/apm.h"
+#include "hw/acpi/acpi.h"
+#include "hw/i2c/pm_smbus.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/watchdog.c b/hw/watchdog.c
index 072d256..cb4e1f9 100644
--- a/hw/watchdog.c
+++ b/hw/watchdog.c
@@ -26,7 +26,7 @@
 #include "qapi/qmp/types.h"
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
-#include "hw/watchdog.h"
+#include "sysemu/watchdog.h"
 
 /* Possible values for action parameter. */
 #define WDT_RESET        1	/* Hard reset. */
diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c
index f13e507..1407fba 100644
--- a/hw/wdt_i6300esb.c
+++ b/hw/wdt_i6300esb.c
@@ -23,7 +23,7 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "hw/watchdog.h"
+#include "sysemu/watchdog.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
 
diff --git a/hw/wdt_ib700.c b/hw/wdt_ib700.c
index 6c52808..b8c4be8 100644
--- a/hw/wdt_ib700.c
+++ b/hw/wdt_ib700.c
@@ -21,10 +21,10 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "hw/watchdog.h"
+#include "sysemu/watchdog.h"
 #include "hw/hw.h"
-#include "hw/isa.h"
-#include "hw/pc.h"
+#include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
 
 /*#define IB700_DEBUG 1*/
 
diff --git a/hw/wm8750.c b/hw/wm8750.c
index 0904cf4..6b5a349 100644
--- a/hw/wm8750.c
+++ b/hw/wm8750.c
@@ -8,7 +8,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 #include "audio/audio.h"
 
 #define IN_PORT_N	3
diff --git a/hw/xen_apic.c b/hw/xen_apic.c
index 8f387b6..a2eb8a1 100644
--- a/hw/xen_apic.c
+++ b/hw/xen_apic.c
@@ -9,9 +9,9 @@
  * This work is licensed under the terms of the GNU GPL version 2 or
  * later. See the COPYING file in the top-level directory.
  */
-#include "hw/apic_internal.h"
+#include "hw/i386/apic_internal.h"
 #include "hw/pci/msi.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 
 static uint64_t xen_apic_mem_read(void *opaque, hwaddr addr,
                                   unsigned size)
diff --git a/hw/xen_backend.c b/hw/xen_backend.c
index 24381b5..f2eddfa 100644
--- a/hw/xen_backend.c
+++ b/hw/xen_backend.c
@@ -37,7 +37,7 @@
 #include "hw/hw.h"
 #include "char/char.h"
 #include "qemu/log.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 
 #include <xen/grant_table.h>
 
diff --git a/hw/xen_console.c b/hw/xen_console.c
index a8db6f8..24b5ca5 100644
--- a/hw/xen_console.c
+++ b/hw/xen_console.c
@@ -31,7 +31,7 @@
 
 #include "hw/hw.h"
 #include "char/char.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 
 #include <xen/io/console.h>
 
diff --git a/hw/xen_devconfig.c b/hw/xen_devconfig.c
index cdcaf62..fa998ef 100644
--- a/hw/xen_devconfig.c
+++ b/hw/xen_devconfig.c
@@ -1,4 +1,4 @@
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "sysemu/blockdev.h"
 
 /* ------------------------------------------------------------- */
diff --git a/hw/xen_disk.c b/hw/xen_disk.c
index 83329e2..e341168 100644
--- a/hw/xen_disk.c
+++ b/hw/xen_disk.c
@@ -36,7 +36,7 @@
 #include <sys/uio.h>
 
 #include "hw/hw.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_blkif.h"
 #include "sysemu/blockdev.h"
 
diff --git a/hw/xen_domainbuild.h b/hw/xen_domainbuild.h
index 681cbe5..29a91ea 100644
--- a/hw/xen_domainbuild.h
+++ b/hw/xen_domainbuild.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_XEN_DOMAINBUILD_H
 #define QEMU_HW_XEN_DOMAINBUILD_H 1
 
-#include "hw/xen_common.h"
+#include "hw/xen/xen_common.h"
 
 int xenstore_domain_init1(const char *kernel, const char *ramdisk,
                           const char *cmdline);
diff --git a/hw/xen_nic.c b/hw/xen_nic.c
index b6d3679..63918ae 100644
--- a/hw/xen_nic.c
+++ b/hw/xen_nic.c
@@ -39,7 +39,7 @@
 #include "net/net.h"
 #include "net/checksum.h"
 #include "net/util.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 
 #include <xen/io/netif.h>
 
diff --git a/hw/xen_platform.c b/hw/xen_platform.c
index 5e11c95..b6c6793 100644
--- a/hw/xen_platform.c
+++ b/hw/xen_platform.c
@@ -26,11 +26,11 @@
 #include <assert.h>
 
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
 #include "hw/irq.h"
-#include "hw/xen_common.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_common.h"
+#include "hw/xen/xen_backend.h"
 #include "trace.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/xen_pt.c b/hw/xen_pt.c
index ce695d0..0cc4538 100644
--- a/hw/xen_pt.c
+++ b/hw/xen_pt.c
@@ -55,8 +55,8 @@
 #include <sys/ioctl.h>
 
 #include "hw/pci/pci.h"
-#include "hw/xen.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_pt.h"
 #include "qemu/range.h"
 #include "exec/address-spaces.h"
diff --git a/hw/xen_pt.h b/hw/xen_pt.h
index 1cd9f44..d2cac18 100644
--- a/hw/xen_pt.h
+++ b/hw/xen_pt.h
@@ -2,7 +2,7 @@
 #define XEN_PT_H
 
 #include "qemu-common.h"
-#include "hw/xen_common.h"
+#include "hw/xen/xen_common.h"
 #include "hw/pci/pci.h"
 #include "hw/xen-host-pci-device.h"
 
diff --git a/hw/xen_pt_config_init.c b/hw/xen_pt_config_init.c
index 5583821..3ee2adf 100644
--- a/hw/xen_pt_config_init.c
+++ b/hw/xen_pt_config_init.c
@@ -13,7 +13,7 @@
  */
 
 #include "qemu/timer.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_pt.h"
 
 #define XEN_PT_MERGE_VALUE(value, data, val_mask) \
diff --git a/hw/xen_pt_msi.c b/hw/xen_pt_msi.c
index a54ee2b..dcdfc5c 100644
--- a/hw/xen_pt_msi.c
+++ b/hw/xen_pt_msi.c
@@ -11,9 +11,9 @@
 
 #include <sys/mman.h>
 
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "hw/xen_pt.h"
-#include "hw/apic-msidef.h"
+#include "hw/i386/apic-msidef.h"
 
 
 #define XEN_PT_AUTO_ASSIGN -1
diff --git a/hw/xenfb.c b/hw/xenfb.c
index 7c46a2f..8e42661 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -38,7 +38,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "char/char.h"
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 
 #include <xen/event_channel.h>
 #include <xen/io/fbif.h>
diff --git a/hw/xtensa/xtensa_lx60.c b/hw/xtensa/xtensa_lx60.c
index f2a63d8..5695897 100644
--- a/hw/xtensa/xtensa_lx60.c
+++ b/hw/xtensa/xtensa_lx60.c
@@ -31,10 +31,10 @@
 #include "elf.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
-#include "hw/serial.h"
+#include "hw/char/serial.h"
 #include "net/net.h"
 #include "hw/sysbus.h"
-#include "hw/flash.h"
+#include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "char/char.h"
 #include "hw/xtensa_bootparam.h"
diff --git a/hw/zaurus.c b/hw/zaurus.c
index 7d3258c..d853ea1 100644
--- a/hw/zaurus.c
+++ b/hw/zaurus.c
@@ -16,7 +16,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "hw/hw.h"
-#include "hw/sharpsl.h"
+#include "hw/arm/sharpsl.h"
 #include "hw/sysbus.h"
 
 #undef REG_FMT
diff --git a/hw/scsi-defs.h b/include/block/scsi.h
similarity index 100%
rename from hw/scsi-defs.h
rename to include/block/scsi.h
diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h
index 1da2400..977467b 100644
--- a/include/exec/memory-internal.h
+++ b/include/exec/memory-internal.h
@@ -20,7 +20,7 @@
 #define MEMORY_INTERNAL_H
 
 #ifndef CONFIG_USER_ONLY
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 
 typedef struct PhysPageEntry PhysPageEntry;
 
diff --git a/hw/acpi.h b/include/hw/acpi/acpi.h
similarity index 100%
rename from hw/acpi.h
rename to include/hw/acpi/acpi.h
diff --git a/hw/acpi_ich9.h b/include/hw/acpi/ich9.h
similarity index 98%
rename from hw/acpi_ich9.h
rename to include/hw/acpi/ich9.h
index 91c3aeb..85b82ee 100644
--- a/hw/acpi_ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -21,7 +21,7 @@
 #ifndef HW_ACPI_ICH9_H
 #define HW_ACPI_ICH9_H
 
-#include "hw/acpi.h"
+#include "hw/acpi/acpi.h"
 
 typedef struct ICH9LPCPMRegs {
     /*
diff --git a/hw/arm-misc.h b/include/hw/arm.h
similarity index 100%
rename from hw/arm-misc.h
rename to include/hw/arm.h
diff --git a/hw/devices.h b/include/hw/arm/devices.h
similarity index 100%
rename from hw/devices.h
rename to include/hw/arm/devices.h
diff --git a/hw/exynos4210.h b/include/hw/arm/exynos4210.h
similarity index 100%
rename from hw/exynos4210.h
rename to include/hw/arm/exynos4210.h
diff --git a/hw/imx.h b/include/hw/arm/imx.h
similarity index 100%
rename from hw/imx.h
rename to include/hw/arm/imx.h
diff --git a/hw/omap.h b/include/hw/arm/omap.h
similarity index 100%
rename from hw/omap.h
rename to include/hw/arm/omap.h
diff --git a/hw/primecell.h b/include/hw/arm/primecell.h
similarity index 100%
rename from hw/primecell.h
rename to include/hw/arm/primecell.h
diff --git a/hw/pxa.h b/include/hw/arm/pxa.h
similarity index 100%
rename from hw/pxa.h
rename to include/hw/arm/pxa.h
diff --git a/hw/sharpsl.h b/include/hw/arm/sharpsl.h
similarity index 100%
rename from hw/sharpsl.h
rename to include/hw/arm/sharpsl.h
diff --git a/hw/soc_dma.h b/include/hw/arm/soc_dma.h
similarity index 100%
rename from hw/soc_dma.h
rename to include/hw/arm/soc_dma.h
diff --git a/hw/audiodev.h b/include/hw/audio/audio.h
similarity index 100%
rename from hw/audiodev.h
rename to include/hw/audio/audio.h
diff --git a/hw/pcspk.h b/include/hw/audio/pcspk.h
similarity index 98%
rename from hw/pcspk.h
rename to include/hw/audio/pcspk.h
index f448d22..ce8ef4f 100644
--- a/hw/pcspk.h
+++ b/include/hw/audio/pcspk.h
@@ -26,7 +26,7 @@
 #define HW_PCSPK_H
 
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 static inline ISADevice *pcspk_init(ISABus *bus, ISADevice *pit)
 {
diff --git a/hw/block-common.h b/include/hw/block/block.h
similarity index 100%
rename from hw/block-common.h
rename to include/hw/block/block.h
diff --git a/hw/fdc.h b/include/hw/block/fdc.h
similarity index 100%
rename from hw/fdc.h
rename to include/hw/block/fdc.h
diff --git a/hw/flash.h b/include/hw/block/flash.h
similarity index 100%
rename from hw/flash.h
rename to include/hw/block/flash.h
diff --git a/hw/boards.h b/include/hw/boards.h
similarity index 100%
rename from hw/boards.h
rename to include/hw/boards.h
diff --git a/hw/bt.h b/include/hw/bt.h
similarity index 100%
rename from hw/bt.h
rename to include/hw/bt.h
diff --git a/hw/escc.h b/include/hw/char/escc.h
similarity index 100%
rename from hw/escc.h
rename to include/hw/char/escc.h
diff --git a/hw/serial.h b/include/hw/char/serial.h
similarity index 100%
rename from hw/serial.h
rename to include/hw/char/serial.h
diff --git a/hw/etraxfs.h b/include/hw/cris/etraxfs.h
similarity index 98%
rename from hw/etraxfs.h
rename to include/hw/cris/etraxfs.h
index 0df4fdd..ab30559 100644
--- a/hw/etraxfs.h
+++ b/include/hw/cris/etraxfs.h
@@ -26,7 +26,7 @@
 #define HW_EXTRAXFS_H 1
 
 #include "net/net.h"
-#include "hw/etraxfs_dma.h"
+#include "hw/cris/etraxfs_dma.h"
 
 qemu_irq *cris_pic_init_cpu(CPUCRISState *env);
 
diff --git a/hw/etraxfs_dma.h b/include/hw/cris/etraxfs_dma.h
similarity index 100%
rename from hw/etraxfs_dma.h
rename to include/hw/cris/etraxfs_dma.h
diff --git a/hw/elf_ops.h b/include/hw/elf_ops.h
similarity index 100%
rename from hw/elf_ops.h
rename to include/hw/elf_ops.h
diff --git a/hw/empty_slot.h b/include/hw/empty_slot.h
similarity index 100%
rename from hw/empty_slot.h
rename to include/hw/empty_slot.h
diff --git a/hw/hw.h b/include/hw/hw.h
similarity index 100%
rename from hw/hw.h
rename to include/hw/hw.h
diff --git a/hw/i2c.h b/include/hw/i2c/i2c.h
similarity index 100%
rename from hw/i2c.h
rename to include/hw/i2c/i2c.h
diff --git a/hw/pm_smbus.h b/include/hw/i2c/pm_smbus.h
similarity index 100%
rename from hw/pm_smbus.h
rename to include/hw/i2c/pm_smbus.h
diff --git a/hw/smbus.h b/include/hw/i2c/smbus.h
similarity index 99%
rename from hw/smbus.h
rename to include/hw/i2c/smbus.h
index c3db620..d764d75 100644
--- a/hw/smbus.h
+++ b/include/hw/i2c/smbus.h
@@ -25,7 +25,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/i2c.h"
+#include "hw/i2c/i2c.h"
 
 #define TYPE_SMBUS_DEVICE "smbus-device"
 #define SMBUS_DEVICE(obj) \
diff --git a/hw/apic-msidef.h b/include/hw/i386/apic-msidef.h
similarity index 100%
rename from hw/apic-msidef.h
rename to include/hw/i386/apic-msidef.h
diff --git a/hw/apic.h b/include/hw/i386/apic.h
similarity index 100%
rename from hw/apic.h
rename to include/hw/i386/apic.h
diff --git a/hw/apic_internal.h b/include/hw/i386/apic_internal.h
similarity index 100%
rename from hw/apic_internal.h
rename to include/hw/i386/apic_internal.h
diff --git a/hw/ich9.h b/include/hw/i386/ich9.h
similarity index 97%
rename from hw/ich9.h
rename to include/hw/i386/ich9.h
index e7d2df7..483ebf0 100644
--- a/hw/ich9.h
+++ b/include/hw/i386/ich9.h
@@ -3,17 +3,17 @@
 
 #include "hw/hw.h"
 #include "qemu/range.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
-#include "hw/pc.h"
-#include "hw/apm.h"
-#include "hw/ioapic.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/apm.h"
+#include "hw/i386/ioapic.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pcie_host.h"
 #include "hw/pci/pci_bridge.h"
-#include "hw/acpi.h"
-#include "hw/acpi_ich9.h"
-#include "hw/pam.h"
+#include "hw/acpi/acpi.h"
+#include "hw/acpi/ich9.h"
+#include "hw/pci/pam.h"
 #include "hw/pci/pci_bus.h"
 
 void ich9_lpc_set_irq(void *opaque, int irq_num, int level);
diff --git a/hw/ioapic.h b/include/hw/i386/ioapic.h
similarity index 100%
rename from hw/ioapic.h
rename to include/hw/i386/ioapic.h
diff --git a/hw/ioapic_internal.h b/include/hw/i386/ioapic_internal.h
similarity index 100%
rename from hw/ioapic_internal.h
rename to include/hw/i386/ioapic_internal.h
diff --git a/hw/pc.h b/include/hw/i386/pc.h
similarity index 98%
rename from hw/pc.h
rename to include/hw/i386/pc.h
index dbbd8cd..16b9a09 100644
--- a/hw/pc.h
+++ b/include/hw/i386/pc.h
@@ -4,11 +4,11 @@
 #include "qemu-common.h"
 #include "exec/memory.h"
 #include "exec/ioport.h"
-#include "hw/isa.h"
-#include "hw/fdc.h"
+#include "hw/isa/isa.h"
+#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "exec/memory.h"
-#include "hw/ioapic.h"
+#include "hw/i386/ioapic.h"
 
 /* PC-style peripherals (also used by other machines).  */
 
diff --git a/hw/smbios.h b/include/hw/i386/smbios.h
similarity index 100%
rename from hw/smbios.h
rename to include/hw/i386/smbios.h
diff --git a/hw/ide.h b/include/hw/ide.h
similarity index 97%
rename from hw/ide.h
rename to include/hw/ide.h
index 35444a3..507e6d3 100644
--- a/hw/ide.h
+++ b/include/hw/ide.h
@@ -1,7 +1,7 @@
 #ifndef HW_IDE_H
 #define HW_IDE_H
 
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/pci/pci.h"
 #include "exec/memory.h"
 
diff --git a/hw/adb.h b/include/hw/input/adb.h
similarity index 100%
rename from hw/adb.h
rename to include/hw/input/adb.h
diff --git a/hw/hid.h b/include/hw/input/hid.h
similarity index 100%
rename from hw/hid.h
rename to include/hw/input/hid.h
diff --git a/hw/ps2.h b/include/hw/input/ps2.h
similarity index 100%
rename from hw/ps2.h
rename to include/hw/input/ps2.h
diff --git a/hw/irq.h b/include/hw/irq.h
similarity index 100%
rename from hw/irq.h
rename to include/hw/irq.h
diff --git a/hw/apm.h b/include/hw/isa/apm.h
similarity index 100%
rename from hw/apm.h
rename to include/hw/isa/apm.h
diff --git a/hw/i8259_internal.h b/include/hw/isa/i8259_internal.h
similarity index 98%
rename from hw/i8259_internal.h
rename to include/hw/isa/i8259_internal.h
index 2813ec1..d3ddb27 100644
--- a/hw/i8259_internal.h
+++ b/include/hw/isa/i8259_internal.h
@@ -26,8 +26,8 @@
 #define QEMU_I8259_INTERNAL_H
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 
 typedef struct PICCommonState PICCommonState;
 
diff --git a/hw/isa.h b/include/hw/isa/isa.h
similarity index 100%
rename from hw/isa.h
rename to include/hw/isa/isa.h
diff --git a/hw/pc87312.h b/include/hw/isa/pc87312.h
similarity index 98%
rename from hw/pc87312.h
rename to include/hw/isa/pc87312.h
index ad087c7..befc8bd 100644
--- a/hw/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -25,7 +25,7 @@
 #ifndef QEMU_PC87312_H
 #define QEMU_PC87312_H
 
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 
 #define TYPE_PC87312 "pc87312"
diff --git a/hw/vt82c686.h b/include/hw/isa/vt82c686.h
similarity index 100%
rename from hw/vt82c686.h
rename to include/hw/isa/vt82c686.h
diff --git a/hw/kvm/clock.h b/include/hw/kvm/clock.h
similarity index 100%
rename from hw/kvm/clock.h
rename to include/hw/kvm/clock.h
diff --git a/hw/lm32_juart.h b/include/hw/lm32/lm32_juart.h
similarity index 100%
rename from hw/lm32_juart.h
rename to include/hw/lm32/lm32_juart.h
diff --git a/hw/lm32_pic.h b/include/hw/lm32/lm32_pic.h
similarity index 100%
rename from hw/lm32_pic.h
rename to include/hw/lm32/lm32_pic.h
diff --git a/hw/loader.h b/include/hw/loader.h
similarity index 100%
rename from hw/loader.h
rename to include/hw/loader.h
diff --git a/hw/mcf.h b/include/hw/m68k/mcf.h
similarity index 100%
rename from hw/mcf.h
rename to include/hw/m68k/mcf.h
diff --git a/hw/mips-bios.h b/include/hw/mips/bios.h
similarity index 100%
rename from hw/mips-bios.h
rename to include/hw/mips/bios.h
diff --git a/hw/mips_cpudevs.h b/include/hw/mips/cpudevs.h
similarity index 100%
rename from hw/mips_cpudevs.h
rename to include/hw/mips/cpudevs.h
diff --git a/hw/mips.h b/include/hw/mips/mips.h
similarity index 100%
rename from hw/mips.h
rename to include/hw/mips/mips.h
diff --git a/hw/tmp105_regs.h b/include/hw/misc/tmp105_regs.h
similarity index 100%
rename from hw/tmp105_regs.h
rename to include/hw/misc/tmp105_regs.h
diff --git a/hw/eeprom93xx.h b/include/hw/nvram/eeprom93xx.h
similarity index 100%
rename from hw/eeprom93xx.h
rename to include/hw/nvram/eeprom93xx.h
diff --git a/hw/fw_cfg.h b/include/hw/nvram/fw_cfg.h
similarity index 100%
rename from hw/fw_cfg.h
rename to include/hw/nvram/fw_cfg.h
diff --git a/hw/apb_pci.h b/include/hw/pci/host-apb.h
similarity index 100%
rename from hw/apb_pci.h
rename to include/hw/pci/host-apb.h
diff --git a/hw/ppce500_pci.h b/include/hw/pci/host-ppce500.h
similarity index 100%
rename from hw/ppce500_pci.h
rename to include/hw/pci/host-ppce500.h
diff --git a/hw/q35.h b/include/hw/pci/host-q35.h
similarity index 97%
rename from hw/q35.h
rename to include/hw/pci/host-q35.h
index d766bb7..41b1930 100644
--- a/hw/q35.h
+++ b/include/hw/pci/host-q35.h
@@ -24,16 +24,16 @@
 
 #include "hw/hw.h"
 #include "qemu/range.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "hw/sysbus.h"
-#include "hw/pc.h"
-#include "hw/apm.h"
-#include "hw/apic.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/apm.h"
+#include "hw/i386/apic.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pcie_host.h"
-#include "hw/acpi.h"
-#include "hw/acpi_ich9.h"
-#include "hw/pam.h"
+#include "hw/acpi/acpi.h"
+#include "hw/acpi/ich9.h"
+#include "hw/pci/pam.h"
 
 #define TYPE_Q35_HOST_DEVICE "q35-pcihost"
 #define Q35_HOST_DEVICE(obj) \
diff --git a/hw/spapr_pci.h b/include/hw/pci/host-spapr.h
similarity index 99%
rename from hw/spapr_pci.h
rename to include/hw/pci/host-spapr.h
index 8bb3c62..f32a04b 100644
--- a/hw/spapr_pci.h
+++ b/include/hw/pci/host-spapr.h
@@ -25,7 +25,7 @@
 
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
-#include "hw/xics.h"
+#include "hw/ppc/xics.h"
 
 #define SPAPR_MSIX_MAX_DEVS 32
 
diff --git a/hw/alpha_sys.h b/include/hw/pci/host-typhoon.h
similarity index 95%
rename from hw/alpha_sys.h
rename to include/hw/pci/host-typhoon.h
index b4ebd2a..50e7730 100644
--- a/hw/alpha_sys.h
+++ b/include/hw/pci/host-typhoon.h
@@ -6,7 +6,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
 #include "hw/ide.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/irq.h"
 
 
diff --git a/hw/pam.h b/include/hw/pci/pam.h
similarity index 100%
rename from hw/pam.h
rename to include/hw/pci/pam.h
diff --git a/hw/pcmcia.h b/include/hw/pcmcia.h
similarity index 100%
rename from hw/pcmcia.h
rename to include/hw/pcmcia.h
diff --git a/hw/mac_dbdma.h b/include/hw/ppc/mac_dbdma.h
similarity index 100%
rename from hw/mac_dbdma.h
rename to include/hw/ppc/mac_dbdma.h
diff --git a/hw/openpic.h b/include/hw/ppc/openpic.h
similarity index 100%
rename from hw/openpic.h
rename to include/hw/ppc/openpic.h
diff --git a/hw/ppc.h b/include/hw/ppc/ppc.h
similarity index 100%
rename from hw/ppc.h
rename to include/hw/ppc/ppc.h
diff --git a/hw/ppc4xx.h b/include/hw/ppc/ppc4xx.h
similarity index 100%
rename from hw/ppc4xx.h
rename to include/hw/ppc/ppc4xx.h
diff --git a/hw/spapr.h b/include/hw/ppc/spapr.h
similarity index 99%
rename from hw/spapr.h
rename to include/hw/ppc/spapr.h
index 3a1f69f..864bee9 100644
--- a/hw/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -2,7 +2,7 @@
 #define __HW_SPAPR_H__
 
 #include "sysemu/dma.h"
-#include "hw/xics.h"
+#include "hw/ppc/xics.h"
 
 struct VIOsPAPRBus;
 struct sPAPRPHBState;
diff --git a/hw/spapr_vio.h b/include/hw/ppc/spapr_vio.h
similarity index 100%
rename from hw/spapr_vio.h
rename to include/hw/ppc/spapr_vio.h
diff --git a/hw/xics.h b/include/hw/ppc/xics.h
similarity index 100%
rename from hw/xics.h
rename to include/hw/ppc/xics.h
diff --git a/hw/ptimer.h b/include/hw/ptimer.h
similarity index 100%
rename from hw/ptimer.h
rename to include/hw/ptimer.h
diff --git a/hw/qdev-addr.h b/include/hw/qdev-addr.h
similarity index 100%
rename from hw/qdev-addr.h
rename to include/hw/qdev-addr.h
diff --git a/hw/qdev-core.h b/include/hw/qdev-core.h
similarity index 100%
rename from hw/qdev-core.h
rename to include/hw/qdev-core.h
diff --git a/hw/qdev-dma.h b/include/hw/qdev-dma.h
similarity index 100%
rename from hw/qdev-dma.h
rename to include/hw/qdev-dma.h
diff --git a/hw/qdev-properties.h b/include/hw/qdev-properties.h
similarity index 100%
rename from hw/qdev-properties.h
rename to include/hw/qdev-properties.h
diff --git a/hw/qdev.h b/include/hw/qdev.h
similarity index 100%
rename from hw/qdev.h
rename to include/hw/qdev.h
diff --git a/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h
similarity index 100%
rename from hw/s390x/event-facility.h
rename to include/hw/s390x/event-facility.h
diff --git a/hw/s390x/sclp.h b/include/hw/s390x/sclp.h
similarity index 100%
rename from hw/s390x/sclp.h
rename to include/hw/s390x/sclp.h
diff --git a/hw/esp.h b/include/hw/scsi/esp.h
similarity index 99%
rename from hw/esp.h
rename to include/hw/scsi/esp.h
index 830673b..e079fb8 100644
--- a/hw/esp.h
+++ b/include/hw/scsi/esp.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_ESP_H
 #define QEMU_HW_ESP_H
 
-#include "hw/scsi.h"
+#include "hw/scsi/scsi.h"
 
 /* esp.c */
 #define ESP_MAX_DEVS 7
diff --git a/hw/scsi.h b/include/hw/scsi/scsi.h
similarity index 99%
rename from hw/scsi.h
rename to include/hw/scsi/scsi.h
index 33e2e0b..69b2bf5 100644
--- a/hw/scsi.h
+++ b/include/hw/scsi/scsi.h
@@ -3,7 +3,7 @@
 
 #include "hw/qdev.h"
 #include "block/block.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "sysemu/sysemu.h"
 
 #define MAX_SCSI_DEVS	255
diff --git a/hw/sd.h b/include/hw/sd.h
similarity index 100%
rename from hw/sd.h
rename to include/hw/sd.h
diff --git a/hw/sh.h b/include/hw/sh4/sh.h
similarity index 98%
rename from hw/sh.h
rename to include/hw/sh4/sh.h
index 6230954..87c378f 100644
--- a/hw/sh.h
+++ b/include/hw/sh4/sh.h
@@ -2,7 +2,7 @@
 #define QEMU_SH_H
 /* Definitions for SH board emulation.  */
 
-#include "hw/sh_intc.h"
+#include "hw/sh4/sh_intc.h"
 
 #define A7ADDR(x) ((x) & 0x1fffffff)
 #define P4ADDR(x) ((x) | 0xe0000000)
diff --git a/hw/sh_intc.h b/include/hw/sh4/sh_intc.h
similarity index 100%
rename from hw/sh_intc.h
rename to include/hw/sh4/sh_intc.h
diff --git a/hw/firmware_abi.h b/include/hw/sparc/firmware_abi.h
similarity index 100%
rename from hw/firmware_abi.h
rename to include/hw/sparc/firmware_abi.h
diff --git a/hw/grlib.h b/include/hw/sparc/grlib.h
similarity index 100%
rename from hw/grlib.h
rename to include/hw/sparc/grlib.h
diff --git a/hw/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h
similarity index 100%
rename from hw/sparc32_dma.h
rename to include/hw/sparc/sparc32_dma.h
diff --git a/hw/sun4m.h b/include/hw/sparc/sun4m.h
similarity index 96%
rename from hw/sun4m.h
rename to include/hw/sparc/sun4m.h
index 0d2cfb8..e984671 100644
--- a/hw/sun4m.h
+++ b/include/hw/sparc/sun4m.h
@@ -31,6 +31,6 @@ void sun4m_pic_info(Monitor *mon, const QDict *qdict);
 void sun4m_irq_info(Monitor *mon, const QDict *qdict);
 
 /* sparc32_dma.c */
-#include "hw/sparc32_dma.h"
+#include "hw/sparc/sparc32_dma.h"
 
 #endif
diff --git a/hw/ssi.h b/include/hw/ssi.h
similarity index 100%
rename from hw/ssi.h
rename to include/hw/ssi.h
diff --git a/hw/stream.h b/include/hw/stream.h
similarity index 100%
rename from hw/stream.h
rename to include/hw/stream.h
diff --git a/hw/sysbus.h b/include/hw/sysbus.h
similarity index 100%
rename from hw/sysbus.h
rename to include/hw/sysbus.h
diff --git a/hw/hpet_emul.h b/include/hw/timer/hpet.h
similarity index 100%
rename from hw/hpet_emul.h
rename to include/hw/timer/hpet.h
diff --git a/hw/i8254.h b/include/hw/timer/i8254.h
similarity index 98%
rename from hw/i8254.h
rename to include/hw/timer/i8254.h
index 7d4432e..75bb530 100644
--- a/hw/i8254.h
+++ b/include/hw/timer/i8254.h
@@ -26,7 +26,7 @@
 #define HW_I8254_H
 
 #include "hw/hw.h"
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 
 #define PIT_FREQ 1193182
 
diff --git a/hw/i8254_internal.h b/include/hw/timer/i8254_internal.h
similarity index 98%
rename from hw/i8254_internal.h
rename to include/hw/timer/i8254_internal.h
index 30d5b1b..e0cff0c 100644
--- a/hw/i8254_internal.h
+++ b/include/hw/timer/i8254_internal.h
@@ -26,8 +26,8 @@
 #define QEMU_I8254_INTERNAL_H
 
 #include "hw/hw.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 
 typedef struct PITChannelState {
     int count; /* can be 65536 */
diff --git a/hw/nvram.h b/include/hw/timer/m48t59.h
similarity index 100%
rename from hw/nvram.h
rename to include/hw/timer/m48t59.h
diff --git a/hw/mc146818rtc.h b/include/hw/timer/mc146818rtc.h
similarity index 80%
rename from hw/mc146818rtc.h
rename to include/hw/timer/mc146818rtc.h
index 967403e..854ea3f 100644
--- a/hw/mc146818rtc.h
+++ b/include/hw/timer/mc146818rtc.h
@@ -1,8 +1,8 @@
 #ifndef MC146818RTC_H
 #define MC146818RTC_H
 
-#include "hw/isa.h"
-#include "hw/mc146818rtc_regs.h"
+#include "hw/isa/isa.h"
+#include "hw/timer/mc146818rtc_regs.h"
 
 ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq);
 void rtc_set_memory(ISADevice *dev, int addr, int val);
diff --git a/hw/mc146818rtc_regs.h b/include/hw/timer/mc146818rtc_regs.h
similarity index 100%
rename from hw/mc146818rtc_regs.h
rename to include/hw/timer/mc146818rtc_regs.h
diff --git a/hw/puv3.h b/include/hw/unicore32/puv3.h
similarity index 100%
rename from hw/puv3.h
rename to include/hw/unicore32/puv3.h
diff --git a/hw/usb.h b/include/hw/usb.h
similarity index 100%
rename from hw/usb.h
rename to include/hw/usb.h
diff --git a/hw/vhost.h b/include/hw/virtio/vhost.h
similarity index 98%
rename from hw/vhost.h
rename to include/hw/virtio/vhost.h
index f062d48..b373be0 100644
--- a/hw/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -2,7 +2,7 @@
 #define VHOST_H
 
 #include "hw/hw.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "exec/memory.h"
 
 /* Generic structures common for any vhost based device. */
diff --git a/hw/9pfs/virtio-9p-device.h b/include/hw/virtio/virtio-9p.h
similarity index 100%
rename from hw/9pfs/virtio-9p-device.h
rename to include/hw/virtio/virtio-9p.h
diff --git a/hw/virtio-balloon.h b/include/hw/virtio/virtio-balloon.h
similarity index 98%
rename from hw/virtio-balloon.h
rename to include/hw/virtio/virtio-balloon.h
index f37f31b..040d44b 100644
--- a/hw/virtio-balloon.h
+++ b/include/hw/virtio/virtio-balloon.h
@@ -15,7 +15,7 @@
 #ifndef _QEMU_VIRTIO_BALLOON_H
 #define _QEMU_VIRTIO_BALLOON_H
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "hw/pci/pci.h"
 
 /* from Linux's linux/virtio_balloon.h */
diff --git a/hw/virtio-blk.h b/include/hw/virtio/virtio-blk.h
similarity index 98%
rename from hw/virtio-blk.h
rename to include/hw/virtio/virtio-blk.h
index 7ef2f35..11e78d6 100644
--- a/hw/virtio-blk.h
+++ b/include/hw/virtio/virtio-blk.h
@@ -14,8 +14,8 @@
 #ifndef _QEMU_VIRTIO_BLK_H
 #define _QEMU_VIRTIO_BLK_H
 
-#include "hw/virtio.h"
-#include "hw/block-common.h"
+#include "hw/virtio/virtio.h"
+#include "hw/block/block.h"
 
 /* from Linux's linux/virtio_blk.h */
 
diff --git a/hw/virtio-bus.h b/include/hw/virtio/virtio-bus.h
similarity index 99%
rename from hw/virtio-bus.h
rename to include/hw/virtio/virtio-bus.h
index ae0f707..311e8c7 100644
--- a/hw/virtio-bus.h
+++ b/include/hw/virtio/virtio-bus.h
@@ -27,7 +27,7 @@
 
 #include "hw/qdev.h"
 #include "sysemu/sysemu.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 
 #define TYPE_VIRTIO_BUS "virtio-bus"
 #define VIRTIO_BUS_GET_CLASS(obj) \
diff --git a/hw/virtio-net.h b/include/hw/virtio/virtio-net.h
similarity index 99%
rename from hw/virtio-net.h
rename to include/hw/virtio/virtio-net.h
index 0c83ca5..1f17baa 100644
--- a/hw/virtio-net.h
+++ b/include/hw/virtio/virtio-net.h
@@ -14,7 +14,7 @@
 #ifndef _QEMU_VIRTIO_NET_H
 #define _QEMU_VIRTIO_NET_H
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "hw/pci/pci.h"
 
 #define ETH_ALEN    6
diff --git a/hw/virtio-rng.h b/include/hw/virtio/virtio-rng.h
similarity index 100%
rename from hw/virtio-rng.h
rename to include/hw/virtio/virtio-rng.h
diff --git a/hw/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
similarity index 97%
rename from hw/virtio-scsi.h
rename to include/hw/virtio/virtio-scsi.h
index 81b3279..096bd57 100644
--- a/hw/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -14,7 +14,7 @@
 #ifndef _QEMU_VIRTIO_SCSI_H
 #define _QEMU_VIRTIO_SCSI_H
 
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 #include "hw/pci/pci.h"
 
 /* The ID for virtio_scsi */
diff --git a/hw/virtio-serial.h b/include/hw/virtio/virtio-serial.h
similarity index 99%
rename from hw/virtio-serial.h
rename to include/hw/virtio/virtio-serial.h
index d2d9fb7..b07e45c 100644
--- a/hw/virtio-serial.h
+++ b/include/hw/virtio/virtio-serial.h
@@ -16,7 +16,7 @@
 #define _QEMU_VIRTIO_SERIAL_H
 
 #include "hw/qdev.h"
-#include "hw/virtio.h"
+#include "hw/virtio/virtio.h"
 
 /* == Interface shared between the guest kernel and qemu == */
 
diff --git a/hw/virtio.h b/include/hw/virtio/virtio.h
similarity index 99%
rename from hw/virtio.h
rename to include/hw/virtio/virtio.h
index ca43fd7..dae31b1 100644
--- a/hw/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -20,7 +20,7 @@
 #include "sysemu/sysemu.h"
 #include "qemu/event_notifier.h"
 #ifdef CONFIG_VIRTFS
-#include "hw/9pfs/virtio-9p-device.h"
+#include "hw/virtio/virtio-9p.h"
 #endif
 
 /* from Linux's linux/virtio_config.h */
diff --git a/hw/xen.h b/include/hw/xen/xen.h
similarity index 100%
rename from hw/xen.h
rename to include/hw/xen/xen.h
diff --git a/hw/xen_backend.h b/include/hw/xen/xen_backend.h
similarity index 99%
rename from hw/xen_backend.h
rename to include/hw/xen/xen_backend.h
index 6d5c699..16ee197 100644
--- a/hw/xen_backend.h
+++ b/include/hw/xen/xen_backend.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_XEN_BACKEND_H
 #define QEMU_HW_XEN_BACKEND_H 1
 
-#include "hw/xen_common.h"
+#include "hw/xen/xen_common.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
 
diff --git a/hw/xen_common.h b/include/hw/xen/xen_common.h
similarity index 99%
rename from hw/xen_common.h
rename to include/hw/xen/xen_common.h
index c37bde3..2d5a25b 100644
--- a/hw/xen_common.h
+++ b/include/hw/xen/xen_common.h
@@ -15,7 +15,7 @@
 #include <xen/io/xenbus.h>
 
 #include "hw/hw.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "qemu/queue.h"
 
 /*
diff --git a/hw/xilinx.h b/include/hw/xilinx.h
similarity index 100%
rename from hw/xilinx.h
rename to include/hw/xilinx.h
diff --git a/hw/vhost_net.h b/include/net/vhost_net.h
similarity index 100%
rename from hw/vhost_net.h
rename to include/net/vhost_net.h
diff --git a/hw/watchdog.h b/include/sysemu/watchdog.h
similarity index 100%
rename from hw/watchdog.h
rename to include/sysemu/watchdog.h
diff --git a/monitor.c b/monitor.c
index 112e920..d50134f 100644
--- a/monitor.c
+++ b/monitor.c
@@ -26,9 +26,9 @@
 #include "monitor/qdev.h"
 #include "hw/usb.h"
 #include "hw/pcmcia.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
-#include "hw/watchdog.h"
+#include "sysemu/watchdog.h"
 #include "hw/loader.h"
 #include "exec/gdbstub.h"
 #include "net/net.h"
@@ -71,9 +71,9 @@
 
 /* for pic/irq_info */
 #if defined(TARGET_SPARC)
-#include "hw/sun4m.h"
+#include "hw/sparc/sun4m.h"
 #endif
-#include "hw/lm32_pic.h"
+#include "hw/lm32/lm32_pic.h"
 
 //#define DEBUG
 //#define DEBUG_COMPLETION
diff --git a/net/tap.c b/net/tap.c
index daab350..fb0943f 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -42,7 +42,7 @@
 
 #include "net/tap.h"
 
-#include "hw/vhost_net.h"
+#include "net/vhost_net.h"
 
 /* Maximum GSO packet size (64k) plus plenty of room for
  * the ethernet and virtio_net headers
diff --git a/pc-bios/optionrom/optionrom.h b/pc-bios/optionrom/optionrom.h
index 3daf7da..ce43608 100644
--- a/pc-bios/optionrom/optionrom.h
+++ b/pc-bios/optionrom/optionrom.h
@@ -20,7 +20,7 @@
 
 
 #define NO_QEMU_PROTOS
-#include "../../hw/fw_cfg.h"
+#include "../../include/hw/nvram/fw_cfg.h"
 
 #define BIOS_CFG_IOPORT_CFG	0x510
 #define BIOS_CFG_IOPORT_DATA	0x511
diff --git a/target-arm/arm-semi.c b/target-arm/arm-semi.c
index 847318d..77718c4 100644
--- a/target-arm/arm-semi.c
+++ b/target-arm/arm-semi.c
@@ -34,7 +34,7 @@
 #else
 #include "qemu-common.h"
 #include "exec/gdbstub.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 #endif
 
 #define TARGET_SYS_OPEN        0x01
diff --git a/target-arm/kvm.c b/target-arm/kvm.c
index 82e2e08..6bfb103 100644
--- a/target-arm/kvm.c
+++ b/target-arm/kvm.c
@@ -21,7 +21,7 @@
 #include "sysemu/kvm.h"
 #include "kvm_arm.h"
 #include "cpu.h"
-#include "hw/arm-misc.h"
+#include "hw/arm.h"
 
 const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
     KVM_CAP_LAST_INFO
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index a0640db..4748a4d 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -42,9 +42,9 @@
 
 #include "sysemu/sysemu.h"
 #ifndef CONFIG_USER_ONLY
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "hw/sysbus.h"
-#include "hw/apic_internal.h"
+#include "hw/i386/apic_internal.h"
 #endif
 
 static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 48f41ca..bcf7280 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -1164,7 +1164,7 @@ static inline void cpu_clone_regs(CPUX86State *env, target_ulong newsp)
 #include "svm.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "hw/apic.h"
+#include "hw/i386/apic.h"
 #endif
 
 static inline bool cpu_has_work(CPUState *cs)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index df30fa6..397afeb 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -28,8 +28,8 @@
 #include "exec/gdbstub.h"
 #include "qemu/host-utils.h"
 #include "qemu/config-file.h"
-#include "hw/pc.h"
-#include "hw/apic.h"
+#include "hw/i386/pc.h"
+#include "hw/i386/apic.h"
 #include "exec/ioport.h"
 #include "hyperv.h"
 #include "hw/pci/pci.h"
diff --git a/target-i386/machine.c b/target-i386/machine.c
index b80a5f4..ee85e57 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -1,7 +1,7 @@
 #include "hw/hw.h"
 #include "hw/boards.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 
 #include "cpu.h"
 #include "sysemu/kvm.h"
diff --git a/target-lm32/op_helper.c b/target-lm32/op_helper.c
index ebc94a0..0eaf023 100644
--- a/target-lm32/op_helper.c
+++ b/target-lm32/op_helper.c
@@ -3,8 +3,8 @@
 #include "helper.h"
 #include "qemu/host-utils.h"
 
-#include "hw/lm32_pic.h"
-#include "hw/lm32_juart.h"
+#include "hw/lm32/lm32_pic.h"
+#include "hw/lm32/lm32_juart.h"
 
 #if !defined(CONFIG_USER_ONLY)
 #define MMUSUFFIX _mmu
diff --git a/target-lm32/translate.c b/target-lm32/translate.c
index 695d9c5..29caa41 100644
--- a/target-lm32/translate.c
+++ b/target-lm32/translate.c
@@ -22,7 +22,7 @@
 #include "helper.h"
 #include "tcg-op.h"
 
-#include "hw/lm32_pic.h"
+#include "hw/lm32/lm32_pic.h"
 
 #define GEN_HELPER 1
 #include "helper.h"
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index e663ff0..bbd5ce1 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -31,11 +31,11 @@
 #include "sysemu/cpus.h"
 #include "sysemu/device_tree.h"
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
+#include "hw/ppc/spapr.h"
 
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 //#define DEBUG_KVM
 
diff --git a/target-sh4/helper.c b/target-sh4/helper.c
index 0a9cb3a..ce10ca8 100644
--- a/target-sh4/helper.c
+++ b/target-sh4/helper.c
@@ -26,7 +26,7 @@
 #include "cpu.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "hw/sh_intc.h"
+#include "hw/sh4/sh_intc.h"
 #endif
 
 #if defined(CONFIG_USER_ONLY)
diff --git a/tests/rtc-test.c b/tests/rtc-test.c
index 9ab583b..3395d7f 100644
--- a/tests/rtc-test.c
+++ b/tests/rtc-test.c
@@ -11,7 +11,7 @@
  *
  */
 #include "libqtest.h"
-#include "hw/mc146818rtc_regs.h"
+#include "hw/timer/mc146818rtc_regs.h"
 
 #include <glib.h>
 #include <stdio.h>
diff --git a/tests/tmp105-test.c b/tests/tmp105-test.c
index a6ad213..2869129 100644
--- a/tests/tmp105-test.c
+++ b/tests/tmp105-test.c
@@ -8,7 +8,7 @@
  */
 #include "libqtest.h"
 #include "libi2c.h"
-#include "hw/tmp105_regs.h"
+#include "hw/misc/tmp105_regs.h"
 
 #include <glib.h>
 
diff --git a/tpm/tpm_passthrough.c b/tpm/tpm_passthrough.c
index 24aff4d..3d3fc4b 100644
--- a/tpm/tpm_passthrough.c
+++ b/tpm/tpm_passthrough.c
@@ -29,7 +29,7 @@
 #include "qemu/sockets.h"
 #include "tpm_int.h"
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "tpm_tis.h"
 #include "tpm_backend.h"
 
diff --git a/tpm/tpm_tis.c b/tpm/tpm_tis.c
index e93825e..26b56f1 100644
--- a/tpm/tpm_tis.c
+++ b/tpm/tpm_tis.c
@@ -23,7 +23,7 @@
 #include "block/block.h"
 #include "exec/address-spaces.h"
 #include "hw/hw.h"
-#include "hw/pc.h"
+#include "hw/i386/pc.h"
 #include "hw/pci/pci_ids.h"
 #include "tpm/tpm_tis.h"
 #include "qemu-common.h"
diff --git a/tpm/tpm_tis.h b/tpm/tpm_tis.h
index 0c8df80..963682c 100644
--- a/tpm/tpm_tis.h
+++ b/tpm/tpm_tis.h
@@ -17,7 +17,7 @@
 #ifndef TPM_TPM_TIS_H
 #define TPM_TPM_TIS_H
 
-#include "hw/isa.h"
+#include "hw/isa/isa.h"
 #include "qemu-common.h"
 
 #define TPM_TIS_ADDR_BASE           0xFED40000
diff --git a/vl.c b/vl.c
index ce51e65..456ed1d 100644
--- a/vl.c
+++ b/vl.c
@@ -117,12 +117,12 @@ int main(int argc, char **argv)
 #include "hw/boards.h"
 #include "hw/usb.h"
 #include "hw/pcmcia.h"
-#include "hw/pc.h"
-#include "hw/isa.h"
+#include "hw/i386/pc.h"
+#include "hw/isa/isa.h"
 #include "hw/bt.h"
-#include "hw/watchdog.h"
-#include "hw/smbios.h"
-#include "hw/xen.h"
+#include "sysemu/watchdog.h"
+#include "hw/i386/smbios.h"
+#include "hw/xen/xen.h"
 #include "hw/qdev.h"
 #include "hw/loader.h"
 #include "monitor/qdev.h"
@@ -137,7 +137,7 @@ int main(int argc, char **argv)
 #include "char/char.h"
 #include "qemu/cache-utils.h"
 #include "sysemu/blockdev.h"
-#include "hw/block-common.h"
+#include "hw/block/block.h"
 #include "migration/block.h"
 #include "tpm/tpm.h"
 #include "sysemu/dma.h"
diff --git a/xen-all.c b/xen-all.c
index 8c05843..31f28fc 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -11,9 +11,9 @@
 #include <sys/mman.h>
 
 #include "hw/pci/pci.h"
-#include "hw/pc.h"
-#include "hw/xen_common.h"
-#include "hw/xen_backend.h"
+#include "hw/i386/pc.h"
+#include "hw/xen/xen_common.h"
+#include "hw/xen/xen_backend.h"
 #include "qmp-commands.h"
 
 #include "char/char.h"
diff --git a/xen-mapcache.c b/xen-mapcache.c
index dc6d1fa..f4af7b3 100644
--- a/xen-mapcache.c
+++ b/xen-mapcache.c
@@ -12,7 +12,7 @@
 
 #include <sys/resource.h>
 
-#include "hw/xen_backend.h"
+#include "hw/xen/xen_backend.h"
 #include "sysemu/blockdev.h"
 #include "qemu/bitmap.h"
 
diff --git a/xen-stub.c b/xen-stub.c
index 1ee8411..6f0516a 100644
--- a/xen-stub.c
+++ b/xen-stub.c
@@ -9,7 +9,7 @@
  */
 
 #include "qemu-common.h"
-#include "hw/xen.h"
+#include "hw/xen/xen.h"
 #include "exec/memory.h"
 #include "qmp-commands.h"
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 02/35] hw: make subdirectories for devices
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 01/35] hw: move headers to include/ Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 03/35] configure: fix TPM logic Paolo Bonzini
                   ` (33 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

Prepare the new directory structure.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/Makefile.objs          | 33 ++++++++++++++++++++++++++++++---
 hw/acpi/Makefile.objs     |  0
 hw/audio/Makefile.objs    |  0
 hw/block/Makefile.objs    |  0
 hw/bt/Makefile.objs       |  0
 hw/char/Makefile.objs     |  0
 hw/core/Makefile.objs     |  0
 hw/display/Makefile.objs  |  0
 hw/dma/Makefile.objs      |  0
 hw/gpio/Makefile.objs     |  0
 hw/i2c/Makefile.objs      |  0
 hw/input/Makefile.objs    |  0
 hw/intc/Makefile.objs     |  0
 hw/isa/Makefile.objs      |  0
 hw/misc/Makefile.objs     |  0
 hw/net/Makefile.objs      |  0
 hw/nvram/Makefile.objs    |  0
 hw/scsi/Makefile.objs     |  0
 hw/sd/Makefile.objs       |  0
 hw/ssi/Makefile.objs      |  0
 hw/timer/Makefile.objs    |  0
 hw/virtio/Makefile.objs   |  0
 hw/watchdog/Makefile.objs |  0
 hw/xen/Makefile.objs      |  0
 24 files changed, 30 insertions(+), 3 deletions(-)
 create mode 100644 hw/acpi/Makefile.objs
 create mode 100644 hw/audio/Makefile.objs
 create mode 100644 hw/block/Makefile.objs
 create mode 100644 hw/bt/Makefile.objs
 create mode 100644 hw/char/Makefile.objs
 create mode 100644 hw/core/Makefile.objs
 create mode 100644 hw/display/Makefile.objs
 create mode 100644 hw/dma/Makefile.objs
 create mode 100644 hw/gpio/Makefile.objs
 create mode 100644 hw/i2c/Makefile.objs
 create mode 100644 hw/input/Makefile.objs
 create mode 100644 hw/intc/Makefile.objs
 create mode 100644 hw/isa/Makefile.objs
 create mode 100644 hw/misc/Makefile.objs
 create mode 100644 hw/net/Makefile.objs
 create mode 100644 hw/nvram/Makefile.objs
 create mode 100644 hw/scsi/Makefile.objs
 create mode 100644 hw/sd/Makefile.objs
 create mode 100644 hw/ssi/Makefile.objs
 create mode 100644 hw/timer/Makefile.objs
 create mode 100644 hw/virtio/Makefile.objs
 create mode 100644 hw/watchdog/Makefile.objs
 create mode 100644 hw/xen/Makefile.objs

diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 11812c6..09fea2c 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -3,8 +3,37 @@ common-obj-y += qdev.o qdev-properties.o
 # irq.o needed for qdev GPIO handling:
 common-obj-y += irq.o
 
+devices-dirs-$(CONFIG_REALLY_VIRTFS) += 9pfs/
+devices-dirs-$(CONFIG_ACPI) += acpi/
+devices-dirs-$(CONFIG_SOFTMMU) += audio/
+devices-dirs-$(CONFIG_SOFTMMU) += block/
+devices-dirs-$(CONFIG_SOFTMMU) += bt/
+devices-dirs-$(CONFIG_SOFTMMU) += char/
+devices-dirs-$(CONFIG_SOFTMMU) += display/
+devices-dirs-$(CONFIG_SOFTMMU) += dma/
+devices-dirs-$(CONFIG_SOFTMMU) += gpio/
+devices-dirs-$(CONFIG_SOFTMMU) += i2c/
+devices-dirs-$(CONFIG_SOFTMMU) += ide/
+devices-dirs-$(CONFIG_SOFTMMU) += input/
+devices-dirs-$(CONFIG_SOFTMMU) += intc/
+devices-dirs-$(CONFIG_SOFTMMU) += isa/
+devices-dirs-$(CONFIG_SOFTMMU) += misc/
+devices-dirs-$(CONFIG_SOFTMMU) += net/
+devices-dirs-$(CONFIG_SOFTMMU) += nvram/
+devices-dirs-$(CONFIG_SOFTMMU) += pci/
+devices-dirs-$(CONFIG_SOFTMMU) += scsi/
+devices-dirs-$(CONFIG_SOFTMMU) += sd/
+devices-dirs-$(CONFIG_SOFTMMU) += ssi/
+devices-dirs-$(CONFIG_SOFTMMU) += timer/
+devices-dirs-$(CONFIG_SOFTMMU) += usb/
+devices-dirs-$(CONFIG_SOFTMMU) += virtio/
+devices-dirs-$(CONFIG_SOFTMMU) += watchdog/
+devices-dirs-$(CONFIG_SOFTMMU) += xen/
+common-obj-y += core/
+common-obj-y += $(devices-dirs-y)
+obj-y += $(devices-dirs-y)
+
 ifeq ($(CONFIG_SOFTMMU),y)
-common-obj-y += usb/ ide/ pci/
 common-obj-y += loader.o
 common-obj-$(CONFIG_VIRTIO) += virtio-console.o
 common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
@@ -165,7 +194,6 @@ common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
 
 common-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
 
-common-obj-y += usb/
 common-obj-$(CONFIG_PTIMER) += ptimer.o
 common-obj-$(CONFIG_MAX7310) += max7310.o
 common-obj-$(CONFIG_WM8750) += wm8750.o
@@ -205,7 +233,6 @@ obj-$(CONFIG_VIRTIO) += virtio.o virtio-blk.o virtio-balloon.o virtio-net.o
 obj-$(CONFIG_VIRTIO) += virtio-serial-bus.o virtio-scsi.o
 obj-$(CONFIG_SOFTMMU) += vhost_net.o
 obj-$(CONFIG_VHOST_NET) += vhost.o
-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
 obj-$(CONFIG_VGA) += vga.o
 
 # Inter-VM PCI shared memory & VFIO PCI device assignment
diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/audio/Makefile.objs b/hw/audio/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/bt/Makefile.objs b/hw/bt/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/gpio/Makefile.objs b/hw/gpio/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/input/Makefile.objs b/hw/input/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/nvram/Makefile.objs b/hw/nvram/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/ssi/Makefile.objs b/hw/ssi/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/watchdog/Makefile.objs b/hw/watchdog/Makefile.objs
new file mode 100644
index 0000000..e69de29
diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs
new file mode 100644
index 0000000..e69de29
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 03/35] configure: fix TPM logic
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 01/35] hw: move headers to include/ Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 02/35] hw: make subdirectories for devices Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-19 16:03   ` Andreas Färber
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part Paolo Bonzini
                   ` (32 subsequent siblings)
  35 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

A non-native i386 or x86_64 emulator should not have TPM passthrough
support, since the TPM is only present for those hosts.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                          | 24 ++++++++++++++++++------
 default-configs/i386-softmmu.mak   |  3 +--
 default-configs/x86_64-softmmu.mak |  3 +--
 tpm/Makefile.objs                  |  4 +---
 4 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index 46a7594..667b5be 100755
--- a/configure
+++ b/configure
@@ -2350,6 +2350,15 @@ EOF
 fi
 
 ##########################################
+# TPM passthrough is only on x86 Linux
+
+if test "$targetos" = Linux && test "$cpu" = i386 -o "$cpu" = x86_64; then
+  tpm_passthrough=$tpm
+else
+  tpm_passthrough=no
+fi
+
+##########################################
 # adjust virtio-blk-data-plane based on linux-aio
 
 if test "$virtio_blk_data_plane" = "yes" -a \
@@ -3439,6 +3448,7 @@ echo "virtio-blk-data-plane $virtio_blk_data_plane"
 echo "gcov              $gcov_tool"
 echo "gcov enabled      $gcov"
 echo "TPM support       $tpm"
+echo "TPM passthrough   $tpm_passthrough"
 
 if test "$sdl_too_old" = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -3821,6 +3831,14 @@ bsd)
 ;;
 esac
 
+# TPM passthrough support?
+if test "$tpm" = "yes"; then
+  echo "CONFIG_TPM=$(CONFIG_SOFTMMU)" >> $config_host_mak
+  if test "$tpm_passthrough" = "yes"; then
+    echo "CONFIG_TPM_PASSTHROUGH=y" >> $config_host_mak
+  fi
+fi
+
 # use default implementation for tracing backend-specific routines
 trace_default=yes
 echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
@@ -4351,12 +4369,6 @@ if test "$gprof" = "yes" ; then
   fi
 fi
 
-if test "$tpm" = "yes"; then
-  if test "$target_softmmu" = "yes" ; then
-    echo "CONFIG_TPM=y" >> $config_host_mak
-  fi
-fi
-
 if test "$ARCH" = "tci"; then
   linker_script=""
 else
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index df9e126..7d8908f 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -26,5 +26,4 @@ CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_TPM_TIS=y
-CONFIG_TPM_PASSTHROUGH=y
+CONFIG_TPM_TIS=$(CONFIG_TPM)
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index ab3cd5f..e87e644 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -26,5 +26,4 @@ CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_TPM_TIS=y
-CONFIG_TPM_PASSTHROUGH=y
+CONFIG_TPM_TIS=$(CONFIG_TPM)
diff --git a/tpm/Makefile.objs b/tpm/Makefile.objs
index 8676824..366e4a7 100644
--- a/tpm/Makefile.objs
+++ b/tpm/Makefile.objs
@@ -1,6 +1,4 @@
 common-obj-y = tpm.o
-ifeq ($(CONFIG_TPM),y)
-common-obj-y += tpm_backend.o
+common-obj-$(CONFIG_TPM) += tpm_backend.o
 common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o
 common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
-endif
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (2 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 03/35] configure: fix TPM logic Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-20 13:49   ` Corey Bryant
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 05/35] hw: move another file to hw/alpha/ Paolo Bonzini
                   ` (31 subsequent siblings)
  35 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

The TPM subsystem does not have a good front-end/back-end separation.
However, we can at least try to split the user interface (tpm.c) from
the implementation (hw/tpm).

The patches makes tpm.c not include tpm_int.h; instead it moves more
stuff to tpm_backend.h.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile.objs                      |  2 +-
 default-configs/i386-softmmu.mak   |  2 +-
 default-configs/x86_64-softmmu.mak |  2 +-
 hw/Makefile.objs                   |  1 +
 {tpm => hw/tpm}/Makefile.objs      |  3 +-
 {tpm => hw/tpm}/tpm_backend.c      | 14 ++++++++++
 {tpm => hw/tpm}/tpm_int.h          | 55 ++----------------------------------
 {tpm => hw/tpm}/tpm_passthrough.c  |  0
 {tpm => hw/tpm}/tpm_tis.c          |  0
 {tpm => hw/tpm}/tpm_tis.h          |  5 ----
 {tpm => include/tpm}/tpm_backend.h | 57 ++++++++++++++++++++++++++++++++++++++
 tpm/tpm.c => tpm.c                 | 18 ++----------
 12 files changed, 80 insertions(+), 79 deletions(-)
 rename {tpm => hw/tpm}/Makefile.objs (61%)
 rename {tpm => hw/tpm}/tpm_backend.c (82%)
 rename {tpm => hw/tpm}/tpm_int.h (49%)
 rename {tpm => hw/tpm}/tpm_passthrough.c (100%)
 rename {tpm => hw/tpm}/tpm_tis.c (100%)
 rename {tpm => hw/tpm}/tpm_tis.h (94%)
 rename {tpm => include/tpm}/tpm_backend.h (50%)
 rename tpm/tpm.c => tpm.c (93%)

diff --git a/Makefile.objs b/Makefile.objs
index f99841c..ff3a6b3 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -74,7 +74,7 @@ common-obj-y += bt-host.o bt-vhci.o
 
 common-obj-y += dma-helpers.o
 common-obj-y += vl.o
-common-obj-y += tpm/
+common-obj-y += tpm.o
 
 common-obj-$(CONFIG_SLIRP) += slirp/
 
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 7d8908f..f70594d 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -26,4 +26,4 @@ CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_TPM_TIS=$(CONFIG_TPM)
+CONFIG_TPM_TIS=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index e87e644..66c4855 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -26,4 +26,4 @@ CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_TPM_TIS=$(CONFIG_TPM)
+CONFIG_TPM_TIS=y
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 09fea2c..5626292 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -25,6 +25,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += scsi/
 devices-dirs-$(CONFIG_SOFTMMU) += sd/
 devices-dirs-$(CONFIG_SOFTMMU) += ssi/
 devices-dirs-$(CONFIG_SOFTMMU) += timer/
+devices-dirs-$(CONFIG_TPM) += tpm/
 devices-dirs-$(CONFIG_SOFTMMU) += usb/
 devices-dirs-$(CONFIG_SOFTMMU) += virtio/
 devices-dirs-$(CONFIG_SOFTMMU) += watchdog/
diff --git a/tpm/Makefile.objs b/hw/tpm/Makefile.objs
similarity index 61%
rename from tpm/Makefile.objs
rename to hw/tpm/Makefile.objs
index 366e4a7..8bbed7a 100644
--- a/tpm/Makefile.objs
+++ b/hw/tpm/Makefile.objs
@@ -1,4 +1,3 @@
-common-obj-y = tpm.o
-common-obj-$(CONFIG_TPM) += tpm_backend.o
+common-obj-y += tpm_backend.o
 common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o
 common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
diff --git a/tpm/tpm_backend.c b/hw/tpm/tpm_backend.c
similarity index 82%
rename from tpm/tpm_backend.c
rename to hw/tpm/tpm_backend.c
index 4144ef7..31d833c 100644
--- a/tpm/tpm_backend.c
+++ b/hw/tpm/tpm_backend.c
@@ -56,3 +56,17 @@ void tpm_backend_thread_tpm_reset(TPMBackendThread *tbt,
                            NULL);
     }
 }
+
+/*
+ * Write an error message in the given output buffer.
+ */
+void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len)
+{
+    if (out_len >= sizeof(struct tpm_resp_hdr)) {
+        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
+
+        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
+        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
+        resp->errcode = cpu_to_be32(TPM_FAIL);
+    }
+}
diff --git a/tpm/tpm_int.h b/hw/tpm/tpm_int.h
similarity index 49%
rename from tpm/tpm_int.h
rename to hw/tpm/tpm_int.h
index f705643..d5f7bb8 100644
--- a/tpm/tpm_int.h
+++ b/hw/tpm/tpm_int.h
@@ -15,27 +15,8 @@
 #include "exec/memory.h"
 #include "tpm/tpm_tis.h"
 
-struct TPMDriverOps;
-typedef struct TPMDriverOps TPMDriverOps;
-
-typedef struct TPMPassthruState TPMPassthruState;
-
-typedef struct TPMBackend {
-    char *id;
-    enum TpmModel fe_model;
-    char *path;
-    char *cancel_path;
-    const TPMDriverOps *ops;
-
-    union {
-        TPMPassthruState *tpm_pt;
-    } s;
-
-    QLIST_ENTRY(TPMBackend) list;
-} TPMBackend;
-
 /* overall state of the TPM interface */
-typedef struct TPMState {
+struct TPMState {
     ISADevice busdev;
     MemoryRegion mmio;
 
@@ -48,38 +29,10 @@ typedef struct TPMState {
 
     char *backend;
     TPMBackend *be_driver;
-} TPMState;
+};
 
 #define TPM(obj) OBJECT_CHECK(TPMState, (obj), TYPE_TPM_TIS)
 
-typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
-
-struct TPMDriverOps {
-    enum TpmType type;
-    /* get a descriptive text of the backend to display to the user */
-    const char *(*desc)(void);
-
-    TPMBackend *(*create)(QemuOpts *opts, const char *id);
-    void (*destroy)(TPMBackend *t);
-
-    /* initialize the backend */
-    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB *datacb);
-    /* start up the TPM on the backend */
-    int (*startup_tpm)(TPMBackend *t);
-    /* returns true if nothing will ever answer TPM requests */
-    bool (*had_startup_error)(TPMBackend *t);
-
-    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
-
-    void (*deliver_request)(TPMBackend *t);
-
-    void (*reset)(TPMBackend *t);
-
-    void (*cancel_cmd)(TPMBackend *t);
-
-    bool (*get_tpm_established_flag)(TPMBackend *t);
-};
-
 struct tpm_req_hdr {
     uint16_t tag;
     uint32_t len;
@@ -105,10 +58,6 @@ struct tpm_resp_hdr {
 #define TPM_ORD_GetTicks          0xf1
 
 TPMBackend *qemu_find_tpm(const char *id);
-int tpm_register_model(enum TpmModel model);
-int tpm_register_driver(const TPMDriverOps *tdo);
-void tpm_display_backend_drivers(void);
-const TPMDriverOps *tpm_get_backend_driver(const char *type);
 void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len);
 
 extern const TPMDriverOps tpm_passthrough_driver;
diff --git a/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
similarity index 100%
rename from tpm/tpm_passthrough.c
rename to hw/tpm/tpm_passthrough.c
diff --git a/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
similarity index 100%
rename from tpm/tpm_tis.c
rename to hw/tpm/tpm_tis.c
diff --git a/tpm/tpm_tis.h b/hw/tpm/tpm_tis.h
similarity index 94%
rename from tpm/tpm_tis.h
rename to hw/tpm/tpm_tis.h
index 963682c..916152a 100644
--- a/tpm/tpm_tis.h
+++ b/hw/tpm/tpm_tis.h
@@ -35,11 +35,6 @@
 #define TYPE_TPM_TIS                "tpm-tis"
 
 
-typedef struct TPMSizedBuffer {
-    uint32_t size;
-    uint8_t  *buffer;
-} TPMSizedBuffer;
-
 typedef enum {
     TPM_TIS_STATE_IDLE = 0,
     TPM_TIS_STATE_READY,
diff --git a/tpm/tpm_backend.h b/include/tpm/tpm_backend.h
similarity index 50%
rename from tpm/tpm_backend.h
rename to include/tpm/tpm_backend.h
index 05d94d0..f5390b4 100644
--- a/tpm/tpm_backend.h
+++ b/include/tpm/tpm_backend.h
@@ -42,4 +42,61 @@ typedef enum TPMBackendCmd {
     TPM_BACKEND_CMD_TPM_RESET,
 } TPMBackendCmd;
 
+struct TPMDriverOps;
+typedef struct TPMDriverOps TPMDriverOps;
+
+typedef struct TPMState TPMState;
+typedef struct TPMPassthruState TPMPassthruState;
+
+typedef struct TPMBackend {
+    char *id;
+    enum TpmModel fe_model;
+    char *path;
+    char *cancel_path;
+    const TPMDriverOps *ops;
+
+    union {
+        TPMPassthruState *tpm_pt;
+    } s;
+
+    QLIST_ENTRY(TPMBackend) list;
+} TPMBackend;
+
+typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
+
+typedef struct TPMSizedBuffer {
+    uint32_t size;
+    uint8_t  *buffer;
+} TPMSizedBuffer;
+
+struct TPMDriverOps {
+    enum TpmType type;
+    /* get a descriptive text of the backend to display to the user */
+    const char *(*desc)(void);
+
+    TPMBackend *(*create)(QemuOpts *opts, const char *id);
+    void (*destroy)(TPMBackend *t);
+
+    /* initialize the backend */
+    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB *datacb);
+    /* start up the TPM on the backend */
+    int (*startup_tpm)(TPMBackend *t);
+    /* returns true if nothing will ever answer TPM requests */
+    bool (*had_startup_error)(TPMBackend *t);
+
+    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
+
+    void (*deliver_request)(TPMBackend *t);
+
+    void (*reset)(TPMBackend *t);
+
+    void (*cancel_cmd)(TPMBackend *t);
+
+    bool (*get_tpm_established_flag)(TPMBackend *t);
+};
+
+const TPMDriverOps *tpm_get_backend_driver(const char *type);
+int tpm_register_model(enum TpmModel model);
+int tpm_register_driver(const TPMDriverOps *tdo);
+
 #endif /* TPM_TPM_BACKEND_H */
diff --git a/tpm/tpm.c b/tpm.c
similarity index 93%
rename from tpm/tpm.c
rename to tpm.c
index ffd2495..49ac4cc 100644
--- a/tpm/tpm.c
+++ b/tpm.c
@@ -15,7 +15,7 @@
 
 #include "monitor/monitor.h"
 #include "qapi/qmp/qerror.h"
-#include "tpm_int.h"
+#include "tpm/tpm_backend.h"
 #include "tpm/tpm.h"
 #include "qemu/config-file.h"
 #include "qmp-commands.h"
@@ -61,20 +61,6 @@ static bool tpm_model_is_registered(enum TpmModel model)
     return false;
 }
 
-/*
- * Write an error message in the given output buffer.
- */
-void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len)
-{
-    if (out_len >= sizeof(struct tpm_resp_hdr)) {
-        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
-
-        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
-        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
-        resp->errcode = cpu_to_be32(TPM_FAIL);
-    }
-}
-
 const TPMDriverOps *tpm_get_backend_driver(const char *type)
 {
     int i;
@@ -108,7 +94,7 @@ int tpm_register_driver(const TPMDriverOps *tdo)
  * Walk the list of available TPM backend drivers and display them on the
  * screen.
  */
-void tpm_display_backend_drivers(void)
+static void tpm_display_backend_drivers(void)
 {
     int i;
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 05/35] hw: move another file to hw/alpha/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (3 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 06/35] hw: move target-independent files to subdirectories Paolo Bonzini
                   ` (30 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

It references AlphaCPU.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/alpha/Makefile.objs                  | 3 +--
 hw/{alpha_typhoon.c => alpha/typhoon.c} | 0
 2 files changed, 1 insertion(+), 2 deletions(-)
 rename hw/{alpha_typhoon.c => alpha/typhoon.c} (100%)

diff --git a/hw/alpha/Makefile.objs b/hw/alpha/Makefile.objs
index db868d2..bcc32be 100644
--- a/hw/alpha/Makefile.objs
+++ b/hw/alpha/Makefile.objs
@@ -1,6 +1,5 @@
 obj-y = mc146818rtc.o
-obj-y += alpha_typhoon.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
-obj-y += dp264.o pci.o
+obj-y += dp264.o pci.o typhoon.o
diff --git a/hw/alpha_typhoon.c b/hw/alpha/typhoon.c
similarity index 100%
rename from hw/alpha_typhoon.c
rename to hw/alpha/typhoon.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 06/35] hw: move target-independent files to subdirectories
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (4 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 05/35] hw: move another file to hw/alpha/ Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 07/35] hw: move virtio devices to hw/ subdirectories Paolo Bonzini
                   ` (29 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

This patch tackles all files that are compiled once, moving
them to subdirectories of hw/.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak             |   2 +-
 default-configs/mips-softmmu.mak             |   2 +-
 default-configs/mips64-softmmu.mak           |   2 +-
 default-configs/mips64el-softmmu.mak         |   2 +-
 default-configs/mipsel-softmmu.mak           |   2 +-
 default-configs/ppc-softmmu.mak              |   2 +-
 default-configs/ppc64-softmmu.mak            |   2 +-
 default-configs/ppcemb-softmmu.mak           |   2 +-
 default-configs/x86_64-softmmu.mak           |   2 +-
 hw/Makefile.objs                             | 195 ---------------------------
 hw/acpi/Makefile.objs                        |   2 +
 hw/{acpi.c => acpi/core.c}                   |   0
 hw/{acpi_ich9.c => acpi/ich9.c}              |   0
 hw/{acpi_piix4.c => acpi/piix4.c}            |   0
 hw/audio/Makefile.objs                       |  16 +++
 hw/{ => audio}/ac97.c                        |   0
 hw/{ => audio}/adlib.c                       |   0
 hw/{ => audio}/cs4231a.c                     |   0
 hw/{ => audio}/es1370.c                      |   0
 hw/{ => audio}/fmopl.c                       |   0
 hw/{ => audio}/gus.c                         |   0
 hw/{ => audio}/gusemu_hal.c                  |   0
 hw/{ => audio}/gusemu_mixer.c                |   0
 hw/{hda-audio.c => audio/hda-codec.c}        |   0
 hw/{ => audio}/intel-hda.c                   |   0
 hw/{ => audio}/lm4549.c                      |   0
 hw/{ => audio}/pcspk.c                       |   0
 hw/{ => audio}/pl041.c                       |   0
 hw/{ => audio}/pl041.hx                      |   0
 hw/{ => audio}/sb16.c                        |   0
 hw/{ => audio}/wm8750.c                      |   0
 hw/block/Makefile.objs                       |   8 ++
 hw/{block-common.c => block/block.c}         |   0
 hw/{ => block}/cdrom.c                       |   0
 hw/{ => block}/ecc.c                         |   0
 hw/{ => block}/fdc.c                         |   0
 hw/{ => block}/hd-geometry.c                 |   0
 hw/{ => block}/m25p80.c                      |   0
 hw/{ => block}/nand.c                        |   0
 hw/{ => block}/pflash_cfi01.c                |   0
 hw/{ => block}/pflash_cfi02.c                |   0
 hw/{ => block}/xen_disk.c                    |   0
 hw/bt/Makefile.objs                          |   3 +
 hw/{bt.c => bt/core.c}                       |   0
 hw/{bt-hci-csr.c => bt/hci-csr.c}            |   0
 hw/{bt-hci.c => bt/hci.c}                    |   0
 hw/{bt-hid.c => bt/hid.c}                    |   0
 hw/{bt-l2cap.c => bt/l2cap.c}                |   0
 hw/{bt-sdp.c => bt/sdp.c}                    |   0
 hw/char/Makefile.objs                        |  10 ++
 hw/{ => char}/cadence_uart.c                 |   0
 hw/{ => char}/escc.c                         |   0
 hw/{ => char}/ipack.c                        |   0
 hw/{ => char}/ipoctal232.c                   |   0
 hw/{ => char}/parallel.c                     |   0
 hw/{ => char}/pl011.c                        |   0
 hw/{ => char}/serial-isa.c                   |   0
 hw/{ => char}/serial-pci.c                   |   0
 hw/{ => char}/serial.c                       |   0
 hw/{ => char}/tpci200.c                      |   0
 hw/{ => char}/virtio-console.c               |   0
 hw/{ => char}/xen_console.c                  |   0
 hw/{ => char}/xilinx_uartlite.c              |   0
 hw/core/Makefile.objs                        |  14 ++
 hw/{ => core}/empty_slot.c                   |   0
 hw/{ => core}/irq.c                          |   0
 hw/{ => core}/loader.c                       |   0
 hw/{ => core}/null-machine.c                 |   0
 hw/{ => core}/ptimer.c                       |   0
 hw/{ => core}/qdev-addr.c                    |   0
 hw/{ => core}/qdev-properties-system.c       |   0
 hw/{ => core}/qdev-properties.c              |   0
 hw/{ => core}/qdev.c                         |   0
 hw/{ => core}/stream.c                       |   0
 hw/{ => core}/sysbus.c                       |   0
 hw/display/Makefile.objs                     |  13 ++
 hw/{ => display}/ads7846.c                   |   0
 hw/{ => display}/cirrus_vga.c                |   0
 hw/{ => display}/g364fb.c                    |   0
 hw/{ => display}/jazz_led.c                  |   0
 hw/{ => display}/pl110.c                     |   0
 hw/{ => display}/ssd0303.c                   |   0
 hw/{ => display}/ssd0323.c                   |   0
 hw/{ => display}/vga-isa-mm.c                |   0
 hw/{ => display}/vga-isa.c                   |   0
 hw/{ => display}/vga-pci.c                   |   0
 hw/{ => display}/vmware_vga.c                |   0
 hw/{ => display}/xenfb.c                     |   0
 hw/dma/Makefile.objs                         |   6 +
 hw/{dma.c => dma/i8257.c}                    |   0
 hw/{ => dma}/pl080.c                         |   0
 hw/{ => dma}/pl330.c                         |   0
 hw/{ => dma}/puv3_dma.c                      |   0
 hw/{ => dma}/rc4030.c                        |   0
 hw/{ => dma}/xilinx_axidma.c                 |   0
 hw/gpio/Makefile.objs                        |   3 +
 hw/{ => gpio}/max7310.c                      |   0
 hw/{ => gpio}/pl061.c                        |   0
 hw/{ => gpio}/puv3_gpio.c                    |   0
 hw/i2c/Makefile.objs                         |   4 +
 hw/{i2c.c => i2c/core.c}                     |   0
 hw/{ => i2c}/pm_smbus.c                      |   0
 hw/{ => i2c}/smbus.c                         |   0
 hw/{ => i2c}/smbus_eeprom.c                  |   0
 hw/{ => i2c}/smbus_ich9.c                    |   0
 hw/{ => i2c}/versatile_i2c.c                 |   0
 hw/input/Makefile.objs                       |   9 ++
 hw/{ => input}/adb.c                         |   0
 hw/{ => input}/hid.c                         |   0
 hw/{ => input}/lm832x.c                      |   0
 hw/{ => input}/pckbd.c                       |   0
 hw/{ => input}/pl050.c                       |   0
 hw/{ => input}/ps2.c                         |   0
 hw/{ => input}/stellaris_input.c             |   0
 hw/{ => input}/tsc2005.c                     |   0
 hw/{ => input}/vmmouse.c                     |   0
 hw/intc/Makefile.objs                        |   5 +
 hw/{ => intc}/heathrow_pic.c                 |   0
 hw/{ => intc}/i8259.c                        |   0
 hw/{ => intc}/i8259_common.c                 |   0
 hw/{ => intc}/pl190.c                        |   0
 hw/{ => intc}/puv3_intc.c                    |   0
 hw/{ => intc}/xilinx_intc.c                  |   0
 hw/isa/Makefile.objs                         |   9 ++
 hw/{ => isa}/apm.c                           |   0
 hw/{ => isa}/applesmc.c                      |   0
 hw/{ => isa}/i82374.c                        |   0
 hw/{ => isa}/i82378.c                        |   0
 hw/{ => isa}/isa-bus.c                       |   0
 hw/{ => isa}/isa_mmio.c                      |   0
 hw/{ => isa}/pc87312.c                       |   0
 hw/{ => isa}/piix4.c                         |   0
 hw/misc/Makefile.objs                        |  10 ++
 hw/{ => misc}/arm_l2x0.c                     |   0
 hw/misc/macio/Makefile.objs                  |   3 +
 hw/{ => misc/macio}/cuda.c                   |   0
 hw/{ => misc/macio}/mac_dbdma.c              |   0
 hw/{ => misc/macio}/macio.c                  |   0
 hw/{ => misc}/max111x.c                      |   0
 hw/{ => misc}/puv3_pm.c                      |   0
 hw/{ => misc}/tmp105.c                       |   0
 hw/net/Makefile.objs                         |  20 +++
 hw/{ => net}/cadence_gem.c                   |   0
 hw/{ => net}/dp8393x.c                       |   0
 hw/{ => net}/e1000.c                         |   0
 hw/{ => net}/eepro100.c                      |   0
 hw/{ => net}/lan9118.c                       |   0
 hw/{ => net}/mipsnet.c                       |   0
 hw/{ => net}/ne2000-isa.c                    |   0
 hw/{ => net}/ne2000.c                        |   0
 hw/{ => net}/opencores_eth.c                 |   0
 hw/{ => net}/pcnet-pci.c                     |   0
 hw/{ => net}/pcnet.c                         |   0
 hw/{ => net}/rtl8139.c                       |   0
 hw/{ => net}/smc91c111.c                     |   0
 hw/{ => net}/xen_nic.c                       |   0
 hw/{ => net}/xgmac.c                         |   0
 hw/{ => net}/xilinx_axienet.c                |   0
 hw/nvram/Makefile.objs                       |   4 +
 hw/{ => nvram}/ds1225y.c                     |   0
 hw/{ => nvram}/eeprom93xx.c                  |   0
 hw/{ => nvram}/fw_cfg.c                      |   0
 hw/{ => nvram}/mac_nvram.c                   |   0
 hw/pci/Makefile.objs                         |  21 ++-
 hw/{dec_pci.c => pci/host-dec.c}             |   0
 hw/{grackle_pci.c => pci/host-grackle.c}     |   0
 hw/{ppce500_pci.c => pci/host-ppce500.c}     |   0
 hw/{prep_pci.c => pci/host-prep.c}           |   0
 hw/{unin_pci.c => pci/host-uninorth.c}       |   0
 hw/{versatile_pci.c => pci/host-versatile.c} |   0
 hw/{ => pci}/i82801b11.c                     |   0
 hw/{ => pci}/ioh3420.c                       |   0
 hw/{ => pci}/pam.c                           |   0
 hw/{ => pci}/pci_bridge_dev.c                |   0
 hw/{ => pci}/xio3130_downstream.c            |   0
 hw/{ => pci}/xio3130_upstream.c              |   0
 hw/scsi/Makefile.objs                        |   6 +
 hw/{ => scsi}/esp-pci.c                      |   0
 hw/{ => scsi}/esp.c                          |   0
 hw/{ => scsi}/lsi53c895a.c                   |   0
 hw/{ => scsi}/megasas.c                      |   0
 hw/{ => scsi}/scsi-bus.c                     |   0
 hw/{ => scsi}/scsi-disk.c                    |   0
 hw/{ => scsi}/scsi-generic.c                 |   0
 hw/sd/Makefile.objs                          |   4 +
 hw/{ => sd}/pl181.c                          |   0
 hw/{ => sd}/sd.c                             |   0
 hw/{ => sd}/sdhci.c                          |   0
 hw/{ => sd}/ssi-sd.c                         |   0
 hw/ssi/Makefile.objs                         |   2 +
 hw/{ => ssi}/pl022.c                         |   0
 hw/{ => ssi}/ssi.c                           |   0
 hw/timer/Makefile.objs                       |  10 ++
 hw/{ => timer}/arm_timer.c                   |   0
 hw/{ => timer}/cadence_ttc.c                 |   0
 hw/{ => timer}/ds1338.c                      |   0
 hw/{ => timer}/hpet.c                        |   0
 hw/{ => timer}/i8254.c                       |   0
 hw/{ => timer}/i8254_common.c                |   0
 hw/{ => timer}/m48t59.c                      |   0
 hw/{ => timer}/pl031.c                       |   0
 hw/{ => timer}/puv3_ost.c                    |   0
 hw/{ => timer}/twl92230.c                    |   0
 hw/{ => timer}/xilinx_timer.c                |   0
 hw/usb/Makefile.objs                         |   7 +-
 hw/{ => usb}/ccid-card-emulated.c            |   0
 hw/{ => usb}/ccid-card-passthru.c            |   0
 hw/virtio/Makefile.objs                      |   4 +
 hw/{ => virtio}/virtio-bus.c                 |   0
 hw/{ => virtio}/virtio-pci.c                 |   0
 hw/{ => virtio}/virtio-rng.c                 |   0
 hw/watchdog/Makefile.objs                    |   2 +
 hw/{ => watchdog}/watchdog.c                 |   0
 hw/{ => watchdog}/wdt_i6300esb.c             |   0
 hw/xen/Makefile.objs                         |   2 +
 hw/{ => xen}/xen_backend.c                   |   0
 hw/{ => xen}/xen_devconfig.c                 |   0
 217 files changed, 204 insertions(+), 206 deletions(-)
 rename hw/{acpi.c => acpi/core.c} (100%)
 rename hw/{acpi_ich9.c => acpi/ich9.c} (100%)
 rename hw/{acpi_piix4.c => acpi/piix4.c} (100%)
 rename hw/{ => audio}/ac97.c (100%)
 rename hw/{ => audio}/adlib.c (100%)
 rename hw/{ => audio}/cs4231a.c (100%)
 rename hw/{ => audio}/es1370.c (100%)
 rename hw/{ => audio}/fmopl.c (100%)
 rename hw/{ => audio}/gus.c (100%)
 rename hw/{ => audio}/gusemu_hal.c (100%)
 rename hw/{ => audio}/gusemu_mixer.c (100%)
 rename hw/{hda-audio.c => audio/hda-codec.c} (100%)
 rename hw/{ => audio}/intel-hda.c (100%)
 rename hw/{ => audio}/lm4549.c (100%)
 rename hw/{ => audio}/pcspk.c (100%)
 rename hw/{ => audio}/pl041.c (100%)
 rename hw/{ => audio}/pl041.hx (100%)
 rename hw/{ => audio}/sb16.c (100%)
 rename hw/{ => audio}/wm8750.c (100%)
 rename hw/{block-common.c => block/block.c} (100%)
 rename hw/{ => block}/cdrom.c (100%)
 rename hw/{ => block}/ecc.c (100%)
 rename hw/{ => block}/fdc.c (100%)
 rename hw/{ => block}/hd-geometry.c (100%)
 rename hw/{ => block}/m25p80.c (100%)
 rename hw/{ => block}/nand.c (100%)
 rename hw/{ => block}/pflash_cfi01.c (100%)
 rename hw/{ => block}/pflash_cfi02.c (100%)
 rename hw/{ => block}/xen_disk.c (100%)
 rename hw/{bt.c => bt/core.c} (100%)
 rename hw/{bt-hci-csr.c => bt/hci-csr.c} (100%)
 rename hw/{bt-hci.c => bt/hci.c} (100%)
 rename hw/{bt-hid.c => bt/hid.c} (100%)
 rename hw/{bt-l2cap.c => bt/l2cap.c} (100%)
 rename hw/{bt-sdp.c => bt/sdp.c} (100%)
 rename hw/{ => char}/cadence_uart.c (100%)
 rename hw/{ => char}/escc.c (100%)
 rename hw/{ => char}/ipack.c (100%)
 rename hw/{ => char}/ipoctal232.c (100%)
 rename hw/{ => char}/parallel.c (100%)
 rename hw/{ => char}/pl011.c (100%)
 rename hw/{ => char}/serial-isa.c (100%)
 rename hw/{ => char}/serial-pci.c (100%)
 rename hw/{ => char}/serial.c (100%)
 rename hw/{ => char}/tpci200.c (100%)
 rename hw/{ => char}/virtio-console.c (100%)
 rename hw/{ => char}/xen_console.c (100%)
 rename hw/{ => char}/xilinx_uartlite.c (100%)
 rename hw/{ => core}/empty_slot.c (100%)
 rename hw/{ => core}/irq.c (100%)
 rename hw/{ => core}/loader.c (100%)
 rename hw/{ => core}/null-machine.c (100%)
 rename hw/{ => core}/ptimer.c (100%)
 rename hw/{ => core}/qdev-addr.c (100%)
 rename hw/{ => core}/qdev-properties-system.c (100%)
 rename hw/{ => core}/qdev-properties.c (100%)
 rename hw/{ => core}/qdev.c (100%)
 rename hw/{ => core}/stream.c (100%)
 rename hw/{ => core}/sysbus.c (100%)
 rename hw/{ => display}/ads7846.c (100%)
 rename hw/{ => display}/cirrus_vga.c (100%)
 rename hw/{ => display}/g364fb.c (100%)
 rename hw/{ => display}/jazz_led.c (100%)
 rename hw/{ => display}/pl110.c (100%)
 rename hw/{ => display}/ssd0303.c (100%)
 rename hw/{ => display}/ssd0323.c (100%)
 rename hw/{ => display}/vga-isa-mm.c (100%)
 rename hw/{ => display}/vga-isa.c (100%)
 rename hw/{ => display}/vga-pci.c (100%)
 rename hw/{ => display}/vmware_vga.c (100%)
 rename hw/{ => display}/xenfb.c (100%)
 rename hw/{dma.c => dma/i8257.c} (100%)
 rename hw/{ => dma}/pl080.c (100%)
 rename hw/{ => dma}/pl330.c (100%)
 rename hw/{ => dma}/puv3_dma.c (100%)
 rename hw/{ => dma}/rc4030.c (100%)
 rename hw/{ => dma}/xilinx_axidma.c (100%)
 rename hw/{ => gpio}/max7310.c (100%)
 rename hw/{ => gpio}/pl061.c (100%)
 rename hw/{ => gpio}/puv3_gpio.c (100%)
 rename hw/{i2c.c => i2c/core.c} (100%)
 rename hw/{ => i2c}/pm_smbus.c (100%)
 rename hw/{ => i2c}/smbus.c (100%)
 rename hw/{ => i2c}/smbus_eeprom.c (100%)
 rename hw/{ => i2c}/smbus_ich9.c (100%)
 rename hw/{ => i2c}/versatile_i2c.c (100%)
 rename hw/{ => input}/adb.c (100%)
 rename hw/{ => input}/hid.c (100%)
 rename hw/{ => input}/lm832x.c (100%)
 rename hw/{ => input}/pckbd.c (100%)
 rename hw/{ => input}/pl050.c (100%)
 rename hw/{ => input}/ps2.c (100%)
 rename hw/{ => input}/stellaris_input.c (100%)
 rename hw/{ => input}/tsc2005.c (100%)
 rename hw/{ => input}/vmmouse.c (100%)
 rename hw/{ => intc}/heathrow_pic.c (100%)
 rename hw/{ => intc}/i8259.c (100%)
 rename hw/{ => intc}/i8259_common.c (100%)
 rename hw/{ => intc}/pl190.c (100%)
 rename hw/{ => intc}/puv3_intc.c (100%)
 rename hw/{ => intc}/xilinx_intc.c (100%)
 rename hw/{ => isa}/apm.c (100%)
 rename hw/{ => isa}/applesmc.c (100%)
 rename hw/{ => isa}/i82374.c (100%)
 rename hw/{ => isa}/i82378.c (100%)
 rename hw/{ => isa}/isa-bus.c (100%)
 rename hw/{ => isa}/isa_mmio.c (100%)
 rename hw/{ => isa}/pc87312.c (100%)
 rename hw/{ => isa}/piix4.c (100%)
 rename hw/{ => misc}/arm_l2x0.c (100%)
 create mode 100644 hw/misc/macio/Makefile.objs
 rename hw/{ => misc/macio}/cuda.c (100%)
 rename hw/{ => misc/macio}/mac_dbdma.c (100%)
 rename hw/{ => misc/macio}/macio.c (100%)
 rename hw/{ => misc}/max111x.c (100%)
 rename hw/{ => misc}/puv3_pm.c (100%)
 rename hw/{ => misc}/tmp105.c (100%)
 rename hw/{ => net}/cadence_gem.c (100%)
 rename hw/{ => net}/dp8393x.c (100%)
 rename hw/{ => net}/e1000.c (100%)
 rename hw/{ => net}/eepro100.c (100%)
 rename hw/{ => net}/lan9118.c (100%)
 rename hw/{ => net}/mipsnet.c (100%)
 rename hw/{ => net}/ne2000-isa.c (100%)
 rename hw/{ => net}/ne2000.c (100%)
 rename hw/{ => net}/opencores_eth.c (100%)
 rename hw/{ => net}/pcnet-pci.c (100%)
 rename hw/{ => net}/pcnet.c (100%)
 rename hw/{ => net}/rtl8139.c (100%)
 rename hw/{ => net}/smc91c111.c (100%)
 rename hw/{ => net}/xen_nic.c (100%)
 rename hw/{ => net}/xgmac.c (100%)
 rename hw/{ => net}/xilinx_axienet.c (100%)
 rename hw/{ => nvram}/ds1225y.c (100%)
 rename hw/{ => nvram}/eeprom93xx.c (100%)
 rename hw/{ => nvram}/fw_cfg.c (100%)
 rename hw/{ => nvram}/mac_nvram.c (100%)
 rename hw/{dec_pci.c => pci/host-dec.c} (100%)
 rename hw/{grackle_pci.c => pci/host-grackle.c} (100%)
 rename hw/{ppce500_pci.c => pci/host-ppce500.c} (100%)
 rename hw/{prep_pci.c => pci/host-prep.c} (100%)
 rename hw/{unin_pci.c => pci/host-uninorth.c} (100%)
 rename hw/{versatile_pci.c => pci/host-versatile.c} (100%)
 rename hw/{ => pci}/i82801b11.c (100%)
 rename hw/{ => pci}/ioh3420.c (100%)
 rename hw/{ => pci}/pam.c (100%)
 rename hw/{ => pci}/pci_bridge_dev.c (100%)
 rename hw/{ => pci}/xio3130_downstream.c (100%)
 rename hw/{ => pci}/xio3130_upstream.c (100%)
 rename hw/{ => scsi}/esp-pci.c (100%)
 rename hw/{ => scsi}/esp.c (100%)
 rename hw/{ => scsi}/lsi53c895a.c (100%)
 rename hw/{ => scsi}/megasas.c (100%)
 rename hw/{ => scsi}/scsi-bus.c (100%)
 rename hw/{ => scsi}/scsi-disk.c (100%)
 rename hw/{ => scsi}/scsi-generic.c (100%)
 rename hw/{ => sd}/pl181.c (100%)
 rename hw/{ => sd}/sd.c (100%)
 rename hw/{ => sd}/sdhci.c (100%)
 rename hw/{ => sd}/ssi-sd.c (100%)
 rename hw/{ => ssi}/pl022.c (100%)
 rename hw/{ => ssi}/ssi.c (100%)
 rename hw/{ => timer}/arm_timer.c (100%)
 rename hw/{ => timer}/cadence_ttc.c (100%)
 rename hw/{ => timer}/ds1338.c (100%)
 rename hw/{ => timer}/hpet.c (100%)
 rename hw/{ => timer}/i8254.c (100%)
 rename hw/{ => timer}/i8254_common.c (100%)
 rename hw/{ => timer}/m48t59.c (100%)
 rename hw/{ => timer}/pl031.c (100%)
 rename hw/{ => timer}/puv3_ost.c (100%)
 rename hw/{ => timer}/twl92230.c (100%)
 rename hw/{ => timer}/xilinx_timer.c (100%)
 rename hw/{ => usb}/ccid-card-emulated.c (100%)
 rename hw/{ => usb}/ccid-card-passthru.c (100%)
 rename hw/{ => virtio}/virtio-bus.c (100%)
 rename hw/{ => virtio}/virtio-pci.c (100%)
 rename hw/{ => virtio}/virtio-rng.c (100%)
 rename hw/{ => watchdog}/watchdog.c (100%)
 rename hw/{ => watchdog}/wdt_i6300esb.c (100%)
 rename hw/{ => xen}/xen_backend.c (100%)
 rename hw/{ => xen}/xen_devconfig.c (100%)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index f70594d..03e4a04 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -16,7 +16,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
 CONFIG_NE2000_ISA=y
diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak
index 4f04a33..dff6fef 100644
--- a/default-configs/mips-softmmu.mak
+++ b/default-configs/mips-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_PIIX4=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
diff --git a/default-configs/mips64-softmmu.mak b/default-configs/mips64-softmmu.mak
index a5b6c3c..0968e5f 100644
--- a/default-configs/mips64-softmmu.mak
+++ b/default-configs/mips64-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_PIIX4=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index a0e6de8..6f115d4 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_PIIX4=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
diff --git a/default-configs/mipsel-softmmu.mak b/default-configs/mipsel-softmmu.mak
index 753dd76..e391cf7 100644
--- a/default-configs/mipsel-softmmu.mak
+++ b/default-configs/mipsel-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_PIIX4=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index c209a8d..cdf82b1 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -13,7 +13,7 @@ CONFIG_PARALLEL=y
 CONFIG_I8254=y
 CONFIG_PCKBD=y
 CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_I82374=y
 CONFIG_OPENPIC=y
 CONFIG_PREP_PCI=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 8d490bd..ee895e9 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -13,7 +13,7 @@ CONFIG_PARALLEL=y
 CONFIG_I8254=y
 CONFIG_PCKBD=y
 CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_I82374=y
 CONFIG_OPENPIC=y
 CONFIG_PREP_PCI=y
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 7f13421..806adfd 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -12,7 +12,7 @@ CONFIG_SERIAL=y
 CONFIG_I8254=y
 CONFIG_PCKBD=y
 CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_OPENPIC=y
 CONFIG_PREP_PCI=y
 CONFIG_MACIO=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 66c4855..d4bc265 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -16,7 +16,7 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
 CONFIG_NE2000_ISA=y
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 5626292..6727fe7 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -1,8 +1,3 @@
-# core qdev-related obj files, also used by *-user:
-common-obj-y += qdev.o qdev-properties.o
-# irq.o needed for qdev GPIO handling:
-common-obj-y += irq.o
-
 devices-dirs-$(CONFIG_REALLY_VIRTFS) += 9pfs/
 devices-dirs-$(CONFIG_ACPI) += acpi/
 devices-dirs-$(CONFIG_SOFTMMU) += audio/
@@ -35,196 +30,6 @@ common-obj-y += $(devices-dirs-y)
 obj-y += $(devices-dirs-y)
 
 ifeq ($(CONFIG_SOFTMMU),y)
-common-obj-y += loader.o
-common-obj-$(CONFIG_VIRTIO) += virtio-console.o
-common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
-common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
-common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
-common-obj-y += fw_cfg.o
-common-obj-$(CONFIG_PCI) += pci_bridge_dev.o
-common-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
-common-obj-$(CONFIG_PCI) += i82801b11.o
-common-obj-y += watchdog.o
-common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
-common-obj-$(CONFIG_ECC) += ecc.o
-common-obj-$(CONFIG_NAND) += nand.o
-common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
-common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
-
-common-obj-$(CONFIG_M48T59) += m48t59.o
-common-obj-$(CONFIG_ESCC) += escc.o
-common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
-
-common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
-common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
-common-obj-$(CONFIG_PARALLEL) += parallel.o
-common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
-common-obj-$(CONFIG_PCSPK) += pcspk.o
-common-obj-$(CONFIG_PCKBD) += pckbd.o
-common-obj-$(CONFIG_FDC) += fdc.o
-common-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o acpi_ich9.o smbus_ich9.o
-common-obj-$(CONFIG_APM) += pm_smbus.o apm.o
-common-obj-$(CONFIG_DMA) += dma.o
-common-obj-$(CONFIG_I82374) += i82374.o
-common-obj-$(CONFIG_HPET) += hpet.o
-common-obj-$(CONFIG_APPLESMC) += applesmc.o
-ifeq ($(CONFIG_USB_SMARTCARD),y)
-common-obj-y += ccid-card-passthru.o
-common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
-endif
-common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
-common-obj-$(CONFIG_SDHCI) += sdhci.o
-common-obj-y += pam.o
-
-# PPC devices
-common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
-common-obj-$(CONFIG_I82378) += i82378.o
-common-obj-$(CONFIG_PC87312) += pc87312.o
-# Mac shared devices
-common-obj-$(CONFIG_MACIO) += macio.o
-common-obj-$(CONFIG_CUDA) += cuda.o
-common-obj-$(CONFIG_ADB) += adb.o
-common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
-common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
-# OldWorld PowerMac
-common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
-common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
-# NewWorld PowerMac
-common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
-common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
-# PowerPC E500 boards
-common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
-
-# MIPS devices
-common-obj-$(CONFIG_PIIX4) += piix4.o
-common-obj-$(CONFIG_G364FB) += g364fb.o
-common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
-
-# Xilinx devices
-common-obj-$(CONFIG_XILINX) += xilinx_intc.o
-common-obj-$(CONFIG_XILINX) += xilinx_timer.o
-common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
-common-obj-$(CONFIG_XILINX_AXI) += stream.o
-
-# PKUnity SoC devices
-common-obj-$(CONFIG_PUV3) += puv3_intc.o
-common-obj-$(CONFIG_PUV3) += puv3_ost.o
-common-obj-$(CONFIG_PUV3) += puv3_gpio.o
-common-obj-$(CONFIG_PUV3) += puv3_pm.o
-common-obj-$(CONFIG_PUV3) += puv3_dma.o
-
-# ARM devices
-common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
-common-obj-$(CONFIG_PL011) += pl011.o
-common-obj-$(CONFIG_PL022) += pl022.o
-common-obj-$(CONFIG_PL031) += pl031.o
-common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
-common-obj-$(CONFIG_PL050) += pl050.o
-common-obj-$(CONFIG_PL061) += pl061.o
-common-obj-$(CONFIG_PL080) += pl080.o
-common-obj-$(CONFIG_PL110) += pl110.o
-common-obj-$(CONFIG_PL181) += pl181.o
-common-obj-$(CONFIG_PL190) += pl190.o
-common-obj-$(CONFIG_PL310) += arm_l2x0.o
-common-obj-$(CONFIG_PL330) += pl330.o
-common-obj-$(CONFIG_VERSATILE_PCI) += versatile_pci.o
-common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
-common-obj-$(CONFIG_CADENCE) += cadence_uart.o
-common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
-common-obj-$(CONFIG_CADENCE) += cadence_gem.o
-common-obj-$(CONFIG_XGMAC) += xgmac.o
-
-# PCI watchdog devices
-common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
-
-# IndustryPack
-common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
-
-# PCI network cards
-common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
-common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
-common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
-common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
-common-obj-$(CONFIG_E1000_PCI) += e1000.o
-common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
-
-common-obj-$(CONFIG_SMC91C111) += smc91c111.o
-common-obj-$(CONFIG_LAN9118) += lan9118.o
-common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
-common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
-
-# SCSI layer
-common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
-common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
-common-obj-$(CONFIG_ESP) += esp.o
-common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
-
-common-obj-y += sysbus.o isa-bus.o
-common-obj-y += qdev-addr.o
-
-# VGA
-common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
-common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
-common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
-common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
-common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
-common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
-
-common-obj-$(CONFIG_RC4030) += rc4030.o
-common-obj-$(CONFIG_DP8393X) += dp8393x.o
-common-obj-$(CONFIG_DS1225Y) += ds1225y.o
-common-obj-$(CONFIG_MIPSNET) += mipsnet.o
-
-common-obj-y += null-machine.o
-
-# Sound
-sound-obj-y =
-sound-obj-$(CONFIG_SB16) += sb16.o
-sound-obj-$(CONFIG_ES1370) += es1370.o
-sound-obj-$(CONFIG_AC97) += ac97.o
-sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
-sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
-sound-obj-$(CONFIG_CS4231A) += cs4231a.o
-sound-obj-$(CONFIG_HDA) += intel-hda.o hda-audio.o
-
-$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
-
-common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
-
-common-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
-
-common-obj-$(CONFIG_PTIMER) += ptimer.o
-common-obj-$(CONFIG_MAX7310) += max7310.o
-common-obj-$(CONFIG_WM8750) += wm8750.o
-common-obj-$(CONFIG_TWL92230) += twl92230.o
-common-obj-$(CONFIG_TSC2005) += tsc2005.o
-common-obj-$(CONFIG_LM832X) += lm832x.o
-common-obj-$(CONFIG_TMP105) += tmp105.o
-common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
-common-obj-$(CONFIG_SSD0303) += ssd0303.o
-common-obj-$(CONFIG_SSD0323) += ssd0323.o
-common-obj-$(CONFIG_ADS7846) += ads7846.o
-common-obj-$(CONFIG_MAX111X) += max111x.o
-common-obj-$(CONFIG_DS1338) += ds1338.o
-common-obj-y += i2c.o smbus.o smbus_eeprom.o
-common-obj-y += eeprom93xx.o
-common-obj-y += scsi-disk.o cdrom.o hd-geometry.o block-common.o
-common-obj-y += scsi-generic.o scsi-bus.o
-common-obj-y += hid.o
-common-obj-$(CONFIG_SSI) += ssi.o
-common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
-common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
-common-obj-$(CONFIG_SD) += sd.o
-common-obj-y += bt.o bt-l2cap.o bt-sdp.o bt-hci.o bt-hid.o
-common-obj-y += bt-hci-csr.o
-common-obj-y += ps2.o
-common-obj-y += qdev-properties-system.o
-
-# xen backend driver support
-common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
-common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o
 
 # Per-target files
 # virtio has to be here due to weird dependency between PCI and virtio-net.
diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
index e69de29..a0b63b5 100644
--- a/hw/acpi/Makefile.objs
+++ b/hw/acpi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_ACPI) += core.o piix4.o ich9.o
+
diff --git a/hw/acpi.c b/hw/acpi/core.c
similarity index 100%
rename from hw/acpi.c
rename to hw/acpi/core.c
diff --git a/hw/acpi_ich9.c b/hw/acpi/ich9.c
similarity index 100%
rename from hw/acpi_ich9.c
rename to hw/acpi/ich9.c
diff --git a/hw/acpi_piix4.c b/hw/acpi/piix4.c
similarity index 100%
rename from hw/acpi_piix4.c
rename to hw/acpi/piix4.c
diff --git a/hw/audio/Makefile.objs b/hw/audio/Makefile.objs
index e69de29..c50c367 100644
--- a/hw/audio/Makefile.objs
+++ b/hw/audio/Makefile.objs
@@ -0,0 +1,16 @@
+# Sound
+sound-obj-y =
+sound-obj-$(CONFIG_SB16) += sb16.o
+sound-obj-$(CONFIG_ES1370) += es1370.o
+sound-obj-$(CONFIG_AC97) += ac97.o
+sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
+sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
+sound-obj-$(CONFIG_CS4231A) += cs4231a.o
+sound-obj-$(CONFIG_HDA) += intel-hda.o hda-codec.o
+
+common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
+common-obj-$(CONFIG_PCSPK) += pcspk.o
+common-obj-$(CONFIG_WM8750) += wm8750.o
+common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
+
+$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
diff --git a/hw/ac97.c b/hw/audio/ac97.c
similarity index 100%
rename from hw/ac97.c
rename to hw/audio/ac97.c
diff --git a/hw/adlib.c b/hw/audio/adlib.c
similarity index 100%
rename from hw/adlib.c
rename to hw/audio/adlib.c
diff --git a/hw/cs4231a.c b/hw/audio/cs4231a.c
similarity index 100%
rename from hw/cs4231a.c
rename to hw/audio/cs4231a.c
diff --git a/hw/es1370.c b/hw/audio/es1370.c
similarity index 100%
rename from hw/es1370.c
rename to hw/audio/es1370.c
diff --git a/hw/fmopl.c b/hw/audio/fmopl.c
similarity index 100%
rename from hw/fmopl.c
rename to hw/audio/fmopl.c
diff --git a/hw/gus.c b/hw/audio/gus.c
similarity index 100%
rename from hw/gus.c
rename to hw/audio/gus.c
diff --git a/hw/gusemu_hal.c b/hw/audio/gusemu_hal.c
similarity index 100%
rename from hw/gusemu_hal.c
rename to hw/audio/gusemu_hal.c
diff --git a/hw/gusemu_mixer.c b/hw/audio/gusemu_mixer.c
similarity index 100%
rename from hw/gusemu_mixer.c
rename to hw/audio/gusemu_mixer.c
diff --git a/hw/hda-audio.c b/hw/audio/hda-codec.c
similarity index 100%
rename from hw/hda-audio.c
rename to hw/audio/hda-codec.c
diff --git a/hw/intel-hda.c b/hw/audio/intel-hda.c
similarity index 100%
rename from hw/intel-hda.c
rename to hw/audio/intel-hda.c
diff --git a/hw/lm4549.c b/hw/audio/lm4549.c
similarity index 100%
rename from hw/lm4549.c
rename to hw/audio/lm4549.c
diff --git a/hw/pcspk.c b/hw/audio/pcspk.c
similarity index 100%
rename from hw/pcspk.c
rename to hw/audio/pcspk.c
diff --git a/hw/pl041.c b/hw/audio/pl041.c
similarity index 100%
rename from hw/pl041.c
rename to hw/audio/pl041.c
diff --git a/hw/pl041.hx b/hw/audio/pl041.hx
similarity index 100%
rename from hw/pl041.hx
rename to hw/audio/pl041.hx
diff --git a/hw/sb16.c b/hw/audio/sb16.c
similarity index 100%
rename from hw/sb16.c
rename to hw/audio/sb16.c
diff --git a/hw/wm8750.c b/hw/audio/wm8750.c
similarity index 100%
rename from hw/wm8750.c
rename to hw/audio/wm8750.c
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index e69de29..5fa5101 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -0,0 +1,8 @@
+common-obj-y += block.o cdrom.o hd-geometry.o
+common-obj-$(CONFIG_FDC) += fdc.o
+common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
+common-obj-$(CONFIG_NAND) += nand.o
+common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
+common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
+common-obj-$(CONFIG_ECC) += ecc.o
diff --git a/hw/block-common.c b/hw/block/block.c
similarity index 100%
rename from hw/block-common.c
rename to hw/block/block.c
diff --git a/hw/cdrom.c b/hw/block/cdrom.c
similarity index 100%
rename from hw/cdrom.c
rename to hw/block/cdrom.c
diff --git a/hw/ecc.c b/hw/block/ecc.c
similarity index 100%
rename from hw/ecc.c
rename to hw/block/ecc.c
diff --git a/hw/fdc.c b/hw/block/fdc.c
similarity index 100%
rename from hw/fdc.c
rename to hw/block/fdc.c
diff --git a/hw/hd-geometry.c b/hw/block/hd-geometry.c
similarity index 100%
rename from hw/hd-geometry.c
rename to hw/block/hd-geometry.c
diff --git a/hw/m25p80.c b/hw/block/m25p80.c
similarity index 100%
rename from hw/m25p80.c
rename to hw/block/m25p80.c
diff --git a/hw/nand.c b/hw/block/nand.c
similarity index 100%
rename from hw/nand.c
rename to hw/block/nand.c
diff --git a/hw/pflash_cfi01.c b/hw/block/pflash_cfi01.c
similarity index 100%
rename from hw/pflash_cfi01.c
rename to hw/block/pflash_cfi01.c
diff --git a/hw/pflash_cfi02.c b/hw/block/pflash_cfi02.c
similarity index 100%
rename from hw/pflash_cfi02.c
rename to hw/block/pflash_cfi02.c
diff --git a/hw/xen_disk.c b/hw/block/xen_disk.c
similarity index 100%
rename from hw/xen_disk.c
rename to hw/block/xen_disk.c
diff --git a/hw/bt/Makefile.objs b/hw/bt/Makefile.objs
index e69de29..867a7d2 100644
--- a/hw/bt/Makefile.objs
+++ b/hw/bt/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += core.o l2cap.o sdp.o hci.o hid.o
+common-obj-y += hci-csr.o
+
diff --git a/hw/bt.c b/hw/bt/core.c
similarity index 100%
rename from hw/bt.c
rename to hw/bt/core.c
diff --git a/hw/bt-hci-csr.c b/hw/bt/hci-csr.c
similarity index 100%
rename from hw/bt-hci-csr.c
rename to hw/bt/hci-csr.c
diff --git a/hw/bt-hci.c b/hw/bt/hci.c
similarity index 100%
rename from hw/bt-hci.c
rename to hw/bt/hci.c
diff --git a/hw/bt-hid.c b/hw/bt/hid.c
similarity index 100%
rename from hw/bt-hid.c
rename to hw/bt/hid.c
diff --git a/hw/bt-l2cap.c b/hw/bt/l2cap.c
similarity index 100%
rename from hw/bt-l2cap.c
rename to hw/bt/l2cap.c
diff --git a/hw/bt-sdp.c b/hw/bt/sdp.c
similarity index 100%
rename from hw/bt-sdp.c
rename to hw/bt/sdp.c
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index e69de29..eee23ff 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
+common-obj-$(CONFIG_ESCC) += escc.o
+common-obj-$(CONFIG_PARALLEL) += parallel.o
+common-obj-$(CONFIG_PL011) += pl011.o
+common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
+common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-console.o
+common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o
+common-obj-$(CONFIG_CADENCE) += cadence_uart.o
diff --git a/hw/cadence_uart.c b/hw/char/cadence_uart.c
similarity index 100%
rename from hw/cadence_uart.c
rename to hw/char/cadence_uart.c
diff --git a/hw/escc.c b/hw/char/escc.c
similarity index 100%
rename from hw/escc.c
rename to hw/char/escc.c
diff --git a/hw/ipack.c b/hw/char/ipack.c
similarity index 100%
rename from hw/ipack.c
rename to hw/char/ipack.c
diff --git a/hw/ipoctal232.c b/hw/char/ipoctal232.c
similarity index 100%
rename from hw/ipoctal232.c
rename to hw/char/ipoctal232.c
diff --git a/hw/parallel.c b/hw/char/parallel.c
similarity index 100%
rename from hw/parallel.c
rename to hw/char/parallel.c
diff --git a/hw/pl011.c b/hw/char/pl011.c
similarity index 100%
rename from hw/pl011.c
rename to hw/char/pl011.c
diff --git a/hw/serial-isa.c b/hw/char/serial-isa.c
similarity index 100%
rename from hw/serial-isa.c
rename to hw/char/serial-isa.c
diff --git a/hw/serial-pci.c b/hw/char/serial-pci.c
similarity index 100%
rename from hw/serial-pci.c
rename to hw/char/serial-pci.c
diff --git a/hw/serial.c b/hw/char/serial.c
similarity index 100%
rename from hw/serial.c
rename to hw/char/serial.c
diff --git a/hw/tpci200.c b/hw/char/tpci200.c
similarity index 100%
rename from hw/tpci200.c
rename to hw/char/tpci200.c
diff --git a/hw/virtio-console.c b/hw/char/virtio-console.c
similarity index 100%
rename from hw/virtio-console.c
rename to hw/char/virtio-console.c
diff --git a/hw/xen_console.c b/hw/char/xen_console.c
similarity index 100%
rename from hw/xen_console.c
rename to hw/char/xen_console.c
diff --git a/hw/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
similarity index 100%
rename from hw/xilinx_uartlite.c
rename to hw/char/xilinx_uartlite.c
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index e69de29..94109f3 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -0,0 +1,14 @@
+# core qdev-related obj files, also used by *-user:
+common-obj-y += qdev.o qdev-properties.o
+# irq.o needed for qdev GPIO handling:
+common-obj-y += irq.o
+
+common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
+common-obj-$(CONFIG_XILINX_AXI) += stream.o
+common-obj-$(CONFIG_PTIMER) += ptimer.o
+common-obj-$(CONFIG_SOFTMMU) += sysbus.o
+common-obj-$(CONFIG_SOFTMMU) += null-machine.o
+common-obj-$(CONFIG_SOFTMMU) += loader.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-addr.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o
+
diff --git a/hw/empty_slot.c b/hw/core/empty_slot.c
similarity index 100%
rename from hw/empty_slot.c
rename to hw/core/empty_slot.c
diff --git a/hw/irq.c b/hw/core/irq.c
similarity index 100%
rename from hw/irq.c
rename to hw/core/irq.c
diff --git a/hw/loader.c b/hw/core/loader.c
similarity index 100%
rename from hw/loader.c
rename to hw/core/loader.c
diff --git a/hw/null-machine.c b/hw/core/null-machine.c
similarity index 100%
rename from hw/null-machine.c
rename to hw/core/null-machine.c
diff --git a/hw/ptimer.c b/hw/core/ptimer.c
similarity index 100%
rename from hw/ptimer.c
rename to hw/core/ptimer.c
diff --git a/hw/qdev-addr.c b/hw/core/qdev-addr.c
similarity index 100%
rename from hw/qdev-addr.c
rename to hw/core/qdev-addr.c
diff --git a/hw/qdev-properties-system.c b/hw/core/qdev-properties-system.c
similarity index 100%
rename from hw/qdev-properties-system.c
rename to hw/core/qdev-properties-system.c
diff --git a/hw/qdev-properties.c b/hw/core/qdev-properties.c
similarity index 100%
rename from hw/qdev-properties.c
rename to hw/core/qdev-properties.c
diff --git a/hw/qdev.c b/hw/core/qdev.c
similarity index 100%
rename from hw/qdev.c
rename to hw/core/qdev.c
diff --git a/hw/stream.c b/hw/core/stream.c
similarity index 100%
rename from hw/stream.c
rename to hw/core/stream.c
diff --git a/hw/sysbus.c b/hw/core/sysbus.c
similarity index 100%
rename from hw/sysbus.c
rename to hw/core/sysbus.c
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index e69de29..3ac154d 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -0,0 +1,13 @@
+common-obj-$(CONFIG_ADS7846) += ads7846.o
+common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
+common-obj-$(CONFIG_G364FB) += g364fb.o
+common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
+common-obj-$(CONFIG_PL110) += pl110.o
+common-obj-$(CONFIG_SSD0303) += ssd0303.o
+common-obj-$(CONFIG_SSD0323) += ssd0323.o
+common-obj-$(CONFIG_XEN_BACKEND) += xenfb.o
+
+common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
+common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
+common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
+common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
diff --git a/hw/ads7846.c b/hw/display/ads7846.c
similarity index 100%
rename from hw/ads7846.c
rename to hw/display/ads7846.c
diff --git a/hw/cirrus_vga.c b/hw/display/cirrus_vga.c
similarity index 100%
rename from hw/cirrus_vga.c
rename to hw/display/cirrus_vga.c
diff --git a/hw/g364fb.c b/hw/display/g364fb.c
similarity index 100%
rename from hw/g364fb.c
rename to hw/display/g364fb.c
diff --git a/hw/jazz_led.c b/hw/display/jazz_led.c
similarity index 100%
rename from hw/jazz_led.c
rename to hw/display/jazz_led.c
diff --git a/hw/pl110.c b/hw/display/pl110.c
similarity index 100%
rename from hw/pl110.c
rename to hw/display/pl110.c
diff --git a/hw/ssd0303.c b/hw/display/ssd0303.c
similarity index 100%
rename from hw/ssd0303.c
rename to hw/display/ssd0303.c
diff --git a/hw/ssd0323.c b/hw/display/ssd0323.c
similarity index 100%
rename from hw/ssd0323.c
rename to hw/display/ssd0323.c
diff --git a/hw/vga-isa-mm.c b/hw/display/vga-isa-mm.c
similarity index 100%
rename from hw/vga-isa-mm.c
rename to hw/display/vga-isa-mm.c
diff --git a/hw/vga-isa.c b/hw/display/vga-isa.c
similarity index 100%
rename from hw/vga-isa.c
rename to hw/display/vga-isa.c
diff --git a/hw/vga-pci.c b/hw/display/vga-pci.c
similarity index 100%
rename from hw/vga-pci.c
rename to hw/display/vga-pci.c
diff --git a/hw/vmware_vga.c b/hw/display/vmware_vga.c
similarity index 100%
rename from hw/vmware_vga.c
rename to hw/display/vmware_vga.c
diff --git a/hw/xenfb.c b/hw/display/xenfb.c
similarity index 100%
rename from hw/xenfb.c
rename to hw/display/xenfb.c
diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs
index e69de29..7a8ba56 100644
--- a/hw/dma/Makefile.objs
+++ b/hw/dma/Makefile.objs
@@ -0,0 +1,6 @@
+common-obj-$(CONFIG_PUV3) += puv3_dma.o
+common-obj-$(CONFIG_RC4030) += rc4030.o
+common-obj-$(CONFIG_PL080) += pl080.o
+common-obj-$(CONFIG_PL330) += pl330.o
+common-obj-$(CONFIG_I8257) += i8257.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
diff --git a/hw/dma.c b/hw/dma/i8257.c
similarity index 100%
rename from hw/dma.c
rename to hw/dma/i8257.c
diff --git a/hw/pl080.c b/hw/dma/pl080.c
similarity index 100%
rename from hw/pl080.c
rename to hw/dma/pl080.c
diff --git a/hw/pl330.c b/hw/dma/pl330.c
similarity index 100%
rename from hw/pl330.c
rename to hw/dma/pl330.c
diff --git a/hw/puv3_dma.c b/hw/dma/puv3_dma.c
similarity index 100%
rename from hw/puv3_dma.c
rename to hw/dma/puv3_dma.c
diff --git a/hw/rc4030.c b/hw/dma/rc4030.c
similarity index 100%
rename from hw/rc4030.c
rename to hw/dma/rc4030.c
diff --git a/hw/xilinx_axidma.c b/hw/dma/xilinx_axidma.c
similarity index 100%
rename from hw/xilinx_axidma.c
rename to hw/dma/xilinx_axidma.c
diff --git a/hw/gpio/Makefile.objs b/hw/gpio/Makefile.objs
index e69de29..f8d8ee8 100644
--- a/hw/gpio/Makefile.objs
+++ b/hw/gpio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-$(CONFIG_MAX7310) += max7310.o
+common-obj-$(CONFIG_PL061) += pl061.o
+common-obj-$(CONFIG_PUV3) += puv3_gpio.o
diff --git a/hw/max7310.c b/hw/gpio/max7310.c
similarity index 100%
rename from hw/max7310.c
rename to hw/gpio/max7310.c
diff --git a/hw/pl061.c b/hw/gpio/pl061.c
similarity index 100%
rename from hw/pl061.c
rename to hw/gpio/pl061.c
diff --git a/hw/puv3_gpio.c b/hw/gpio/puv3_gpio.c
similarity index 100%
rename from hw/puv3_gpio.c
rename to hw/gpio/puv3_gpio.c
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index e69de29..f6bd8fa 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-y += core.o smbus.o smbus_eeprom.o
+common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
+common-obj-$(CONFIG_ACPI) += smbus_ich9.o
+common-obj-$(CONFIG_APM) += pm_smbus.o
diff --git a/hw/i2c.c b/hw/i2c/core.c
similarity index 100%
rename from hw/i2c.c
rename to hw/i2c/core.c
diff --git a/hw/pm_smbus.c b/hw/i2c/pm_smbus.c
similarity index 100%
rename from hw/pm_smbus.c
rename to hw/i2c/pm_smbus.c
diff --git a/hw/smbus.c b/hw/i2c/smbus.c
similarity index 100%
rename from hw/smbus.c
rename to hw/i2c/smbus.c
diff --git a/hw/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
similarity index 100%
rename from hw/smbus_eeprom.c
rename to hw/i2c/smbus_eeprom.c
diff --git a/hw/smbus_ich9.c b/hw/i2c/smbus_ich9.c
similarity index 100%
rename from hw/smbus_ich9.c
rename to hw/i2c/smbus_ich9.c
diff --git a/hw/versatile_i2c.c b/hw/i2c/versatile_i2c.c
similarity index 100%
rename from hw/versatile_i2c.c
rename to hw/i2c/versatile_i2c.c
diff --git a/hw/input/Makefile.objs b/hw/input/Makefile.objs
index e69de29..824997e 100644
--- a/hw/input/Makefile.objs
+++ b/hw/input/Makefile.objs
@@ -0,0 +1,9 @@
+common-obj-$(CONFIG_ADB) += adb.o
+common-obj-y += hid.o
+common-obj-$(CONFIG_LM832X) += lm832x.o
+common-obj-$(CONFIG_PCKBD) += pckbd.o
+common-obj-$(CONFIG_PL050) += pl050.o
+common-obj-y += ps2.o
+common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
+common-obj-$(CONFIG_TSC2005) += tsc2005.o
+common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
diff --git a/hw/adb.c b/hw/input/adb.c
similarity index 100%
rename from hw/adb.c
rename to hw/input/adb.c
diff --git a/hw/hid.c b/hw/input/hid.c
similarity index 100%
rename from hw/hid.c
rename to hw/input/hid.c
diff --git a/hw/lm832x.c b/hw/input/lm832x.c
similarity index 100%
rename from hw/lm832x.c
rename to hw/input/lm832x.c
diff --git a/hw/pckbd.c b/hw/input/pckbd.c
similarity index 100%
rename from hw/pckbd.c
rename to hw/input/pckbd.c
diff --git a/hw/pl050.c b/hw/input/pl050.c
similarity index 100%
rename from hw/pl050.c
rename to hw/input/pl050.c
diff --git a/hw/ps2.c b/hw/input/ps2.c
similarity index 100%
rename from hw/ps2.c
rename to hw/input/ps2.c
diff --git a/hw/stellaris_input.c b/hw/input/stellaris_input.c
similarity index 100%
rename from hw/stellaris_input.c
rename to hw/input/stellaris_input.c
diff --git a/hw/tsc2005.c b/hw/input/tsc2005.c
similarity index 100%
rename from hw/tsc2005.c
rename to hw/input/tsc2005.c
diff --git a/hw/vmmouse.c b/hw/input/vmmouse.c
similarity index 100%
rename from hw/vmmouse.c
rename to hw/input/vmmouse.c
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
index e69de29..2813adb 100644
--- a/hw/intc/Makefile.objs
+++ b/hw/intc/Makefile.objs
@@ -0,0 +1,5 @@
+common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
+common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
+common-obj-$(CONFIG_PL190) += pl190.o
+common-obj-$(CONFIG_PUV3) += puv3_intc.o
+common-obj-$(CONFIG_XILINX) += xilinx_intc.o
diff --git a/hw/heathrow_pic.c b/hw/intc/heathrow_pic.c
similarity index 100%
rename from hw/heathrow_pic.c
rename to hw/intc/heathrow_pic.c
diff --git a/hw/i8259.c b/hw/intc/i8259.c
similarity index 100%
rename from hw/i8259.c
rename to hw/intc/i8259.c
diff --git a/hw/i8259_common.c b/hw/intc/i8259_common.c
similarity index 100%
rename from hw/i8259_common.c
rename to hw/intc/i8259_common.c
diff --git a/hw/pl190.c b/hw/intc/pl190.c
similarity index 100%
rename from hw/pl190.c
rename to hw/intc/pl190.c
diff --git a/hw/puv3_intc.c b/hw/intc/puv3_intc.c
similarity index 100%
rename from hw/puv3_intc.c
rename to hw/intc/puv3_intc.c
diff --git a/hw/xilinx_intc.c b/hw/intc/xilinx_intc.c
similarity index 100%
rename from hw/xilinx_intc.c
rename to hw/intc/xilinx_intc.c
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index e69de29..cbee381 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -0,0 +1,9 @@
+common-obj-y += isa-bus.o
+common-obj-$(CONFIG_APM) += apm.o
+common-obj-$(CONFIG_APPLESMC) += applesmc.o
+common-obj-$(CONFIG_I82378) += i82378.o
+common-obj-$(CONFIG_I82374) += i82374.o
+common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
+common-obj-$(CONFIG_PC87312) += pc87312.o
+common-obj-$(CONFIG_PIIX4) += piix4.o
+
diff --git a/hw/apm.c b/hw/isa/apm.c
similarity index 100%
rename from hw/apm.c
rename to hw/isa/apm.c
diff --git a/hw/applesmc.c b/hw/isa/applesmc.c
similarity index 100%
rename from hw/applesmc.c
rename to hw/isa/applesmc.c
diff --git a/hw/i82374.c b/hw/isa/i82374.c
similarity index 100%
rename from hw/i82374.c
rename to hw/isa/i82374.c
diff --git a/hw/i82378.c b/hw/isa/i82378.c
similarity index 100%
rename from hw/i82378.c
rename to hw/isa/i82378.c
diff --git a/hw/isa-bus.c b/hw/isa/isa-bus.c
similarity index 100%
rename from hw/isa-bus.c
rename to hw/isa/isa-bus.c
diff --git a/hw/isa_mmio.c b/hw/isa/isa_mmio.c
similarity index 100%
rename from hw/isa_mmio.c
rename to hw/isa/isa_mmio.c
diff --git a/hw/pc87312.c b/hw/isa/pc87312.c
similarity index 100%
rename from hw/pc87312.c
rename to hw/isa/pc87312.c
diff --git a/hw/piix4.c b/hw/isa/piix4.c
similarity index 100%
rename from hw/piix4.c
rename to hw/isa/piix4.c
diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
index e69de29..d44458e 100644
--- a/hw/misc/Makefile.objs
+++ b/hw/misc/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_MAX111X) += max111x.o
+common-obj-$(CONFIG_TMP105) += tmp105.o
+
+# ARM devices
+common-obj-$(CONFIG_PL310) += arm_l2x0.o
+
+# PKUnity SoC devices
+common-obj-$(CONFIG_PUV3) += puv3_pm.o
+
+common-obj-$(CONFIG_MACIO) += macio/
diff --git a/hw/arm_l2x0.c b/hw/misc/arm_l2x0.c
similarity index 100%
rename from hw/arm_l2x0.c
rename to hw/misc/arm_l2x0.c
diff --git a/hw/misc/macio/Makefile.objs b/hw/misc/macio/Makefile.objs
new file mode 100644
index 0000000..ef7ac24
--- /dev/null
+++ b/hw/misc/macio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += macio.o
+common-obj-$(CONFIG_CUDA) += cuda.o
+common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
diff --git a/hw/cuda.c b/hw/misc/macio/cuda.c
similarity index 100%
rename from hw/cuda.c
rename to hw/misc/macio/cuda.c
diff --git a/hw/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
similarity index 100%
rename from hw/mac_dbdma.c
rename to hw/misc/macio/mac_dbdma.c
diff --git a/hw/macio.c b/hw/misc/macio/macio.c
similarity index 100%
rename from hw/macio.c
rename to hw/misc/macio/macio.c
diff --git a/hw/max111x.c b/hw/misc/max111x.c
similarity index 100%
rename from hw/max111x.c
rename to hw/misc/max111x.c
diff --git a/hw/puv3_pm.c b/hw/misc/puv3_pm.c
similarity index 100%
rename from hw/puv3_pm.c
rename to hw/misc/puv3_pm.c
diff --git a/hw/tmp105.c b/hw/misc/tmp105.c
similarity index 100%
rename from hw/tmp105.c
rename to hw/misc/tmp105.c
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
index e69de29..1e30be5 100644
--- a/hw/net/Makefile.objs
+++ b/hw/net/Makefile.objs
@@ -0,0 +1,20 @@
+common-obj-$(CONFIG_DP8393X) += dp8393x.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_nic.o
+
+# PCI network cards
+common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
+common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
+common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
+common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
+common-obj-$(CONFIG_E1000_PCI) += e1000.o
+common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
+
+common-obj-$(CONFIG_SMC91C111) += smc91c111.o
+common-obj-$(CONFIG_LAN9118) += lan9118.o
+common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
+common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
+common-obj-$(CONFIG_XGMAC) += xgmac.o
+common-obj-$(CONFIG_MIPSNET) += mipsnet.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
+
+common-obj-$(CONFIG_CADENCE) += cadence_gem.o
diff --git a/hw/cadence_gem.c b/hw/net/cadence_gem.c
similarity index 100%
rename from hw/cadence_gem.c
rename to hw/net/cadence_gem.c
diff --git a/hw/dp8393x.c b/hw/net/dp8393x.c
similarity index 100%
rename from hw/dp8393x.c
rename to hw/net/dp8393x.c
diff --git a/hw/e1000.c b/hw/net/e1000.c
similarity index 100%
rename from hw/e1000.c
rename to hw/net/e1000.c
diff --git a/hw/eepro100.c b/hw/net/eepro100.c
similarity index 100%
rename from hw/eepro100.c
rename to hw/net/eepro100.c
diff --git a/hw/lan9118.c b/hw/net/lan9118.c
similarity index 100%
rename from hw/lan9118.c
rename to hw/net/lan9118.c
diff --git a/hw/mipsnet.c b/hw/net/mipsnet.c
similarity index 100%
rename from hw/mipsnet.c
rename to hw/net/mipsnet.c
diff --git a/hw/ne2000-isa.c b/hw/net/ne2000-isa.c
similarity index 100%
rename from hw/ne2000-isa.c
rename to hw/net/ne2000-isa.c
diff --git a/hw/ne2000.c b/hw/net/ne2000.c
similarity index 100%
rename from hw/ne2000.c
rename to hw/net/ne2000.c
diff --git a/hw/opencores_eth.c b/hw/net/opencores_eth.c
similarity index 100%
rename from hw/opencores_eth.c
rename to hw/net/opencores_eth.c
diff --git a/hw/pcnet-pci.c b/hw/net/pcnet-pci.c
similarity index 100%
rename from hw/pcnet-pci.c
rename to hw/net/pcnet-pci.c
diff --git a/hw/pcnet.c b/hw/net/pcnet.c
similarity index 100%
rename from hw/pcnet.c
rename to hw/net/pcnet.c
diff --git a/hw/rtl8139.c b/hw/net/rtl8139.c
similarity index 100%
rename from hw/rtl8139.c
rename to hw/net/rtl8139.c
diff --git a/hw/smc91c111.c b/hw/net/smc91c111.c
similarity index 100%
rename from hw/smc91c111.c
rename to hw/net/smc91c111.c
diff --git a/hw/xen_nic.c b/hw/net/xen_nic.c
similarity index 100%
rename from hw/xen_nic.c
rename to hw/net/xen_nic.c
diff --git a/hw/xgmac.c b/hw/net/xgmac.c
similarity index 100%
rename from hw/xgmac.c
rename to hw/net/xgmac.c
diff --git a/hw/xilinx_axienet.c b/hw/net/xilinx_axienet.c
similarity index 100%
rename from hw/xilinx_axienet.c
rename to hw/net/xilinx_axienet.c
diff --git a/hw/nvram/Makefile.objs b/hw/nvram/Makefile.objs
index e69de29..80fb1b0 100644
--- a/hw/nvram/Makefile.objs
+++ b/hw/nvram/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_DS1225Y) += ds1225y.o
+common-obj-y += eeprom93xx.o
+common-obj-y += fw_cfg.o
+common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
diff --git a/hw/ds1225y.c b/hw/nvram/ds1225y.c
similarity index 100%
rename from hw/ds1225y.c
rename to hw/nvram/ds1225y.c
diff --git a/hw/eeprom93xx.c b/hw/nvram/eeprom93xx.c
similarity index 100%
rename from hw/eeprom93xx.c
rename to hw/nvram/eeprom93xx.c
diff --git a/hw/fw_cfg.c b/hw/nvram/fw_cfg.c
similarity index 100%
rename from hw/fw_cfg.c
rename to hw/nvram/fw_cfg.c
diff --git a/hw/mac_nvram.c b/hw/nvram/mac_nvram.c
similarity index 100%
rename from hw/mac_nvram.c
rename to hw/nvram/mac_nvram.c
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 1cd6cde..44b2185 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -4,6 +4,25 @@ common-obj-$(CONFIG_PCI) += shpc.o
 common-obj-$(CONFIG_PCI) += slotid_cap.o
 common-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
 common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
-common-obj-$(CONFIG_NO_PCI) += pci-stub.o
 
+common-obj-$(CONFIG_NO_PCI) += pci-stub.o
 common-obj-$(CONFIG_ALL) += pci-stub.o
+
+common-obj-$(CONFIG_PCI) += pci_bridge_dev.o
+common-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
+common-obj-$(CONFIG_PCI) += i82801b11.o
+
+common-obj-y += pam.o
+
+# PPC devices
+common-obj-$(CONFIG_PREP_PCI) += host-prep.o
+common-obj-$(CONFIG_GRACKLE_PCI) += host-grackle.o
+# NewWorld PowerMac
+common-obj-$(CONFIG_UNIN_PCI) += host-uninorth.o
+common-obj-$(CONFIG_DEC_PCI) += host-dec.o
+# PowerPC E500 boards
+common-obj-$(CONFIG_PPCE500_PCI) += host-ppce500.o
+
+# ARM devices
+common-obj-$(CONFIG_VERSATILE_PCI) += host-versatile.o
+
diff --git a/hw/dec_pci.c b/hw/pci/host-dec.c
similarity index 100%
rename from hw/dec_pci.c
rename to hw/pci/host-dec.c
diff --git a/hw/grackle_pci.c b/hw/pci/host-grackle.c
similarity index 100%
rename from hw/grackle_pci.c
rename to hw/pci/host-grackle.c
diff --git a/hw/ppce500_pci.c b/hw/pci/host-ppce500.c
similarity index 100%
rename from hw/ppce500_pci.c
rename to hw/pci/host-ppce500.c
diff --git a/hw/prep_pci.c b/hw/pci/host-prep.c
similarity index 100%
rename from hw/prep_pci.c
rename to hw/pci/host-prep.c
diff --git a/hw/unin_pci.c b/hw/pci/host-uninorth.c
similarity index 100%
rename from hw/unin_pci.c
rename to hw/pci/host-uninorth.c
diff --git a/hw/versatile_pci.c b/hw/pci/host-versatile.c
similarity index 100%
rename from hw/versatile_pci.c
rename to hw/pci/host-versatile.c
diff --git a/hw/i82801b11.c b/hw/pci/i82801b11.c
similarity index 100%
rename from hw/i82801b11.c
rename to hw/pci/i82801b11.c
diff --git a/hw/ioh3420.c b/hw/pci/ioh3420.c
similarity index 100%
rename from hw/ioh3420.c
rename to hw/pci/ioh3420.c
diff --git a/hw/pam.c b/hw/pci/pam.c
similarity index 100%
rename from hw/pam.c
rename to hw/pci/pam.c
diff --git a/hw/pci_bridge_dev.c b/hw/pci/pci_bridge_dev.c
similarity index 100%
rename from hw/pci_bridge_dev.c
rename to hw/pci/pci_bridge_dev.c
diff --git a/hw/xio3130_downstream.c b/hw/pci/xio3130_downstream.c
similarity index 100%
rename from hw/xio3130_downstream.c
rename to hw/pci/xio3130_downstream.c
diff --git a/hw/xio3130_upstream.c b/hw/pci/xio3130_upstream.c
similarity index 100%
rename from hw/xio3130_upstream.c
rename to hw/pci/xio3130_upstream.c
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index e69de29..6a56504 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -0,0 +1,6 @@
+common-obj-y += scsi-disk.o
+common-obj-y += scsi-generic.o scsi-bus.o
+common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
+common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
+common-obj-$(CONFIG_ESP) += esp.o
+common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
diff --git a/hw/esp-pci.c b/hw/scsi/esp-pci.c
similarity index 100%
rename from hw/esp-pci.c
rename to hw/scsi/esp-pci.c
diff --git a/hw/esp.c b/hw/scsi/esp.c
similarity index 100%
rename from hw/esp.c
rename to hw/scsi/esp.c
diff --git a/hw/lsi53c895a.c b/hw/scsi/lsi53c895a.c
similarity index 100%
rename from hw/lsi53c895a.c
rename to hw/scsi/lsi53c895a.c
diff --git a/hw/megasas.c b/hw/scsi/megasas.c
similarity index 100%
rename from hw/megasas.c
rename to hw/scsi/megasas.c
diff --git a/hw/scsi-bus.c b/hw/scsi/scsi-bus.c
similarity index 100%
rename from hw/scsi-bus.c
rename to hw/scsi/scsi-bus.c
diff --git a/hw/scsi-disk.c b/hw/scsi/scsi-disk.c
similarity index 100%
rename from hw/scsi-disk.c
rename to hw/scsi/scsi-disk.c
diff --git a/hw/scsi-generic.c b/hw/scsi/scsi-generic.c
similarity index 100%
rename from hw/scsi-generic.c
rename to hw/scsi/scsi-generic.c
diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs
index e69de29..8acce02 100644
--- a/hw/sd/Makefile.objs
+++ b/hw/sd/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_PL181) += pl181.o
+common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
+common-obj-$(CONFIG_SD) += sd.o
+common-obj-$(CONFIG_SDHCI) += sdhci.o
diff --git a/hw/pl181.c b/hw/sd/pl181.c
similarity index 100%
rename from hw/pl181.c
rename to hw/sd/pl181.c
diff --git a/hw/sd.c b/hw/sd/sd.c
similarity index 100%
rename from hw/sd.c
rename to hw/sd/sd.c
diff --git a/hw/sdhci.c b/hw/sd/sdhci.c
similarity index 100%
rename from hw/sdhci.c
rename to hw/sd/sdhci.c
diff --git a/hw/ssi-sd.c b/hw/sd/ssi-sd.c
similarity index 100%
rename from hw/ssi-sd.c
rename to hw/sd/ssi-sd.c
diff --git a/hw/ssi/Makefile.objs b/hw/ssi/Makefile.objs
index e69de29..daada5c 100644
--- a/hw/ssi/Makefile.objs
+++ b/hw/ssi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_PL022) += pl022.o
+common-obj-$(CONFIG_SSI) += ssi.o
diff --git a/hw/pl022.c b/hw/ssi/pl022.c
similarity index 100%
rename from hw/pl022.c
rename to hw/ssi/pl022.c
diff --git a/hw/ssi.c b/hw/ssi/ssi.c
similarity index 100%
rename from hw/ssi.c
rename to hw/ssi/ssi.c
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
index e69de29..12781dd 100644
--- a/hw/timer/Makefile.objs
+++ b/hw/timer/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
+common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
+common-obj-$(CONFIG_DS1338) += ds1338.o
+common-obj-$(CONFIG_HPET) += hpet.o
+common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
+common-obj-$(CONFIG_M48T59) += m48t59.o
+common-obj-$(CONFIG_PL031) += pl031.o
+common-obj-$(CONFIG_PUV3) += puv3_ost.o
+common-obj-$(CONFIG_TWL92230) += twl92230.o
+common-obj-$(CONFIG_XILINX) += xilinx_timer.o
diff --git a/hw/arm_timer.c b/hw/timer/arm_timer.c
similarity index 100%
rename from hw/arm_timer.c
rename to hw/timer/arm_timer.c
diff --git a/hw/cadence_ttc.c b/hw/timer/cadence_ttc.c
similarity index 100%
rename from hw/cadence_ttc.c
rename to hw/timer/cadence_ttc.c
diff --git a/hw/ds1338.c b/hw/timer/ds1338.c
similarity index 100%
rename from hw/ds1338.c
rename to hw/timer/ds1338.c
diff --git a/hw/hpet.c b/hw/timer/hpet.c
similarity index 100%
rename from hw/hpet.c
rename to hw/timer/hpet.c
diff --git a/hw/i8254.c b/hw/timer/i8254.c
similarity index 100%
rename from hw/i8254.c
rename to hw/timer/i8254.c
diff --git a/hw/i8254_common.c b/hw/timer/i8254_common.c
similarity index 100%
rename from hw/i8254_common.c
rename to hw/timer/i8254_common.c
diff --git a/hw/m48t59.c b/hw/timer/m48t59.c
similarity index 100%
rename from hw/m48t59.c
rename to hw/timer/m48t59.c
diff --git a/hw/pl031.c b/hw/timer/pl031.c
similarity index 100%
rename from hw/pl031.c
rename to hw/timer/pl031.c
diff --git a/hw/puv3_ost.c b/hw/timer/puv3_ost.c
similarity index 100%
rename from hw/puv3_ost.c
rename to hw/timer/puv3_ost.c
diff --git a/hw/twl92230.c b/hw/timer/twl92230.c
similarity index 100%
rename from hw/twl92230.c
rename to hw/timer/twl92230.c
diff --git a/hw/xilinx_timer.c b/hw/timer/xilinx_timer.c
similarity index 100%
rename from hw/xilinx_timer.c
rename to hw/timer/xilinx_timer.c
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index e63e287..5c20644 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -21,7 +21,12 @@ common-obj-$(CONFIG_USB_NETWORK)      += dev-network.o
 # FIXME: make configurable too
 CONFIG_USB_BLUETOOTH := y
 common-obj-$(CONFIG_USB_BLUETOOTH)    += dev-bluetooth.o
-common-obj-$(CONFIG_USB_SMARTCARD)    += dev-smartcard-reader.o
+
+ifeq ($(CONFIG_USB_SMARTCARD),y)
+common-obj-y                          += dev-smartcard-reader.o
+common-obj-y                          += ccid-card-passthru.o
+common-obj-$(CONFIG_SMARTCARD_NSS)    += ccid-card-emulated.o
+endif
 
 # usb redirection
 common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
diff --git a/hw/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
similarity index 100%
rename from hw/ccid-card-emulated.c
rename to hw/usb/ccid-card-emulated.c
diff --git a/hw/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
similarity index 100%
rename from hw/ccid-card-passthru.c
rename to hw/usb/ccid-card-passthru.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index e69de29..ed63495 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
+common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
+
diff --git a/hw/virtio-bus.c b/hw/virtio/virtio-bus.c
similarity index 100%
rename from hw/virtio-bus.c
rename to hw/virtio/virtio-bus.c
diff --git a/hw/virtio-pci.c b/hw/virtio/virtio-pci.c
similarity index 100%
rename from hw/virtio-pci.c
rename to hw/virtio/virtio-pci.c
diff --git a/hw/virtio-rng.c b/hw/virtio/virtio-rng.c
similarity index 100%
rename from hw/virtio-rng.c
rename to hw/virtio/virtio-rng.c
diff --git a/hw/watchdog/Makefile.objs b/hw/watchdog/Makefile.objs
index e69de29..f57133b 100644
--- a/hw/watchdog/Makefile.objs
+++ b/hw/watchdog/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-y += watchdog.o
+common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
diff --git a/hw/watchdog.c b/hw/watchdog/watchdog.c
similarity index 100%
rename from hw/watchdog.c
rename to hw/watchdog/watchdog.c
diff --git a/hw/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
similarity index 100%
rename from hw/wdt_i6300esb.c
rename to hw/watchdog/wdt_i6300esb.c
diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs
index e69de29..4b209a7 100644
--- a/hw/xen/Makefile.objs
+++ b/hw/xen/Makefile.objs
@@ -0,0 +1,2 @@
+# xen backend driver support
+common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
diff --git a/hw/xen_backend.c b/hw/xen/xen_backend.c
similarity index 100%
rename from hw/xen_backend.c
rename to hw/xen/xen_backend.c
diff --git a/hw/xen_devconfig.c b/hw/xen/xen_devconfig.c
similarity index 100%
rename from hw/xen_devconfig.c
rename to hw/xen/xen_devconfig.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 07/35] hw: move virtio devices to hw/ subdirectories
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (5 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 06/35] hw: move target-independent files to subdirectories Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 08/35] hw: make all of hw/ide/ configurable via default-configs/ Paolo Bonzini
                   ` (28 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/Makefile.objs                       | 5 -----
 hw/block/Makefile.objs                 | 2 ++
 hw/{ => block}/dataplane/Makefile.objs | 0
 hw/{ => block}/dataplane/hostmem.c     | 0
 hw/{ => block}/dataplane/hostmem.h     | 0
 hw/{ => block}/dataplane/ioq.c         | 0
 hw/{ => block}/dataplane/ioq.h         | 0
 hw/{ => block}/dataplane/virtio-blk.c  | 0
 hw/{ => block}/dataplane/virtio-blk.h  | 0
 hw/{ => block}/dataplane/vring.c       | 0
 hw/{ => block}/dataplane/vring.h       | 0
 hw/{ => block}/virtio-blk.c            | 0
 hw/char/Makefile.objs                  | 2 ++
 hw/{ => char}/virtio-serial-bus.c      | 0
 hw/net/Makefile.objs                   | 3 +++
 hw/{ => net}/vhost_net.c               | 0
 hw/{ => net}/virtio-net.c              | 0
 hw/scsi/Makefile.objs                  | 1 +
 hw/{ => scsi}/virtio-scsi.c            | 0
 hw/virtio/Makefile.objs                | 2 ++
 hw/{ => virtio}/vhost.c                | 0
 hw/{ => virtio}/virtio-balloon.c       | 0
 hw/{ => virtio}/virtio.c               | 0
 23 files changed, 10 insertions(+), 5 deletions(-)
 rename hw/{ => block}/dataplane/Makefile.objs (100%)
 rename hw/{ => block}/dataplane/hostmem.c (100%)
 rename hw/{ => block}/dataplane/hostmem.h (100%)
 rename hw/{ => block}/dataplane/ioq.c (100%)
 rename hw/{ => block}/dataplane/ioq.h (100%)
 rename hw/{ => block}/dataplane/virtio-blk.c (100%)
 rename hw/{ => block}/dataplane/virtio-blk.h (100%)
 rename hw/{ => block}/dataplane/vring.c (100%)
 rename hw/{ => block}/dataplane/vring.h (100%)
 rename hw/{ => block}/virtio-blk.c (100%)
 rename hw/{ => char}/virtio-serial-bus.c (100%)
 rename hw/{ => net}/vhost_net.c (100%)
 rename hw/{ => net}/virtio-net.c (100%)
 rename hw/{ => scsi}/virtio-scsi.c (100%)
 rename hw/{ => virtio}/vhost.c (100%)
 rename hw/{ => virtio}/virtio-balloon.c (100%)
 rename hw/{ => virtio}/virtio.c (100%)

diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 6727fe7..b3868aa 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -34,11 +34,6 @@ ifeq ($(CONFIG_SOFTMMU),y)
 # Per-target files
 # virtio has to be here due to weird dependency between PCI and virtio-net.
 # need to fix this properly
-obj-$(CONFIG_VIRTIO) += dataplane/
-obj-$(CONFIG_VIRTIO) += virtio.o virtio-blk.o virtio-balloon.o virtio-net.o
-obj-$(CONFIG_VIRTIO) += virtio-serial-bus.o virtio-scsi.o
-obj-$(CONFIG_SOFTMMU) += vhost_net.o
-obj-$(CONFIG_VHOST_NET) += vhost.o
 obj-$(CONFIG_VGA) += vga.o
 
 # Inter-VM PCI shared memory & VFIO PCI device assignment
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index 5fa5101..4fcbe45 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -6,3 +6,5 @@ common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
 common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
 common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
 common-obj-$(CONFIG_ECC) += ecc.o
+
+obj-$(CONFIG_VIRTIO) += dataplane/ virtio-blk.o
diff --git a/hw/dataplane/Makefile.objs b/hw/block/dataplane/Makefile.objs
similarity index 100%
rename from hw/dataplane/Makefile.objs
rename to hw/block/dataplane/Makefile.objs
diff --git a/hw/dataplane/hostmem.c b/hw/block/dataplane/hostmem.c
similarity index 100%
rename from hw/dataplane/hostmem.c
rename to hw/block/dataplane/hostmem.c
diff --git a/hw/dataplane/hostmem.h b/hw/block/dataplane/hostmem.h
similarity index 100%
rename from hw/dataplane/hostmem.h
rename to hw/block/dataplane/hostmem.h
diff --git a/hw/dataplane/ioq.c b/hw/block/dataplane/ioq.c
similarity index 100%
rename from hw/dataplane/ioq.c
rename to hw/block/dataplane/ioq.c
diff --git a/hw/dataplane/ioq.h b/hw/block/dataplane/ioq.h
similarity index 100%
rename from hw/dataplane/ioq.h
rename to hw/block/dataplane/ioq.h
diff --git a/hw/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
similarity index 100%
rename from hw/dataplane/virtio-blk.c
rename to hw/block/dataplane/virtio-blk.c
diff --git a/hw/dataplane/virtio-blk.h b/hw/block/dataplane/virtio-blk.h
similarity index 100%
rename from hw/dataplane/virtio-blk.h
rename to hw/block/dataplane/virtio-blk.h
diff --git a/hw/dataplane/vring.c b/hw/block/dataplane/vring.c
similarity index 100%
rename from hw/dataplane/vring.c
rename to hw/block/dataplane/vring.c
diff --git a/hw/dataplane/vring.h b/hw/block/dataplane/vring.h
similarity index 100%
rename from hw/dataplane/vring.h
rename to hw/block/dataplane/vring.h
diff --git a/hw/virtio-blk.c b/hw/block/virtio-blk.c
similarity index 100%
rename from hw/virtio-blk.c
rename to hw/block/virtio-blk.c
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index eee23ff..ddfd3ec 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -8,3 +8,5 @@ common-obj-$(CONFIG_VIRTIO) += virtio-console.o
 common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
 common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o
 common-obj-$(CONFIG_CADENCE) += cadence_uart.o
+
+obj-$(CONFIG_VIRTIO) += virtio-serial-bus.o
diff --git a/hw/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
similarity index 100%
rename from hw/virtio-serial-bus.c
rename to hw/char/virtio-serial-bus.c
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
index 1e30be5..a82b72f 100644
--- a/hw/net/Makefile.objs
+++ b/hw/net/Makefile.objs
@@ -18,3 +18,6 @@ common-obj-$(CONFIG_MIPSNET) += mipsnet.o
 common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
 
 common-obj-$(CONFIG_CADENCE) += cadence_gem.o
+
+obj-$(CONFIG_VIRTIO) += virtio-net.o
+obj-y += vhost_net.o
diff --git a/hw/vhost_net.c b/hw/net/vhost_net.c
similarity index 100%
rename from hw/vhost_net.c
rename to hw/net/vhost_net.c
diff --git a/hw/virtio-net.c b/hw/net/virtio-net.c
similarity index 100%
rename from hw/virtio-net.c
rename to hw/net/virtio-net.c
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index 6a56504..b76b9c3 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -4,3 +4,4 @@ common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
 common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
 common-obj-$(CONFIG_ESP) += esp.o
 common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
+obj-$(CONFIG_VIRTIO) += virtio-scsi.o
diff --git a/hw/virtio-scsi.c b/hw/scsi/virtio-scsi.c
similarity index 100%
rename from hw/virtio-scsi.c
rename to hw/scsi/virtio-scsi.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index ed63495..3b47ad0 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -2,3 +2,5 @@ common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
 common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
 common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
 
+obj-$(CONFIG_VIRTIO) += virtio.o virtio-balloon.o 
+obj-$(CONFIG_VHOST_NET) += vhost.o
diff --git a/hw/vhost.c b/hw/virtio/vhost.c
similarity index 100%
rename from hw/vhost.c
rename to hw/virtio/vhost.c
diff --git a/hw/virtio-balloon.c b/hw/virtio/virtio-balloon.c
similarity index 100%
rename from hw/virtio-balloon.c
rename to hw/virtio/virtio-balloon.c
diff --git a/hw/virtio.c b/hw/virtio/virtio.c
similarity index 100%
rename from hw/virtio.c
rename to hw/virtio/virtio.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 08/35] hw: make all of hw/ide/ configurable via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (6 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 07/35] hw: move virtio devices to hw/ subdirectories Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 09/35] hw: make all of hw/usb/ " Paolo Bonzini
                   ` (27 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak   | 1 +
 default-configs/sh4-softmmu.mak   | 1 +
 default-configs/sh4eb-softmmu.mak | 1 +
 hw/arm/Makefile.objs              | 2 +-
 hw/ide/Makefile.objs              | 2 ++
 hw/sh4/Makefile.objs              | 1 -
 6 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index ab87035..2d53895 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -29,6 +29,7 @@ CONFIG_SMC91C111=y
 CONFIG_DS1338=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_PFLASH_CFI02=y
+CONFIG_MICRODRIVE=y
 
 CONFIG_ARM_TIMER=y
 CONFIG_PL011=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index e08b2ee..bcafc27 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -6,3 +6,4 @@ CONFIG_SERIAL=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
+CONFIG_IDE_MMIO=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 3a84535..8372b0d 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -6,3 +6,4 @@ CONFIG_SERIAL=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
+CONFIG_IDE_MMIO=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index f5f7d0e..6253dbc 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -11,7 +11,7 @@ obj-y += arm_mptimer.o a15mpcore.o
 obj-y += armv7m_nvic.o stellaris_enet.o
 obj-y += pxa2xx_timer.o pxa2xx_dma.o
 obj-y += pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
-obj-y += zaurus.o ide/microdrive.o tc6393xb.o
+obj-y += zaurus.o tc6393xb.o
 obj-y += omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
                 omap_gpio.o omap_intc.o omap_uart.o
 obj-y += omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
diff --git a/hw/ide/Makefile.objs b/hw/ide/Makefile.objs
index 5c8c22a..729e9bd 100644
--- a/hw/ide/Makefile.objs
+++ b/hw/ide/Makefile.objs
@@ -5,6 +5,8 @@ common-obj-$(CONFIG_IDE_ISA) += isa.o
 common-obj-$(CONFIG_IDE_PIIX) += piix.o
 common-obj-$(CONFIG_IDE_CMD646) += cmd646.o
 common-obj-$(CONFIG_IDE_MACIO) += macio.o
+common-obj-$(CONFIG_IDE_MMIO) += mmio.o
 common-obj-$(CONFIG_IDE_VIA) += via.o
+common-obj-$(CONFIG_MICRODRIVE) += microdrive.o
 common-obj-$(CONFIG_AHCI) += ahci.o
 common-obj-$(CONFIG_AHCI) += ich.o
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 72b6a1f..4f2ac2a 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,6 +1,5 @@
 obj-y = tc58128.o
 obj-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o
-obj-y += ide/mmio.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 09/35] hw: make all of hw/usb/ configurable via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (7 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 08/35] hw: make all of hw/ide/ configurable via default-configs/ Paolo Bonzini
@ 2013-03-18 17:34 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 10/35] hw: make all of hw/pci/ " Paolo Bonzini
                   ` (26 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:34 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak | 1 +
 hw/arm/Makefile.objs            | 2 +-
 hw/usb/Makefile.objs            | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 2d53895..4b72019 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -30,6 +30,7 @@ CONFIG_DS1338=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_MICRODRIVE=y
+CONFIG_USB_MUSB=y
 
 CONFIG_ARM_TIMER=y
 CONFIG_PL011=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 6253dbc..d809ad8 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -17,7 +17,7 @@ obj-y += omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
 obj-y += omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
                 omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
-obj-y += blizzard.o onenand.o cbus.o tusb6010.o usb/hcd-musb.o
+obj-y += blizzard.o onenand.o cbus.o tusb6010.o
 obj-y += mst_fpga.o
 obj-y += bitbang_i2c.o marvell_88w8618_audio.o
 obj-y += framebuffer.o
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 5c20644..f9695e7 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -7,6 +7,7 @@ common-obj-$(CONFIG_USB_UHCI) += hcd-uhci.o
 common-obj-$(CONFIG_USB_OHCI) += hcd-ohci.o
 common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o hcd-ehci-pci.o hcd-ehci-sysbus.o
 common-obj-$(CONFIG_USB_XHCI) += hcd-xhci.o
+common-obj-$(CONFIG_USB_MUSB) += hcd-musb.o
 
 # emulated usb devices
 common-obj-y += dev-hub.o
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 10/35] hw: make all of hw/pci/ configurable via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (8 preceding siblings ...)
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 09/35] hw: make all of hw/usb/ " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 11/35] hw: move watchdogs to hw/watchdog, configure " Paolo Bonzini
                   ` (25 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak   | 1 +
 default-configs/ppc64-softmmu.mak  | 2 ++
 default-configs/x86_64-softmmu.mak | 1 +
 hw/i386/Makefile.objs              | 2 +-
 hw/pci/Makefile.objs               | 1 +
 hw/ppc/Makefile.objs               | 2 +-
 6 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 03e4a04..55ba175 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -27,3 +27,4 @@ CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
+CONFIG_PCI_HOTPLUG=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index ee895e9..26f74b0 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -42,3 +42,5 @@ CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_PSERIES=$(CONFIG_FDT)
 CONFIG_E500=$(CONFIG_FDT)
+# For pSeries
+CONFIG_PCI_HOTPLUG=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index d4bc265..b5c9d46 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -27,3 +27,4 @@ CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
+CONFIG_PCI_HOTPLUG=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index a78c0b2..c813b1e 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -2,7 +2,7 @@ obj-y += mc146818rtc.o
 obj-y += apic_common.o apic.o
 obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
-obj-y += pci/pci-hotplug.o wdt_ib700.o
+obj-y += wdt_ib700.o
 obj-y += debugcon.o debugexit.o
 obj-y += pc_sysfw.o
 obj-y += lpc_ich9.o q35.o
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 44b2185..f319cc9 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -26,3 +26,4 @@ common-obj-$(CONFIG_PPCE500_PCI) += host-ppce500.o
 # ARM devices
 common-obj-$(CONFIG_VERSATILE_PCI) += host-versatile.o
 
+obj-$(CONFIG_PCI_HOTPLUG) += pci-hotplug.o
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 4de0209..ef1d9ed 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -2,7 +2,7 @@
 obj-y += mc146818rtc.o
 # IBM pSeries (sPAPR)
 obj-$(CONFIG_PSERIES) += spapr_vty.o spapr_llan.o spapr_vscsi.o
-obj-$(CONFIG_PSERIES) += spapr_pci.o pci/pci-hotplug.o
+obj-$(CONFIG_PSERIES) += spapr_pci.o
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
 # PowerPC 4xx boards
 obj-y += ppc4xx_pci.o
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 11/35] hw: move watchdogs to hw/watchdog, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (9 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 10/35] hw: make all of hw/pci/ " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 12/35] hw: move MC146818RTC to hw/timer/, " Paolo Bonzini
                   ` (24 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak   | 1 +
 default-configs/pci.mak            | 1 +
 default-configs/x86_64-softmmu.mak | 1 +
 hw/i386/Makefile.objs              | 1 -
 hw/watchdog/Makefile.objs          | 3 ++-
 hw/{ => watchdog}/wdt_ib700.c      | 0
 6 files changed, 5 insertions(+), 2 deletions(-)
 rename hw/{ => watchdog}/wdt_ib700.c (100%)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 55ba175..0332b43 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -28,3 +28,4 @@ CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
+CONFIG_WDT_IB700=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index ee2d18d..4c28e74 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -22,3 +22,4 @@ CONFIG_ESP_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_PCI=y
 CONFIG_IPACK=y
+CONFIG_WDT_IB6300ESB=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index b5c9d46..9de6e8c 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -28,3 +28,4 @@ CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
+CONFIG_WDT_IB700=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index c813b1e..5559a8b 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -2,7 +2,6 @@ obj-y += mc146818rtc.o
 obj-y += apic_common.o apic.o
 obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
-obj-y += wdt_ib700.o
 obj-y += debugcon.o debugexit.o
 obj-y += pc_sysfw.o
 obj-y += lpc_ich9.o q35.o
diff --git a/hw/watchdog/Makefile.objs b/hw/watchdog/Makefile.objs
index f57133b..4b0374a 100644
--- a/hw/watchdog/Makefile.objs
+++ b/hw/watchdog/Makefile.objs
@@ -1,2 +1,3 @@
 common-obj-y += watchdog.o
-common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
+common-obj-$(CONFIG_WDT_IB6300ESB) += wdt_i6300esb.o
+common-obj-$(CONFIG_WDT_IB700) += wdt_ib700.o
diff --git a/hw/wdt_ib700.c b/hw/watchdog/wdt_ib700.c
similarity index 100%
rename from hw/wdt_ib700.c
rename to hw/watchdog/wdt_ib700.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 12/35] hw: move MC146818RTC to hw/timer/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (10 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 11/35] hw: move watchdogs to hw/watchdog, configure " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 13/35] hw: move NICs to hw/net/, " Paolo Bonzini
                   ` (23 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/alpha-softmmu.mak    | 1 +
 default-configs/i386-softmmu.mak     | 1 +
 default-configs/mips-softmmu.mak     | 1 +
 default-configs/mips64-softmmu.mak   | 1 +
 default-configs/mips64el-softmmu.mak | 1 +
 default-configs/mipsel-softmmu.mak   | 1 +
 default-configs/ppc-softmmu.mak      | 2 ++
 default-configs/ppc64-softmmu.mak    | 2 ++
 default-configs/ppcemb-softmmu.mak   | 2 ++
 default-configs/sparc64-softmmu.mak  | 1 +
 default-configs/x86_64-softmmu.mak   | 1 +
 hw/alpha/Makefile.objs               | 4 ----
 hw/i386/Makefile.objs                | 1 -
 hw/mips/Makefile.objs                | 2 +-
 hw/ppc/Makefile.objs                 | 2 --
 hw/sparc64/Makefile.objs             | 1 -
 hw/timer/Makefile.objs               | 2 ++
 hw/{ => timer}/mc146818rtc.c         | 0
 18 files changed, 17 insertions(+), 9 deletions(-)
 rename hw/{ => timer}/mc146818rtc.c (100%)

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 2dbee94..18e5337 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -13,3 +13,4 @@ CONFIG_IDE_QDEV=y
 CONFIG_VMWARE_VGA=y
 CONFIG_IDE_CMD646=y
 CONFIG_I8259=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 0332b43..7e86bff 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -28,4 +28,5 @@ CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
+CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak
index dff6fef..2b48452 100644
--- a/default-configs/mips-softmmu.mak
+++ b/default-configs/mips-softmmu.mak
@@ -32,3 +32,4 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/mips64-softmmu.mak b/default-configs/mips64-softmmu.mak
index 0968e5f..5713320 100644
--- a/default-configs/mips64-softmmu.mak
+++ b/default-configs/mips64-softmmu.mak
@@ -32,3 +32,4 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index 6f115d4..096dc80 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -34,3 +34,4 @@ CONFIG_FULONG=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/mipsel-softmmu.mak b/default-configs/mipsel-softmmu.mak
index e391cf7..5509f0e 100644
--- a/default-configs/mipsel-softmmu.mak
+++ b/default-configs/mipsel-softmmu.mak
@@ -32,3 +32,4 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index cdf82b1..d9ced3a 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -41,3 +41,5 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_E500=$(CONFIG_FDT)
+# For PReP
+CONFIG_MC146818RTC=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 26f74b0..7d62e14 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -44,3 +44,5 @@ CONFIG_PSERIES=$(CONFIG_FDT)
 CONFIG_E500=$(CONFIG_FDT)
 # For pSeries
 CONFIG_PCI_HOTPLUG=y
+# For PReP
+CONFIG_MC146818RTC=y
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 806adfd..9d8c5c7 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -36,3 +36,5 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_E500=$(CONFIG_FDT)
+# For PReP
+CONFIG_MC146818RTC=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 2145b6b..3b3dc55 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -13,3 +13,4 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_CMD646=y
+CONFIG_MC146818RTC=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 9de6e8c..e0f4db6 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -28,4 +28,5 @@ CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
+CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
diff --git a/hw/alpha/Makefile.objs b/hw/alpha/Makefile.objs
index bcc32be..5c74275 100644
--- a/hw/alpha/Makefile.objs
+++ b/hw/alpha/Makefile.objs
@@ -1,5 +1 @@
-obj-y = mc146818rtc.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += dp264.o pci.o typhoon.o
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 5559a8b..80132d8 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,4 +1,3 @@
-obj-y += mc146818rtc.o
 obj-y += apic_common.o apic.o
 obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
index 1e3bca1..e173a2d 100644
--- a/hw/mips/Makefile.objs
+++ b/hw/mips/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += gt64xxx.o mc146818rtc.o
+obj-y += gt64xxx.o
 obj-$(CONFIG_FULONG) += bonito.o vt82c686.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index ef1d9ed..b22a6f1 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,5 +1,3 @@
-# PREP target
-obj-y += mc146818rtc.o
 # IBM pSeries (sPAPR)
 obj-$(CONFIG_PSERIES) += spapr_vty.o spapr_llan.o spapr_vscsi.o
 obj-$(CONFIG_PSERIES) += spapr_pci.o
diff --git a/hw/sparc64/Makefile.objs b/hw/sparc64/Makefile.objs
index 4df0d90..178464b 100644
--- a/hw/sparc64/Makefile.objs
+++ b/hw/sparc64/Makefile.objs
@@ -1,5 +1,4 @@
 obj-y = apb_pci.o
-obj-y += mc146818rtc.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
index 12781dd..a1ef26c 100644
--- a/hw/timer/Makefile.objs
+++ b/hw/timer/Makefile.objs
@@ -8,3 +8,5 @@ common-obj-$(CONFIG_PL031) += pl031.o
 common-obj-$(CONFIG_PUV3) += puv3_ost.o
 common-obj-$(CONFIG_TWL92230) += twl92230.o
 common-obj-$(CONFIG_XILINX) += xilinx_timer.o
+
+obj-$(CONFIG_MC146818RTC) += mc146818rtc.o
diff --git a/hw/mc146818rtc.c b/hw/timer/mc146818rtc.c
similarity index 100%
rename from hw/mc146818rtc.c
rename to hw/timer/mc146818rtc.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 13/35] hw: move NICs to hw/net/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (11 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 12/35] hw: move MC146818RTC to hw/timer/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 14/35] hw: move block devices to hw/block/, " Paolo Bonzini
                   ` (22 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak          | 1 +
 default-configs/cris-softmmu.mak         | 1 +
 default-configs/lm32-softmmu.mak         | 1 +
 default-configs/m68k-softmmu.mak         | 1 +
 default-configs/microblaze-softmmu.mak   | 1 +
 default-configs/microblazeel-softmmu.mak | 1 +
 default-configs/ppc-softmmu.mak          | 1 +
 default-configs/ppc64-softmmu.mak        | 1 +
 default-configs/ppcemb-softmmu.mak       | 1 +
 default-configs/sparc-softmmu.mak        | 1 +
 hw/arm/Makefile.objs                     | 2 +-
 hw/cris/Makefile.objs                    | 1 -
 hw/lm32/Makefile.objs                    | 1 -
 hw/m68k/Makefile.objs                    | 2 +-
 hw/microblaze/Makefile.objs              | 1 -
 hw/net/Makefile.objs                     | 8 ++++++++
 hw/{ => net}/etraxfs_eth.c               | 0
 hw/{ => net}/lance.c                     | 0
 hw/{ => net}/mcf_fec.c                   | 0
 hw/{ => net}/milkymist-minimac2.c        | 0
 hw/{ => net}/spapr_llan.c                | 0
 hw/{ => net}/stellaris_enet.c            | 0
 hw/{ => net}/xilinx_ethlite.c            | 0
 hw/ppc/Makefile.objs                     | 5 +----
 hw/sparc/Makefile.objs                   | 2 +-
 25 files changed, 22 insertions(+), 10 deletions(-)
 rename hw/{ => net}/etraxfs_eth.c (100%)
 rename hw/{ => net}/lance.c (100%)
 rename hw/{ => net}/mcf_fec.c (100%)
 rename hw/{ => net}/milkymist-minimac2.c (100%)
 rename hw/{ => net}/spapr_llan.c (100%)
 rename hw/{ => net}/stellaris_enet.c (100%)
 rename hw/{ => net}/xilinx_ethlite.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 4b72019..cd353bd 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -17,6 +17,7 @@ CONFIG_TSC2005=y
 CONFIG_LM832X=y
 CONFIG_TMP105=y
 CONFIG_STELLARIS_INPUT=y
+CONFIG_STELLARIS_ENET=y
 CONFIG_SSD0303=y
 CONFIG_SSD0323=y
 CONFIG_ADS7846=y
diff --git a/default-configs/cris-softmmu.mak b/default-configs/cris-softmmu.mak
index 1a479cd..d970d50 100644
--- a/default-configs/cris-softmmu.mak
+++ b/default-configs/cris-softmmu.mak
@@ -1,5 +1,6 @@
 # Default configuration for cris-softmmu
 
+CONFIG_ETRAXFS=y
 CONFIG_NAND=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI02=y
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index 0d19974..2654ad6 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -1,5 +1,6 @@
 # Default configuration for lm32-softmmu
 
+CONFIG_MILKYMIST=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_PFLASH_CFI02=y
diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
index 778ea82..51fe5bb 100644
--- a/default-configs/m68k-softmmu.mak
+++ b/default-configs/m68k-softmmu.mak
@@ -2,5 +2,6 @@
 
 include pci.mak
 include usb.mak
+CONFIG_COLDFIRE=y
 CONFIG_GDBSTUB_XML=y
 CONFIG_PTIMER=y
diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index 2f442e5..050e273 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -5,5 +5,6 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_SERIAL=y
 CONFIG_XILINX=y
 CONFIG_XILINX_AXI=y
+CONFIG_XILINX_ETHLITE=y
 CONFIG_SSI=y
 CONFIG_SSI_M25P80=y
diff --git a/default-configs/microblazeel-softmmu.mak b/default-configs/microblazeel-softmmu.mak
index af9a3cd..db82dd8 100644
--- a/default-configs/microblazeel-softmmu.mak
+++ b/default-configs/microblazeel-softmmu.mak
@@ -5,5 +5,6 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_SERIAL=y
 CONFIG_XILINX=y
 CONFIG_XILINX_AXI=y
+CONFIG_XILINX_ETHLITE=y
 CONFIG_SSI=y
 CONFIG_SSI_M25P80=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index d9ced3a..36a8ed3 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -40,6 +40,7 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
+CONFIG_XILINX_ETHLITE=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
 CONFIG_MC146818RTC=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 7d62e14..2d5df77 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -40,6 +40,7 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
+CONFIG_XILINX_ETHLITE=y
 CONFIG_PSERIES=$(CONFIG_FDT)
 CONFIG_E500=$(CONFIG_FDT)
 # For pSeries
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 9d8c5c7..ce705a9 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -35,6 +35,7 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
+CONFIG_XILINX_ETHLITE=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
 CONFIG_MC146818RTC=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index b0310c5..6d11ba0 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -8,3 +8,4 @@ CONFIG_PTIMER=y
 CONFIG_FDC=y
 CONFIG_EMPTY_SLOT=y
 CONFIG_PCNET_COMMON=y
+CONFIG_LANCE=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index d809ad8..b14beb8 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -8,7 +8,7 @@ obj-y += exynos4210_uart.o exynos4210_pwm.o
 obj-y += exynos4210_pmu.o exynos4210_mct.o exynos4210_fimd.o
 obj-y += exynos4210_rtc.o exynos4210_i2c.o
 obj-y += arm_mptimer.o a15mpcore.o
-obj-y += armv7m_nvic.o stellaris_enet.o
+obj-y += armv7m_nvic.o
 obj-y += pxa2xx_timer.o pxa2xx_dma.o
 obj-y += pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
 obj-y += zaurus.o tc6393xb.o
diff --git a/hw/cris/Makefile.objs b/hw/cris/Makefile.objs
index a94c624..e02365d 100644
--- a/hw/cris/Makefile.objs
+++ b/hw/cris/Makefile.objs
@@ -1,7 +1,6 @@
 # IO blocks
 obj-y += etraxfs_dma.o
 obj-y += etraxfs_pic.o
-obj-y += etraxfs_eth.o
 obj-y += etraxfs_timer.o
 obj-y += etraxfs_ser.o
 
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index 4592fe5..b0f8a9f 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -7,7 +7,6 @@ obj-y += lm32_sys.o
 obj-y += milkymist-ac97.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-memcard.o
-obj-y += milkymist-minimac2.o
 obj-y += milkymist-pfpu.o
 obj-y += milkymist-softusb.o
 obj-y += milkymist-sysctl.o
diff --git a/hw/m68k/Makefile.objs b/hw/m68k/Makefile.objs
index ede32a7..ebbe003 100644
--- a/hw/m68k/Makefile.objs
+++ b/hw/m68k/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y = mcf_uart.o mcf_fec.o
+obj-y = mcf_uart.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/microblaze/Makefile.objs b/hw/microblaze/Makefile.objs
index 9e7f249..75f5ce6 100644
--- a/hw/microblaze/Makefile.objs
+++ b/hw/microblaze/Makefile.objs
@@ -1,5 +1,4 @@
 obj-y += xilinx_spi.o
-obj-y += xilinx_ethlite.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
index a82b72f..45f208e 100644
--- a/hw/net/Makefile.objs
+++ b/hw/net/Makefile.objs
@@ -19,5 +19,13 @@ common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
 
 common-obj-$(CONFIG_CADENCE) += cadence_gem.o
 
+obj-$(CONFIG_STELLARIS_ENET) += stellaris_enet.o
+obj-$(CONFIG_ETRAXFS) += etraxfs_eth.o
+obj-$(CONFIG_LANCE) += lance.o
+obj-$(CONFIG_COLDFIRE) += mcf_fec.o
+obj-$(CONFIG_MILKYMIST) += milkymist-minimac2.o
+obj-$(CONFIG_PSERIES) += spapr_llan.o
+obj-$(CONFIG_XILINX_ETHLITE) += xilinx_ethlite.o
+
 obj-$(CONFIG_VIRTIO) += virtio-net.o
 obj-y += vhost_net.o
diff --git a/hw/etraxfs_eth.c b/hw/net/etraxfs_eth.c
similarity index 100%
rename from hw/etraxfs_eth.c
rename to hw/net/etraxfs_eth.c
diff --git a/hw/lance.c b/hw/net/lance.c
similarity index 100%
rename from hw/lance.c
rename to hw/net/lance.c
diff --git a/hw/mcf_fec.c b/hw/net/mcf_fec.c
similarity index 100%
rename from hw/mcf_fec.c
rename to hw/net/mcf_fec.c
diff --git a/hw/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c
similarity index 100%
rename from hw/milkymist-minimac2.c
rename to hw/net/milkymist-minimac2.c
diff --git a/hw/spapr_llan.c b/hw/net/spapr_llan.c
similarity index 100%
rename from hw/spapr_llan.c
rename to hw/net/spapr_llan.c
diff --git a/hw/stellaris_enet.c b/hw/net/stellaris_enet.c
similarity index 100%
rename from hw/stellaris_enet.c
rename to hw/net/stellaris_enet.c
diff --git a/hw/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c
similarity index 100%
rename from hw/xilinx_ethlite.c
rename to hw/net/xilinx_ethlite.c
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index b22a6f1..42c7d08 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,5 +1,5 @@
 # IBM pSeries (sPAPR)
-obj-$(CONFIG_PSERIES) += spapr_vty.o spapr_llan.o spapr_vscsi.o
+obj-$(CONFIG_PSERIES) += spapr_vty.o spapr_vscsi.o
 obj-$(CONFIG_PSERIES) += spapr_pci.o
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
 # PowerPC 4xx boards
@@ -7,9 +7,6 @@ obj-y += ppc4xx_pci.o
 # PowerPC OpenPIC
 obj-y += openpic.o
 
-# Xilinx PPC peripherals
-obj-y += xilinx_ethlite.o
-
 obj-y := $(addprefix ../,$(obj-y))
 
 # shared objects
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index 71bbddf..56eeb90 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y = lance.o tcx.o sun4m_iommu.o slavio_intctl.o
+obj-y = tcx.o sun4m_iommu.o slavio_intctl.o
 obj-y += slavio_timer.o slavio_misc.o sparc32_dma.o
 obj-y += cs4231.o eccmemctl.o sbi.o sun4c_intctl.o
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 14/35] hw: move block devices to hw/block/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (12 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 13/35] hw: move NICs to hw/net/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 15/35] hw: move audio devices to hw/audio/, " Paolo Bonzini
                   ` (21 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak    | 1 +
 default-configs/i386-softmmu.mak   | 1 +
 default-configs/sh4-softmmu.mak    | 1 +
 default-configs/sh4eb-softmmu.mak  | 1 +
 default-configs/x86_64-softmmu.mak | 1 +
 hw/arm/Makefile.objs               | 2 +-
 hw/block/Makefile.objs             | 4 ++++
 hw/{ => block}/onenand.c           | 0
 hw/{ => block}/pc_sysfw.c          | 0
 hw/{ => block}/tc58128.c           | 0
 hw/i386/Makefile.objs              | 1 -
 hw/sh4/Makefile.objs               | 1 -
 12 files changed, 10 insertions(+), 3 deletions(-)
 rename hw/{ => block}/onenand.c (100%)
 rename hw/{ => block}/pc_sysfw.c (100%)
 rename hw/{ => block}/tc58128.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index cd353bd..7717ea6 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -48,6 +48,7 @@ CONFIG_PL310=y
 CONFIG_PL330=y
 CONFIG_CADENCE=y
 CONFIG_XGMAC=y
+CONFIG_ONENAND=y
 
 CONFIG_VERSATILE_PCI=y
 CONFIG_VERSATILE_I2C=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 7e86bff..05818ef 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -30,3 +30,4 @@ CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
+CONFIG_PC_SYSFW=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index bcafc27..20a05f9 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -6,4 +6,5 @@ CONFIG_SERIAL=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
+CONFIG_SH4=y
 CONFIG_IDE_MMIO=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 8372b0d..875e7e6 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -6,4 +6,5 @@ CONFIG_SERIAL=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
+CONFIG_SH4=y
 CONFIG_IDE_MMIO=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index e0f4db6..dd5eb4f 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -30,3 +30,4 @@ CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
+CONFIG_PC_SYSFW=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index b14beb8..ede019d 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -17,7 +17,7 @@ obj-y += omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
 obj-y += omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
                 omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
-obj-y += blizzard.o onenand.o cbus.o tusb6010.o
+obj-y += blizzard.o cbus.o tusb6010.o
 obj-y += mst_fpga.o
 obj-y += bitbang_i2c.o marvell_88w8618_audio.o
 obj-y += framebuffer.o
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index 4fcbe45..3343aab 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -6,5 +6,9 @@ common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
 common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
 common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
 common-obj-$(CONFIG_ECC) += ecc.o
+common-obj-$(CONFIG_ONENAND) += onenand.o
+common-obj-$(CONFIG_PC_SYSFW) += pc_sysfw.o
+
+obj-$(CONFIG_SH4) += tc58128.o
 
 obj-$(CONFIG_VIRTIO) += dataplane/ virtio-blk.o
diff --git a/hw/onenand.c b/hw/block/onenand.c
similarity index 100%
rename from hw/onenand.c
rename to hw/block/onenand.c
diff --git a/hw/pc_sysfw.c b/hw/block/pc_sysfw.c
similarity index 100%
rename from hw/pc_sysfw.c
rename to hw/block/pc_sysfw.c
diff --git a/hw/tc58128.c b/hw/block/tc58128.c
similarity index 100%
rename from hw/tc58128.c
rename to hw/block/tc58128.c
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 80132d8..6df5fd9 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -2,7 +2,6 @@ obj-y += apic_common.o apic.o
 obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
 obj-y += debugcon.o debugexit.o
-obj-y += pc_sysfw.o
 obj-y += lpc_ich9.o q35.o
 obj-$(CONFIG_XEN) += xen_platform.o xen_apic.o
 obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen-host-pci-device.o
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 4f2ac2a..efbb9eb 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,3 @@
-obj-y = tc58128.o
 obj-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o
 
 obj-y := $(addprefix ../,$(obj-y))
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 15/35] hw: move audio devices to hw/audio/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (13 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 14/35] hw: move block devices to hw/block/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 16/35] hw: move display devices to hw/display/, " Paolo Bonzini
                   ` (20 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak                         | 1 +
 default-configs/sparc-softmmu.mak                       | 1 +
 hw/arm/Makefile.objs                                    | 2 +-
 hw/audio/Makefile.objs                                  | 4 ++++
 hw/{ => audio}/cs4231.c                                 | 0
 hw/{marvell_88w8618_audio.c => audio/marvell_88w8618.c} | 0
 hw/{ => audio}/milkymist-ac97.c                         | 0
 hw/lm32/Makefile.objs                                   | 1 -
 hw/sparc/Makefile.objs                                  | 2 +-
 9 files changed, 8 insertions(+), 3 deletions(-)
 rename hw/{ => audio}/cs4231.c (100%)
 rename hw/{marvell_88w8618_audio.c => audio/marvell_88w8618.c} (100%)
 rename hw/{ => audio}/milkymist-ac97.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 7717ea6..c0e0110 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -48,6 +48,7 @@ CONFIG_PL310=y
 CONFIG_PL330=y
 CONFIG_CADENCE=y
 CONFIG_XGMAC=y
+CONFIG_MARVELL_88W8618=y
 CONFIG_ONENAND=y
 
 CONFIG_VERSATILE_PCI=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 6d11ba0..eda8797 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -9,3 +9,4 @@ CONFIG_FDC=y
 CONFIG_EMPTY_SLOT=y
 CONFIG_PCNET_COMMON=y
 CONFIG_LANCE=y
+CONFIG_CS4231=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index ede019d..6582f5a 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -19,7 +19,7 @@ obj-y += omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
 obj-y += tsc210x.o
 obj-y += blizzard.o cbus.o tusb6010.o
 obj-y += mst_fpga.o
-obj-y += bitbang_i2c.o marvell_88w8618_audio.o
+obj-y += bitbang_i2c.o
 obj-y += framebuffer.o
 obj-y += strongarm.o
 obj-y += imx_serial.o imx_ccm.o imx_timer.o imx_avic.o
diff --git a/hw/audio/Makefile.objs b/hw/audio/Makefile.objs
index c50c367..2375102 100644
--- a/hw/audio/Makefile.objs
+++ b/hw/audio/Makefile.objs
@@ -13,4 +13,8 @@ common-obj-$(CONFIG_PCSPK) += pcspk.o
 common-obj-$(CONFIG_WM8750) += wm8750.o
 common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
 
+common-obj-$(CONFIG_CS4231) += cs4231.o
+common-obj-$(CONFIG_MARVELL_88W8618) += marvell_88w8618.o
+common-obj-$(CONFIG_MILKYMIST) += milkymist-ac97.o
+
 $(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
diff --git a/hw/cs4231.c b/hw/audio/cs4231.c
similarity index 100%
rename from hw/cs4231.c
rename to hw/audio/cs4231.c
diff --git a/hw/marvell_88w8618_audio.c b/hw/audio/marvell_88w8618.c
similarity index 100%
rename from hw/marvell_88w8618_audio.c
rename to hw/audio/marvell_88w8618.c
diff --git a/hw/milkymist-ac97.c b/hw/audio/milkymist-ac97.c
similarity index 100%
rename from hw/milkymist-ac97.c
rename to hw/audio/milkymist-ac97.c
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index b0f8a9f..9634226 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -4,7 +4,6 @@ obj-y += lm32_juart.o
 obj-y += lm32_timer.o
 obj-y += lm32_uart.o
 obj-y += lm32_sys.o
-obj-y += milkymist-ac97.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-memcard.o
 obj-y += milkymist-pfpu.o
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index 56eeb90..b2a921e 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,6 +1,6 @@
 obj-y = tcx.o sun4m_iommu.o slavio_intctl.o
 obj-y += slavio_timer.o slavio_misc.o sparc32_dma.o
-obj-y += cs4231.o eccmemctl.o sbi.o sun4c_intctl.o
+obj-y += eccmemctl.o sbi.o sun4c_intctl.o
 
 # GRLIB
 obj-y += grlib_gptimer.o grlib_irqmp.o grlib_apbuart.o
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 16/35] hw: move display devices to hw/display/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (14 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 15/35] hw: move audio devices to hw/audio/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 17/35] hw: move I2C controllers to hw/i2c/, " Paolo Bonzini
                   ` (19 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak    |  6 ++++++
 default-configs/i386-softmmu.mak   |  1 +
 default-configs/lm32-softmmu.mak   |  1 +
 default-configs/sh4-softmmu.mak    |  1 +
 default-configs/sh4eb-softmmu.mak  |  1 +
 default-configs/sparc-softmmu.mak  |  1 +
 default-configs/x86_64-softmmu.mak |  1 +
 hw/Makefile.objs                   |  5 -----
 hw/arm/Makefile.objs               | 13 ++++++-------
 hw/display/Makefile.objs           | 21 +++++++++++++++++++++
 hw/{ => display}/blizzard.c        |  0
 hw/{ => display}/exynos4210_fimd.c |  0
 hw/{ => display}/framebuffer.c     |  0
 hw/{ => display}/milkymist-tmu2.c  |  0
 hw/{ => display}/milkymist-vgafb.c |  0
 hw/{ => display}/omap_dss.c        |  0
 hw/{ => display}/omap_lcdc.c       |  0
 hw/{ => display}/pxa2xx_lcd.c      |  0
 hw/{ => display}/qxl-logger.c      |  0
 hw/{ => display}/qxl-render.c      |  0
 hw/{ => display}/qxl.c             |  0
 hw/{ => display}/sm501.c           |  0
 hw/{ => display}/tc6393xb.c        |  0
 hw/{ => display}/tcx.c             |  0
 hw/{ => display}/vga.c             |  0
 hw/i386/Makefile.objs              |  1 -
 hw/lm32/Makefile.objs              |  3 ---
 hw/sh4/Makefile.objs               |  2 +-
 hw/sparc/Makefile.objs             |  2 +-
 29 files changed, 41 insertions(+), 18 deletions(-)
 rename hw/{ => display}/blizzard.c (100%)
 rename hw/{ => display}/exynos4210_fimd.c (100%)
 rename hw/{ => display}/framebuffer.c (100%)
 rename hw/{ => display}/milkymist-tmu2.c (100%)
 rename hw/{ => display}/milkymist-vgafb.c (100%)
 rename hw/{ => display}/omap_dss.c (100%)
 rename hw/{ => display}/omap_lcdc.c (100%)
 rename hw/{ => display}/pxa2xx_lcd.c (100%)
 rename hw/{ => display}/qxl-logger.c (100%)
 rename hw/{ => display}/qxl-render.c (100%)
 rename hw/{ => display}/qxl.c (100%)
 rename hw/{ => display}/sm501.c (100%)
 rename hw/{ => display}/tc6393xb.c (100%)
 rename hw/{ => display}/tcx.c (100%)
 rename hw/{ => display}/vga.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index c0e0110..a7dd44a 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -48,8 +48,14 @@ CONFIG_PL310=y
 CONFIG_PL330=y
 CONFIG_CADENCE=y
 CONFIG_XGMAC=y
+CONFIG_EXYNOS4=y
+CONFIG_PXA2XX=y
+CONFIG_FRAMEBUFFER=y
 CONFIG_MARVELL_88W8618=y
+CONFIG_OMAP=y
+CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
+CONFIG_ZAURUS=y
 
 CONFIG_VERSATILE_PCI=y
 CONFIG_VERSATILE_I2C=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 05818ef..c75f8f8 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -3,6 +3,7 @@
 include pci.mak
 include usb.mak
 CONFIG_VGA=y
+CONFIG_QXL=y
 CONFIG_VGA_PCI=y
 CONFIG_VGA_ISA=y
 CONFIG_VGA_CIRRUS=y
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index 2654ad6..6b2ee43 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -1,6 +1,7 @@
 # Default configuration for lm32-softmmu
 
 CONFIG_MILKYMIST=y
+CONFIG_FRAMEBUFFER=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_PFLASH_CFI02=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 20a05f9..f6bf62d 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -8,3 +8,4 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
 CONFIG_SH4=y
 CONFIG_IDE_MMIO=y
+CONFIG_SM501=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 875e7e6..c1d513d 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -8,3 +8,4 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_ISA_MMIO=y
 CONFIG_SH4=y
 CONFIG_IDE_MMIO=y
+CONFIG_SM501=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index eda8797..25bcbe3 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -9,4 +9,5 @@ CONFIG_FDC=y
 CONFIG_EMPTY_SLOT=y
 CONFIG_PCNET_COMMON=y
 CONFIG_LANCE=y
+CONFIG_TCX=y
 CONFIG_CS4231=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index dd5eb4f..88b1cfa 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -3,6 +3,7 @@
 include pci.mak
 include usb.mak
 CONFIG_VGA=y
+CONFIG_QXL=y
 CONFIG_VGA_PCI=y
 CONFIG_VGA_ISA=y
 CONFIG_VGA_CIRRUS=y
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index b3868aa..a57dd9a 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -31,11 +31,6 @@ obj-y += $(devices-dirs-y)
 
 ifeq ($(CONFIG_SOFTMMU),y)
 
-# Per-target files
-# virtio has to be here due to weird dependency between PCI and virtio-net.
-# need to fix this properly
-obj-$(CONFIG_VGA) += vga.o
-
 # Inter-VM PCI shared memory & VFIO PCI device assignment
 ifeq ($(CONFIG_PCI), y)
 obj-$(CONFIG_KVM) += ivshmem.o
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 6582f5a..3efefe5 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -5,22 +5,21 @@ obj-y += a9scu.o
 obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_gic.o exynos4210_combiner.o
 obj-y += exynos4210_uart.o exynos4210_pwm.o
-obj-y += exynos4210_pmu.o exynos4210_mct.o exynos4210_fimd.o
+obj-y += exynos4210_pmu.o exynos4210_mct.o
 obj-y += exynos4210_rtc.o exynos4210_i2c.o
 obj-y += arm_mptimer.o a15mpcore.o
 obj-y += armv7m_nvic.o
 obj-y += pxa2xx_timer.o pxa2xx_dma.o
-obj-y += pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
-obj-y += zaurus.o tc6393xb.o
-obj-y += omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
+obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
+obj-y += zaurus.o
+obj-y += omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
                 omap_gpio.o omap_intc.o omap_uart.o
-obj-y += omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
+obj-y += soc_dma.o omap_gptimer.o omap_synctimer.o \
                 omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
-obj-y += blizzard.o cbus.o tusb6010.o
+obj-y += cbus.o tusb6010.o
 obj-y += mst_fpga.o
 obj-y += bitbang_i2c.o
-obj-y += framebuffer.o
 obj-y += strongarm.o
 obj-y += imx_serial.o imx_ccm.o imx_timer.o imx_avic.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 3ac154d..429cea1 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -11,3 +11,24 @@ common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
 common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
 common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
 common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
+
+obj-$(CONFIG_BLIZZARD) += blizzard.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o
+obj-$(CONFIG_FRAMEBUFFER) += framebuffer.o
+obj-$(CONFIG_MILKYMIST) += milkymist-vgafb.o
+obj-$(CONFIG_OMAP) += omap_dss.o
+obj-$(CONFIG_OMAP) += omap_lcdc.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_lcd.o
+obj-$(CONFIG_SM501) += sm501.o
+obj-$(CONFIG_TCX) += tcx.o
+obj-$(CONFIG_ZAURUS) += tc6393xb.o
+
+ifeq ($(CONFIG_OPENGL),y)
+obj-$(CONFIG_MILKYMIST) += milkymist-tmu2.o
+endif
+
+obj-$(CONFIG_VGA) += vga.o
+
+ifeq ($(CONFIG_SPICE),y)
+obj-$(CONFIG_QXL) += qxl-logger.o qxl-render.o qxl.o
+endif
diff --git a/hw/blizzard.c b/hw/display/blizzard.c
similarity index 100%
rename from hw/blizzard.c
rename to hw/display/blizzard.c
diff --git a/hw/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
similarity index 100%
rename from hw/exynos4210_fimd.c
rename to hw/display/exynos4210_fimd.c
diff --git a/hw/framebuffer.c b/hw/display/framebuffer.c
similarity index 100%
rename from hw/framebuffer.c
rename to hw/display/framebuffer.c
diff --git a/hw/milkymist-tmu2.c b/hw/display/milkymist-tmu2.c
similarity index 100%
rename from hw/milkymist-tmu2.c
rename to hw/display/milkymist-tmu2.c
diff --git a/hw/milkymist-vgafb.c b/hw/display/milkymist-vgafb.c
similarity index 100%
rename from hw/milkymist-vgafb.c
rename to hw/display/milkymist-vgafb.c
diff --git a/hw/omap_dss.c b/hw/display/omap_dss.c
similarity index 100%
rename from hw/omap_dss.c
rename to hw/display/omap_dss.c
diff --git a/hw/omap_lcdc.c b/hw/display/omap_lcdc.c
similarity index 100%
rename from hw/omap_lcdc.c
rename to hw/display/omap_lcdc.c
diff --git a/hw/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c
similarity index 100%
rename from hw/pxa2xx_lcd.c
rename to hw/display/pxa2xx_lcd.c
diff --git a/hw/qxl-logger.c b/hw/display/qxl-logger.c
similarity index 100%
rename from hw/qxl-logger.c
rename to hw/display/qxl-logger.c
diff --git a/hw/qxl-render.c b/hw/display/qxl-render.c
similarity index 100%
rename from hw/qxl-render.c
rename to hw/display/qxl-render.c
diff --git a/hw/qxl.c b/hw/display/qxl.c
similarity index 100%
rename from hw/qxl.c
rename to hw/display/qxl.c
diff --git a/hw/sm501.c b/hw/display/sm501.c
similarity index 100%
rename from hw/sm501.c
rename to hw/display/sm501.c
diff --git a/hw/tc6393xb.c b/hw/display/tc6393xb.c
similarity index 100%
rename from hw/tc6393xb.c
rename to hw/display/tc6393xb.c
diff --git a/hw/tcx.c b/hw/display/tcx.c
similarity index 100%
rename from hw/tcx.c
rename to hw/display/tcx.c
diff --git a/hw/vga.c b/hw/display/vga.c
similarity index 100%
rename from hw/vga.c
rename to hw/display/vga.c
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 6df5fd9..fe01234 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -7,7 +7,6 @@ obj-$(CONFIG_XEN) += xen_platform.o xen_apic.o
 obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen-host-pci-device.o
 obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen_pt.o xen_pt_config_init.o xen_pt_msi.o
 obj-y += kvm/
-obj-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
 obj-y += pc-testdev.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index 9634226..a894c46 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -9,10 +9,7 @@ obj-y += milkymist-memcard.o
 obj-y += milkymist-pfpu.o
 obj-y += milkymist-softusb.o
 obj-y += milkymist-sysctl.o
-obj-$(CONFIG_OPENGL) += milkymist-tmu2.o
 obj-y += milkymist-uart.o
-obj-y += milkymist-vgafb.o
-obj-y += framebuffer.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index efbb9eb..c9b0416 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o
+obj-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index b2a921e..2354616 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y = tcx.o sun4m_iommu.o slavio_intctl.o
+obj-y = sun4m_iommu.o slavio_intctl.o
 obj-y += slavio_timer.o slavio_misc.o sparc32_dma.o
 obj-y += eccmemctl.o sbi.o sun4c_intctl.o
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 17/35] hw: move I2C controllers to hw/i2c/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (15 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 16/35] hw: move display devices to hw/display/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 18/35] hw: move SSI controllers to hw/ssi/, " Paolo Bonzini
                   ` (18 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak | 1 +
 hw/arm/Makefile.objs            | 5 ++---
 hw/i2c/Makefile.objs            | 3 +++
 hw/{ => i2c}/bitbang_i2c.c      | 0
 hw/{ => i2c}/exynos4210_i2c.c   | 0
 hw/{ => i2c}/omap_i2c.c         | 0
 6 files changed, 6 insertions(+), 3 deletions(-)
 rename hw/{ => i2c}/bitbang_i2c.c (100%)
 rename hw/{ => i2c}/exynos4210_i2c.c (100%)
 rename hw/{ => i2c}/omap_i2c.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index a7dd44a..24b0d41 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -50,6 +50,7 @@ CONFIG_CADENCE=y
 CONFIG_XGMAC=y
 CONFIG_EXYNOS4=y
 CONFIG_PXA2XX=y
+CONFIG_BITBANG_I2C=y
 CONFIG_FRAMEBUFFER=y
 CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 3efefe5..45bde58 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -6,20 +6,19 @@ obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_gic.o exynos4210_combiner.o
 obj-y += exynos4210_uart.o exynos4210_pwm.o
 obj-y += exynos4210_pmu.o exynos4210_mct.o
-obj-y += exynos4210_rtc.o exynos4210_i2c.o
+obj-y += exynos4210_rtc.o
 obj-y += arm_mptimer.o a15mpcore.o
 obj-y += armv7m_nvic.o
 obj-y += pxa2xx_timer.o pxa2xx_dma.o
 obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
 obj-y += zaurus.o
-obj-y += omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
+obj-y += omap_dma.o omap_clk.o omap_mmc.o \
                 omap_gpio.o omap_intc.o omap_uart.o
 obj-y += soc_dma.o omap_gptimer.o omap_synctimer.o \
                 omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
 obj-y += cbus.o tusb6010.o
 obj-y += mst_fpga.o
-obj-y += bitbang_i2c.o
 obj-y += strongarm.o
 obj-y += imx_serial.o imx_ccm.o imx_timer.o imx_avic.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index f6bd8fa..648278e 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -2,3 +2,6 @@ common-obj-y += core.o smbus.o smbus_eeprom.o
 common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
 common-obj-$(CONFIG_ACPI) += smbus_ich9.o
 common-obj-$(CONFIG_APM) += pm_smbus.o
+common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o
+common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o
+obj-$(CONFIG_OMAP) += omap_i2c.o
diff --git a/hw/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
similarity index 100%
rename from hw/bitbang_i2c.c
rename to hw/i2c/bitbang_i2c.c
diff --git a/hw/exynos4210_i2c.c b/hw/i2c/exynos4210_i2c.c
similarity index 100%
rename from hw/exynos4210_i2c.c
rename to hw/i2c/exynos4210_i2c.c
diff --git a/hw/omap_i2c.c b/hw/i2c/omap_i2c.c
similarity index 100%
rename from hw/omap_i2c.c
rename to hw/i2c/omap_i2c.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 18/35] hw: move SSI controllers to hw/ssi/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (16 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 17/35] hw: move I2C controllers to hw/i2c/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 19/35] hw: move SCSI controllers to hw/scsi/, " Paolo Bonzini
                   ` (17 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak          | 1 +
 default-configs/microblaze-softmmu.mak   | 1 +
 default-configs/microblazeel-softmmu.mak | 1 +
 hw/arm/Makefile.objs                     | 3 +--
 hw/microblaze/Makefile.objs              | 4 ----
 hw/ssi/Makefile.objs                     | 4 ++++
 hw/{ => ssi}/omap_spi.c                  | 0
 hw/{ => ssi}/xilinx_spi.c                | 0
 hw/{ => ssi}/xilinx_spips.c              | 0
 9 files changed, 8 insertions(+), 6 deletions(-)
 rename hw/{ => ssi}/omap_spi.c (100%)
 rename hw/{ => ssi}/xilinx_spi.c (100%)
 rename hw/{ => ssi}/xilinx_spips.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 24b0d41..8eb04e2 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -52,6 +52,7 @@ CONFIG_EXYNOS4=y
 CONFIG_PXA2XX=y
 CONFIG_BITBANG_I2C=y
 CONFIG_FRAMEBUFFER=y
+CONFIG_XILINX_SPIPS=y
 CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
 CONFIG_BLIZZARD=y
diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index 050e273..ce26308 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -5,6 +5,7 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_SERIAL=y
 CONFIG_XILINX=y
 CONFIG_XILINX_AXI=y
+CONFIG_XILINX_SPI=y
 CONFIG_XILINX_ETHLITE=y
 CONFIG_SSI=y
 CONFIG_SSI_M25P80=y
diff --git a/default-configs/microblazeel-softmmu.mak b/default-configs/microblazeel-softmmu.mak
index db82dd8..acf22c5 100644
--- a/default-configs/microblazeel-softmmu.mak
+++ b/default-configs/microblazeel-softmmu.mak
@@ -5,6 +5,7 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_SERIAL=y
 CONFIG_XILINX=y
 CONFIG_XILINX_AXI=y
+CONFIG_XILINX_SPI=y
 CONFIG_XILINX_ETHLITE=y
 CONFIG_SSI=y
 CONFIG_SSI_M25P80=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 45bde58..6f764e6 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,5 +1,4 @@
 obj-y += zynq_slcr.o
-obj-y += xilinx_spips.o
 obj-y += arm_gic.o arm_gic_common.o
 obj-y += a9scu.o
 obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
@@ -15,7 +14,7 @@ obj-y += zaurus.o
 obj-y += omap_dma.o omap_clk.o omap_mmc.o \
                 omap_gpio.o omap_intc.o omap_uart.o
 obj-y += soc_dma.o omap_gptimer.o omap_synctimer.o \
-                omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
+                omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
 obj-y += cbus.o tusb6010.o
 obj-y += mst_fpga.o
diff --git a/hw/microblaze/Makefile.objs b/hw/microblaze/Makefile.objs
index 75f5ce6..c65e2aa 100644
--- a/hw/microblaze/Makefile.objs
+++ b/hw/microblaze/Makefile.objs
@@ -1,7 +1,3 @@
-obj-y += xilinx_spi.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += petalogix_s3adsp1800_mmu.o
 obj-y += petalogix_ml605_mmu.o
 obj-y += boot.o
diff --git a/hw/ssi/Makefile.objs b/hw/ssi/Makefile.objs
index daada5c..9555825 100644
--- a/hw/ssi/Makefile.objs
+++ b/hw/ssi/Makefile.objs
@@ -1,2 +1,6 @@
 common-obj-$(CONFIG_PL022) += pl022.o
 common-obj-$(CONFIG_SSI) += ssi.o
+common-obj-$(CONFIG_XILINX_SPI) += xilinx_spi.o
+common-obj-$(CONFIG_XILINX_SPIPS) += xilinx_spips.o
+
+obj-$(CONFIG_OMAP) += omap_spi.o
diff --git a/hw/omap_spi.c b/hw/ssi/omap_spi.c
similarity index 100%
rename from hw/omap_spi.c
rename to hw/ssi/omap_spi.c
diff --git a/hw/xilinx_spi.c b/hw/ssi/xilinx_spi.c
similarity index 100%
rename from hw/xilinx_spi.c
rename to hw/ssi/xilinx_spi.c
diff --git a/hw/xilinx_spips.c b/hw/ssi/xilinx_spips.c
similarity index 100%
rename from hw/xilinx_spips.c
rename to hw/ssi/xilinx_spips.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 19/35] hw: move SCSI controllers to hw/scsi/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (17 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 18/35] hw: move SSI controllers to hw/ssi/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 20/35] hw: move more files to hw/xen/ Paolo Bonzini
                   ` (16 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/ppc/Makefile.objs        | 2 +-
 hw/scsi/Makefile.objs       | 1 +
 hw/{ => scsi}/spapr_vscsi.c | 0
 3 files changed, 2 insertions(+), 1 deletion(-)
 rename hw/{ => scsi}/spapr_vscsi.c (100%)

diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 42c7d08..2d51ae9 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,5 +1,5 @@
 # IBM pSeries (sPAPR)
-obj-$(CONFIG_PSERIES) += spapr_vty.o spapr_vscsi.o
+obj-$(CONFIG_PSERIES) += spapr_vty.o
 obj-$(CONFIG_PSERIES) += spapr_pci.o
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
 # PowerPC 4xx boards
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index b76b9c3..aab0e9b 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -4,4 +4,5 @@ common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
 common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
 common-obj-$(CONFIG_ESP) += esp.o
 common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
+obj-$(CONFIG_PSERIES) += spapr_vscsi.o
 obj-$(CONFIG_VIRTIO) += virtio-scsi.o
diff --git a/hw/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
similarity index 100%
rename from hw/spapr_vscsi.c
rename to hw/scsi/spapr_vscsi.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 20/35] hw: move more files to hw/xen/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (18 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 19/35] hw: move SCSI controllers to hw/scsi/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 21/35] hw: move char devices to hw/char/, configure via default-configs/ Paolo Bonzini
                   ` (15 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak   | 1 +
 default-configs/x86_64-softmmu.mak | 1 +
 hw/i386/Makefile.objs              | 3 ---
 hw/xen/Makefile.objs               | 4 ++++
 hw/{ => xen}/xen-host-pci-device.c | 0
 hw/{ => xen}/xen_apic.c            | 0
 hw/{ => xen}/xen_platform.c        | 0
 hw/{ => xen}/xen_pt.c              | 0
 hw/{ => xen}/xen_pt_config_init.c  | 0
 hw/{ => xen}/xen_pt_msi.c          | 0
 10 files changed, 6 insertions(+), 3 deletions(-)
 rename hw/{ => xen}/xen-host-pci-device.c (100%)
 rename hw/{ => xen}/xen_apic.c (100%)
 rename hw/{ => xen}/xen_platform.c (100%)
 rename hw/{ => xen}/xen_pt.c (100%)
 rename hw/{ => xen}/xen_pt_config_init.c (100%)
 rename hw/{ => xen}/xen_pt_msi.c (100%)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index c75f8f8..c18fb9b 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -32,3 +32,4 @@ CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
+CONFIG_XEN_I386=$(CONFIG_XEN)
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 88b1cfa..179f5af 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -32,3 +32,4 @@ CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
+CONFIG_XEN_I386=$(CONFIG_XEN)
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index fe01234..c85bb3d 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -3,9 +3,6 @@ obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
 obj-y += debugcon.o debugexit.o
 obj-y += lpc_ich9.o q35.o
-obj-$(CONFIG_XEN) += xen_platform.o xen_apic.o
-obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen-host-pci-device.o
-obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen_pt.o xen_pt_config_init.o xen_pt_msi.o
 obj-y += kvm/
 obj-y += pc-testdev.o
 
diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs
index 4b209a7..2017560 100644
--- a/hw/xen/Makefile.objs
+++ b/hw/xen/Makefile.objs
@@ -1,2 +1,6 @@
 # xen backend driver support
 common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
+
+obj-$(CONFIG_XEN_I386) += xen_platform.o xen_apic.o
+obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen-host-pci-device.o
+obj-$(CONFIG_XEN_PCI_PASSTHROUGH) += xen_pt.o xen_pt_config_init.o xen_pt_msi.o
diff --git a/hw/xen-host-pci-device.c b/hw/xen/xen-host-pci-device.c
similarity index 100%
rename from hw/xen-host-pci-device.c
rename to hw/xen/xen-host-pci-device.c
diff --git a/hw/xen_apic.c b/hw/xen/xen_apic.c
similarity index 100%
rename from hw/xen_apic.c
rename to hw/xen/xen_apic.c
diff --git a/hw/xen_platform.c b/hw/xen/xen_platform.c
similarity index 100%
rename from hw/xen_platform.c
rename to hw/xen/xen_platform.c
diff --git a/hw/xen_pt.c b/hw/xen/xen_pt.c
similarity index 100%
rename from hw/xen_pt.c
rename to hw/xen/xen_pt.c
diff --git a/hw/xen_pt_config_init.c b/hw/xen/xen_pt_config_init.c
similarity index 100%
rename from hw/xen_pt_config_init.c
rename to hw/xen/xen_pt_config_init.c
diff --git a/hw/xen_pt_msi.c b/hw/xen/xen_pt_msi.c
similarity index 100%
rename from hw/xen_pt_msi.c
rename to hw/xen/xen_pt_msi.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 21/35] hw: move char devices to hw/char/, configure via default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (19 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 20/35] hw: move more files to hw/xen/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 22/35] hw: move ISA bridges and devices to hw/isa/, configure with default-configs/ Paolo Bonzini
                   ` (14 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak    |  1 +
 default-configs/i386-softmmu.mak   |  1 +
 default-configs/lm32-softmmu.mak   |  1 +
 default-configs/s390x-softmmu.mak  |  1 +
 default-configs/sparc-softmmu.mak  |  1 +
 default-configs/x86_64-softmmu.mak |  1 +
 hw/arm/Makefile.objs               |  6 +++---
 hw/char/Makefile.objs              | 15 +++++++++++++++
 hw/{ => char}/debugcon.c           |  0
 hw/{ => char}/etraxfs_ser.c        |  0
 hw/{ => char}/exynos4210_uart.c    |  0
 hw/{ => char}/grlib_apbuart.c      |  0
 hw/{ => char}/imx_serial.c         |  0
 hw/{ => char}/lm32_juart.c         |  0
 hw/{ => char}/lm32_uart.c          |  0
 hw/{ => char}/mcf_uart.c           |  0
 hw/{ => char}/milkymist-uart.c     |  0
 hw/{ => char}/omap_uart.c          |  0
 hw/{s390x => char}/sclpconsole.c   |  0
 hw/{ => char}/sh_serial.c          |  0
 hw/{ => char}/spapr_vty.c          |  0
 hw/cris/Makefile.objs              |  1 -
 hw/i386/Makefile.objs              |  2 +-
 hw/lm32/Makefile.objs              |  3 ---
 hw/m68k/Makefile.objs              |  4 ----
 hw/ppc/Makefile.objs               |  1 -
 hw/s390x/Makefile.objs             |  2 +-
 hw/sh4/Makefile.objs               |  2 +-
 hw/sparc/Makefile.objs             |  2 +-
 29 files changed, 28 insertions(+), 16 deletions(-)
 rename hw/{ => char}/debugcon.c (100%)
 rename hw/{ => char}/etraxfs_ser.c (100%)
 rename hw/{ => char}/exynos4210_uart.c (100%)
 rename hw/{ => char}/grlib_apbuart.c (100%)
 rename hw/{ => char}/imx_serial.c (100%)
 rename hw/{ => char}/lm32_juart.c (100%)
 rename hw/{ => char}/lm32_uart.c (100%)
 rename hw/{ => char}/mcf_uart.c (100%)
 rename hw/{ => char}/milkymist-uart.c (100%)
 rename hw/{ => char}/omap_uart.c (100%)
 rename hw/{s390x => char}/sclpconsole.c (100%)
 rename hw/{ => char}/sh_serial.c (100%)
 rename hw/{ => char}/spapr_vty.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 8eb04e2..8da5ec8 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -57,6 +57,7 @@ CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
 CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
+CONFIG_IMX=y
 CONFIG_ZAURUS=y
 
 CONFIG_VERSATILE_PCI=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index c18fb9b..0a75a0a 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -33,3 +33,4 @@ CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
+CONFIG_ISA_DEBUG=y
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index 6b2ee43..ef0f4ba 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -1,5 +1,6 @@
 # Default configuration for lm32-softmmu
 
+CONFIG_LM32=y
 CONFIG_MILKYMIST=y
 CONFIG_FRAMEBUFFER=y
 CONFIG_PTIMER=y
diff --git a/default-configs/s390x-softmmu.mak b/default-configs/s390x-softmmu.mak
index 3005729..81fbc68 100644
--- a/default-configs/s390x-softmmu.mak
+++ b/default-configs/s390x-softmmu.mak
@@ -1 +1,2 @@
 CONFIG_VIRTIO=y
+CONFIG_SCLPCONSOLE=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 25bcbe3..da5b02d 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -11,3 +11,4 @@ CONFIG_PCNET_COMMON=y
 CONFIG_LANCE=y
 CONFIG_TCX=y
 CONFIG_CS4231=y
+CONFIG_GRLIB=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 179f5af..dd4eb95 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -33,3 +33,4 @@ CONFIG_MC146818RTC=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
+CONFIG_ISA_DEBUG=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 6f764e6..26e107f 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -3,7 +3,7 @@ obj-y += arm_gic.o arm_gic_common.o
 obj-y += a9scu.o
 obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_gic.o exynos4210_combiner.o
-obj-y += exynos4210_uart.o exynos4210_pwm.o
+obj-y += exynos4210_pwm.o
 obj-y += exynos4210_pmu.o exynos4210_mct.o
 obj-y += exynos4210_rtc.o
 obj-y += arm_mptimer.o a15mpcore.o
@@ -12,14 +12,14 @@ obj-y += pxa2xx_timer.o pxa2xx_dma.o
 obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
 obj-y += zaurus.o
 obj-y += omap_dma.o omap_clk.o omap_mmc.o \
-                omap_gpio.o omap_intc.o omap_uart.o
+                omap_gpio.o omap_intc.o
 obj-y += soc_dma.o omap_gptimer.o omap_synctimer.o \
                 omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
 obj-y += cbus.o tusb6010.o
 obj-y += mst_fpga.o
 obj-y += strongarm.o
-obj-y += imx_serial.o imx_ccm.o imx_timer.o imx_avic.o
+obj-y += imx_ccm.o imx_timer.o imx_avic.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index ddfd3ec..6f51da0 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -9,4 +9,19 @@ common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
 common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o
 common-obj-$(CONFIG_CADENCE) += cadence_uart.o
 
+obj-$(CONFIG_SCLPCONSOLE) += sclpconsole.o
+obj-$(CONFIG_ETRAXFS) += etraxfs_ser.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_uart.o
+obj-$(CONFIG_COLDFIRE) += mcf_uart.o
+obj-$(CONFIG_OMAP) += omap_uart.o
+obj-$(CONFIG_SH4) += sh_serial.o
+obj-$(CONFIG_PSERIES) += spapr_vty.o
+
+common-obj-$(CONFIG_ISA_DEBUG) += debugcon.o
+common-obj-$(CONFIG_GRLIB) += grlib_apbuart.o
+common-obj-$(CONFIG_IMX) += imx_serial.o
+common-obj-$(CONFIG_LM32) += lm32_juart.o
+common-obj-$(CONFIG_LM32) += lm32_uart.o
+common-obj-$(CONFIG_MILKYMIST) += milkymist-uart.o
+
 obj-$(CONFIG_VIRTIO) += virtio-serial-bus.o
diff --git a/hw/debugcon.c b/hw/char/debugcon.c
similarity index 100%
rename from hw/debugcon.c
rename to hw/char/debugcon.c
diff --git a/hw/etraxfs_ser.c b/hw/char/etraxfs_ser.c
similarity index 100%
rename from hw/etraxfs_ser.c
rename to hw/char/etraxfs_ser.c
diff --git a/hw/exynos4210_uart.c b/hw/char/exynos4210_uart.c
similarity index 100%
rename from hw/exynos4210_uart.c
rename to hw/char/exynos4210_uart.c
diff --git a/hw/grlib_apbuart.c b/hw/char/grlib_apbuart.c
similarity index 100%
rename from hw/grlib_apbuart.c
rename to hw/char/grlib_apbuart.c
diff --git a/hw/imx_serial.c b/hw/char/imx_serial.c
similarity index 100%
rename from hw/imx_serial.c
rename to hw/char/imx_serial.c
diff --git a/hw/lm32_juart.c b/hw/char/lm32_juart.c
similarity index 100%
rename from hw/lm32_juart.c
rename to hw/char/lm32_juart.c
diff --git a/hw/lm32_uart.c b/hw/char/lm32_uart.c
similarity index 100%
rename from hw/lm32_uart.c
rename to hw/char/lm32_uart.c
diff --git a/hw/mcf_uart.c b/hw/char/mcf_uart.c
similarity index 100%
rename from hw/mcf_uart.c
rename to hw/char/mcf_uart.c
diff --git a/hw/milkymist-uart.c b/hw/char/milkymist-uart.c
similarity index 100%
rename from hw/milkymist-uart.c
rename to hw/char/milkymist-uart.c
diff --git a/hw/omap_uart.c b/hw/char/omap_uart.c
similarity index 100%
rename from hw/omap_uart.c
rename to hw/char/omap_uart.c
diff --git a/hw/s390x/sclpconsole.c b/hw/char/sclpconsole.c
similarity index 100%
rename from hw/s390x/sclpconsole.c
rename to hw/char/sclpconsole.c
diff --git a/hw/sh_serial.c b/hw/char/sh_serial.c
similarity index 100%
rename from hw/sh_serial.c
rename to hw/char/sh_serial.c
diff --git a/hw/spapr_vty.c b/hw/char/spapr_vty.c
similarity index 100%
rename from hw/spapr_vty.c
rename to hw/char/spapr_vty.c
diff --git a/hw/cris/Makefile.objs b/hw/cris/Makefile.objs
index e02365d..c4d5189 100644
--- a/hw/cris/Makefile.objs
+++ b/hw/cris/Makefile.objs
@@ -2,7 +2,6 @@
 obj-y += etraxfs_dma.o
 obj-y += etraxfs_pic.o
 obj-y += etraxfs_timer.o
-obj-y += etraxfs_ser.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index c85bb3d..5e91d1e 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,7 +1,7 @@
 obj-y += apic_common.o apic.o
 obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
 obj-y += vmport.o
-obj-y += debugcon.o debugexit.o
+obj-y += debugexit.o
 obj-y += lpc_ich9.o q35.o
 obj-y += kvm/
 obj-y += pc-testdev.o
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index a894c46..e116156 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -1,15 +1,12 @@
 # LM32 peripherals
 obj-y += lm32_pic.o
-obj-y += lm32_juart.o
 obj-y += lm32_timer.o
-obj-y += lm32_uart.o
 obj-y += lm32_sys.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-memcard.o
 obj-y += milkymist-pfpu.o
 obj-y += milkymist-softusb.o
 obj-y += milkymist-sysctl.o
-obj-y += milkymist-uart.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/m68k/Makefile.objs b/hw/m68k/Makefile.objs
index ebbe003..c4352e7 100644
--- a/hw/m68k/Makefile.objs
+++ b/hw/m68k/Makefile.objs
@@ -1,7 +1,3 @@
-obj-y = mcf_uart.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += an5206.o mcf5208.o
 obj-y += dummy_m68k.o
 
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 2d51ae9..1e24b58 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,5 +1,4 @@
 # IBM pSeries (sPAPR)
-obj-$(CONFIG_PSERIES) += spapr_vty.o
 obj-$(CONFIG_PSERIES) += spapr_pci.o
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
 # PowerPC 4xx boards
diff --git a/hw/s390x/Makefile.objs b/hw/s390x/Makefile.objs
index 9f2f419..77e1218 100644
--- a/hw/s390x/Makefile.objs
+++ b/hw/s390x/Makefile.objs
@@ -2,7 +2,7 @@ obj-y = s390-virtio-bus.o s390-virtio.o
 obj-y += s390-virtio-hcall.o
 obj-y += sclp.o
 obj-y += event-facility.o
-obj-y += sclpquiesce.o sclpconsole.o
+obj-y += sclpquiesce.o
 obj-y += ipl.o
 obj-y += css.o
 obj-y += s390-virtio-ccw.o
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index c9b0416..10c971a 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o
+obj-y += sh_timer.o sh_intc.o sh_pci.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index 2354616..e18bc67 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -3,7 +3,7 @@ obj-y += slavio_timer.o slavio_misc.o sparc32_dma.o
 obj-y += eccmemctl.o sbi.o sun4c_intctl.o
 
 # GRLIB
-obj-y += grlib_gptimer.o grlib_irqmp.o grlib_apbuart.o
+obj-y += grlib_gptimer.o grlib_irqmp.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 22/35] hw: move ISA bridges and devices to hw/isa/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (20 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 21/35] hw: move char devices to hw/char/, configure via default-configs/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 23/35] hw: move timer devices to hw/timer/, " Paolo Bonzini
                   ` (13 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak   | 4 ++++
 default-configs/x86_64-softmmu.mak | 4 ++++
 hw/i386/Makefile.objs              | 7 ++-----
 hw/isa/Makefile.objs               | 6 ++++++
 hw/{ => isa}/debugexit.c           | 0
 hw/{ => isa}/lpc_ich9.c            | 0
 hw/{ => isa}/pc-testdev.c          | 0
 hw/{ => isa}/sga.c                 | 0
 hw/{ => isa}/vmport.c              | 0
 hw/{ => isa}/vt82c686.c            | 0
 hw/mips/Makefile.objs              | 2 +-
 11 files changed, 17 insertions(+), 6 deletions(-)
 rename hw/{ => isa}/debugexit.c (100%)
 rename hw/{ => isa}/lpc_ich9.c (100%)
 rename hw/{ => isa}/pc-testdev.c (100%)
 rename hw/{ => isa}/sga.c (100%)
 rename hw/{ => isa}/vmport.c (100%)
 rename hw/{ => isa}/vt82c686.c (100%)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 0a75a0a..7f3111c 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -34,3 +34,7 @@ CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
 CONFIG_ISA_DEBUG=y
+CONFIG_ISA_TESTDEV=y
+CONFIG_VMPORT=y
+CONFIG_SGA=y
+CONFIG_LPC_ICH9=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index dd4eb95..0dddd7b 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -34,3 +34,7 @@ CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
 CONFIG_ISA_DEBUG=y
+CONFIG_ISA_TESTDEV=y
+CONFIG_VMPORT=y
+CONFIG_SGA=y
+CONFIG_LPC_ICH9=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 5e91d1e..1dc9575 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,10 +1,7 @@
 obj-y += apic_common.o apic.o
-obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o
-obj-y += vmport.o
-obj-y += debugexit.o
-obj-y += lpc_ich9.o q35.o
+obj-y += ioapic_common.o ioapic.o piix_pci.o
+obj-y += q35.o
 obj-y += kvm/
-obj-y += pc-testdev.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index cbee381..18e2256 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -3,7 +3,13 @@ common-obj-$(CONFIG_APM) += apm.o
 common-obj-$(CONFIG_APPLESMC) += applesmc.o
 common-obj-$(CONFIG_I82378) += i82378.o
 common-obj-$(CONFIG_I82374) += i82374.o
+common-obj-$(CONFIG_ISA_DEBUG) += debugexit.o
 common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
 common-obj-$(CONFIG_PC87312) += pc87312.o
 common-obj-$(CONFIG_PIIX4) += piix4.o
+common-obj-$(CONFIG_FULONG) += vt82c686.o
+common-obj-$(CONFIG_SGA) += sga.o
+common-obj-$(CONFIG_ISA_TESTDEV) += pc-testdev.o
 
+obj-$(CONFIG_VMPORT) += vmport.o
+obj-$(CONFIG_LPC_ICH9) += lpc_ich9.o
diff --git a/hw/debugexit.c b/hw/isa/debugexit.c
similarity index 100%
rename from hw/debugexit.c
rename to hw/isa/debugexit.c
diff --git a/hw/lpc_ich9.c b/hw/isa/lpc_ich9.c
similarity index 100%
rename from hw/lpc_ich9.c
rename to hw/isa/lpc_ich9.c
diff --git a/hw/pc-testdev.c b/hw/isa/pc-testdev.c
similarity index 100%
rename from hw/pc-testdev.c
rename to hw/isa/pc-testdev.c
diff --git a/hw/sga.c b/hw/isa/sga.c
similarity index 100%
rename from hw/sga.c
rename to hw/isa/sga.c
diff --git a/hw/vmport.c b/hw/isa/vmport.c
similarity index 100%
rename from hw/vmport.c
rename to hw/isa/vmport.c
diff --git a/hw/vt82c686.c b/hw/isa/vt82c686.c
similarity index 100%
rename from hw/vt82c686.c
rename to hw/isa/vt82c686.c
diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
index e173a2d..af4d1f9 100644
--- a/hw/mips/Makefile.objs
+++ b/hw/mips/Makefile.objs
@@ -1,5 +1,5 @@
 obj-y += gt64xxx.o
-obj-$(CONFIG_FULONG) += bonito.o vt82c686.o
+obj-$(CONFIG_FULONG) += bonito.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 23/35] hw: move timer devices to hw/timer/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (21 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 22/35] hw: move ISA bridges and devices to hw/isa/, configure with default-configs/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 24/35] hw: move input devices to hw/input/, " Paolo Bonzini
                   ` (12 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak   |  3 +++
 default-configs/sparc-softmmu.mak |  1 +
 hw/arm/Makefile.objs              | 14 ++++++--------
 hw/cris/Makefile.objs             |  1 -
 hw/lm32/Makefile.objs             |  1 -
 hw/sh4/Makefile.objs              |  2 +-
 hw/sparc/Makefile.objs            |  4 ++--
 hw/timer/Makefile.objs            | 16 ++++++++++++++++
 hw/{ => timer}/arm_mptimer.c      |  0
 hw/{ => timer}/etraxfs_timer.c    |  0
 hw/{ => timer}/exynos4210_mct.c   |  0
 hw/{ => timer}/exynos4210_pwm.c   |  0
 hw/{ => timer}/exynos4210_rtc.c   |  0
 hw/{ => timer}/grlib_gptimer.c    |  0
 hw/{ => timer}/imx_timer.c        |  0
 hw/{ => timer}/lm32_timer.c       |  0
 hw/{ => timer}/milkymist-sysctl.c |  0
 hw/{ => timer}/omap_gptimer.c     |  0
 hw/{ => timer}/omap_synctimer.c   |  0
 hw/{ => timer}/pxa2xx_timer.c     |  0
 hw/{ => timer}/sh_timer.c         |  0
 hw/{ => timer}/slavio_timer.c     |  0
 hw/{ => timer}/tusb6010.c         |  0
 23 files changed, 29 insertions(+), 13 deletions(-)
 rename hw/{ => timer}/arm_mptimer.c (100%)
 rename hw/{ => timer}/etraxfs_timer.c (100%)
 rename hw/{ => timer}/exynos4210_mct.c (100%)
 rename hw/{ => timer}/exynos4210_pwm.c (100%)
 rename hw/{ => timer}/exynos4210_rtc.c (100%)
 rename hw/{ => timer}/grlib_gptimer.c (100%)
 rename hw/{ => timer}/imx_timer.c (100%)
 rename hw/{ => timer}/lm32_timer.c (100%)
 rename hw/{ => timer}/milkymist-sysctl.c (100%)
 rename hw/{ => timer}/omap_gptimer.c (100%)
 rename hw/{ => timer}/omap_synctimer.c (100%)
 rename hw/{ => timer}/pxa2xx_timer.c (100%)
 rename hw/{ => timer}/sh_timer.c (100%)
 rename hw/{ => timer}/slavio_timer.c (100%)
 rename hw/{ => timer}/tusb6010.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 8da5ec8..45c3d54 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -34,6 +34,7 @@ CONFIG_MICRODRIVE=y
 CONFIG_USB_MUSB=y
 
 CONFIG_ARM_TIMER=y
+CONFIG_ARM_MPTIMER=y
 CONFIG_PL011=y
 CONFIG_PL022=y
 CONFIG_PL031=y
@@ -53,10 +54,12 @@ CONFIG_PXA2XX=y
 CONFIG_BITBANG_I2C=y
 CONFIG_FRAMEBUFFER=y
 CONFIG_XILINX_SPIPS=y
+
 CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
 CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
+CONFIG_TUSB6010=y
 CONFIG_IMX=y
 CONFIG_ZAURUS=y
 
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index da5b02d..6a2bad3 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -10,5 +10,6 @@ CONFIG_EMPTY_SLOT=y
 CONFIG_PCNET_COMMON=y
 CONFIG_LANCE=y
 CONFIG_TCX=y
+CONFIG_SLAVIO=y
 CONFIG_CS4231=y
 CONFIG_GRLIB=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 26e107f..5ddb90f 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -3,23 +3,21 @@ obj-y += arm_gic.o arm_gic_common.o
 obj-y += a9scu.o
 obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_gic.o exynos4210_combiner.o
-obj-y += exynos4210_pwm.o
-obj-y += exynos4210_pmu.o exynos4210_mct.o
-obj-y += exynos4210_rtc.o
-obj-y += arm_mptimer.o a15mpcore.o
+obj-y += exynos4210_pmu.o
+obj-y += a15mpcore.o
 obj-y += armv7m_nvic.o
-obj-y += pxa2xx_timer.o pxa2xx_dma.o
+obj-y += pxa2xx_dma.o
 obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
 obj-y += zaurus.o
 obj-y += omap_dma.o omap_clk.o omap_mmc.o \
                 omap_gpio.o omap_intc.o
-obj-y += soc_dma.o omap_gptimer.o omap_synctimer.o \
+obj-y += soc_dma.o \
                 omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += tsc210x.o
-obj-y += cbus.o tusb6010.o
+obj-y += cbus.o
 obj-y += mst_fpga.o
 obj-y += strongarm.o
-obj-y += imx_ccm.o imx_timer.o imx_avic.o
+obj-y += imx_ccm.o imx_avic.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/cris/Makefile.objs b/hw/cris/Makefile.objs
index c4d5189..a8a4a9e 100644
--- a/hw/cris/Makefile.objs
+++ b/hw/cris/Makefile.objs
@@ -1,7 +1,6 @@
 # IO blocks
 obj-y += etraxfs_dma.o
 obj-y += etraxfs_pic.o
-obj-y += etraxfs_timer.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index e116156..b48cdb1 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -1,6 +1,5 @@
 # LM32 peripherals
 obj-y += lm32_pic.o
-obj-y += lm32_timer.o
 obj-y += lm32_sys.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-memcard.o
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 10c971a..76b37bb 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += sh_timer.o sh_intc.o sh_pci.o
+obj-y += sh_intc.o sh_pci.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index e18bc67..ab1d91c 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,9 +1,9 @@
 obj-y = sun4m_iommu.o slavio_intctl.o
-obj-y += slavio_timer.o slavio_misc.o sparc32_dma.o
+obj-y += slavio_misc.o sparc32_dma.o
 obj-y += eccmemctl.o sbi.o sun4c_intctl.o
 
 # GRLIB
-obj-y += grlib_gptimer.o grlib_irqmp.o
+obj-y += grlib_irqmp.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
index a1ef26c..094b20e 100644
--- a/hw/timer/Makefile.objs
+++ b/hw/timer/Makefile.objs
@@ -9,4 +9,20 @@ common-obj-$(CONFIG_PUV3) += puv3_ost.o
 common-obj-$(CONFIG_TWL92230) += twl92230.o
 common-obj-$(CONFIG_XILINX) += xilinx_timer.o
 
+obj-$(CONFIG_SLAVIO) += slavio_timer.o
+obj-$(CONFIG_ETRAXFS) += etraxfs_timer.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_mct.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_pwm.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_rtc.o
+obj-$(CONFIG_GRLIB) += grlib_gptimer.o
+obj-$(CONFIG_IMX) += imx_timer.o
+obj-$(CONFIG_LM32) += lm32_timer.o
+obj-$(CONFIG_MILKYMIST) += milkymist-sysctl.o
+obj-$(CONFIG_OMAP) += omap_gptimer.o
+obj-$(CONFIG_OMAP) += omap_synctimer.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_timer.o
+obj-$(CONFIG_SH4) += sh_timer.o
+obj-$(CONFIG_TUSB6010) += tusb6010.o
+
+obj-$(CONFIG_ARM_MPTIMER) += arm_mptimer.o
 obj-$(CONFIG_MC146818RTC) += mc146818rtc.o
diff --git a/hw/arm_mptimer.c b/hw/timer/arm_mptimer.c
similarity index 100%
rename from hw/arm_mptimer.c
rename to hw/timer/arm_mptimer.c
diff --git a/hw/etraxfs_timer.c b/hw/timer/etraxfs_timer.c
similarity index 100%
rename from hw/etraxfs_timer.c
rename to hw/timer/etraxfs_timer.c
diff --git a/hw/exynos4210_mct.c b/hw/timer/exynos4210_mct.c
similarity index 100%
rename from hw/exynos4210_mct.c
rename to hw/timer/exynos4210_mct.c
diff --git a/hw/exynos4210_pwm.c b/hw/timer/exynos4210_pwm.c
similarity index 100%
rename from hw/exynos4210_pwm.c
rename to hw/timer/exynos4210_pwm.c
diff --git a/hw/exynos4210_rtc.c b/hw/timer/exynos4210_rtc.c
similarity index 100%
rename from hw/exynos4210_rtc.c
rename to hw/timer/exynos4210_rtc.c
diff --git a/hw/grlib_gptimer.c b/hw/timer/grlib_gptimer.c
similarity index 100%
rename from hw/grlib_gptimer.c
rename to hw/timer/grlib_gptimer.c
diff --git a/hw/imx_timer.c b/hw/timer/imx_timer.c
similarity index 100%
rename from hw/imx_timer.c
rename to hw/timer/imx_timer.c
diff --git a/hw/lm32_timer.c b/hw/timer/lm32_timer.c
similarity index 100%
rename from hw/lm32_timer.c
rename to hw/timer/lm32_timer.c
diff --git a/hw/milkymist-sysctl.c b/hw/timer/milkymist-sysctl.c
similarity index 100%
rename from hw/milkymist-sysctl.c
rename to hw/timer/milkymist-sysctl.c
diff --git a/hw/omap_gptimer.c b/hw/timer/omap_gptimer.c
similarity index 100%
rename from hw/omap_gptimer.c
rename to hw/timer/omap_gptimer.c
diff --git a/hw/omap_synctimer.c b/hw/timer/omap_synctimer.c
similarity index 100%
rename from hw/omap_synctimer.c
rename to hw/timer/omap_synctimer.c
diff --git a/hw/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
similarity index 100%
rename from hw/pxa2xx_timer.c
rename to hw/timer/pxa2xx_timer.c
diff --git a/hw/sh_timer.c b/hw/timer/sh_timer.c
similarity index 100%
rename from hw/sh_timer.c
rename to hw/timer/sh_timer.c
diff --git a/hw/slavio_timer.c b/hw/timer/slavio_timer.c
similarity index 100%
rename from hw/slavio_timer.c
rename to hw/timer/slavio_timer.c
diff --git a/hw/tusb6010.c b/hw/timer/tusb6010.c
similarity index 100%
rename from hw/tusb6010.c
rename to hw/timer/tusb6010.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 24/35] hw: move input devices to hw/input/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (22 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 23/35] hw: move timer devices to hw/timer/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 25/35] hw: move SD/MMC devices to hw/sd/, " Paolo Bonzini
                   ` (11 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak    | 1 +
 hw/arm/Makefile.objs               | 3 +--
 hw/input/Makefile.objs             | 4 ++++
 hw/{ => input}/milkymist-softusb.c | 0
 hw/{ => input}/pxa2xx_keypad.c     | 0
 hw/{ => input}/tsc210x.c           | 0
 hw/lm32/Makefile.objs              | 1 -
 7 files changed, 6 insertions(+), 3 deletions(-)
 rename hw/{ => input}/milkymist-softusb.c (100%)
 rename hw/{ => input}/pxa2xx_keypad.c (100%)
 rename hw/{ => input}/tsc210x.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 45c3d54..94b52da 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -57,6 +57,7 @@ CONFIG_XILINX_SPIPS=y
 
 CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
+CONFIG_TSC210X=y
 CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
 CONFIG_TUSB6010=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 5ddb90f..7691540 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -7,13 +7,12 @@ obj-y += exynos4210_pmu.o
 obj-y += a15mpcore.o
 obj-y += armv7m_nvic.o
 obj-y += pxa2xx_dma.o
-obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
+obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o
 obj-y += zaurus.o
 obj-y += omap_dma.o omap_clk.o omap_mmc.o \
                 omap_gpio.o omap_intc.o
 obj-y += soc_dma.o \
                 omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
-obj-y += tsc210x.o
 obj-y += cbus.o
 obj-y += mst_fpga.o
 obj-y += strongarm.o
diff --git a/hw/input/Makefile.objs b/hw/input/Makefile.objs
index 824997e..e8c80b9 100644
--- a/hw/input/Makefile.objs
+++ b/hw/input/Makefile.objs
@@ -7,3 +7,7 @@ common-obj-y += ps2.o
 common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
 common-obj-$(CONFIG_TSC2005) += tsc2005.o
 common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
+
+obj-$(CONFIG_MILKYMIST) += milkymist-softusb.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_keypad.o
+obj-$(CONFIG_TSC210X) += tsc210x.o
diff --git a/hw/milkymist-softusb.c b/hw/input/milkymist-softusb.c
similarity index 100%
rename from hw/milkymist-softusb.c
rename to hw/input/milkymist-softusb.c
diff --git a/hw/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c
similarity index 100%
rename from hw/pxa2xx_keypad.c
rename to hw/input/pxa2xx_keypad.c
diff --git a/hw/tsc210x.c b/hw/input/tsc210x.c
similarity index 100%
rename from hw/tsc210x.c
rename to hw/input/tsc210x.c
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index b48cdb1..fe8427f 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -4,7 +4,6 @@ obj-y += lm32_sys.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-memcard.o
 obj-y += milkymist-pfpu.o
-obj-y += milkymist-softusb.o
 obj-y += milkymist-sysctl.o
 
 obj-y := $(addprefix ../,$(obj-y))
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 25/35] hw: move SD/MMC devices to hw/sd/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (23 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 24/35] hw: move input devices to hw/input/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 26/35] hw: move PCI bridges to hw/pci/, " Paolo Bonzini
                   ` (10 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/arm/Makefile.objs            | 4 ++--
 hw/lm32/Makefile.objs           | 1 -
 hw/sd/Makefile.objs             | 4 ++++
 hw/{ => sd}/milkymist-memcard.c | 0
 hw/{ => sd}/omap_mmc.c          | 0
 hw/{ => sd}/pxa2xx_mmci.c       | 0
 6 files changed, 6 insertions(+), 3 deletions(-)
 rename hw/{ => sd}/milkymist-memcard.c (100%)
 rename hw/{ => sd}/omap_mmc.c (100%)
 rename hw/{ => sd}/pxa2xx_mmci.c (100%)

diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 7691540..8e8e799 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -7,9 +7,9 @@ obj-y += exynos4210_pmu.o
 obj-y += a15mpcore.o
 obj-y += armv7m_nvic.o
 obj-y += pxa2xx_dma.o
-obj-y += pxa2xx_mmci.o pxa2xx_pcmcia.o
+obj-y += pxa2xx_pcmcia.o
 obj-y += zaurus.o
-obj-y += omap_dma.o omap_clk.o omap_mmc.o \
+obj-y += omap_dma.o omap_clk.o \
                 omap_gpio.o omap_intc.o
 obj-y += soc_dma.o \
                 omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index fe8427f..b9c1918 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -2,7 +2,6 @@
 obj-y += lm32_pic.o
 obj-y += lm32_sys.o
 obj-y += milkymist-hpdmc.o
-obj-y += milkymist-memcard.o
 obj-y += milkymist-pfpu.o
 obj-y += milkymist-sysctl.o
 
diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs
index 8acce02..f1aed83 100644
--- a/hw/sd/Makefile.objs
+++ b/hw/sd/Makefile.objs
@@ -2,3 +2,7 @@ common-obj-$(CONFIG_PL181) += pl181.o
 common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
 common-obj-$(CONFIG_SD) += sd.o
 common-obj-$(CONFIG_SDHCI) += sdhci.o
+
+obj-$(CONFIG_MILKYMIST) += milkymist-memcard.o
+obj-$(CONFIG_OMAP) += omap_mmc.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_mmci.o
diff --git a/hw/milkymist-memcard.c b/hw/sd/milkymist-memcard.c
similarity index 100%
rename from hw/milkymist-memcard.c
rename to hw/sd/milkymist-memcard.c
diff --git a/hw/omap_mmc.c b/hw/sd/omap_mmc.c
similarity index 100%
rename from hw/omap_mmc.c
rename to hw/sd/omap_mmc.c
diff --git a/hw/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
similarity index 100%
rename from hw/pxa2xx_mmci.c
rename to hw/sd/pxa2xx_mmci.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 26/35] hw: move PCI bridges to hw/pci/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (24 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 25/35] hw: move SD/MMC devices to hw/sd/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 27/35] hw: move VFIO and ivshmem to hw/pci/ Paolo Bonzini
                   ` (9 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak       |  3 +++
 default-configs/mips-softmmu.mak       |  1 +
 default-configs/mips64-softmmu.mak     |  1 +
 default-configs/mips64el-softmmu.mak   |  1 +
 default-configs/mipsel-softmmu.mak     |  1 +
 default-configs/ppc-softmmu.mak        |  1 +
 default-configs/ppc64-softmmu.mak      |  1 +
 default-configs/ppcemb-softmmu.mak     |  1 +
 default-configs/sparc64-softmmu.mak    |  1 +
 default-configs/x86_64-softmmu.mak     |  2 ++
 hw/i386/Makefile.objs                  |  3 +--
 hw/mips/Makefile.objs                  |  5 -----
 hw/pci/Makefile.objs                   | 12 ++++++++++++
 hw/{apb_pci.c => pci/host-apb.c}       |  0
 hw/{bonito.c => pci/host-bonito.c}     |  0
 hw/{gt64xxx.c => pci/host-gt64xxx.c}   |  0
 hw/{piix_pci.c => pci/host-piix.c}     |  0
 hw/{ppc4xx_pci.c => pci/host-ppc4xx.c} |  0
 hw/{q35.c => pci/host-q35.c}           |  0
 hw/{sh_pci.c => pci/host-sh.c}         |  0
 hw/{spapr_pci.c => pci/host-spapr.c}   |  0
 hw/ppc/Makefile.objs                   |  3 ---
 hw/sh4/Makefile.objs                   |  2 +-
 hw/sparc64/Makefile.objs               |  4 ----
 24 files changed, 27 insertions(+), 15 deletions(-)
 rename hw/{apb_pci.c => pci/host-apb.c} (100%)
 rename hw/{bonito.c => pci/host-bonito.c} (100%)
 rename hw/{gt64xxx.c => pci/host-gt64xxx.c} (100%)
 rename hw/{piix_pci.c => pci/host-piix.c} (100%)
 rename hw/{ppc4xx_pci.c => pci/host-ppc4xx.c} (100%)
 rename hw/{q35.c => pci/host-q35.c} (100%)
 rename hw/{sh_pci.c => pci/host-sh.c} (100%)
 rename hw/{spapr_pci.c => pci/host-spapr.c} (100%)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 7f3111c..213b4e7 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -30,6 +30,8 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
+CONFIG_PCI_PIIX=y
+CONFIG_PCI_HOTPLUG=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
@@ -38,3 +40,4 @@ CONFIG_ISA_TESTDEV=y
 CONFIG_VMPORT=y
 CONFIG_SGA=y
 CONFIG_LPC_ICH9=y
+CONFIG_Q35=y
diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak
index 2b48452..fc05135 100644
--- a/default-configs/mips-softmmu.mak
+++ b/default-configs/mips-softmmu.mak
@@ -32,4 +32,5 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_PCI_GT64XXX=y
 CONFIG_MC146818RTC=y
diff --git a/default-configs/mips64-softmmu.mak b/default-configs/mips64-softmmu.mak
index 5713320..e3a5f86 100644
--- a/default-configs/mips64-softmmu.mak
+++ b/default-configs/mips64-softmmu.mak
@@ -32,4 +32,5 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_PCI_GT64XXX=y
 CONFIG_MC146818RTC=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index 096dc80..c0faab0 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -34,4 +34,5 @@ CONFIG_FULONG=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_PCI_GT64XXX=y
 CONFIG_MC146818RTC=y
diff --git a/default-configs/mipsel-softmmu.mak b/default-configs/mipsel-softmmu.mak
index 5509f0e..f031046 100644
--- a/default-configs/mipsel-softmmu.mak
+++ b/default-configs/mipsel-softmmu.mak
@@ -32,4 +32,5 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_G364FB=y
 CONFIG_I8259=y
 CONFIG_JAZZ_LED=y
+CONFIG_PCI_GT64XXX=y
 CONFIG_MC146818RTC=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 36a8ed3..6eb472d 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -41,6 +41,7 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
+CONFIG_PCI_PPC4XX=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
 CONFIG_MC146818RTC=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 2d5df77..bc69d3c 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -41,6 +41,7 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
+CONFIG_PCI_PPC4XX=y
 CONFIG_PSERIES=$(CONFIG_FDT)
 CONFIG_E500=$(CONFIG_FDT)
 # For pSeries
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index ce705a9..ee63657 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -36,6 +36,7 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
+CONFIG_PCI_PPC4XX=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
 CONFIG_MC146818RTC=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 3b3dc55..9b08ee8 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -13,4 +13,5 @@ CONFIG_PCKBD=y
 CONFIG_FDC=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_CMD646=y
+CONFIG_PCI_APB=y
 CONFIG_MC146818RTC=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 0dddd7b..b2e8932 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -30,6 +30,7 @@ CONFIG_PFLASH_CFI01=y
 CONFIG_TPM_TIS=y
 CONFIG_PCI_HOTPLUG=y
 CONFIG_MC146818RTC=y
+CONFIG_PCI_PIIX=y
 CONFIG_WDT_IB700=y
 CONFIG_PC_SYSFW=y
 CONFIG_XEN_I386=$(CONFIG_XEN)
@@ -38,3 +39,4 @@ CONFIG_ISA_TESTDEV=y
 CONFIG_VMPORT=y
 CONFIG_SGA=y
 CONFIG_LPC_ICH9=y
+CONFIG_Q35=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 1dc9575..c06e92a 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,6 +1,5 @@
 obj-y += apic_common.o apic.o
-obj-y += ioapic_common.o ioapic.o piix_pci.o
-obj-y += q35.o
+obj-y += ioapic_common.o ioapic.o
 obj-y += kvm/
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
index af4d1f9..ae3c949 100644
--- a/hw/mips/Makefile.objs
+++ b/hw/mips/Makefile.objs
@@ -1,8 +1,3 @@
-obj-y += gt64xxx.o
-obj-$(CONFIG_FULONG) += bonito.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o
 obj-y += addr.o cputimer.o mips_int.o
 obj-$(CONFIG_FULONG) += mips_fulong2e.o
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index f319cc9..8b20135 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -26,4 +26,16 @@ common-obj-$(CONFIG_PPCE500_PCI) += host-ppce500.o
 # ARM devices
 common-obj-$(CONFIG_VERSATILE_PCI) += host-versatile.o
 
+obj-$(CONFIG_PCI_APB) += host-apb.o
+obj-$(CONFIG_FULONG) += host-bonito.o
+obj-$(CONFIG_PCI_PIIX) += host-piix.o
+obj-$(CONFIG_PCI_PPC4XX) += host-ppc4xx.o
+obj-$(CONFIG_Q35) += host-q35.o
+obj-$(CONFIG_SH4) += host-sh.o
+obj-$(CONFIG_PSERIES) += host-spapr.o
+
+# This file embeds differences between big- and little-endian
+# Malta boards.  These should be only in hw/mips/.
+obj-$(CONFIG_PCI_GT64XXX) += host-gt64xxx.o
+
 obj-$(CONFIG_PCI_HOTPLUG) += pci-hotplug.o
diff --git a/hw/apb_pci.c b/hw/pci/host-apb.c
similarity index 100%
rename from hw/apb_pci.c
rename to hw/pci/host-apb.c
diff --git a/hw/bonito.c b/hw/pci/host-bonito.c
similarity index 100%
rename from hw/bonito.c
rename to hw/pci/host-bonito.c
diff --git a/hw/gt64xxx.c b/hw/pci/host-gt64xxx.c
similarity index 100%
rename from hw/gt64xxx.c
rename to hw/pci/host-gt64xxx.c
diff --git a/hw/piix_pci.c b/hw/pci/host-piix.c
similarity index 100%
rename from hw/piix_pci.c
rename to hw/pci/host-piix.c
diff --git a/hw/ppc4xx_pci.c b/hw/pci/host-ppc4xx.c
similarity index 100%
rename from hw/ppc4xx_pci.c
rename to hw/pci/host-ppc4xx.c
diff --git a/hw/q35.c b/hw/pci/host-q35.c
similarity index 100%
rename from hw/q35.c
rename to hw/pci/host-q35.c
diff --git a/hw/sh_pci.c b/hw/pci/host-sh.c
similarity index 100%
rename from hw/sh_pci.c
rename to hw/pci/host-sh.c
diff --git a/hw/spapr_pci.c b/hw/pci/host-spapr.c
similarity index 100%
rename from hw/spapr_pci.c
rename to hw/pci/host-spapr.c
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 1e24b58..79b5c1e 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,8 +1,5 @@
 # IBM pSeries (sPAPR)
-obj-$(CONFIG_PSERIES) += spapr_pci.o
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
-# PowerPC 4xx boards
-obj-y += ppc4xx_pci.o
 # PowerPC OpenPIC
 obj-y += openpic.o
 
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 76b37bb..5a49ae8 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += sh_intc.o sh_pci.o
+obj-y += sh_intc.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sparc64/Makefile.objs b/hw/sparc64/Makefile.objs
index 178464b..a84cfe3 100644
--- a/hw/sparc64/Makefile.objs
+++ b/hw/sparc64/Makefile.objs
@@ -1,5 +1 @@
-obj-y = apb_pci.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += sun4u.o
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 27/35] hw: move VFIO and ivshmem to hw/pci/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (25 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 26/35] hw: move PCI bridges to hw/pci/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 28/35] hw: move DMA controllers to hw/dma/, configure with default-configs/ Paolo Bonzini
                   ` (8 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/Makefile.objs              | 10 ----------
 hw/pci/Makefile.objs          |  5 +++++
 hw/{ => pci}/ivshmem.c        |  0
 hw/{vfio_pci.c => pci/vfio.c} |  0
 4 files changed, 5 insertions(+), 10 deletions(-)
 rename hw/{ => pci}/ivshmem.c (100%)
 rename hw/{vfio_pci.c => pci/vfio.c} (100%)

diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index a57dd9a..7ba0d11 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -28,13 +28,3 @@ devices-dirs-$(CONFIG_SOFTMMU) += xen/
 common-obj-y += core/
 common-obj-y += $(devices-dirs-y)
 obj-y += $(devices-dirs-y)
-
-ifeq ($(CONFIG_SOFTMMU),y)
-
-# Inter-VM PCI shared memory & VFIO PCI device assignment
-ifeq ($(CONFIG_PCI), y)
-obj-$(CONFIG_KVM) += ivshmem.o
-obj-$(CONFIG_LINUX) += vfio_pci.o
-endif
-
-endif
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 8b20135..9086b3b 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -26,6 +26,11 @@ common-obj-$(CONFIG_PPCE500_PCI) += host-ppce500.o
 # ARM devices
 common-obj-$(CONFIG_VERSATILE_PCI) += host-versatile.o
 
+ifeq ($(CONFIG_PCI), y)
+obj-$(CONFIG_KVM) += ivshmem.o
+obj-$(CONFIG_LINUX) += vfio.o
+endif
+
 obj-$(CONFIG_PCI_APB) += host-apb.o
 obj-$(CONFIG_FULONG) += host-bonito.o
 obj-$(CONFIG_PCI_PIIX) += host-piix.o
diff --git a/hw/ivshmem.c b/hw/pci/ivshmem.c
similarity index 100%
rename from hw/ivshmem.c
rename to hw/pci/ivshmem.c
diff --git a/hw/vfio_pci.c b/hw/pci/vfio.c
similarity index 100%
rename from hw/vfio_pci.c
rename to hw/pci/vfio.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 28/35] hw: move DMA controllers to hw/dma/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (26 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 27/35] hw: move VFIO and ivshmem to hw/pci/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 29/35] hw: move interrupt controllers to hw/intc/, " Paolo Bonzini
                   ` (7 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/sparc-softmmu.mak | 2 ++
 hw/arm/Makefile.objs              | 7 ++-----
 hw/cris/Makefile.objs             | 1 -
 hw/dma/Makefile.objs              | 6 ++++++
 hw/{ => dma}/etraxfs_dma.c        | 0
 hw/{ => dma}/omap_dma.c           | 0
 hw/{ => dma}/pxa2xx_dma.c         | 0
 hw/{ => dma}/soc_dma.c            | 0
 hw/{ => dma}/sparc32_dma.c        | 0
 hw/{ => dma}/sun4m_iommu.c        | 0
 hw/sparc/Makefile.objs            | 4 ++--
 11 files changed, 12 insertions(+), 8 deletions(-)
 rename hw/{ => dma}/etraxfs_dma.c (100%)
 rename hw/{ => dma}/omap_dma.c (100%)
 rename hw/{ => dma}/pxa2xx_dma.c (100%)
 rename hw/{ => dma}/soc_dma.c (100%)
 rename hw/{ => dma}/sparc32_dma.c (100%)
 rename hw/{ => dma}/sun4m_iommu.c (100%)

diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 6a2bad3..8c4d0a6 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -13,3 +13,5 @@ CONFIG_TCX=y
 CONFIG_SLAVIO=y
 CONFIG_CS4231=y
 CONFIG_GRLIB=y
+CONFIG_STP2000=y
+CONFIG_SUN4M=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 8e8e799..59b5cf6 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -6,13 +6,10 @@ obj-y += exynos4210_gic.o exynos4210_combiner.o
 obj-y += exynos4210_pmu.o
 obj-y += a15mpcore.o
 obj-y += armv7m_nvic.o
-obj-y += pxa2xx_dma.o
 obj-y += pxa2xx_pcmcia.o
 obj-y += zaurus.o
-obj-y += omap_dma.o omap_clk.o \
-                omap_gpio.o omap_intc.o
-obj-y += soc_dma.o \
-                omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
+obj-y += omap_clk.o omap_gpio.o omap_intc.o
+obj-y += omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += cbus.o
 obj-y += mst_fpga.o
 obj-y += strongarm.o
diff --git a/hw/cris/Makefile.objs b/hw/cris/Makefile.objs
index a8a4a9e..f8c85a4 100644
--- a/hw/cris/Makefile.objs
+++ b/hw/cris/Makefile.objs
@@ -1,5 +1,4 @@
 # IO blocks
-obj-y += etraxfs_dma.o
 obj-y += etraxfs_pic.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs
index 7a8ba56..422abc2 100644
--- a/hw/dma/Makefile.objs
+++ b/hw/dma/Makefile.objs
@@ -4,3 +4,9 @@ common-obj-$(CONFIG_PL080) += pl080.o
 common-obj-$(CONFIG_PL330) += pl330.o
 common-obj-$(CONFIG_I8257) += i8257.o
 common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
+
+obj-$(CONFIG_ETRAXFS) += etraxfs_dma.o
+obj-$(CONFIG_OMAP) += omap_dma.o soc_dma.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_dma.o
+obj-$(CONFIG_STP2000) += sparc32_dma.o
+obj-$(CONFIG_SUN4M) += sun4m_iommu.o
diff --git a/hw/etraxfs_dma.c b/hw/dma/etraxfs_dma.c
similarity index 100%
rename from hw/etraxfs_dma.c
rename to hw/dma/etraxfs_dma.c
diff --git a/hw/omap_dma.c b/hw/dma/omap_dma.c
similarity index 100%
rename from hw/omap_dma.c
rename to hw/dma/omap_dma.c
diff --git a/hw/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c
similarity index 100%
rename from hw/pxa2xx_dma.c
rename to hw/dma/pxa2xx_dma.c
diff --git a/hw/soc_dma.c b/hw/dma/soc_dma.c
similarity index 100%
rename from hw/soc_dma.c
rename to hw/dma/soc_dma.c
diff --git a/hw/sparc32_dma.c b/hw/dma/sparc32_dma.c
similarity index 100%
rename from hw/sparc32_dma.c
rename to hw/dma/sparc32_dma.c
diff --git a/hw/sun4m_iommu.c b/hw/dma/sun4m_iommu.c
similarity index 100%
rename from hw/sun4m_iommu.c
rename to hw/dma/sun4m_iommu.c
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index ab1d91c..3de10ff 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,5 +1,5 @@
-obj-y = sun4m_iommu.o slavio_intctl.o
-obj-y += slavio_misc.o sparc32_dma.o
+obj-y = slavio_intctl.o
+obj-y += slavio_misc.o
 obj-y += eccmemctl.o sbi.o sun4c_intctl.o
 
 # GRLIB
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 29/35] hw: move interrupt controllers to hw/intc/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (27 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 28/35] hw: move DMA controllers to hw/dma/, configure with default-configs/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 30/35] hw: move GPIO interfaces to hw/gpio/, " Paolo Bonzini
                   ` (6 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak     |  3 +++
 default-configs/i386-softmmu.mak    |  2 ++
 default-configs/ppc-softmmu.mak     |  1 +
 default-configs/ppc64-softmmu.mak   |  1 +
 default-configs/ppcemb-softmmu.mak  |  1 +
 default-configs/x86_64-softmmu.mak  |  2 ++
 hw/arm/Makefile.objs                |  9 +++------
 hw/cris/Makefile.objs               |  6 ------
 hw/i386/Makefile.objs               |  2 --
 hw/intc/Makefile.objs               | 16 ++++++++++++++++
 hw/{ => intc}/apic.c                |  0
 hw/{ => intc}/apic_common.c         |  0
 hw/{ => intc}/arm_gic.c             |  0
 hw/{ => intc}/arm_gic_common.c      |  0
 hw/{ => intc}/armv7m_nvic.c         |  0
 hw/{ => intc}/etraxfs_pic.c         |  0
 hw/{ => intc}/exynos4210_combiner.c |  0
 hw/{ => intc}/exynos4210_gic.c      |  0
 hw/{ => intc}/grlib_irqmp.c         |  0
 hw/{ => intc}/imx_avic.c            |  0
 hw/{ => intc}/ioapic.c              |  0
 hw/{ => intc}/ioapic_common.c       |  0
 hw/{ => intc}/lm32_pic.c            |  0
 hw/{ => intc}/omap_intc.c           |  0
 hw/{ => intc}/openpic.c             |  0
 hw/{ => intc}/realview_gic.c        |  0
 hw/{ => intc}/sbi.c                 |  0
 hw/{ => intc}/sh_intc.c             |  0
 hw/{ => intc}/slavio_intctl.c       |  0
 hw/{ => intc}/sun4c_intctl.c        |  0
 hw/lm32/Makefile.objs               |  1 -
 hw/ppc/Makefile.objs                |  2 --
 hw/sh4/Makefile.objs                |  4 ----
 hw/sparc/Makefile.objs              |  6 +-----
 34 files changed, 30 insertions(+), 26 deletions(-)
 rename hw/{ => intc}/apic.c (100%)
 rename hw/{ => intc}/apic_common.c (100%)
 rename hw/{ => intc}/arm_gic.c (100%)
 rename hw/{ => intc}/arm_gic_common.c (100%)
 rename hw/{ => intc}/armv7m_nvic.c (100%)
 rename hw/{ => intc}/etraxfs_pic.c (100%)
 rename hw/{ => intc}/exynos4210_combiner.c (100%)
 rename hw/{ => intc}/exynos4210_gic.c (100%)
 rename hw/{ => intc}/grlib_irqmp.c (100%)
 rename hw/{ => intc}/imx_avic.c (100%)
 rename hw/{ => intc}/ioapic.c (100%)
 rename hw/{ => intc}/ioapic_common.c (100%)
 rename hw/{ => intc}/lm32_pic.c (100%)
 rename hw/{ => intc}/omap_intc.c (100%)
 rename hw/{ => intc}/openpic.c (100%)
 rename hw/{ => intc}/realview_gic.c (100%)
 rename hw/{ => intc}/sbi.c (100%)
 rename hw/{ => intc}/sh_intc.c (100%)
 rename hw/{ => intc}/slavio_intctl.c (100%)
 rename hw/{ => intc}/sun4c_intctl.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 94b52da..5aef0d2 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -16,6 +16,7 @@ CONFIG_TWL92230=y
 CONFIG_TSC2005=y
 CONFIG_LM832X=y
 CONFIG_TMP105=y
+CONFIG_STELLARIS=y
 CONFIG_STELLARIS_INPUT=y
 CONFIG_STELLARIS_ENET=y
 CONFIG_SSD0303=y
@@ -33,6 +34,7 @@ CONFIG_PFLASH_CFI02=y
 CONFIG_MICRODRIVE=y
 CONFIG_USB_MUSB=y
 
+CONFIG_ARM_GIC=y
 CONFIG_ARM_TIMER=y
 CONFIG_ARM_MPTIMER=y
 CONFIG_PL011=y
@@ -62,6 +64,7 @@ CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
 CONFIG_TUSB6010=y
 CONFIG_IMX=y
+CONFIG_REALVIEW=y
 CONFIG_ZAURUS=y
 
 CONFIG_VERSATILE_PCI=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 213b4e7..6067024 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -41,3 +41,5 @@ CONFIG_VMPORT=y
 CONFIG_SGA=y
 CONFIG_LPC_ICH9=y
 CONFIG_Q35=y
+CONFIG_APIC=y
+CONFIG_IOAPIC=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 6eb472d..92e28ca 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -41,6 +41,7 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
+CONFIG_OPENPIC=y
 CONFIG_PCI_PPC4XX=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index bc69d3c..6406af4 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -42,6 +42,7 @@ CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
 CONFIG_PCI_PPC4XX=y
+CONFIG_OPENPIC=y
 CONFIG_PSERIES=$(CONFIG_FDT)
 CONFIG_E500=$(CONFIG_FDT)
 # For pSeries
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index ee63657..c1a1e6d 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -36,6 +36,7 @@ CONFIG_PTIMER=y
 CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
+CONFIG_OPENPIC=y
 CONFIG_PCI_PPC4XX=y
 CONFIG_E500=$(CONFIG_FDT)
 # For PReP
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index b2e8932..5999fd2 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -40,3 +40,5 @@ CONFIG_VMPORT=y
 CONFIG_SGA=y
 CONFIG_LPC_ICH9=y
 CONFIG_Q35=y
+CONFIG_APIC=y
+CONFIG_IOAPIC=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 59b5cf6..da51491 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,19 +1,16 @@
 obj-y += zynq_slcr.o
-obj-y += arm_gic.o arm_gic_common.o
 obj-y += a9scu.o
-obj-y += realview_gic.o arm_sysctl.o arm11mpcore.o a9mpcore.o
-obj-y += exynos4210_gic.o exynos4210_combiner.o
+obj-y += arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_pmu.o
 obj-y += a15mpcore.o
-obj-y += armv7m_nvic.o
 obj-y += pxa2xx_pcmcia.o
 obj-y += zaurus.o
-obj-y += omap_clk.o omap_gpio.o omap_intc.o
+obj-y += omap_clk.o omap_gpio.o
 obj-y += omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += cbus.o
 obj-y += mst_fpga.o
 obj-y += strongarm.o
-obj-y += imx_ccm.o imx_avic.o
+obj-y += imx_ccm.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/cris/Makefile.objs b/hw/cris/Makefile.objs
index f8c85a4..776db7c 100644
--- a/hw/cris/Makefile.objs
+++ b/hw/cris/Makefile.objs
@@ -1,9 +1,3 @@
-# IO blocks
-obj-y += etraxfs_pic.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
-# Boards
 obj-y += pic_cpu.o
 obj-y += boot.o
 obj-y += axis_dev88.o
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index c06e92a..c1d73a8 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,5 +1,3 @@
-obj-y += apic_common.o apic.o
-obj-y += ioapic_common.o ioapic.o
 obj-y += kvm/
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
index 2813adb..157f461 100644
--- a/hw/intc/Makefile.objs
+++ b/hw/intc/Makefile.objs
@@ -3,3 +3,19 @@ common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
 common-obj-$(CONFIG_PL190) += pl190.o
 common-obj-$(CONFIG_PUV3) += puv3_intc.o
 common-obj-$(CONFIG_XILINX) += xilinx_intc.o
+
+obj-$(CONFIG_APIC) += apic.o apic_common.o
+obj-$(CONFIG_ARM_GIC) += arm_gic.o arm_gic_common.o
+obj-$(CONFIG_STELLARIS) += armv7m_nvic.o
+obj-$(CONFIG_ETRAXFS) += etraxfs_pic.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_gic.o exynos4210_combiner.o
+obj-$(CONFIG_GRLIB) += grlib_irqmp.o
+obj-$(CONFIG_IMX) += imx_avic.o
+obj-$(CONFIG_IOAPIC) += ioapic.o
+obj-$(CONFIG_IOAPIC) += ioapic_common.o
+obj-$(CONFIG_LM32) += lm32_pic.o
+obj-$(CONFIG_OMAP) += omap_intc.o
+obj-$(CONFIG_OPENPIC) += openpic.o
+obj-$(CONFIG_REALVIEW) += realview_gic.o
+obj-$(CONFIG_SH4) += sh_intc.o
+obj-$(CONFIG_SLAVIO) += sbi.o slavio_intctl.o sun4c_intctl.o
diff --git a/hw/apic.c b/hw/intc/apic.c
similarity index 100%
rename from hw/apic.c
rename to hw/intc/apic.c
diff --git a/hw/apic_common.c b/hw/intc/apic_common.c
similarity index 100%
rename from hw/apic_common.c
rename to hw/intc/apic_common.c
diff --git a/hw/arm_gic.c b/hw/intc/arm_gic.c
similarity index 100%
rename from hw/arm_gic.c
rename to hw/intc/arm_gic.c
diff --git a/hw/arm_gic_common.c b/hw/intc/arm_gic_common.c
similarity index 100%
rename from hw/arm_gic_common.c
rename to hw/intc/arm_gic_common.c
diff --git a/hw/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
similarity index 100%
rename from hw/armv7m_nvic.c
rename to hw/intc/armv7m_nvic.c
diff --git a/hw/etraxfs_pic.c b/hw/intc/etraxfs_pic.c
similarity index 100%
rename from hw/etraxfs_pic.c
rename to hw/intc/etraxfs_pic.c
diff --git a/hw/exynos4210_combiner.c b/hw/intc/exynos4210_combiner.c
similarity index 100%
rename from hw/exynos4210_combiner.c
rename to hw/intc/exynos4210_combiner.c
diff --git a/hw/exynos4210_gic.c b/hw/intc/exynos4210_gic.c
similarity index 100%
rename from hw/exynos4210_gic.c
rename to hw/intc/exynos4210_gic.c
diff --git a/hw/grlib_irqmp.c b/hw/intc/grlib_irqmp.c
similarity index 100%
rename from hw/grlib_irqmp.c
rename to hw/intc/grlib_irqmp.c
diff --git a/hw/imx_avic.c b/hw/intc/imx_avic.c
similarity index 100%
rename from hw/imx_avic.c
rename to hw/intc/imx_avic.c
diff --git a/hw/ioapic.c b/hw/intc/ioapic.c
similarity index 100%
rename from hw/ioapic.c
rename to hw/intc/ioapic.c
diff --git a/hw/ioapic_common.c b/hw/intc/ioapic_common.c
similarity index 100%
rename from hw/ioapic_common.c
rename to hw/intc/ioapic_common.c
diff --git a/hw/lm32_pic.c b/hw/intc/lm32_pic.c
similarity index 100%
rename from hw/lm32_pic.c
rename to hw/intc/lm32_pic.c
diff --git a/hw/omap_intc.c b/hw/intc/omap_intc.c
similarity index 100%
rename from hw/omap_intc.c
rename to hw/intc/omap_intc.c
diff --git a/hw/openpic.c b/hw/intc/openpic.c
similarity index 100%
rename from hw/openpic.c
rename to hw/intc/openpic.c
diff --git a/hw/realview_gic.c b/hw/intc/realview_gic.c
similarity index 100%
rename from hw/realview_gic.c
rename to hw/intc/realview_gic.c
diff --git a/hw/sbi.c b/hw/intc/sbi.c
similarity index 100%
rename from hw/sbi.c
rename to hw/intc/sbi.c
diff --git a/hw/sh_intc.c b/hw/intc/sh_intc.c
similarity index 100%
rename from hw/sh_intc.c
rename to hw/intc/sh_intc.c
diff --git a/hw/slavio_intctl.c b/hw/intc/slavio_intctl.c
similarity index 100%
rename from hw/slavio_intctl.c
rename to hw/intc/slavio_intctl.c
diff --git a/hw/sun4c_intctl.c b/hw/intc/sun4c_intctl.c
similarity index 100%
rename from hw/sun4c_intctl.c
rename to hw/intc/sun4c_intctl.c
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index b9c1918..204685a 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -1,5 +1,4 @@
 # LM32 peripherals
-obj-y += lm32_pic.o
 obj-y += lm32_sys.o
 obj-y += milkymist-hpdmc.o
 obj-y += milkymist-pfpu.o
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 79b5c1e..dd2bd08 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,7 +1,5 @@
 # IBM pSeries (sPAPR)
 obj-$(CONFIG_PSERIES) += spapr_nvram.o
-# PowerPC OpenPIC
-obj-y += openpic.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 5a49ae8..235271f 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,7 +1,3 @@
-obj-y += sh_intc.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += shix.o r2d.o
 
 obj-y += sh7750.o sh7750_regnames.o
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index 3de10ff..3246bb1 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,9 +1,5 @@
-obj-y = slavio_intctl.o
 obj-y += slavio_misc.o
-obj-y += eccmemctl.o sbi.o sun4c_intctl.o
-
-# GRLIB
-obj-y += grlib_irqmp.o
+obj-y += eccmemctl.o
 
 obj-y := $(addprefix ../,$(obj-y))
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 30/35] hw: move GPIO interfaces to hw/gpio/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (28 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 29/35] hw: move interrupt controllers to hw/intc/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 31/35] hw: move NVRAM interfaces to hw/nvram/, " Paolo Bonzini
                   ` (5 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/arm/Makefile.objs      | 3 +--
 hw/gpio/Makefile.objs     | 3 +++
 hw/{ => gpio}/omap_gpio.c | 0
 hw/{ => gpio}/zaurus.c    | 0
 4 files changed, 4 insertions(+), 2 deletions(-)
 rename hw/{ => gpio}/omap_gpio.c (100%)
 rename hw/{ => gpio}/zaurus.c (100%)

diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index da51491..6f70934 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -4,8 +4,7 @@ obj-y += arm_sysctl.o arm11mpcore.o a9mpcore.o
 obj-y += exynos4210_pmu.o
 obj-y += a15mpcore.o
 obj-y += pxa2xx_pcmcia.o
-obj-y += zaurus.o
-obj-y += omap_clk.o omap_gpio.o
+obj-y += omap_clk.o
 obj-y += omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
 obj-y += cbus.o
 obj-y += mst_fpga.o
diff --git a/hw/gpio/Makefile.objs b/hw/gpio/Makefile.objs
index f8d8ee8..28e4939 100644
--- a/hw/gpio/Makefile.objs
+++ b/hw/gpio/Makefile.objs
@@ -1,3 +1,6 @@
 common-obj-$(CONFIG_MAX7310) += max7310.o
 common-obj-$(CONFIG_PL061) += pl061.o
 common-obj-$(CONFIG_PUV3) += puv3_gpio.o
+
+obj-$(CONFIG_OMAP) += omap_gpio.o
+obj-$(CONFIG_ZAURUS) += zaurus.o
diff --git a/hw/omap_gpio.c b/hw/gpio/omap_gpio.c
similarity index 100%
rename from hw/omap_gpio.c
rename to hw/gpio/omap_gpio.c
diff --git a/hw/zaurus.c b/hw/gpio/zaurus.c
similarity index 100%
rename from hw/zaurus.c
rename to hw/gpio/zaurus.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 31/35] hw: move NVRAM interfaces to hw/nvram/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (29 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 30/35] hw: move GPIO interfaces to hw/gpio/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 32/35] hw: move other devices to hw/misc/, " Paolo Bonzini
                   ` (4 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/nvram/Makefile.objs       | 1 +
 hw/{ => nvram}/spapr_nvram.c | 0
 hw/ppc/Makefile.objs         | 5 -----
 3 files changed, 1 insertion(+), 5 deletions(-)
 rename hw/{ => nvram}/spapr_nvram.c (100%)

diff --git a/hw/nvram/Makefile.objs b/hw/nvram/Makefile.objs
index 80fb1b0..e9a6694 100644
--- a/hw/nvram/Makefile.objs
+++ b/hw/nvram/Makefile.objs
@@ -2,3 +2,4 @@ common-obj-$(CONFIG_DS1225Y) += ds1225y.o
 common-obj-y += eeprom93xx.o
 common-obj-y += fw_cfg.o
 common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
+obj-$(CONFIG_PSERIES) += spapr_nvram.o
diff --git a/hw/spapr_nvram.c b/hw/nvram/spapr_nvram.c
similarity index 100%
rename from hw/spapr_nvram.c
rename to hw/nvram/spapr_nvram.c
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index dd2bd08..fd0a660 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,8 +1,3 @@
-# IBM pSeries (sPAPR)
-obj-$(CONFIG_PSERIES) += spapr_nvram.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 # shared objects
 obj-y += ppc.o ppc_booke.o
 # IBM pSeries (sPAPR)
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 32/35] hw: move other devices to hw/misc/, configure with default-configs/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (30 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 31/35] hw: move NVRAM interfaces to hw/nvram/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 33/35] arm: move remaining files to hw/arm/ Paolo Bonzini
                   ` (3 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/arm-softmmu.mak   |  4 ++++
 default-configs/sparc-softmmu.mak |  1 +
 hw/arm/Makefile.objs              | 11 +----------
 hw/lm32/Makefile.objs             |  8 --------
 hw/misc/Makefile.objs             | 19 +++++++++++++++++++
 hw/{ => misc}/a9scu.c             |  0
 hw/{ => misc}/arm_sysctl.c        |  0
 hw/{ => misc}/cbus.c              |  0
 hw/{ => misc}/eccmemctl.c         |  0
 hw/{ => misc}/exynos4210_pmu.c    |  0
 hw/{ => misc}/imx_ccm.c           |  0
 hw/{ => misc}/lm32_sys.c          |  0
 hw/{ => misc}/milkymist-hpdmc.c   |  0
 hw/{ => misc}/milkymist-pfpu.c    |  0
 hw/{ => misc}/mst_fpga.c          |  0
 hw/{ => misc}/omap_clk.c          |  0
 hw/{ => misc}/omap_gpmc.c         |  0
 hw/{ => misc}/omap_l4.c           |  0
 hw/{ => misc}/omap_sdrc.c         |  0
 hw/{ => misc}/omap_tap.c          |  0
 hw/{ => misc}/pxa2xx_pcmcia.c     |  0
 hw/{ => misc}/slavio_misc.c       |  0
 hw/{ => misc}/zynq_slcr.c         |  0
 hw/sparc/Makefile.objs            |  5 -----
 24 files changed, 25 insertions(+), 23 deletions(-)
 rename hw/{ => misc}/a9scu.c (100%)
 rename hw/{ => misc}/arm_sysctl.c (100%)
 rename hw/{ => misc}/cbus.c (100%)
 rename hw/{ => misc}/eccmemctl.c (100%)
 rename hw/{ => misc}/exynos4210_pmu.c (100%)
 rename hw/{ => misc}/imx_ccm.c (100%)
 rename hw/{ => misc}/lm32_sys.c (100%)
 rename hw/{ => misc}/milkymist-hpdmc.c (100%)
 rename hw/{ => misc}/milkymist-pfpu.c (100%)
 rename hw/{ => misc}/mst_fpga.c (100%)
 rename hw/{ => misc}/omap_clk.c (100%)
 rename hw/{ => misc}/omap_gpmc.c (100%)
 rename hw/{ => misc}/omap_l4.c (100%)
 rename hw/{ => misc}/omap_sdrc.c (100%)
 rename hw/{ => misc}/omap_tap.c (100%)
 rename hw/{ => misc}/pxa2xx_pcmcia.c (100%)
 rename hw/{ => misc}/slavio_misc.c (100%)
 rename hw/{ => misc}/zynq_slcr.c (100%)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 5aef0d2..500c391 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -57,6 +57,7 @@ CONFIG_BITBANG_I2C=y
 CONFIG_FRAMEBUFFER=y
 CONFIG_XILINX_SPIPS=y
 
+CONFIG_A9SCU=y
 CONFIG_MARVELL_88W8618=y
 CONFIG_OMAP=y
 CONFIG_TSC210X=y
@@ -64,8 +65,11 @@ CONFIG_BLIZZARD=y
 CONFIG_ONENAND=y
 CONFIG_TUSB6010=y
 CONFIG_IMX=y
+CONFIG_MAINSTONE=y
+CONFIG_NSERIES=y
 CONFIG_REALVIEW=y
 CONFIG_ZAURUS=y
+CONFIG_ZYNQ=y
 
 CONFIG_VERSATILE_PCI=y
 CONFIG_VERSATILE_I2C=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 8c4d0a6..8fc93dd 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -14,4 +14,5 @@ CONFIG_SLAVIO=y
 CONFIG_CS4231=y
 CONFIG_GRLIB=y
 CONFIG_STP2000=y
+CONFIG_ECCMEMCTL=y
 CONFIG_SUN4M=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 6f70934..9ffb911 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,15 +1,6 @@
-obj-y += zynq_slcr.o
-obj-y += a9scu.o
-obj-y += arm_sysctl.o arm11mpcore.o a9mpcore.o
-obj-y += exynos4210_pmu.o
+obj-y += arm11mpcore.o a9mpcore.o
 obj-y += a15mpcore.o
-obj-y += pxa2xx_pcmcia.o
-obj-y += omap_clk.o
-obj-y += omap_gpmc.o omap_sdrc.o omap_tap.o omap_l4.o
-obj-y += cbus.o
-obj-y += mst_fpga.o
 obj-y += strongarm.o
-obj-y += imx_ccm.o
 obj-$(CONFIG_KVM) += kvm/arm_gic.o
 
 obj-y := $(addprefix ../,$(obj-y))
diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index 204685a..ea6418a 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -1,11 +1,3 @@
-# LM32 peripherals
-obj-y += lm32_sys.o
-obj-y += milkymist-hpdmc.o
-obj-y += milkymist-pfpu.o
-obj-y += milkymist-sysctl.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 # LM32 boards
 obj-y += lm32_boards.o
 obj-y += milkymist.o
diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
index d44458e..8c5c528 100644
--- a/hw/misc/Makefile.objs
+++ b/hw/misc/Makefile.objs
@@ -8,3 +8,22 @@ common-obj-$(CONFIG_PL310) += arm_l2x0.o
 common-obj-$(CONFIG_PUV3) += puv3_pm.o
 
 common-obj-$(CONFIG_MACIO) += macio/
+
+obj-$(CONFIG_REALVIEW) += arm_sysctl.o
+obj-$(CONFIG_A9SCU) += a9scu.o
+obj-$(CONFIG_NSERIES) += cbus.o
+obj-$(CONFIG_ECCMEMCTL) += eccmemctl.o
+obj-$(CONFIG_EXYNOS4) += exynos4210_pmu.o
+obj-$(CONFIG_IMX) += imx_ccm.o
+obj-$(CONFIG_LM32) += lm32_sys.o
+obj-$(CONFIG_MILKYMIST) += milkymist-hpdmc.o
+obj-$(CONFIG_MILKYMIST) += milkymist-pfpu.o
+obj-$(CONFIG_MAINSTONE) += mst_fpga.o
+obj-$(CONFIG_OMAP) += omap_clk.o
+obj-$(CONFIG_OMAP) += omap_gpmc.o
+obj-$(CONFIG_OMAP) += omap_l4.o
+obj-$(CONFIG_OMAP) += omap_sdrc.o
+obj-$(CONFIG_OMAP) += omap_tap.o
+obj-$(CONFIG_PXA2XX) += pxa2xx_pcmcia.o
+obj-$(CONFIG_SLAVIO) += slavio_misc.o
+obj-$(CONFIG_ZYNQ) += zynq_slcr.o
diff --git a/hw/a9scu.c b/hw/misc/a9scu.c
similarity index 100%
rename from hw/a9scu.c
rename to hw/misc/a9scu.c
diff --git a/hw/arm_sysctl.c b/hw/misc/arm_sysctl.c
similarity index 100%
rename from hw/arm_sysctl.c
rename to hw/misc/arm_sysctl.c
diff --git a/hw/cbus.c b/hw/misc/cbus.c
similarity index 100%
rename from hw/cbus.c
rename to hw/misc/cbus.c
diff --git a/hw/eccmemctl.c b/hw/misc/eccmemctl.c
similarity index 100%
rename from hw/eccmemctl.c
rename to hw/misc/eccmemctl.c
diff --git a/hw/exynos4210_pmu.c b/hw/misc/exynos4210_pmu.c
similarity index 100%
rename from hw/exynos4210_pmu.c
rename to hw/misc/exynos4210_pmu.c
diff --git a/hw/imx_ccm.c b/hw/misc/imx_ccm.c
similarity index 100%
rename from hw/imx_ccm.c
rename to hw/misc/imx_ccm.c
diff --git a/hw/lm32_sys.c b/hw/misc/lm32_sys.c
similarity index 100%
rename from hw/lm32_sys.c
rename to hw/misc/lm32_sys.c
diff --git a/hw/milkymist-hpdmc.c b/hw/misc/milkymist-hpdmc.c
similarity index 100%
rename from hw/milkymist-hpdmc.c
rename to hw/misc/milkymist-hpdmc.c
diff --git a/hw/milkymist-pfpu.c b/hw/misc/milkymist-pfpu.c
similarity index 100%
rename from hw/milkymist-pfpu.c
rename to hw/misc/milkymist-pfpu.c
diff --git a/hw/mst_fpga.c b/hw/misc/mst_fpga.c
similarity index 100%
rename from hw/mst_fpga.c
rename to hw/misc/mst_fpga.c
diff --git a/hw/omap_clk.c b/hw/misc/omap_clk.c
similarity index 100%
rename from hw/omap_clk.c
rename to hw/misc/omap_clk.c
diff --git a/hw/omap_gpmc.c b/hw/misc/omap_gpmc.c
similarity index 100%
rename from hw/omap_gpmc.c
rename to hw/misc/omap_gpmc.c
diff --git a/hw/omap_l4.c b/hw/misc/omap_l4.c
similarity index 100%
rename from hw/omap_l4.c
rename to hw/misc/omap_l4.c
diff --git a/hw/omap_sdrc.c b/hw/misc/omap_sdrc.c
similarity index 100%
rename from hw/omap_sdrc.c
rename to hw/misc/omap_sdrc.c
diff --git a/hw/omap_tap.c b/hw/misc/omap_tap.c
similarity index 100%
rename from hw/omap_tap.c
rename to hw/misc/omap_tap.c
diff --git a/hw/pxa2xx_pcmcia.c b/hw/misc/pxa2xx_pcmcia.c
similarity index 100%
rename from hw/pxa2xx_pcmcia.c
rename to hw/misc/pxa2xx_pcmcia.c
diff --git a/hw/slavio_misc.c b/hw/misc/slavio_misc.c
similarity index 100%
rename from hw/slavio_misc.c
rename to hw/misc/slavio_misc.c
diff --git a/hw/zynq_slcr.c b/hw/misc/zynq_slcr.c
similarity index 100%
rename from hw/zynq_slcr.c
rename to hw/misc/zynq_slcr.c
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index 3246bb1..c987b5b 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1,6 +1 @@
-obj-y += slavio_misc.o
-obj-y += eccmemctl.o
-
-obj-y := $(addprefix ../,$(obj-y))
-
 obj-y += sun4m.o leon3.o
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 33/35] arm: move remaining files to hw/arm/
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (31 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 32/35] hw: move other devices to hw/misc/, " Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 34/35] MAINTAINERS: update for source code movement Paolo Bonzini
                   ` (2 subsequent siblings)
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/arm/Makefile.objs       | 8 ++++++--
 hw/{ => arm}/a15mpcore.c   | 0
 hw/{ => arm}/a9mpcore.c    | 0
 hw/{ => arm}/arm11mpcore.c | 0
 hw/{ => arm}/strongarm.c   | 0
 5 files changed, 6 insertions(+), 2 deletions(-)
 rename hw/{ => arm}/a15mpcore.c (100%)
 rename hw/{ => arm}/a9mpcore.c (100%)
 rename hw/{ => arm}/arm11mpcore.c (100%)
 rename hw/{ => arm}/strongarm.c (100%)

diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 9ffb911..66d67d3 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,14 +1,18 @@
+# CPU cores
 obj-y += arm11mpcore.o a9mpcore.o
 obj-y += a15mpcore.o
+
+# All-in-one devices, should be refactored
 obj-y += strongarm.o
-obj-$(CONFIG_KVM) += kvm/arm_gic.o
 
-obj-y := $(addprefix ../,$(obj-y))
+obj-$(CONFIG_KVM) += ../kvm/arm_gic.o
 
+# Boards
 obj-y += boot.o collie.o exynos4_boards.o gumstix.o highbank.o
 obj-y += integratorcp.o kzm.o mainstone.o musicpal.o nseries.o
 obj-y += omap_sx1.o palm.o pic_cpu.o realview.o spitz.o stellaris.o
 obj-y += tosa.o versatilepb.o vexpress.o xilinx_zynq.o z2.o
 
+# Devices that require ARMCPU
 obj-y += armv7m.o exynos4210.o pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o
 obj-y += omap1.o omap2.o
diff --git a/hw/a15mpcore.c b/hw/arm/a15mpcore.c
similarity index 100%
rename from hw/a15mpcore.c
rename to hw/arm/a15mpcore.c
diff --git a/hw/a9mpcore.c b/hw/arm/a9mpcore.c
similarity index 100%
rename from hw/a9mpcore.c
rename to hw/arm/a9mpcore.c
diff --git a/hw/arm11mpcore.c b/hw/arm/arm11mpcore.c
similarity index 100%
rename from hw/arm11mpcore.c
rename to hw/arm/arm11mpcore.c
diff --git a/hw/strongarm.c b/hw/arm/strongarm.c
similarity index 100%
rename from hw/strongarm.c
rename to hw/arm/strongarm.c
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 34/35] MAINTAINERS: update for source code movement
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (32 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 33/35] arm: move remaining files to hw/arm/ Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 35/35] hw: move private headers to hw/ subdirectories Paolo Bonzini
  2013-03-18 17:38 ` [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Peter Maydell
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 MAINTAINERS | 170 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 93 insertions(+), 77 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0ca7e1d..f8e25c5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -59,75 +59,90 @@ Alpha
 M: Richard Henderson <rth@twiddle.net>
 S: Maintained
 F: target-alpha/
+F: hw/alpha/
 
 ARM
 M: Paul Brook <paul@codesourcery.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
 F: target-arm/
+F: hw/arm/
 
 CRIS
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
 F: target-cris/
+F: hw/cris/
 
 LM32
 M: Michael Walle <michael@walle.cc>
 S: Maintained
 F: target-lm32/
+F: hw/lm32/
 
 M68K
 M: Paul Brook <paul@codesourcery.com>
 S: Odd Fixes
 F: target-m68k/
+F: hw/m68k/
 
 MicroBlaze
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
 F: target-microblaze/
+F: hw/microblaze/
 
 MIPS
 M: Aurelien Jarno <aurelien@aurel32.net>
 S: Odd Fixes
 F: target-mips/
+F: hw/mips/
 
 PowerPC
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
 F: target-ppc/
+F: hw/ppc/
 
 S390
 M: Richard Henderson <rth@twiddle.net>
 M: Alexander Graf <agraf@suse.de>
 S: Maintained
 F: target-s390x/
+F: hw/s390x/
 
 SH4
 M: Aurelien Jarno <aurelien@aurel32.net>
 S: Odd Fixes
 F: target-sh4/
+F: hw/sh4/
 
 SPARC
 M: Blue Swirl <blauwirbel@gmail.com>
 S: Maintained
 F: target-sparc/
+F: hw/sparc/
+F: hw/sparc64/
 
 UniCore32
 M: Guan Xuetao <gxt@mprc.pku.edu.cn>
 S: Maintained
 F: target-unicore32/
+F: hw/unicore32/
 
 X86
 M: qemu-devel@nongnu.org
 S: Odd Fixes
 F: target-i386/
+F: hw/i386/
 
 Xtensa
 M: Max Filippov <jcmvbkbc@gmail.com>
 W: http://wiki.osll.spb.ru/doku.php?id=etc:users:jcmvbkbc:qemu-target-xtensa
 S: Maintained
 F: target-xtensa/
+F: hw/xtensa/
 
 Guest CPU Cores (KVM):
 ----------------------
@@ -200,156 +215,156 @@ M: Maksim Kozlov <m.kozlov@samsung.com>
 M: Igor Mitsyanko <i.mitsyanko@samsung.com>
 M: Dmitry Solodkiy <d.solodkiy@samsung.com>
 S: Maintained
-F: hw/exynos*
+F: hw/*/exynos*
 
 Calxeda Highbank
 M: Mark Langsdorf <mark.langsdorf@calxeda.com>
 S: Supported
-F: hw/highbank.c
-F: hw/xgmac.c
+F: hw/arm/highbank.c
+F: hw/net/xgmac.c
 
 Gumstix
 M: qemu-devel@nongnu.org
 S: Orphan
-F: hw/gumstix.c
+F: hw/arm/gumstix.c
 
 i.MX31
 M: Peter Chubb <peter.chubb@nicta.com.au>
 S: Odd fixes
-F: hw/imx*
-F: hw/kzm.c
+F: hw/*/imx*
+F: hw/arm/kzm.c
 
 Integrator CP
 M: Paul Brook <paul@codesourcery.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
-F: hw/integratorcp.c
+F: hw/arm/integratorcp.c
 
 Mainstone
 M: qemu-devel@nongnu.org
 S: Orphan
-F: hw/mainstone.c
+F: hw/arm/mainstone.c
 
 Musicpal
 M: Jan Kiszka <jan.kiszka@web.de>
 S: Maintained
-F: hw/musicpal.c
+F: hw/arm/musicpal.c
 
 nSeries
 M: Andrzej Zaborowski <balrogg@gmail.com>
 S: Maintained
-F: hw/nseries.c
+F: hw/arm/nseries.c
 
 Palm
 M: Andrzej Zaborowski <balrogg@gmail.com>
 S: Maintained
-F: hw/palm.c
+F: hw/arm/palm.c
 
 Real View
 M: Paul Brook <paul@codesourcery.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
-F: hw/realview*
+F: hw/arm/realview*
 
 Spitz
 M: Andrzej Zaborowski <balrogg@gmail.com>
 S: Maintained
-F: hw/spitz.c
+F: hw/arm/spitz.c
 
 Stellaris
 M: Paul Brook <paul@codesourcery.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
-F: hw/stellaris.c
+F: hw/*/stellaris*
 
 Versatile PB
 M: Paul Brook <paul@codesourcery.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
-F: hw/versatilepb.c
+F: hw/*/versatile*
 
 Xilinx Zynq
 M: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
 S: Maintained
-F: hw/xilinx_zynq.c
-F: hw/zynq_slcr.c
-F: hw/cadence_*
-F: hw/xilinx_spips.c
+F: hw/arm/xilinx_zynq.c
+F: hw/misc/zynq_slcr.c
+F: hw/*/cadence_*
+F: hw/ssi/xilinx_spips.c
 
 CRIS Machines
 -------------
 Axis Dev88
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
-F: hw/axis_dev88.c
+F: hw/cris/axis_dev88.c
 
 etraxfs
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
-F: hw/etraxfs.c
+F: hw/cris/etraxfs.c
 
 LM32 Machines
 -------------
 EVR32 and uclinux BSP
 M: Michael Walle <michael@walle.cc>
 S: Maintained
-F: hw/lm32_boards.c
+F: hw/lm32/lm32_boards.c
 
 milkymist
 M: Michael Walle <michael@walle.cc>
 S: Maintained
-F: hw/milkymist.c
+F: hw/lm32/milkymist.c
 
 M68K Machines
 -------------
 an5206
 M: Paul Brook <paul@codesourcery.com>
 S: Maintained
-F: hw/an5206.c
+F: hw/m68k/an5206.c
 
 dummy_m68k
 M: Paul Brook <paul@codesourcery.com>
 S: Maintained
-F: hw/dummy_m68k.c
+F: hw/m68k/dummy_m68k.c
 
 mcf5208
 M: Paul Brook <paul@codesourcery.com>
 S: Maintained
-F: hw/mcf5208.c
+F: hw/m68k/mcf5208.c
 
 MicroBlaze Machines
 -------------------
 petalogix_s3adsp1800
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
-F: hw/petalogix_s3adsp1800.c
+F: hw/microblaze/petalogix_s3adsp1800.c
 
 petalogix_ml605
 M: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
 S: Maintained
-F: hw/petalogix_ml605_mmu.c
+F: hw/microblaze/petalogix_ml605_mmu.c
 
 MIPS Machines
 -------------
 Jazz
 M: Hervé Poussineau <hpoussin@reactos.org>
 S: Maintained
-F: hw/mips_jazz.c
+F: hw/mips/mips_jazz.c
 
 Malta
 M: Aurelien Jarno <aurelien@aurel32.net>
 S: Maintained
-F: hw/mips_malta.c
+F: hw/mips/mips_malta.c
 
 Mipssim
 M: qemu-devel@nongnu.org
 S: Orphan
-F: hw/mips_mipssim.c
+F: hw/mips/mips_mipssim.c
 
 R4000
 M: Aurelien Jarno <aurelien@aurel32.net>
 S: Maintained
-F: hw/mips_r4k.c
+F: hw/mips/mips_r4k.c
 
 PowerPC Machines
 ----------------
@@ -357,13 +372,13 @@ PowerPC Machines
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/ppc405_boards.c
+F: hw/ppc/ppc405_boards.c
 
 Bamboo
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/ppc440_bamboo.c
+F: hw/ppc/ppc440_bamboo.c
 
 e500
 M: Alexander Graf <agraf@suse.de>
@@ -379,43 +394,45 @@ M: Scott Wood <scottwood@freescale.com>
 L: qemu-ppc@nongnu.org
 S: Supported
 F: hw/ppc/mpc8544ds.c
-F: hw/mpc8544_guts.c
+F: hw/ppc/mpc8544_guts.c
 
 New World
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc/mac_newworld.c
-F: hw/unin_pci.c
-F: hw/dec_pci.[hc]
+F: hw/pci/host-uninorth.c
+F: hw/pci/host-dec.[hc]
+F: hw/misc/macio/
 
 Old World
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc/mac_oldworld.c
-F: hw/grackle_pci.c
+F: hw/pci/host-grackle.c
+F: hw/misc/macio/
 
 PReP
 M: Andreas Färber <andreas.faerber@web.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
 F: hw/ppc/prep.c
-F: hw/prep_pci.[hc]
-F: hw/pc87312.[hc]
+F: hw/pci/host-prep.[hc]
+F: hw/isa/pc87312.[hc]
 
 sPAPR
 M: David Gibson <david@gibson.dropbear.id.au>
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Supported
-F: hw/spapr*
+F: hw/*/spapr*
 
 virtex_ml507
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/virtex_ml507.c
+F: hw/pci/virtex_ml507.c
 
 SH4 Machines
 ------------
@@ -434,25 +451,25 @@ SPARC Machines
 Sun4m
 M: Blue Swirl <blauwirbel@gmail.com>
 S: Maintained
-F: hw/sun4m.c
+F: hw/sparc/sun4m.c
 
 Sun4u
 M: Blue Swirl <blauwirbel@gmail.com>
 S: Maintained
-F: hw/sun4u.c
+F: hw/sparc64/sun4u.c
 
 Leon3
 M: Fabien Chouteau <chouteau@adacore.com>
 S: Maintained
-F: hw/leon3.c
-F: hw/grlib*
+F: hw/sparc/leon3.c
+F: hw/*/grlib*
 
 S390 Machines
 -------------
 S390 Virtio
 M: Alexander Graf <agraf@suse.de>
 S: Maintained
-F: hw/s390-*.c
+F: hw/s390/s390-*.c
 
 S390 Virtio-ccw
 M: Cornelia Huck <cornelia.huck@de.ibm.com>
@@ -467,7 +484,7 @@ UniCore32 Machines
 PKUnity-3 SoC initramfs-with-busybox
 M: Guan Xuetao <gxt@mprc.pku.edu.cn>
 S: Maintained
-F: hw/puv3*
+F: hw/*/puv3*
 F: hw/unicore32/
 
 X86 Machines
@@ -475,90 +492,92 @@ X86 Machines
 PC
 M: Anthony Liguori <aliguori@us.ibm.com>
 S: Supported
-F: hw/pc.[ch]
-F: hw/pc_piix.c
+F: hw/i386/pc.[ch]
+F: hw/i386/pc_piix.c
 
 Xtensa Machines
 ---------------
 sim
 M: Max Filippov <jcmvbkbc@gmail.com>
 S: Maintained
-F: hw/xtensa_sim.c
+F: hw/xtensa/xtensa_sim.c
 
 Avnet LX60
 M: Max Filippov <jcmvbkbc@gmail.com>
 S: Maintained
-F: hw/xtensa_lx60.c
+F: hw/xtensa/xtensa_lx60.c
 
 Devices
 -------
 IDE
 M: Kevin Wolf <kwolf@redhat.com>
 S: Odd Fixes
+F: include/hw/ide.h
 F: hw/ide/
 
 OMAP
 M: Peter Maydell <peter.maydell@linaro.org>
 S: Maintained
-F: hw/omap*
+F: hw/*/omap*
 
 PCI
 M: Michael S. Tsirkin <mst@redhat.com>
 S: Supported
+F: include/hw/pci/*
 F: hw/pci/*
-F: hw/pci*
-F: hw/piix*
+F: hw/acpi/piix4.c
 
 ppc4xx
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/ppc4xx*.[hc]
+F: hw/host-ppc4xx.c
+F: hw/ppc4xx_devs.c
 
 ppce500
 M: Alexander Graf <agraf@suse.de>
 M: Scott Wood <scottwood@freescale.com>
 L: qemu-ppc@nongnu.org
 S: Supported
-F: hw/ppce500_*
+F: hw/ppc/e500_*
 
 SCSI
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Supported
-F: hw/virtio-scsi.*
-F: hw/scsi*
+F: include/hw/scsi*
+F: hw/scsi/*
 T: git git://github.com/bonzini/qemu.git scsi-next
 
 LSI53C895A
 M: Paul Brook <paul@codesourcery.com>
 S: Odd Fixes
-F: hw/lsi53c895a.c
+F: hw/scsi/lsi53c895a.c
 
 SSI
 M: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
 S: Maintained
-F: hw/ssi.*
-F: hw/m25p80.c
+F: hw/ssi/*
+F: hw/block/m25p80.c
 
 USB
 M: Gerd Hoffmann <kraxel@redhat.com>
 S: Maintained
-F: hw/usb*
+F: hw/usb/*
 
 VFIO
 M: Alex Williamson <alex.williamson@redhat.com>
 S: Supported
-F: hw/vfio*
+F: hw/pci/vfio.c
 
 vhost
 M: Michael S. Tsirkin <mst@redhat.com>
 S: Supported
-F: hw/vhost*
+F: hw/*/*vhost*
 
 virtio
 M: Anthony Liguori <aliguori@us.ibm.com>
 S: Supported
-F: hw/virtio*
+F: hw/*/virtio*
 
 virtio-9p
 M: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
@@ -571,7 +590,7 @@ virtio-blk
 M: Kevin Wolf <kwolf@redhat.com>
 M: Stefan Hajnoczi <stefanha@redhat.com>
 S: Supported
-F: hw/virtio-blk*
+F: hw/block/virtio-blk.c
 
 virtio-ccw
 M: Cornelia Huck <cornelia.huck@de.ibm.com>
@@ -582,20 +601,15 @@ T: git git://github.com/cohuck/qemu virtio-ccw-upstr
 virtio-serial
 M: Amit Shah <amit.shah@redhat.com>
 S: Supported
-F: hw/virtio-serial*
-F: hw/virtio-console*
+F: hw/char/virtio-serial-bus.c
+F: hw/char/virtio-console.c
 
 Xilinx EDK
 M: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 S: Maintained
-F: hw/xilinx_axi*
-F: hw/xilinx_uartlite.c
-F: hw/xilinx_intc.c
-F: hw/xilinx_ethlite.c
-F: hw/xilinx_timer.c
-F: hw/xilinx.h
-F: hw/xilinx_spi.c
+F: hw/*/xilinx_*
+F: include/hw/xilinx.h
 
 Subsystems
 ----------
@@ -603,6 +617,7 @@ Audio
 M: Vassili Karpov (malc) <av1474@comtv.ru>
 S: Maintained
 F: audio/
+F: hw/audio/
 
 Block
 M: Kevin Wolf <kwolf@redhat.com>
@@ -610,6 +625,7 @@ M: Stefan Hajnoczi <stefanha@redhat.com>
 S: Supported
 F: block*
 F: block/
+F: hw/block/
 
 Character Devices
 M: Anthony Liguori <aliguori@us.ibm.com>
@@ -641,7 +657,7 @@ S: Supported
 F: ui/qemu-spice.h
 F: ui/spice-*.c
 F: audio/spiceaudio.c
-F: hw/qxl*
+F: hw/display/qxl*
 
 Graphics
 M: Anthony Liguori <aliguori@us.ibm.com>
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* [Qemu-devel] [PATCH 35/35] hw: move private headers to hw/ subdirectories.
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (33 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 34/35] MAINTAINERS: update for source code movement Paolo Bonzini
@ 2013-03-18 17:35 ` Paolo Bonzini
  2013-03-18 17:38 ` [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Peter Maydell
  35 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 17:35 UTC (permalink / raw)
  To: qemu-devel

Many headers are used only in a single directory.  These can be
kept in hw/.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/arm/collie.c                                   |  2 +-
 hw/arm/strongarm.c                                |  2 +-
 hw/{ => arm}/strongarm.h                          |  0
 hw/audio/adlib.c                                  |  2 +-
 hw/audio/fmopl.c                                  |  2 +-
 hw/{ => audio}/fmopl.h                            |  0
 hw/audio/gus.c                                    |  4 +--
 hw/{ => audio}/gusemu.h                           |  0
 hw/audio/gusemu_hal.c                             |  4 +--
 hw/audio/gusemu_mixer.c                           |  4 +--
 hw/{ => audio}/gustate.h                          |  0
 hw/audio/hda-codec.c                              |  4 +--
 hw/{ => audio}/intel-hda-defs.h                   |  0
 hw/audio/intel-hda.c                              |  4 +--
 hw/{ => audio}/intel-hda.h                        |  0
 hw/audio/lm4549.c                                 |  2 +-
 hw/{ => audio}/lm4549.h                           |  0
 hw/audio/pl041.c                                  |  4 +--
 hw/{ => audio}/pl041.h                            |  0
 hw/{ => block}/xen_blkif.h                        |  0
 hw/block/xen_disk.c                               |  2 +-
 hw/char/ipack.c                                   |  2 +-
 hw/{ => char}/ipack.h                             |  0
 hw/char/ipoctal232.c                              |  2 +-
 hw/char/tpci200.c                                 |  2 +-
 hw/core/loader.c                                  |  2 +-
 hw/{ => core}/uboot_image.h                       |  0
 hw/cris/axis_dev88.c                              |  2 +-
 hw/cris/boot.c                                    |  2 +-
 hw/{cris-boot.h => cris/boot.h}                   |  0
 hw/display/blizzard.c                             | 12 +++----
 hw/{ => display}/blizzard_template.h              |  0
 hw/display/cirrus_vga.c                           | 38 +++++++++++------------
 hw/{ => display}/cirrus_vga_rop.h                 |  8 ++---
 hw/{ => display}/cirrus_vga_rop2.h                |  0
 hw/{ => display}/cirrus_vga_template.h            |  0
 hw/display/framebuffer.c                          |  2 +-
 hw/{ => display}/framebuffer.h                    |  0
 hw/display/milkymist-vgafb.c                      | 12 +++----
 hw/{ => display}/milkymist-vgafb_template.h       |  0
 hw/{ => display}/omap_lcd_template.h              |  0
 hw/display/omap_lcdc.c                            | 10 +++---
 hw/display/pl110.c                                | 12 +++----
 hw/{ => display}/pl110_template.h                 | 12 +++----
 hw/display/pxa2xx_lcd.c                           | 12 +++----
 hw/{ => display}/pxa2xx_template.h                |  0
 hw/display/qxl-logger.c                           |  2 +-
 hw/display/qxl-render.c                           |  2 +-
 hw/display/qxl.c                                  |  2 +-
 hw/{ => display}/qxl.h                            |  2 +-
 hw/display/sm501.c                                | 14 ++++-----
 hw/{ => display}/sm501_template.h                 |  0
 hw/display/tc6393xb.c                             | 10 +++---
 hw/{ => display}/tc6393xb_template.h              |  0
 hw/display/vga-isa-mm.c                           |  2 +-
 hw/display/vga-isa.c                              |  2 +-
 hw/display/vga-pci.c                              |  2 +-
 hw/display/vga.c                                  | 18 +++++------
 hw/{ => display}/vga.h                            |  0
 hw/{ => display}/vga_int.h                        |  0
 hw/{ => display}/vga_template.h                   |  0
 hw/display/vmware_vga.c                           |  2 +-
 hw/i2c/bitbang_i2c.c                              |  2 +-
 hw/{ => i2c}/bitbang_i2c.h                        |  0
 hw/i2c/versatile_i2c.c                            |  2 +-
 hw/i386/multiboot.c                               |  2 +-
 hw/{ => i386}/multiboot.h                         |  0
 hw/i386/pc.c                                      |  2 +-
 hw/i386/xen_domainbuild.c                         |  2 +-
 hw/{ => i386}/xen_domainbuild.h                   |  0
 hw/i386/xen_machine_pv.c                          |  2 +-
 hw/intc/arm_gic.c                                 |  2 +-
 hw/intc/arm_gic_common.c                          |  2 +-
 hw/intc/armv7m_nvic.c                             |  2 +-
 hw/{arm_gic_internal.h => intc/gic_internal.h}    |  0
 hw/kvm/arm_gic.c                                  |  2 +-
 hw/{ => lm32}/lm32.h                              |  0
 hw/lm32/lm32_boards.c                             |  4 +--
 hw/{ => lm32}/lm32_hwsetup.h                      |  0
 hw/{ => lm32}/milkymist-hw.h                      |  0
 hw/lm32/milkymist.c                               |  4 +--
 hw/microblaze/boot.c                              |  2 +-
 hw/{microblaze_boot.h => microblaze/boot.h}       |  0
 hw/microblaze/petalogix_ml605_mmu.c               |  4 +--
 hw/microblaze/petalogix_s3adsp1800_mmu.c          |  4 +--
 hw/microblaze/pic_cpu.c                           |  2 +-
 hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h} |  0
 hw/misc/tmp105.c                                  |  2 +-
 hw/{ => misc}/tmp105.h                            |  0
 hw/net/e1000.c                                    |  2 +-
 hw/{e1000_hw.h => net/e1000_regs.h}               |  0
 hw/net/lance.c                                    |  2 +-
 hw/net/ne2000-isa.c                               |  2 +-
 hw/net/ne2000.c                                   |  2 +-
 hw/{ => net}/ne2000.h                             |  0
 hw/net/pcnet-pci.c                                |  2 +-
 hw/net/pcnet.c                                    |  2 +-
 hw/{ => net}/pcnet.h                              |  0
 hw/pci/host-dec.c                                 |  2 +-
 hw/{dec_pci.h => pci/host-dec.h}                  |  0
 hw/pci/ioh3420.c                                  |  2 +-
 hw/{ => pci}/ioh3420.h                            |  0
 hw/pci/xio3130_downstream.c                       |  2 +-
 hw/{ => pci}/xio3130_downstream.h                 |  0
 hw/pci/xio3130_upstream.c                         |  2 +-
 hw/{ => pci}/xio3130_upstream.h                   |  0
 hw/{ => ppc}/ppc405.h                             |  0
 hw/ppc/ppc405_boards.c                            |  2 +-
 hw/ppc/ppc405_uc.c                                |  2 +-
 hw/ppc/ppc440_bamboo.c                            |  2 +-
 hw/ppc/virtex_ml507.c                             |  2 +-
 hw/scsi/megasas.c                                 |  2 +-
 hw/{ => scsi}/mfi.h                               |  0
 hw/scsi/spapr_vscsi.c                             |  4 +--
 hw/{ => scsi}/srp.h                               |  0
 hw/{ppc-viosrp.h => scsi/viosrp.h}                |  0
 hw/sd/sdhci.c                                     |  2 +-
 hw/{ => sd}/sdhci.h                               |  0
 hw/sh4/r2d.c                                      |  2 +-
 hw/sh4/sh7750.c                                   |  4 +--
 hw/sh4/sh7750_regnames.c                          |  4 +--
 hw/{ => sh4}/sh7750_regnames.h                    |  0
 hw/{ => sh4}/sh7750_regs.h                        |  0
 hw/usb/ccid-card-emulated.c                       |  2 +-
 hw/usb/ccid-card-passthru.c                       |  2 +-
 hw/{ => usb}/ccid.h                               |  0
 hw/usb/dev-smartcard-reader.c                     |  2 +-
 hw/virtio/virtio-pci.c                            |  2 +-
 hw/{ => virtio}/virtio-pci.h                      |  0
 hw/xen/xen-host-pci-device.c                      |  2 +-
 hw/{ => xen}/xen-host-pci-device.h                |  0
 hw/xen/xen_pt.c                                   |  2 +-
 hw/{ => xen}/xen_pt.h                             |  2 +-
 hw/xen/xen_pt_config_init.c                       |  2 +-
 hw/xen/xen_pt_msi.c                               |  2 +-
 hw/{ => xtensa}/xtensa_bootparam.h                |  0
 hw/xtensa/xtensa_lx60.c                           |  2 +-
 137 files changed, 166 insertions(+), 166 deletions(-)
 rename hw/{ => arm}/strongarm.h (100%)
 rename hw/{ => audio}/fmopl.h (100%)
 rename hw/{ => audio}/gusemu.h (100%)
 rename hw/{ => audio}/gustate.h (100%)
 rename hw/{ => audio}/intel-hda-defs.h (100%)
 rename hw/{ => audio}/intel-hda.h (100%)
 rename hw/{ => audio}/lm4549.h (100%)
 rename hw/{ => audio}/pl041.h (100%)
 rename hw/{ => block}/xen_blkif.h (100%)
 rename hw/{ => char}/ipack.h (100%)
 rename hw/{ => core}/uboot_image.h (100%)
 rename hw/{cris-boot.h => cris/boot.h} (100%)
 rename hw/{ => display}/blizzard_template.h (100%)
 rename hw/{ => display}/cirrus_vga_rop.h (97%)
 rename hw/{ => display}/cirrus_vga_rop2.h (100%)
 rename hw/{ => display}/cirrus_vga_template.h (100%)
 rename hw/{ => display}/framebuffer.h (100%)
 rename hw/{ => display}/milkymist-vgafb_template.h (100%)
 rename hw/{ => display}/omap_lcd_template.h (100%)
 rename hw/{ => display}/pl110_template.h (98%)
 rename hw/{ => display}/pxa2xx_template.h (100%)
 rename hw/{ => display}/qxl.h (99%)
 rename hw/{ => display}/sm501_template.h (100%)
 rename hw/{ => display}/tc6393xb_template.h (100%)
 rename hw/{ => display}/vga.h (100%)
 rename hw/{ => display}/vga_int.h (100%)
 rename hw/{ => display}/vga_template.h (100%)
 rename hw/{ => i2c}/bitbang_i2c.h (100%)
 rename hw/{ => i386}/multiboot.h (100%)
 rename hw/{ => i386}/xen_domainbuild.h (100%)
 rename hw/{arm_gic_internal.h => intc/gic_internal.h} (100%)
 rename hw/{ => lm32}/lm32.h (100%)
 rename hw/{ => lm32}/lm32_hwsetup.h (100%)
 rename hw/{ => lm32}/milkymist-hw.h (100%)
 rename hw/{microblaze_boot.h => microblaze/boot.h} (100%)
 rename hw/{microblaze_pic_cpu.h => microblaze/pic_cpu.h} (100%)
 rename hw/{ => misc}/tmp105.h (100%)
 rename hw/{e1000_hw.h => net/e1000_regs.h} (100%)
 rename hw/{ => net}/ne2000.h (100%)
 rename hw/{ => net}/pcnet.h (100%)
 rename hw/{dec_pci.h => pci/host-dec.h} (100%)
 rename hw/{ => pci}/ioh3420.h (100%)
 rename hw/{ => pci}/xio3130_downstream.h (100%)
 rename hw/{ => pci}/xio3130_upstream.h (100%)
 rename hw/{ => ppc}/ppc405.h (100%)
 rename hw/{ => scsi}/mfi.h (100%)
 rename hw/{ => scsi}/srp.h (100%)
 rename hw/{ppc-viosrp.h => scsi/viosrp.h} (100%)
 rename hw/{ => sd}/sdhci.h (100%)
 rename hw/{ => sh4}/sh7750_regnames.h (100%)
 rename hw/{ => sh4}/sh7750_regs.h (100%)
 rename hw/{ => usb}/ccid.h (100%)
 rename hw/{ => virtio}/virtio-pci.h (100%)
 rename hw/{ => xen}/xen-host-pci-device.h (100%)
 rename hw/{ => xen}/xen_pt.h (99%)
 rename hw/{ => xtensa}/xtensa_bootparam.h (100%)

diff --git a/hw/arm/collie.c b/hw/arm/collie.c
index 76eda8e..5420bb4 100644
--- a/hw/arm/collie.c
+++ b/hw/arm/collie.c
@@ -12,7 +12,7 @@
 #include "hw/sysbus.h"
 #include "hw/boards.h"
 #include "hw/arm/devices.h"
-#include "hw/strongarm.h"
+#include "strongarm.h"
 #include "hw/arm.h"
 #include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
index 0e5262d..5873a3c 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -27,7 +27,7 @@
  *  GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/sysbus.h"
-#include "hw/strongarm.h"
+#include "strongarm.h"
 #include "qemu/error-report.h"
 #include "hw/arm.h"
 #include "char/char.h"
diff --git a/hw/strongarm.h b/hw/arm/strongarm.h
similarity index 100%
rename from hw/strongarm.h
rename to hw/arm/strongarm.h
diff --git a/hw/audio/adlib.c b/hw/audio/adlib.c
index 133c0ff..4a58e6e 100644
--- a/hw/audio/adlib.c
+++ b/hw/audio/adlib.c
@@ -47,7 +47,7 @@
 void YMF262UpdateOneQEMU (int which, INT16 *dst, int length);
 #define SHIFT 2
 #else
-#include "hw/fmopl.h"
+#include "fmopl.h"
 #define SHIFT 1
 #endif
 
diff --git a/hw/audio/fmopl.c b/hw/audio/fmopl.c
index e50ba6c..f0a0234 100644
--- a/hw/audio/fmopl.c
+++ b/hw/audio/fmopl.c
@@ -39,7 +39,7 @@
 #include <stdarg.h>
 #include <math.h>
 //#include "driver.h"		/* use M.A.M.E. */
-#include "hw/fmopl.h"
+#include "fmopl.h"
 
 #ifndef PI
 #define PI 3.14159265358979323846
diff --git a/hw/fmopl.h b/hw/audio/fmopl.h
similarity index 100%
rename from hw/fmopl.h
rename to hw/audio/fmopl.h
diff --git a/hw/audio/gus.c b/hw/audio/gus.c
index e44704b..0604d6e 100644
--- a/hw/audio/gus.c
+++ b/hw/audio/gus.c
@@ -25,8 +25,8 @@
 #include "hw/audio/audio.h"
 #include "audio/audio.h"
 #include "hw/isa/isa.h"
-#include "hw/gusemu.h"
-#include "hw/gustate.h"
+#include "gusemu.h"
+#include "gustate.h"
 
 #define dolog(...) AUD_log ("audio", __VA_ARGS__)
 #ifdef DEBUG
diff --git a/hw/gusemu.h b/hw/audio/gusemu.h
similarity index 100%
rename from hw/gusemu.h
rename to hw/audio/gusemu.h
diff --git a/hw/audio/gusemu_hal.c b/hw/audio/gusemu_hal.c
index 0eee617..6096690 100644
--- a/hw/audio/gusemu_hal.c
+++ b/hw/audio/gusemu_hal.c
@@ -26,8 +26,8 @@
  * TODO: check mixer: see 7.20 of sdk for panning pos (applies to all gus models?)?
  */
 
-#include "hw/gustate.h"
-#include "hw/gusemu.h"
+#include "gustate.h"
+#include "gusemu.h"
 
 #define GUSregb(position) (*            (gusptr+(position)))
 #define GUSregw(position) (*(GUSword *) (gusptr+(position)))
diff --git a/hw/audio/gusemu_mixer.c b/hw/audio/gusemu_mixer.c
index 816c58a..6d8d9ce 100644
--- a/hw/audio/gusemu_mixer.c
+++ b/hw/audio/gusemu_mixer.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw/gusemu.h"
-#include "hw/gustate.h"
+#include "gusemu.h"
+#include "gustate.h"
 
 #define GUSregb(position)  (*            (gusptr+(position)))
 #define GUSregw(position)  (*(GUSword *) (gusptr+(position)))
diff --git a/hw/gustate.h b/hw/audio/gustate.h
similarity index 100%
rename from hw/gustate.h
rename to hw/audio/gustate.h
diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c
index 6bdd820..362d8c0 100644
--- a/hw/audio/hda-codec.c
+++ b/hw/audio/hda-codec.c
@@ -19,8 +19,8 @@
 
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
-#include "hw/intel-hda.h"
-#include "hw/intel-hda-defs.h"
+#include "intel-hda.h"
+#include "intel-hda-defs.h"
 #include "audio/audio.h"
 
 /* -------------------------------------------------------------------------- */
diff --git a/hw/intel-hda-defs.h b/hw/audio/intel-hda-defs.h
similarity index 100%
rename from hw/intel-hda-defs.h
rename to hw/audio/intel-hda-defs.h
diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c
index 68201cd..3d8077a 100644
--- a/hw/audio/intel-hda.c
+++ b/hw/audio/intel-hda.c
@@ -22,8 +22,8 @@
 #include "hw/pci/msi.h"
 #include "qemu/timer.h"
 #include "hw/audio/audio.h"
-#include "hw/intel-hda.h"
-#include "hw/intel-hda-defs.h"
+#include "intel-hda.h"
+#include "intel-hda-defs.h"
 #include "sysemu/dma.h"
 
 /* --------------------------------------------------------------------- */
diff --git a/hw/intel-hda.h b/hw/audio/intel-hda.h
similarity index 100%
rename from hw/intel-hda.h
rename to hw/audio/intel-hda.h
diff --git a/hw/audio/lm4549.c b/hw/audio/lm4549.c
index 67335cb..d75f7ec 100644
--- a/hw/audio/lm4549.c
+++ b/hw/audio/lm4549.c
@@ -15,7 +15,7 @@
 
 #include "hw/hw.h"
 #include "audio/audio.h"
-#include "hw/lm4549.h"
+#include "lm4549.h"
 
 #if 0
 #define LM4549_DEBUG  1
diff --git a/hw/lm4549.h b/hw/audio/lm4549.h
similarity index 100%
rename from hw/lm4549.h
rename to hw/audio/lm4549.h
diff --git a/hw/audio/pl041.c b/hw/audio/pl041.c
index 92dddc2..653ab4f 100644
--- a/hw/audio/pl041.c
+++ b/hw/audio/pl041.c
@@ -22,8 +22,8 @@
 
 #include "hw/sysbus.h"
 
-#include "hw/pl041.h"
-#include "hw/lm4549.h"
+#include "pl041.h"
+#include "lm4549.h"
 
 #if 0
 #define PL041_DEBUG_LEVEL 1
diff --git a/hw/pl041.h b/hw/audio/pl041.h
similarity index 100%
rename from hw/pl041.h
rename to hw/audio/pl041.h
diff --git a/hw/xen_blkif.h b/hw/block/xen_blkif.h
similarity index 100%
rename from hw/xen_blkif.h
rename to hw/block/xen_blkif.h
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
index e341168..1104b1a 100644
--- a/hw/block/xen_disk.c
+++ b/hw/block/xen_disk.c
@@ -37,7 +37,7 @@
 
 #include "hw/hw.h"
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_blkif.h"
+#include "xen_blkif.h"
 #include "sysemu/blockdev.h"
 
 /* ------------------------------------------------------------- */
diff --git a/hw/char/ipack.c b/hw/char/ipack.c
index b1f46c1..e15540d 100644
--- a/hw/char/ipack.c
+++ b/hw/char/ipack.c
@@ -8,7 +8,7 @@
  * later version.
  */
 
-#include "hw/ipack.h"
+#include "ipack.h"
 
 IPackDevice *ipack_device_find(IPackBus *bus, int32_t slot)
 {
diff --git a/hw/ipack.h b/hw/char/ipack.h
similarity index 100%
rename from hw/ipack.h
rename to hw/char/ipack.h
diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
index 1da6a99..c1e3b19 100644
--- a/hw/char/ipoctal232.c
+++ b/hw/char/ipoctal232.c
@@ -8,7 +8,7 @@
  * later version.
  */
 
-#include "hw/ipack.h"
+#include "ipack.h"
 #include "qemu/bitops.h"
 #include "char/char.h"
 
diff --git a/hw/char/tpci200.c b/hw/char/tpci200.c
index e3408ef..0170602 100644
--- a/hw/char/tpci200.c
+++ b/hw/char/tpci200.c
@@ -8,7 +8,7 @@
  * later version.
  */
 
-#include "hw/ipack.h"
+#include "ipack.h"
 #include "hw/pci/pci.h"
 #include "qemu/bitops.h"
 #include <stdio.h>
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 2f5072d..7507914 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -46,7 +46,7 @@
 #include "disas/disas.h"
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
-#include "hw/uboot_image.h"
+#include "uboot_image.h"
 #include "hw/loader.h"
 #include "hw/nvram/fw_cfg.h"
 #include "exec/memory.h"
diff --git a/hw/uboot_image.h b/hw/core/uboot_image.h
similarity index 100%
rename from hw/uboot_image.h
rename to hw/core/uboot_image.h
diff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c
index 00daceb..7475671 100644
--- a/hw/cris/axis_dev88.c
+++ b/hw/cris/axis_dev88.c
@@ -29,7 +29,7 @@
 #include "hw/cris/etraxfs.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/cris-boot.h"
+#include "boot.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/cris/boot.c b/hw/cris/boot.c
index c330e22..622f353 100644
--- a/hw/cris/boot.c
+++ b/hw/cris/boot.c
@@ -25,7 +25,7 @@
 #include "hw/hw.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/cris-boot.h"
+#include "boot.h"
 
 static void main_cpu_reset(void *opaque)
 {
diff --git a/hw/cris-boot.h b/hw/cris/boot.h
similarity index 100%
rename from hw/cris-boot.h
rename to hw/cris/boot.h
diff --git a/hw/display/blizzard.c b/hw/display/blizzard.c
index bdb0b15..175c5cd 100644
--- a/hw/display/blizzard.c
+++ b/hw/display/blizzard.c
@@ -21,7 +21,7 @@
 #include "qemu-common.h"
 #include "ui/console.h"
 #include "hw/arm/devices.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "ui/pixel_ops.h"
 
 typedef void (*blizzard_fn_t)(uint8_t *, const uint8_t *, unsigned int);
@@ -946,15 +946,15 @@ static void blizzard_screen_dump(void *opaque, const char *filename,
 }
 
 #define DEPTH 8
-#include "hw/blizzard_template.h"
+#include "blizzard_template.h"
 #define DEPTH 15
-#include "hw/blizzard_template.h"
+#include "blizzard_template.h"
 #define DEPTH 16
-#include "hw/blizzard_template.h"
+#include "blizzard_template.h"
 #define DEPTH 24
-#include "hw/blizzard_template.h"
+#include "blizzard_template.h"
 #define DEPTH 32
-#include "hw/blizzard_template.h"
+#include "blizzard_template.h"
 
 void *s1d13745_init(qemu_irq gpio_int)
 {
diff --git a/hw/blizzard_template.h b/hw/display/blizzard_template.h
similarity index 100%
rename from hw/blizzard_template.h
rename to hw/display/blizzard_template.h
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 7a4d634..bf2181a 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -29,7 +29,7 @@
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
 #include "ui/console.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "hw/loader.h"
 
 /*
@@ -288,63 +288,63 @@ static void cirrus_bitblt_fill_nop(CirrusVGAState *s,
 
 #define ROP_NAME 0
 #define ROP_FN(d, s) 0
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_and_dst
 #define ROP_FN(d, s) (s) & (d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_and_notdst
 #define ROP_FN(d, s) (s) & (~(d))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notdst
 #define ROP_FN(d, s) ~(d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src
 #define ROP_FN(d, s) s
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME 1
 #define ROP_FN(d, s) ~0
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_and_dst
 #define ROP_FN(d, s) (~(s)) & (d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_xor_dst
 #define ROP_FN(d, s) (s) ^ (d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_or_dst
 #define ROP_FN(d, s) (s) | (d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_or_notdst
 #define ROP_FN(d, s) (~(s)) | (~(d))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_notxor_dst
 #define ROP_FN(d, s) ~((s) ^ (d))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME src_or_notdst
 #define ROP_FN(d, s) (s) | (~(d))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc
 #define ROP_FN(d, s) (~(s))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_or_dst
 #define ROP_FN(d, s) (~(s)) | (d)
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_and_notdst
 #define ROP_FN(d, s) (~(s)) & (~(d))
-#include "hw/cirrus_vga_rop.h"
+#include "cirrus_vga_rop.h"
 
 static const cirrus_bitblt_rop_t cirrus_fwd_rop[16] = {
     cirrus_bitblt_rop_fwd_0,
@@ -2166,13 +2166,13 @@ static void cirrus_cursor_invalidate(VGACommonState *s1)
 }
 
 #define DEPTH 8
-#include "hw/cirrus_vga_template.h"
+#include "cirrus_vga_template.h"
 
 #define DEPTH 16
-#include "hw/cirrus_vga_template.h"
+#include "cirrus_vga_template.h"
 
 #define DEPTH 32
-#include "hw/cirrus_vga_template.h"
+#include "cirrus_vga_template.h"
 
 static void cirrus_cursor_draw_line(VGACommonState *s1, uint8_t *d1, int scr_y)
 {
diff --git a/hw/cirrus_vga_rop.h b/hw/display/cirrus_vga_rop.h
similarity index 97%
rename from hw/cirrus_vga_rop.h
rename to hw/display/cirrus_vga_rop.h
index 894610c..9c7bb09 100644
--- a/hw/cirrus_vga_rop.h
+++ b/hw/display/cirrus_vga_rop.h
@@ -191,16 +191,16 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
 }
 
 #define DEPTH 8
-#include "hw/cirrus_vga_rop2.h"
+#include "cirrus_vga_rop2.h"
 
 #define DEPTH 16
-#include "hw/cirrus_vga_rop2.h"
+#include "cirrus_vga_rop2.h"
 
 #define DEPTH 24
-#include "hw/cirrus_vga_rop2.h"
+#include "cirrus_vga_rop2.h"
 
 #define DEPTH 32
-#include "hw/cirrus_vga_rop2.h"
+#include "cirrus_vga_rop2.h"
 
 #undef ROP_NAME
 #undef ROP_OP
diff --git a/hw/cirrus_vga_rop2.h b/hw/display/cirrus_vga_rop2.h
similarity index 100%
rename from hw/cirrus_vga_rop2.h
rename to hw/display/cirrus_vga_rop2.h
diff --git a/hw/cirrus_vga_template.h b/hw/display/cirrus_vga_template.h
similarity index 100%
rename from hw/cirrus_vga_template.h
rename to hw/display/cirrus_vga_template.h
diff --git a/hw/display/framebuffer.c b/hw/display/framebuffer.c
index 7326a98..6be31db 100644
--- a/hw/display/framebuffer.c
+++ b/hw/display/framebuffer.c
@@ -19,7 +19,7 @@
 
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "hw/framebuffer.h"
+#include "framebuffer.h"
 
 /* Render an image from a shared memory framebuffer.  */
    
diff --git a/hw/framebuffer.h b/hw/display/framebuffer.h
similarity index 100%
rename from hw/framebuffer.h
rename to hw/display/framebuffer.h
diff --git a/hw/display/milkymist-vgafb.c b/hw/display/milkymist-vgafb.c
index 98762ec..3219041 100644
--- a/hw/display/milkymist-vgafb.c
+++ b/hw/display/milkymist-vgafb.c
@@ -26,20 +26,20 @@
 #include "hw/sysbus.h"
 #include "trace.h"
 #include "ui/console.h"
-#include "hw/framebuffer.h"
+#include "framebuffer.h"
 #include "ui/pixel_ops.h"
 #include "qemu/error-report.h"
 
 #define BITS 8
-#include "hw/milkymist-vgafb_template.h"
+#include "milkymist-vgafb_template.h"
 #define BITS 15
-#include "hw/milkymist-vgafb_template.h"
+#include "milkymist-vgafb_template.h"
 #define BITS 16
-#include "hw/milkymist-vgafb_template.h"
+#include "milkymist-vgafb_template.h"
 #define BITS 24
-#include "hw/milkymist-vgafb_template.h"
+#include "milkymist-vgafb_template.h"
 #define BITS 32
-#include "hw/milkymist-vgafb_template.h"
+#include "milkymist-vgafb_template.h"
 
 enum {
     R_CTRL = 0,
diff --git a/hw/milkymist-vgafb_template.h b/hw/display/milkymist-vgafb_template.h
similarity index 100%
rename from hw/milkymist-vgafb_template.h
rename to hw/display/milkymist-vgafb_template.h
diff --git a/hw/omap_lcd_template.h b/hw/display/omap_lcd_template.h
similarity index 100%
rename from hw/omap_lcd_template.h
rename to hw/display/omap_lcd_template.h
diff --git a/hw/display/omap_lcdc.c b/hw/display/omap_lcdc.c
index 4048cc1..be7e9c0 100644
--- a/hw/display/omap_lcdc.c
+++ b/hw/display/omap_lcdc.c
@@ -19,7 +19,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "hw/arm/omap.h"
-#include "hw/framebuffer.h"
+#include "framebuffer.h"
 #include "ui/pixel_ops.h"
 
 struct omap_lcd_panel_s {
@@ -70,13 +70,13 @@ static void omap_lcd_interrupts(struct omap_lcd_panel_s *s)
 #define draw_line_func drawfn
 
 #define DEPTH 8
-#include "hw/omap_lcd_template.h"
+#include "omap_lcd_template.h"
 #define DEPTH 15
-#include "hw/omap_lcd_template.h"
+#include "omap_lcd_template.h"
 #define DEPTH 16
-#include "hw/omap_lcd_template.h"
+#include "omap_lcd_template.h"
 #define DEPTH 32
-#include "hw/omap_lcd_template.h"
+#include "omap_lcd_template.h"
 
 static draw_line_func draw_line_table2[33] = {
     [0 ... 32]	= NULL,
diff --git a/hw/display/pl110.c b/hw/display/pl110.c
index fbef675..295434e 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -9,7 +9,7 @@
 
 #include "hw/sysbus.h"
 #include "ui/console.h"
-#include "hw/framebuffer.h"
+#include "framebuffer.h"
 #include "ui/pixel_ops.h"
 
 #define PL110_CR_EN   0x001
@@ -111,15 +111,15 @@ static const unsigned char *idregs[] = {
 };
 
 #define BITS 8
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define BITS 15
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define BITS 16
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define BITS 24
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define BITS 32
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 
 static int pl110_enabled(pl110_state *s)
 {
diff --git a/hw/pl110_template.h b/hw/display/pl110_template.h
similarity index 98%
rename from hw/pl110_template.h
rename to hw/display/pl110_template.h
index ec4bfd6..e738e4a 100644
--- a/hw/pl110_template.h
+++ b/hw/display/pl110_template.h
@@ -27,20 +27,20 @@
 #undef RGB
 #define BORDER bgr
 #define ORDER 0
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define ORDER 1
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define ORDER 2
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #undef BORDER
 #define RGB
 #define BORDER rgb
 #define ORDER 0
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define ORDER 1
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #define ORDER 2
-#include "hw/pl110_template.h"
+#include "pl110_template.h"
 #undef BORDER
 
 static drawfn glue(pl110_draw_fn_,BITS)[48] =
diff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c
index ee59bc2..c9bd42e 100644
--- a/hw/display/pxa2xx_lcd.c
+++ b/hw/display/pxa2xx_lcd.c
@@ -16,7 +16,7 @@
 #include "ui/pixel_ops.h"
 /* FIXME: For graphic_rotate. Should probably be done in common code.  */
 #include "sysemu/sysemu.h"
-#include "hw/framebuffer.h"
+#include "framebuffer.h"
 
 struct DMAChannel {
     uint32_t branch;
@@ -981,15 +981,15 @@ static const VMStateDescription vmstate_pxa2xx_lcdc = {
 };
 
 #define BITS 8
-#include "hw/pxa2xx_template.h"
+#include "pxa2xx_template.h"
 #define BITS 15
-#include "hw/pxa2xx_template.h"
+#include "pxa2xx_template.h"
 #define BITS 16
-#include "hw/pxa2xx_template.h"
+#include "pxa2xx_template.h"
 #define BITS 24
-#include "hw/pxa2xx_template.h"
+#include "pxa2xx_template.h"
 #define BITS 32
-#include "hw/pxa2xx_template.h"
+#include "pxa2xx_template.h"
 
 PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem,
                                  hwaddr base, qemu_irq irq)
diff --git a/hw/pxa2xx_template.h b/hw/display/pxa2xx_template.h
similarity index 100%
rename from hw/pxa2xx_template.h
rename to hw/display/pxa2xx_template.h
diff --git a/hw/display/qxl-logger.c b/hw/display/qxl-logger.c
index 84f9aa1..3cd85d9 100644
--- a/hw/display/qxl-logger.c
+++ b/hw/display/qxl-logger.c
@@ -20,7 +20,7 @@
  */
 
 #include "qemu/timer.h"
-#include "hw/qxl.h"
+#include "qxl.h"
 
 static const char *qxl_type[] = {
     [ QXL_CMD_NOP ]     = "nop",
diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
index 8cd9be4..f511a62 100644
--- a/hw/display/qxl-render.c
+++ b/hw/display/qxl-render.c
@@ -19,7 +19,7 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw/qxl.h"
+#include "qxl.h"
 
 static void qxl_blit(PCIQXLDevice *qxl, QXLRect *rect)
 {
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index b66b414..930b7cf 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -27,7 +27,7 @@
 #include "sysemu/sysemu.h"
 #include "trace.h"
 
-#include "hw/qxl.h"
+#include "qxl.h"
 
 /*
  * NOTE: SPICE_RING_PROD_ITEM accesses memory on the pci bar and as
diff --git a/hw/qxl.h b/hw/display/qxl.h
similarity index 99%
rename from hw/qxl.h
rename to hw/display/qxl.h
index 36f1a25..8e9b0c2 100644
--- a/hw/qxl.h
+++ b/hw/display/qxl.h
@@ -6,7 +6,7 @@
 #include "ui/console.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "qemu/thread.h"
 
 #include "ui/qemu-spice.h"
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index d9fcead..6b660ac 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -1171,28 +1171,28 @@ typedef void draw_hwc_line_func(SM501State * s, int crt, uint8_t * palette,
                                 int c_y, uint8_t *d, int width);
 
 #define DEPTH 8
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define DEPTH 15
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 15
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define DEPTH 16
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 16
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define DEPTH 32
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 32
-#include "hw/sm501_template.h"
+#include "sm501_template.h"
 
 static draw_line_func * draw_line8_funcs[] = {
     draw_line8_8,
diff --git a/hw/sm501_template.h b/hw/display/sm501_template.h
similarity index 100%
rename from hw/sm501_template.h
rename to hw/display/sm501_template.h
diff --git a/hw/display/tc6393xb.c b/hw/display/tc6393xb.c
index 2d5fa89..e252ce9 100644
--- a/hw/display/tc6393xb.c
+++ b/hw/display/tc6393xb.c
@@ -421,15 +421,15 @@ static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t value)
 }
 
 #define BITS 8
-#include "hw/tc6393xb_template.h"
+#include "tc6393xb_template.h"
 #define BITS 15
-#include "hw/tc6393xb_template.h"
+#include "tc6393xb_template.h"
 #define BITS 16
-#include "hw/tc6393xb_template.h"
+#include "tc6393xb_template.h"
 #define BITS 24
-#include "hw/tc6393xb_template.h"
+#include "tc6393xb_template.h"
 #define BITS 32
-#include "hw/tc6393xb_template.h"
+#include "tc6393xb_template.h"
 
 static void tc6393xb_draw_graphic(TC6393xbState *s, int full_update)
 {
diff --git a/hw/tc6393xb_template.h b/hw/display/tc6393xb_template.h
similarity index 100%
rename from hw/tc6393xb_template.h
rename to hw/display/tc6393xb_template.h
diff --git a/hw/display/vga-isa-mm.c b/hw/display/vga-isa-mm.c
index 3b08720..1c50070 100644
--- a/hw/display/vga-isa-mm.c
+++ b/hw/display/vga-isa-mm.c
@@ -24,7 +24,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "hw/i386/pc.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
 
diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c
index 89d7fa6..90959eb 100644
--- a/hw/display/vga-isa.c
+++ b/hw/display/vga-isa.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "hw/i386/pc.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
 #include "hw/loader.h"
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index 05fa9bc..a9c69b6 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "hw/pci/pci.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
 #include "hw/loader.h"
diff --git a/hw/display/vga.c b/hw/display/vga.c
index dc31fd5..c1b67bb 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/vga.h"
+#include "vga.h"
 #include "ui/console.h"
 #include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
-#include "hw/vga_int.h"
+#include "vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
 #include "hw/xen/xen.h"
@@ -986,28 +986,28 @@ typedef void vga_draw_line_func(VGACommonState *s1, uint8_t *d,
                                 const uint8_t *s, int width);
 
 #define DEPTH 8
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define DEPTH 15
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 15
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define DEPTH 16
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 16
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define DEPTH 32
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 32
-#include "hw/vga_template.h"
+#include "vga_template.h"
 
 static unsigned int rgb_to_pixel8_dup(unsigned int r, unsigned int g, unsigned b)
 {
diff --git a/hw/vga.h b/hw/display/vga.h
similarity index 100%
rename from hw/vga.h
rename to hw/display/vga.h
diff --git a/hw/vga_int.h b/hw/display/vga_int.h
similarity index 100%
rename from hw/vga_int.h
rename to hw/display/vga_int.h
diff --git a/hw/vga_template.h b/hw/display/vga_template.h
similarity index 100%
rename from hw/vga_template.h
rename to hw/display/vga_template.h
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index 5b9ce8f..bcad47a 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -31,7 +31,7 @@
 #define HW_FILL_ACCEL
 #define HW_MOUSE_ACCEL
 
-#include "hw/vga_int.h"
+#include "vga_int.h"
 
 /* See http://vmware-svga.sf.net/ for some documentation on VMWare SVGA */
 
diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
index b8e6d3a..854b8e1 100644
--- a/hw/i2c/bitbang_i2c.c
+++ b/hw/i2c/bitbang_i2c.c
@@ -10,7 +10,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "hw/hw.h"
-#include "hw/bitbang_i2c.h"
+#include "bitbang_i2c.h"
 #include "hw/sysbus.h"
 
 //#define DEBUG_BITBANG_I2C
diff --git a/hw/bitbang_i2c.h b/hw/i2c/bitbang_i2c.h
similarity index 100%
rename from hw/bitbang_i2c.h
rename to hw/i2c/bitbang_i2c.h
diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c
index d0444ae..e09c83d 100644
--- a/hw/i2c/versatile_i2c.c
+++ b/hw/i2c/versatile_i2c.c
@@ -22,7 +22,7 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/bitbang_i2c.h"
+#include "bitbang_i2c.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index c7f01df..d696507 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -24,7 +24,7 @@
 
 #include "hw/hw.h"
 #include "hw/nvram/fw_cfg.h"
-#include "hw/multiboot.h"
+#include "multiboot.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/multiboot.h b/hw/i386/multiboot.h
similarity index 100%
rename from hw/multiboot.h
rename to hw/i386/multiboot.h
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index cb8623c..a63d2d8 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -34,7 +34,7 @@
 #include "hw/i386/smbios.h"
 #include "hw/loader.h"
 #include "elf.h"
-#include "hw/multiboot.h"
+#include "multiboot.h"
 #include "hw/timer/mc146818rtc.h"
 #include "hw/timer/i8254.h"
 #include "hw/audio/pcspk.h"
diff --git a/hw/i386/xen_domainbuild.c b/hw/i386/xen_domainbuild.c
index ed90b4b..4e2cf95 100644
--- a/hw/i386/xen_domainbuild.c
+++ b/hw/i386/xen_domainbuild.c
@@ -1,6 +1,6 @@
 #include <signal.h>
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_domainbuild.h"
+#include "xen_domainbuild.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
 
diff --git a/hw/xen_domainbuild.h b/hw/i386/xen_domainbuild.h
similarity index 100%
rename from hw/xen_domainbuild.h
rename to hw/i386/xen_domainbuild.h
diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c
index fdd9374..f829a52 100644
--- a/hw/i386/xen_machine_pv.c
+++ b/hw/i386/xen_machine_pv.c
@@ -26,7 +26,7 @@
 #include "hw/i386/pc.h"
 #include "hw/boards.h"
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_domainbuild.h"
+#include "xen_domainbuild.h"
 #include "sysemu/blockdev.h"
 
 static void xen_init_pv(QEMUMachineInitArgs *args)
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
index bcb072b..bae6572 100644
--- a/hw/intc/arm_gic.c
+++ b/hw/intc/arm_gic.c
@@ -19,7 +19,7 @@
  */
 
 #include "hw/sysbus.h"
-#include "hw/arm_gic_internal.h"
+#include "gic_internal.h"
 
 //#define DEBUG_GIC
 
diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
index f2dc8bf..f37d360 100644
--- a/hw/intc/arm_gic_common.c
+++ b/hw/intc/arm_gic_common.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw/arm_gic_internal.h"
+#include "gic_internal.h"
 
 static void gic_save(QEMUFile *f, void *opaque)
 {
diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
index 39d727e..c75891f 100644
--- a/hw/intc/armv7m_nvic.c
+++ b/hw/intc/armv7m_nvic.c
@@ -14,7 +14,7 @@
 #include "qemu/timer.h"
 #include "hw/arm.h"
 #include "exec/address-spaces.h"
-#include "hw/arm_gic_internal.h"
+#include "gic_internal.h"
 
 typedef struct {
     GICState gic;
diff --git a/hw/arm_gic_internal.h b/hw/intc/gic_internal.h
similarity index 100%
rename from hw/arm_gic_internal.h
rename to hw/intc/gic_internal.h
diff --git a/hw/kvm/arm_gic.c b/hw/kvm/arm_gic.c
index 22b40b4..b756456 100644
--- a/hw/kvm/arm_gic.c
+++ b/hw/kvm/arm_gic.c
@@ -21,7 +21,7 @@
 #include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 #include "kvm_arm.h"
-#include "hw/arm_gic_internal.h"
+#include "gic_internal.h"
 
 #define TYPE_KVM_ARM_GIC "kvm-arm-gic"
 #define KVM_ARM_GIC(obj) \
diff --git a/hw/lm32.h b/hw/lm32/lm32.h
similarity index 100%
rename from hw/lm32.h
rename to hw/lm32/lm32.h
diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c
index b22c94f..6555a97 100644
--- a/hw/lm32/lm32_boards.c
+++ b/hw/lm32/lm32_boards.c
@@ -25,8 +25,8 @@
 #include "hw/loader.h"
 #include "sysemu/blockdev.h"
 #include "elf.h"
-#include "hw/lm32_hwsetup.h"
-#include "hw/lm32.h"
+#include "lm32_hwsetup.h"
+#include "lm32.h"
 #include "exec/address-spaces.h"
 
 typedef struct {
diff --git a/hw/lm32_hwsetup.h b/hw/lm32/lm32_hwsetup.h
similarity index 100%
rename from hw/lm32_hwsetup.h
rename to hw/lm32/lm32_hwsetup.h
diff --git a/hw/milkymist-hw.h b/hw/lm32/milkymist-hw.h
similarity index 100%
rename from hw/milkymist-hw.h
rename to hw/lm32/milkymist-hw.h
diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c
index c3724de..d02ca0c 100644
--- a/hw/lm32/milkymist.c
+++ b/hw/lm32/milkymist.c
@@ -26,8 +26,8 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/blockdev.h"
-#include "hw/milkymist-hw.h"
-#include "hw/lm32.h"
+#include "milkymist-hw.h"
+#include "lm32.h"
 #include "exec/address-spaces.h"
 
 #define BIOS_FILENAME    "mmone-bios.bin"
diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
index e13b3e1..23cb11d 100644
--- a/hw/microblaze/boot.c
+++ b/hw/microblaze/boot.c
@@ -31,7 +31,7 @@
 #include "hw/loader.h"
 #include "elf.h"
 
-#include "hw/microblaze_boot.h"
+#include "boot.h"
 
 static struct
 {
diff --git a/hw/microblaze_boot.h b/hw/microblaze/boot.h
similarity index 100%
rename from hw/microblaze_boot.h
rename to hw/microblaze/boot.h
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 813ef8c..ee6e366 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -38,8 +38,8 @@
 #include "exec/address-spaces.h"
 #include "hw/ssi.h"
 
-#include "hw/microblaze_boot.h"
-#include "hw/microblaze_pic_cpu.h"
+#include "boot.h"
+#include "pic_cpu.h"
 
 #include "hw/stream.h"
 
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index b386403..eedd60e 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -34,8 +34,8 @@
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
-#include "hw/microblaze_boot.h"
-#include "hw/microblaze_pic_cpu.h"
+#include "boot.h"
+#include "pic_cpu.h"
 
 #define LMB_BRAM_SIZE  (128 * 1024)
 #define FLASH_SIZE     (16 * 1024 * 1024)
diff --git a/hw/microblaze/pic_cpu.c b/hw/microblaze/pic_cpu.c
index 6248de9..16902f7 100644
--- a/hw/microblaze/pic_cpu.c
+++ b/hw/microblaze/pic_cpu.c
@@ -23,7 +23,7 @@
  */
 
 #include "hw/hw.h"
-#include "hw/microblaze_pic_cpu.h"
+#include "pic_cpu.h"
 
 #define D(x)
 
diff --git a/hw/microblaze_pic_cpu.h b/hw/microblaze/pic_cpu.h
similarity index 100%
rename from hw/microblaze_pic_cpu.h
rename to hw/microblaze/pic_cpu.h
diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index 21a27a6..155e03d 100644
--- a/hw/misc/tmp105.c
+++ b/hw/misc/tmp105.c
@@ -20,7 +20,7 @@
 
 #include "hw/hw.h"
 #include "hw/i2c/i2c.h"
-#include "hw/tmp105.h"
+#include "tmp105.h"
 #include "qapi/visitor.h"
 
 static void tmp105_interrupt_update(TMP105State *s)
diff --git a/hw/tmp105.h b/hw/misc/tmp105.h
similarity index 100%
rename from hw/tmp105.h
rename to hw/misc/tmp105.h
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index 80b6ee3..7fc5317 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -33,7 +33,7 @@
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
 
-#include "hw/e1000_hw.h"
+#include "e1000_regs.h"
 
 #define E1000_DEBUG
 
diff --git a/hw/e1000_hw.h b/hw/net/e1000_regs.h
similarity index 100%
rename from hw/e1000_hw.h
rename to hw/net/e1000_regs.h
diff --git a/hw/net/lance.c b/hw/net/lance.c
index 0f4e808..187497c 100644
--- a/hw/net/lance.c
+++ b/hw/net/lance.c
@@ -40,7 +40,7 @@
 #include "qemu/timer.h"
 #include "qemu/sockets.h"
 #include "hw/sparc/sun4m.h"
-#include "hw/pcnet.h"
+#include "pcnet.h"
 #include "trace.h"
 
 typedef struct {
diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c
index e4c10db..a093aa8 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -26,7 +26,7 @@
 #include "hw/isa/isa.h"
 #include "hw/qdev.h"
 #include "net/net.h"
-#include "hw/ne2000.h"
+#include "ne2000.h"
 #include "exec/address-spaces.h"
 
 typedef struct ISANE2000State {
diff --git a/hw/net/ne2000.c b/hw/net/ne2000.c
index 7dadc1c..94d6110 100644
--- a/hw/net/ne2000.c
+++ b/hw/net/ne2000.c
@@ -24,7 +24,7 @@
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
-#include "hw/ne2000.h"
+#include "ne2000.h"
 #include "hw/loader.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/ne2000.h b/hw/net/ne2000.h
similarity index 100%
rename from hw/ne2000.h
rename to hw/net/ne2000.h
diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
index 55f80ca..e07f388 100644
--- a/hw/net/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
@@ -33,7 +33,7 @@
 #include "qemu/timer.h"
 #include "sysemu/dma.h"
 
-#include "hw/pcnet.h"
+#include "pcnet.h"
 
 //#define PCNET_DEBUG
 //#define PCNET_DEBUG_IO
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
index b0b462b..b606d2b 100644
--- a/hw/net/pcnet.c
+++ b/hw/net/pcnet.c
@@ -41,7 +41,7 @@
 #include "qemu/sockets.h"
 #include "sysemu/sysemu.h"
 
-#include "hw/pcnet.h"
+#include "pcnet.h"
 
 //#define PCNET_DEBUG
 //#define PCNET_DEBUG_IO
diff --git a/hw/pcnet.h b/hw/net/pcnet.h
similarity index 100%
rename from hw/pcnet.h
rename to hw/net/pcnet.h
diff --git a/hw/pci/host-dec.c b/hw/pci/host-dec.c
index 64a5092..62b483a 100644
--- a/hw/pci/host-dec.c
+++ b/hw/pci/host-dec.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 
-#include "hw/dec_pci.h"
+#include "host-dec.h"
 #include "hw/sysbus.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
diff --git a/hw/dec_pci.h b/hw/pci/host-dec.h
similarity index 100%
rename from hw/dec_pci.h
rename to hw/pci/host-dec.h
diff --git a/hw/pci/ioh3420.c b/hw/pci/ioh3420.c
index 43f8554..252cb98 100644
--- a/hw/pci/ioh3420.c
+++ b/hw/pci/ioh3420.c
@@ -23,7 +23,7 @@
 #include "hw/pci/pci_ids.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/pcie.h"
-#include "hw/ioh3420.h"
+#include "ioh3420.h"
 
 #define PCI_DEVICE_ID_IOH_EPORT         0x3420  /* D0:F0 express mode */
 #define PCI_DEVICE_ID_IOH_REV           0x2
diff --git a/hw/ioh3420.h b/hw/pci/ioh3420.h
similarity index 100%
rename from hw/ioh3420.h
rename to hw/pci/ioh3420.h
diff --git a/hw/pci/xio3130_downstream.c b/hw/pci/xio3130_downstream.c
index 4bccd0d..134d2f2 100644
--- a/hw/pci/xio3130_downstream.c
+++ b/hw/pci/xio3130_downstream.c
@@ -22,7 +22,7 @@
 #include "hw/pci/pci_ids.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/pcie.h"
-#include "hw/xio3130_downstream.h"
+#include "xio3130_downstream.h"
 
 #define PCI_DEVICE_ID_TI_XIO3130D       0x8233  /* downstream port */
 #define XIO3130_REVISION                0x1
diff --git a/hw/xio3130_downstream.h b/hw/pci/xio3130_downstream.h
similarity index 100%
rename from hw/xio3130_downstream.h
rename to hw/pci/xio3130_downstream.h
diff --git a/hw/pci/xio3130_upstream.c b/hw/pci/xio3130_upstream.c
index 82556aa..c02cecf 100644
--- a/hw/pci/xio3130_upstream.c
+++ b/hw/pci/xio3130_upstream.c
@@ -22,7 +22,7 @@
 #include "hw/pci/pci_ids.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/pcie.h"
-#include "hw/xio3130_upstream.h"
+#include "xio3130_upstream.h"
 
 #define PCI_DEVICE_ID_TI_XIO3130U       0x8232  /* upstream port */
 #define XIO3130_REVISION                0x2
diff --git a/hw/xio3130_upstream.h b/hw/pci/xio3130_upstream.h
similarity index 100%
rename from hw/xio3130_upstream.h
rename to hw/pci/xio3130_upstream.h
diff --git a/hw/ppc405.h b/hw/ppc/ppc405.h
similarity index 100%
rename from hw/ppc405.h
rename to hw/ppc/ppc405.h
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 18a29db..8e56b16 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -23,7 +23,7 @@
  */
 #include "hw/hw.h"
 #include "hw/ppc/ppc.h"
-#include "hw/ppc405.h"
+#include "ppc405.h"
 #include "hw/timer/m48t59.h"
 #include "hw/block/flash.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 82b8956..c6c909e 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -23,7 +23,7 @@
  */
 #include "hw/hw.h"
 #include "hw/ppc/ppc.h"
-#include "hw/ppc405.h"
+#include "ppc405.h"
 #include "hw/char/serial.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 48a0218..a55e717 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -25,7 +25,7 @@
 #include "exec/address-spaces.h"
 #include "hw/char/serial.h"
 #include "hw/ppc/ppc.h"
-#include "hw/ppc405.h"
+#include "ppc405.h"
 #include "sysemu/sysemu.h"
 #include "hw/sysbus.h"
 
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index db52649..92b4394 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -37,7 +37,7 @@
 
 #include "hw/ppc/ppc.h"
 #include "hw/ppc/ppc4xx.h"
-#include "hw/ppc405.h"
+#include "ppc405.h"
 
 #include "sysemu/blockdev.h"
 #include "hw/xilinx.h"
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
index f46f800..14b0552 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -27,7 +27,7 @@
 #include "block/scsi.h"
 #include "trace.h"
 
-#include "hw/mfi.h"
+#include "mfi.h"
 
 #define MEGASAS_VERSION "1.70"
 #define MEGASAS_MAX_FRAMES 2048         /* Firmware limit at 65535 */
diff --git a/hw/mfi.h b/hw/scsi/mfi.h
similarity index 100%
rename from hw/mfi.h
rename to hw/scsi/mfi.h
diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index e92b09a..999a463 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -34,11 +34,11 @@
 #include "hw/hw.h"
 #include "hw/scsi/scsi.h"
 #include "block/scsi.h"
-#include "hw/srp.h"
+#include "srp.h"
 #include "hw/qdev.h"
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_vio.h"
-#include "hw/ppc-viosrp.h"
+#include "viosrp.h"
 
 #include <libfdt.h>
 
diff --git a/hw/srp.h b/hw/scsi/srp.h
similarity index 100%
rename from hw/srp.h
rename to hw/scsi/srp.h
diff --git a/hw/ppc-viosrp.h b/hw/scsi/viosrp.h
similarity index 100%
rename from hw/ppc-viosrp.h
rename to hw/scsi/viosrp.h
diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
index 93feada..b8e1d23 100644
--- a/hw/sd/sdhci.c
+++ b/hw/sd/sdhci.c
@@ -29,7 +29,7 @@
 #include "block/block_int.h"
 #include "qemu/bitops.h"
 
-#include "hw/sdhci.h"
+#include "sdhci.h"
 
 /* host controller debug messages */
 #ifndef SDHC_DEBUG
diff --git a/hw/sdhci.h b/hw/sd/sdhci.h
similarity index 100%
rename from hw/sdhci.h
rename to hw/sd/sdhci.h
diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
index bcc326a..256a58c 100644
--- a/hw/sh4/r2d.c
+++ b/hw/sh4/r2d.c
@@ -31,7 +31,7 @@
 #include "hw/boards.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
-#include "hw/sh7750_regs.h"
+#include "sh7750_regs.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "hw/usb.h"
diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c
index d72708e..2218b9c 100644
--- a/hw/sh4/sh7750.c
+++ b/hw/sh4/sh7750.c
@@ -26,8 +26,8 @@
 #include "hw/hw.h"
 #include "hw/sh4/sh.h"
 #include "sysemu/sysemu.h"
-#include "hw/sh7750_regs.h"
-#include "hw/sh7750_regnames.h"
+#include "sh7750_regs.h"
+#include "sh7750_regnames.h"
 #include "hw/sh4/sh_intc.h"
 #include "cpu.h"
 #include "exec/address-spaces.h"
diff --git a/hw/sh4/sh7750_regnames.c b/hw/sh4/sh7750_regnames.c
index 7a3cdf3..52ac1cc 100644
--- a/hw/sh4/sh7750_regnames.c
+++ b/hw/sh4/sh7750_regnames.c
@@ -1,7 +1,7 @@
 #include "hw/hw.h"
 #include "hw/sh4/sh.h"
-#include "hw/sh7750_regs.h"
-#include "hw/sh7750_regnames.h"
+#include "sh7750_regs.h"
+#include "sh7750_regnames.h"
 
 #define REGNAME(r) {r, #r},
 
diff --git a/hw/sh7750_regnames.h b/hw/sh4/sh7750_regnames.h
similarity index 100%
rename from hw/sh7750_regnames.h
rename to hw/sh4/sh7750_regnames.h
diff --git a/hw/sh7750_regs.h b/hw/sh4/sh7750_regs.h
similarity index 100%
rename from hw/sh7750_regs.h
rename to hw/sh4/sh7750_regs.h
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index c8f8ba3..29dcd7a 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -34,7 +34,7 @@
 #include "qemu/thread.h"
 #include "char/char.h"
 #include "monitor/monitor.h"
-#include "hw/ccid.h"
+#include "ccid.h"
 
 #define DPRINTF(card, lvl, fmt, ...) \
 do {\
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index 984bd0b..5e017ae 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -11,7 +11,7 @@
 #include "char/char.h"
 #include "qemu/sockets.h"
 #include "monitor/monitor.h"
-#include "hw/ccid.h"
+#include "ccid.h"
 #include "libcacard/vscard_common.h"
 
 #define DPRINTF(card, lvl, fmt, ...)                    \
diff --git a/hw/ccid.h b/hw/usb/ccid.h
similarity index 100%
rename from hw/ccid.h
rename to hw/usb/ccid.h
diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
index caebc1c..db8ce02 100644
--- a/hw/usb/dev-smartcard-reader.c
+++ b/hw/usb/dev-smartcard-reader.c
@@ -40,7 +40,7 @@
 #include "hw/usb/desc.h"
 #include "monitor/monitor.h"
 
-#include "hw/ccid.h"
+#include "ccid.h"
 
 #define DPRINTF(s, lvl, fmt, ...) \
 do { \
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index c29be01..f5e148f 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -29,7 +29,7 @@
 #include "hw/loader.h"
 #include "sysemu/kvm.h"
 #include "sysemu/blockdev.h"
-#include "hw/virtio-pci.h"
+#include "virtio-pci.h"
 #include "qemu/range.h"
 #include "hw/virtio/virtio-bus.h"
 
diff --git a/hw/virtio-pci.h b/hw/virtio/virtio-pci.h
similarity index 100%
rename from hw/virtio-pci.h
rename to hw/virtio/virtio-pci.h
diff --git a/hw/xen/xen-host-pci-device.c b/hw/xen/xen-host-pci-device.c
index ff2e876..743b37b 100644
--- a/hw/xen/xen-host-pci-device.c
+++ b/hw/xen/xen-host-pci-device.c
@@ -7,7 +7,7 @@
  */
 
 #include "qemu-common.h"
-#include "hw/xen-host-pci-device.h"
+#include "xen-host-pci-device.h"
 
 #define XEN_HOST_PCI_MAX_EXT_CAP \
     ((PCIE_CONFIG_SPACE_SIZE - PCI_CONFIG_SPACE_SIZE) / (PCI_CAP_SIZEOF + 4))
diff --git a/hw/xen-host-pci-device.h b/hw/xen/xen-host-pci-device.h
similarity index 100%
rename from hw/xen-host-pci-device.h
rename to hw/xen/xen-host-pci-device.h
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index 0cc4538..c199818 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -57,7 +57,7 @@
 #include "hw/pci/pci.h"
 #include "hw/xen/xen.h"
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_pt.h"
+#include "xen_pt.h"
 #include "qemu/range.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/xen_pt.h b/hw/xen/xen_pt.h
similarity index 99%
rename from hw/xen_pt.h
rename to hw/xen/xen_pt.h
index d2cac18..942dc60 100644
--- a/hw/xen_pt.h
+++ b/hw/xen/xen_pt.h
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "hw/xen/xen_common.h"
 #include "hw/pci/pci.h"
-#include "hw/xen-host-pci-device.h"
+#include "xen-host-pci-device.h"
 
 void xen_pt_log(const PCIDevice *d, const char *f, ...) GCC_FMT_ATTR(2, 3);
 
diff --git a/hw/xen/xen_pt_config_init.c b/hw/xen/xen_pt_config_init.c
index 3ee2adf..01872db 100644
--- a/hw/xen/xen_pt_config_init.c
+++ b/hw/xen/xen_pt_config_init.c
@@ -14,7 +14,7 @@
 
 #include "qemu/timer.h"
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_pt.h"
+#include "xen_pt.h"
 
 #define XEN_PT_MERGE_VALUE(value, data, val_mask) \
     (((value) & (val_mask)) | ((data) & ~(val_mask)))
diff --git a/hw/xen/xen_pt_msi.c b/hw/xen/xen_pt_msi.c
index dcdfc5c..db2c842 100644
--- a/hw/xen/xen_pt_msi.c
+++ b/hw/xen/xen_pt_msi.c
@@ -12,7 +12,7 @@
 #include <sys/mman.h>
 
 #include "hw/xen/xen_backend.h"
-#include "hw/xen_pt.h"
+#include "xen_pt.h"
 #include "hw/i386/apic-msidef.h"
 
 
diff --git a/hw/xtensa_bootparam.h b/hw/xtensa/xtensa_bootparam.h
similarity index 100%
rename from hw/xtensa_bootparam.h
rename to hw/xtensa/xtensa_bootparam.h
diff --git a/hw/xtensa/xtensa_lx60.c b/hw/xtensa/xtensa_lx60.c
index 5695897..2682eda 100644
--- a/hw/xtensa/xtensa_lx60.c
+++ b/hw/xtensa/xtensa_lx60.c
@@ -37,7 +37,7 @@
 #include "hw/block/flash.h"
 #include "sysemu/blockdev.h"
 #include "char/char.h"
-#include "hw/xtensa_bootparam.h"
+#include "xtensa_bootparam.h"
 
 typedef struct LxBoardDesc {
     size_t flash_size;
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
                   ` (34 preceding siblings ...)
  2013-03-18 17:35 ` [Qemu-devel] [PATCH 35/35] hw: move private headers to hw/ subdirectories Paolo Bonzini
@ 2013-03-18 17:38 ` Peter Maydell
  2013-03-18 18:04   ` Paolo Bonzini
  35 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-18 17:38 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 18 March 2013 17:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
>  hw/{ => arm}/a15mpcore.c                           |   0
>  hw/{ => arm}/a9mpcore.c                            |   0
>  hw/{ => arm}/arm11mpcore.c                         |   0

Still no.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 17:38 ` [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Peter Maydell
@ 2013-03-18 18:04   ` Paolo Bonzini
  2013-03-18 18:11     ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 18:04 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

Il 18/03/2013 18:38, Peter Maydell ha scritto:
> On 18 March 2013 17:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> >  hw/{ => arm}/a15mpcore.c                           |   0
>> >  hw/{ => arm}/a9mpcore.c                            |   0
>> >  hw/{ => arm}/arm11mpcore.c                         |   0
> Still no.

I pointed you to the list of hw/arm files I wrote the first time, where
you okay-ed a*mpcore.c going in hw/arm, but you didn't answer with a
better alternative...

So what is the better alternative?  A new hw/container/?

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 18:04   ` Paolo Bonzini
@ 2013-03-18 18:11     ` Peter Maydell
  2013-03-18 18:16       ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-18 18:11 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 18 March 2013 18:04, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 18/03/2013 18:38, Peter Maydell ha scritto:
>> On 18 March 2013 17:34, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>> >  hw/{ => arm}/a15mpcore.c                           |   0
>>> >  hw/{ => arm}/a9mpcore.c                            |   0
>>> >  hw/{ => arm}/arm11mpcore.c                         |   0
>> Still no.
>
> I pointed you to the list of hw/arm files I wrote the first time, where
> you okay-ed a*mpcore.c going in hw/arm, but you didn't answer with a
> better alternative...

No, I said they were single devices and shouldn't go in hw/arm.

> So what is the better alternative?  A new hw/container/?

Maybe. Whatever it is, it should be a classification by kind
of device, so we can consistently sort by kind of device
and not part by kind of device and part by target architecture.

Personally I have no issues with the existing 'all in hw/'
arrangement; I just want you to come up with a consistent
structure if you're going to try to change it.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 18:11     ` Peter Maydell
@ 2013-03-18 18:16       ` Paolo Bonzini
  2013-03-18 18:17         ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 18:16 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

Il 18/03/2013 19:11, Peter Maydell ha scritto:
> > So what is the better alternative?  A new hw/container/?
> 
> Maybe. Whatever it is, it should be a classification by kind
> of device, so we can consistently sort by kind of device
> and not part by kind of device and part by target architecture.
> 
> Personally I have no issues with the existing 'all in hw/'
> arrangement; I just want you to come up with a consistent
> structure if you're going to try to change it.

Shouldn't these containers also host the CPU device(s), rather than the
boards?  And create them according to the num-cpu property?  If so, they
would have to go in hw/arm.

Andreas, what do you think?

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 18:16       ` Paolo Bonzini
@ 2013-03-18 18:17         ` Peter Maydell
  2013-03-18 20:05           ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-18 18:17 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 18 March 2013 18:16, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 18/03/2013 19:11, Peter Maydell ha scritto:
>> > So what is the better alternative?  A new hw/container/?
>>
>> Maybe. Whatever it is, it should be a classification by kind
>> of device, so we can consistently sort by kind of device
>> and not part by kind of device and part by target architecture.
>>
>> Personally I have no issues with the existing 'all in hw/'
>> arrangement; I just want you to come up with a consistent
>> structure if you're going to try to change it.
>
> Shouldn't these containers also host the CPU device(s), rather than the
> boards?  And create them according to the num-cpu property?  If so, they
> would have to go in hw/arm.

Yes, ideally they should have the CPU devices in them too.
Remind me why devices which instantiate the CPU device go
in hw/arm ?

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 18:17         ` Peter Maydell
@ 2013-03-18 20:05           ` Paolo Bonzini
  2013-03-18 20:21             ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-18 20:05 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

Il 18/03/2013 19:17, Peter Maydell ha scritto:
>> > Shouldn't these containers also host the CPU device(s), rather than the
>> > boards?  And create them according to the num-cpu property?  If so, they
>> > would have to go in hw/arm.
> Yes, ideally they should have the CPU devices in them too.
> Remind me why devices which instantiate the CPU device go
> in hw/arm ?

Because they refer to ARMCPU/CPUARMState.

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 20:05           ` Paolo Bonzini
@ 2013-03-18 20:21             ` Peter Maydell
  2013-03-19  9:26               ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-18 20:21 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

On 18 March 2013 20:05, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 18/03/2013 19:17, Peter Maydell ha scritto:
>>> > Shouldn't these containers also host the CPU device(s), rather than the
>>> > boards?  And create them according to the num-cpu property?  If so, they
>>> > would have to go in hw/arm.
>> Yes, ideally they should have the CPU devices in them too.
>> Remind me why devices which instantiate the CPU device go
>> in hw/arm ?
>
> Because they refer to ARMCPU/CPUARMState.

Well, a container object that instantiated the CPUs wouldn't
be referring to the internal CPU state struct, it would just
be treating them as QOM objects like any other, so that doesn't
apply.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-18 20:21             ` Peter Maydell
@ 2013-03-19  9:26               ` Paolo Bonzini
  2013-03-19 10:10                 ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-19  9:26 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

Il 18/03/2013 21:21, Peter Maydell ha scritto:
> On 18 March 2013 20:05, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 18/03/2013 19:17, Peter Maydell ha scritto:
>>>>> Shouldn't these containers also host the CPU device(s), rather than the
>>>>> boards?  And create them according to the num-cpu property?  If so, they
>>>>> would have to go in hw/arm.
>>> Yes, ideally they should have the CPU devices in them too.
>>> Remind me why devices which instantiate the CPU device go
>>> in hw/arm ?
>>
>> Because they refer to ARMCPU/CPUARMState.
> 
> Well, a container object that instantiated the CPUs wouldn't
> be referring to the internal CPU state struct, it would just
> be treating them as QOM objects like any other, so that doesn't
> apply.

Wouldn't it also bridge the CPU's internal interrupt pins to the GIC?
Like this code in highbank.c:


        /* This will become a QOM property eventually */
        irqp = arm_pic_init_cpu(cpu);
        cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
...
    for (n = 0; n < smp_cpus; n++) {
        sysbus_connect_irq(busdev, n, cpu_irq[n]);
    }

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19  9:26               ` Paolo Bonzini
@ 2013-03-19 10:10                 ` Peter Maydell
  2013-03-19 10:27                   ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-19 10:10 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

On 19 March 2013 09:26, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 18/03/2013 21:21, Peter Maydell ha scritto:
>> On 18 March 2013 20:05, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>> Il 18/03/2013 19:17, Peter Maydell ha scritto:
>>>>>> Shouldn't these containers also host the CPU device(s), rather than the
>>>>>> boards?  And create them according to the num-cpu property?  If so, they
>>>>>> would have to go in hw/arm.
>>>> Yes, ideally they should have the CPU devices in them too.
>>>> Remind me why devices which instantiate the CPU device go
>>>> in hw/arm ?
>>>
>>> Because they refer to ARMCPU/CPUARMState.
>>
>> Well, a container object that instantiated the CPUs wouldn't
>> be referring to the internal CPU state struct, it would just
>> be treating them as QOM objects like any other, so that doesn't
>> apply.
>
> Wouldn't it also bridge the CPU's internal interrupt pins to the GIC?
> Like this code in highbank.c:
>
>
>         /* This will become a QOM property eventually */
>         irqp = arm_pic_init_cpu(cpu);
>         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
> ...
>     for (n = 0; n < smp_cpus; n++) {
>         sysbus_connect_irq(busdev, n, cpu_irq[n]);
>     }

Well, for the CPU to be a proper QOM object it should be exposing
the IRQ/FIQ lines normally, not via the code in hw/arm/pic_cpu.c.
My point is that the QOM abstraction should encapsulate the CPU
cores just like any other piece of hardware. We're not there yet
but that's where we should be going. You can't really put the
CPUs into the a9mpcore &c containers until we've done that
abstraction properly anyway.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 10:10                 ` Peter Maydell
@ 2013-03-19 10:27                   ` Paolo Bonzini
  2013-03-19 10:32                     ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-19 10:27 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

Il 19/03/2013 11:10, Peter Maydell ha scritto:
> On 19 March 2013 09:26, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 18/03/2013 21:21, Peter Maydell ha scritto:
>>> On 18 March 2013 20:05, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>> Il 18/03/2013 19:17, Peter Maydell ha scritto:
>>>>>>> Shouldn't these containers also host the CPU device(s), rather than the
>>>>>>> boards?  And create them according to the num-cpu property?  If so, they
>>>>>>> would have to go in hw/arm.
>>>>> Yes, ideally they should have the CPU devices in them too.
>>>>> Remind me why devices which instantiate the CPU device go
>>>>> in hw/arm ?
>>>>
>>>> Because they refer to ARMCPU/CPUARMState.
>>>
>>> Well, a container object that instantiated the CPUs wouldn't
>>> be referring to the internal CPU state struct, it would just
>>> be treating them as QOM objects like any other, so that doesn't
>>> apply.
>>
>> Wouldn't it also bridge the CPU's internal interrupt pins to the GIC?
>> Like this code in highbank.c:
>>
>>
>>         /* This will become a QOM property eventually */
>>         irqp = arm_pic_init_cpu(cpu);
>>         cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
>> ...
>>     for (n = 0; n < smp_cpus; n++) {
>>         sysbus_connect_irq(busdev, n, cpu_irq[n]);
>>     }
> 
> Well, for the CPU to be a proper QOM object it should be exposing
> the IRQ/FIQ lines normally, not via the code in hw/arm/pic_cpu.c.

That applies to everything else that was put in hw/ARCH.  Everything
could become a QOM property.

> My point is that the QOM abstraction should encapsulate the CPU
> cores just like any other piece of hardware. We're not there yet
> but that's where we should be going. You can't really put the
> CPUs into the a9mpcore &c containers until we've done that
> abstraction properly anyway.

Why not?  It would remove a bunch of code that is currently duplicated
in the boards.

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 10:27                   ` Paolo Bonzini
@ 2013-03-19 10:32                     ` Peter Maydell
  2013-03-19 22:23                       ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-19 10:32 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

On 19 March 2013 10:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 19/03/2013 11:10, Peter Maydell ha scritto:
>> Well, for the CPU to be a proper QOM object it should be exposing
>> the IRQ/FIQ lines normally, not via the code in hw/arm/pic_cpu.c.
>
> That applies to everything else that was put in hw/ARCH.  Everything
> could become a QOM property.

Yes. If we clean this stuff up I can kick it back out of hw/ARCH :-)

>> My point is that the QOM abstraction should encapsulate the CPU
>> cores just like any other piece of hardware. We're not there yet
>> but that's where we should be going. You can't really put the
>> CPUs into the a9mpcore &c containers until we've done that
>> abstraction properly anyway.
>
> Why not?  It would remove a bunch of code that is currently duplicated
> in the boards.

Hmm, maybe.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 03/35] configure: fix TPM logic
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 03/35] configure: fix TPM logic Paolo Bonzini
@ 2013-03-19 16:03   ` Andreas Färber
  0 siblings, 0 replies; 57+ messages in thread
From: Andreas Färber @ 2013-03-19 16:03 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, Stefan Berger

Am 18.03.2013 18:34, schrieb Paolo Bonzini:
> A non-native i386 or x86_64 emulator should not have TPM passthrough
> support, since the TPM is only present for those hosts.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Looks good,

Reviewed-by: Andreas Färber <afaerber@suse.de>

Thanks,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 10:32                     ` Peter Maydell
@ 2013-03-19 22:23                       ` Paolo Bonzini
  2013-03-19 22:34                         ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-19 22:23 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

Il 19/03/2013 11:32, Peter Maydell ha scritto:
> On 19 March 2013 10:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 19/03/2013 11:10, Peter Maydell ha scritto:
>>> Well, for the CPU to be a proper QOM object it should be exposing
>>> the IRQ/FIQ lines normally, not via the code in hw/arm/pic_cpu.c.
>>
>> That applies to everything else that was put in hw/ARCH.  Everything
>> could become a QOM property.
> 
> Yes. If we clean this stuff up I can kick it back out of hw/ARCH :-)
> 
>>> My point is that the QOM abstraction should encapsulate the CPU
>>> cores just like any other piece of hardware. We're not there yet
>>> but that's where we should be going. You can't really put the
>>> CPUs into the a9mpcore &c containers until we've done that
>>> abstraction properly anyway.
>>
>> Why not?  It would remove a bunch of code that is currently duplicated
>> in the boards.
> 
> Hmm, maybe.

So, okay to put these in hw/arm and then I'll work on patches moving
cpu_arm_init to a*mpcore.c?

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 22:23                       ` Paolo Bonzini
@ 2013-03-19 22:34                         ` Peter Maydell
  2013-03-19 23:35                           ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-19 22:34 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 19 March 2013 22:23, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 19/03/2013 11:32, Peter Maydell ha scritto:
>> On 19 March 2013 10:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>> Il 19/03/2013 11:10, Peter Maydell ha scritto:
>>>> My point is that the QOM abstraction should encapsulate the CPU
>>>> cores just like any other piece of hardware. We're not there yet
>>>> but that's where we should be going. You can't really put the
>>>> CPUs into the a9mpcore &c containers until we've done that
>>>> abstraction properly anyway.
>>>
>>> Why not?  It would remove a bunch of code that is currently duplicated
>>> in the boards.
>>
>> Hmm, maybe.
>
> So, okay to put these in hw/arm and then I'll work on patches moving
> cpu_arm_init to a*mpcore.c?

Wrong way round. If you can't put the cpu_arm_init into the a*mpcore
in a way that doesn't make you want to put them in hw/arm/ then
it should wait until we've QOMified the CPU cores sufficiently
that we can do it properly.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 22:34                         ` Peter Maydell
@ 2013-03-19 23:35                           ` Paolo Bonzini
  2013-03-19 23:44                             ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-19 23:35 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

Il 19/03/2013 23:34, Peter Maydell ha scritto:
> On 19 March 2013 22:23, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 19/03/2013 11:32, Peter Maydell ha scritto:
>>> On 19 March 2013 10:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>> Il 19/03/2013 11:10, Peter Maydell ha scritto:
>>>>> My point is that the QOM abstraction should encapsulate the CPU
>>>>> cores just like any other piece of hardware. We're not there yet
>>>>> but that's where we should be going. You can't really put the
>>>>> CPUs into the a9mpcore &c containers until we've done that
>>>>> abstraction properly anyway.
>>>>
>>>> Why not?  It would remove a bunch of code that is currently duplicated
>>>> in the boards.
>>>
>>> Hmm, maybe.
>>
>> So, okay to put these in hw/arm and then I'll work on patches moving
>> cpu_arm_init to a*mpcore.c?
> 
> Wrong way round. If you can't put the cpu_arm_init into the a*mpcore
> in a way that doesn't make you want to put them in hw/arm/ then
> it should wait until we've QOMified the CPU cores sufficiently
> that we can do it properly.

Does that include calling the CPU constructor something else than
cpu_arm_init (which is defined in target-arm/)?  For me that would be
enough to put it in hw/arm.

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 23:35                           ` Paolo Bonzini
@ 2013-03-19 23:44                             ` Peter Maydell
  2013-03-20  0:00                               ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-19 23:44 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 19 March 2013 23:35, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 19/03/2013 23:34, Peter Maydell ha scritto:
>> On 19 March 2013 22:23, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>> So, okay to put these in hw/arm and then I'll work on patches moving
>>> cpu_arm_init to a*mpcore.c?
>>
>> Wrong way round. If you can't put the cpu_arm_init into the a*mpcore
>> in a way that doesn't make you want to put them in hw/arm/ then
>> it should wait until we've QOMified the CPU cores sufficiently
>> that we can do it properly.
>
> Does that include calling the CPU constructor something else than
> cpu_arm_init (which is defined in target-arm/)?  For me that would be
> enough to put it in hw/arm.

The CPU should be created (and thus initialised and realised) the same
way as any other QOM object or device; the containers shouldn't need
to call cpu_arm_init directly.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-19 23:44                             ` Peter Maydell
@ 2013-03-20  0:00                               ` Paolo Bonzini
  2013-03-20 10:30                                 ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-20  0:00 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

Il 20/03/2013 00:44, Peter Maydell ha scritto:
> On 19 March 2013 23:35, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> > Il 19/03/2013 23:34, Peter Maydell ha scritto:
>>> >> On 19 March 2013 22:23, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>> >>> So, okay to put these in hw/arm and then I'll work on patches moving
>>>> >>> cpu_arm_init to a*mpcore.c?
>>> >>
>>> >> Wrong way round. If you can't put the cpu_arm_init into the a*mpcore
>>> >> in a way that doesn't make you want to put them in hw/arm/ then
>>> >> it should wait until we've QOMified the CPU cores sufficiently
>>> >> that we can do it properly.
>> >
>> > Does that include calling the CPU constructor something else than
>> > cpu_arm_init (which is defined in target-arm/)?  For me that would be
>> > enough to put it in hw/arm.
> The CPU should be created (and thus initialised and realised) the same
> way as any other QOM object or device; the containers shouldn't need
> to call cpu_arm_init directly.

ARM is already quite good in that respect.  However, until all
architectures are converted cpu_*_init needs to remain because of
user-mode targets (where the CPUs are created by common code, there is
no board to encapsulate the target-specific differences).  IMHO waiting
for the demise of cpu_*_init is putting the cart before the horse, or
another similar proverb.

(Also, I don't see much difference between using a function in
target-ARCH and using a TYPE_FOO define from target-ARCH.  They are the
same thing masked through RTTI.  hw/ARCH should really be the bridge
between target-ARCH and hw/everything-else, and a*mpcore.c fits in that
description).

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-20  0:00                               ` Paolo Bonzini
@ 2013-03-20 10:30                                 ` Peter Maydell
  2013-03-20 11:01                                   ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Peter Maydell @ 2013-03-20 10:30 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Edgar E. Iglesias, Richard Henderson, qemu-devel, Andreas Färber

On 20 March 2013 00:00, Paolo Bonzini <pbonzini@redhat.com> wrote:
> ARM is already quite good in that respect.  However, until all
> architectures are converted cpu_*_init needs to remain because of
> user-mode targets (where the CPUs are created by common code, there is
> no board to encapsulate the target-specific differences).  IMHO waiting
> for the demise of cpu_*_init is putting the cart before the horse, or
> another similar proverb.

As I say, I don't object to you moving the cpu init code into the
a*mpcore containers. I do object to you moving the a*mpcore
containers into hw/arm, and so transitively I object to changes
to the containers made only with the intent to cause them to move
into hw/arm.

> (Also, I don't see much difference between using a function in
> target-ARCH and using a TYPE_FOO define from target-ARCH.  They are the
> same thing masked through RTTI.  hw/ARCH should really be the bridge
> between target-ARCH and hw/everything-else, and a*mpcore.c fits in that
> description).

Basically I don't like the way your categorization scheme seems
to be "kind of device, except for stuff in hw/ARCH which has
a completely different rationale". I'm OK with hw/ARCH having
board models, because that's really "kind of device", it's
just split what ought to be hw/boards into a bunch of separate
directories. And I've accepted having some of the random "needs
fixing and splitting and chucking back out of hw/ARCH" code as
a temporary measure. But please stop trying to push stuff into
hw/ARCH rather than categorising it properly. I feel like I'm
arguing round in circles here.

-- PMM

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2
  2013-03-20 10:30                                 ` Peter Maydell
@ 2013-03-20 11:01                                   ` Paolo Bonzini
  0 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-20 11:01 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Edgar E. Iglesias, qemu-devel, Andreas Färber, Richard Henderson

Il 20/03/2013 11:30, Peter Maydell ha scritto:
> Basically I don't like the way your categorization scheme seems
> to be "kind of device, except for stuff in hw/ARCH which has
> a completely different rationale". I'm OK with hw/ARCH having
> board models, because that's really "kind of device", it's
> just split what ought to be hw/boards into a bunch of separate
> directories. And I've accepted having some of the random "needs
> fixing and splitting and chucking back out of hw/ARCH" code as
> a temporary measure. But please stop trying to push stuff into
> hw/ARCH rather than categorising it properly. I feel like I'm
> arguing round in circles here.

Ok, I guess I'll add hw/cpu.

Paolo

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part
  2013-03-18 17:34 ` [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part Paolo Bonzini
@ 2013-03-20 13:49   ` Corey Bryant
  2013-03-20 14:55     ` Paolo Bonzini
  0 siblings, 1 reply; 57+ messages in thread
From: Corey Bryant @ 2013-03-20 13:49 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, Stefan Berger



On 03/18/2013 01:34 PM, Paolo Bonzini wrote:
> The TPM subsystem does not have a good front-end/back-end separation.

I think it has very good front-end/back-end separation, but perhaps you 
mean the code could be moved around and better organized.

> However, we can at least try to split the user interface (tpm.c) from
> the implementation (hw/tpm).

Here's a general break-down of front-end/back-end/general code

tpm_tis.c = TIS front-end (the only front-end at this time)
tpm_passthrough.c = Passthrough backend (the only back-end at this time)
tpm.c = general code
tpm_backend.c = backend thread pool functions (could use a better file 
name?)

>
> The patches makes tpm.c not include tpm_int.h; instead it moves more
> stuff to tpm_backend.h.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   Makefile.objs                      |  2 +-
>   default-configs/i386-softmmu.mak   |  2 +-
>   default-configs/x86_64-softmmu.mak |  2 +-
>   hw/Makefile.objs                   |  1 +
>   {tpm => hw/tpm}/Makefile.objs      |  3 +-
>   {tpm => hw/tpm}/tpm_backend.c      | 14 ++++++++++
>   {tpm => hw/tpm}/tpm_int.h          | 55 ++----------------------------------
>   {tpm => hw/tpm}/tpm_passthrough.c  |  0
>   {tpm => hw/tpm}/tpm_tis.c          |  0
>   {tpm => hw/tpm}/tpm_tis.h          |  5 ----
>   {tpm => include/tpm}/tpm_backend.h | 57 ++++++++++++++++++++++++++++++++++++++
>   tpm/tpm.c => tpm.c                 | 18 ++----------
>   12 files changed, 80 insertions(+), 79 deletions(-)
>   rename {tpm => hw/tpm}/Makefile.objs (61%)
>   rename {tpm => hw/tpm}/tpm_backend.c (82%)
>   rename {tpm => hw/tpm}/tpm_int.h (49%)
>   rename {tpm => hw/tpm}/tpm_passthrough.c (100%)
>   rename {tpm => hw/tpm}/tpm_tis.c (100%)
>   rename {tpm => hw/tpm}/tpm_tis.h (94%)
>   rename {tpm => include/tpm}/tpm_backend.h (50%)
>   rename tpm/tpm.c => tpm.c (93%)
>
> diff --git a/Makefile.objs b/Makefile.objs
> index f99841c..ff3a6b3 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -74,7 +74,7 @@ common-obj-y += bt-host.o bt-vhci.o
>
>   common-obj-y += dma-helpers.o
>   common-obj-y += vl.o
> -common-obj-y += tpm/
> +common-obj-y += tpm.o
>
>   common-obj-$(CONFIG_SLIRP) += slirp/
>
> diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
> index 7d8908f..f70594d 100644
> --- a/default-configs/i386-softmmu.mak
> +++ b/default-configs/i386-softmmu.mak
> @@ -26,4 +26,4 @@ CONFIG_HPET=y
>   CONFIG_APPLESMC=y
>   CONFIG_I8259=y
>   CONFIG_PFLASH_CFI01=y
> -CONFIG_TPM_TIS=$(CONFIG_TPM)
> +CONFIG_TPM_TIS=y
> diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
> index e87e644..66c4855 100644
> --- a/default-configs/x86_64-softmmu.mak
> +++ b/default-configs/x86_64-softmmu.mak
> @@ -26,4 +26,4 @@ CONFIG_HPET=y
>   CONFIG_APPLESMC=y
>   CONFIG_I8259=y
>   CONFIG_PFLASH_CFI01=y
> -CONFIG_TPM_TIS=$(CONFIG_TPM)
> +CONFIG_TPM_TIS=y
> diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> index 09fea2c..5626292 100644
> --- a/hw/Makefile.objs
> +++ b/hw/Makefile.objs
> @@ -25,6 +25,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += scsi/
>   devices-dirs-$(CONFIG_SOFTMMU) += sd/
>   devices-dirs-$(CONFIG_SOFTMMU) += ssi/
>   devices-dirs-$(CONFIG_SOFTMMU) += timer/
> +devices-dirs-$(CONFIG_TPM) += tpm/
>   devices-dirs-$(CONFIG_SOFTMMU) += usb/
>   devices-dirs-$(CONFIG_SOFTMMU) += virtio/
>   devices-dirs-$(CONFIG_SOFTMMU) += watchdog/
> diff --git a/tpm/Makefile.objs b/hw/tpm/Makefile.objs
> similarity index 61%
> rename from tpm/Makefile.objs
> rename to hw/tpm/Makefile.objs
> index 366e4a7..8bbed7a 100644
> --- a/tpm/Makefile.objs
> +++ b/hw/tpm/Makefile.objs
> @@ -1,4 +1,3 @@
> -common-obj-y = tpm.o
> -common-obj-$(CONFIG_TPM) += tpm_backend.o
> +common-obj-y += tpm_backend.o
>   common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o
>   common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
> diff --git a/tpm/tpm_backend.c b/hw/tpm/tpm_backend.c
> similarity index 82%
> rename from tpm/tpm_backend.c
> rename to hw/tpm/tpm_backend.c
> index 4144ef7..31d833c 100644
> --- a/tpm/tpm_backend.c
> +++ b/hw/tpm/tpm_backend.c
> @@ -56,3 +56,17 @@ void tpm_backend_thread_tpm_reset(TPMBackendThread *tbt,
>                              NULL);
>       }
>   }
> +
> +/*
> + * Write an error message in the given output buffer.
> + */
> +void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len)
> +{
> +    if (out_len >= sizeof(struct tpm_resp_hdr)) {
> +        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
> +
> +        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
> +        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
> +        resp->errcode = cpu_to_be32(TPM_FAIL);
> +    }
> +}

I don't think moving this from tpm.c to tpm_backend.c helps anything. 
Maybe just renaming some of the files mentioned above might make the 
front-end vs back-end vs general code more intuitive.

-- 
Regards,
Corey Bryant

> diff --git a/tpm/tpm_int.h b/hw/tpm/tpm_int.h
> similarity index 49%
> rename from tpm/tpm_int.h
> rename to hw/tpm/tpm_int.h
> index f705643..d5f7bb8 100644
> --- a/tpm/tpm_int.h
> +++ b/hw/tpm/tpm_int.h
> @@ -15,27 +15,8 @@
>   #include "exec/memory.h"
>   #include "tpm/tpm_tis.h"
>
> -struct TPMDriverOps;
> -typedef struct TPMDriverOps TPMDriverOps;
> -
> -typedef struct TPMPassthruState TPMPassthruState;
> -
> -typedef struct TPMBackend {
> -    char *id;
> -    enum TpmModel fe_model;
> -    char *path;
> -    char *cancel_path;
> -    const TPMDriverOps *ops;
> -
> -    union {
> -        TPMPassthruState *tpm_pt;
> -    } s;
> -
> -    QLIST_ENTRY(TPMBackend) list;
> -} TPMBackend;
> -
>   /* overall state of the TPM interface */
> -typedef struct TPMState {
> +struct TPMState {
>       ISADevice busdev;
>       MemoryRegion mmio;
>
> @@ -48,38 +29,10 @@ typedef struct TPMState {
>
>       char *backend;
>       TPMBackend *be_driver;
> -} TPMState;
> +};
>
>   #define TPM(obj) OBJECT_CHECK(TPMState, (obj), TYPE_TPM_TIS)
>
> -typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
> -
> -struct TPMDriverOps {
> -    enum TpmType type;
> -    /* get a descriptive text of the backend to display to the user */
> -    const char *(*desc)(void);
> -
> -    TPMBackend *(*create)(QemuOpts *opts, const char *id);
> -    void (*destroy)(TPMBackend *t);
> -
> -    /* initialize the backend */
> -    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB *datacb);
> -    /* start up the TPM on the backend */
> -    int (*startup_tpm)(TPMBackend *t);
> -    /* returns true if nothing will ever answer TPM requests */
> -    bool (*had_startup_error)(TPMBackend *t);
> -
> -    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
> -
> -    void (*deliver_request)(TPMBackend *t);
> -
> -    void (*reset)(TPMBackend *t);
> -
> -    void (*cancel_cmd)(TPMBackend *t);
> -
> -    bool (*get_tpm_established_flag)(TPMBackend *t);
> -};
> -
>   struct tpm_req_hdr {
>       uint16_t tag;
>       uint32_t len;
> @@ -105,10 +58,6 @@ struct tpm_resp_hdr {
>   #define TPM_ORD_GetTicks          0xf1
>
>   TPMBackend *qemu_find_tpm(const char *id);
> -int tpm_register_model(enum TpmModel model);
> -int tpm_register_driver(const TPMDriverOps *tdo);
> -void tpm_display_backend_drivers(void);
> -const TPMDriverOps *tpm_get_backend_driver(const char *type);
>   void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len);
>
>   extern const TPMDriverOps tpm_passthrough_driver;
> diff --git a/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
> similarity index 100%
> rename from tpm/tpm_passthrough.c
> rename to hw/tpm/tpm_passthrough.c
> diff --git a/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
> similarity index 100%
> rename from tpm/tpm_tis.c
> rename to hw/tpm/tpm_tis.c
> diff --git a/tpm/tpm_tis.h b/hw/tpm/tpm_tis.h
> similarity index 94%
> rename from tpm/tpm_tis.h
> rename to hw/tpm/tpm_tis.h
> index 963682c..916152a 100644
> --- a/tpm/tpm_tis.h
> +++ b/hw/tpm/tpm_tis.h
> @@ -35,11 +35,6 @@
>   #define TYPE_TPM_TIS                "tpm-tis"
>
>
> -typedef struct TPMSizedBuffer {
> -    uint32_t size;
> -    uint8_t  *buffer;
> -} TPMSizedBuffer;
> -
>   typedef enum {
>       TPM_TIS_STATE_IDLE = 0,
>       TPM_TIS_STATE_READY,
> diff --git a/tpm/tpm_backend.h b/include/tpm/tpm_backend.h
> similarity index 50%
> rename from tpm/tpm_backend.h
> rename to include/tpm/tpm_backend.h
> index 05d94d0..f5390b4 100644
> --- a/tpm/tpm_backend.h
> +++ b/include/tpm/tpm_backend.h
> @@ -42,4 +42,61 @@ typedef enum TPMBackendCmd {
>       TPM_BACKEND_CMD_TPM_RESET,
>   } TPMBackendCmd;
>
> +struct TPMDriverOps;
> +typedef struct TPMDriverOps TPMDriverOps;
> +
> +typedef struct TPMState TPMState;
> +typedef struct TPMPassthruState TPMPassthruState;
> +
> +typedef struct TPMBackend {
> +    char *id;
> +    enum TpmModel fe_model;
> +    char *path;
> +    char *cancel_path;
> +    const TPMDriverOps *ops;
> +
> +    union {
> +        TPMPassthruState *tpm_pt;
> +    } s;
> +
> +    QLIST_ENTRY(TPMBackend) list;
> +} TPMBackend;
> +
> +typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
> +
> +typedef struct TPMSizedBuffer {
> +    uint32_t size;
> +    uint8_t  *buffer;
> +} TPMSizedBuffer;
> +
> +struct TPMDriverOps {
> +    enum TpmType type;
> +    /* get a descriptive text of the backend to display to the user */
> +    const char *(*desc)(void);
> +
> +    TPMBackend *(*create)(QemuOpts *opts, const char *id);
> +    void (*destroy)(TPMBackend *t);
> +
> +    /* initialize the backend */
> +    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB *datacb);
> +    /* start up the TPM on the backend */
> +    int (*startup_tpm)(TPMBackend *t);
> +    /* returns true if nothing will ever answer TPM requests */
> +    bool (*had_startup_error)(TPMBackend *t);
> +
> +    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
> +
> +    void (*deliver_request)(TPMBackend *t);
> +
> +    void (*reset)(TPMBackend *t);
> +
> +    void (*cancel_cmd)(TPMBackend *t);
> +
> +    bool (*get_tpm_established_flag)(TPMBackend *t);
> +};
> +
> +const TPMDriverOps *tpm_get_backend_driver(const char *type);
> +int tpm_register_model(enum TpmModel model);
> +int tpm_register_driver(const TPMDriverOps *tdo);
> +
>   #endif /* TPM_TPM_BACKEND_H */
> diff --git a/tpm/tpm.c b/tpm.c
> similarity index 93%
> rename from tpm/tpm.c
> rename to tpm.c
> index ffd2495..49ac4cc 100644
> --- a/tpm/tpm.c
> +++ b/tpm.c
> @@ -15,7 +15,7 @@
>
>   #include "monitor/monitor.h"
>   #include "qapi/qmp/qerror.h"
> -#include "tpm_int.h"
> +#include "tpm/tpm_backend.h"
>   #include "tpm/tpm.h"
>   #include "qemu/config-file.h"
>   #include "qmp-commands.h"
> @@ -61,20 +61,6 @@ static bool tpm_model_is_registered(enum TpmModel model)
>       return false;
>   }
>
> -/*
> - * Write an error message in the given output buffer.
> - */
> -void tpm_write_fatal_error_response(uint8_t *out, uint32_t out_len)
> -{
> -    if (out_len >= sizeof(struct tpm_resp_hdr)) {
> -        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
> -
> -        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
> -        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
> -        resp->errcode = cpu_to_be32(TPM_FAIL);
> -    }
> -}
> -
>   const TPMDriverOps *tpm_get_backend_driver(const char *type)
>   {
>       int i;
> @@ -108,7 +94,7 @@ int tpm_register_driver(const TPMDriverOps *tdo)
>    * Walk the list of available TPM backend drivers and display them on the
>    * screen.
>    */
> -void tpm_display_backend_drivers(void)
> +static void tpm_display_backend_drivers(void)
>   {
>       int i;
>

^ permalink raw reply	[flat|nested] 57+ messages in thread

* Re: [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part
  2013-03-20 13:49   ` Corey Bryant
@ 2013-03-20 14:55     ` Paolo Bonzini
  0 siblings, 0 replies; 57+ messages in thread
From: Paolo Bonzini @ 2013-03-20 14:55 UTC (permalink / raw)
  To: Corey Bryant; +Cc: qemu-devel, Stefan Berger



----- Messaggio originale -----
> Da: "Corey Bryant" <coreyb@linux.vnet.ibm.com>
> A: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: qemu-devel@nongnu.org, "Stefan Berger" <stefanb@linux.vnet.ibm.com>
> Inviato: Mercoledì, 20 marzo 2013 14:49:39
> Oggetto: Re: [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part
> 
> 
> 
> On 03/18/2013 01:34 PM, Paolo Bonzini wrote:
> > The TPM subsystem does not have a good front-end/back-end
> > separation.
> 
> I think it has very good front-end/back-end separation, but perhaps
> you mean the code could be moved around and better organized.

I mean that the back-end has knowledge about the front-end.
The tpm_int.h header has a dependency on tpm_tis.h and on TPMState
(thus on ISADevice, which should be hidden to front-ends). 

Paolo

> 
> > However, we can at least try to split the user interface (tpm.c)
> > from
> > the implementation (hw/tpm).
> 
> Here's a general break-down of front-end/back-end/general code
> 
> tpm_tis.c = TIS front-end (the only front-end at this time)
> tpm_passthrough.c = Passthrough backend (the only back-end at this
> time)
> tpm.c = general code
> tpm_backend.c = backend thread pool functions (could use a better
> file
> name?)
> 
> >
> > The patches makes tpm.c not include tpm_int.h; instead it moves
> > more
> > stuff to tpm_backend.h.
> >
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > ---
> >   Makefile.objs                      |  2 +-
> >   default-configs/i386-softmmu.mak   |  2 +-
> >   default-configs/x86_64-softmmu.mak |  2 +-
> >   hw/Makefile.objs                   |  1 +
> >   {tpm => hw/tpm}/Makefile.objs      |  3 +-
> >   {tpm => hw/tpm}/tpm_backend.c      | 14 ++++++++++
> >   {tpm => hw/tpm}/tpm_int.h          | 55
> >   ++----------------------------------
> >   {tpm => hw/tpm}/tpm_passthrough.c  |  0
> >   {tpm => hw/tpm}/tpm_tis.c          |  0
> >   {tpm => hw/tpm}/tpm_tis.h          |  5 ----
> >   {tpm => include/tpm}/tpm_backend.h | 57
> >   ++++++++++++++++++++++++++++++++++++++
> >   tpm/tpm.c => tpm.c                 | 18 ++----------
> >   12 files changed, 80 insertions(+), 79 deletions(-)
> >   rename {tpm => hw/tpm}/Makefile.objs (61%)
> >   rename {tpm => hw/tpm}/tpm_backend.c (82%)
> >   rename {tpm => hw/tpm}/tpm_int.h (49%)
> >   rename {tpm => hw/tpm}/tpm_passthrough.c (100%)
> >   rename {tpm => hw/tpm}/tpm_tis.c (100%)
> >   rename {tpm => hw/tpm}/tpm_tis.h (94%)
> >   rename {tpm => include/tpm}/tpm_backend.h (50%)
> >   rename tpm/tpm.c => tpm.c (93%)
> >
> > diff --git a/Makefile.objs b/Makefile.objs
> > index f99841c..ff3a6b3 100644
> > --- a/Makefile.objs
> > +++ b/Makefile.objs
> > @@ -74,7 +74,7 @@ common-obj-y += bt-host.o bt-vhci.o
> >
> >   common-obj-y += dma-helpers.o
> >   common-obj-y += vl.o
> > -common-obj-y += tpm/
> > +common-obj-y += tpm.o
> >
> >   common-obj-$(CONFIG_SLIRP) += slirp/
> >
> > diff --git a/default-configs/i386-softmmu.mak
> > b/default-configs/i386-softmmu.mak
> > index 7d8908f..f70594d 100644
> > --- a/default-configs/i386-softmmu.mak
> > +++ b/default-configs/i386-softmmu.mak
> > @@ -26,4 +26,4 @@ CONFIG_HPET=y
> >   CONFIG_APPLESMC=y
> >   CONFIG_I8259=y
> >   CONFIG_PFLASH_CFI01=y
> > -CONFIG_TPM_TIS=$(CONFIG_TPM)
> > +CONFIG_TPM_TIS=y
> > diff --git a/default-configs/x86_64-softmmu.mak
> > b/default-configs/x86_64-softmmu.mak
> > index e87e644..66c4855 100644
> > --- a/default-configs/x86_64-softmmu.mak
> > +++ b/default-configs/x86_64-softmmu.mak
> > @@ -26,4 +26,4 @@ CONFIG_HPET=y
> >   CONFIG_APPLESMC=y
> >   CONFIG_I8259=y
> >   CONFIG_PFLASH_CFI01=y
> > -CONFIG_TPM_TIS=$(CONFIG_TPM)
> > +CONFIG_TPM_TIS=y
> > diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> > index 09fea2c..5626292 100644
> > --- a/hw/Makefile.objs
> > +++ b/hw/Makefile.objs
> > @@ -25,6 +25,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += scsi/
> >   devices-dirs-$(CONFIG_SOFTMMU) += sd/
> >   devices-dirs-$(CONFIG_SOFTMMU) += ssi/
> >   devices-dirs-$(CONFIG_SOFTMMU) += timer/
> > +devices-dirs-$(CONFIG_TPM) += tpm/
> >   devices-dirs-$(CONFIG_SOFTMMU) += usb/
> >   devices-dirs-$(CONFIG_SOFTMMU) += virtio/
> >   devices-dirs-$(CONFIG_SOFTMMU) += watchdog/
> > diff --git a/tpm/Makefile.objs b/hw/tpm/Makefile.objs
> > similarity index 61%
> > rename from tpm/Makefile.objs
> > rename to hw/tpm/Makefile.objs
> > index 366e4a7..8bbed7a 100644
> > --- a/tpm/Makefile.objs
> > +++ b/hw/tpm/Makefile.objs
> > @@ -1,4 +1,3 @@
> > -common-obj-y = tpm.o
> > -common-obj-$(CONFIG_TPM) += tpm_backend.o
> > +common-obj-y += tpm_backend.o
> >   common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o
> >   common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
> > diff --git a/tpm/tpm_backend.c b/hw/tpm/tpm_backend.c
> > similarity index 82%
> > rename from tpm/tpm_backend.c
> > rename to hw/tpm/tpm_backend.c
> > index 4144ef7..31d833c 100644
> > --- a/tpm/tpm_backend.c
> > +++ b/hw/tpm/tpm_backend.c
> > @@ -56,3 +56,17 @@ void
> > tpm_backend_thread_tpm_reset(TPMBackendThread *tbt,
> >                              NULL);
> >       }
> >   }
> > +
> > +/*
> > + * Write an error message in the given output buffer.
> > + */
> > +void tpm_write_fatal_error_response(uint8_t *out, uint32_t
> > out_len)
> > +{
> > +    if (out_len >= sizeof(struct tpm_resp_hdr)) {
> > +        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
> > +
> > +        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
> > +        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
> > +        resp->errcode = cpu_to_be32(TPM_FAIL);
> > +    }
> > +}
> 
> I don't think moving this from tpm.c to tpm_backend.c helps anything.
> Maybe just renaming some of the files mentioned above might make the
> front-end vs back-end vs general code more intuitive.
> 
> --
> Regards,
> Corey Bryant
> 
> > diff --git a/tpm/tpm_int.h b/hw/tpm/tpm_int.h
> > similarity index 49%
> > rename from tpm/tpm_int.h
> > rename to hw/tpm/tpm_int.h
> > index f705643..d5f7bb8 100644
> > --- a/tpm/tpm_int.h
> > +++ b/hw/tpm/tpm_int.h
> > @@ -15,27 +15,8 @@
> >   #include "exec/memory.h"
> >   #include "tpm/tpm_tis.h"
> >
> > -struct TPMDriverOps;
> > -typedef struct TPMDriverOps TPMDriverOps;
> > -
> > -typedef struct TPMPassthruState TPMPassthruState;
> > -
> > -typedef struct TPMBackend {
> > -    char *id;
> > -    enum TpmModel fe_model;
> > -    char *path;
> > -    char *cancel_path;
> > -    const TPMDriverOps *ops;
> > -
> > -    union {
> > -        TPMPassthruState *tpm_pt;
> > -    } s;
> > -
> > -    QLIST_ENTRY(TPMBackend) list;
> > -} TPMBackend;
> > -
> >   /* overall state of the TPM interface */
> > -typedef struct TPMState {
> > +struct TPMState {
> >       ISADevice busdev;
> >       MemoryRegion mmio;
> >
> > @@ -48,38 +29,10 @@ typedef struct TPMState {
> >
> >       char *backend;
> >       TPMBackend *be_driver;
> > -} TPMState;
> > +};
> >
> >   #define TPM(obj) OBJECT_CHECK(TPMState, (obj), TYPE_TPM_TIS)
> >
> > -typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
> > -
> > -struct TPMDriverOps {
> > -    enum TpmType type;
> > -    /* get a descriptive text of the backend to display to the
> > user */
> > -    const char *(*desc)(void);
> > -
> > -    TPMBackend *(*create)(QemuOpts *opts, const char *id);
> > -    void (*destroy)(TPMBackend *t);
> > -
> > -    /* initialize the backend */
> > -    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB
> > *datacb);
> > -    /* start up the TPM on the backend */
> > -    int (*startup_tpm)(TPMBackend *t);
> > -    /* returns true if nothing will ever answer TPM requests */
> > -    bool (*had_startup_error)(TPMBackend *t);
> > -
> > -    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
> > -
> > -    void (*deliver_request)(TPMBackend *t);
> > -
> > -    void (*reset)(TPMBackend *t);
> > -
> > -    void (*cancel_cmd)(TPMBackend *t);
> > -
> > -    bool (*get_tpm_established_flag)(TPMBackend *t);
> > -};
> > -
> >   struct tpm_req_hdr {
> >       uint16_t tag;
> >       uint32_t len;
> > @@ -105,10 +58,6 @@ struct tpm_resp_hdr {
> >   #define TPM_ORD_GetTicks          0xf1
> >
> >   TPMBackend *qemu_find_tpm(const char *id);
> > -int tpm_register_model(enum TpmModel model);
> > -int tpm_register_driver(const TPMDriverOps *tdo);
> > -void tpm_display_backend_drivers(void);
> > -const TPMDriverOps *tpm_get_backend_driver(const char *type);
> >   void tpm_write_fatal_error_response(uint8_t *out, uint32_t
> >   out_len);
> >
> >   extern const TPMDriverOps tpm_passthrough_driver;
> > diff --git a/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
> > similarity index 100%
> > rename from tpm/tpm_passthrough.c
> > rename to hw/tpm/tpm_passthrough.c
> > diff --git a/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
> > similarity index 100%
> > rename from tpm/tpm_tis.c
> > rename to hw/tpm/tpm_tis.c
> > diff --git a/tpm/tpm_tis.h b/hw/tpm/tpm_tis.h
> > similarity index 94%
> > rename from tpm/tpm_tis.h
> > rename to hw/tpm/tpm_tis.h
> > index 963682c..916152a 100644
> > --- a/tpm/tpm_tis.h
> > +++ b/hw/tpm/tpm_tis.h
> > @@ -35,11 +35,6 @@
> >   #define TYPE_TPM_TIS                "tpm-tis"
> >
> >
> > -typedef struct TPMSizedBuffer {
> > -    uint32_t size;
> > -    uint8_t  *buffer;
> > -} TPMSizedBuffer;
> > -
> >   typedef enum {
> >       TPM_TIS_STATE_IDLE = 0,
> >       TPM_TIS_STATE_READY,
> > diff --git a/tpm/tpm_backend.h b/include/tpm/tpm_backend.h
> > similarity index 50%
> > rename from tpm/tpm_backend.h
> > rename to include/tpm/tpm_backend.h
> > index 05d94d0..f5390b4 100644
> > --- a/tpm/tpm_backend.h
> > +++ b/include/tpm/tpm_backend.h
> > @@ -42,4 +42,61 @@ typedef enum TPMBackendCmd {
> >       TPM_BACKEND_CMD_TPM_RESET,
> >   } TPMBackendCmd;
> >
> > +struct TPMDriverOps;
> > +typedef struct TPMDriverOps TPMDriverOps;
> > +
> > +typedef struct TPMState TPMState;
> > +typedef struct TPMPassthruState TPMPassthruState;
> > +
> > +typedef struct TPMBackend {
> > +    char *id;
> > +    enum TpmModel fe_model;
> > +    char *path;
> > +    char *cancel_path;
> > +    const TPMDriverOps *ops;
> > +
> > +    union {
> > +        TPMPassthruState *tpm_pt;
> > +    } s;
> > +
> > +    QLIST_ENTRY(TPMBackend) list;
> > +} TPMBackend;
> > +
> > +typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty);
> > +
> > +typedef struct TPMSizedBuffer {
> > +    uint32_t size;
> > +    uint8_t  *buffer;
> > +} TPMSizedBuffer;
> > +
> > +struct TPMDriverOps {
> > +    enum TpmType type;
> > +    /* get a descriptive text of the backend to display to the
> > user */
> > +    const char *(*desc)(void);
> > +
> > +    TPMBackend *(*create)(QemuOpts *opts, const char *id);
> > +    void (*destroy)(TPMBackend *t);
> > +
> > +    /* initialize the backend */
> > +    int (*init)(TPMBackend *t, TPMState *s, TPMRecvDataCB
> > *datacb);
> > +    /* start up the TPM on the backend */
> > +    int (*startup_tpm)(TPMBackend *t);
> > +    /* returns true if nothing will ever answer TPM requests */
> > +    bool (*had_startup_error)(TPMBackend *t);
> > +
> > +    size_t (*realloc_buffer)(TPMSizedBuffer *sb);
> > +
> > +    void (*deliver_request)(TPMBackend *t);
> > +
> > +    void (*reset)(TPMBackend *t);
> > +
> > +    void (*cancel_cmd)(TPMBackend *t);
> > +
> > +    bool (*get_tpm_established_flag)(TPMBackend *t);
> > +};
> > +
> > +const TPMDriverOps *tpm_get_backend_driver(const char *type);
> > +int tpm_register_model(enum TpmModel model);
> > +int tpm_register_driver(const TPMDriverOps *tdo);
> > +
> >   #endif /* TPM_TPM_BACKEND_H */
> > diff --git a/tpm/tpm.c b/tpm.c
> > similarity index 93%
> > rename from tpm/tpm.c
> > rename to tpm.c
> > index ffd2495..49ac4cc 100644
> > --- a/tpm/tpm.c
> > +++ b/tpm.c
> > @@ -15,7 +15,7 @@
> >
> >   #include "monitor/monitor.h"
> >   #include "qapi/qmp/qerror.h"
> > -#include "tpm_int.h"
> > +#include "tpm/tpm_backend.h"
> >   #include "tpm/tpm.h"
> >   #include "qemu/config-file.h"
> >   #include "qmp-commands.h"
> > @@ -61,20 +61,6 @@ static bool tpm_model_is_registered(enum
> > TpmModel model)
> >       return false;
> >   }
> >
> > -/*
> > - * Write an error message in the given output buffer.
> > - */
> > -void tpm_write_fatal_error_response(uint8_t *out, uint32_t
> > out_len)
> > -{
> > -    if (out_len >= sizeof(struct tpm_resp_hdr)) {
> > -        struct tpm_resp_hdr *resp = (struct tpm_resp_hdr *)out;
> > -
> > -        resp->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
> > -        resp->len = cpu_to_be32(sizeof(struct tpm_resp_hdr));
> > -        resp->errcode = cpu_to_be32(TPM_FAIL);
> > -    }
> > -}
> > -
> >   const TPMDriverOps *tpm_get_backend_driver(const char *type)
> >   {
> >       int i;
> > @@ -108,7 +94,7 @@ int tpm_register_driver(const TPMDriverOps *tdo)
> >    * Walk the list of available TPM backend drivers and display
> >    them on the
> >    * screen.
> >    */
> > -void tpm_display_backend_drivers(void)
> > +static void tpm_display_backend_drivers(void)
> >   {
> >       int i;
> >
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2013-03-20 14:56 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-18 17:34 [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 01/35] hw: move headers to include/ Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 02/35] hw: make subdirectories for devices Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 03/35] configure: fix TPM logic Paolo Bonzini
2013-03-19 16:03   ` Andreas Färber
2013-03-18 17:34 ` [Qemu-devel] [PATCH 04/35] tpm: reorganize headers and split hardware part Paolo Bonzini
2013-03-20 13:49   ` Corey Bryant
2013-03-20 14:55     ` Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 05/35] hw: move another file to hw/alpha/ Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 06/35] hw: move target-independent files to subdirectories Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 07/35] hw: move virtio devices to hw/ subdirectories Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 08/35] hw: make all of hw/ide/ configurable via default-configs/ Paolo Bonzini
2013-03-18 17:34 ` [Qemu-devel] [PATCH 09/35] hw: make all of hw/usb/ " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 10/35] hw: make all of hw/pci/ " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 11/35] hw: move watchdogs to hw/watchdog, configure " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 12/35] hw: move MC146818RTC to hw/timer/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 13/35] hw: move NICs to hw/net/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 14/35] hw: move block devices to hw/block/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 15/35] hw: move audio devices to hw/audio/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 16/35] hw: move display devices to hw/display/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 17/35] hw: move I2C controllers to hw/i2c/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 18/35] hw: move SSI controllers to hw/ssi/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 19/35] hw: move SCSI controllers to hw/scsi/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 20/35] hw: move more files to hw/xen/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 21/35] hw: move char devices to hw/char/, configure via default-configs/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 22/35] hw: move ISA bridges and devices to hw/isa/, configure with default-configs/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 23/35] hw: move timer devices to hw/timer/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 24/35] hw: move input devices to hw/input/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 25/35] hw: move SD/MMC devices to hw/sd/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 26/35] hw: move PCI bridges to hw/pci/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 27/35] hw: move VFIO and ivshmem to hw/pci/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 28/35] hw: move DMA controllers to hw/dma/, configure with default-configs/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 29/35] hw: move interrupt controllers to hw/intc/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 30/35] hw: move GPIO interfaces to hw/gpio/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 31/35] hw: move NVRAM interfaces to hw/nvram/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 32/35] hw: move other devices to hw/misc/, " Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 33/35] arm: move remaining files to hw/arm/ Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 34/35] MAINTAINERS: update for source code movement Paolo Bonzini
2013-03-18 17:35 ` [Qemu-devel] [PATCH 35/35] hw: move private headers to hw/ subdirectories Paolo Bonzini
2013-03-18 17:38 ` [Qemu-devel] [PATCH 00/35] hw/ reorganization, part 2 Peter Maydell
2013-03-18 18:04   ` Paolo Bonzini
2013-03-18 18:11     ` Peter Maydell
2013-03-18 18:16       ` Paolo Bonzini
2013-03-18 18:17         ` Peter Maydell
2013-03-18 20:05           ` Paolo Bonzini
2013-03-18 20:21             ` Peter Maydell
2013-03-19  9:26               ` Paolo Bonzini
2013-03-19 10:10                 ` Peter Maydell
2013-03-19 10:27                   ` Paolo Bonzini
2013-03-19 10:32                     ` Peter Maydell
2013-03-19 22:23                       ` Paolo Bonzini
2013-03-19 22:34                         ` Peter Maydell
2013-03-19 23:35                           ` Paolo Bonzini
2013-03-19 23:44                             ` Peter Maydell
2013-03-20  0:00                               ` Paolo Bonzini
2013-03-20 10:30                                 ` Peter Maydell
2013-03-20 11:01                                   ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.