Privatize part of marker.h, and type-serializer.h
[ust.git] / libust / marker.c
index 43f032826b3263611b401f9138bb5613fca3e1aa..33827fdc9026aa0002bec893c3f20867c820c700 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 Mathieu Desnoyers
+ * Copyright (C) 2007-2011 Mathieu Desnoyers
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,9 @@
 
 #include <ust/core.h>
 #include <ust/marker.h>
+#include <ust/marker-internal.h>
 #include <ust/tracepoint.h>
+#include <ust/tracepoint-internal.h>
 
 #include "usterr_signal_safe.h"
 #include "channels.h"
@@ -64,9 +66,9 @@ void unlock_ust_marker(void)
  * ust_marker hash table, containing the active ust_marker.
  * Protected by module_mutex.
  */
-#define ust_marker_HASH_BITS 6
-#define ust_marker_TABLE_SIZE (1 << ust_marker_HASH_BITS)
-static struct cds_hlist_head ust_marker_table[ust_marker_TABLE_SIZE];
+#define UST_MARKER_HASH_BITS 6
+#define UST_MARKER_TABLE_SIZE (1 << UST_MARKER_HASH_BITS)
+static struct cds_hlist_head ust_marker_table[UST_MARKER_TABLE_SIZE];
 
 /*
  * Note about RCU :
@@ -81,7 +83,7 @@ struct ust_marker_entry {
        char *format;
        char *name;
                        /* Probe wrapper */
-       void (*call)(const struct ust_marker *mdata, void *call_private, struct registers *regs, ...);
+       void (*call)(const struct ust_marker *mdata, void *call_private, ...);
        struct ust_marker_probe_closure single;
        struct ust_marker_probe_closure *multi;
        int refcount;   /* Number of times armed. 0 if disarmed. */
@@ -118,7 +120,7 @@ static void ust_marker_update_processes(void)
  * execution flow of preemptible code.
  */
 notrace void __ust_marker_empty_function(const struct ust_marker *mdata,
-       void *probe_private, struct registers *regs, void *call_private, const char *fmt, va_list *args)
+       void *probe_private, void *call_private, const char *fmt, va_list *args)
 {
 }
 //ust// EXPORT_SYMBOL_GPL(__ust_marker_empty_function);
