diff --git a/hw/a15mpcore.c b/hw/a15mpcore.c
index fe6c34c..d973d53 100644
--- a/hw/a15mpcore.c
+++ b/hw/a15mpcore.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* A15MP private memory region.  */
 
diff --git a/hw/a9mpcore.c b/hw/a9mpcore.c
index 01aee02..0a1a10f 100644
--- a/hw/a9mpcore.c
+++ b/hw/a9mpcore.c
@@ -8,7 +8,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 typedef struct A9MPPrivState {
     SysBusDevice busdev;
diff --git a/hw/ac97.c b/hw/ac97.c
index 6c565e7..c7d601f 100644
--- a/hw/ac97.c
+++ b/hw/ac97.c
@@ -17,10 +17,10 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 #include "sysemu/dma.h"
 
 enum {
diff --git a/hw/acpi.c b/hw/acpi.c
index 8c9dcc5..53e47d5 100644
--- a/hw/acpi.c
+++ b/hw/acpi.c
@@ -19,9 +19,9 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include "sysemu/sysemu.h"
-#include "hw.h"
-#include "pc.h"
-#include "acpi.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/acpi.h"
 #include "monitor/monitor.h"
 
 struct acpi_table_header {
diff --git a/hw/acpi_ich9.c b/hw/acpi_ich9.c
index d2f9808..29f84ff 100644
--- a/hw/acpi_ich9.c
+++ b/hw/acpi_ich9.c
@@ -23,16 +23,16 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "pc.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "acpi.h"
+#include "hw/acpi.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
 
-#include "ich9.h"
+#include "hw/ich9.h"
 
 //#define DEBUG
 
diff --git a/hw/acpi_ich9.h b/hw/acpi_ich9.h
index ecb82ab..91c3aeb 100644
--- a/hw/acpi_ich9.h
+++ b/hw/acpi_ich9.h
@@ -21,7 +21,7 @@
 #ifndef HW_ACPI_ICH9_H
 #define HW_ACPI_ICH9_H
 
-#include "acpi.h"
+#include "hw/acpi.h"
 
 typedef struct ICH9LPCPMRegs {
     /*
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index 65b2601..7a4b712 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -18,16 +18,16 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "pc.h"
-#include "apm.h"
-#include "pm_smbus.h"
-#include "pci/pci.h"
-#include "acpi.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/apm.h"
+#include "hw/pm_smbus.h"
+#include "hw/pci/pci.h"
+#include "hw/acpi.h"
 #include "sysemu/sysemu.h"
 #include "qemu/range.h"
 #include "exec/ioport.h"
-#include "fw_cfg.h"
+#include "hw/fw_cfg.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG
diff --git a/hw/adb.c b/hw/adb.c
index 6cf5465..fd9052c 100644
--- a/hw/adb.c
+++ b/hw/adb.c
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "adb.h"
+#include "hw/hw.h"
+#include "hw/adb.h"
 #include "ui/console.h"
 
 /* debug ADB */
diff --git a/hw/adb.h b/hw/adb.h
index 721f1ac..bdfccd4 100644
--- a/hw/adb.h
+++ b/hw/adb.h
@@ -26,7 +26,7 @@
 #if !defined(__ADB_H__)
 #define __ADB_H__
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 #define MAX_ADB_DEVICES 16
 
diff --git a/hw/adlib.c b/hw/adlib.c
index 07c69fc..e6bce59 100644
--- a/hw/adlib.c
+++ b/hw/adlib.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "isa.h"
+#include "hw/isa.h"
 
 //#define DEBUG
 
@@ -47,7 +47,7 @@
 void YMF262UpdateOneQEMU (int which, INT16 *dst, int length);
 #define SHIFT 2
 #else
-#include "fmopl.h"
+#include "hw/fmopl.h"
 #define SHIFT 1
 #endif
 
diff --git a/hw/ads7846.c b/hw/ads7846.c
index 29e5585..5da3dc5 100644
--- a/hw/ads7846.c
+++ b/hw/ads7846.c
@@ -10,7 +10,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "ssi.h"
+#include "hw/ssi.h"
 #include "ui/console.h"
 
 typedef struct {
diff --git a/hw/alpha_dp264.c b/hw/alpha_dp264.c
index 1cd549c..13aaa57 100644
--- a/hw/alpha_dp264.c
+++ b/hw/alpha_dp264.c
@@ -6,16 +6,16 @@
  * that we need to emulate as well.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "elf.h"
-#include "loader.h"
-#include "boards.h"
-#include "alpha_sys.h"
+#include "hw/loader.h"
+#include "hw/boards.h"
+#include "hw/alpha_sys.h"
 #include "sysemu/sysemu.h"
-#include "mc146818rtc.h"
-#include "ide.h"
-#include "i8254.h"
-#include "serial.h"
+#include "hw/mc146818rtc.h"
+#include "hw/ide.h"
+#include "hw/i8254.h"
+#include "hw/serial.h"
 
 #define MAX_IDE_BUS 2
 
diff --git a/hw/alpha_pci.c b/hw/alpha_pci.c
index 7327d48..8462868 100644
--- a/hw/alpha_pci.c
+++ b/hw/alpha_pci.c
@@ -7,7 +7,7 @@
  */
 
 #include "config.h"
-#include "alpha_sys.h"
+#include "hw/alpha_sys.h"
 #include "qemu/log.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/alpha_sys.h b/hw/alpha_sys.h
index 233a71e..b4ebd2a 100644
--- a/hw/alpha_sys.h
+++ b/hw/alpha_sys.h
@@ -3,11 +3,11 @@
 #ifndef HW_ALPHA_H
 #define HW_ALPHA_H 1
 
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "ide.h"
-#include "pc.h"
-#include "irq.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/ide.h"
+#include "hw/pc.h"
+#include "hw/irq.h"
 
 
 PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4],
diff --git a/hw/alpha_typhoon.c b/hw/alpha_typhoon.c
index bf9aabf..95571ff 100644
--- a/hw/alpha_typhoon.c
+++ b/hw/alpha_typhoon.c
@@ -8,10 +8,10 @@
 
 #include "cpu.h"
 #include "exec/exec-all.h"
-#include "hw.h"
-#include "devices.h"
+#include "hw/hw.h"
+#include "hw/devices.h"
 #include "sysemu/sysemu.h"
-#include "alpha_sys.h"
+#include "hw/alpha_sys.h"
 #include "exec/address-spaces.h"
 
 
diff --git a/hw/an5206.c b/hw/an5206.c
index 924be81..7c21c66 100644
--- a/hw/an5206.c
+++ b/hw/an5206.c
@@ -6,10 +6,10 @@
  * This code is licensed under the GPL
  */
 
-#include "hw.h"
-#include "mcf.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/mcf.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 7eb0c2b..7992d6f 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -26,12 +26,12 @@
    Ultrasparc PCI host is called the PCI Bus Module (PBM).  The APB is
    the secondary PCI bridge.  */
 
-#include "sysbus.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "pci/pci_bridge.h"
-#include "pci/pci_bus.h"
-#include "apb_pci.h"
+#include "hw/sysbus.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pci/pci_bridge.h"
+#include "hw/pci/pci_bus.h"
+#include "hw/apb_pci.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/apic.c b/hw/apic.c
index fd14b73..8eddba0 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 "apic_internal.h"
-#include "apic.h"
-#include "ioapic.h"
-#include "pci/msi.h"
+#include "hw/apic_internal.h"
+#include "hw/apic.h"
+#include "hw/ioapic.h"
+#include "hw/pci/msi.h"
 #include "qemu/host-utils.h"
 #include "trace.h"
-#include "pc.h"
-#include "apic-msidef.h"
+#include "hw/pc.h"
+#include "hw/apic-msidef.h"
 
 #define MAX_APIC_WORDS 8
 
diff --git a/hw/apic_common.c b/hw/apic_common.c
index d8c9810..d0c2616 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 "apic.h"
-#include "apic_internal.h"
+#include "hw/apic.h"
+#include "hw/apic_internal.h"
 #include "trace.h"
 #include "sysemu/kvm.h"
 
diff --git a/hw/apic_internal.h b/hw/apic_internal.h
index 9265e52..578241f 100644
--- a/hw/apic_internal.h
+++ b/hw/apic_internal.h
@@ -21,7 +21,7 @@
 #define QEMU_APIC_INTERNAL_H
 
 #include "exec/memory.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 
 /* APIC Local Vector Table */
diff --git a/hw/apm.c b/hw/apm.c
index 2e1b137..e2846f9 100644
--- a/hw/apm.c
+++ b/hw/apm.c
@@ -20,9 +20,9 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "apm.h"
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/apm.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 
 //#define DEBUG
 
diff --git a/hw/apm.h b/hw/apm.h
index 9abb47f..3edea5f 100644
--- a/hw/apm.h
+++ b/hw/apm.h
@@ -3,7 +3,7 @@
 
 #include <stdint.h>
 #include "qemu-common.h"
-#include "hw.h"
+#include "hw/hw.h"
 #include "exec/memory.h"
 
 typedef void (*apm_ctrl_changed_t)(uint32_t val, void *arg);
diff --git a/hw/applesmc.c b/hw/applesmc.c
index 5a8c4ff..44b9bac 100644
--- a/hw/applesmc.c
+++ b/hw/applesmc.c
@@ -30,8 +30,8 @@
  *
  */
 
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
 
diff --git a/hw/arm11mpcore.c b/hw/arm11mpcore.c
index ca49948..90dcead 100644
--- a/hw/arm11mpcore.c
+++ b/hw/arm11mpcore.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 
 /* MPCore private memory region.  */
diff --git a/hw/arm_boot.c b/hw/arm_boot.c
index 4065424..43253fd 100644
--- a/hw/arm_boot.c
+++ b/hw/arm_boot.c
@@ -8,11 +8,11 @@
  */
 
 #include "config.h"
-#include "hw.h"
-#include "arm-misc.h"
+#include "hw/hw.h"
+#include "hw/arm-misc.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/device_tree.h"
 #include "qemu/config-file.h"
diff --git a/hw/arm_gic.c b/hw/arm_gic.c
index 90e43d0..6b30e0b 100644
--- a/hw/arm_gic.c
+++ b/hw/arm_gic.c
@@ -18,8 +18,8 @@
  *  armv7m_nvic device.
  */
 
-#include "sysbus.h"
-#include "arm_gic_internal.h"
+#include "hw/sysbus.h"
+#include "hw/arm_gic_internal.h"
 
 //#define DEBUG_GIC
 
diff --git a/hw/arm_gic_common.c b/hw/arm_gic_common.c
index 40e8dd7..745b4b2 100644
--- a/hw/arm_gic_common.c
+++ b/hw/arm_gic_common.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "arm_gic_internal.h"
+#include "hw/arm_gic_internal.h"
 
 static void gic_save(QEMUFile *f, void *opaque)
 {
diff --git a/hw/arm_gic_internal.h b/hw/arm_gic_internal.h
index 699352c..b10ac5e 100644
--- a/hw/arm_gic_internal.h
+++ b/hw/arm_gic_internal.h
@@ -21,7 +21,7 @@
 #ifndef QEMU_ARM_GIC_INTERNAL_H
 #define QEMU_ARM_GIC_INTERNAL_H
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* Maximum number of possible interrupts, determined by the GIC architecture */
 #define GIC_MAXIRQ 1020
diff --git a/hw/arm_l2x0.c b/hw/arm_l2x0.c
index ae1e51d..eb4427d 100644
--- a/hw/arm_l2x0.c
+++ b/hw/arm_l2x0.c
@@ -18,7 +18,7 @@
  *
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* L2C-310 r3p2 */
 #define CACHE_ID 0x410000c8
diff --git a/hw/arm_mptimer.c b/hw/arm_mptimer.c
index 7b08aa3..f59a9f1 100644
--- a/hw/arm_mptimer.c
+++ b/hw/arm_mptimer.c
@@ -19,7 +19,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 
 /* This device implements the per-cpu private timer and watchdog block
diff --git a/hw/arm_pic.c b/hw/arm_pic.c
index ffb4d41..a7ad893 100644
--- a/hw/arm_pic.c
+++ b/hw/arm_pic.c
@@ -7,8 +7,8 @@
  * This code is licensed under the LGPL
  */
 
-#include "hw.h"
-#include "arm-misc.h"
+#include "hw/hw.h"
+#include "hw/arm-misc.h"
 
 /* Input 0 is IRQ and input 1 is FIQ.  */
 static void arm_pic_cpu_handler(void *opaque, int irq, int level)
diff --git a/hw/arm_sysctl.c b/hw/arm_sysctl.c
index 7ecb7da..a46f8d4 100644
--- a/hw/arm_sysctl.c
+++ b/hw/arm_sysctl.c
@@ -7,10 +7,10 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "sysbus.h"
-#include "primecell.h"
+#include "hw/sysbus.h"
+#include "hw/primecell.h"
 #include "sysemu/sysemu.h"
 
 #define LOCK_VALUE 0xa05f
diff --git a/hw/arm_timer.c b/hw/arm_timer.c
index c1e56be..6449870 100644
--- a/hw/arm_timer.c
+++ b/hw/arm_timer.c
@@ -7,11 +7,11 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "qemu-common.h"
-#include "qdev.h"
-#include "ptimer.h"
+#include "hw/qdev.h"
+#include "hw/ptimer.h"
 
 /* Common timer implementation.  */
 
diff --git a/hw/armv7m.c b/hw/armv7m.c
index 904696c..1d5bb59 100644
--- a/hw/armv7m.c
+++ b/hw/armv7m.c
@@ -7,9 +7,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "loader.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/loader.h"
 #include "elf.h"
 
 /* Bitbanded IO.  Each word corresponds to a single bit.  */
diff --git a/hw/armv7m_nvic.c b/hw/armv7m_nvic.c
index d5798d0..4d30423 100644
--- a/hw/armv7m_nvic.c
+++ b/hw/armv7m_nvic.c
@@ -10,11 +10,11 @@
  * NVIC.  Much of that is also implemented here.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "arm-misc.h"
+#include "hw/arm-misc.h"
 #include "exec/address-spaces.h"
-#include "arm_gic_internal.h"
+#include "hw/arm_gic_internal.h"
 
 typedef struct {
     GICState gic;
diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c
index dd37fa1..eccd423 100644
--- a/hw/axis_dev88.c
+++ b/hw/axis_dev88.c
@@ -22,14 +22,14 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
-#include "flash.h"
-#include "boards.h"
-#include "etraxfs.h"
-#include "loader.h"
+#include "hw/flash.h"
+#include "hw/boards.h"
+#include "hw/etraxfs.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "cris-boot.h"
+#include "hw/cris-boot.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/bitbang_i2c.c b/hw/bitbang_i2c.c
index 114508f..b8e6d3a 100644
--- a/hw/bitbang_i2c.c
+++ b/hw/bitbang_i2c.c
@@ -9,9 +9,9 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "bitbang_i2c.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/bitbang_i2c.h"
+#include "hw/sysbus.h"
 
 //#define DEBUG_BITBANG_I2C
 
diff --git a/hw/bitbang_i2c.h b/hw/bitbang_i2c.h
index 519d2dc..e860627 100644
--- a/hw/bitbang_i2c.h
+++ b/hw/bitbang_i2c.h
@@ -1,7 +1,7 @@
 #ifndef BITBANG_I2C_H
 #define BITBANG_I2C_H
 
-#include "i2c.h"
+#include "hw/i2c.h"
 
 typedef struct bitbang_i2c_interface bitbang_i2c_interface;
 
diff --git a/hw/blizzard.c b/hw/blizzard.c
index 24bde32..805f4d5 100644
--- a/hw/blizzard.c
+++ b/hw/blizzard.c
@@ -20,8 +20,8 @@
 
 #include "qemu-common.h"
 #include "ui/console.h"
-#include "devices.h"
-#include "vga_int.h"
+#include "hw/devices.h"
+#include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 
 typedef void (*blizzard_fn_t)(uint8_t *, const uint8_t *, unsigned int);
@@ -941,15 +941,15 @@ static void blizzard_screen_dump(void *opaque, const char *filename,
 }
 
 #define DEPTH 8
-#include "blizzard_template.h"
+#include "hw/blizzard_template.h"
 #define DEPTH 15
-#include "blizzard_template.h"
+#include "hw/blizzard_template.h"
 #define DEPTH 16
-#include "blizzard_template.h"
+#include "hw/blizzard_template.h"
 #define DEPTH 24
-#include "blizzard_template.h"
+#include "hw/blizzard_template.h"
 #define DEPTH 32
-#include "blizzard_template.h"
+#include "hw/blizzard_template.h"
 
 void *s1d13745_init(qemu_irq gpio_int)
 {
diff --git a/hw/boards.h b/hw/boards.h
index 3813d4e..425bdc7 100644
--- a/hw/boards.h
+++ b/hw/boards.h
@@ -4,7 +4,7 @@
 #define HW_BOARDS_H
 
 #include "sysemu/blockdev.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 
 #define DEFAULT_MACHINE_OPTIONS \
     .boot_order = "cad"
diff --git a/hw/bonito.c b/hw/bonito.c
index 0498c9b..3456e78 100644
--- a/hw/bonito.c
+++ b/hw/bonito.c
@@ -39,11 +39,11 @@
 
 #include <assert.h>
 
-#include "hw.h"
-#include "pci/pci.h"
-#include "pc.h"
-#include "mips.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/pc.h"
+#include "hw/mips.h"
+#include "hw/pci/pci_host.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/bt-hci-csr.c b/hw/bt-hci-csr.c
index 2070bb9..e4ada3c 100644
--- a/hw/bt-hci-csr.c
+++ b/hw/bt-hci-csr.c
@@ -21,9 +21,9 @@
 #include "qemu-common.h"
 #include "char/char.h"
 #include "qemu/timer.h"
-#include "irq.h"
+#include "hw/irq.h"
 #include "bt/bt.h"
-#include "bt.h"
+#include "hw/bt.h"
 
 struct csrhci_s {
     int enable;
diff --git a/hw/bt-hci.c b/hw/bt-hci.c
index 69d2c73..a76edea 100644
--- a/hw/bt-hci.c
+++ b/hw/bt-hci.c
@@ -20,9 +20,9 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "usb.h"
+#include "hw/usb.h"
 #include "bt/bt.h"
-#include "bt.h"
+#include "hw/bt.h"
 
 struct bt_hci_s {
     uint8_t *(*evt_packet)(void *opaque);
diff --git a/hw/bt-hid.c b/hw/bt-hid.c
index cfa7c14..69ccf9b 100644
--- a/hw/bt-hid.c
+++ b/hw/bt-hid.c
@@ -21,8 +21,8 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "hid.h"
-#include "bt.h"
+#include "hw/hid.h"
+#include "hw/bt.h"
 
 enum hid_transaction_req {
     BT_HANDSHAKE			= 0x0,
diff --git a/hw/bt-l2cap.c b/hw/bt-l2cap.c
index ba061c0..521587a 100644
--- a/hw/bt-l2cap.c
+++ b/hw/bt-l2cap.c
@@ -19,7 +19,7 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "bt.h"
+#include "hw/bt.h"
 
 #define L2CAP_CID_MAX	0x100	/* Between 0x40 and 0x10000 */
 
diff --git a/hw/bt-sdp.c b/hw/bt-sdp.c
index c0431d1..218e075 100644
--- a/hw/bt-sdp.c
+++ b/hw/bt-sdp.c
@@ -18,7 +18,7 @@
  */
 
 #include "qemu-common.h"
-#include "bt.h"
+#include "hw/bt.h"
 
 struct bt_l2cap_sdp_state_s {
     struct bt_l2cap_conn_params_s *channel;
diff --git a/hw/bt.c b/hw/bt.c
index 4f2372d..24ef4de 100644
--- a/hw/bt.c
+++ b/hw/bt.c
@@ -19,7 +19,7 @@
 
 #include "qemu-common.h"
 #include "bt/bt.h"
-#include "bt.h"
+#include "hw/bt.h"
 
 /* Slave implementations can ignore this */
 static void bt_dummy_lmp_mode_change(struct bt_link_s *link)
diff --git a/hw/cadence_gem.c b/hw/cadence_gem.c
index de7d15a..e177057 100644
--- a/hw/cadence_gem.c
+++ b/hw/cadence_gem.c
@@ -24,7 +24,7 @@
 
 #include <zlib.h> /* For crc32 */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
 #include "net/checksum.h"
 
diff --git a/hw/cadence_ttc.c b/hw/cadence_ttc.c
index 67028a3..ba584f4 100644
--- a/hw/cadence_ttc.c
+++ b/hw/cadence_ttc.c
@@ -16,7 +16,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 
 #ifdef CADENCE_TTC_ERR_DEBUG
diff --git a/hw/cadence_uart.c b/hw/cadence_uart.c
index 5766d38..5426f10 100644
--- a/hw/cadence_uart.c
+++ b/hw/cadence_uart.c
@@ -16,7 +16,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 #include "qemu/timer.h"
 
diff --git a/hw/cbus.c b/hw/cbus.c
index 6fd3905..29b467b 100644
--- a/hw/cbus.c
+++ b/hw/cbus.c
@@ -21,8 +21,8 @@
  */
 
 #include "qemu-common.h"
-#include "irq.h"
-#include "devices.h"
+#include "hw/irq.h"
+#include "hw/devices.h"
 #include "sysemu/sysemu.h"
 
 //#define DEBUG
diff --git a/hw/ccid.h b/hw/ccid.h
index 6adc745..9334da8 100644
--- a/hw/ccid.h
+++ b/hw/ccid.h
@@ -10,7 +10,7 @@
 #ifndef CCID_H
 #define CCID_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 typedef struct CCIDCardState CCIDCardState;
 typedef struct CCIDCardInfo CCIDCardInfo;
diff --git a/hw/cdrom.c b/hw/cdrom.c
index 3b99535..a018eec 100644
--- a/hw/cdrom.c
+++ b/hw/cdrom.c
@@ -26,7 +26,7 @@
    here.  */
 
 #include "qemu-common.h"
-#include "scsi.h"
+#include "hw/scsi.h"
 
 static void lba_to_msf(uint8_t *buf, int lba)
 {
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 2a2c8da..7babcb6 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -26,11 +26,11 @@
  * Reference: Finn Thogersons' VGADOC4b
  *   available at http://home.worldonline.dk/~finth/
  */
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "ui/console.h"
-#include "vga_int.h"
-#include "loader.h"
+#include "hw/vga_int.h"
+#include "hw/loader.h"
 
 /*
  * TODO:
@@ -288,63 +288,63 @@ static void cirrus_bitblt_fill_nop(CirrusVGAState *s,
 
 #define ROP_NAME 0
 #define ROP_FN(d, s) 0
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_and_dst
 #define ROP_FN(d, s) (s) & (d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_and_notdst
 #define ROP_FN(d, s) (s) & (~(d))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notdst
 #define ROP_FN(d, s) ~(d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src
 #define ROP_FN(d, s) s
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME 1
 #define ROP_FN(d, s) ~0
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_and_dst
 #define ROP_FN(d, s) (~(s)) & (d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_xor_dst
 #define ROP_FN(d, s) (s) ^ (d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_or_dst
 #define ROP_FN(d, s) (s) | (d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_or_notdst
 #define ROP_FN(d, s) (~(s)) | (~(d))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_notxor_dst
 #define ROP_FN(d, s) ~((s) ^ (d))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME src_or_notdst
 #define ROP_FN(d, s) (s) | (~(d))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc
 #define ROP_FN(d, s) (~(s))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_or_dst
 #define ROP_FN(d, s) (~(s)) | (d)
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 #define ROP_NAME notsrc_and_notdst
 #define ROP_FN(d, s) (~(s)) & (~(d))
-#include "cirrus_vga_rop.h"
+#include "hw/cirrus_vga_rop.h"
 
 static const cirrus_bitblt_rop_t cirrus_fwd_rop[16] = {
     cirrus_bitblt_rop_fwd_0,
@@ -2165,13 +2165,13 @@ static void cirrus_cursor_invalidate(VGACommonState *s1)
 }
 
 #define DEPTH 8
-#include "cirrus_vga_template.h"
+#include "hw/cirrus_vga_template.h"
 
 #define DEPTH 16
-#include "cirrus_vga_template.h"
+#include "hw/cirrus_vga_template.h"
 
 #define DEPTH 32
-#include "cirrus_vga_template.h"
+#include "hw/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/cirrus_vga_rop.h
index 9c7bb09..894610c 100644
--- a/hw/cirrus_vga_rop.h
+++ b/hw/cirrus_vga_rop.h
@@ -191,16 +191,16 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
 }
 
 #define DEPTH 8
-#include "cirrus_vga_rop2.h"
+#include "hw/cirrus_vga_rop2.h"
 
 #define DEPTH 16
-#include "cirrus_vga_rop2.h"
+#include "hw/cirrus_vga_rop2.h"
 
 #define DEPTH 24
-#include "cirrus_vga_rop2.h"
+#include "hw/cirrus_vga_rop2.h"
 
 #define DEPTH 32
-#include "cirrus_vga_rop2.h"
+#include "hw/cirrus_vga_rop2.h"
 
 #undef ROP_NAME
 #undef ROP_OP
diff --git a/hw/collie.c b/hw/collie.c
index d19db59..17fddc8 100644
--- a/hw/collie.c
+++ b/hw/collie.c
@@ -8,13 +8,13 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "sysbus.h"
-#include "boards.h"
-#include "devices.h"
-#include "strongarm.h"
-#include "arm-misc.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
+#include "hw/boards.h"
+#include "hw/devices.h"
+#include "hw/strongarm.h"
+#include "hw/arm-misc.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/cris-boot.c b/hw/cris-boot.c
index b21326f..c330e22 100644
--- a/hw/cris-boot.c
+++ b/hw/cris-boot.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "cris-boot.h"
+#include "hw/cris-boot.h"
 
 static void main_cpu_reset(void *opaque)
 {
diff --git a/hw/cris_pic_cpu.c b/hw/cris_pic_cpu.c
index 3da0e86..7f50471 100644
--- a/hw/cris_pic_cpu.c
+++ b/hw/cris_pic_cpu.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "etraxfs.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/etraxfs.h"
 
 #define D(x)
 
diff --git a/hw/cs4231.c b/hw/cs4231.c
index ae384b9..2975336 100644
--- a/hw/cs4231.c
+++ b/hw/cs4231.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /*
diff --git a/hw/cs4231a.c b/hw/cs4231a.c
index 73f0859..f005f25 100644
--- a/hw/cs4231a.c
+++ b/hw/cs4231a.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "isa.h"
-#include "qdev.h"
+#include "hw/isa.h"
+#include "hw/qdev.h"
 #include "qemu/timer.h"
 
 /*
diff --git a/hw/cuda.c b/hw/cuda.c
index b36c535..2ae430d 100644
--- a/hw/cuda.c
+++ b/hw/cuda.c
@@ -22,9 +22,9 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "adb.h"
+#include "hw/hw.h"
+#include "hw/ppc/mac.h"
+#include "hw/adb.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/dataplane/event-poll.c b/hw/dataplane/event-poll.c
index 2b55c6e..b98acf9 100644
--- a/hw/dataplane/event-poll.c
+++ b/hw/dataplane/event-poll.c
@@ -13,7 +13,7 @@
  */
 
 #include <sys/epoll.h>
-#include "hw/dataplane/event-poll.h"
+#include "event-poll.h"
 
 /* Add an event notifier and its callback for polling */
 void event_poll_add(EventPoll *poll, EventHandler *handler,
diff --git a/hw/dataplane/ioq.c b/hw/dataplane/ioq.c
index 0c9f5c4..f709f87 100644
--- a/hw/dataplane/ioq.c
+++ b/hw/dataplane/ioq.c
@@ -12,7 +12,7 @@
  *
  */
 
-#include "hw/dataplane/ioq.h"
+#include "ioq.h"
 
 void ioq_init(IOQueue *ioq, int fd, unsigned int max_reqs)
 {
diff --git a/hw/dataplane/virtio-blk.c b/hw/dataplane/virtio-blk.c
index 8588f93..8319c94 100644
--- a/hw/dataplane/virtio-blk.c
+++ b/hw/dataplane/virtio-blk.c
@@ -22,7 +22,7 @@
 #include "migration/migration.h"
 #include "block/block.h"
 #include "hw/virtio-blk.h"
-#include "hw/dataplane/virtio-blk.h"
+#include "virtio-blk.h"
 
 enum {
     SEG_MAX = 126,                  /* maximum number of I/O segments */
diff --git a/hw/dataplane/vring.c b/hw/dataplane/vring.c
index eff5ad8..e3b2253 100644
--- a/hw/dataplane/vring.c
+++ b/hw/dataplane/vring.c
@@ -15,7 +15,7 @@
  */
 
 #include "trace.h"
-#include "hw/dataplane/vring.h"
+#include "vring.h"
 #include "qemu/error-report.h"
 
 /* Map the guest's vring to host memory */
diff --git a/hw/dataplane/vring.h b/hw/dataplane/vring.h
index 3274f62..defb1ef 100644
--- a/hw/dataplane/vring.h
+++ b/hw/dataplane/vring.h
@@ -19,7 +19,7 @@
 
 #include <linux/virtio_ring.h>
 #include "qemu-common.h"
-#include "hw/dataplane/hostmem.h"
+#include "hostmem.h"
 #include "hw/virtio.h"
 
 typedef struct {
diff --git a/hw/debugcon.c b/hw/debugcon.c
index 81b2bb0..cab7691 100644
--- a/hw/debugcon.c
+++ b/hw/debugcon.c
@@ -24,10 +24,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "char/char.h"
-#include "isa.h"
-#include "pc.h"
+#include "hw/isa.h"
+#include "hw/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 c1b489d..ba67a8f 100644
--- a/hw/debugexit.c
+++ b/hw/debugexit.c
@@ -7,8 +7,8 @@
  * (at your option) any later version.
  */
 
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 
 #define TYPE_ISA_DEBUG_EXIT_DEVICE "isa-debug-exit"
 #define ISA_DEBUG_EXIT_DEVICE(obj) \
diff --git a/hw/dec_pci.c b/hw/dec_pci.c
index ee3f4ca..64a5092 100644
--- a/hw/dec_pci.c
+++ b/hw/dec_pci.c
@@ -23,12 +23,12 @@
  * THE SOFTWARE.
  */
 
-#include "dec_pci.h"
-#include "sysbus.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "pci/pci_bridge.h"
-#include "pci/pci_bus.h"
+#include "hw/dec_pci.h"
+#include "hw/sysbus.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pci/pci_bridge.h"
+#include "hw/pci/pci_bus.h"
 
 /* debug DEC */
 //#define DEBUG_DEC
diff --git a/hw/dma.c b/hw/dma.c
index 5bdf435..fd1161c 100644
--- a/hw/dma.c
+++ b/hw/dma.c
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 #include "qemu/main-loop.h"
 
 /* #define DEBUG_DMA */
diff --git a/hw/dp8393x.c b/hw/dp8393x.c
index 808157b..8b5ca6a 100644
--- a/hw/dp8393x.c
+++ b/hw/dp8393x.c
@@ -17,10 +17,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 #include "net/net.h"
-#include "mips.h"
+#include "hw/mips.h"
 
 //#define DEBUG_SONIC
 
diff --git a/hw/ds1225y.c b/hw/ds1225y.c
index a6219a7..488f1d7 100644
--- a/hw/ds1225y.c
+++ b/hw/ds1225y.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 typedef struct {
diff --git a/hw/ds1338.c b/hw/ds1338.c
index 1da0f96..ae7ca9f 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 "i2c.h"
+#include "hw/i2c.h"
 
 /* Size of NVRAM including both the user-accessible area and the
  * secondary register area.
diff --git a/hw/dummy_m68k.c b/hw/dummy_m68k.c
index 3a88805..544d56b 100644
--- a/hw/dummy_m68k.c
+++ b/hw/dummy_m68k.c
@@ -6,9 +6,9 @@
  * This code is licensed under the GPL
  */
 
-#include "hw.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/e1000.c b/hw/e1000.c
index d6fe815..ed37061 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -25,15 +25,15 @@
  */
 
 
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
 #include "net/checksum.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
 
-#include "e1000_hw.h"
+#include "hw/e1000_hw.h"
 
 #define E1000_DEBUG
 
diff --git a/hw/ecc.c b/hw/ecc.c
index 60d1f1d..8c97c33 100644
--- a/hw/ecc.c
+++ b/hw/ecc.c
@@ -11,8 +11,8 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
 
 /*
  * Pre-calculated 256-way 1 byte column parity.  Table borrowed from Linux.
diff --git a/hw/eccmemctl.c b/hw/eccmemctl.c
index dbac2c2..6f4a407 100644
--- a/hw/eccmemctl.c
+++ b/hw/eccmemctl.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /* There are 3 versions of this chip used in SMP sun4m systems:
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 5d23796..68d729c 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -41,10 +41,10 @@
  */
 
 #include <stddef.h>             /* offsetof */
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
-#include "eeprom93xx.h"
+#include "hw/eeprom93xx.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/eeprom93xx.c b/hw/eeprom93xx.c
index 4c7158d..39f5605 100644
--- a/hw/eeprom93xx.c
+++ b/hw/eeprom93xx.c
@@ -35,8 +35,8 @@
  * - No emulation of EEPROM timings.
  */
 
-#include "hw.h"
-#include "eeprom93xx.h"
+#include "hw/hw.h"
+#include "hw/eeprom93xx.h"
 
 /* Debug EEPROM emulation. */
 //~ #define DEBUG_EEPROM
diff --git a/hw/empty_slot.c b/hw/empty_slot.c
index d7b5497..5234a4d 100644
--- a/hw/empty_slot.c
+++ b/hw/empty_slot.c
@@ -9,9 +9,9 @@
  * version.
  */
 
-#include "hw.h"
-#include "sysbus.h"
-#include "empty_slot.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
+#include "hw/empty_slot.h"
 
 //#define DEBUG_EMPTY_SLOT
 
diff --git a/hw/es1370.c b/hw/es1370.c
index 977d2e3..e64cf23 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -26,10 +26,10 @@
 /* #define VERBOSE_ES1370 */
 #define SILENT_ES1370
 
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 #include "sysemu/dma.h"
 
 /* Missing stuff:
diff --git a/hw/escc.c b/hw/escc.c
index 18c0292..baf0219 100644
--- a/hw/escc.c
+++ b/hw/escc.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "sysbus.h"
-#include "escc.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
+#include "hw/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 c949e6e..7599b39 100644
--- a/hw/esp-pci.c
+++ b/hw/esp-pci.c
@@ -23,9 +23,9 @@
  * THE SOFTWARE.
  */
 
-#include "pci/pci.h"
-#include "eeprom93xx.h"
-#include "esp.h"
+#include "hw/pci/pci.h"
+#include "hw/eeprom93xx.h"
+#include "hw/esp.h"
 #include "trace.h"
 #include "qemu/log.h"
 
diff --git a/hw/esp.c b/hw/esp.c
index 2af48aa..5365eac 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -23,8 +23,8 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "esp.h"
+#include "hw/sysbus.h"
+#include "hw/esp.h"
 #include "trace.h"
 #include "qemu/log.h"
 
diff --git a/hw/esp.h b/hw/esp.h
index f15cc7b..830673b 100644
--- a/hw/esp.h
+++ b/hw/esp.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_ESP_H
 #define QEMU_HW_ESP_H
 
-#include "scsi.h"
+#include "hw/scsi.h"
 
 /* esp.c */
 #define ESP_MAX_DEVS 7
diff --git a/hw/etraxfs.h b/hw/etraxfs.h
index 180de5a..0df4fdd 100644
--- a/hw/etraxfs.h
+++ b/hw/etraxfs.h
@@ -26,7 +26,7 @@
 #define HW_EXTRAXFS_H 1
 
 #include "net/net.h"
-#include "etraxfs_dma.h"
+#include "hw/etraxfs_dma.h"
 
 qemu_irq *cris_pic_init_cpu(CPUCRISState *env);
 
diff --git a/hw/etraxfs_dma.c b/hw/etraxfs_dma.c
index d415003..a84ec1f 100644
--- a/hw/etraxfs_dma.c
+++ b/hw/etraxfs_dma.c
@@ -23,12 +23,12 @@
  */
 #include <stdio.h>
 #include <sys/time.h>
-#include "hw.h"
+#include "hw/hw.h"
 #include "exec/address-spaces.h"
 #include "qemu-common.h"
 #include "sysemu/sysemu.h"
 
-#include "etraxfs_dma.h"
+#include "hw/etraxfs_dma.h"
 
 #define D(x)
 
diff --git a/hw/etraxfs_eth.c b/hw/etraxfs_eth.c
index ad36411..591bee2 100644
--- a/hw/etraxfs_eth.c
+++ b/hw/etraxfs_eth.c
@@ -23,9 +23,9 @@
  */
 
 #include <stdio.h>
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
-#include "etraxfs.h"
+#include "hw/etraxfs.h"
 
 #define D(x)
 
diff --git a/hw/etraxfs_pic.c b/hw/etraxfs_pic.c
index 64af31c..635103c 100644
--- a/hw/etraxfs_pic.c
+++ b/hw/etraxfs_pic.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
 //#include "pc.h"
 //#include "etraxfs.h"
 
diff --git a/hw/etraxfs_ser.c b/hw/etraxfs_ser.c
index 72c8868..7e24d34 100644
--- a/hw/etraxfs_ser.c
+++ b/hw/etraxfs_ser.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 #include "qemu/log.h"
 
diff --git a/hw/etraxfs_timer.c b/hw/etraxfs_timer.c
index d3dac52..3cd9476 100644
--- a/hw/etraxfs_timer.c
+++ b/hw/etraxfs_timer.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
 #define D(x)
 
diff --git a/hw/exynos4210.c b/hw/exynos4210.c
index fa54e42..4592514 100644
--- a/hw/exynos4210.c
+++ b/hw/exynos4210.c
@@ -21,13 +21,13 @@
  *
  */
 
-#include "boards.h"
+#include "hw/boards.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "loader.h"
-#include "exynos4210.h"
-#include "usb/hcd-ehci.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/loader.h"
+#include "hw/exynos4210.h"
+#include "hw/usb/hcd-ehci.h"
 
 #define EXYNOS4210_CHIPID_ADDR         0x10000000
 
diff --git a/hw/exynos4210_combiner.c b/hw/exynos4210_combiner.c
index ba644b4..5818f10 100644
--- a/hw/exynos4210_combiner.c
+++ b/hw/exynos4210_combiner.c
@@ -27,9 +27,9 @@
  * IRQs are passed to GIC through Combiner.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
-#include "exynos4210.h"
+#include "hw/exynos4210.h"
 
 //#define DEBUG_COMBINER
 
diff --git a/hw/exynos4210_fimd.c b/hw/exynos4210_fimd.c
index 3d498b7..6b31ae3 100644
--- a/hw/exynos4210_fimd.c
+++ b/hw/exynos4210_fimd.c
@@ -24,7 +24,7 @@
 
 #include "qemu-common.h"
 #include "exec/cpu-all.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
 #include "qemu/bswap.h"
diff --git a/hw/exynos4210_gic.c b/hw/exynos4210_gic.c
index 94b138f..807849c 100644
--- a/hw/exynos4210_gic.c
+++ b/hw/exynos4210_gic.c
@@ -20,10 +20,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu-common.h"
-#include "irq.h"
-#include "exynos4210.h"
+#include "hw/irq.h"
+#include "hw/exynos4210.h"
 
 enum ExtGicId {
     EXT_GIC_ID_MDMA_LCD0 = 66,
diff --git a/hw/exynos4210_i2c.c b/hw/exynos4210_i2c.c
index cefd736..9e42875 100644
--- a/hw/exynos4210_i2c.c
+++ b/hw/exynos4210_i2c.c
@@ -21,8 +21,8 @@
  */
 
 #include "qemu/timer.h"
-#include "sysbus.h"
-#include "i2c.h"
+#include "hw/sysbus.h"
+#include "hw/i2c.h"
 
 #ifndef EXYNOS4_I2C_DEBUG
 #define EXYNOS4_I2C_DEBUG                 0
diff --git a/hw/exynos4210_mct.c b/hw/exynos4210_mct.c
index d7d5904..862c962 100644
--- a/hw/exynos4210_mct.c
+++ b/hw/exynos4210_mct.c
@@ -52,12 +52,12 @@
  * there is no way to avoid frequently events).
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "qemu-common.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
-#include "exynos4210.h"
+#include "hw/exynos4210.h"
 
 //#define DEBUG_MCT
 
diff --git a/hw/exynos4210_pmu.c b/hw/exynos4210_pmu.c
index 7c81a1b..ba5aa8d 100644
--- a/hw/exynos4210_pmu.c
+++ b/hw/exynos4210_pmu.c
@@ -24,7 +24,7 @@
  * uses PMU INFORM5 register as a holding pen.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #ifndef DEBUG_PMU
 #define DEBUG_PMU           0
diff --git a/hw/exynos4210_pwm.c b/hw/exynos4210_pwm.c
index c865624..6d74cd4 100644
--- a/hw/exynos4210_pwm.c
+++ b/hw/exynos4210_pwm.c
@@ -20,12 +20,12 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "qemu-common.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
-#include "exynos4210.h"
+#include "hw/exynos4210.h"
 
 //#define DEBUG_PWM
 
diff --git a/hw/exynos4210_rtc.c b/hw/exynos4210_rtc.c
index 5694a62..d170ca7 100644
--- a/hw/exynos4210_rtc.c
+++ b/hw/exynos4210_rtc.c
@@ -25,16 +25,16 @@
  *  CLKOUTEN Bit[9] not used
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "qemu-common.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 
-#include "exynos4210.h"
+#include "hw/exynos4210.h"
 
 #define DEBUG_RTC 0
 
diff --git a/hw/exynos4210_uart.c b/hw/exynos4210_uart.c
index bdf797a..006f3d4 100644
--- a/hw/exynos4210_uart.c
+++ b/hw/exynos4210_uart.c
@@ -19,11 +19,11 @@
  *
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "char/char.h"
 
-#include "exynos4210.h"
+#include "hw/exynos4210.h"
 
 #undef DEBUG_UART
 #undef DEBUG_UART_EXTEND
diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c
index b59e6aa..473da34 100644
--- a/hw/exynos4_boards.c
+++ b/hw/exynos4_boards.c
@@ -22,12 +22,12 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
-#include "arm-misc.h"
+#include "hw/arm-misc.h"
 #include "exec/address-spaces.h"
-#include "exynos4210.h"
-#include "boards.h"
+#include "hw/exynos4210.h"
+#include "hw/boards.h"
 
 #undef DEBUG
 
diff --git a/hw/fdc.c b/hw/fdc.c
index 976a587..a4bb129 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -27,13 +27,13 @@
  * way. There are changes in DOR register and DMA is not available.
  */
 
-#include "hw.h"
-#include "fdc.h"
+#include "hw/hw.h"
+#include "hw/fdc.h"
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
-#include "isa.h"
-#include "sysbus.h"
-#include "qdev-addr.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
+#include "hw/qdev-addr.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
diff --git a/hw/fmopl.c b/hw/fmopl.c
index f0a0234..e50ba6c 100644
--- a/hw/fmopl.c
+++ b/hw/fmopl.c
@@ -39,7 +39,7 @@
 #include <stdarg.h>
 #include <math.h>
 //#include "driver.h"		/* use M.A.M.E. */
-#include "fmopl.h"
+#include "hw/fmopl.h"
 
 #ifndef PI
 #define PI 3.14159265358979323846
diff --git a/hw/framebuffer.c b/hw/framebuffer.c
index 2a87096..d341aa0 100644
--- a/hw/framebuffer.c
+++ b/hw/framebuffer.c
@@ -17,9 +17,9 @@
    - Remove all DisplayState knowledge from devices.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "framebuffer.h"
+#include "hw/framebuffer.h"
 
 /* Render an image from a shared memory framebuffer.  */
    
diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 02618f2..63a1998 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "isa.h"
-#include "fw_cfg.h"
-#include "sysbus.h"
+#include "hw/isa.h"
+#include "hw/fw_cfg.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 #include "qemu/config-file.h"
diff --git a/hw/g364fb.c b/hw/g364fb.c
index 0c0c8ba..7b69815 100644
--- a/hw/g364fb.c
+++ b/hw/g364fb.c
@@ -17,11 +17,11 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
 #include "trace.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 typedef struct G364State {
     /* hardware */
diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c
index 95639d5..11e47d5 100644
--- a/hw/grackle_pci.c
+++ b/hw/grackle_pci.c
@@ -23,9 +23,9 @@
  * THE SOFTWARE.
  */
 
-#include "pci/pci_host.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/ppc/mac.h"
+#include "hw/pci/pci.h"
 
 /* debug Grackle */
 //#define DEBUG_GRACKLE
diff --git a/hw/grlib.h b/hw/grlib.h
index afd5389..470ce72 100644
--- a/hw/grlib.h
+++ b/hw/grlib.h
@@ -25,8 +25,8 @@
 #ifndef _GRLIB_H_
 #define _GRLIB_H_
 
-#include "qdev.h"
-#include "sysbus.h"
+#include "hw/qdev.h"
+#include "hw/sysbus.h"
 
 /* Emulation of GrLib device is base on the GRLIB IP Core User's Manual:
  * http://www.gaisler.com/products/grlib/grip.pdf
diff --git a/hw/grlib_apbuart.c b/hw/grlib_apbuart.c
index ba1685a..62f7990 100644
--- a/hw/grlib_apbuart.c
+++ b/hw/grlib_apbuart.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 
 #include "trace.h"
diff --git a/hw/grlib_gptimer.c b/hw/grlib_gptimer.c
index 7962b74..7043a34 100644
--- a/hw/grlib_gptimer.c
+++ b/hw/grlib_gptimer.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
 #include "trace.h"
 
diff --git a/hw/grlib_irqmp.c b/hw/grlib_irqmp.c
index ef8dd95..7ee469d 100644
--- a/hw/grlib_irqmp.c
+++ b/hw/grlib_irqmp.c
@@ -24,10 +24,10 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "cpu.h"
 
-#include "grlib.h"
+#include "hw/grlib.h"
 
 #include "trace.h"
 
diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c
index 977a2c5..c73a58a 100644
--- a/hw/gt64xxx.c
+++ b/hw/gt64xxx.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "pc.h"
+#include "hw/hw.h"
+#include "hw/mips.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pc.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG
diff --git a/hw/gumstix.c b/hw/gumstix.c
index bea1605..8859b73 100644
--- a/hw/gumstix.c
+++ b/hw/gumstix.c
@@ -34,12 +34,12 @@
  * # qemu-system-arm -M verdex -pflash flash -monitor null -nographic -m 289
  */
 
-#include "hw.h"
-#include "pxa.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
 #include "net/net.h"
-#include "flash.h"
-#include "devices.h"
-#include "boards.h"
+#include "hw/flash.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/gus.c b/hw/gus.c
index aa13fcc..d268224 100644
--- a/hw/gus.c
+++ b/hw/gus.c
@@ -21,12 +21,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "isa.h"
-#include "gusemu.h"
-#include "gustate.h"
+#include "hw/isa.h"
+#include "hw/gusemu.h"
+#include "hw/gustate.h"
 
 #define dolog(...) AUD_log ("audio", __VA_ARGS__)
 #ifdef DEBUG
diff --git a/hw/gusemu_hal.c b/hw/gusemu_hal.c
index 6096690..0eee617 100644
--- a/hw/gusemu_hal.c
+++ b/hw/gusemu_hal.c
@@ -26,8 +26,8 @@
  * TODO: check mixer: see 7.20 of sdk for panning pos (applies to all gus models?)?
  */
 
-#include "gustate.h"
-#include "gusemu.h"
+#include "hw/gustate.h"
+#include "hw/gusemu.h"
 
 #define GUSregb(position) (*            (gusptr+(position)))
 #define GUSregw(position) (*(GUSword *) (gusptr+(position)))
diff --git a/hw/gusemu_mixer.c b/hw/gusemu_mixer.c
index 6d8d9ce..816c58a 100644
--- a/hw/gusemu_mixer.c
+++ b/hw/gusemu_mixer.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "gusemu.h"
-#include "gustate.h"
+#include "hw/gusemu.h"
+#include "hw/gustate.h"
 
 #define GUSregb(position)  (*            (gusptr+(position)))
 #define GUSregw(position)  (*(GUSword *) (gusptr+(position)))
diff --git a/hw/hda-audio.c b/hw/hda-audio.c
index 3190bd1..6bdd820 100644
--- a/hw/hda-audio.c
+++ b/hw/hda-audio.c
@@ -17,10 +17,10 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "pci/pci.h"
-#include "intel-hda.h"
-#include "intel-hda-defs.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/intel-hda.h"
+#include "hw/intel-hda-defs.h"
 #include "audio/audio.h"
 
 /* -------------------------------------------------------------------------- */
diff --git a/hw/heathrow_pic.c b/hw/heathrow_pic.c
index c0a71c3..beb9661 100644
--- a/hw/heathrow_pic.c
+++ b/hw/heathrow_pic.c
@@ -22,8 +22,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
+#include "hw/hw.h"
+#include "hw/ppc/mac.h"
 
 /* debug PIC */
 //#define DEBUG_PIC
diff --git a/hw/hid.c b/hw/hid.c
index 89b5415..28b3474 100644
--- a/hw/hid.c
+++ b/hw/hid.c
@@ -22,10 +22,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
-#include "hid.h"
+#include "hw/hid.h"
 
 #define HID_USAGE_ERROR_ROLLOVER        0x01
 #define HID_USAGE_POSTFAIL              0x02
diff --git a/hw/highbank.c b/hw/highbank.c
index defcc09..a622224 100644
--- a/hw/highbank.c
+++ b/hw/highbank.c
@@ -17,14 +17,14 @@
  *
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "devices.h"
-#include "loader.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
+#include "hw/loader.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "sysbus.h"
+#include "hw/boards.h"
+#include "hw/sysbus.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/hpet.c b/hw/hpet.c
index 97eaa2f..6bfbf3a 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -24,14 +24,14 @@
  * This driver attempts to emulate an HPET device in software.
  */
 
-#include "hw.h"
-#include "pc.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
 #include "ui/console.h"
 #include "qemu/timer.h"
-#include "hpet_emul.h"
-#include "sysbus.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
+#include "hw/hpet_emul.h"
+#include "hw/sysbus.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
 
 //#define HPET_DEBUG
 #ifdef HPET_DEBUG
diff --git a/hw/hw.h b/hw/hw.h
index dfced97..1553e54 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -9,7 +9,7 @@
 #endif
 
 #include "exec/ioport.h"
-#include "irq.h"
+#include "hw/irq.h"
 #include "block/aio.h"
 #include "migration/qemu-file.h"
 #include "migration/vmstate.h"
diff --git a/hw/i2c.c b/hw/i2c.c
index ec314a4..ad361cc 100644
--- a/hw/i2c.c
+++ b/hw/i2c.c
@@ -7,7 +7,7 @@
  * This code is licensed under the LGPL.
  */
 
-#include "i2c.h"
+#include "hw/i2c.h"
 
 struct i2c_bus
 {
diff --git a/hw/i2c.h b/hw/i2c.h
index 0e80d5a..461392f 100644
--- a/hw/i2c.h
+++ b/hw/i2c.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_I2C_H
 #define QEMU_I2C_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 /* The QEMU I2C implementation only supports simple transfers that complete
    immediately.  It does not support slave devices that need to be able to
diff --git a/hw/i82374.c b/hw/i82374.c
index 6a62ba2..22115e4 100644
--- a/hw/i82374.c
+++ b/hw/i82374.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "isa.h"
+#include "hw/isa.h"
 
 //#define DEBUG_I82374
 
diff --git a/hw/i82378.c b/hw/i82378.c
index 0914d7b..6f8c48b 100644
--- a/hw/i82378.c
+++ b/hw/i82378.c
@@ -17,10 +17,10 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "pci/pci.h"
-#include "pc.h"
-#include "i8254.h"
-#include "pcspk.h"
+#include "hw/pci/pci.h"
+#include "hw/pc.h"
+#include "hw/i8254.h"
+#include "hw/pcspk.h"
 
 //#define DEBUG_I82378
 
diff --git a/hw/i8254.c b/hw/i8254.c
index 394b2e8..67bfc6a 100644
--- a/hw/i8254.c
+++ b/hw/i8254.c
@@ -21,12 +21,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 #include "qemu/timer.h"
-#include "i8254.h"
-#include "i8254_internal.h"
+#include "hw/i8254.h"
+#include "hw/i8254_internal.h"
 
 //#define DEBUG_PIT
 
diff --git a/hw/i8254.h b/hw/i8254.h
index ba6b598..7d4432e 100644
--- a/hw/i8254.h
+++ b/hw/i8254.h
@@ -25,8 +25,8 @@
 #ifndef HW_I8254_H
 #define HW_I8254_H
 
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 
 #define PIT_FREQ 1193182
 
diff --git a/hw/i8254_common.c b/hw/i8254_common.c
index 8c2e45a..c6c0c80 100644
--- a/hw/i8254_common.c
+++ b/hw/i8254_common.c
@@ -22,12 +22,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 #include "qemu/timer.h"
-#include "i8254.h"
-#include "i8254_internal.h"
+#include "hw/i8254.h"
+#include "hw/i8254_internal.h"
 
 /* val must be 0 or 1 */
 void pit_set_gate(ISADevice *dev, int channel, int val)
diff --git a/hw/i8254_internal.h b/hw/i8254_internal.h
index 686f0c2..30d5b1b 100644
--- a/hw/i8254_internal.h
+++ b/hw/i8254_internal.h
@@ -25,9 +25,9 @@
 #ifndef QEMU_I8254_INTERNAL_H
 #define QEMU_I8254_INTERNAL_H
 
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 
 typedef struct PITChannelState {
     int count; /* can be 65536 */
diff --git a/hw/i8259.c b/hw/i8259.c
index 54fe144..1d82752 100644
--- a/hw/i8259.c
+++ b/hw/i8259.c
@@ -21,12 +21,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 #include "monitor/monitor.h"
 #include "qemu/timer.h"
-#include "i8259_internal.h"
+#include "hw/i8259_internal.h"
 
 /* debug PIC */
 //#define DEBUG_PIC
diff --git a/hw/i8259_common.c b/hw/i8259_common.c
index fc91056..98052db 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 "pc.h"
-#include "i8259_internal.h"
+#include "hw/pc.h"
+#include "hw/i8259_internal.h"
 
 void pic_reset_common(PICCommonState *s)
 {
diff --git a/hw/i8259_internal.h b/hw/i8259_internal.h
index 8785b1d..2813ec1 100644
--- a/hw/i8259_internal.h
+++ b/hw/i8259_internal.h
@@ -25,9 +25,9 @@
 #ifndef QEMU_I8259_INTERNAL_H
 #define QEMU_I8259_INTERNAL_H
 
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 
 typedef struct PICCommonState PICCommonState;
 
diff --git a/hw/i82801b11.c b/hw/i82801b11.c
index 3dc1000..992095c 100644
--- a/hw/i82801b11.c
+++ b/hw/i82801b11.c
@@ -41,8 +41,8 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>
  */
 
-#include "pci/pci.h"
-#include "ich9.h"
+#include "hw/pci/pci.h"
+#include "hw/ich9.h"
 
 
 /*****************************************************************************/
diff --git a/hw/ich9.h b/hw/ich9.h
index d4509bb..59c25e9 100644
--- a/hw/ich9.h
+++ b/hw/ich9.h
@@ -1,20 +1,20 @@
 #ifndef HW_ICH9_H
 #define HW_ICH9_H
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/range.h"
-#include "isa.h"
-#include "sysbus.h"
-#include "pc.h"
-#include "apm.h"
-#include "ioapic.h"
-#include "pci/pci.h"
-#include "pci/pcie_host.h"
-#include "pci/pci_bridge.h"
-#include "acpi.h"
-#include "acpi_ich9.h"
-#include "pam.h"
-#include "pci/pci_bus.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
+#include "hw/pc.h"
+#include "hw/apm.h"
+#include "hw/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/pci/pci_bus.h"
 
 void ich9_lpc_set_irq(void *opaque, int irq_num, int level);
 int ich9_lpc_map_irq(PCIDevice *pci_dev, int intx);
diff --git a/hw/ide.h b/hw/ide.h
index 0eb3a74..35444a3 100644
--- a/hw/ide.h
+++ b/hw/ide.h
@@ -1,8 +1,8 @@
 #ifndef HW_IDE_H
 #define HW_IDE_H
 
-#include "isa.h"
-#include "pci/pci.h"
+#include "hw/isa.h"
+#include "hw/pci/pci.h"
 #include "exec/memory.h"
 
 #define MAX_IDE_DEVS	2
diff --git a/hw/imx_avic.c b/hw/imx_avic.c
index f1f066c..4e280b6 100644
--- a/hw/imx_avic.c
+++ b/hw/imx_avic.c
@@ -14,8 +14,8 @@
  * TODO: implement vectors.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "qemu/host-utils.h"
 
 #define DEBUG_INT 1
diff --git a/hw/imx_ccm.c b/hw/imx_ccm.c
index 477903a..ad7aad3 100644
--- a/hw/imx_ccm.c
+++ b/hw/imx_ccm.c
@@ -10,10 +10,10 @@
  * the CCM.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
-#include "imx.h"
+#include "hw/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 2d8253e..746723c 100644
--- a/hw/imx_serial.c
+++ b/hw/imx_serial.c
@@ -17,11 +17,11 @@
  *     is a real serial device.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "char/char.h"
-#include "imx.h"
+#include "hw/imx.h"
 
 //#define DEBUG_SERIAL 1
 #ifdef DEBUG_SERIAL
diff --git a/hw/imx_timer.c b/hw/imx_timer.c
index e924c74..a8c31114 100644
--- a/hw/imx_timer.c
+++ b/hw/imx_timer.c
@@ -11,11 +11,11 @@
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
-#include "sysbus.h"
-#include "imx.h"
+#include "hw/ptimer.h"
+#include "hw/sysbus.h"
+#include "hw/imx.h"
 
 //#define DEBUG_TIMER 1
 #ifdef DEBUG_TIMER
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index 9e3630a..e0ba327 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -7,10 +7,10 @@
  * This code is licensed under the GPL
  */
 
-#include "sysbus.h"
-#include "devices.h"
-#include "boards.h"
-#include "arm-misc.h"
+#include "hw/sysbus.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/arm-misc.h"
 #include "net/net.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index 784c229..728b60f 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -17,13 +17,13 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "pci/pci.h"
-#include "pci/msi.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/msi.h"
 #include "qemu/timer.h"
-#include "audiodev.h"
-#include "intel-hda.h"
-#include "intel-hda-defs.h"
+#include "hw/audiodev.h"
+#include "hw/intel-hda.h"
+#include "hw/intel-hda-defs.h"
 #include "sysemu/dma.h"
 
 /* --------------------------------------------------------------------- */
diff --git a/hw/intel-hda.h b/hw/intel-hda.h
index 22e0968..2544f0a 100644
--- a/hw/intel-hda.h
+++ b/hw/intel-hda.h
@@ -1,7 +1,7 @@
 #ifndef HW_INTEL_HDA_H
 #define HW_INTEL_HDA_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 /* --------------------------------------------------------------------- */
 /* hda bus                                                               */
diff --git a/hw/ioapic.c b/hw/ioapic.c
index f06c2dc..78629fa 100644
--- a/hw/ioapic.c
+++ b/hw/ioapic.c
@@ -20,11 +20,11 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "apic.h"
-#include "ioapic.h"
-#include "ioapic_internal.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/apic.h"
+#include "hw/ioapic.h"
+#include "hw/ioapic_internal.h"
 
 //#define DEBUG_IOAPIC
 
diff --git a/hw/ioapic_common.c b/hw/ioapic_common.c
index 7dc552f..d4aff29 100644
--- a/hw/ioapic_common.c
+++ b/hw/ioapic_common.c
@@ -19,9 +19,9 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "ioapic.h"
-#include "ioapic_internal.h"
-#include "sysbus.h"
+#include "hw/ioapic.h"
+#include "hw/ioapic_internal.h"
+#include "hw/sysbus.h"
 
 void ioapic_reset_common(DeviceState *dev)
 {
diff --git a/hw/ioapic_internal.h b/hw/ioapic_internal.h
index c8447d7..25576c8 100644
--- a/hw/ioapic_internal.h
+++ b/hw/ioapic_internal.h
@@ -22,9 +22,9 @@
 #ifndef QEMU_IOAPIC_INTERNAL_H
 #define QEMU_IOAPIC_INTERNAL_H
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "exec/memory.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define MAX_IOAPICS                     1
 
diff --git a/hw/ioh3420.c b/hw/ioh3420.c
index 95bceb5..43f8554 100644
--- a/hw/ioh3420.c
+++ b/hw/ioh3420.c
@@ -20,10 +20,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "pci/pci_ids.h"
-#include "pci/msi.h"
-#include "pci/pcie.h"
-#include "ioh3420.h"
+#include "hw/pci/pci_ids.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/pcie.h"
+#include "hw/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/ioh3420.h
index 046cf2c..7776e5b 100644
--- a/hw/ioh3420.h
+++ b/hw/ioh3420.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_IOH3420_H
 #define QEMU_IOH3420_H
 
-#include "pci/pcie_port.h"
+#include "hw/pci/pcie_port.h"
 
 PCIESlot *ioh3420_init(PCIBus *bus, int devfn, bool multifunction,
                        const char *bus_name, pci_map_irq_fn map_irq,
diff --git a/hw/ipack.c b/hw/ipack.c
index e15540d..b1f46c1 100644
--- a/hw/ipack.c
+++ b/hw/ipack.c
@@ -8,7 +8,7 @@
  * later version.
  */
 
-#include "ipack.h"
+#include "hw/ipack.h"
 
 IPackDevice *ipack_device_find(IPackBus *bus, int32_t slot)
 {
diff --git a/hw/ipack.h b/hw/ipack.h
index 69e2628..f2b7a12 100644
--- a/hw/ipack.h
+++ b/hw/ipack.h
@@ -11,7 +11,7 @@
 #ifndef QEMU_IPACK_H
 #define QEMU_IPACK_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 typedef struct IPackBus IPackBus;
 
diff --git a/hw/ipoctal232.c b/hw/ipoctal232.c
index c1e3b19..1da6a99 100644
--- a/hw/ipoctal232.c
+++ b/hw/ipoctal232.c
@@ -8,7 +8,7 @@
  * later version.
  */
 
-#include "ipack.h"
+#include "hw/ipack.h"
 #include "qemu/bitops.h"
 #include "char/char.h"
 
diff --git a/hw/irq.c b/hw/irq.c
index f4e2a78..2078542 100644
--- a/hw/irq.c
+++ b/hw/irq.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "irq.h"
+#include "hw/irq.h"
 
 struct IRQState {
     qemu_irq_handler handler;
diff --git a/hw/isa-bus.c b/hw/isa-bus.c
index 6dc34f0..67ff8fd 100644
--- a/hw/isa-bus.c
+++ b/hw/isa-bus.c
@@ -16,11 +16,11 @@
  * 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.h"
+#include "hw/hw.h"
 #include "monitor/monitor.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
-#include "isa.h"
+#include "hw/isa.h"
 #include "exec/address-spaces.h"
 
 static ISABus *isabus;
diff --git a/hw/isa.h b/hw/isa.h
index 7a8874a..82da37c 100644
--- a/hw/isa.h
+++ b/hw/isa.h
@@ -5,7 +5,7 @@
 
 #include "exec/ioport.h"
 #include "exec/memory.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 
 #define ISA_NUM_IRQS 16
 
diff --git a/hw/isa_mmio.c b/hw/isa_mmio.c
index 487cf6a..a7860e7 100644
--- a/hw/isa_mmio.c
+++ b/hw/isa_mmio.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/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 afaf9b3..68a2cf2 100644
--- a/hw/ivshmem.c
+++ b/hw/ivshmem.c
@@ -16,10 +16,10 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "pc.h"
-#include "pci/pci.h"
-#include "pci/msix.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/msix.h"
 #include "sysemu/kvm.h"
 #include "migration/migration.h"
 #include "qapi/qmp/qerror.h"
diff --git a/hw/jazz_led.c b/hw/jazz_led.c
index 4822c48..a418a7d 100644
--- a/hw/jazz_led.c
+++ b/hw/jazz_led.c
@@ -26,7 +26,7 @@
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
 #include "trace.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 typedef enum {
     REDRAW_NONE = 0, REDRAW_SEGMENTS = 1, REDRAW_BACKGROUND = 2,
diff --git a/hw/kvmvapic.c b/hw/kvmvapic.c
index 9265baf..c151c95 100644
--- a/hw/kvmvapic.c
+++ b/hw/kvmvapic.c
@@ -11,7 +11,7 @@
 #include "sysemu/sysemu.h"
 #include "sysemu/cpus.h"
 #include "sysemu/kvm.h"
-#include "apic_internal.h"
+#include "hw/apic_internal.h"
 
 #define APIC_DEFAULT_ADDRESS    0xfee00000
 
diff --git a/hw/kzm.c b/hw/kzm.c
index fb33165..ec50a31 100644
--- a/hw/kzm.c
+++ b/hw/kzm.c
@@ -13,16 +13,16 @@
  * i.MX31 SoC
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
-#include "hw.h"
-#include "arm-misc.h"
-#include "devices.h"
+#include "hw/hw.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "serial.h"
-#include "imx.h"
+#include "hw/boards.h"
+#include "hw/serial.h"
+#include "hw/imx.h"
 
     /* Memory map for Kzm Emulation Baseboard:
      * 0x00000000-0x00003fff 16k secure ROM       IGNORED
diff --git a/hw/lan9118.c b/hw/lan9118.c
index 0e844e5..403fb86 100644
--- a/hw/lan9118.c
+++ b/hw/lan9118.c
@@ -10,11 +10,11 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
-#include "devices.h"
+#include "hw/devices.h"
 #include "sysemu/sysemu.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 /* For crc32 */
 #include <zlib.h>
 
diff --git a/hw/lance.c b/hw/lance.c
index 4b92425..acfffae 100644
--- a/hw/lance.c
+++ b/hw/lance.c
@@ -35,12 +35,12 @@
  * http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/NCR92C990.txt
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
 #include "qemu/timer.h"
 #include "qemu/sockets.h"
-#include "sun4m.h"
-#include "pcnet.h"
+#include "hw/sun4m.h"
+#include "hw/pcnet.h"
 #include "trace.h"
 
 typedef struct {
diff --git a/hw/leon3.c b/hw/leon3.c
index f16a8bb..f58061f 100644
--- a/hw/leon3.c
+++ b/hw/leon3.c
@@ -21,18 +21,18 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "char/char.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "trace.h"
 #include "exec/address-spaces.h"
 
-#include "grlib.h"
+#include "hw/grlib.h"
 
 /* Default system clock.  */
 #define CPU_CLK (40 * 1000 * 1000)
diff --git a/hw/lm32_boards.c b/hw/lm32_boards.c
index 2bc06d7..1ce466a 100644
--- a/hw/lm32_boards.c
+++ b/hw/lm32_boards.c
@@ -17,16 +17,16 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "flash.h"
-#include "devices.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "sysemu/blockdev.h"
 #include "elf.h"
-#include "lm32_hwsetup.h"
-#include "lm32.h"
+#include "hw/lm32_hwsetup.h"
+#include "hw/lm32.h"
 #include "exec/address-spaces.h"
 
 typedef struct {
diff --git a/hw/lm32_hwsetup.h b/hw/lm32_hwsetup.h
index 853e9ab..3449bd8 100644
--- a/hw/lm32_hwsetup.h
+++ b/hw/lm32_hwsetup.h
@@ -26,7 +26,7 @@
 #define QEMU_HW_LM32_HWSETUP_H
 
 #include "qemu-common.h"
-#include "loader.h"
+#include "hw/loader.h"
 
 typedef struct {
     void *data;
diff --git a/hw/lm32_juart.c b/hw/lm32_juart.c
index 8c82c85..472e9c2 100644
--- a/hw/lm32_juart.c
+++ b/hw/lm32_juart.c
@@ -17,12 +17,12 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "char/char.h"
 
-#include "lm32_juart.h"
+#include "hw/lm32_juart.h"
 
 enum {
     LM32_JUART_MIN_SAVE_VERSION = 0,
diff --git a/hw/lm32_pic.c b/hw/lm32_pic.c
index 42f298a..d17c310 100644
--- a/hw/lm32_pic.c
+++ b/hw/lm32_pic.c
@@ -19,12 +19,12 @@
 
 #include <assert.h>
 
-#include "hw.h"
-#include "pc.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
 #include "monitor/monitor.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
-#include "lm32_pic.h"
+#include "hw/lm32_pic.h"
 
 struct LM32PicState {
     SysBusDevice busdev;
diff --git a/hw/lm32_sys.c b/hw/lm32_sys.c
index 187ef6d..33a3b80 100644
--- a/hw/lm32_sys.c
+++ b/hw/lm32_sys.c
@@ -28,8 +28,8 @@
  * the test is passed or any non-zero value to it if the test is failed.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/log.h"
 #include "qemu/error-report.h"
diff --git a/hw/lm32_timer.c b/hw/lm32_timer.c
index db527e9..e06fac7 100644
--- a/hw/lm32_timer.c
+++ b/hw/lm32_timer.c
@@ -21,11 +21,11 @@
  *   http://www.latticesemi.com/documents/mico32timer.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "qemu/error-report.h"
 
 #define DEFAULT_FREQUENCY (50*1000000)
diff --git a/hw/lm32_uart.c b/hw/lm32_uart.c
index 9c89cca..02f6f89 100644
--- a/hw/lm32_uart.c
+++ b/hw/lm32_uart.c
@@ -22,8 +22,8 @@
  */
 
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "char/char.h"
 #include "qemu/error-report.h"
diff --git a/hw/lm4549.c b/hw/lm4549.c
index b3c2d5f..67335cb 100644
--- a/hw/lm4549.c
+++ b/hw/lm4549.c
@@ -13,9 +13,9 @@
  * It supports only one playback voice and no record voice.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "audio/audio.h"
-#include "lm4549.h"
+#include "hw/lm4549.h"
 
 #if 0
 #define LM4549_DEBUG  1
diff --git a/hw/lm832x.c b/hw/lm832x.c
index 94b8ae0..a064dfd 100644
--- a/hw/lm832x.c
+++ b/hw/lm832x.c
@@ -18,8 +18,8 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "i2c.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
 
diff --git a/hw/loader.c b/hw/loader.c
index 995edc3..d2a974b 100644
--- a/hw/loader.c
+++ b/hw/loader.c
@@ -42,13 +42,13 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "disas/disas.h"
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
-#include "uboot_image.h"
-#include "loader.h"
-#include "fw_cfg.h"
+#include "hw/uboot_image.h"
+#include "hw/loader.h"
+#include "hw/fw_cfg.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 
@@ -260,7 +260,7 @@ static void *load_at(int fd, int offset, int size)
 #define elf_word        uint32_t
 #define elf_sword        int32_t
 #define bswapSZs	bswap32s
-#include "elf_ops.h"
+#include "hw/elf_ops.h"
 
 #undef elfhdr
 #undef elf_phdr
@@ -280,7 +280,7 @@ static void *load_at(int fd, int offset, int size)
 #define elf_sword        int64_t
 #define bswapSZs	bswap64s
 #define SZ		64
-#include "elf_ops.h"
+#include "hw/elf_ops.h"
 
 /* return < 0 if error, otherwise the number of bytes loaded in memory */
 int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),
diff --git a/hw/lpc_ich9.c b/hw/lpc_ich9.c
index e25689b..e55d66a 100644
--- a/hw/lpc_ich9.c
+++ b/hw/lpc_ich9.c
@@ -28,21 +28,21 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/range.h"
-#include "isa.h"
-#include "sysbus.h"
-#include "pc.h"
-#include "apm.h"
-#include "ioapic.h"
-#include "pci/pci.h"
-#include "pci/pcie_host.h"
-#include "pci/pci_bridge.h"
-#include "ich9.h"
-#include "acpi.h"
-#include "acpi_ich9.h"
-#include "pam.h"
-#include "pci/pci_bus.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
+#include "hw/pc.h"
+#include "hw/apm.h"
+#include "hw/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/pci/pci_bus.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 860df32..5a8bf4d 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -12,9 +12,9 @@
 
 #include <assert.h>
 
-#include "hw.h"
-#include "pci/pci.h"
-#include "scsi.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/scsi.h"
 #include "sysemu/dma.h"
 
 //#define DEBUG_LSI
diff --git a/hw/m25p80.c b/hw/m25p80.c
index 1372d06..55e9d0d 100644
--- a/hw/m25p80.c
+++ b/hw/m25p80.c
@@ -21,10 +21,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/blockdev.h"
-#include "ssi.h"
-#include "devices.h"
+#include "hw/ssi.h"
+#include "hw/devices.h"
 
 #ifdef M25P80_ERR_DEBUG
 #define DB_PRINT(...) do { \
diff --git a/hw/m48t59.c b/hw/m48t59.c
index 427d95b..39a9d80 100644
--- a/hw/m48t59.c
+++ b/hw/m48t59.c
@@ -21,12 +21,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "nvram.h"
+#include "hw/hw.h"
+#include "hw/nvram.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
-#include "isa.h"
+#include "hw/sysbus.h"
+#include "hw/isa.h"
 #include "exec/address-spaces.h"
 
 //#define DEBUG_NVRAM
diff --git a/hw/mac_dbdma.c b/hw/mac_dbdma.c
index b894ab2..a151470 100644
--- a/hw/mac_dbdma.c
+++ b/hw/mac_dbdma.c
@@ -36,9 +36,9 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "isa.h"
-#include "mac_dbdma.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
+#include "hw/mac_dbdma.h"
 #include "qemu/main-loop.h"
 
 /* debug DBDMA */
diff --git a/hw/mac_nvram.c b/hw/mac_nvram.c
index 25121fa..ed32bde 100644
--- a/hw/mac_nvram.c
+++ b/hw/mac_nvram.c
@@ -22,10 +22,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "firmware_abi.h"
+#include "hw/hw.h"
+#include "hw/firmware_abi.h"
 #include "sysemu/sysemu.h"
-#include "ppc/mac.h"
+#include "hw/ppc/mac.h"
 
 /* debug NVR */
 //#define DEBUG_NVR
diff --git a/hw/macio.c b/hw/macio.c
index 74bdcd1..792fa39 100644
--- a/hw/macio.c
+++ b/hw/macio.c
@@ -22,11 +22,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
-#include "mac_dbdma.h"
-#include "escc.h"
+#include "hw/hw.h"
+#include "hw/ppc/mac.h"
+#include "hw/pci/pci.h"
+#include "hw/mac_dbdma.h"
+#include "hw/escc.h"
 
 #define TYPE_MACIO "macio"
 #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
diff --git a/hw/mainstone.c b/hw/mainstone.c
index d1ff6e7..aea908f 100644
--- a/hw/mainstone.c
+++ b/hw/mainstone.c
@@ -11,15 +11,15 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "pxa.h"
-#include "arm-misc.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/arm-misc.h"
 #include "net/net.h"
-#include "devices.h"
-#include "boards.h"
-#include "flash.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 /* Device addresses */
diff --git a/hw/marvell_88w8618_audio.c b/hw/marvell_88w8618_audio.c
index c792caf..e042046 100644
--- a/hw/marvell_88w8618_audio.c
+++ b/hw/marvell_88w8618_audio.c
@@ -9,10 +9,10 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "sysbus.h"
-#include "hw.h"
-#include "i2c.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
+#include "hw/sysbus.h"
 #include "audio/audio.h"
 
 #define MP_AUDIO_SIZE           0x00001000
diff --git a/hw/max111x.c b/hw/max111x.c
index de1be4d..d477ecd 100644
--- a/hw/max111x.c
+++ b/hw/max111x.c
@@ -10,7 +10,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "ssi.h"
+#include "hw/ssi.h"
 
 typedef struct {
     SSISlave ssidev;
diff --git a/hw/max7310.c b/hw/max7310.c
index c2df0b4..e5cb810 100644
--- a/hw/max7310.c
+++ b/hw/max7310.c
@@ -7,7 +7,7 @@
  * This file is licensed under GNU GPL.
  */
 
-#include "i2c.h"
+#include "hw/i2c.h"
 
 typedef struct {
     I2CSlave i2c;
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c
index 2fb11f6..a2119ad 100644
--- a/hw/mc146818rtc.c
+++ b/hw/mc146818rtc.c
@@ -21,14 +21,14 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "mc146818rtc.h"
+#include "hw/mc146818rtc.h"
 #include "qapi/visitor.h"
 
 #ifdef TARGET_I386
-#include "apic.h"
+#include "hw/apic.h"
 #endif
 
 //#define DEBUG_CMOS
diff --git a/hw/mc146818rtc.h b/hw/mc146818rtc.h
index f286b6a..967403e 100644
--- a/hw/mc146818rtc.h
+++ b/hw/mc146818rtc.h
@@ -1,8 +1,8 @@
 #ifndef MC146818RTC_H
 #define MC146818RTC_H
 
-#include "isa.h"
-#include "mc146818rtc_regs.h"
+#include "hw/isa.h"
+#include "hw/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/mcf5206.c b/hw/mcf5206.c
index ea2db23..58cd8d4 100644
--- a/hw/mcf5206.c
+++ b/hw/mcf5206.c
@@ -5,10 +5,10 @@
  *
  * This code is licensed under the GPL
  */
-#include "hw.h"
-#include "mcf.h"
+#include "hw/hw.h"
+#include "hw/mcf.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/mcf5208.c b/hw/mcf5208.c
index 86402d3..748bf56 100644
--- a/hw/mcf5208.c
+++ b/hw/mcf5208.c
@@ -5,14 +5,14 @@
  *
  * This code is licensed under the GPL
  */
-#include "hw.h"
-#include "mcf.h"
+#include "hw/hw.h"
+#include "hw/mcf.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c
index 8e60f09..0227bd8 100644
--- a/hw/mcf_fec.c
+++ b/hw/mcf_fec.c
@@ -5,9 +5,9 @@
  *
  * This code is licensed under the GPL
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
-#include "mcf.h"
+#include "hw/mcf.h"
 /* For crc32 */
 #include <zlib.h>
 #include "exec/address-spaces.h"
diff --git a/hw/mcf_intc.c b/hw/mcf_intc.c
index b213656..fff27b3 100644
--- a/hw/mcf_intc.c
+++ b/hw/mcf_intc.c
@@ -5,8 +5,8 @@
  *
  * This code is licensed under the GPL
  */
-#include "hw.h"
-#include "mcf.h"
+#include "hw/hw.h"
+#include "hw/mcf.h"
 #include "exec/address-spaces.h"
 
 typedef struct {
diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c
index c443443..aacf0f0 100644
--- a/hw/mcf_uart.c
+++ b/hw/mcf_uart.c
@@ -5,8 +5,8 @@
  *
  * This code is licensed under the GPL
  */
-#include "hw.h"
-#include "mcf.h"
+#include "hw/hw.h"
+#include "hw/mcf.h"
 #include "char/char.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/megasas.c b/hw/megasas.c
index eb191f5..9b815d4 100644
--- a/hw/megasas.c
+++ b/hw/megasas.c
@@ -18,16 +18,16 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "sysemu/dma.h"
-#include "pci/msix.h"
+#include "hw/pci/msix.h"
 #include "qemu/iov.h"
-#include "scsi.h"
-#include "scsi-defs.h"
+#include "hw/scsi.h"
+#include "hw/scsi-defs.h"
 #include "trace.h"
 
-#include "mfi.h"
+#include "hw/mfi.h"
 
 #define MEGASAS_VERSION "1.70"
 #define MEGASAS_MAX_FRAMES 2048         /* Firmware limit at 65535 */
diff --git a/hw/microblaze_boot.c b/hw/microblaze_boot.c
index 3ec5c0f..e13b3e1 100644
--- a/hw/microblaze_boot.c
+++ b/hw/microblaze_boot.c
@@ -28,10 +28,10 @@
 #include "qemu/config-file.h"
 #include "qemu-common.h"
 #include "sysemu/device_tree.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 
-#include "microblaze_boot.h"
+#include "hw/microblaze_boot.h"
 
 static struct
 {
diff --git a/hw/microblaze_boot.h b/hw/microblaze_boot.h
index c1cf836..b14ef2b 100644
--- a/hw/microblaze_boot.h
+++ b/hw/microblaze_boot.h
@@ -1,7 +1,7 @@
 #ifndef __MICROBLAZE_BOOT__
 #define __MICROBLAZE_BOOT__
 
-#include "hw.h"
+#include "hw/hw.h"
 
 void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
                             uint32_t ramsize, const char *dtb_filename,
diff --git a/hw/microblaze_pic_cpu.c b/hw/microblaze_pic_cpu.c
index ff36a52..d4743ab 100644
--- a/hw/microblaze_pic_cpu.c
+++ b/hw/microblaze_pic_cpu.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "microblaze_pic_cpu.h"
+#include "hw/hw.h"
+#include "hw/microblaze_pic_cpu.h"
 
 #define D(x)
 
diff --git a/hw/milkymist-ac97.c b/hw/milkymist-ac97.c
index d51d1ac..e08e9dc 100644
--- a/hw/milkymist-ac97.c
+++ b/hw/milkymist-ac97.c
@@ -21,8 +21,8 @@
  *   http://www.milkymist.org/socdoc/ac97.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "audio/audio.h"
 #include "qemu/error-report.h"
diff --git a/hw/milkymist-hpdmc.c b/hw/milkymist-hpdmc.c
index ea4d210..d922f6f 100644
--- a/hw/milkymist-hpdmc.c
+++ b/hw/milkymist-hpdmc.c
@@ -21,8 +21,8 @@
  *   http://www.milkymist.org/socdoc/hpdmc.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 
diff --git a/hw/milkymist-hw.h b/hw/milkymist-hw.h
index c8bd7e9..d49f96b 100644
--- a/hw/milkymist-hw.h
+++ b/hw/milkymist-hw.h
@@ -1,8 +1,8 @@
 #ifndef QEMU_HW_MILKYMIST_H
 #define QEMU_HW_MILKYMIST_H
 
-#include "qdev.h"
-#include "qdev-addr.h"
+#include "hw/qdev.h"
+#include "hw/qdev-addr.h"
 #include "net/net.h"
 
 static inline DeviceState *milkymist_uart_create(hwaddr base,
diff --git a/hw/milkymist-memcard.c b/hw/milkymist-memcard.c
index 9d15309..d5944bc 100644
--- a/hw/milkymist-memcard.c
+++ b/hw/milkymist-memcard.c
@@ -21,13 +21,13 @@
  *   http://www.milkymist.org/socdoc/memcard.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 #include "sysemu/blockdev.h"
-#include "sd.h"
+#include "hw/sd.h"
 
 enum {
     ENABLE_CMD_TX   = (1<<0),
diff --git a/hw/milkymist-minimac2.c b/hw/milkymist-minimac2.c
index 9992dcc..c20ff90 100644
--- a/hw/milkymist-minimac2.c
+++ b/hw/milkymist-minimac2.c
@@ -22,12 +22,12 @@
  *
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "net/net.h"
 #include "qemu/error-report.h"
-#include "qdev-addr.h"
+#include "hw/qdev-addr.h"
 
 #include <zlib.h>
 
diff --git a/hw/milkymist-pfpu.c b/hw/milkymist-pfpu.c
index c347680..ad44b4d 100644
--- a/hw/milkymist-pfpu.c
+++ b/hw/milkymist-pfpu.c
@@ -22,8 +22,8 @@
  *
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/log.h"
 #include "qemu/error-report.h"
diff --git a/hw/milkymist-softusb.c b/hw/milkymist-softusb.c
index 01660be..d911686 100644
--- a/hw/milkymist-softusb.c
+++ b/hw/milkymist-softusb.c
@@ -21,11 +21,11 @@
  *   not available yet
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "ui/console.h"
-#include "hid.h"
+#include "hw/hid.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/milkymist-sysctl.c b/hw/milkymist-sysctl.c
index e69ac6f..e083a28 100644
--- a/hw/milkymist-sysctl.c
+++ b/hw/milkymist-sysctl.c
@@ -21,12 +21,12 @@
  *   http://www.milkymist.org/socdoc/sysctl.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/milkymist-tmu2.c b/hw/milkymist-tmu2.c
index 42de10a..b723a04 100644
--- a/hw/milkymist-tmu2.c
+++ b/hw/milkymist-tmu2.c
@@ -24,8 +24,8 @@
  *
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 
diff --git a/hw/milkymist-uart.c b/hw/milkymist-uart.c
index e73eb84..ac6f537 100644
--- a/hw/milkymist-uart.c
+++ b/hw/milkymist-uart.c
@@ -21,8 +21,8 @@
  *   http://www.milkymist.org/socdoc/uart.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "char/char.h"
 #include "qemu/error-report.h"
diff --git a/hw/milkymist-vgafb.c b/hw/milkymist-vgafb.c
index 4d0a5df..85ebb85 100644
--- a/hw/milkymist-vgafb.c
+++ b/hw/milkymist-vgafb.c
@@ -22,24 +22,24 @@
  *   http://www.milkymist.org/socdoc/vgafb.pdf
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 #include "ui/console.h"
-#include "framebuffer.h"
+#include "hw/framebuffer.h"
 #include "ui/pixel_ops.h"
 #include "qemu/error-report.h"
 
 #define BITS 8
-#include "milkymist-vgafb_template.h"
+#include "hw/milkymist-vgafb_template.h"
 #define BITS 15
-#include "milkymist-vgafb_template.h"
+#include "hw/milkymist-vgafb_template.h"
 #define BITS 16
-#include "milkymist-vgafb_template.h"
+#include "hw/milkymist-vgafb_template.h"
 #define BITS 24
-#include "milkymist-vgafb_template.h"
+#include "hw/milkymist-vgafb_template.h"
 #define BITS 32
-#include "milkymist-vgafb_template.h"
+#include "hw/milkymist-vgafb_template.h"
 
 enum {
     R_CTRL = 0,
diff --git a/hw/milkymist.c b/hw/milkymist.c
index c04eb35..fd36de5 100644
--- a/hw/milkymist.c
+++ b/hw/milkymist.c
@@ -17,17 +17,17 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "flash.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
-#include "devices.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/blockdev.h"
-#include "milkymist-hw.h"
-#include "lm32.h"
+#include "hw/milkymist-hw.h"
+#include "hw/lm32.h"
 #include "exec/address-spaces.h"
 
 #define BIOS_FILENAME    "mmone-bios.bin"
diff --git a/hw/mips_addr.c b/hw/mips_addr.c
index aa1c7d8..cddc25c 100644
--- a/hw/mips_addr.c
+++ b/hw/mips_addr.c
@@ -20,8 +20,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips_cpudevs.h"
+#include "hw/hw.h"
+#include "hw/mips_cpudevs.h"
 
 uint64_t cpu_mips_kseg0_to_phys(void *opaque, uint64_t addr)
 {
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index 8b532e1..766aa9d 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -18,29 +18,29 @@
  * http://www.loongsondeveloper.com/doc/Loongson2EUserGuide.pdf
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "serial.h"
-#include "fdc.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/serial.h"
+#include "hw/fdc.h"
 #include "net/net.h"
-#include "boards.h"
-#include "smbus.h"
+#include "hw/boards.h"
+#include "hw/smbus.h"
 #include "block/block.h"
-#include "flash.h"
-#include "mips.h"
-#include "mips_cpudevs.h"
-#include "pci/pci.h"
+#include "hw/flash.h"
+#include "hw/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 "loader.h"
-#include "mips-bios.h"
-#include "ide.h"
+#include "hw/loader.h"
+#include "hw/mips-bios.h"
+#include "hw/ide.h"
 #include "elf.h"
-#include "vt82c686.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
+#include "hw/vt82c686.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/mips_int.c b/hw/mips_int.c
index 6423fd0..ddd3b1b 100644
--- a/hw/mips_int.c
+++ b/hw/mips_int.c
@@ -20,8 +20,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips_cpudevs.h"
+#include "hw/hw.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_jazz.c b/hw/mips_jazz.c
index 17fbdde..daeb985 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -22,25 +22,25 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips.h"
-#include "mips_cpudevs.h"
-#include "pc.h"
-#include "serial.h"
-#include "isa.h"
-#include "fdc.h"
+#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 "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "net/net.h"
-#include "esp.h"
-#include "mips-bios.h"
-#include "loader.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
-#include "pcspk.h"
+#include "hw/esp.h"
+#include "hw/mips-bios.h"
+#include "hw/loader.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
+#include "hw/pcspk.h"
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 enum jazz_model_e
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 2a150df..9a67dce 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -22,32 +22,32 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "serial.h"
-#include "fdc.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/serial.h"
+#include "hw/fdc.h"
 #include "net/net.h"
-#include "boards.h"
-#include "smbus.h"
+#include "hw/boards.h"
+#include "hw/smbus.h"
 #include "block/block.h"
-#include "flash.h"
-#include "mips.h"
-#include "mips_cpudevs.h"
-#include "pci/pci.h"
+#include "hw/flash.h"
+#include "hw/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 "boards.h"
+#include "hw/boards.h"
 #include "qemu/log.h"
-#include "mips-bios.h"
-#include "ide.h"
-#include "loader.h"
+#include "hw/mips-bios.h"
+#include "hw/ide.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
-#include "sysbus.h"             /* SysBusDevice */
+#include "hw/sysbus.h"             /* SysBusDevice */
 
 //#define DEBUG_BOARD_INIT
 
diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c
index b0ab8f6..4935c78 100644
--- a/hw/mips_mipssim.c
+++ b/hw/mips_mipssim.c
@@ -24,18 +24,18 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "mips.h"
-#include "mips_cpudevs.h"
-#include "serial.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/mips.h"
+#include "hw/mips_cpudevs.h"
+#include "hw/serial.h"
+#include "hw/isa.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "mips-bios.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/mips-bios.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 static struct _loaderparams {
diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c
index 5df7eb4..539a562 100644
--- a/hw/mips_r4k.c
+++ b/hw/mips_r4k.c
@@ -7,23 +7,23 @@
  * All peripherial devices are attached to this "bus" with
  * the standard PC ISA addresses.
 */
-#include "hw.h"
-#include "mips.h"
-#include "mips_cpudevs.h"
-#include "pc.h"
-#include "serial.h"
-#include "isa.h"
+#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 "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "flash.h"
+#include "hw/boards.h"
+#include "hw/flash.h"
 #include "qemu/log.h"
-#include "mips-bios.h"
-#include "ide.h"
-#include "loader.h"
+#include "hw/mips-bios.h"
+#include "hw/ide.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/mips_timer.c b/hw/mips_timer.c
index 83c400c..9ad13f3 100644
--- a/hw/mips_timer.c
+++ b/hw/mips_timer.c
@@ -20,8 +20,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips_cpudevs.h"
+#include "hw/hw.h"
+#include "hw/mips_cpudevs.h"
 #include "qemu/timer.h"
 
 #define TIMER_FREQ	100 * 1000 * 1000
diff --git a/hw/mipsnet.c b/hw/mipsnet.c
index ff6bf7f..ac6193a 100644
--- a/hw/mipsnet.c
+++ b/hw/mipsnet.c
@@ -1,7 +1,7 @@
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
 #include "trace.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* MIPSnet register offsets */
 
diff --git a/hw/mpc8544_guts.c b/hw/mpc8544_guts.c
index 728723c..193beab 100644
--- a/hw/mpc8544_guts.c
+++ b/hw/mpc8544_guts.c
@@ -17,9 +17,9 @@
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define MPC8544_GUTS_MMIO_SIZE        0x1000
 #define MPC8544_GUTS_RSTCR_RESET      0x02
diff --git a/hw/mst_fpga.c b/hw/mst_fpga.c
index 7ae05e3..1dd1505 100644
--- a/hw/mst_fpga.c
+++ b/hw/mst_fpga.c
@@ -10,8 +10,8 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 
 /* Mainstone FPGA for extern irqs */
 #define FPGA_GPIO_PIN	0
diff --git a/hw/multiboot.c b/hw/multiboot.c
index c4ec2e3..3cb228f 100644
--- a/hw/multiboot.c
+++ b/hw/multiboot.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "fw_cfg.h"
-#include "multiboot.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/fw_cfg.h"
+#include "hw/multiboot.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/musicpal.c b/hw/musicpal.c
index 272cb80..a37dbd7 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -9,19 +9,19 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "devices.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "serial.h"
+#include "hw/boards.h"
+#include "hw/serial.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "block/block.h"
-#include "flash.h"
+#include "hw/flash.h"
 #include "ui/console.h"
-#include "i2c.h"
+#include "hw/i2c.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 #include "ui/pixel_ops.h"
diff --git a/hw/nand.c b/hw/nand.c
index 4a71265..4176272 100644
--- a/hw/nand.c
+++ b/hw/nand.c
@@ -18,10 +18,10 @@
 
 #ifndef NAND_IO
 
-# include "hw.h"
-# include "flash.h"
+# include "hw/hw.h"
+# include "hw/flash.h"
 # include "sysemu/blockdev.h"
-# include "sysbus.h"
+# include "hw/sysbus.h"
 #include "qemu/error-report.h"
 
 # define NAND_CMD_READ0		0x00
diff --git a/hw/ne2000-isa.c b/hw/ne2000-isa.c
index 342c6bd..47c00c3 100644
--- a/hw/ne2000-isa.c
+++ b/hw/ne2000-isa.c
@@ -21,12 +21,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
-#include "qdev.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
+#include "hw/qdev.h"
 #include "net/net.h"
-#include "ne2000.h"
+#include "hw/ne2000.h"
 #include "exec/address-spaces.h"
 
 typedef struct ISANE2000State {
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 3dd1c84..7dadc1c 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
-#include "ne2000.h"
-#include "loader.h"
+#include "hw/ne2000.h"
+#include "hw/loader.h"
 #include "sysemu/sysemu.h"
 
 /* debug NE2000 card */
diff --git a/hw/nseries.c b/hw/nseries.c
index 99d353a..c5bf9f9 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -20,19 +20,19 @@
 
 #include "qemu-common.h"
 #include "sysemu/sysemu.h"
-#include "omap.h"
-#include "arm-misc.h"
-#include "irq.h"
+#include "hw/omap.h"
+#include "hw/arm-misc.h"
+#include "hw/irq.h"
 #include "ui/console.h"
-#include "boards.h"
-#include "i2c.h"
-#include "devices.h"
-#include "flash.h"
-#include "hw.h"
-#include "bt.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/i2c.h"
+#include "hw/devices.h"
+#include "hw/flash.h"
+#include "hw/hw.h"
+#include "hw/bt.h"
+#include "hw/loader.h"
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 /* Nokia N8x0 support */
diff --git a/hw/omap1.c b/hw/omap1.c
index 623b101..6f0a8ca 100644
--- a/hw/omap1.c
+++ b/hw/omap1.c
@@ -16,14 +16,14 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "arm-misc.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/arm-misc.h"
+#include "hw/omap.h"
 #include "sysemu/sysemu.h"
-#include "soc_dma.h"
+#include "hw/soc_dma.h"
 #include "sysemu/blockdev.h"
 #include "qemu/range.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* Should signal the TCMI/GPMC */
 uint32_t omap_badwidth_read8(void *opaque, hwaddr addr)
diff --git a/hw/omap2.c b/hw/omap2.c
index 038a82a..0a2cd7b 100644
--- a/hw/omap2.c
+++ b/hw/omap2.c
@@ -19,15 +19,15 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "hw.h"
-#include "arm-misc.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/arm-misc.h"
+#include "hw/omap.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
 #include "char/char.h"
-#include "flash.h"
-#include "soc_dma.h"
-#include "sysbus.h"
+#include "hw/flash.h"
+#include "hw/soc_dma.h"
+#include "hw/sysbus.h"
 #include "audio/audio.h"
 
 /* Enhanced Audio Controller (CODEC only) */
diff --git a/hw/omap_clk.c b/hw/omap_clk.c
index 8448006..c7b5c11 100644
--- a/hw/omap_clk.c
+++ b/hw/omap_clk.c
@@ -18,8 +18,8 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
 
 struct clk {
     const char *name;
diff --git a/hw/omap_dma.c b/hw/omap_dma.c
index 0c878b6..0c5902f 100644
--- a/hw/omap_dma.c
+++ b/hw/omap_dma.c
@@ -19,9 +19,9 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "omap.h"
-#include "irq.h"
-#include "soc_dma.h"
+#include "hw/omap.h"
+#include "hw/irq.h"
+#include "hw/soc_dma.h"
 
 struct omap_dma_channel_s {
     /* transfer data */
diff --git a/hw/omap_dss.c b/hw/omap_dss.c
index ae51bdf..948ad8f 100644
--- a/hw/omap_dss.c
+++ b/hw/omap_dss.c
@@ -17,9 +17,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "omap.h"
+#include "hw/omap.h"
 
 struct omap_dss_s {
     qemu_irq irq;
diff --git a/hw/omap_gpio.c b/hw/omap_gpio.c
index aadf1cc..c79f61c 100644
--- a/hw/omap_gpio.c
+++ b/hw/omap_gpio.c
@@ -18,9 +18,9 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "omap.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
+#include "hw/sysbus.h"
 
 struct omap_gpio_s {
     qemu_irq irq;
diff --git a/hw/omap_gpmc.c b/hw/omap_gpmc.c
index 02ab0ab..ebb259c 100644
--- a/hw/omap_gpmc.c
+++ b/hw/omap_gpmc.c
@@ -18,9 +18,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "flash.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
+#include "hw/omap.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/omap_gptimer.c b/hw/omap_gptimer.c
index a5db710..8485ee8 100644
--- a/hw/omap_gptimer.c
+++ b/hw/omap_gptimer.c
@@ -17,9 +17,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "omap.h"
+#include "hw/omap.h"
 
 /* GP timers */
 struct omap_gp_timer_s {
diff --git a/hw/omap_i2c.c b/hw/omap_i2c.c
index 143b198..92f7b37 100644
--- a/hw/omap_i2c.c
+++ b/hw/omap_i2c.c
@@ -16,10 +16,10 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "i2c.h"
-#include "omap.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
+#include "hw/omap.h"
+#include "hw/sysbus.h"
 
 
 typedef struct OMAPI2CState {
diff --git a/hw/omap_intc.c b/hw/omap_intc.c
index 4b0acd0..7da9c35 100644
--- a/hw/omap_intc.c
+++ b/hw/omap_intc.c
@@ -17,9 +17,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "omap.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
+#include "hw/sysbus.h"
 
 /* Interrupt Handlers */
 struct omap_intr_handler_bank_s {
diff --git a/hw/omap_l4.c b/hw/omap_l4.c
index 09e983f..cbe8a06 100644
--- a/hw/omap_l4.c
+++ b/hw/omap_l4.c
@@ -17,8 +17,8 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
 
 struct omap_l4_s {
     MemoryRegion *address_space;
diff --git a/hw/omap_lcdc.c b/hw/omap_lcdc.c
index 936850a..c426f3a 100644
--- a/hw/omap_lcdc.c
+++ b/hw/omap_lcdc.c
@@ -16,10 +16,10 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "omap.h"
-#include "framebuffer.h"
+#include "hw/omap.h"
+#include "hw/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 "omap_lcd_template.h"
+#include "hw/omap_lcd_template.h"
 #define DEPTH 15
-#include "omap_lcd_template.h"
+#include "hw/omap_lcd_template.h"
 #define DEPTH 16
-#include "omap_lcd_template.h"
+#include "hw/omap_lcd_template.h"
 #define DEPTH 32
-#include "omap_lcd_template.h"
+#include "hw/omap_lcd_template.h"
 
 static draw_line_func draw_line_table2[33] = {
     [0 ... 32]	= NULL,
diff --git a/hw/omap_mmc.c b/hw/omap_mmc.c
index 7ecd9bd..6e48110 100644
--- a/hw/omap_mmc.c
+++ b/hw/omap_mmc.c
@@ -16,9 +16,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "omap.h"
-#include "sd.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
+#include "hw/sd.h"
 
 struct omap_mmc_s {
     qemu_irq irq;
diff --git a/hw/omap_sdrc.c b/hw/omap_sdrc.c
index b0f3b8e..510e6cc 100644
--- a/hw/omap_sdrc.c
+++ b/hw/omap_sdrc.c
@@ -17,8 +17,8 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
 
 /* SDRAM Controller Subsystem */
 struct omap_sdrc_s {
diff --git a/hw/omap_spi.c b/hw/omap_spi.c
index 8ff01ed..1cbd98d 100644
--- a/hw/omap_spi.c
+++ b/hw/omap_spi.c
@@ -19,8 +19,8 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-#include "hw.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
 
 /* Multichannel SPI */
 struct omap_mcspi_s {
diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c
index 30998c5..8598233 100644
--- a/hw/omap_sx1.c
+++ b/hw/omap_sx1.c
@@ -25,12 +25,12 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "omap.h"
-#include "boards.h"
-#include "arm-misc.h"
-#include "flash.h"
+#include "hw/omap.h"
+#include "hw/boards.h"
+#include "hw/arm-misc.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/omap_synctimer.c b/hw/omap_synctimer.c
index 945711e..13e7280 100644
--- a/hw/omap_synctimer.c
+++ b/hw/omap_synctimer.c
@@ -17,9 +17,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "omap.h"
+#include "hw/omap.h"
 struct omap_synctimer_s {
     MemoryRegion iomem;
     uint32_t val;
diff --git a/hw/omap_tap.c b/hw/omap_tap.c
index e273e97..181ecee 100644
--- a/hw/omap_tap.c
+++ b/hw/omap_tap.c
@@ -18,8 +18,8 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "omap.h"
+#include "hw/hw.h"
+#include "hw/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 0ebfbf8..af51ce7 100644
--- a/hw/omap_uart.c
+++ b/hw/omap_uart.c
@@ -18,9 +18,9 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "char/char.h"
-#include "hw.h"
-#include "omap.h"
-#include "serial.h"
+#include "hw/hw.h"
+#include "hw/omap.h"
+#include "hw/serial.h"
 #include "exec/address-spaces.h"
 
 /* UARTs */
diff --git a/hw/onenand.c b/hw/onenand.c
index 00a8738..ddba366 100644
--- a/hw/onenand.c
+++ b/hw/onenand.c
@@ -19,13 +19,13 @@
  */
 
 #include "qemu-common.h"
-#include "hw.h"
-#include "flash.h"
-#include "irq.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
+#include "hw/irq.h"
 #include "sysemu/blockdev.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/error-report.h"
 
 /* 11 for 2kB-page OneNAND ("2nd generation") and 10 for 1kB-page chips */
diff --git a/hw/opencores_eth.c b/hw/opencores_eth.c
index f9ba5ee..be64bf2 100644
--- a/hw/opencores_eth.c
+++ b/hw/opencores_eth.c
@@ -31,8 +31,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
diff --git a/hw/openpic.c b/hw/openpic.c
index 20a479c..03a7075 100644
--- a/hw/openpic.c
+++ b/hw/openpic.c
@@ -33,14 +33,14 @@
  * Serial interrupts, as implemented in Raven chipset are not supported yet.
  *
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
-#include "openpic.h"
-#include "sysbus.h"
-#include "pci/msi.h"
+#include "hw/hw.h"
+#include "hw/ppc/mac.h"
+#include "hw/pci/pci.h"
+#include "hw/openpic.h"
+#include "hw/sysbus.h"
+#include "hw/pci/msi.h"
 #include "qemu/bitops.h"
-#include "ppc.h"
+#include "hw/ppc.h"
 
 //#define DEBUG_OPENPIC
 
diff --git a/hw/openrisc_pic.c b/hw/openrisc_pic.c
index aaeb9a9..931511e 100644
--- a/hw/openrisc_pic.c
+++ b/hw/openrisc_pic.c
@@ -18,7 +18,7 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "cpu.h"
 
 /* OpenRISC pic handler */
diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c
index 30947de..db2aac8 100644
--- a/hw/openrisc_sim.c
+++ b/hw/openrisc_sim.c
@@ -18,15 +18,15 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "boards.h"
+#include "hw/hw.h"
+#include "hw/boards.h"
 #include "elf.h"
-#include "serial.h"
+#include "hw/serial.h"
 #include "net/net.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/qtest.h"
 
 #define KERNEL_LOAD_ADDR 0x100
diff --git a/hw/openrisc_timer.c b/hw/openrisc_timer.c
index d965be7..f6c877f 100644
--- a/hw/openrisc_timer.c
+++ b/hw/openrisc_timer.c
@@ -19,7 +19,7 @@
  */
 
 #include "cpu.h"
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 
 #define TIMER_FREQ    (20 * 1000 * 1000)    /* 20MHz */
diff --git a/hw/palm.c b/hw/palm.c
index a633dfc..91bc74a 100644
--- a/hw/palm.c
+++ b/hw/palm.c
@@ -16,15 +16,15 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "audio/audio.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
-#include "omap.h"
-#include "boards.h"
-#include "arm-misc.h"
-#include "devices.h"
-#include "loader.h"
+#include "hw/omap.h"
+#include "hw/boards.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
+#include "hw/loader.h"
 #include "exec/address-spaces.h"
 
 static uint32_t static_readb(void *opaque, hwaddr offset)
diff --git a/hw/pam.c b/hw/pam.c
index 1d72e88..6c0061e 100644
--- a/hw/pam.c
+++ b/hw/pam.c
@@ -27,7 +27,7 @@
  * THE SOFTWARE.
  */
 #include "sysemu/sysemu.h"
-#include "pam.h"
+#include "hw/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 3a4e06b..0b9af43 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -22,10 +22,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "char/char.h"
-#include "isa.h"
-#include "pc.h"
+#include "hw/isa.h"
+#include "hw/pc.h"
 #include "sysemu/sysemu.h"
 
 //#define DEBUG_PARALLEL
diff --git a/hw/pc-testdev.c b/hw/pc-testdev.c
index cf64a1f..8236bce 100644
--- a/hw/pc-testdev.c
+++ b/hw/pc-testdev.c
@@ -39,9 +39,9 @@
 #if defined(CONFIG_POSIX)
 #include <sys/mman.h>
 #endif
-#include "hw.h"
-#include "qdev.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/qdev.h"
+#include "hw/isa.h"
 
 #define IOMEM_LEN    0x10000
 
diff --git a/hw/pc.c b/hw/pc.c
index 07caba7..309bb83 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -21,29 +21,29 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pc.h"
-#include "serial.h"
-#include "apic.h"
-#include "fdc.h"
-#include "ide.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/serial.h"
+#include "hw/apic.h"
+#include "hw/fdc.h"
+#include "hw/ide.h"
+#include "hw/pci/pci.h"
 #include "monitor/monitor.h"
-#include "fw_cfg.h"
-#include "hpet_emul.h"
-#include "smbios.h"
-#include "loader.h"
+#include "hw/fw_cfg.h"
+#include "hw/hpet_emul.h"
+#include "hw/smbios.h"
+#include "hw/loader.h"
 #include "elf.h"
-#include "multiboot.h"
-#include "mc146818rtc.h"
-#include "i8254.h"
-#include "pcspk.h"
-#include "pci/msi.h"
-#include "sysbus.h"
+#include "hw/multiboot.h"
+#include "hw/mc146818rtc.h"
+#include "hw/i8254.h"
+#include "hw/pcspk.h"
+#include "hw/pci/msi.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/kvm.h"
 #include "kvm_i386.h"
-#include "xen.h"
+#include "hw/xen.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
 #include "ui/qemu-spice.h"
diff --git a/hw/pc.h b/hw/pc.h
index da1b102..03a0277 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -4,11 +4,11 @@
 #include "qemu-common.h"
 #include "exec/memory.h"
 #include "exec/ioport.h"
-#include "isa.h"
-#include "fdc.h"
+#include "hw/isa.h"
+#include "hw/fdc.h"
 #include "net/net.h"
 #include "exec/memory.h"
-#include "ioapic.h"
+#include "hw/ioapic.h"
 
 /* PC-style peripherals (also used by other machines).  */
 
diff --git a/hw/pc87312.c b/hw/pc87312.c
index 0e9760e..c4e4c62 100644
--- a/hw/pc87312.c
+++ b/hw/pc87312.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 
-#include "pc87312.h"
+#include "hw/pc87312.h"
 #include "qemu/error-report.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pc87312.h b/hw/pc87312.h
index 7b9e6f6..ad087c7 100644
--- a/hw/pc87312.h
+++ b/hw/pc87312.h
@@ -25,7 +25,7 @@
 #ifndef QEMU_PC87312_H
 #define QEMU_PC87312_H
 
-#include "isa.h"
+#include "hw/isa.h"
 
 
 #define TYPE_PC87312 "pc87312"
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index aa9cc81..73a8656 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -24,23 +24,23 @@
 
 #include <glib.h>
 
-#include "hw.h"
-#include "pc.h"
-#include "apic.h"
-#include "pci/pci.h"
-#include "pci/pci_ids.h"
-#include "usb.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/apic.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_ids.h"
+#include "hw/usb.h"
 #include "net/net.h"
-#include "boards.h"
-#include "ide.h"
+#include "hw/boards.h"
+#include "hw/ide.h"
 #include "sysemu/kvm.h"
-#include "kvm/clock.h"
+#include "hw/kvm/clock.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/arch_init.h"
 #include "sysemu/blockdev.h"
-#include "smbus.h"
-#include "xen.h"
+#include "hw/smbus.h"
+#include "hw/xen.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
 #include "cpu.h"
diff --git a/hw/pc_q35.c b/hw/pc_q35.c
index e22fb98..4f5f347 100644
--- a/hw/pc_q35.c
+++ b/hw/pc_q35.c
@@ -27,17 +27,17 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/arch_init.h"
-#include "smbus.h"
-#include "boards.h"
-#include "mc146818rtc.h"
-#include "xen.h"
+#include "hw/smbus.h"
+#include "hw/boards.h"
+#include "hw/mc146818rtc.h"
+#include "hw/xen.h"
 #include "sysemu/kvm.h"
-#include "kvm/clock.h"
-#include "q35.h"
+#include "hw/kvm/clock.h"
+#include "hw/q35.h"
 #include "exec/address-spaces.h"
-#include "ich9.h"
+#include "hw/ich9.h"
 #include "hw/ide/pci.h"
 #include "hw/ide/ahci.h"
 #include "hw/usb.h"
diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c
index 8b65a7a..3e01528 100644
--- a/hw/pc_sysfw.c
+++ b/hw/pc_sysfw.c
@@ -25,13 +25,13 @@
 
 #include "sysemu/blockdev.h"
 #include "qemu/error-report.h"
-#include "sysbus.h"
-#include "hw.h"
-#include "pc.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
 #include "hw/boards.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/sysemu.h"
-#include "flash.h"
+#include "hw/flash.h"
 #include "sysemu/kvm.h"
 
 #define BIOS_FILENAME "bios.bin"
diff --git a/hw/pci_bridge_dev.c b/hw/pci_bridge_dev.c
index 1124c53..9cc6a40 100644
--- a/hw/pci_bridge_dev.c
+++ b/hw/pci_bridge_dev.c
@@ -19,13 +19,13 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "pci/pci_bridge.h"
-#include "pci/pci_ids.h"
-#include "pci/msi.h"
-#include "pci/shpc.h"
-#include "pci/slotid_cap.h"
+#include "hw/pci/pci_bridge.h"
+#include "hw/pci/pci_ids.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/shpc.h"
+#include "hw/pci/slotid_cap.h"
 #include "exec/memory.h"
-#include "pci/pci_bus.h"
+#include "hw/pci/pci_bus.h"
 
 struct PCIBridgeDev {
     PCIBridge bridge;
diff --git a/hw/pckbd.c b/hw/pckbd.c
index 3bad09b..cc63df0 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "isa.h"
-#include "pc.h"
-#include "ps2.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
+#include "hw/pc.h"
+#include "hw/ps2.h"
 #include "sysemu/sysemu.h"
 
 /* debug PC keyboard */
diff --git a/hw/pcnet-pci.c b/hw/pcnet-pci.c
index df63b22..55f80ca 100644
--- a/hw/pcnet-pci.c
+++ b/hw/pcnet-pci.c
@@ -27,13 +27,13 @@
  * AMD Publication# 19436  Rev:E  Amendment/0  Issue Date: June 2000
  */
 
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "qemu/timer.h"
 #include "sysemu/dma.h"
 
-#include "pcnet.h"
+#include "hw/pcnet.h"
 
 //#define PCNET_DEBUG
 //#define PCNET_DEBUG_IO
diff --git a/hw/pcnet.c b/hw/pcnet.c
index e0de1e3..b0b462b 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -35,13 +35,13 @@
  * http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/NCR92C990.txt
  */
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "net/net.h"
 #include "qemu/timer.h"
 #include "qemu/sockets.h"
 #include "sysemu/sysemu.h"
 
-#include "pcnet.h"
+#include "hw/pcnet.h"
 
 //#define PCNET_DEBUG
 //#define PCNET_DEBUG_IO
diff --git a/hw/pcspk.c b/hw/pcspk.c
index dfab955..d533415 100644
--- a/hw/pcspk.c
+++ b/hw/pcspk.c
@@ -22,13 +22,13 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/isa.h"
 #include "audio/audio.h"
 #include "qemu/timer.h"
-#include "i8254.h"
-#include "pcspk.h"
+#include "hw/i8254.h"
+#include "hw/pcspk.h"
 
 #define PCSPK_BUF_LEN 1792
 #define PCSPK_SAMPLE_RATE 32000
diff --git a/hw/pcspk.h b/hw/pcspk.h
index 7f42bac..f448d22 100644
--- a/hw/pcspk.h
+++ b/hw/pcspk.h
@@ -25,8 +25,8 @@
 #ifndef HW_PCSPK_H
 #define HW_PCSPK_H
 
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 
 static inline ISADevice *pcspk_init(ISABus *bus, ISADevice *pit)
 {
diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c
index fe7a932..cfc0220 100644
--- a/hw/petalogix_ml605_mmu.c
+++ b/hw/petalogix_ml605_mmu.c
@@ -25,23 +25,23 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
 #include "net/net.h"
-#include "flash.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
-#include "devices.h"
-#include "boards.h"
-#include "xilinx.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/xilinx.h"
 #include "sysemu/blockdev.h"
-#include "serial.h"
+#include "hw/serial.h"
 #include "exec/address-spaces.h"
-#include "ssi.h"
+#include "hw/ssi.h"
 
-#include "microblaze_boot.h"
-#include "microblaze_pic_cpu.h"
+#include "hw/microblaze_boot.h"
+#include "hw/microblaze_pic_cpu.h"
 
-#include "stream.h"
+#include "hw/stream.h"
 
 #define LMB_BRAM_SIZE  (128 * 1024)
 #define FLASH_SIZE     (32 * 1024 * 1024)
diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c
index 8605fb8..2498362 100644
--- a/hw/petalogix_s3adsp1800_mmu.c
+++ b/hw/petalogix_s3adsp1800_mmu.c
@@ -23,19 +23,19 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
 #include "net/net.h"
-#include "flash.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
-#include "devices.h"
-#include "boards.h"
-#include "xilinx.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
+#include "hw/xilinx.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
-#include "microblaze_boot.h"
-#include "microblaze_pic_cpu.h"
+#include "hw/microblaze_boot.h"
+#include "hw/microblaze_pic_cpu.h"
 
 #define LMB_BRAM_SIZE  (128 * 1024)
 #define FLASH_SIZE     (16 * 1024 * 1024)
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 123b006..5d57bab 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -36,13 +36,13 @@
  * It does not implement much more ...
  */
 
-#include "hw.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
 #include "block/block.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
 #include "qemu/host-utils.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define PFLASH_BUG(fmt, ...) \
 do { \
diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c
index 44bd465..37b4fcc 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/pflash_cfi02.c
@@ -35,13 +35,13 @@
  * It does not implement multiple sectors erase
  */
 
-#include "hw.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/flash.h"
 #include "qemu/timer.h"
 #include "block/block.h"
 #include "exec/address-spaces.h"
 #include "qemu/host-utils.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 //#define PFLASH_DEBUG
 #ifdef PFLASH_DEBUG
diff --git a/hw/piix4.c b/hw/piix4.c
index c1cb94d..0f5cd01 100644
--- a/hw/piix4.c
+++ b/hw/piix4.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "pci/pci.h"
-#include "isa.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
 
 PCIDevice *piix4_dev;
 
diff --git a/hw/piix_pci.c b/hw/piix_pci.c
index 6c77e49..ac33db5 100644
--- a/hw/piix_pci.c
+++ b/hw/piix_pci.c
@@ -22,15 +22,15 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "isa.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
 #include "qemu/range.h"
-#include "xen.h"
-#include "pam.h"
+#include "hw/xen.h"
+#include "hw/pam.h"
 #include "sysemu/sysemu.h"
 
 /*
diff --git a/hw/pl011.c b/hw/pl011.c
index 002a50e..332d5b9 100644
--- a/hw/pl011.c
+++ b/hw/pl011.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 
 typedef struct {
diff --git a/hw/pl022.c b/hw/pl022.c
index c160e90..536c216 100644
--- a/hw/pl022.c
+++ b/hw/pl022.c
@@ -7,8 +7,8 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "ssi.h"
+#include "hw/sysbus.h"
+#include "hw/ssi.h"
 
 //#define DEBUG_PL022 1
 
diff --git a/hw/pl031.c b/hw/pl031.c
index 757867f..764940b 100644
--- a/hw/pl031.c
+++ b/hw/pl031.c
@@ -11,7 +11,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/pl041.c b/hw/pl041.c
index 0b71c45..92dddc2 100644
--- a/hw/pl041.c
+++ b/hw/pl041.c
@@ -20,10 +20,10 @@
  *
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
-#include "pl041.h"
-#include "lm4549.h"
+#include "hw/pl041.h"
+#include "hw/lm4549.h"
 
 #if 0
 #define PL041_DEBUG_LEVEL 1
diff --git a/hw/pl050.c b/hw/pl050.c
index 5d06bc9..bc31ab6 100644
--- a/hw/pl050.c
+++ b/hw/pl050.c
@@ -7,8 +7,8 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "ps2.h"
+#include "hw/sysbus.h"
+#include "hw/ps2.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/pl061.c b/hw/pl061.c
index a78e819..74bc109 100644
--- a/hw/pl061.c
+++ b/hw/pl061.c
@@ -8,7 +8,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 //#define DEBUG_PL061 1
 
diff --git a/hw/pl080.c b/hw/pl080.c
index f6bbf98..00b66b4 100644
--- a/hw/pl080.c
+++ b/hw/pl080.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define PL080_MAX_CHANNELS 8
 #define PL080_CONF_E    0x1
diff --git a/hw/pl110.c b/hw/pl110.c
index 3d0ac00..924642d 100644
--- a/hw/pl110.c
+++ b/hw/pl110.c
@@ -7,9 +7,9 @@
  * This code is licensed under the GNU LGPL
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "ui/console.h"
-#include "framebuffer.h"
+#include "hw/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 "pl110_template.h"
+#include "hw/pl110_template.h"
 #define BITS 15
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define BITS 16
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define BITS 24
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define BITS 32
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 
 static int pl110_enabled(pl110_state *s)
 {
diff --git a/hw/pl110_template.h b/hw/pl110_template.h
index e738e4a..ec4bfd6 100644
--- a/hw/pl110_template.h
+++ b/hw/pl110_template.h
@@ -27,20 +27,20 @@
 #undef RGB
 #define BORDER bgr
 #define ORDER 0
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define ORDER 1
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define ORDER 2
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #undef BORDER
 #define RGB
 #define BORDER rgb
 #define ORDER 0
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define ORDER 1
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #define ORDER 2
-#include "pl110_template.h"
+#include "hw/pl110_template.h"
 #undef BORDER
 
 static drawfn glue(pl110_draw_fn_,BITS)[48] =
diff --git a/hw/pl181.c b/hw/pl181.c
index 98529f7..2527296 100644
--- a/hw/pl181.c
+++ b/hw/pl181.c
@@ -8,8 +8,8 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
-#include "sd.h"
+#include "hw/sysbus.h"
+#include "hw/sd.h"
 
 //#define DEBUG_PL181 1
 
diff --git a/hw/pl190.c b/hw/pl190.c
index 76ac159..9610673 100644
--- a/hw/pl190.c
+++ b/hw/pl190.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 /* The number of virtual priority levels.  16 user vectors plus the
    unvectored IRQ.  Chained interrupts would require an additional level
diff --git a/hw/pm_smbus.c b/hw/pm_smbus.c
index ea1380c..7900610 100644
--- a/hw/pm_smbus.c
+++ b/hw/pm_smbus.c
@@ -17,10 +17,10 @@
  * License along with this library; if not, see
  * <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "pc.h"
-#include "pm_smbus.h"
-#include "smbus.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pm_smbus.h"
+#include "hw/smbus.h"
 
 /* no save/load? */
 
diff --git a/hw/ppc.c b/hw/ppc.c
index 8cfb84f..c9437fc 100644
--- a/hw/ppc.c
+++ b/hw/ppc.c
@@ -21,13 +21,13 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "nvram.h"
+#include "hw/nvram.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 
diff --git a/hw/ppc405.h b/hw/ppc405.h
index 535cbfb..45c2159 100644
--- a/hw/ppc405.h
+++ b/hw/ppc405.h
@@ -25,7 +25,7 @@
 #if !defined(PPC_405_H)
 #define PPC_405_H
 
-#include "ppc4xx.h"
+#include "hw/ppc4xx.h"
 
 /* Bootinfo as set-up by u-boot */
 typedef struct ppc4xx_bd_info_t ppc4xx_bd_info_t;
diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c
index cf371db..ba443cf 100644
--- a/hw/ppc405_boards.c
+++ b/hw/ppc405_boards.c
@@ -21,16 +21,16 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
-#include "ppc405.h"
-#include "nvram.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
+#include "hw/ppc405.h"
+#include "hw/nvram.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
 #include "block/block.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/ppc405_uc.c b/hw/ppc405_uc.c
index d8cbe87..8465f6d 100644
--- a/hw/ppc405_uc.c
+++ b/hw/ppc405_uc.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
-#include "ppc405.h"
-#include "serial.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
+#include "hw/ppc405.h"
+#include "hw/serial.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 73b5ac7..66911b5 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -14,20 +14,20 @@
 #include "config.h"
 #include "qemu-common.h"
 #include "net/net.h"
-#include "hw.h"
-#include "pci/pci.h"
-#include "boards.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/boards.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 #include "sysemu/device_tree.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
-#include "serial.h"
-#include "ppc.h"
-#include "ppc405.h"
+#include "hw/serial.h"
+#include "hw/ppc.h"
+#include "hw/ppc405.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
 
diff --git a/hw/ppc4xx.h b/hw/ppc4xx.h
index 59dba9e..91d84ba 100644
--- a/hw/ppc4xx.h
+++ b/hw/ppc4xx.h
@@ -25,7 +25,7 @@
 #if !defined(PPC_4XX_H)
 #define PPC_4XX_H
 
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 /* PowerPC 4xx core initialization */
 PowerPCCPU *ppc4xx_init(const char *cpu_model,
diff --git a/hw/ppc4xx_devs.c b/hw/ppc4xx_devs.c
index b6bb0e1..49ec728 100644
--- a/hw/ppc4xx_devs.c
+++ b/hw/ppc4xx_devs.c
@@ -21,9 +21,9 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
-#include "ppc4xx.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
+#include "hw/ppc4xx.h"
 #include "qemu/log.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index ba2d669..f3bbe88 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -19,11 +19,11 @@
 /* This file implements emulation of the 32-bit PCI controller found in some
  * 4xx SoCs, such as the 440EP. */
 
-#include "hw.h"
-#include "ppc.h"
-#include "ppc4xx.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
+#include "hw/ppc4xx.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "exec/address-spaces.h"
 
 #undef DEBUG
diff --git a/hw/ppc_booke.c b/hw/ppc_booke.c
index 25a4e91..30375c0 100644
--- a/hw/ppc_booke.c
+++ b/hw/ppc_booke.c
@@ -21,13 +21,13 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
+#include "hw/hw.h"
+#include "hw/ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "nvram.h"
+#include "hw/nvram.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 
 
 /* Timer Control Register */
diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 1e1ade3..310ae1c 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -14,12 +14,12 @@
  * (at your option) any later version.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "hw/ppc/e500-ccsr.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "qemu/bswap.h"
-#include "ppce500_pci.h"
+#include "hw/ppce500_pci.h"
 
 #ifdef DEBUG_PCI
 #define pci_debug(fmt, ...) fprintf(stderr, fmt, ## __VA_ARGS__)
diff --git a/hw/ppce500_spin.c b/hw/ppce500_spin.c
index 5bdce52..d904fbe 100644
--- a/hw/ppce500_spin.c
+++ b/hw/ppce500_spin.c
@@ -27,9 +27,9 @@
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 
 #define MAX_CPUS 32
diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index 52ee5d9..d21e876 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -23,11 +23,11 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pci/pci.h"
-#include "pci/pci_bus.h"
-#include "pci/pci_host.h"
-#include "pc.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_bus.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pc.h"
 #include "exec/address-spaces.h"
 
 #define TYPE_RAVEN_PCI_DEVICE "raven"
diff --git a/hw/ps2.c b/hw/ps2.c
index 15cfd5b..233a087 100644
--- a/hw/ps2.c
+++ b/hw/ps2.c
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ps2.h"
+#include "hw/hw.h"
+#include "hw/ps2.h"
 #include "ui/console.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/ptimer.c b/hw/ptimer.c
index 24af6a2..4bc96c9 100644
--- a/hw/ptimer.c
+++ b/hw/ptimer.c
@@ -5,9 +5,9 @@
  *
  * This code is licensed under the GNU LGPL.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "qemu/host-utils.h"
 
 struct ptimer_state
diff --git a/hw/puv3.c b/hw/puv3.c
index c722510..f9d0c2b 100644
--- a/hw/puv3.c
+++ b/hw/puv3.c
@@ -13,13 +13,13 @@
 #include "ui/console.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
-#include "sysbus.h"
-#include "boards.h"
-#include "loader.h"
-#include "pc.h"
+#include "hw/sysbus.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
+#include "hw/pc.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/puv3.h"
 
 #define KERNEL_LOAD_ADDR        0x03000000
 #define KERNEL_MAX_SIZE         0x00800000 /* Just a guess */
diff --git a/hw/puv3_dma.c b/hw/puv3_dma.c
index 9de63b4..c05a14e 100644
--- a/hw/puv3_dma.c
+++ b/hw/puv3_dma.c
@@ -8,11 +8,11 @@
  * published by the Free Software Foundation, or any later version.
  * See the COPYING file in the top-level directory.
  */
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/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 152248d..b2a790b 100644
--- a/hw/puv3_gpio.c
+++ b/hw/puv3_gpio.c
@@ -8,11 +8,11 @@
  * published by the Free Software Foundation, or any later version.
  * See the COPYING file in the top-level directory.
  */
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/puv3_intc.c b/hw/puv3_intc.c
index 07f5649..6bc9e1a 100644
--- a/hw/puv3_intc.c
+++ b/hw/puv3_intc.c
@@ -8,10 +8,10 @@
  * published by the Free Software Foundation, or any later version.
  * See the COPYING file in the top-level directory.
  */
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/puv3_ost.c b/hw/puv3_ost.c
index 14c6f21..10a522a 100644
--- a/hw/puv3_ost.c
+++ b/hw/puv3_ost.c
@@ -8,11 +8,11 @@
  * published by the Free Software Foundation, or any later version.
  * See the COPYING file in the top-level directory.
  */
-#include "sysbus.h"
-#include "ptimer.h"
+#include "hw/sysbus.h"
+#include "hw/ptimer.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/puv3.h"
 
 /* puv3 ostimer implementation. */
 typedef struct {
diff --git a/hw/puv3_pm.c b/hw/puv3_pm.c
index 87a687a..6b8d94d 100644
--- a/hw/puv3_pm.c
+++ b/hw/puv3_pm.c
@@ -8,11 +8,11 @@
  * published by the Free Software Foundation, or any later version.
  * See the COPYING file in the top-level directory.
  */
-#include "hw.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
 
 #undef DEBUG_PUV3
-#include "puv3.h"
+#include "hw/puv3.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
index d303320..c0f50c9 100644
--- a/hw/pxa2xx.c
+++ b/hw/pxa2xx.c
@@ -7,12 +7,12 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "pxa.h"
+#include "hw/sysbus.h"
+#include "hw/pxa.h"
 #include "sysemu/sysemu.h"
-#include "serial.h"
-#include "i2c.h"
-#include "ssi.h"
+#include "hw/serial.h"
+#include "hw/i2c.h"
+#include "hw/ssi.h"
 #include "char/char.h"
 #include "sysemu/blockdev.h"
 
diff --git a/hw/pxa2xx_dma.c b/hw/pxa2xx_dma.c
index c0dba45..1db21c9 100644
--- a/hw/pxa2xx_dma.c
+++ b/hw/pxa2xx_dma.c
@@ -8,9 +8,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/sysbus.h"
 
 #define PXA255_DMA_NUM_CHANNELS 16
 #define PXA27X_DMA_NUM_CHANNELS 32
diff --git a/hw/pxa2xx_gpio.c b/hw/pxa2xx_gpio.c
index 05d2ad2..eef8411 100644
--- a/hw/pxa2xx_gpio.c
+++ b/hw/pxa2xx_gpio.c
@@ -7,9 +7,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
-#include "sysbus.h"
-#include "pxa.h"
+#include "hw/hw.h"
+#include "hw/sysbus.h"
+#include "hw/pxa.h"
 
 #define PXA2XX_GPIO_BANKS	4
 
diff --git a/hw/pxa2xx_keypad.c b/hw/pxa2xx_keypad.c
index 4ff04ad..32ea7a5 100644
--- a/hw/pxa2xx_keypad.c
+++ b/hw/pxa2xx_keypad.c
@@ -11,8 +11,8 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pxa.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
 #include "ui/console.h"
 
 /*
diff --git a/hw/pxa2xx_lcd.c b/hw/pxa2xx_lcd.c
index 512a27e..6484d27 100644
--- a/hw/pxa2xx_lcd.c
+++ b/hw/pxa2xx_lcd.c
@@ -10,13 +10,13 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "pxa.h"
+#include "hw/pxa.h"
 #include "ui/pixel_ops.h"
 /* FIXME: For graphic_rotate. Should probably be done in common code.  */
 #include "sysemu/sysemu.h"
-#include "framebuffer.h"
+#include "hw/framebuffer.h"
 
 struct DMAChannel {
     uint32_t branch;
@@ -976,15 +976,15 @@ static const VMStateDescription vmstate_pxa2xx_lcdc = {
 };
 
 #define BITS 8
-#include "pxa2xx_template.h"
+#include "hw/pxa2xx_template.h"
 #define BITS 15
-#include "pxa2xx_template.h"
+#include "hw/pxa2xx_template.h"
 #define BITS 16
-#include "pxa2xx_template.h"
+#include "hw/pxa2xx_template.h"
 #define BITS 24
-#include "pxa2xx_template.h"
+#include "hw/pxa2xx_template.h"
 #define BITS 32
-#include "pxa2xx_template.h"
+#include "hw/pxa2xx_template.h"
 
 PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem,
                                  hwaddr base, qemu_irq irq)
diff --git a/hw/pxa2xx_mmci.c b/hw/pxa2xx_mmci.c
index 3589968..0df83cc 100644
--- a/hw/pxa2xx_mmci.c
+++ b/hw/pxa2xx_mmci.c
@@ -10,10 +10,10 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "sd.h"
-#include "qdev.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/sd.h"
+#include "hw/qdev.h"
 
 struct PXA2xxMMCIState {
     MemoryRegion iomem;
diff --git a/hw/pxa2xx_pcmcia.c b/hw/pxa2xx_pcmcia.c
index 3a79c72..66fefba 100644
--- a/hw/pxa2xx_pcmcia.c
+++ b/hw/pxa2xx_pcmcia.c
@@ -10,9 +10,9 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pcmcia.h"
-#include "pxa.h"
+#include "hw/hw.h"
+#include "hw/pcmcia.h"
+#include "hw/pxa.h"
 
 
 struct PXA2xxPCMCIAState {
diff --git a/hw/pxa2xx_pic.c b/hw/pxa2xx_pic.c
index 90b8fef..145fc78 100644
--- a/hw/pxa2xx_pic.c
+++ b/hw/pxa2xx_pic.c
@@ -8,9 +8,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/sysbus.h"
 
 #define ICIP	0x00	/* Interrupt Controller IRQ Pending register */
 #define ICMR	0x04	/* Interrupt Controller Mask register */
diff --git a/hw/pxa2xx_timer.c b/hw/pxa2xx_timer.c
index 5c9d2e8..c173fe4 100644
--- a/hw/pxa2xx_timer.c
+++ b/hw/pxa2xx_timer.c
@@ -7,11 +7,11 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "pxa.h"
-#include "sysbus.h"
+#include "hw/pxa.h"
+#include "hw/sysbus.h"
 
 #define OSMR0	0x00
 #define OSMR1	0x04
diff --git a/hw/q35.c b/hw/q35.c
index efebc27..0a25b8b 100644
--- a/hw/q35.c
+++ b/hw/q35.c
@@ -27,8 +27,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "q35.h"
+#include "hw/hw.h"
+#include "hw/q35.h"
 
 /****************************************************************************
  * Q35 host
diff --git a/hw/q35.h b/hw/q35.h
index 246c12c..d766bb7 100644
--- a/hw/q35.h
+++ b/hw/q35.h
@@ -22,18 +22,18 @@
 #ifndef HW_Q35_H
 #define HW_Q35_H
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/range.h"
-#include "isa.h"
-#include "sysbus.h"
-#include "pc.h"
-#include "apm.h"
-#include "apic.h"
-#include "pci/pci.h"
-#include "pci/pcie_host.h"
-#include "acpi.h"
-#include "acpi_ich9.h"
-#include "pam.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
+#include "hw/pc.h"
+#include "hw/apm.h"
+#include "hw/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"
 
 #define TYPE_Q35_HOST_DEVICE "q35-pcihost"
 #define Q35_HOST_DEVICE(obj) \
diff --git a/hw/qdev-addr.c b/hw/qdev-addr.c
index fc2c437..2398b4a 100644
--- a/hw/qdev-addr.c
+++ b/hw/qdev-addr.c
@@ -1,5 +1,5 @@
-#include "qdev.h"
-#include "qdev-addr.h"
+#include "hw/qdev.h"
+#include "hw/qdev-addr.h"
 #include "exec/hwaddr.h"
 #include "qapi/qmp/qerror.h"
 #include "qapi/visitor.h"
diff --git a/hw/qdev-properties-system.c b/hw/qdev-properties-system.c
index ce3af22..8795144 100644
--- a/hw/qdev-properties-system.c
+++ b/hw/qdev-properties-system.c
@@ -11,7 +11,7 @@
  */
 
 #include "net/net.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index a8a31f5..0307a78 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -1,5 +1,5 @@
 #include "net/net.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
diff --git a/hw/qdev-properties.h b/hw/qdev-properties.h
index 20c67f3..0b0465c 100644
--- a/hw/qdev-properties.h
+++ b/hw/qdev-properties.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_QDEV_PROPERTIES_H
 #define QEMU_QDEV_PROPERTIES_H
 
-#include "qdev-core.h"
+#include "hw/qdev-core.h"
 
 /*** qdev-properties.c ***/
 
diff --git a/hw/qdev.c b/hw/qdev.c
index 62bc899..0b20280 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -25,7 +25,7 @@
    inherit from a particular bus (e.g. PCI or I2C) rather than
    this API directly.  */
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "sysemu/sysemu.h"
 #include "qapi/error.h"
 #include "qapi/qmp/qerror.h"
diff --git a/hw/qdev.h b/hw/qdev.h
index f814656..5cb8b08 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -2,7 +2,7 @@
 #define QDEV_H
 
 #include "hw/hw.h"
-#include "qdev-core.h"
-#include "qdev-properties.h"
+#include "hw/qdev-core.h"
+#include "hw/qdev-properties.h"
 
 #endif
diff --git a/hw/qxl-logger.c b/hw/qxl-logger.c
index 3cd85d9..84f9aa1 100644
--- a/hw/qxl-logger.c
+++ b/hw/qxl-logger.c
@@ -20,7 +20,7 @@
  */
 
 #include "qemu/timer.h"
-#include "qxl.h"
+#include "hw/qxl.h"
 
 static const char *qxl_type[] = {
     [ QXL_CMD_NOP ]     = "nop",
diff --git a/hw/qxl-render.c b/hw/qxl-render.c
index 455fb91..d77df42 100644
--- a/hw/qxl-render.c
+++ b/hw/qxl-render.c
@@ -19,7 +19,7 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "qxl.h"
+#include "hw/qxl.h"
 
 static void qxl_blit(PCIQXLDevice *qxl, QXLRect *rect)
 {
diff --git a/hw/qxl.c b/hw/qxl.c
index 2e1c5e2..ef69348 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -27,7 +27,7 @@
 #include "sysemu/sysemu.h"
 #include "trace.h"
 
-#include "qxl.h"
+#include "hw/qxl.h"
 
 /*
  * NOTE: SPICE_RING_PROD_ITEM accesses memory on the pci bar and as
diff --git a/hw/qxl.h b/hw/qxl.h
index f867a1d..36f1a25 100644
--- a/hw/qxl.h
+++ b/hw/qxl.h
@@ -4,9 +4,9 @@
 #include "qemu-common.h"
 
 #include "ui/console.h"
-#include "hw.h"
-#include "pci/pci.h"
-#include "vga_int.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/vga_int.h"
 #include "qemu/thread.h"
 
 #include "ui/qemu-spice.h"
diff --git a/hw/r2d.c b/hw/r2d.c
index 2d0dd1f..faa03d2 100644
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -23,19 +23,19 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "sh.h"
-#include "devices.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
+#include "hw/devices.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "pci/pci.h"
+#include "hw/boards.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
-#include "sh7750_regs.h"
-#include "ide.h"
-#include "loader.h"
-#include "usb.h"
-#include "flash.h"
+#include "hw/sh7750_regs.h"
+#include "hw/ide.h"
+#include "hw/loader.h"
+#include "hw/usb.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/rc4030.c b/hw/rc4030.c
index a0358a3..b065515 100644
--- a/hw/rc4030.c
+++ b/hw/rc4030.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "mips.h"
+#include "hw/hw.h"
+#include "hw/mips.h"
 #include "qemu/timer.h"
 
 /********************************************************/
diff --git a/hw/realview.c b/hw/realview.c
index 78da767..5fb490c 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -7,15 +7,15 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "primecell.h"
-#include "devices.h"
-#include "pci/pci.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/primecell.h"
+#include "hw/devices.h"
+#include "hw/pci/pci.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "i2c.h"
+#include "hw/boards.h"
+#include "hw/i2c.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/realview_gic.c b/hw/realview_gic.c
index 8f2a7e2..0ec30ca 100644
--- a/hw/realview_gic.c
+++ b/hw/realview_gic.c
@@ -7,7 +7,7 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index d7716be..786b875 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -51,12 +51,12 @@
 /* For crc32 */
 #include <zlib.h>
 
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 #include "sysemu/dma.h"
 #include "qemu/timer.h"
 #include "net/net.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/sysemu.h"
 #include "qemu/iov.h"
 
diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c
index 6b56995..0faade0 100644
--- a/hw/s390x/event-facility.c
+++ b/hw/s390x/event-facility.c
@@ -18,8 +18,8 @@
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
 
-#include "sclp.h"
-#include "event-facility.h"
+#include "hw/s390x/sclp.h"
+#include "hw/s390x/event-facility.h"
 
 typedef struct EventTypesBus {
     BusState qbus;
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 6549211..d436414 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -12,7 +12,7 @@
 #include "hw/boards.h"
 #include "exec/address-spaces.h"
 #include "s390-virtio.h"
-#include "sclp.h"
+#include "hw/s390x/sclp.h"
 #include "ioinst.h"
 #include "css.h"
 #include "virtio-ccw.h"
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index a9d3a6a..86d6ae0 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -16,7 +16,7 @@
 #include "sysemu/kvm.h"
 #include "exec/memory.h"
 
-#include "sclp.h"
+#include "hw/s390x/sclp.h"
 
 static inline S390SCLPDevice *get_event_facility(void)
 {
diff --git a/hw/s390x/sclpconsole.c b/hw/s390x/sclpconsole.c
index 475d7ba..5c881e5 100644
--- a/hw/s390x/sclpconsole.c
+++ b/hw/s390x/sclpconsole.c
@@ -16,8 +16,8 @@
 #include "qemu/thread.h"
 #include "qemu/error-report.h"
 
-#include "sclp.h"
-#include "event-facility.h"
+#include "hw/s390x/sclp.h"
+#include "hw/s390x/event-facility.h"
 #include "char/char.h"
 
 typedef struct ASCIIConsoleData {
diff --git a/hw/s390x/sclpquiesce.c b/hw/s390x/sclpquiesce.c
index 2538498..5fadc86 100644
--- a/hw/s390x/sclpquiesce.c
+++ b/hw/s390x/sclpquiesce.c
@@ -13,8 +13,8 @@
  */
 #include <hw/qdev.h>
 #include "sysemu/sysemu.h"
-#include "sclp.h"
-#include "event-facility.h"
+#include "hw/s390x/sclp.h"
+#include "hw/s390x/event-facility.h"
 
 typedef struct SignalQuiesce {
     EventBufferHeader ebh;
diff --git a/hw/sb16.c b/hw/sb16.c
index 52dfedf..bd51ceb 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "audiodev.h"
+#include "hw/hw.h"
+#include "hw/audiodev.h"
 #include "audio/audio.h"
-#include "isa.h"
-#include "qdev.h"
+#include "hw/isa.h"
+#include "hw/qdev.h"
 #include "qemu/timer.h"
 #include "qemu/host-utils.h"
 
diff --git a/hw/sbi.c b/hw/sbi.c
index d58184a..8795749 100644
--- a/hw/sbi.c
+++ b/hw/sbi.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 //#define DEBUG_IRQ
 
diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
index a97f1cd..163d7a1 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi-bus.c
@@ -1,8 +1,8 @@
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/error-report.h"
-#include "scsi.h"
-#include "scsi-defs.h"
-#include "qdev.h"
+#include "hw/scsi.h"
+#include "hw/scsi-defs.h"
+#include "hw/qdev.h"
 #include "sysemu/blockdev.h"
 #include "trace.h"
 #include "sysemu/dma.h"
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index d411586..1e12818 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -30,8 +30,8 @@ do { printf("scsi-disk: " fmt , ## __VA_ARGS__); } while (0)
 
 #include "qemu-common.h"
 #include "qemu/error-report.h"
-#include "scsi.h"
-#include "scsi-defs.h"
+#include "hw/scsi.h"
+#include "hw/scsi-defs.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c
index 8175474..4d04cac 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 "scsi.h"
+#include "hw/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 "scsi-defs.h"
+#include "hw/scsi-defs.h"
 
 #define SCSI_SENSE_BUF_SIZE 96
 
diff --git a/hw/scsi.h b/hw/scsi.h
index a5b5b2e..33e2e0b 100644
--- a/hw/scsi.h
+++ b/hw/scsi.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_SCSI_H
 #define QEMU_HW_SCSI_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "block/block.h"
 #include "hw/block-common.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/sd.c b/hw/sd.c
index 428bd78..a895123 100644
--- a/hw/sd.c
+++ b/hw/sd.c
@@ -29,9 +29,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "block/block.h"
-#include "sd.h"
+#include "hw/sd.h"
 #include "qemu/bitmap.h"
 
 //#define DEBUG_SD 1
diff --git a/hw/sdhci.c b/hw/sdhci.c
index e535df9..93feada 100644
--- a/hw/sdhci.c
+++ b/hw/sdhci.c
@@ -22,14 +22,14 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/dma.h"
 #include "qemu/timer.h"
 #include "block/block_int.h"
 #include "qemu/bitops.h"
 
-#include "sdhci.h"
+#include "hw/sdhci.h"
 
 /* host controller debug messages */
 #ifndef SDHC_DEBUG
diff --git a/hw/serial-isa.c b/hw/serial-isa.c
index 5a6f51f..a630a7d 100644
--- a/hw/serial-isa.c
+++ b/hw/serial-isa.c
@@ -23,8 +23,8 @@
  * THE SOFTWARE.
  */
 
-#include "serial.h"
-#include "isa.h"
+#include "hw/serial.h"
+#include "hw/isa.h"
 
 typedef struct ISASerialState {
     ISADevice dev;
diff --git a/hw/serial-pci.c b/hw/serial-pci.c
index 1c31353..954657b 100644
--- a/hw/serial-pci.c
+++ b/hw/serial-pci.c
@@ -25,8 +25,8 @@
 
 /* see docs/specs/pci-serial.txt */
 
-#include "serial.h"
-#include "pci/pci.h"
+#include "hw/serial.h"
+#include "hw/pci/pci.h"
 
 #define PCI_SERIAL_MAX_PORTS 4
 
diff --git a/hw/serial.c b/hw/serial.c
index f0ce9b0..6a83543 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 
-#include "serial.h"
+#include "hw/serial.h"
 #include "char/char.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/serial.h b/hw/serial.h
index 98ee424..814b8c6 100644
--- a/hw/serial.h
+++ b/hw/serial.h
@@ -25,7 +25,7 @@
 #ifndef HW_SERIAL_H
 #define HW_SERIAL_H 1
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
 #include "exec/memory.h"
 
diff --git a/hw/sga.c b/hw/sga.c
index 29bc3e0..4b1d4e5 100644
--- a/hw/sga.c
+++ b/hw/sga.c
@@ -24,9 +24,9 @@
  * sgabios code originally available at code.google.com/p/sgabios
  *
  */
-#include "pci/pci.h"
-#include "pc.h"
-#include "loader.h"
+#include "hw/pci/pci.h"
+#include "hw/pc.h"
+#include "hw/loader.h"
 #include "sysemu/sysemu.h"
 
 #define SGABIOS_FILENAME "sgabios.bin"
diff --git a/hw/sh.h b/hw/sh.h
index 77bf8aa..6230954 100644
--- a/hw/sh.h
+++ b/hw/sh.h
@@ -2,7 +2,7 @@
 #define QEMU_SH_H
 /* Definitions for SH board emulation.  */
 
-#include "sh_intc.h"
+#include "hw/sh_intc.h"
 
 #define A7ADDR(x) ((x) & 0x1fffffff)
 #define P4ADDR(x) ((x) | 0xe0000000)
diff --git a/hw/sh7750.c b/hw/sh7750.c
index 666f865..6778c94 100644
--- a/hw/sh7750.c
+++ b/hw/sh7750.c
@@ -23,12 +23,12 @@
  * THE SOFTWARE.
  */
 #include <stdio.h>
-#include "hw.h"
-#include "sh.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
 #include "sysemu/sysemu.h"
-#include "sh7750_regs.h"
-#include "sh7750_regnames.h"
-#include "sh_intc.h"
+#include "hw/sh7750_regs.h"
+#include "hw/sh7750_regnames.h"
+#include "hw/sh_intc.h"
 #include "cpu.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh7750_regnames.c b/hw/sh7750_regnames.c
index 5a5a2d8..389698d 100644
--- a/hw/sh7750_regnames.c
+++ b/hw/sh7750_regnames.c
@@ -1,7 +1,7 @@
-#include "hw.h"
-#include "sh.h"
-#include "sh7750_regs.h"
-#include "sh7750_regnames.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
+#include "hw/sh7750_regs.h"
+#include "hw/sh7750_regnames.h"
 
 #define REGNAME(r) {r, #r},
 
diff --git a/hw/sh_intc.c b/hw/sh_intc.c
index c3f77d5..9e64e4d 100644
--- a/hw/sh_intc.c
+++ b/hw/sh_intc.c
@@ -8,9 +8,9 @@
  * This code is licensed under the GPL.
  */
 
-#include "sh_intc.h"
-#include "hw.h"
-#include "sh.h"
+#include "hw/sh_intc.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
 
 //#define DEBUG_INTC
 //#define DEBUG_INTC_SOURCES
diff --git a/hw/sh_intc.h b/hw/sh_intc.h
index 6f11bee..b7ddcb0 100644
--- a/hw/sh_intc.h
+++ b/hw/sh_intc.h
@@ -2,7 +2,7 @@
 #define __SH_INTC_H__
 
 #include "qemu-common.h"
-#include "irq.h"
+#include "hw/irq.h"
 #include "exec/address-spaces.h"
 
 typedef unsigned char intc_enum;
diff --git a/hw/sh_pci.c b/hw/sh_pci.c
index 077d957..96535db 100644
--- a/hw/sh_pci.c
+++ b/hw/sh_pci.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "sysbus.h"
-#include "sh.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/sysbus.h"
+#include "hw/sh.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "qemu/bswap.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh_serial.c b/hw/sh_serial.c
index 21c5b13..40e797c 100644
--- a/hw/sh_serial.c
+++ b/hw/sh_serial.c
@@ -24,8 +24,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "sh.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
 #include "char/char.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sh_timer.c b/hw/sh_timer.c
index 64ea23f..b450323 100644
--- a/hw/sh_timer.c
+++ b/hw/sh_timer.c
@@ -8,11 +8,11 @@
  * This code is licensed under the GPL.
  */
 
-#include "hw.h"
-#include "sh.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 
 //#define DEBUG_TIMER
 
diff --git a/hw/shix.c b/hw/shix.c
index 6f2d55a..192579d 100644
--- a/hw/shix.c
+++ b/hw/shix.c
@@ -27,11 +27,11 @@
 
    More information in target-sh4/README.sh4
 */
-#include "hw.h"
-#include "sh.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "exec/address-spaces.h"
 
 #define BIOS_FILENAME "shix_bios.bin"
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c
index 136ceeb..b60592b 100644
--- a/hw/slavio_intctl.c
+++ b/hw/slavio_intctl.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 
-#include "sun4m.h"
+#include "hw/sun4m.h"
 #include "monitor/monitor.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 //#define DEBUG_IRQ_COUNT
diff --git a/hw/slavio_misc.c b/hw/slavio_misc.c
index af24cc1..a7a9368 100644
--- a/hw/slavio_misc.c
+++ b/hw/slavio_misc.c
@@ -23,7 +23,7 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /*
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index 68a4c0c..83f22a0 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 
-#include "sun4m.h"
+#include "hw/sun4m.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
-#include "sysbus.h"
+#include "hw/ptimer.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /*
diff --git a/hw/sm501.c b/hw/sm501.c
index b7ac7f9..0e01911 100644
--- a/hw/sm501.c
+++ b/hw/sm501.c
@@ -23,12 +23,12 @@
  */
 
 #include <stdio.h>
-#include "hw.h"
-#include "serial.h"
+#include "hw/hw.h"
+#include "hw/serial.h"
 #include "ui/console.h"
-#include "devices.h"
-#include "sysbus.h"
-#include "qdev-addr.h"
+#include "hw/devices.h"
+#include "hw/sysbus.h"
+#include "hw/qdev-addr.h"
 #include "qemu/range.h"
 #include "ui/pixel_ops.h"
 
@@ -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 "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define DEPTH 15
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 15
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define DEPTH 16
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 16
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define DEPTH 32
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 32
-#include "sm501_template.h"
+#include "hw/sm501_template.h"
 
 static draw_line_func * draw_line8_funcs[] = {
     draw_line8_8,
diff --git a/hw/smbios.c b/hw/smbios.c
index a7b8bfc..672ee9b 100644
--- a/hw/smbios.c
+++ b/hw/smbios.c
@@ -14,8 +14,8 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "smbios.h"
-#include "loader.h"
+#include "hw/smbios.h"
+#include "hw/loader.h"
 
 /*
  * Structures shared with the BIOS
diff --git a/hw/smbus.c b/hw/smbus.c
index a908591..9626415 100644
--- a/hw/smbus.c
+++ b/hw/smbus.c
@@ -9,9 +9,9 @@
 
 /* TODO: Implement PEC.  */
 
-#include "hw.h"
-#include "i2c.h"
-#include "smbus.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
+#include "hw/smbus.h"
 
 //#define DEBUG_SMBUS 1
 
diff --git a/hw/smbus.h b/hw/smbus.h
index 6ed45bd..c3db620 100644
--- a/hw/smbus.h
+++ b/hw/smbus.h
@@ -25,7 +25,7 @@
  * THE SOFTWARE.
  */
 
-#include "i2c.h"
+#include "hw/i2c.h"
 
 #define TYPE_SMBUS_DEVICE "smbus-device"
 #define SMBUS_DEVICE(obj) \
diff --git a/hw/smbus_eeprom.c b/hw/smbus_eeprom.c
index d36dc7b..dff8403d 100644
--- a/hw/smbus_eeprom.c
+++ b/hw/smbus_eeprom.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "i2c.h"
-#include "smbus.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
+#include "hw/smbus.h"
 
 //#define DEBUG
 
diff --git a/hw/smbus_ich9.c b/hw/smbus_ich9.c
index 16db3a7..732ebd3 100644
--- a/hw/smbus_ich9.c
+++ b/hw/smbus_ich9.c
@@ -24,15 +24,15 @@
  * GNU GPL, version 2 or (at your option) any later version.
  *
  */
-#include "hw.h"
-#include "pc.h"
-#include "pm_smbus.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pm_smbus.h"
+#include "hw/pci/pci.h"
 #include "sysemu/sysemu.h"
-#include "i2c.h"
-#include "smbus.h"
+#include "hw/i2c.h"
+#include "hw/smbus.h"
 
-#include "ich9.h"
+#include "hw/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 67fd074..c2feae6 100644
--- a/hw/smc91c111.c
+++ b/hw/smc91c111.c
@@ -7,9 +7,9 @@
  * This code is licensed under the GPL
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
-#include "devices.h"
+#include "hw/devices.h"
 /* For crc32 */
 #include <zlib.h>
 
diff --git a/hw/soc_dma.c b/hw/soc_dma.c
index 64e8ee1..db5d609 100644
--- a/hw/soc_dma.c
+++ b/hw/soc_dma.c
@@ -19,7 +19,7 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "soc_dma.h"
+#include "hw/soc_dma.h"
 
 static void transfer_mem2mem(struct soc_dma_ch_s *ch)
 {
diff --git a/hw/spapr.c b/hw/spapr.c
index e88a27a..2709c66 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -25,7 +25,7 @@
  *
  */
 #include "sysemu/sysemu.h"
-#include "hw.h"
+#include "hw/hw.h"
 #include "elf.h"
 #include "net/net.h"
 #include "sysemu/blockdev.h"
@@ -45,7 +45,7 @@
 
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 #include "exec/address-spaces.h"
 #include "hw/usb.h"
diff --git a/hw/spapr_iommu.c b/hw/spapr_iommu.c
index d8a098c..8d500bf 100644
--- a/hw/spapr_iommu.c
+++ b/hw/spapr_iommu.c
@@ -16,9 +16,9 @@
  * 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.h"
+#include "hw/hw.h"
 #include "sysemu/kvm.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "kvm_ppc.h"
 #include "sysemu/dma.h"
 #include "exec/address-spaces.h"
diff --git a/hw/spapr_llan.c b/hw/spapr_llan.c
index 6ef2936..5d2565b 100644
--- a/hw/spapr_llan.c
+++ b/hw/spapr_llan.c
@@ -24,7 +24,7 @@
  * THE SOFTWARE.
  *
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
 #include "hw/qdev.h"
 #include "hw/spapr.h"
diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index 4eacbcf..36adbc5 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -22,11 +22,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pci/pci.h"
-#include "pci/msi.h"
-#include "pci/msix.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#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 "exec/address-spaces.h"
diff --git a/hw/spapr_vio.c b/hw/spapr_vio.c
index 34c9ca6..6eb3ab5 100644
--- a/hw/spapr_vio.c
+++ b/hw/spapr_vio.c
@@ -19,11 +19,11 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "monitor/monitor.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
 #include "sysemu/kvm.h"
diff --git a/hw/spapr_vscsi.c b/hw/spapr_vscsi.c
index 7fc0e13..2794094 100644
--- a/hw/spapr_vscsi.c
+++ b/hw/spapr_vscsi.c
@@ -31,10 +31,10 @@
  *  - Add indirect descriptors support
  *  - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)
  */
-#include "hw.h"
-#include "scsi.h"
-#include "scsi-defs.h"
-#include "srp.h"
+#include "hw/hw.h"
+#include "hw/scsi.h"
+#include "hw/scsi-defs.h"
+#include "hw/srp.h"
 #include "hw/qdev.h"
 #include "hw/spapr.h"
 #include "hw/spapr_vio.h"
diff --git a/hw/spapr_vty.c b/hw/spapr_vty.c
index 5c63eaa..be08571 100644
--- a/hw/spapr_vty.c
+++ b/hw/spapr_vty.c
@@ -1,4 +1,4 @@
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "char/char.h"
 #include "hw/spapr.h"
 #include "hw/spapr_vio.h"
diff --git a/hw/sparc32_dma.c b/hw/sparc32_dma.c
index 6d0df51..18e368e 100644
--- a/hw/sparc32_dma.c
+++ b/hw/sparc32_dma.c
@@ -25,10 +25,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "sparc32_dma.h"
-#include "sun4m.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sparc32_dma.h"
+#include "hw/sun4m.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /*
diff --git a/hw/spitz.c b/hw/spitz.c
index 5bc49fc..f5832be 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -10,23 +10,23 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "arm-misc.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/arm-misc.h"
 #include "sysemu/sysemu.h"
-#include "pcmcia.h"
-#include "i2c.h"
-#include "ssi.h"
-#include "flash.h"
+#include "hw/pcmcia.h"
+#include "hw/i2c.h"
+#include "hw/ssi.h"
+#include "hw/flash.h"
 #include "qemu/timer.h"
-#include "devices.h"
-#include "sharpsl.h"
+#include "hw/devices.h"
+#include "hw/sharpsl.h"
 #include "ui/console.h"
 #include "block/block.h"
 #include "audio/audio.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 #undef REG_FMT
diff --git a/hw/ssd0303.c b/hw/ssd0303.c
index 8777b16..db50909 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 "i2c.h"
+#include "hw/i2c.h"
 #include "ui/console.h"
 
 //#define DEBUG_SSD0303 1
diff --git a/hw/ssd0323.c b/hw/ssd0323.c
index 84c86a5..27b4151 100644
--- a/hw/ssd0323.c
+++ b/hw/ssd0323.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 "ssi.h"
+#include "hw/ssi.h"
 #include "ui/console.h"
 
 //#define DEBUG_SSD0323 1
diff --git a/hw/ssi-sd.c b/hw/ssi-sd.c
index dca8906..4d3c4f6 100644
--- a/hw/ssi-sd.c
+++ b/hw/ssi-sd.c
@@ -11,8 +11,8 @@
  */
 
 #include "sysemu/blockdev.h"
-#include "ssi.h"
-#include "sd.h"
+#include "hw/ssi.h"
+#include "hw/sd.h"
 
 //#define DEBUG_SSI_SD 1
 
diff --git a/hw/ssi.c b/hw/ssi.c
index 0b18176..1264d9d 100644
--- a/hw/ssi.c
+++ b/hw/ssi.c
@@ -12,7 +12,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "ssi.h"
+#include "hw/ssi.h"
 
 struct SSIBus {
     BusState qbus;
diff --git a/hw/ssi.h b/hw/ssi.h
index a05d60b..fdae317 100644
--- a/hw/ssi.h
+++ b/hw/ssi.h
@@ -11,7 +11,7 @@
 #ifndef QEMU_SSI_H
 #define QEMU_SSI_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 typedef struct SSISlave SSISlave;
 
diff --git a/hw/stellaris.c b/hw/stellaris.c
index 9b8f203..f4ce794 100644
--- a/hw/stellaris.c
+++ b/hw/stellaris.c
@@ -7,14 +7,14 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "ssi.h"
-#include "arm-misc.h"
-#include "devices.h"
+#include "hw/sysbus.h"
+#include "hw/ssi.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
 #include "qemu/timer.h"
-#include "i2c.h"
+#include "hw/i2c.h"
 #include "net/net.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "exec/address-spaces.h"
 
 #define GPIO_A 0
diff --git a/hw/stellaris_enet.c b/hw/stellaris_enet.c
index 6c701fb..59b8456 100644
--- a/hw/stellaris_enet.c
+++ b/hw/stellaris_enet.c
@@ -6,7 +6,7 @@
  *
  * This code is licensed under the GPL.
  */
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "net/net.h"
 #include <zlib.h>
 
diff --git a/hw/stellaris_input.c b/hw/stellaris_input.c
index 7a95c3f..4e40792 100644
--- a/hw/stellaris_input.c
+++ b/hw/stellaris_input.c
@@ -6,8 +6,8 @@
  *
  * This code is licensed under the GPL.
  */
-#include "hw.h"
-#include "devices.h"
+#include "hw/hw.h"
+#include "hw/devices.h"
 #include "ui/console.h"
 
 typedef struct {
diff --git a/hw/stream.c b/hw/stream.c
index d4cf84d..a07d6a5 100644
--- a/hw/stream.c
+++ b/hw/stream.c
@@ -1,4 +1,4 @@
-#include "stream.h"
+#include "hw/stream.h"
 
 void
 stream_push(StreamSlave *sink, uint8_t *buf, size_t len, uint32_t *app)
diff --git a/hw/strongarm.c b/hw/strongarm.c
index ab736e3..49f9577 100644
--- a/hw/strongarm.c
+++ b/hw/strongarm.c
@@ -26,13 +26,13 @@
  *  Contributions after 2012-01-13 are licensed under the terms of the
  *  GNU GPL, version 2 or (at your option) any later version.
  */
-#include "sysbus.h"
-#include "strongarm.h"
+#include "hw/sysbus.h"
+#include "hw/strongarm.h"
 #include "qemu/error-report.h"
-#include "arm-misc.h"
+#include "hw/arm-misc.h"
 #include "char/char.h"
 #include "sysemu/sysemu.h"
-#include "ssi.h"
+#include "hw/ssi.h"
 
 //#define DEBUG
 
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c
index f8f4d02..9d443d1 100644
--- a/hw/sun4c_intctl.c
+++ b/hw/sun4c_intctl.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "sun4m.h"
+#include "hw/hw.h"
+#include "hw/sun4m.h"
 #include "monitor/monitor.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 //#define DEBUG_IRQ_COUNT
 //#define DEBUG_IRQ
diff --git a/hw/sun4m.c b/hw/sun4m.c
index 9903f44..37bd041 100644
--- a/hw/sun4m.c
+++ b/hw/sun4m.c
@@ -21,24 +21,24 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "sun4m.h"
-#include "nvram.h"
-#include "sparc32_dma.h"
-#include "fdc.h"
+#include "hw/sun4m.h"
+#include "hw/nvram.h"
+#include "hw/sparc32_dma.h"
+#include "hw/fdc.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
-#include "boards.h"
-#include "firmware_abi.h"
-#include "esp.h"
-#include "pc.h"
-#include "isa.h"
-#include "fw_cfg.h"
-#include "escc.h"
-#include "empty_slot.h"
-#include "qdev-addr.h"
-#include "loader.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/empty_slot.h"
+#include "hw/qdev-addr.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/blockdev.h"
 #include "trace.h"
diff --git a/hw/sun4m.h b/hw/sun4m.h
index 0361eee..0d2cfb8 100644
--- a/hw/sun4m.h
+++ b/hw/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 "sparc32_dma.h"
+#include "hw/sparc32_dma.h"
 
 #endif
diff --git a/hw/sun4m_iommu.c b/hw/sun4m_iommu.c
index 8f9635f..33e77b0 100644
--- a/hw/sun4m_iommu.c
+++ b/hw/sun4m_iommu.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "sun4m.h"
-#include "sysbus.h"
+#include "hw/sun4m.h"
+#include "hw/sysbus.h"
 #include "trace.h"
 
 /*
diff --git a/hw/sun4u.c b/hw/sun4u.c
index 9fbda29..51ffa1c 100644
--- a/hw/sun4u.c
+++ b/hw/sun4u.c
@@ -21,22 +21,22 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pci/pci.h"
-#include "apb_pci.h"
-#include "pc.h"
-#include "serial.h"
-#include "nvram.h"
-#include "fdc.h"
+#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 "net/net.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "firmware_abi.h"
-#include "fw_cfg.h"
-#include "sysbus.h"
-#include "ide.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/firmware_abi.h"
+#include "hw/fw_cfg.h"
+#include "hw/sysbus.h"
+#include "hw/ide.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
diff --git a/hw/sysbus.c b/hw/sysbus.c
index 6d9d1df..74bb4b8 100644
--- a/hw/sysbus.c
+++ b/hw/sysbus.c
@@ -17,7 +17,7 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "monitor/monitor.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/sysbus.h b/hw/sysbus.h
index a7fcded..17de506 100644
--- a/hw/sysbus.h
+++ b/hw/sysbus.h
@@ -3,7 +3,7 @@
 
 /* Devices attached directly to the main system bus.  */
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "exec/memory.h"
 
 #define QDEV_MAX_MMIO 32
diff --git a/hw/tc58128.c b/hw/tc58128.c
index 4ce80b1..f76f96d 100644
--- a/hw/tc58128.c
+++ b/hw/tc58128.c
@@ -1,6 +1,6 @@
-#include "hw.h"
-#include "sh.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/sh.h"
+#include "hw/loader.h"
 
 #define CE1  0x0100
 #define CE2  0x0200
diff --git a/hw/tc6393xb.c b/hw/tc6393xb.c
index e815f83..0755463 100644
--- a/hw/tc6393xb.c
+++ b/hw/tc6393xb.c
@@ -10,9 +10,9 @@
  * Contributions after 2012-01-13 are licensed under the terms of the
  * GNU GPL, version 2 or (at your option) any later version.
  */
-#include "hw.h"
-#include "devices.h"
-#include "flash.h"
+#include "hw/hw.h"
+#include "hw/devices.h"
+#include "hw/flash.h"
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
 #include "sysemu/blockdev.h"
@@ -421,15 +421,15 @@ static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t value)
 }
 
 #define BITS 8
-#include "tc6393xb_template.h"
+#include "hw/tc6393xb_template.h"
 #define BITS 15
-#include "tc6393xb_template.h"
+#include "hw/tc6393xb_template.h"
 #define BITS 16
-#include "tc6393xb_template.h"
+#include "hw/tc6393xb_template.h"
 #define BITS 24
-#include "tc6393xb_template.h"
+#include "hw/tc6393xb_template.h"
 #define BITS 32
-#include "tc6393xb_template.h"
+#include "hw/tc6393xb_template.h"
 
 static void tc6393xb_draw_graphic(TC6393xbState *s, int full_update)
 {
diff --git a/hw/tcx.c b/hw/tcx.c
index 0ce2952..896407d 100644
--- a/hw/tcx.c
+++ b/hw/tcx.c
@@ -25,8 +25,8 @@
 #include "qemu-common.h"
 #include "ui/console.h"
 #include "ui/pixel_ops.h"
-#include "sysbus.h"
-#include "qdev-addr.h"
+#include "hw/sysbus.h"
+#include "hw/qdev-addr.h"
 
 #define MAXX 1024
 #define MAXY 768
diff --git a/hw/tmp105.c b/hw/tmp105.c
index 3ad2d2f..47e5437 100644
--- a/hw/tmp105.c
+++ b/hw/tmp105.c
@@ -18,9 +18,9 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
-#include "i2c.h"
-#include "tmp105.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
+#include "hw/tmp105.h"
 #include "qapi/visitor.h"
 
 static void tmp105_interrupt_update(TMP105State *s)
diff --git a/hw/tmp105.h b/hw/tmp105.h
index d218919..9a9632c 100644
--- a/hw/tmp105.h
+++ b/hw/tmp105.h
@@ -14,8 +14,8 @@
 #ifndef QEMU_TMP105_H
 #define QEMU_TMP105_H
 
-#include "i2c.h"
-#include "tmp105_regs.h"
+#include "hw/i2c.h"
+#include "hw/tmp105_regs.h"
 
 #define TYPE_TMP105 "tmp105"
 #define TMP105(obj) OBJECT_CHECK(TMP105State, (obj), TYPE_TMP105)
diff --git a/hw/tosa.c b/hw/tosa.c
index efea109..747888c 100644
--- a/hw/tosa.c
+++ b/hw/tosa.c
@@ -11,18 +11,18 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "arm-misc.h"
-#include "devices.h"
-#include "sharpsl.h"
-#include "pcmcia.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
+#include "hw/sharpsl.h"
+#include "hw/pcmcia.h"
 #include "block/block.h"
-#include "boards.h"
-#include "i2c.h"
-#include "ssi.h"
+#include "hw/boards.h"
+#include "hw/i2c.h"
+#include "hw/ssi.h"
 #include "sysemu/blockdev.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 
 #define TOSA_RAM    0x04000000
diff --git a/hw/tpci200.c b/hw/tpci200.c
index a4823fb..e3408ef 100644
--- a/hw/tpci200.c
+++ b/hw/tpci200.c
@@ -8,8 +8,8 @@
  * later version.
  */
 
-#include "ipack.h"
-#include "pci/pci.h"
+#include "hw/ipack.h"
+#include "hw/pci/pci.h"
 #include "qemu/bitops.h"
 #include <stdio.h>
 
diff --git a/hw/tsc2005.c b/hw/tsc2005.c
index 740ff86..a771cd5 100644
--- a/hw/tsc2005.c
+++ b/hw/tsc2005.c
@@ -18,10 +18,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "devices.h"
+#include "hw/devices.h"
 
 #define TSC_CUT_RESOLUTION(value, p)	((value) >> (16 - (p ? 12 : 10)))
 
diff --git a/hw/tsc210x.c b/hw/tsc210x.c
index 2076c35..b93e502 100644
--- a/hw/tsc210x.c
+++ b/hw/tsc210x.c
@@ -19,12 +19,12 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "audio/audio.h"
 #include "qemu/timer.h"
 #include "ui/console.h"
-#include "omap.h"	/* For I2SCodec and uWireSlave */
-#include "devices.h"
+#include "hw/omap.h"	/* For I2SCodec and uWireSlave */
+#include "hw/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 2c7d033..a5251a3 100644
--- a/hw/tusb6010.c
+++ b/hw/tusb6010.c
@@ -20,11 +20,11 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "usb.h"
-#include "omap.h"
-#include "irq.h"
-#include "devices.h"
-#include "sysbus.h"
+#include "hw/usb.h"
+#include "hw/omap.h"
+#include "hw/irq.h"
+#include "hw/devices.h"
+#include "hw/sysbus.h"
 
 typedef struct TUSBState {
     SysBusDevice busdev;
diff --git a/hw/twl92230.c b/hw/twl92230.c
index 70d9b03..7d020c4 100644
--- a/hw/twl92230.c
+++ b/hw/twl92230.c
@@ -19,9 +19,9 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "i2c.h"
+#include "hw/i2c.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
 
diff --git a/hw/unin_pci.c b/hw/unin_pci.c
index f1c3c20..cb95ad1 100644
--- a/hw/unin_pci.c
+++ b/hw/unin_pci.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "hw/ppc/mac.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 
 /* debug UniNorth */
 //#define DEBUG_UNIN
diff --git a/hw/usb.h b/hw/usb.h
index 382496c..1b10684 100644
--- a/hw/usb.h
+++ b/hw/usb.h
@@ -25,7 +25,7 @@
  * THE SOFTWARE.
  */
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "qemu/queue.h"
 
 /* Constants related to the USB / PCI interaction */
diff --git a/hw/versatile_i2c.c b/hw/versatile_i2c.c
index ad71e9d..d0444ae 100644
--- a/hw/versatile_i2c.c
+++ b/hw/versatile_i2c.c
@@ -21,8 +21,8 @@
  *
  */
 
-#include "sysbus.h"
-#include "bitbang_i2c.h"
+#include "hw/sysbus.h"
+#include "hw/bitbang_i2c.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/versatile_pci.c b/hw/versatile_pci.c
index 9d99159..0b97a40 100644
--- a/hw/versatile_pci.c
+++ b/hw/versatile_pci.c
@@ -7,9 +7,9 @@
  * This code is licensed under the LGPL.
  */
 
-#include "sysbus.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/sysbus.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "exec/address-spaces.h"
 
 typedef struct {
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index e0a28f0..baaa265 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -7,17 +7,17 @@
  * This code is licensed under the GPL.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "devices.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "pci/pci.h"
-#include "i2c.h"
-#include "boards.h"
+#include "hw/pci/pci.h"
+#include "hw/i2c.h"
+#include "hw/boards.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
-#include "flash.h"
+#include "hw/flash.h"
 
 #define VERSATILE_FLASH_ADDR 0x34000000
 #define VERSATILE_FLASH_SIZE (64 * 1024 * 1024)
diff --git a/hw/vexpress.c b/hw/vexpress.c
index 741b044..02922c3 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -21,16 +21,16 @@
  *  GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
-#include "primecell.h"
-#include "devices.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
+#include "hw/primecell.h"
+#include "hw/devices.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "exec/address-spaces.h"
 #include "sysemu/blockdev.h"
-#include "flash.h"
+#include "hw/flash.h"
 
 #define VEXPRESS_BOARD_ID 0x8e0
 #define VEXPRESS_FLASH_SIZE (64 * 1024 * 1024)
diff --git a/hw/vfio_pci.c b/hw/vfio_pci.c
index ad9ae36..288361d 100644
--- a/hw/vfio_pci.c
+++ b/hw/vfio_pci.c
@@ -31,9 +31,9 @@
 #include "exec/address-spaces.h"
 #include "sysemu/kvm.h"
 #include "exec/memory.h"
-#include "pci/msi.h"
-#include "pci/msix.h"
-#include "pci/pci.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/msix.h"
+#include "hw/pci/pci.h"
 #include "qemu-common.h"
 #include "qemu/error-report.h"
 #include "qemu/queue.h"
diff --git a/hw/vga-isa-mm.c b/hw/vga-isa-mm.c
index 311c966..4aa62bf 100644
--- a/hw/vga-isa-mm.c
+++ b/hw/vga-isa-mm.c
@@ -21,10 +21,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "pc.h"
-#include "vga_int.h"
+#include "hw/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 762e45a..ffad522 100644
--- a/hw/vga-isa.c
+++ b/hw/vga-isa.c
@@ -23,13 +23,13 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "pc.h"
-#include "vga_int.h"
+#include "hw/pc.h"
+#include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
-#include "loader.h"
+#include "hw/loader.h"
 
 typedef struct ISAVGAState {
     ISADevice dev;
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index c491af2..18018ff 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -23,13 +23,13 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "pci/pci.h"
-#include "vga_int.h"
+#include "hw/pci/pci.h"
+#include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
-#include "loader.h"
+#include "hw/loader.h"
 
 #define PCI_VGA_IOPORT_OFFSET 0x400
 #define PCI_VGA_IOPORT_SIZE   (0x3e0 - 0x3c0)
diff --git a/hw/vga.c b/hw/vga.c
index 1caf23d..2213bc1 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -21,15 +21,15 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "vga.h"
+#include "hw/hw.h"
+#include "hw/vga.h"
 #include "ui/console.h"
-#include "pc.h"
-#include "pci/pci.h"
-#include "vga_int.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
+#include "hw/vga_int.h"
 #include "ui/pixel_ops.h"
 #include "qemu/timer.h"
-#include "xen.h"
+#include "hw/xen.h"
 #include "trace.h"
 
 //#define DEBUG_VGA
@@ -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 "vga_template.h"
+#include "hw/vga_template.h"
 
 #define DEPTH 15
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 15
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 #define DEPTH 16
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 16
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 #define DEPTH 32
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 #define BGR_FORMAT
 #define DEPTH 32
-#include "vga_template.h"
+#include "hw/vga_template.h"
 
 static unsigned int rgb_to_pixel8_dup(unsigned int r, unsigned int g, unsigned b)
 {
diff --git a/hw/vhost.c b/hw/vhost.c
index 8d41fdb..2d25d7e 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -14,7 +14,7 @@
  */
 
 #include <sys/ioctl.h>
-#include "vhost.h"
+#include "hw/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 d1df0e2..d3218a0 100644
--- a/hw/vhost_net.c
+++ b/hw/vhost_net.c
@@ -16,8 +16,8 @@
 #include "net/net.h"
 #include "net/tap.h"
 
-#include "virtio-net.h"
-#include "vhost_net.h"
+#include "hw/virtio-net.h"
+#include "hw/vhost_net.h"
 #include "qemu/error-report.h"
 
 #include "config.h"
@@ -36,7 +36,7 @@
 
 #include <stdio.h>
 
-#include "vhost.h"
+#include "hw/vhost.h"
 
 struct vhost_net {
     struct vhost_dev dev;
diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c
index 8c4e8e4..41eab16 100644
--- a/hw/virtex_ml507.c
+++ b/hw/virtex_ml507.c
@@ -22,25 +22,25 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "serial.h"
-#include "flash.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/serial.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
-#include "devices.h"
-#include "boards.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
 #include "sysemu/device_tree.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "qemu/log.h"
 #include "exec/address-spaces.h"
 
-#include "ppc.h"
-#include "ppc4xx.h"
-#include "ppc405.h"
+#include "hw/ppc.h"
+#include "hw/ppc4xx.h"
+#include "hw/ppc405.h"
 
 #include "sysemu/blockdev.h"
-#include "xilinx.h"
+#include "hw/xilinx.h"
 
 #define EPAPR_MAGIC    (0x45504150)
 #define FLASH_SIZE     (16 * 1024 * 1024)
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index c0a7902..6bfcddc 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 "virtio.h"
-#include "pc.h"
+#include "hw/virtio.h"
+#include "hw/pc.h"
 #include "cpu.h"
 #include "sysemu/balloon.h"
-#include "virtio-balloon.h"
+#include "hw/virtio-balloon.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
 #include "qapi/visitor.h"
diff --git a/hw/virtio-balloon.h b/hw/virtio-balloon.h
index b1828f4..f37f31b 100644
--- a/hw/virtio-balloon.h
+++ b/hw/virtio-balloon.h
@@ -15,8 +15,8 @@
 #ifndef _QEMU_VIRTIO_BALLOON_H
 #define _QEMU_VIRTIO_BALLOON_H
 
-#include "virtio.h"
-#include "pci/pci.h"
+#include "hw/virtio.h"
+#include "hw/pci/pci.h"
 
 /* from Linux's linux/virtio_balloon.h */
 
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 34913ee..248a966 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -16,11 +16,11 @@
 #include "trace.h"
 #include "hw/block-common.h"
 #include "sysemu/blockdev.h"
-#include "virtio-blk.h"
+#include "hw/virtio-blk.h"
 #ifdef CONFIG_VIRTIO_BLK_DATA_PLANE
-#include "hw/dataplane/virtio-blk.h"
+#include "dataplane/virtio-blk.h"
 #endif
-#include "scsi-defs.h"
+#include "hw/scsi-defs.h"
 #ifdef __linux__
 # include <scsi/sg.h>
 #endif
diff --git a/hw/virtio-blk.h b/hw/virtio-blk.h
index 43ca492..7ef2f35 100644
--- a/hw/virtio-blk.h
+++ b/hw/virtio-blk.h
@@ -14,7 +14,7 @@
 #ifndef _QEMU_VIRTIO_BLK_H
 #define _QEMU_VIRTIO_BLK_H
 
-#include "virtio.h"
+#include "hw/virtio.h"
 #include "hw/block-common.h"
 
 /* from Linux's linux/virtio_blk.h */
diff --git a/hw/virtio-bus.c b/hw/virtio-bus.c
index 6045d8a..6c2aab0 100644
--- a/hw/virtio-bus.c
+++ b/hw/virtio-bus.c
@@ -22,11 +22,11 @@
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/error-report.h"
-#include "qdev.h"
-#include "virtio-bus.h"
-#include "virtio.h"
+#include "hw/qdev.h"
+#include "hw/virtio-bus.h"
+#include "hw/virtio.h"
 
 /* #define DEBUG_VIRTIO_BUS */
 
diff --git a/hw/virtio-bus.h b/hw/virtio-bus.h
index 7584a0e..ae0f707 100644
--- a/hw/virtio-bus.h
+++ b/hw/virtio-bus.h
@@ -25,9 +25,9 @@
 #ifndef VIRTIO_BUS_H
 #define VIRTIO_BUS_H
 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "sysemu/sysemu.h"
-#include "virtio.h"
+#include "hw/virtio.h"
 
 #define TYPE_VIRTIO_BUS "virtio-bus"
 #define VIRTIO_BUS_GET_CLASS(obj) \
diff --git a/hw/virtio-console.c b/hw/virtio-console.c
index 46072a0..b10f5f0 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 "virtio-serial.h"
+#include "hw/virtio-serial.h"
 
 typedef struct VirtConsole {
     VirtIOSerialPort port;
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 573c669..0ad96ee 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -12,14 +12,14 @@
  */
 
 #include "qemu/iov.h"
-#include "virtio.h"
+#include "hw/virtio.h"
 #include "net/net.h"
 #include "net/checksum.h"
 #include "net/tap.h"
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
-#include "virtio-net.h"
-#include "vhost_net.h"
+#include "hw/virtio-net.h"
+#include "hw/vhost_net.h"
 
 #define VIRTIO_NET_VM_VERSION    11
 
diff --git a/hw/virtio-net.h b/hw/virtio-net.h
index e654c13..0c83ca5 100644
--- a/hw/virtio-net.h
+++ b/hw/virtio-net.h
@@ -14,8 +14,8 @@
 #ifndef _QEMU_VIRTIO_NET_H
 #define _QEMU_VIRTIO_NET_H
 
-#include "virtio.h"
-#include "pci/pci.h"
+#include "hw/virtio.h"
+#include "hw/pci/pci.h"
 
 #define ETH_ALEN    6
 
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index df1dd77..ba4d7d5 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -17,21 +17,21 @@
 
 #include <inttypes.h>
 
-#include "virtio.h"
-#include "virtio-blk.h"
-#include "virtio-net.h"
-#include "virtio-serial.h"
-#include "virtio-scsi.h"
-#include "pci/pci.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/pci/pci.h"
 #include "qemu/error-report.h"
-#include "pci/msi.h"
-#include "pci/msix.h"
-#include "loader.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/msix.h"
+#include "hw/loader.h"
 #include "sysemu/kvm.h"
 #include "sysemu/blockdev.h"
-#include "virtio-pci.h"
+#include "hw/virtio-pci.h"
 #include "qemu/range.h"
-#include "virtio-bus.h"
+#include "hw/virtio-bus.h"
 
 /* from Linux's linux/virtio_pci.h */
 
diff --git a/hw/virtio-pci.h b/hw/virtio-pci.h
index d01db97..2ae96f8 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 "virtio-blk.h"
-#include "virtio-net.h"
-#include "virtio-rng.h"
-#include "virtio-serial.h"
-#include "virtio-scsi.h"
-#include "virtio-bus.h"
-#include "9pfs/virtio-9p-device.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"
 
 typedef struct VirtIOPCIProxy VirtIOPCIProxy;
 
diff --git a/hw/virtio-rng.c b/hw/virtio-rng.c
index 2cdf4ec..54c1421 100644
--- a/hw/virtio-rng.c
+++ b/hw/virtio-rng.c
@@ -10,10 +10,10 @@
  */
 
 #include "qemu/iov.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "qapi/qmp/qerror.h"
-#include "virtio.h"
-#include "virtio-rng.h"
+#include "hw/virtio.h"
+#include "hw/virtio-rng.h"
 #include "qemu/rng.h"
 
 typedef struct VirtIORNG {
diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
index 27070d1..72cc519 100644
--- a/hw/virtio-scsi.c
+++ b/hw/virtio-scsi.c
@@ -13,7 +13,7 @@
  *
  */
 
-#include "virtio-scsi.h"
+#include "hw/virtio-scsi.h"
 #include "qemu/error-report.h"
 #include <hw/scsi.h>
 #include <hw/scsi-defs.h>
diff --git a/hw/virtio-scsi.h b/hw/virtio-scsi.h
index 8d9d15f..81b3279 100644
--- a/hw/virtio-scsi.h
+++ b/hw/virtio-scsi.h
@@ -14,8 +14,8 @@
 #ifndef _QEMU_VIRTIO_SCSI_H
 #define _QEMU_VIRTIO_SCSI_H
 
-#include "virtio.h"
-#include "pci/pci.h"
+#include "hw/virtio.h"
+#include "hw/pci/pci.h"
 
 /* The ID for virtio_scsi */
 #define VIRTIO_ID_SCSI  8
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index aa7d0d7..ada1d01 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -21,9 +21,9 @@
 #include "qemu/iov.h"
 #include "monitor/monitor.h"
 #include "qemu/queue.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "trace.h"
-#include "virtio-serial.h"
+#include "hw/virtio-serial.h"
 
 /* The virtio-serial bus on top of which the ports will ride as devices */
 struct VirtIOSerialBus {
diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h
index 16e3982..d2d9fb7 100644
--- a/hw/virtio-serial.h
+++ b/hw/virtio-serial.h
@@ -15,8 +15,8 @@
 #ifndef _QEMU_VIRTIO_SERIAL_H
 #define _QEMU_VIRTIO_SERIAL_H
 
-#include "qdev.h"
-#include "virtio.h"
+#include "hw/qdev.h"
+#include "hw/virtio.h"
 
 /* == Interface shared between the guest kernel and qemu == */
 
diff --git a/hw/virtio.c b/hw/virtio.c
index e259348..26fbc79 100644
--- a/hw/virtio.c
+++ b/hw/virtio.c
@@ -15,9 +15,9 @@
 
 #include "trace.h"
 #include "qemu/error-report.h"
-#include "virtio.h"
+#include "hw/virtio.h"
 #include "qemu/atomic.h"
-#include "virtio-bus.h"
+#include "hw/virtio-bus.h"
 
 /* The alignment to use between consumer and producer parts of vring.
  * x86 pagesize again. */
diff --git a/hw/virtio.h b/hw/virtio.h
index 8cc71e9..ca43fd7 100644
--- a/hw/virtio.h
+++ b/hw/virtio.h
@@ -14,13 +14,13 @@
 #ifndef _QEMU_VIRTIO_H
 #define _QEMU_VIRTIO_H
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "sysemu/sysemu.h"
 #include "qemu/event_notifier.h"
 #ifdef CONFIG_VIRTFS
-#include "9pfs/virtio-9p-device.h"
+#include "hw/9pfs/virtio-9p-device.h"
 #endif
 
 /* from Linux's linux/virtio_config.h */
diff --git a/hw/vmmouse.c b/hw/vmmouse.c
index b9afc2c..a9d227e 100644
--- a/hw/vmmouse.c
+++ b/hw/vmmouse.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
-#include "ps2.h"
-#include "pc.h"
-#include "qdev.h"
+#include "hw/ps2.h"
+#include "hw/pc.h"
+#include "hw/qdev.h"
 
 /* debug only vmmouse */
 //#define DEBUG_VMMOUSE
diff --git a/hw/vmport.c b/hw/vmport.c
index faead3a..cc1466a 100644
--- a/hw/vmport.c
+++ b/hw/vmport.c
@@ -21,11 +21,11 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "isa.h"
-#include "pc.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
+#include "hw/pc.h"
 #include "sysemu/kvm.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 
 //#define VMPORT_DEBUG
 
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 8fc201b..db2f187 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -21,17 +21,17 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "loader.h"
+#include "hw/hw.h"
+#include "hw/loader.h"
 #include "ui/console.h"
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 #undef VERBOSE
 #define HW_RECT_ACCEL
 #define HW_FILL_ACCEL
 #define HW_MOUSE_ACCEL
 
-#include "vga_int.h"
+#include "hw/vga_int.h"
 
 /* See http://vmware-svga.sf.net/ for some documentation on VMWare SVGA */
 
diff --git a/hw/vt82c686.c b/hw/vt82c686.c
index c2b1bfc..4529508 100644
--- a/hw/vt82c686.c
+++ b/hw/vt82c686.c
@@ -10,18 +10,18 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "vt82c686.h"
-#include "i2c.h"
-#include "smbus.h"
-#include "pci/pci.h"
-#include "isa.h"
-#include "sysbus.h"
-#include "mips.h"
-#include "apm.h"
-#include "acpi.h"
-#include "pm_smbus.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/vt82c686.h"
+#include "hw/i2c.h"
+#include "hw/smbus.h"
+#include "hw/pci/pci.h"
+#include "hw/isa.h"
+#include "hw/sysbus.h"
+#include "hw/mips.h"
+#include "hw/apm.h"
+#include "hw/acpi.h"
+#include "hw/pm_smbus.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c
index 37ce362..f13e507 100644
--- a/hw/wdt_i6300esb.c
+++ b/hw/wdt_i6300esb.c
@@ -23,9 +23,9 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "watchdog.h"
-#include "hw.h"
-#include "pci/pci.h"
+#include "hw/watchdog.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
 
 /*#define I6300ESB_DEBUG 1*/
 
diff --git a/hw/wdt_ib700.c b/hw/wdt_ib700.c
index 599a86f..6c52808 100644
--- a/hw/wdt_ib700.c
+++ b/hw/wdt_ib700.c
@@ -21,10 +21,10 @@
 
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "watchdog.h"
-#include "hw.h"
-#include "isa.h"
-#include "pc.h"
+#include "hw/watchdog.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
+#include "hw/pc.h"
 
 /*#define IB700_DEBUG 1*/
 
diff --git a/hw/wm8750.c b/hw/wm8750.c
index d3ea5ba..0904cf4 100644
--- a/hw/wm8750.c
+++ b/hw/wm8750.c
@@ -7,8 +7,8 @@
  * This file is licensed under GNU GPL.
  */
 
-#include "hw.h"
-#include "i2c.h"
+#include "hw/hw.h"
+#include "hw/i2c.h"
 #include "audio/audio.h"
 
 #define IN_PORT_N	3
diff --git a/hw/xen-host-pci-device.c b/hw/xen-host-pci-device.c
index 743b37b..ff2e876 100644
--- a/hw/xen-host-pci-device.c
+++ b/hw/xen-host-pci-device.c
@@ -7,7 +7,7 @@
  */
 
 #include "qemu-common.h"
-#include "xen-host-pci-device.h"
+#include "hw/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-host-pci-device.h
index 942b24d..c2486f0 100644
--- a/hw/xen-host-pci-device.h
+++ b/hw/xen-host-pci-device.h
@@ -1,7 +1,7 @@
 #ifndef XEN_HOST_PCI_DEVICE_H
 #define XEN_HOST_PCI_DEVICE_H
 
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 enum {
     XEN_HOST_PCI_REGION_TYPE_IO = 1 << 1,
diff --git a/hw/xen_apic.c b/hw/xen_apic.c
index 1d1d15c..8f387b6 100644
--- a/hw/xen_apic.c
+++ b/hw/xen_apic.c
@@ -11,7 +11,7 @@
  */
 #include "hw/apic_internal.h"
 #include "hw/pci/msi.h"
-#include "xen.h"
+#include "hw/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 3fa3009..24381b5 100644
--- a/hw/xen_backend.c
+++ b/hw/xen_backend.c
@@ -34,10 +34,10 @@
 #include <sys/mman.h>
 #include <sys/signal.h>
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "char/char.h"
 #include "qemu/log.h"
-#include "xen_backend.h"
+#include "hw/xen_backend.h"
 
 #include <xen/grant_table.h>
 
diff --git a/hw/xen_backend.h b/hw/xen_backend.h
index f37afb1..6d5c699 100644
--- a/hw/xen_backend.h
+++ b/hw/xen_backend.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_HW_XEN_BACKEND_H
 #define QEMU_HW_XEN_BACKEND_H 1
 
-#include "xen_common.h"
+#include "hw/xen_common.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
 
diff --git a/hw/xen_common.h b/hw/xen_common.h
index 95bc9a7..c37bde3 100644
--- a/hw/xen_common.h
+++ b/hw/xen_common.h
@@ -14,8 +14,8 @@
 #endif
 #include <xen/io/xenbus.h>
 
-#include "hw.h"
-#include "xen.h"
+#include "hw/hw.h"
+#include "hw/xen.h"
 #include "qemu/queue.h"
 
 /*
diff --git a/hw/xen_console.c b/hw/xen_console.c
index 44141f8..a8db6f8 100644
--- a/hw/xen_console.c
+++ b/hw/xen_console.c
@@ -29,9 +29,9 @@
 #include <stdarg.h>
 #include <sys/mman.h>
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "char/char.h"
-#include "xen_backend.h"
+#include "hw/xen_backend.h"
 
 #include <xen/io/console.h>
 
diff --git a/hw/xen_devconfig.c b/hw/xen_devconfig.c
index e2ba741..cdcaf62 100644
--- a/hw/xen_devconfig.c
+++ b/hw/xen_devconfig.c
@@ -1,4 +1,4 @@
-#include "xen_backend.h"
+#include "hw/xen_backend.h"
 #include "sysemu/blockdev.h"
 
 /* ------------------------------------------------------------- */
diff --git a/hw/xen_disk.c b/hw/xen_disk.c
index 7fea871..cc09a2f 100644
--- a/hw/xen_disk.c
+++ b/hw/xen_disk.c
@@ -35,9 +35,9 @@
 #include <sys/mman.h>
 #include <sys/uio.h>
 
-#include "hw.h"
-#include "xen_backend.h"
-#include "xen_blkif.h"
+#include "hw/hw.h"
+#include "hw/xen_backend.h"
+#include "hw/xen_blkif.h"
 #include "sysemu/blockdev.h"
 
 /* ------------------------------------------------------------- */
diff --git a/hw/xen_domainbuild.c b/hw/xen_domainbuild.c
index a4272f0..d477061 100644
--- a/hw/xen_domainbuild.c
+++ b/hw/xen_domainbuild.c
@@ -1,6 +1,6 @@
 #include <signal.h>
-#include "xen_backend.h"
-#include "xen_domainbuild.h"
+#include "hw/xen_backend.h"
+#include "hw/xen_domainbuild.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
 
diff --git a/hw/xen_domainbuild.h b/hw/xen_domainbuild.h
index dea0121..681cbe5 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 "xen_common.h"
+#include "hw/xen_common.h"
 
 int xenstore_domain_init1(const char *kernel, const char *ramdisk,
                           const char *cmdline);
diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c
index 66e8981..a8177b6 100644
--- a/hw/xen_machine_pv.c
+++ b/hw/xen_machine_pv.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 
-#include "hw.h"
-#include "pc.h"
-#include "boards.h"
-#include "xen_backend.h"
-#include "xen_domainbuild.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/boards.h"
+#include "hw/xen_backend.h"
+#include "hw/xen_domainbuild.h"
 #include "sysemu/blockdev.h"
 
 static void xen_init_pv(QEMUMachineInitArgs *args)
diff --git a/hw/xen_nic.c b/hw/xen_nic.c
index 34961c2..b6d3679 100644
--- a/hw/xen_nic.c
+++ b/hw/xen_nic.c
@@ -35,11 +35,11 @@
 #include <sys/mman.h>
 #include <sys/wait.h>
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
 #include "net/checksum.h"
 #include "net/util.h"
-#include "xen_backend.h"
+#include "hw/xen_backend.h"
 
 #include <xen/io/netif.h>
 
diff --git a/hw/xen_platform.c b/hw/xen_platform.c
index 8866468..5e11c95 100644
--- a/hw/xen_platform.c
+++ b/hw/xen_platform.c
@@ -25,12 +25,12 @@
 
 #include <assert.h>
 
-#include "hw.h"
-#include "pc.h"
-#include "pci/pci.h"
-#include "irq.h"
-#include "xen_common.h"
-#include "xen_backend.h"
+#include "hw/hw.h"
+#include "hw/pc.h"
+#include "hw/pci/pci.h"
+#include "hw/irq.h"
+#include "hw/xen_common.h"
+#include "hw/xen_backend.h"
 #include "trace.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/xen_pt.c b/hw/xen_pt.c
index 9db5f6e..ce695d0 100644
--- a/hw/xen_pt.c
+++ b/hw/xen_pt.c
@@ -54,10 +54,10 @@
 
 #include <sys/ioctl.h>
 
-#include "pci/pci.h"
-#include "xen.h"
-#include "xen_backend.h"
-#include "xen_pt.h"
+#include "hw/pci/pci.h"
+#include "hw/xen.h"
+#include "hw/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 e349730..1cd9f44 100644
--- a/hw/xen_pt.h
+++ b/hw/xen_pt.h
@@ -2,9 +2,9 @@
 #define XEN_PT_H
 
 #include "qemu-common.h"
-#include "xen_common.h"
-#include "pci/pci.h"
-#include "xen-host-pci-device.h"
+#include "hw/xen_common.h"
+#include "hw/pci/pci.h"
+#include "hw/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_pt_config_init.c b/hw/xen_pt_config_init.c
index 54a179a..5583821 100644
--- a/hw/xen_pt_config_init.c
+++ b/hw/xen_pt_config_init.c
@@ -13,8 +13,8 @@
  */
 
 #include "qemu/timer.h"
-#include "xen_backend.h"
-#include "xen_pt.h"
+#include "hw/xen_backend.h"
+#include "hw/xen_pt.h"
 
 #define XEN_PT_MERGE_VALUE(value, data, val_mask) \
     (((value) & (val_mask)) | ((data) & ~(val_mask)))
diff --git a/hw/xen_pt_msi.c b/hw/xen_pt_msi.c
index db757cd..a54ee2b 100644
--- a/hw/xen_pt_msi.c
+++ b/hw/xen_pt_msi.c
@@ -11,9 +11,9 @@
 
 #include <sys/mman.h>
 
-#include "xen_backend.h"
-#include "xen_pt.h"
-#include "apic-msidef.h"
+#include "hw/xen_backend.h"
+#include "hw/xen_pt.h"
+#include "hw/apic-msidef.h"
 
 
 #define XEN_PT_AUTO_ASSIGN -1
diff --git a/hw/xenfb.c b/hw/xenfb.c
index 7f1f6b4..3462ded 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -35,10 +35,10 @@
 #include <string.h>
 #include <time.h>
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "ui/console.h"
 #include "char/char.h"
-#include "xen_backend.h"
+#include "hw/xen_backend.h"
 
 #include <xen/event_channel.h>
 #include <xen/io/fbif.h>
diff --git a/hw/xgmac.c b/hw/xgmac.c
index 5072298..5275f48 100644
--- a/hw/xgmac.c
+++ b/hw/xgmac.c
@@ -24,7 +24,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 #include "qemu/log.h"
 #include "net/net.h"
diff --git a/hw/xics.c b/hw/xics.c
index 9ef0d61..c3ef12f 100644
--- a/hw/xics.c
+++ b/hw/xics.c
@@ -25,7 +25,7 @@
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "trace.h"
 #include "hw/spapr.h"
 #include "hw/xics.h"
diff --git a/hw/xilinx.h b/hw/xilinx.h
index a78281f..6c1ee21 100644
--- a/hw/xilinx.h
+++ b/hw/xilinx.h
@@ -4,7 +4,7 @@
 
 #include "qemu-common.h"
 #include "qapi/qmp/qerror.h"
-#include "stream.h"
+#include "hw/stream.h"
 #include "net/net.h"
 
 static inline DeviceState *
diff --git a/hw/xilinx_axidma.c b/hw/xilinx_axidma.c
index cc51584..8db1a74 100644
--- a/hw/xilinx_axidma.c
+++ b/hw/xilinx_axidma.c
@@ -22,13 +22,13 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/timer.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "qemu/log.h"
-#include "qdev-addr.h"
+#include "hw/qdev-addr.h"
 
-#include "stream.h"
+#include "hw/stream.h"
 
 #define D(x)
 
diff --git a/hw/xilinx_axienet.c b/hw/xilinx_axienet.c
index 66b9ec1..5785290 100644
--- a/hw/xilinx_axienet.c
+++ b/hw/xilinx_axienet.c
@@ -22,13 +22,13 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "qemu/log.h"
 #include "net/net.h"
 #include "net/checksum.h"
 #include "qapi/qmp/qerror.h"
 
-#include "stream.h"
+#include "hw/stream.h"
 
 #define DPHY(x)
 
diff --git a/hw/xilinx_ethlite.c b/hw/xilinx_ethlite.c
index 21c6f8c..b2e3523 100644
--- a/hw/xilinx_ethlite.c
+++ b/hw/xilinx_ethlite.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
 #include "net/net.h"
 
 #define D(x)
diff --git a/hw/xilinx_intc.c b/hw/xilinx_intc.c
index 0c34149..b106e72 100644
--- a/hw/xilinx_intc.c
+++ b/hw/xilinx_intc.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
 
 #define D(x)
 
diff --git a/hw/xilinx_spi.c b/hw/xilinx_spi.c
index e73c9bd..f6bd3ba 100644
--- a/hw/xilinx_spi.c
+++ b/hw/xilinx_spi.c
@@ -24,12 +24,12 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/fifo8.h"
 
-#include "ssi.h"
+#include "hw/ssi.h"
 
 #ifdef XILINX_SPI_ERR_DEBUG
 #define DB_PRINT(...) do { \
diff --git a/hw/xilinx_spips.c b/hw/xilinx_spips.c
index 915eb96..6c21b96 100644
--- a/hw/xilinx_spips.c
+++ b/hw/xilinx_spips.c
@@ -22,12 +22,12 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
-#include "ptimer.h"
+#include "hw/ptimer.h"
 #include "qemu/log.h"
 #include "qemu/fifo8.h"
-#include "ssi.h"
+#include "hw/ssi.h"
 #include "qemu/bitops.h"
 
 #ifdef XILINX_SPIPS_ERR_DEBUG
diff --git a/hw/xilinx_timer.c b/hw/xilinx_timer.c
index aa162ef..0c39cff 100644
--- a/hw/xilinx_timer.c
+++ b/hw/xilinx_timer.c
@@ -22,8 +22,8 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "ptimer.h"
+#include "hw/sysbus.h"
+#include "hw/ptimer.h"
 #include "qemu/log.h"
 
 #define D(x)
diff --git a/hw/xilinx_uartlite.c b/hw/xilinx_uartlite.c
index 9963982..079f4d4 100644
--- a/hw/xilinx_uartlite.c
+++ b/hw/xilinx_uartlite.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "char/char.h"
 
 #define DUART(x)
diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index 2f67d90..f78c47e 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -15,16 +15,16 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sysbus.h"
-#include "arm-misc.h"
+#include "hw/sysbus.h"
+#include "hw/arm-misc.h"
 #include "net/net.h"
 #include "exec/address-spaces.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "flash.h"
+#include "hw/boards.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
-#include "loader.h"
-#include "ssi.h"
+#include "hw/loader.h"
+#include "hw/ssi.h"
 
 #define NUM_SPI_FLASHES 4
 #define NUM_QSPI_FLASHES 2
diff --git a/hw/xio3130_downstream.c b/hw/xio3130_downstream.c
index 7f00bc8..4bccd0d 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/xio3130_downstream.c
@@ -19,10 +19,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "pci/pci_ids.h"
-#include "pci/msi.h"
-#include "pci/pcie.h"
-#include "xio3130_downstream.h"
+#include "hw/pci/pci_ids.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/pcie.h"
+#include "hw/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/xio3130_downstream.h
index 559dff6..8426d9f 100644
--- a/hw/xio3130_downstream.h
+++ b/hw/xio3130_downstream.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_XIO3130_DOWNSTREAM_H
 #define QEMU_XIO3130_DOWNSTREAM_H
 
-#include "pci/pcie_port.h"
+#include "hw/pci/pcie_port.h"
 
 PCIESlot *xio3130_downstream_init(PCIBus *bus, int devfn, bool multifunction,
                                   const char *bus_name, pci_map_irq_fn map_irq,
diff --git a/hw/xio3130_upstream.c b/hw/xio3130_upstream.c
index 70b15d3..82556aa 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/xio3130_upstream.c
@@ -19,10 +19,10 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "pci/pci_ids.h"
-#include "pci/msi.h"
-#include "pci/pcie.h"
-#include "xio3130_upstream.h"
+#include "hw/pci/pci_ids.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/pcie.h"
+#include "hw/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/xio3130_upstream.h
index fa09656..08c1d5f 100644
--- a/hw/xio3130_upstream.h
+++ b/hw/xio3130_upstream.h
@@ -1,7 +1,7 @@
 #ifndef QEMU_XIO3130_UPSTREAM_H
 #define QEMU_XIO3130_UPSTREAM_H
 
-#include "pci/pcie_port.h"
+#include "hw/pci/pcie_port.h"
 
 PCIEPort *xio3130_upstream_init(PCIBus *bus, int devfn, bool multifunction,
                                 const char *bus_name, pci_map_irq_fn map_irq,
diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c
index a810b9e..f2a63d8 100644
--- a/hw/xtensa_lx60.c
+++ b/hw/xtensa_lx60.c
@@ -26,18 +26,18 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
-#include "serial.h"
+#include "hw/serial.h"
 #include "net/net.h"
-#include "sysbus.h"
-#include "flash.h"
+#include "hw/sysbus.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
 #include "char/char.h"
-#include "xtensa_bootparam.h"
+#include "hw/xtensa_bootparam.h"
 
 typedef struct LxBoardDesc {
     size_t flash_size;
diff --git a/hw/xtensa_pic.c b/hw/xtensa_pic.c
index 97d36be..f485a14 100644
--- a/hw/xtensa_pic.c
+++ b/hw/xtensa_pic.c
@@ -25,7 +25,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/log.h"
 #include "qemu/timer.h"
 
diff --git a/hw/xtensa_sim.c b/hw/xtensa_sim.c
index 864e57c..5241f8d 100644
--- a/hw/xtensa_sim.c
+++ b/hw/xtensa_sim.c
@@ -26,8 +26,8 @@
  */
 
 #include "sysemu/sysemu.h"
-#include "boards.h"
-#include "loader.h"
+#include "hw/boards.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/memory.h"
 #include "exec/address-spaces.h"
diff --git a/hw/z2.c b/hw/z2.c
index 731550f..cbb6d80 100644
--- a/hw/z2.c
+++ b/hw/z2.c
@@ -11,15 +11,15 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 
-#include "hw.h"
-#include "pxa.h"
-#include "arm-misc.h"
-#include "devices.h"
-#include "i2c.h"
-#include "ssi.h"
-#include "boards.h"
+#include "hw/hw.h"
+#include "hw/pxa.h"
+#include "hw/arm-misc.h"
+#include "hw/devices.h"
+#include "hw/i2c.h"
+#include "hw/ssi.h"
+#include "hw/boards.h"
 #include "sysemu/sysemu.h"
-#include "flash.h"
+#include "hw/flash.h"
 #include "sysemu/blockdev.h"
 #include "ui/console.h"
 #include "audio/audio.h"
diff --git a/hw/zaurus.c b/hw/zaurus.c
index 2defe3b..7d3258c 100644
--- a/hw/zaurus.c
+++ b/hw/zaurus.c
@@ -15,9 +15,9 @@
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
-#include "sharpsl.h"
-#include "sysbus.h"
+#include "hw/hw.h"
+#include "hw/sharpsl.h"
+#include "hw/sysbus.h"
 
 #undef REG_FMT
 #define REG_FMT			"0x%02lx"
diff --git a/hw/zynq_slcr.c b/hw/zynq_slcr.c
index 27b00f0..8418327 100644
--- a/hw/zynq_slcr.c
+++ b/hw/zynq_slcr.c
@@ -14,9 +14,9 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "qemu/timer.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 
 #ifdef ZYNQ_ARM_SLCR_ERR_DEBUG
