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() */ |
18 | int arch_fixup(unsigned long address, struct uml_pt_regs *regs) |
19 | { |
20 | const struct exception_table_entry *fixup; |
21 | |
22 | fixup = search_exception_tables(add: address); |
23 | if (fixup) { |
24 | UPT_IP(regs) = fixup->fixup; |
25 | return 1; |
26 | } |
27 | return 0; |
28 | } |
29 | |