diff --git a/bt-host.c b/bt-host.c
index 4f5f9f9..2092754 100644
--- a/bt-host.c
+++ b/bt-host.c
@@ -18,7 +18,7 @@
  */
 
 #include "qemu-common.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "qemu/main-loop.h"
 
 #ifndef _WIN32
diff --git a/bt-vhci.c b/bt-vhci.c
index f5d856a..a6a7ab0 100644
--- a/bt-vhci.c
+++ b/bt-vhci.c
@@ -18,7 +18,7 @@
  */
 
 #include "qemu-common.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "hw/bt.h"
 #include "qemu/main-loop.h"
 
diff --git a/gdbstub.c b/gdbstub.c
index 2fca1a7..a8dd437 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -30,7 +30,7 @@
 #include "qemu.h"
 #else
 #include "monitor/monitor.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "exec/gdbstub.h"
 #endif
diff --git a/hmp.c b/hmp.c
index cc25a41..cd058ad 100644
--- a/hmp.c
+++ b/hmp.c
@@ -15,7 +15,7 @@
 
 #include "hmp.h"
 #include "net/net.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/option.h"
 #include "qemu/timer.h"
 #include "qmp-commands.h"
diff --git a/hw/baum.c b/hw/baum.c
index 97d13ea..09dcb9c 100644
--- a/hw/baum.c
+++ b/hw/baum.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/timer.h"
 #include "usb.h"
 #include "baum.h"
