Rename "tsc" to "timestamp"
[lttng-modules.git] / src / lttng-probes.c
index aba7ada5767faba1db997e748b5569dd304bb456..73d9482d0f1ee41d3c4621127c2c1d559942230f 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/seq_file.h>
 
 #include <lttng/events.h>
+#include <lttng/events-internal.h>
 
 /*
  * probe list is protected by sessions lock.
@@ -41,24 +42,31 @@ EXPORT_PER_CPU_SYMBOL_GPL(lttng_dynamic_len_stack);
 static
 int check_event_provider(struct lttng_kernel_probe_desc *desc)
 {
-       int i;
+       int i, mismatch = 0;
        size_t provider_name_len;
 
        provider_name_len = strnlen(desc->provider_name,
                                LTTNG_KERNEL_ABI_SYM_NAME_LEN - 1);
        for (i = 0; i < desc->nr_events; i++) {
-               if (strncmp(desc->event_desc[i]->event_name,
-                               desc->provider_name,
-                               provider_name_len))
-                       return 0;       /* provider mismatch */
                /*
-                * The event needs to contain at least provider name + _ +
+                * The event name needs to start with provider name + _ +
                 * one or more letter.
                 */
-               if (strlen(desc->event_desc[i]->event_name) <= provider_name_len + 1)
-                       return 0;       /* provider mismatch */
-               if (desc->event_desc[i]->event_name[provider_name_len] != '_')
-                       return 0;       /* provider mismatch */
+               if (strncmp(desc->event_desc[i]->event_name, desc->provider_name, provider_name_len))
+                       mismatch = 1;
+               else if (strlen(desc->event_desc[i]->event_name) <= provider_name_len + 1)
+                       mismatch = 1;
+               else if (desc->event_desc[i]->event_name[provider_name_len] != '_')
+                       mismatch = 1;
+
+               if (mismatch) {
+                       printk(KERN_WARNING "LTTng: event provider mismatch: "
+                               "The event name needs to start with provider "
+                               "name + _ + one or more letter, "
+                               "provider: %s, event name: %s\n",
+                               desc->provider_name, desc->event_desc[i]->event_name);
+                       return 0;
+               }
        }
        return 1;
 }
@@ -153,7 +161,7 @@ const struct lttng_kernel_probe_desc *find_provider(const char *provider)
        return NULL;
 }
 
-int lttng_probe_register(struct lttng_kernel_probe_desc *desc)
+int lttng_kernel_probe_register(struct lttng_kernel_probe_desc *desc)
 {
        int ret = 0;
 
@@ -181,9 +189,9 @@ end:
        lttng_unlock_sessions();
        return ret;
 }
-EXPORT_SYMBOL_GPL(lttng_probe_register);
+EXPORT_SYMBOL_GPL(lttng_kernel_probe_register);
 
-void lttng_probe_unregister(struct lttng_kernel_probe_desc *desc)
+void lttng_kernel_probe_unregister(struct lttng_kernel_probe_desc *desc)
 {
        lttng_lock_sessions();
        if (!desc->lazy)
@@ -193,7 +201,7 @@ void lttng_probe_unregister(struct lttng_kernel_probe_desc *desc)
        pr_debug("LTTng: just unregistered probe %s\n", desc->provider_name);
        lttng_unlock_sessions();
 }
-EXPORT_SYMBOL_GPL(lttng_probe_unregister);
+EXPORT_SYMBOL_GPL(lttng_kernel_probe_unregister);
 
 /*
  * TODO: this is O(nr_probes * nb_events), could be faster.
This page took 0.025127 seconds and 4 git commands to generate.