diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2014-08-20 22:16:33 +1000 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-08-25 13:25:16 +0200 |
commit | 9cb805fd2674f474d058fee6d7aa9e83fcd3d336 (patch) | |
tree | 63344366acae27416cf291b85adee7b556a6e831 /cpus.c | |
parent | c8e2085d8e7a64d753eb2a43e4aeae674a99d2ff (diff) | |
download | qemu-9cb805fd2674f474d058fee6d7aa9e83fcd3d336.zip qemu-9cb805fd2674f474d058fee6d7aa9e83fcd3d336.tar.gz qemu-9cb805fd2674f474d058fee6d7aa9e83fcd3d336.tar.bz2 |
cpus: Define callback for QEMU "nmi" command
This introduces an NMI (Non Maskable Interrupt) interface with
a single nmi_monitor_handler() method. A machine or a device can
implement it. This searches for an QOM object with this interface
and if it is implemented, calls it. The callback implements an action
required to cause debug crash dump on in-kernel debugger invocation.
The callback returns Error**.
This adds a nmi_monitor_handle() helper which walks through
all objects to find the interface. The interface method is called
for all found instances.
This adds support for it in qmp_inject_nmi(). Since no architecture
supports it at the moment, there is no change in behaviour.
This changes inject-nmi command description for HMP and QMP.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'cpus.c')
-rw-r--r-- | cpus.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -40,6 +40,7 @@ #include "qemu/bitmap.h" #include "qemu/seqlock.h" #include "qapi-event.h" +#include "hw/nmi.h" #ifndef _WIN32 #include "qemu/compatfd.h" @@ -1551,7 +1552,7 @@ void qmp_inject_nmi(Error **errp) } } #else - error_set(errp, QERR_UNSUPPORTED); + nmi_monitor_handle(monitor_get_cpu_index(), errp); #endif } |