This is a re-do of original series posted by Anthony Liguori at: http://lists.gnu.org/archive/html/qemu-devel/2012-01/msg03501.html
I post this series because: 1. there are no news from Anthony since the first version for more than a year 2. Li Wanfeng di some work on the refactor last year, but no news for half a year 3. memory hotplug requires i440fx pmc refactor if I'm getting it right (http://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02693.html) Problems: 1. isapc is broken 2. too many code duplication between piix and ich 3. others TODO: 1. make a proper ISA model 2. a base class PCSuperIO that piix and ich can inherit from. isapc may also be modelled with PCSuperIO. But there was argument on this. (http://lists.gnu.org/archive/html/qemu-devel/2012-01/msg03626.html) 3. a base class MemoryController that i440fx-pmc and q35-mch can inherit from 4. others Hu Tao (20): i440fx: remove unused parameter i440fx_state of i440fx_init. i440fx: rename i440FX to i440FX-PMC i440fx: rename i440FX-pcihost to i440FX i440fx: prepare for composition piix3: make PIIX3-xen a subclass of PIIX3 piix3: prepare for composition piix3: create piix3 through composition. rtc: remove rtc_set_date ich9: function rename piix3,ich9: create the HPET through composition add rtc_set_irq piix3,ich9: create the RTC through composition piix3,ich9: create pit through composition piix3,ich9: create pc speaker through composition i440fx pmc: create pmc through comosition i440fx-pmc: calculate PCI memory hole directly i440fx-pmc: create pci address space q35-mch: create pci address space i440fx-pmc: move ram initialization into i440fx-pmc q35-mch: move ram initialization into q35-mch hw/i386/pc.c | 71 +------ hw/i386/pc_piix.c | 50 ++--- hw/i386/pc_q35.c | 35 ++-- hw/isa/lpc_ich9.c | 87 +++++++- hw/pci-host/piix.c | 447 ++++++++++++++++++++++++++++------------- hw/pci-host/q35.c | 48 ++++- hw/timer/hpet.c | 2 +- hw/timer/mc146818rtc.c | 8 +- include/hw/i386/ich9.h | 5 + include/hw/i386/pc.h | 20 +- include/hw/pci-host/q35.h | 10 +- include/hw/timer/hpet.h | 3 + include/hw/timer/i8254.h | 3 + include/hw/timer/mc146818rtc.h | 2 +- 14 files changed, 504 insertions(+), 287 deletions(-) -- 1.8.2.3