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