From b8b815b7163b3df61a7364e404a282cb17d775db Mon Sep 17 00:00:00 2001 From: David Smith Date: Mon, 21 Dec 2009 21:04:36 -0600 Subject: PR11113 fix. Support new utrace API. * tapset-utrace.cxx (utrace_derived_probe_group::emit_module_decls): Handles new utrace api. * runtime/itrace.c (usr_itrace_report_signal): Ditto. (usr_itrace_report_clone): Ditto. (usr_itrace_report_death): Ditto. * runtime/task_finder.c (__stp_utrace_task_finder_report_clone): Ditto. (__stp_utrace_task_finder_report_exec): Ditto. (__stap_utrace_task_finder_report_death): Ditto. (__stp_utrace_task_finder_target_death): Ditto. (__stp_utrace_task_finder_target_quiesce): Ditto. (__stp_utrace_task_finder_target_syscall_entry): Ditto. (__stp_utrace_task_finder_target_syscall_exit): Ditto. * runtime/uprobes2/uprobes.c (uprobe_report_signal): Ditto. (uprobe_report_quiesce): Ditto. (uprobe_report_exit): Ditto. (uprobe_report_clone): Ditto. (uprobe_report_exec): Ditto. --- runtime/itrace.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'runtime/itrace.c') diff --git a/runtime/itrace.c b/runtime/itrace.c index 5b2437a4..399bfde0 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -84,11 +84,17 @@ static struct itrace_info *create_itrace_info( static u32 usr_itrace_report_quiesce(struct utrace_attached_engine *engine, struct task_struct *tsk) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 usr_itrace_report_quiesce(u32 action, + struct utrace_attached_engine *engine, + unsigned long event) +#else static u32 usr_itrace_report_quiesce(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, unsigned long event) #endif +#endif { int status; struct itrace_info *ui; @@ -113,6 +119,14 @@ static u32 usr_itrace_report_signal( const struct k_sigaction *orig_ka, struct k_sigaction *return_ka) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 usr_itrace_report_signal(u32 action, + struct utrace_attached_engine *engine, + struct pt_regs *regs, + siginfo_t *info, + const struct k_sigaction *orig_ka, + struct k_sigaction *return_ka) +#else static u32 usr_itrace_report_signal(u32 action, struct utrace_attached_engine *engine, struct task_struct *tsk, @@ -121,7 +135,11 @@ static u32 usr_itrace_report_signal(u32 action, const struct k_sigaction *orig_ka, struct k_sigaction *return_ka) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif struct itrace_info *ui; u32 return_flags; unsigned long data = 0; @@ -177,11 +195,18 @@ static u32 usr_itrace_report_clone( unsigned long clone_flags, struct task_struct *child) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 usr_itrace_report_clone(u32 action, + struct utrace_attached_engine *engine, + unsigned long clone_flags, + struct task_struct *child) +#else static u32 usr_itrace_report_clone(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *parent, unsigned long clone_flags, struct task_struct *child) #endif +#endif { return UTRACE_RESUME; } @@ -190,9 +215,14 @@ static u32 usr_itrace_report_clone(enum utrace_resume_action action, static u32 usr_itrace_report_death(struct utrace_attached_engine *e, struct task_struct *tsk) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 usr_itrace_report_death(struct utrace_attached_engine *e, + bool group_dead, int signal) +#else static u32 usr_itrace_report_death(struct utrace_attached_engine *e, struct task_struct *tsk, bool group_dead, int signal) #endif +#endif { struct itrace_info *ui = rcu_dereference(e->data); WARN_ON(!ui); -- cgit