Il 21/03/2013 15:28, Igor Mammedov ha scritto: > hot-added CPU id (APIC ID) will be distributed to acpi_piix4 and rtc_cmos > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > --- > include/sysemu/sysemu.h | 4 ++++ > stubs/Makefile.objs | 1 + > stubs/qemu_system_cpu_hotplug_request.c | 5 +++++ > vl.c | 14 ++++++++++++++ > 4 files changed, 24 insertions(+), 0 deletions(-) > create mode 100644 stubs/qemu_system_cpu_hotplug_request.c > > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index 6578782..4b8f721 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -152,6 +152,10 @@ void do_pci_device_hot_remove(Monitor *mon, const QDict > *qdict); > /* generic hotplug */ > void drive_hot_add(Monitor *mon, const QDict *qdict); > > +/* CPU hotplug */ > +void qemu_register_cpu_add_notifier(Notifier *notifier); > +void qemu_system_cpu_hotplug_request(uint32_t id); > + > /* pcie aer error injection */ > void pcie_aer_inject_error_print(Monitor *mon, const QObject *data); > int do_pcie_aer_inject_error(Monitor *mon, > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs > index 9741e16..6a492f5 100644 > --- a/stubs/Makefile.objs > +++ b/stubs/Makefile.objs > @@ -25,3 +25,4 @@ stub-obj-y += vmstate.o > stub-obj-$(CONFIG_WIN32) += fd-register.o > stub-obj-y += resume_vcpu.o > stub-obj-y += get_icc_bus.o > +stub-obj-y += qemu_system_cpu_hotplug_request.o
You're adding one stub per patch. I think this is a sign that something can be abstracted at a higher level (e.g. put something in cpus.c if it is softmmu-specific), or that it is added at the wrong place. For example, this notifier can go in qom/cpu.c. (Besides, I noticed now the get_icc_bus stub. I didn't understand why it's used, but anyway adding CPU-specific stuff to libqemustub is absolutely a no-no). Paolo > diff --git a/stubs/qemu_system_cpu_hotplug_request.c > b/stubs/qemu_system_cpu_hotplug_request.c > new file mode 100644 > index 0000000..ad4f394 > --- /dev/null > +++ b/stubs/qemu_system_cpu_hotplug_request.c > @@ -0,0 +1,5 @@ > +#include <sysemu/sysemu.h> > + > +void qemu_system_cpu_hotplug_request(uint32_t id) > +{ > +} > diff --git a/vl.c b/vl.c > index aeed7f4..fd95e43 100644 > --- a/vl.c > +++ b/vl.c > @@ -1723,6 +1723,20 @@ void vm_start(void) > } > } > > +/* CPU hot-plug notifiers */ > +static NotifierList cpu_add_notifiers = > + NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers); > + > +void qemu_register_cpu_add_notifier(Notifier *notifier) > +{ > + notifier_list_add(&cpu_add_notifiers, notifier); > +} > + > +void qemu_system_cpu_hotplug_request(uint32_t id) > +{ > + notifier_list_notify(&cpu_add_notifiers, &id); > +} > + > /* reset/shutdown handler */ > > typedef struct QEMUResetEntry { >