patch series description: This patch series is for spliting out piix specific part from pc emulator to make it easier to implement other pc chipset emulator.
I observed that make was confused not to rebuild files sometimes due to splitting up a file into files. It results in duplicated/undefined symbols. In that case, 'make clean;make' will fix it. Blue, your patches were combied into 21/26, and 22/26. Please check it. Your patches to acpi.c had some issues. I fixed them in this patch series. 1/2 acpi: remove static pm_state: The first argument, dev, of piix4_device_hotplug() is not PIIX4PMState device, but hot plugged device. So the container_of() doesn't make sense. 2/2 acpi: remove static gpe and pci0_status variables The call back argument to pge_readb(), gpe_writeb() is struct gpe_regs. Not PIIX4PMState. The callback argument pcihotplug_read(), pcihotplug_write() is struct pci_status. Not PIIX4PMState. Those argument type is void*, so compiler didn't catch it. thanks, Changes from V12: - 2/26 acpi: split out apm register emulation from acpi.c The patch originally convert CMOS S3 code to qemu_irq. However the conversion is already done by Blue Swirl. So the patch was simplified. - 22/26 pci hotadd, acpi_piix4: remove global variables Minor style fix according to Blue's patch. - rebased to 5acd0646b6033d40ef5d0ae06338cc354108f640 Changes from V11: - s/pc_smbus/pm_smbus/g, s/pc_apm/apm/g and so on because it isn't pc specifc. mips also uses it. - No logic changes. Changes from V10: - pass DeviceState* to pc_smbus_init(), now info qtree shows smbus. - change pci hotplug argument from void * to DeviceState*. Changes from V9: - rebased 502e64fe23f19c086d42f6178cdda19e58996080 - use qemu_irq to remove global variables, rtc_state - make rtc_xxx functions accept/return ISADevice and related clean ups - pci hot plug clean up - removed #ifdef DEBUG patches. Changes from V8: - make rtc_xxx functions accept/return ISADevice. - move up ioapic initalization patch. - fixed up copyright notice. Changes from V7: - rebased to fe0d61231eb6be6a83c54f4a2795f924ee963f8f Changes from v6: - rebased to 731c54f86988d3f28268f184fabfe9b2a32fb5d3 Changes from v5: - rebased 0.11.0-rc0 - changed qemu_system_powerdown_register() to call qemu_system_shutdown_request() if qemu_system_shutdown() is called before registering. Changes from v4: - fix version number. - rebased anthony's staging tree whose latest change set is 62969268f876c547ee64da6d60e0f363e0f1df75 Changes from v3: - move qemu_system_powerdown() in vl.c and more generic following the comment by Marcelo Tosatti <mtosa...@redhat.com> acpi.c: make qemu_system_powerdown() piix independent. - define cmos_set_s3_resume_init() and cmos_set_s3_resume() in pc.c even if TARGET_I386 isn't defined following th ecommit by Paolo Bonzini <bonz...@gnu.org> pc.c: remove a global variable, RTCState *rtc_state. - minor compilation fixes Changes from v2: - clean up pc_pci_device_init() not to use unnecessary braces. Changes from v1: - make patches full bisectable - typo s/allocte/allocate/ - some minor fixes - dropped a merged patch Isaku Yamahata (26): acpi: split out piix4 smbus routines from acpi.c into pm_smbus.c acpi: split out apm register emulation from acpi.c acpi: add acpi constants from linux header files and use them. acpi: split acpi.c into the common part and the piix4 part. pc: initialize ioapic before use. pc, i440fx: Make smm enable/disable function i440fx independent. pc: make an unnecessary global variable, pit, local. pc: remove a global variable, floppy_controller. pc: remove global variable rtc_state by using qemu_irq. pc: introduce a function to allocate cpu irq. pc: make pc_init1() not refer ferr_irq directly. pc: split out cpu initialization from pc_init1() into pc_cpus_init(). pc: split out memory allocation from pc_init1() into pc_memory_init() pc: split out vga initialization from pc_init1() into pc_vga_init(). pc: split out basic device init from pc_init1() into pc_basic_device_init() pc: split out pci device init from pc_init1() into pc_pci_device_init() pc: split out piix specific part from pc.c into pc_piix.c pc: move rtc declarations from pc.h into a dedicated header file. rtc: make rtc_xxx accept/return ISADevice instead of RTCState. acpi_piix4: qdevfy. pci hotplug: add argument to pci hot plug callback. pci hotadd, acpi_piix4: remove global variables pm_smbus: remove #ifdef DEBUG. acpi_piix4: remove #ifdef DEBUG. apm: remove #ifdef DEBUG. mc146818rtc: remove #ifdef DEBUG_CMOS. Makefile.target | 2 + hw/acpi.c | 743 +----------------------------------------------------- hw/acpi.h | 78 ++++++ hw/acpi_piix4.c | 602 +++++++++++++++++++++++++++++++++++++++++++ hw/apm.c | 87 +++++++ hw/apm.h | 22 ++ hw/fdc.h | 5 + hw/mc146818rtc.c | 44 ++-- hw/mc146818rtc.h | 10 + hw/mips_jazz.c | 1 + hw/mips_malta.c | 3 +- hw/mips_r4k.c | 3 +- hw/pc.c | 423 +++++++------------------------ hw/pc.h | 48 +++- hw/pc_piix.c | 316 +++++++++++++++++++++++ hw/pci.c | 8 +- hw/pci.h | 4 +- hw/piix_pci.c | 5 +- hw/pm_smbus.c | 181 +++++++++++++ hw/pm_smbus.h | 21 ++ hw/ppc_prep.c | 1 + 21 files changed, 1500 insertions(+), 1107 deletions(-) create mode 100644 hw/acpi.h create mode 100644 hw/acpi_piix4.c create mode 100644 hw/apm.c create mode 100644 hw/apm.h create mode 100644 hw/mc146818rtc.h create mode 100644 hw/pc_piix.c create mode 100644 hw/pm_smbus.c create mode 100644 hw/pm_smbus.h