summaryrefslogtreecommitdiffstats
path: root/runtime/itrace.c
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2009-12-21 21:04:36 -0600
committerDavid Smith <dsmith@redhat.com>2009-12-21 21:04:36 -0600
commitb8b815b7163b3df61a7364e404a282cb17d775db (patch)
tree8731c429e83c063feda94cd5ad5bb7ba44d96a05 /runtime/itrace.c
parent63db23df87bf6408c0947053288b771d863ecf36 (diff)
downloadsystemtap-steved-b8b815b7163b3df61a7364e404a282cb17d775db.tar.gz
systemtap-steved-b8b815b7163b3df61a7364e404a282cb17d775db.tar.xz
systemtap-steved-b8b815b7163b3df61a7364e404a282cb17d775db.zip
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.
Diffstat (limited to 'runtime/itrace.c')
-rw-r--r--runtime/itrace.c30
1 files changed, 30 insertions, 0 deletions
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);