aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/uaccess.h
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-12-14 16:38:48 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-12-14 16:38:48 +0000
commitc155842b30d55e66e7ff21281daf99685e910a7c (patch)
treec25791fba5781e00ca6933568b5967b037053898 /xen/include/asm-x86/uaccess.h
parentb3b32340da8438117ccb8001bfea56427a39f1ab (diff)
downloadxen-c155842b30d55e66e7ff21281daf99685e910a7c.tar.gz
xen-c155842b30d55e66e7ff21281daf99685e910a7c.tar.bz2
xen-c155842b30d55e66e7ff21281daf99685e910a7c.zip
bitkeeper revision 1.1159.187.66 (41bf1718JfLUlcF63YjP4sfqtgAPWA)
Some more x86/64 progress...
Diffstat (limited to 'xen/include/asm-x86/uaccess.h')
-rw-r--r--xen/include/asm-x86/uaccess.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/xen/include/asm-x86/uaccess.h b/xen/include/asm-x86/uaccess.h
index 52a8b25c56..46c02ecef4 100644
--- a/xen/include/asm-x86/uaccess.h
+++ b/xen/include/asm-x86/uaccess.h
@@ -1,6 +1,32 @@
+#ifndef __X86_UACCESS_H__
+#define __X86_UACCESS_H__
+
#ifdef __x86_64__
#include <asm/x86_64/uaccess.h>
#else
#include <asm/x86_32/uaccess.h>
#endif
+
+/*
+ * The exception table consists of pairs of addresses: the first is the
+ * address of an instruction that is allowed to fault, and the second is
+ * the address at which the program should continue. No registers are
+ * modified, so it is entirely up to the continuation code to figure out
+ * what to do.
+ *
+ * All the routines below use bits of fixup code that are out of line
+ * with the main instruction path. This means when everything is well,
+ * we don't even have to jump over them. Further, they do not intrude
+ * on our cache or tlb entries.
+ */
+
+struct exception_table_entry
+{
+ unsigned long insn, fixup;
+};
+
+extern unsigned long search_exception_table(unsigned long);
+extern void sort_exception_tables(void);
+
+#endif /* __X86_UACCESS_H__ */