aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/bug.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-02-24 10:44:30 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-02-24 10:44:30 +0000
commit5040f46e36bc8b38784f32e4f7ca497274e08324 (patch)
tree074d301847bff14e11eb42cfeba5da7978274d9a /xen/include/asm-x86/bug.h
parent078a073a6ccd4f6a66cce154ecaeceaa39c28b78 (diff)
downloadxen-5040f46e36bc8b38784f32e4f7ca497274e08324.tar.gz
xen-5040f46e36bc8b38784f32e4f7ca497274e08324.tar.bz2
xen-5040f46e36bc8b38784f32e4f7ca497274e08324.zip
x86: Generalise BUGFRAME_dump mechanism to allow polled UART irq to
get proper regs argument. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/bug.h')
-rw-r--r--xen/include/asm-x86/bug.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/xen/include/asm-x86/bug.h b/xen/include/asm-x86/bug.h
index df64549e44..60efca2244 100644
--- a/xen/include/asm-x86/bug.h
+++ b/xen/include/asm-x86/bug.h
@@ -13,15 +13,16 @@ struct bug_frame {
unsigned short id; /* BUGFRAME_??? */
} __attribute__((packed));
-#define BUGFRAME_dump 0
+#define BUGFRAME_run_fn 0
#define BUGFRAME_warn 1
#define BUGFRAME_bug 2
#define BUGFRAME_assert 3
-#define dump_execution_state() \
+#define run_in_exception_handler(fn) \
asm volatile ( \
- "ud2 ; ret $0" \
- : : "i" (BUGFRAME_dump) )
+ "ud2 ; ret %0" BUG_STR(1) \
+ : : "i" (BUGFRAME_run_fn), \
+ "i" (fn) )
#define WARN() \
asm volatile ( \