1 /* 2 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 3 * Licensed under the GPL 4 */ 5 6 #include <sysdep/ptrace.h> 7 8 /* These two are from asm-um/uaccess.h and linux/module.h, check them. */ 9 struct exception_table_entry 10 { 11 unsigned long insn; 12 unsigned long fixup; 13 }; 14 15 const struct exception_table_entry *search_exception_tables(unsigned long add); 16 17 /* Compare this to arch/i386/mm/extable.c:fixup_exception() */ arch_fixup(unsigned long address,struct uml_pt_regs * regs)18int arch_fixup(unsigned long address, struct uml_pt_regs *regs) 19 { 20 const struct exception_table_entry *fixup; 21 22 fixup = search_exception_tables(address); 23 if (fixup) { 24 UPT_IP(regs) = fixup->fixup; 25 return 1; 26 } 27 return 0; 28 } 29