From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40081) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T3qax-0007L0-J6 for qemu-devel@nongnu.org; Tue, 21 Aug 2012 11:42:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T3qap-0005wP-17 for qemu-devel@nongnu.org; Tue, 21 Aug 2012 11:42:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13651) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T3qao-0005wA-P9 for qemu-devel@nongnu.org; Tue, 21 Aug 2012 11:42:10 -0400 From: Eduardo Habkost Date: Tue, 21 Aug 2012 12:42:54 -0300 Message-Id: <1345563782-11224-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [RFC 0/8] include qdev core in *-user, make CPU child of DeviceState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, jan.kiszka@siemens.com, mjt@tls.msk.ru, mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com, kraxel@redhat.com, xen-devel@lists.xensource.com, i.mitsyanko@samsung.com, armbru@redhat.com, avi@redhat.com, anthony.perard@citrix.com, lersek@redhat.com, stefanha@linux.vnet.ibm.com, stefano.stabellini@eu.citrix.com, sw@weilnetz.de, imammedo@redhat.com, lcapitulino@redhat.com, rth@twiddle.net, kwolf@redhat.com, aliguori@us.ibm.com, mtosatti@redhat.com, pbonzini@redhat.com, afaerber@suse.de So, here's a third suggestion to the CPU/DeviceState problem. Basically I split the qdev code into a core (that can be easily compiled into *-user), and a part specific to qemu-system-*. There are two remaining parts that forced me to use #ifdefs in the "core" .c files: - vmstate handling on qdev_init() - the qemu_register_reset() hack If we address those two issues inside qemu-system-* (instead of inside the qdev core code), using DeviceState inside *-user shouldn't be a big problem anymore. Anthony Liguori (1): qdev: split up header so it can be used in cpu.h Eduardo Habkost (3): split qdev into a core and code used only by qemu-system-* qdev: use full qdev.h include path on qdev*.c include core qdev code into *-user, too Igor Mammedov (4): move qemu_irq typedef out of cpu-common.h qapi-types.h doesn't really need to include qemu-common.h cleanup error.h, included qapi-types.h aready has stdbool.h make CPU a child of DeviceState Makefile.objs | 1 + error.h | 1 - hw/Makefile.objs | 3 +- hw/arm-misc.h | 1 + hw/bt.h | 2 + hw/devices.h | 2 + hw/irq.h | 2 + hw/mc146818rtc.c | 1 + hw/omap.h | 1 + hw/qdev-addr.c | 1 + hw/qdev-core.h | 240 +++++++++++++++ hw/qdev-monitor.h | 16 + hw/qdev-properties-system.c | 329 +++++++++++++++++++++ hw/qdev-properties.h | 129 ++++++++ hw/qdev-system.c | 93 ++++++ hw/qdev.h | 371 +----------------------- hw/soc_dma.h | 1 + hw/xen.h | 1 + include/qemu/cpu.h | 6 +- qemu-common.h | 1 - qom/Makefile.objs | 2 +- qom/cpu.c | 3 +- hw/qdev-properties.c => qom/device-properties.c | 323 +-------------------- hw/qdev.c => qom/device.c | 106 +------ scripts/qapi-types.py | 2 +- sysemu.h | 1 + 26 files changed, 849 insertions(+), 790 deletions(-) create mode 100644 hw/qdev-core.h create mode 100644 hw/qdev-monitor.h create mode 100644 hw/qdev-properties-system.c create mode 100644 hw/qdev-properties.h create mode 100644 hw/qdev-system.c rename hw/qdev-properties.c => qom/device-properties.c (75%) rename hw/qdev.c => qom/device.c (89%) -- 1.7.11.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eduardo Habkost Subject: [RFC 0/8] include qdev core in *-user, make CPU child of DeviceState Date: Tue, 21 Aug 2012 12:42:54 -0300 Message-ID: <1345563782-11224-1-git-send-email-ehabkost@redhat.com> Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, jan.kiszka@siemens.com, mjt@tls.msk.ru, mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com, kraxel@redhat.com, xen-devel@lists.xensource.com, i.mitsyanko@samsung.com, armbru@redhat.com, avi@redhat.com, anthony.perard@citrix.com, lersek@redhat.com, stefanha@linux.vnet.ibm.com, stefano.stabellini@eu.citrix.com, sw@weilnetz.de, imammedo@redhat.com, lcapitulino@redhat.com, rth@twiddle.net, kwolf@redhat.com, aliguori@us.ibm.com, mtosatti@redhat.com, pbonzini@redhat.com, afaerber@suse.de List-Id: xen-devel@lists.xenproject.org So, here's a third suggestion to the CPU/DeviceState problem. Basically I split the qdev code into a core (that can be easily compiled into *-user), and a part specific to qemu-system-*. There are two remaining parts that forced me to use #ifdefs in the "core" .c files: - vmstate handling on qdev_init() - the qemu_register_reset() hack If we address those two issues inside qemu-system-* (instead of inside the qdev core code), using DeviceState inside *-user shouldn't be a big problem anymore. Anthony Liguori (1): qdev: split up header so it can be used in cpu.h Eduardo Habkost (3): split qdev into a core and code used only by qemu-system-* qdev: use full qdev.h include path on qdev*.c include core qdev code into *-user, too Igor Mammedov (4): move qemu_irq typedef out of cpu-common.h qapi-types.h doesn't really need to include qemu-common.h cleanup error.h, included qapi-types.h aready has stdbool.h make CPU a child of DeviceState Makefile.objs | 1 + error.h | 1 - hw/Makefile.objs | 3 +- hw/arm-misc.h | 1 + hw/bt.h | 2 + hw/devices.h | 2 + hw/irq.h | 2 + hw/mc146818rtc.c | 1 + hw/omap.h | 1 + hw/qdev-addr.c | 1 + hw/qdev-core.h | 240 +++++++++++++++ hw/qdev-monitor.h | 16 + hw/qdev-properties-system.c | 329 +++++++++++++++++++++ hw/qdev-properties.h | 129 ++++++++ hw/qdev-system.c | 93 ++++++ hw/qdev.h | 371 +----------------------- hw/soc_dma.h | 1 + hw/xen.h | 1 + include/qemu/cpu.h | 6 +- qemu-common.h | 1 - qom/Makefile.objs | 2 +- qom/cpu.c | 3 +- hw/qdev-properties.c => qom/device-properties.c | 323 +-------------------- hw/qdev.c => qom/device.c | 106 +------ scripts/qapi-types.py | 2 +- sysemu.h | 1 + 26 files changed, 849 insertions(+), 790 deletions(-) create mode 100644 hw/qdev-core.h create mode 100644 hw/qdev-monitor.h create mode 100644 hw/qdev-properties-system.c create mode 100644 hw/qdev-properties.h create mode 100644 hw/qdev-system.c rename hw/qdev-properties.c => qom/device-properties.c (75%) rename hw/qdev.c => qom/device.c (89%) -- 1.7.11.4