aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2008-06-23 21:32:29 -0400
committerPaul Mackerras <paulus@samba.org>2008-06-30 21:28:21 -0400
commit411781a290b0d0a31fd73826b3ee110f1e3cc3b6 (patch)
tree4a5eb482d99916c17f19a013b52cf808161f32ea /include
parent07630a37beefe8e4401c602f04e3e5bcbba50b31 (diff)
powerpc: Add new code patching routines
This commit adds some new routines for patching code, which will be used in a following commit. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/code-patching.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/asm-powerpc/code-patching.h b/include/asm-powerpc/code-patching.h
index a45a7ff78725..40ad46b1dd9d 100644
--- a/include/asm-powerpc/code-patching.h
+++ b/include/asm-powerpc/code-patching.h
@@ -23,9 +23,17 @@
23 23
24unsigned int create_branch(const unsigned int *addr, 24unsigned int create_branch(const unsigned int *addr,
25 unsigned long target, int flags); 25 unsigned long target, int flags);
26unsigned int create_cond_branch(const unsigned int *addr,
27 unsigned long target, int flags);
26void patch_branch(unsigned int *addr, unsigned long target, int flags); 28void patch_branch(unsigned int *addr, unsigned long target, int flags);
27void patch_instruction(unsigned int *addr, unsigned int instr); 29void patch_instruction(unsigned int *addr, unsigned int instr);
28 30
31int instr_is_relative_branch(unsigned int instr);
32int instr_is_branch_to_addr(const unsigned int *instr, unsigned long addr);
33unsigned long branch_target(const unsigned int *instr);
34unsigned int translate_branch(const unsigned int *dest,
35 const unsigned int *src);
36
29static inline unsigned long ppc_function_entry(void *func) 37static inline unsigned long ppc_function_entry(void *func)
30{ 38{
31#ifdef CONFIG_PPC64 39#ifdef CONFIG_PPC64