1 #ifndef _ARCH_POWERPC_EXTABLE_H 2 #define _ARCH_POWERPC_EXTABLE_H 3 4 /* 5 * The exception table consists of pairs of relative addresses: the first is 6 * the address of an instruction that is allowed to fault, and the second is 7 * the address at which the program should continue. No registers are 8 * modified, so it is entirely up to the continuation code to figure out what 9 * to do. 10 * 11 * All the routines below use bits of fixup code that are out of line with the 12 * main instruction path. This means when everything is well, we don't even 13 * have to jump over them. Further, they do not intrude on our cache or tlb 14 * entries. 15 */ 16 17 #define ARCH_HAS_RELATIVE_EXTABLE 18 19 struct exception_table_entry { 20 int insn; 21 int fixup; 22 }; 23 24 static inline unsigned long extable_fixup(const struct exception_table_entry *x) 25 { 26 return (unsigned long)&x->fixup + x->fixup; 27 } 28 29 #endif 30