summaryrefslogtreecommitdiffstats
path: root/runtime/task_finder.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/task_finder.c')
-rw-r--r--runtime/task_finder.c64
1 files changed, 28 insertions, 36 deletions
diff --git a/runtime/task_finder.c b/runtime/task_finder.c
index 7949a81f..3507c669 100644
--- a/runtime/task_finder.c
+++ b/runtime/task_finder.c
@@ -2,8 +2,32 @@
#define TASK_FINDER_C
#if ! defined(CONFIG_UTRACE)
-#error "Need CONFIG_UTRACE!"
-#endif
+/* Dummy definitions for use in sym.c */
+struct stap_task_finder_target { };
+
+static int
+stap_add_vma_map_info(struct task_struct *tsk, unsigned long vm_start,
+ unsigned long vm_end, unsigned long vm_pgoff,
+ void *user)
+{
+ return 0;
+}
+
+static int
+stap_remove_vma_map_info(struct task_struct *tsk, unsigned long vm_start,
+ unsigned long vm_end, unsigned long vm_pgoff)
+{
+ return 0;
+}
+
+static int
+stap_find_vma_map_info(struct task_struct *tsk, unsigned long vm_addr,
+ unsigned long *vm_start, unsigned long *vm_end,
+ unsigned long *vm_pgoff, void **user)
+{
+ return ESRCH;
+}
+#else
#include <linux/utrace.h>
@@ -69,40 +93,6 @@ typedef int (*stap_task_finder_vm_callback)(struct stap_task_finder_target *tgt,
unsigned long vm_end,
unsigned long vm_pgoff);
-static int __stp_tf_vm_cb(struct stap_task_finder_target *tgt,
- struct task_struct *tsk,
- int map_p, char *vm_path,
- unsigned long vm_start,
- unsigned long vm_end,
- unsigned long vm_pgoff)
-{
- int i;
-#ifdef DEBUG_TASK_FINDER_VMA
- _stp_dbug(__FUNCTION__, __LINE__,
- "vm_cb: tsk %d:%d path %s, start 0x%08lx, end 0x%08lx, offset 0x%lx\n",
- tsk->pid, map_p, vm_path, vm_start, vm_end, vm_pgoff);
-#endif
- if (map_p) {
- struct _stp_module *module = NULL;
- if (vm_path != NULL)
- for (i = 0; i < _stp_num_modules; i++)
- if (strcmp(vm_path, _stp_modules[i]->path) == 0)
- {
-#ifdef DEBUG_TASK_FINDER_VMA
- _stp_dbug(__FUNCTION__, __LINE__,
- "vm_cb: matched path %s to module\n", vm_path);
-#endif
- module = _stp_modules[i];
- break;
- }
- stap_add_vma_map_info(tsk, vm_start, vm_end, vm_pgoff, module);
- }
- else {
- stap_remove_vma_map_info(tsk, vm_start, vm_end, vm_pgoff);
- }
- return 0;
-}
-
struct stap_task_finder_target {
/* private: */
struct list_head list; /* __stp_task_finder_list linkage */
@@ -1392,4 +1382,6 @@ stap_stop_task_finder(void)
}
+#endif /* defined(CONFIG_UTRACE) */
+
#endif /* TASK_FINDER_C */