Move the arch_* function declarations to the common header so that they
don't have to be copy/pasted verbatim across arches.
Signed-off-by: Rabin Vincent <[email protected]>
---
arch/x86/include/asm/uprobes.h | 6 ------
include/linux/uprobes.h | 9 +++++++++
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/arch/x86/include/asm/uprobes.h b/arch/x86/include/asm/uprobes.h
index f3971bb..95488b3 100644
--- a/arch/x86/include/asm/uprobes.h
+++ b/arch/x86/include/asm/uprobes.h
@@ -48,10 +48,4 @@ struct arch_uprobe_task {
#endif
};
-extern int arch_uprobe_analyze_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long addr);
-extern int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs);
-extern int arch_uprobe_post_xol(struct arch_uprobe *aup, struct pt_regs *regs);
-extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
-extern int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
-extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
#endif /* _ASM_UPROBES_H */
diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
index efe4b33..e2d2948 100644
--- a/include/linux/uprobes.h
+++ b/include/linux/uprobes.h
@@ -30,6 +30,8 @@
struct vm_area_struct;
struct mm_struct;
struct inode;
+struct notifier_block;
+struct arch_uprobe;
#ifdef CONFIG_ARCH_SUPPORTS_UPROBES
# include <asm/uprobes.h>
@@ -118,6 +120,13 @@ extern bool uprobe_deny_signal(void);
extern bool __weak arch_uprobe_skip_sstep(struct arch_uprobe *aup, struct pt_regs *regs);
extern void uprobe_clear_state(struct mm_struct *mm);
extern void uprobe_reset_state(struct mm_struct *mm);
+
+extern int arch_uprobe_analyze_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long addr);
+extern int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs);
+extern int arch_uprobe_post_xol(struct arch_uprobe *aup, struct pt_regs *regs);
+extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
+extern int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
+extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
#else /* !CONFIG_UPROBES */
struct uprobes_state {
};
--
1.7.4.3
On Tue, Jun 19, 2012 at 8:55 AM, Rabin Vincent
<[email protected]> wrote:
> Move the arch_* function declarations to the common header so that they
> don't have to be copy/pasted verbatim across arches.
>
> Signed-off-by: Rabin Vincent <[email protected]>
Looping in Arnd as arch maintainer to get some traction.
(Looks good to me!)
Yours,
Linus Walleij
>
> -extern int arch_uprobe_analyze_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long addr);
> -extern int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> -extern int arch_uprobe_post_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> -extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
> -extern int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
> -extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> #endif /* _ASM_UPROBES_H */
> diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
> index efe4b33..e2d2948 100644
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -30,6 +30,8 @@
> struct vm_area_struct;
> struct mm_struct;
> struct inode;
> +struct notifier_block;
> +struct arch_uprobe;
>
One nit:
Do we need this forward declaration. It should anyway be defined in the
asm/uprobes.h?
> #ifdef CONFIG_ARCH_SUPPORTS_UPROBES
> # include <asm/uprobes.h>
> @@ -118,6 +120,13 @@ extern bool uprobe_deny_signal(void);
> extern bool __weak arch_uprobe_skip_sstep(struct arch_uprobe *aup, struct pt_regs *regs);
> extern void uprobe_clear_state(struct mm_struct *mm);
> extern void uprobe_reset_state(struct mm_struct *mm);
> +
> +extern int arch_uprobe_analyze_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long addr);
> +extern int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> +extern int arch_uprobe_post_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> +extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
> +extern int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
> +extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
> #else /* !CONFIG_UPROBES */
> struct uprobes_state {
> };
I am okay with moving the declarations to include/linux/uprobes.h
--
Thanks and Regards
Srikar