@@ -134,7 +136,7 @@ notrace void __ust_marker_empty_function(const struct ust_marker *mdata,
  * rcu_dereference() for the pointer read.
  */
 notrace void ust_marker_probe_cb(const struct ust_marker *mdata,
-               void *call_private, struct registers *regs, ...)
+               void *call_private, ...)
 {
        va_list args;
        char ptype;
@@ -155,8 +157,8 @@ notrace void ust_marker_probe_cb(const struct ust_marker *mdata,
                /* Must read the ptr before private data. They are not data
                 * dependant, so we put an explicit cmm_smp_rmb() here. */
                cmm_smp_rmb();
-               va_start(args, regs);
-               func(mdata, mdata->single.probe_private, regs, call_private,
+               va_start(args, call_private);
+               func(mdata, mdata->single.probe_private, call_private,
                        mdata->format, &args);
                va_end(args);
        } else {
@@ -176,9 +178,9 @@ notrace void ust_marker_probe_cb(const struct ust_marker *mdata,
                 */
                cmm_smp_read_barrier_depends();
                for (i = 0; multi[i].func; i++) {
-                       va_start(args, regs);
+                       va_start(args, call_private);
                        multi[i].func(mdata, multi[i].probe_private,
-                               regs, call_private, mdata->format, &args);
+                               call_private, mdata->format, &args);
                        va_end(args);
                }
        }
@@ -195,7 +197,7 @@ notrace void ust_marker_probe_cb(const struct ust_marker *mdata,
  * Should be connected to ust_marker "UST_MARKER_NOARGS".
  */
 static notrace void ust_marker_probe_cb_noarg(const struct ust_marker *mdata,
-               void *call_private, struct registers *regs, ...)
+               void *call_private, ...)
 {
        va_list args;   /* not initialized */
        char ptype;
@@ -211,7 +213,7 @@ static notrace void ust_marker_probe_cb_noarg(const struct ust_marker *mdata,
                /* Must read the ptr before private data. They are not data
                 * dependant, so we put an explicit cmm_smp_rmb() here. */
                cmm_smp_rmb();
-               func(mdata, mdata->single.probe_private, regs, call_private,
+               func(mdata, mdata->single.probe_private, call_private,
                        mdata->format, &args);
        } else {
                struct ust_marker_probe_closure *multi;
@@ -230,7 +232,7 @@ static notrace void ust_marker_probe_cb_noarg(const struct ust_marker *mdata,
                 */
                cmm_smp_read_barrier_depends();
                for (i = 0; multi[i].func; i++)
-                       multi[i].func(mdata, multi[i].probe_private, regs,
+                       multi[i].func(mdata, multi[i].probe_private,
                                call_private, mdata->format, &args);
        }
 //ust//        rcu_read_unlock_sched_notrace();
@@ -397,7 +399,7 @@ static struct ust_marker_entry *get_ust_marker(const char *channel, const char *
        u32 hash;
 
        hash = jhash(channel, channel_len-1, 0) ^ jhash(name, name_len-1, 0);
-       head = &ust_marker_table[hash & ((1 << ust_marker_HASH_BITS)-1)];
+       head = &ust_marker_table[hash & ((1 << UST_MARKER_HASH_BITS)-1)];
        cds_hlist_for_each_entry(e, node, head, hlist) {
                if (!strcmp(channel, e->channel) && !strcmp(name, e->name))
                        return e;
@@ -423,7 +425,7 @@ static struct ust_marker_entry *add_ust_marker(const char *channel, const char *
        hash = jhash(channel, channel_len-1, 0) ^ jhash(name, name_len-1, 0);
        if (format)
                format_len = strlen(format) + 1;
-       head = &ust_marker_table[hash & ((1 << ust_marker_HASH_BITS)-1)];
+       head = &ust_marker_table[hash & ((1 << UST_MARKER_HASH_BITS)-1)];
        cds_hlist_for_each_entry(e, node, head, hlist) {
                if (!strcmp(channel, e->channel) && !strcmp(name, e->name)) {
                        DBG("ust_marker %s.%s busy", channel, name);
@@ -482,7 +484,7 @@ static int remove_ust_marker(const char *channel, const char *name)
        int ret;
 
        hash = jhash(channel, channel_len-1, 0) ^ jhash(name, name_len-1, 0);
-       head = &ust_marker_table[hash & ((1 << ust_marker_HASH_BITS)-1)];
+       head = &ust_marker_table[hash & ((1 << UST_MARKER_HASH_BITS)-1)];
        cds_hlist_for_each_entry(e, node, head, hlist) {
                if (!strcmp(channel, e->channel) && !strcmp(name, e->name)) {
                        found = 1;
@@ -899,7 +901,7 @@ get_ust_marker_from_private_data(ust_marker_probe_func *probe, void *probe_priva
        struct cds_hlist_head *head;
        struct cds_hlist_node *node;
 
-       for (i = 0; i < ust_marker_TABLE_SIZE; i++) {
+       for (i = 0; i < UST_MARKER_TABLE_SIZE; i++) {
                head = &ust_marker_table[i];
                cds_hlist_for_each_entry(entry, node, head, hlist) {
                        if (!entry->ptype) {
@@ -1006,7 +1008,7 @@ void *ust_marker_get_private_data(const char *channel, const char *name,
        u32 hash;
 
        hash = jhash(channel, channel_len-1, 0) ^ jhash(name, name_len-1, 0);
-       head = &ust_marker_table[hash & ((1 << ust_marker_HASH_BITS)-1)];
+       head = &ust_marker_table[hash & ((1 << UST_MARKER_HASH_BITS)-1)];
        cds_hlist_for_each_entry(e, node, head, hlist) {
                if (!strcmp(channel, e->channel) && !strcmp(name, e->name)) {
                        if (!e->ptype) {
@@ -1044,7 +1046,7 @@ void *ust_marker_get_private_data(const char *channel, const char *name,
 //ust//        struct hlist_node *node;
 //ust//        int ret;
 //ust// 
-//ust//        for (i = 0; i < ust_marker_TABLE_SIZE; i++) {
+//ust//        for (i = 0; i < UST_MARKER_TABLE_SIZE; i++) {
 //ust//                head = &ust_marker_table[i];
 //ust//                hlist_for_each_entry(entry, node, head, hlist) {
 //ust//                        ret = ltt_channels_get_index_from_name(entry->channel);
@@ -1207,7 +1209,7 @@ static void free_user_ust_marker(char __user *state, struct cds_hlist_head *head
 //ust//                        }
 //ust//                }
 //ust//        }
-//ust//        clear_thread_flag(TIF_ust_marker_PENDING);
+//ust//        clear_thread_flag(TIF_UST_MARKER_PENDING);
 //ust//        pthread_mutex_unlock(&current->group_leader->user_ust_marker_mutex);
 //ust//        pthread_mutex_unlock(&ust_marker_mutex);
 //ust// }
@@ -1291,7 +1293,7 @@ void ltt_dump_ust_marker_state(struct ust_trace *trace)
        call_data.trace = trace;
        call_data.serializer = NULL;
 
-       for (i = 0; i < ust_marker_TABLE_SIZE; i++) {
+       for (i = 0; i < UST_MARKER_TABLE_SIZE; i++) {
                head = &ust_marker_table[i];
                cds_hlist_for_each_entry(entry, node, head, hlist) {
                        __ust_marker(metadata, core_marker_id,
This page took 0.025957 seconds and 4 git commands to generate.