[REFACTOR] move add_probe_to_list()
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Mon, 22 Apr 2013 16:13:18 +0000 (20:13 +0400)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Mon, 22 Apr 2013 16:13:18 +0000 (20:13 +0400)
from src/modules/driver/storage.c
to src/modules/driver/probes_manager.c

driver/probes_manager.c
driver/storage.c
driver/storage.h

index 5ef0954..25ec140 100644 (file)
@@ -107,6 +107,44 @@ int unset_kernel_probes(void)
        return 0;
 }
 
+/* Adds non-predefined kernel probe to the list. */
+static int add_probe_to_list(unsigned long addr, kernel_probe_t **pprobe)
+{
+       kernel_probe_t *new_probe;
+       kernel_probe_t *probe;
+
+       if (pprobe)
+               *pprobe = NULL;
+
+       /* check if such probe does already exist */
+       probe = find_probe(addr);
+       if (probe) {
+               /* It is not a problem if we have already registered
+                  this probe before */
+               return 0;
+       }
+
+       new_probe = kmalloc(sizeof(*new_probe), GFP_KERNEL);
+       if (!new_probe) {
+               EPRINTF("no memory for new probe!");
+               return -ENOMEM;
+       }
+
+       memset(new_probe, 0, sizeof(*new_probe));
+       new_probe->addr = addr;
+       new_probe->jprobe.kp.addr = new_probe->retprobe.kp.addr = (kprobe_opcode_t *)addr;
+       new_probe->jprobe.priv_arg = new_probe->retprobe.priv_arg = new_probe;
+
+       dbi_find_and_set_handler_for_probe(new_probe);
+
+       INIT_HLIST_NODE(&new_probe->hlist);
+       hlist_add_head_rcu(&new_probe->hlist, &kernel_probes);
+       if (pprobe)
+               *pprobe = new_probe;
+
+       return 0;
+}
+
 int
 add_probe (unsigned long addr)
 {
index bacb0b7..42a26a3 100644 (file)
@@ -84,7 +84,7 @@ inline unsigned long find_dbi_rp_handler(unsigned long p_addr, struct dbi_module
 /**
  * Search of handler in global list of modules for defined probe
  */
-static void dbi_find_and_set_handler_for_probe(kernel_probe_t *p)
+void dbi_find_and_set_handler_for_probe(kernel_probe_t *p)
 {
        unsigned long jp_handler_addr, rp_handler_addr;
        struct dbi_modules_handlers_info *local_mhi;
@@ -1259,40 +1259,6 @@ kernel_probe_t* find_probe (unsigned long addr)
        return node ? p : NULL;
 }
 
-
-int add_probe_to_list (unsigned long addr, kernel_probe_t ** pprobe)
-{
-       kernel_probe_t *new_probe;
-       kernel_probe_t *probe;
-
-       if (pprobe)
-               *pprobe = NULL;
-       //check if such probe does already exist
-       probe = find_probe(addr);
-       if (probe) {
-               /* It is not a problem if we have already registered
-                  this probe before */
-               return 0;
-       }
-       new_probe = kmalloc (sizeof (kernel_probe_t), GFP_KERNEL);
-       if (!new_probe)
-       {
-               EPRINTF ("no memory for new probe!");
-               return -ENOMEM;
-       }
-       memset (new_probe, 0, sizeof (kernel_probe_t));
-       new_probe->addr = addr;
-       new_probe->jprobe.kp.addr = new_probe->retprobe.kp.addr = (kprobe_opcode_t *)addr;
-       new_probe->jprobe.priv_arg = new_probe->retprobe.priv_arg = new_probe;
-       //new_probe->jprobe.pre_entry = (kprobe_pre_entry_handler_t) def_jprobe_event_pre_handler;
-       dbi_find_and_set_handler_for_probe(new_probe);
-       INIT_HLIST_NODE (&new_probe->hlist);
-       hlist_add_head_rcu (&new_probe->hlist, &kernel_probes);
-       if (pprobe)
-               *pprobe = new_probe;
-       return 0;
-}
-
 int remove_probe_from_list (unsigned long addr)
 {
        kernel_probe_t *p;
index 07c3673..13f9daf 100644 (file)
@@ -66,10 +66,7 @@ int link_bundle(void);
 /* Undo the actions of link_bundle() */
 void unlink_bundle(void);
 
-/*
-    Adds non-predefined kernel probe to the list.
-*/
-extern int add_probe_to_list (unsigned long addr, kernel_probe_t ** pprobe);
+void dbi_find_and_set_handler_for_probe(kernel_probe_t *p);
 
 /*
     Removes non-predefined kernel probe from the list.