This adds an "nmi" monitor command handler per CPUs. x86, s390 and ppc CPUS are supported.
Please comment. Thanks. Changes: v8: * adjusted commit log for s390 patch * fixed missing "static" in 1/4 v7: * fixed typenames, function names, copyrights * s390x QOM'ed for later addition of the NMI interface * Since none of x86 machines is QOM'ed, postpone migration to new interface for x86 v6: * back 5 steps and make it an interface again v5: * added Error** to the callback * fixed some comments v4: * now it is not nmi() but nmi_monitor_handler() to avoid confusion v3: * patches reorganized * comments from v2 addressed, more details are in individual commit logs v2: * moved from machine interface to CPUClass callback * s390 and x86 moved to target-s390/target-i386 * x86 handler delivers to the current CPU only now Alexey Kardashevskiy (5): cpus: Define callback for QEMU "nmi" command s390x: Convert QEMUMachine to MachineClass s390x: Migrate to new NMI interface spapr: Add support for new NMI interface pc_piix: Migrate to new NMI interface cpus.c | 31 ++--------------- hmp-commands.hx | 6 ++-- hw/core/Makefile.objs | 1 + hw/core/nmi.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 42 +++++++++++++++++++++++ hw/ppc/spapr.c | 21 ++++++++++++ hw/s390x/s390-virtio-ccw.c | 49 ++++++++++++++++++--------- hw/s390x/s390-virtio.c | 59 ++++++++++++++++++++++---------- hw/s390x/s390-virtio.h | 3 ++ include/hw/nmi.h | 49 +++++++++++++++++++++++++++ qapi-schema.json | 4 +-- qmp-commands.hx | 3 +- target-ppc/cpu-qom.h | 1 + target-ppc/excp_helper.c | 8 +++++ 14 files changed, 291 insertions(+), 70 deletions(-) create mode 100644 hw/core/nmi.c create mode 100644 include/hw/nmi.h -- 2.0.0