aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/traps.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-07-04 16:27:44 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-07-04 16:27:44 +0100
commit355b0469a8d017b80d9ce1078c90fe628c8b3bbe (patch)
tree9a24bfe6fe9a73ea9635cd06ed0880f63a56720a /xen/include/asm-x86/traps.h
parentb12217e1416a2f4ebabfa78b5d0a578d0d879d04 (diff)
downloadxen-355b0469a8d017b80d9ce1078c90fe628c8b3bbe.tar.gz
xen-355b0469a8d017b80d9ce1078c90fe628c8b3bbe.tar.bz2
xen-355b0469a8d017b80d9ce1078c90fe628c8b3bbe.zip
x86: MCA support.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Diffstat (limited to 'xen/include/asm-x86/traps.h')
-rw-r--r--xen/include/asm-x86/traps.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/xen/include/asm-x86/traps.h b/xen/include/asm-x86/traps.h
new file mode 100644
index 0000000000..2d055301f2
--- /dev/null
+++ b/xen/include/asm-x86/traps.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2007, 2008 Advanced Micro Devices, Inc.
+ * Author: Christoph Egger <Christoph.Egger@amd.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef ASM_TRAP_H
+#define ASM_TRAP_H
+
+struct softirq_trap {
+ struct domain *domain; /* domain to inject trap */
+ struct vcpu *vcpu; /* vcpu to inject trap */
+ int processor; /* physical cpu to inject trap */
+};
+
+struct cpu_user_regs;
+
+extern void (*machine_check_vector)(struct cpu_user_regs *regs, long error_code);
+
+/**
+ * guest_has_trap_callback
+ *
+ * returns true (non-zero) if guest registered a trap handler
+ */
+extern int guest_has_trap_callback(struct domain *d, uint16_t vcpuid,
+ unsigned int trap_nr);
+
+/**
+ * send_guest_trap
+ *
+ * delivers trap to guest analogous to send_guest_global_virq
+ * return 0 on successful delivery
+ */
+extern int send_guest_trap(struct domain *d, uint16_t vcpuid,
+ unsigned int trap_nr);
+
+#endif /* ASM_TRAP_H */