diff --git a/hw/bt-hci-csr.c b/hw/bt-hci-csr.c
index e1dcb6d..2070bb9 100644
--- a/hw/bt-hci-csr.c
+++ b/hw/bt-hci-csr.c
@@ -19,10 +19,10 @@
  */
 
 #include "qemu-common.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/timer.h"
 #include "irq.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "bt.h"
 
 struct csrhci_s {
diff --git a/hw/bt-hci.c b/hw/bt-hci.c
index da096d8..69d2c73 100644
--- a/hw/bt-hci.c
+++ b/hw/bt-hci.c
@@ -21,7 +21,7 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "usb.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "bt.h"
 
 struct bt_hci_s {
diff --git a/hw/bt.c b/hw/bt.c
index 3fea098..4f2372d 100644
--- a/hw/bt.c
+++ b/hw/bt.c
@@ -18,7 +18,7 @@
  */
 
 #include "qemu-common.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "bt.h"
 
 /* Slave implementations can ignore this */
diff --git a/hw/cadence_uart.c b/hw/cadence_uart.c
index 764a185..d7d305b 100644
--- a/hw/cadence_uart.c
+++ b/hw/cadence_uart.c
@@ -17,7 +17,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/timer.h"
 
 #ifdef CADENCE_UART_ERR_DEBUG
diff --git a/hw/ccid-card-emulated.c b/hw/ccid-card-emulated.c
index e508380..6fd4469 100644
--- a/hw/ccid-card-emulated.c
+++ b/hw/ccid-card-emulated.c
@@ -32,7 +32,7 @@
 #include <vcard_emul.h>
 
 #include "qemu/thread.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "monitor/monitor.h"
 #include "hw/ccid.h"
 
diff --git a/hw/ccid-card-passthru.c b/hw/ccid-card-passthru.c
index 48e4228..4be0547 100644
--- a/hw/ccid-card-passthru.c
+++ b/hw/ccid-card-passthru.c
@@ -8,7 +8,7 @@
  * See the COPYING file in the top-level directory.
  */
 
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/sockets.h"
 #include "monitor/monitor.h"
 #include "hw/ccid.h"
diff --git a/hw/debugcon.c b/hw/debugcon.c
index 14ab326..14f83f1 100644
--- a/hw/debugcon.c
+++ b/hw/debugcon.c
@@ -25,7 +25,7 @@
  */
 
 #include "hw.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "isa.h"
 #include "pc.h"
 
diff --git a/hw/escc.c b/hw/escc.c
index ce5a082..073b4f0 100644
--- a/hw/escc.c
+++ b/hw/escc.c
@@ -25,7 +25,7 @@
 #include "hw.h"
 #include "sysbus.h"
 #include "escc.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "ui/console.h"
 #include "trace.h"
 
diff --git a/hw/etraxfs_ser.c b/hw/etraxfs_ser.c
index 50a4a34..46f392e 100644
--- a/hw/etraxfs_ser.c
+++ b/hw/etraxfs_ser.c
@@ -23,7 +23,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/log.h"
 
 #define D(x)
diff --git a/hw/exynos4210_uart.c b/hw/exynos4210_uart.c
index c319933..d540a0a 100644
--- a/hw/exynos4210_uart.c
+++ b/hw/exynos4210_uart.c
@@ -21,7 +21,7 @@
 
 #include "sysbus.h"
 #include "sysemu/sysemu.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 #include "exynos4210.h"
 
diff --git a/hw/grlib_apbuart.c b/hw/grlib_apbuart.c
index 73fc989..e00bfb8 100644
--- a/hw/grlib_apbuart.c
+++ b/hw/grlib_apbuart.c
@@ -23,7 +23,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 #include "trace.h"
 
diff --git a/hw/imx_serial.c b/hw/imx_serial.c
index 09ec6fe..5a81009 100644
--- a/hw/imx_serial.c
+++ b/hw/imx_serial.c
@@ -20,7 +20,7 @@
 #include "hw.h"
 #include "sysbus.h"
 #include "sysemu/sysemu.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "imx.h"
 
 //#define DEBUG_SERIAL 1
diff --git a/hw/ivshmem.c b/hw/ivshmem.c
index 7690a4f..935f890 100644
--- a/hw/ivshmem.c
+++ b/hw/ivshmem.c
@@ -24,7 +24,7 @@
 #include "migration/migration.h"
 #include "qobject/qerror.h"
 #include "qemu/event_notifier.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 #include <sys/mman.h>
 #include <sys/types.h>
diff --git a/hw/leon3.c b/hw/leon3.c
index 61c991c..f9f9a33 100644
--- a/hw/leon3.c
+++ b/hw/leon3.c
@@ -24,7 +24,7 @@
 #include "hw.h"
 #include "qemu/timer.h"
 #include "ptimer.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "boards.h"
 #include "loader.h"
diff --git a/hw/lm32_juart.c b/hw/lm32_juart.c
index f07ed39..7c2d202 100644
--- a/hw/lm32_juart.c
+++ b/hw/lm32_juart.c
@@ -20,7 +20,7 @@
 #include "hw.h"
 #include "sysbus.h"
 #include "trace.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 #include "lm32_juart.h"
 
diff --git a/hw/lm32_uart.c b/hw/lm32_uart.c
index f40ffe3..cc6aee3 100644
--- a/hw/lm32_uart.c
+++ b/hw/lm32_uart.c
@@ -25,7 +25,7 @@
 #include "hw.h"
 #include "sysbus.h"
 #include "trace.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/error.h"
 
 enum {
diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c
index afdb3be..c623d2a 100644
--- a/hw/mcf_uart.c
+++ b/hw/mcf_uart.c
@@ -7,7 +7,7 @@
  */
 #include "hw.h"
 #include "mcf.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "exec/exec-memory.h"
 
 typedef struct {
diff --git a/hw/milkymist-uart.c b/hw/milkymist-uart.c
index bbf37ec..1879c45 100644
--- a/hw/milkymist-uart.c
+++ b/hw/milkymist-uart.c
@@ -24,7 +24,7 @@
 #include "hw.h"
 #include "sysbus.h"
 #include "trace.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/error.h"
 
 enum {
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index e0c9e64..72ef1d7 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -30,7 +30,7 @@
 #include "mips.h"
 #include "mips_cpudevs.h"
 #include "pci.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "audio/audio.h"
 #include "qemu/log.h"
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 1c52a0a..594ca2e 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -34,7 +34,7 @@
 #include "mips.h"
 #include "mips_cpudevs.h"
 #include "pci.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
 #include "boards.h"
diff --git a/hw/msmouse.c b/hw/msmouse.c
index decb1a3..ef47aed 100644
--- a/hw/msmouse.c
+++ b/hw/msmouse.c
@@ -23,7 +23,7 @@
  */
 #include <stdlib.h>
 #include "qemu-common.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "ui/console.h"
 #include "msmouse.h"
 
diff --git a/hw/omap2.c b/hw/omap2.c
index 21e722b..6958d15 100644
--- a/hw/omap2.c
+++ b/hw/omap2.c
@@ -24,7 +24,7 @@
 #include "omap.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "flash.h"
 #include "soc_dma.h"
 #include "sysbus.h"
diff --git a/hw/omap_uart.c b/hw/omap_uart.c
index 1a47836..0def6df 100644
--- a/hw/omap_uart.c
+++ b/hw/omap_uart.c
@@ -17,7 +17,7 @@
  * 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 "qemu-char.h"
+#include "char/char.h"
 #include "hw.h"
 #include "omap.h"
 #include "serial.h"
diff --git a/hw/parallel.c b/hw/parallel.c
index 7b8a723..9a13f2e 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include "hw.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "isa.h"
 #include "pc.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pl011.c b/hw/pl011.c
index fb22736..da1c433 100644
--- a/hw/pl011.c
+++ b/hw/pl011.c
@@ -8,7 +8,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
index da20e08..6a9cab0 100644
--- a/hw/pxa2xx.c
+++ b/hw/pxa2xx.c
@@ -13,7 +13,7 @@
 #include "serial.h"
 #include "i2c.h"
 #include "ssi.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/blockdev.h"
 
 static struct {
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 523534b..3165d18 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -3,7 +3,7 @@
 #include "qobject/qerror.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 void *qdev_get_prop_ptr(DeviceState *dev, Property *prop)
 {
diff --git a/hw/serial.c b/hw/serial.c
index 43bb109..8ef83ea 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -24,7 +24,7 @@
  */
 
 #include "serial.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/timer.h"
 
 //#define DEBUG_SERIAL
diff --git a/hw/sh_serial.c b/hw/sh_serial.c
index e918da0..4e5f622 100644
--- a/hw/sh_serial.c
+++ b/hw/sh_serial.c
@@ -26,7 +26,7 @@
  */
 #include "hw.h"
 #include "sh.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "exec/exec-memory.h"
 
 //#define DEBUG_SERIAL
diff --git a/hw/spapr_rtas.c b/hw/spapr_rtas.c
index 405684e..330c2ed 100644
--- a/hw/spapr_rtas.c
+++ b/hw/spapr_rtas.c
@@ -26,7 +26,7 @@
  */
 #include "cpu.h"
 #include "sysemu/sysemu.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
diff --git a/hw/spapr_vty.c b/hw/spapr_vty.c
index 5da17a3..5a481f1 100644
--- a/hw/spapr_vty.c
+++ b/hw/spapr_vty.c
@@ -1,5 +1,5 @@
 #include "qdev.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "hw/spapr.h"
 #include "hw/spapr_vio.h"
 
diff --git a/hw/strongarm.c b/hw/strongarm.c
index b081ab9..2ec01a6 100644
--- a/hw/strongarm.c
+++ b/hw/strongarm.c
@@ -30,7 +30,7 @@
 #include "strongarm.h"
 #include "qemu/error.h"
 #include "arm-misc.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/sysemu.h"
 #include "ssi.h"
 
diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c
index 3b64587..6dd0fd4 100644
--- a/hw/usb/dev-bluetooth.c
+++ b/hw/usb/dev-bluetooth.c
@@ -21,7 +21,7 @@
 #include "qemu-common.h"
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "hw/bt.h"
 
 struct USBBtState {
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index 689e361..6b7d0cc 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -12,7 +12,7 @@
 #include "qemu/error.h"
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 //#define DEBUG_Serial
 
diff --git a/hw/virtio-console.c b/hw/virtio-console.c
index 230c99c..a1f32a6 100644
--- a/hw/virtio-console.c
+++ b/hw/virtio-console.c
@@ -10,7 +10,7 @@
  * the COPYING file in the top-level directory.
  */
 
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/error.h"
 #include "trace.h"
 #include "virtio-serial.h"
diff --git a/hw/xen_backend.c b/hw/xen_backend.c
index 270584f..3fa3009 100644
--- a/hw/xen_backend.c
+++ b/hw/xen_backend.c
@@ -35,7 +35,7 @@
 #include <sys/signal.h>
 
 #include "hw.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/log.h"
 #include "xen_backend.h"
 
diff --git a/hw/xen_console.c b/hw/xen_console.c
index 9426d73..ac36ceb 100644
--- a/hw/xen_console.c
+++ b/hw/xen_console.c
@@ -30,7 +30,7 @@
 #include <sys/mman.h>
 
 #include "hw.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "xen_backend.h"
 
 #include <xen/io/console.h>
diff --git a/hw/xenfb.c b/hw/xenfb.c
index 5fbbc9e..5cac263 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -37,7 +37,7 @@
 
 #include "hw.h"
 #include "ui/console.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "xen_backend.h"
 
 #include <xen/event_channel.h>
diff --git a/hw/xgmac.c b/hw/xgmac.c
index 8c12d54..96370c8 100644
--- a/hw/xgmac.c
+++ b/hw/xgmac.c
@@ -25,7 +25,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/log.h"
 #include "net/net.h"
 #include "net/checksum.h"
diff --git a/hw/xilinx_uartlite.c b/hw/xilinx_uartlite.c
index d0f32db..45cd7ca 100644
--- a/hw/xilinx_uartlite.c
+++ b/hw/xilinx_uartlite.c
@@ -23,7 +23,7 @@
  */
 
 #include "sysbus.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 #define DUART(x)
 
diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c
index 5feb016..0ef5b95 100644
--- a/hw/xtensa_lx60.c
+++ b/hw/xtensa_lx60.c
@@ -36,7 +36,7 @@
 #include "sysbus.h"
 #include "flash.h"
 #include "sysemu/blockdev.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "xtensa_bootparam.h"
 
 typedef struct LxBoardDesc {
diff --git a/bt-host.h b/include/bt/bt.h
similarity index 100%
rename from bt-host.h
rename to include/bt/bt.h
diff --git a/qemu-char.h b/include/char/char.h
similarity index 100%
rename from qemu-char.h
rename to include/char/char.h
diff --git a/monitor.c b/monitor.c
index ac5b8b9..b0f75e6 100644
--- a/monitor.c
+++ b/monitor.c
@@ -33,7 +33,7 @@
 #include "exec/gdbstub.h"
 #include "net/net.h"
 #include "net/slirp.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "ui/qemu-spice.h"
 #include "sysemu/sysemu.h"
 #include "monitor/monitor.h"
diff --git a/net/slirp.c b/net/slirp.c
index 80b81ab..b3c149e 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -35,7 +35,7 @@
 #include "monitor/monitor.h"
 #include "qemu/sockets.h"
 #include "slirp/libslirp.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 static int get_str_sep(char *buf, int buf_size, const char **pp, int sep)
 {
diff --git a/qemu-char.c b/qemu-char.c
index b38b9c0..a9ac2eb 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -26,7 +26,7 @@
 #include "ui/console.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "hw/usb.h"
 #include "hw/baum.h"
 #include "hw/msmouse.h"
diff --git a/qmp.c b/qmp.c
index 85c5733..bbbd99b 100644
--- a/qmp.c
+++ b/qmp.c
@@ -16,7 +16,7 @@
 #include "qemu-common.h"
 #include "sysemu/sysemu.h"
 #include "qmp-commands.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "ui/qemu-spice.h"
 #include "ui/vnc.h"
 #include "sysemu/kvm.h"
diff --git a/qtest.c b/qtest.c
index 65edf07..b4c63b1 100644
--- a/qtest.c
+++ b/qtest.c
@@ -13,7 +13,7 @@
 
 #include "sysemu/qtest.h"
 #include "hw/qdev.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "sysemu/ioport.h"
 #include "sysemu/memory.h"
 #include "hw/irq.h"
diff --git a/slirp/slirp.c b/slirp/slirp.c
index a064b29..db9a17a 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -23,7 +23,7 @@
  */
 #include "qemu-common.h"
 #include "qemu/timer.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "slirp.h"
 #include "hw/hw.h"
 
diff --git a/ui/console.c b/ui/console.c
index 1a22e09..7fc8f11 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -25,7 +25,7 @@
 #include "ui/console.h"
 #include "qemu/timer.h"
 #include "qmp-commands.h"
-#include "qemu-char.h"
+#include "char/char.h"
 
 //#define DEBUG_CONSOLE
 #define DEFAULT_BACKSCROLL 512
diff --git a/vl.c b/vl.c
index c1e79dc..3b229a2 100644
--- a/vl.c
+++ b/vl.c
@@ -126,7 +126,7 @@ int main(int argc, char **argv)
 #include "hw/xen.h"
 #include "hw/qdev.h"
 #include "hw/loader.h"
-#include "bt-host.h"
+#include "bt/bt.h"
 #include "net/net.h"
 #include "net/slirp.h"
 #include "monitor/monitor.h"
@@ -134,7 +134,7 @@ int main(int argc, char **argv)
 #include "sysemu/sysemu.h"
 #include "exec/gdbstub.h"
 #include "qemu/timer.h"
-#include "qemu-char.h"
+#include "char/char.h"
 #include "qemu/cache-utils.h"
 #include "sysemu/blockdev.h"
 #include "hw/block-common.h"
