return 0;
}
+/* Searches non-predefined kernel probe in the list. */
+static kernel_probe_t* find_probe(unsigned long addr)
+{
+ kernel_probe_t *p;
+ struct hlist_node *node;
+
+ /* check if such probe does exist */
+ swap_hlist_for_each_entry_rcu(p, node, &kernel_probes, hlist)
+ if (p->addr == addr)
+ return p;
+
+ return NULL;
+}
+
/* Adds non-predefined kernel probe to the list. */
static int add_probe_to_list(unsigned long addr, kernel_probe_t **pprobe)
{
}
EXPORT_SYMBOL_GPL(pack_task_event_info);
-kernel_probe_t* find_probe (unsigned long addr)
-{
- kernel_probe_t *p;
- struct hlist_node *node;
-
- //check if such probe does exist
- swap_hlist_for_each_entry_rcu (p, node, &kernel_probes, hlist)
- if (p->addr == addr)
- break;
-
- return node ? p : NULL;
-}
-
int put_us_event (char *data, unsigned long len)
{
unsigned long spinlock_flags = 0L;
void dbi_find_and_set_handler_for_probe(kernel_probe_t *p);
/*
- Searches non-predefined kernel probe in the list.
-*/
-extern kernel_probe_t *find_probe (unsigned long addr);
-
-/*
Copies event from user space to buffer and updates its pid/tid/cpu/time.
*/
extern int put_us_event (char *data, unsigned long len);