diff options
author | David Smith <dsmith@redhat.com> | 2009-12-21 21:04:36 -0600 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-12-21 21:04:36 -0600 |
commit | b8b815b7163b3df61a7364e404a282cb17d775db (patch) | |
tree | 8731c429e83c063feda94cd5ad5bb7ba44d96a05 /runtime/task_finder.c | |
parent | 63db23df87bf6408c0947053288b771d863ecf36 (diff) | |
download | systemtap-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/task_finder.c')
-rw-r--r-- | runtime/task_finder.c | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/runtime/task_finder.c b/runtime/task_finder.c index e89ac8ee..b77fff87 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -107,23 +107,35 @@ static u32 __stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, struct task_struct *tsk); #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, + bool group_dead, int signal); +#else static u32 __stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, struct task_struct *tsk, bool group_dead, int signal); #endif +#endif #ifdef UTRACE_ORIG_VERSION static u32 __stp_utrace_task_finder_target_quiesce(struct utrace_attached_engine *engine, struct task_struct *tsk); #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) static u32 +__stp_utrace_task_finder_target_quiesce(u32 action, + struct utrace_attached_engine *engine, + unsigned long event); +#else __stp_utrace_task_finder_target_quiesce(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, unsigned long event); #endif +#endif #ifdef UTRACE_ORIG_VERSION static u32 @@ -131,12 +143,19 @@ __stp_utrace_task_finder_target_syscall_entry(struct utrace_attached_engine *eng struct task_struct *tsk, struct pt_regs *regs); #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_syscall_entry(u32 action, + struct utrace_attached_engine *engine, + struct pt_regs *regs); +#else static u32 __stp_utrace_task_finder_target_syscall_entry(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, struct pt_regs *regs); #endif +#endif #ifdef UTRACE_ORIG_VERSION static u32 @@ -144,12 +163,19 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi struct task_struct *tsk, struct pt_regs *regs); #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_syscall_exit(u32 action, + struct utrace_attached_engine *engine, + struct pt_regs *regs); +#else static u32 __stp_utrace_task_finder_target_syscall_exit(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, struct pt_regs *regs); #endif +#endif static int stap_register_task_finder_target(struct stap_task_finder_target *new_tgt) @@ -857,6 +883,13 @@ __stp_utrace_task_finder_report_clone(struct utrace_attached_engine *engine, unsigned long clone_flags, struct task_struct *child) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_report_clone(u32 action, + struct utrace_attached_engine *engine, + unsigned long clone_flags, + struct task_struct *child) +#else static u32 __stp_utrace_task_finder_report_clone(enum utrace_resume_action action, struct utrace_attached_engine *engine, @@ -864,7 +897,11 @@ __stp_utrace_task_finder_report_clone(enum utrace_resume_action action, unsigned long clone_flags, struct task_struct *child) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *parent = current; +#endif int rc; struct mm_struct *mm; char *mmpath_buf; @@ -898,6 +935,14 @@ __stp_utrace_task_finder_report_exec(struct utrace_attached_engine *engine, const struct linux_binprm *bprm, struct pt_regs *regs) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_report_exec(u32 action, + struct utrace_attached_engine *engine, + const struct linux_binfmt *fmt, + const struct linux_binprm *bprm, + struct pt_regs *regs) +#else static u32 __stp_utrace_task_finder_report_exec(enum utrace_resume_action action, struct utrace_attached_engine *engine, @@ -906,7 +951,11 @@ __stp_utrace_task_finder_report_exec(enum utrace_resume_action action, const struct linux_binprm *bprm, struct pt_regs *regs) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif size_t filelen; struct list_head *tgt_node; struct stap_task_finder_target *tgt; @@ -949,11 +998,17 @@ static u32 stap_utrace_task_finder_report_death(struct utrace_attached_engine *engine, struct task_struct *tsk) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +stap_utrace_task_finder_report_death(struct utrace_attached_engine *engine, + bool group_dead, int signal) +#else static u32 stap_utrace_task_finder_report_death(struct utrace_attached_engine *engine, struct task_struct *tsk, bool group_dead, int signal) #endif +#endif { debug_task_finder_detach(); return UTRACE_DETACH; @@ -964,12 +1019,21 @@ static u32 __stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, struct task_struct *tsk) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, + bool group_dead, int signal) +#else static u32 __stp_utrace_task_finder_target_death(struct utrace_attached_engine *engine, struct task_struct *tsk, bool group_dead, int signal) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif struct stap_task_finder_target *tgt = engine->data; if (atomic_read(&__stp_task_finder_state) != __STP_TF_RUNNING) { @@ -1132,13 +1196,23 @@ static u32 __stp_utrace_task_finder_target_quiesce(struct utrace_attached_engine *engine, struct task_struct *tsk) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_quiesce(u32 action, + struct utrace_attached_engine *engine, + unsigned long event) +#else static u32 __stp_utrace_task_finder_target_quiesce(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, unsigned long event) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif struct stap_task_finder_target *tgt = engine->data; int rc; @@ -1201,13 +1275,23 @@ __stp_utrace_task_finder_target_syscall_entry(struct utrace_attached_engine *eng struct task_struct *tsk, struct pt_regs *regs) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_syscall_entry(u32 action, + struct utrace_attached_engine *engine, + struct pt_regs *regs) +#else static u32 __stp_utrace_task_finder_target_syscall_entry(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, struct pt_regs *regs) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif struct stap_task_finder_target *tgt = engine->data; long syscall_no; unsigned long args[3] = { 0L }; @@ -1271,13 +1355,23 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi struct task_struct *tsk, struct pt_regs *regs) #else +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) +static u32 +__stp_utrace_task_finder_target_syscall_exit(u32 action, + struct utrace_attached_engine *engine, + struct pt_regs *regs) +#else static u32 __stp_utrace_task_finder_target_syscall_exit(enum utrace_resume_action action, struct utrace_attached_engine *engine, struct task_struct *tsk, struct pt_regs *regs) #endif +#endif { +#if defined(UTRACE_API_VERSION) && (UTRACE_API_VERSION >= 20091216) + struct task_struct *tsk = current; +#endif struct stap_task_finder_target *tgt = engine->data; unsigned long rv; struct __stp_tf_map_entry *entry; |