|
@@ -55,6 +55,21 @@
|
|
|
|
|
|
# define segment_eq(a, b) ((a).seg == (b).seg)
|
|
# define segment_eq(a, b) ((a).seg == (b).seg)
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * 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;
|
|
|
|
+};
|
|
|
|
|
|
#define __clear_user(addr, n) (memset((void *)(addr), 0, (n)), 0)
|
|
#define __clear_user(addr, n) (memset((void *)(addr), 0, (n)), 0)
|
|
|
|
|
|
@@ -333,22 +348,6 @@ extern int __strnlen_user(const char __user *sstr, int len);
|
|
extern unsigned long __copy_tofrom_user(void __user *to,
|
|
extern unsigned long __copy_tofrom_user(void __user *to,
|
|
const void __user *from, unsigned long size);
|
|
const void __user *from, unsigned long size);
|
|
|
|
|
|
-/*
|
|
|
|
- * 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;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
#endif /* __ASSEMBLY__ */
|
|
#endif /* __KERNEL__ */
|
|
#endif /* __KERNEL__ */
|
|
|
|
|