diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-08-02 13:43:15 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-08-02 13:43:15 +0100 |
commit | 2d986e611fada54d00d3759dad5725d337493719 (patch) | |
tree | ca5b9afcd291893d40b713acdbada93432eca186 /xen/arch/x86/nmi.c | |
parent | 91baae515e845630309aa8d72bf1cf4a2eaa120c (diff) | |
download | xen-2d986e611fada54d00d3759dad5725d337493719.tar.gz xen-2d986e611fada54d00d3759dad5725d337493719.tar.bz2 xen-2d986e611fada54d00d3759dad5725d337493719.zip |
Add a single trigger for all diagnostic keyhandlers
Add a new keyhandler that triggers all the side-effect-free
keyhandlers. This lets automated tests (and users) log the full set
of keyhandlers without having to be aware of which ones might reboot
the host.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/nmi.c')
-rw-r--r-- | xen/arch/x86/nmi.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c index 704fb8ee98..f1d8ec3093 100644 --- a/xen/arch/x86/nmi.c +++ b/xen/arch/x86/nmi.c @@ -453,6 +453,11 @@ static void do_nmi_trigger(unsigned char key) local_irq_enable(); } +static struct keyhandler nmi_trigger_keyhandler = { + .u.fn = do_nmi_trigger, + .desc = "trigger an NMI" +}; + static void do_nmi_stats(unsigned char key) { int i; @@ -475,10 +480,16 @@ static void do_nmi_stats(unsigned char key) printk("dom0 vcpu0: NMI neither pending nor masked\n"); } +static struct keyhandler nmi_stats_keyhandler = { + .diagnostic = 1, + .u.fn = do_nmi_stats, + .desc = "NMI statistics" +}; + static __init int register_nmi_trigger(void) { - register_keyhandler('n', do_nmi_trigger, "trigger an NMI"); - register_keyhandler('N', do_nmi_stats, "NMI statistics"); + register_keyhandler('N', &nmi_trigger_keyhandler); + register_keyhandler('n', &nmi_stats_keyhandler); return 0; } __initcall(register_nmi_trigger); |