ABI update
[lttng-modules.git] / ltt-ring-buffer-client.h
index c70c62b3c59c5dde47c59b93f325019c0ee7e835..93c793ff0218de72acd8b5154acfe78875c0fe62 100644 (file)
@@ -9,17 +9,11 @@
  */
 
 #include <linux/module.h>
+#include <linux/types.h>
+#include <linux/trace-clock.h>
+#include "ltt-events.h"
 #include "ltt-tracer.h"
 
-struct ring_buffer_priv {
-       struct dentry *dentry;
-}
-
-struct channel_priv {
-       struct ltt_trace *trace;
-       struct ring_buffer_priv *buf;
-};
-
 static const struct lib_ring_buffer_config client_config;
 
 static u64 client_ring_buffer_clock_read(struct channel *chan)
@@ -92,52 +86,10 @@ static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc,
 static int client_buffer_create(struct lib_ring_buffer *buf, void *priv,
                                int cpu, const char *name)
 {
-       struct channel_priv *chan_priv = priv;
-       struct ring_buffer_priv *buf_priv;
-       struct dentry *trace_dentry;
-       char *tmpname;
-       int ret = 0;
-
-       if (client_config.alloc == RING_BUFFER_ALLOC_PER_CPU)
-               buf_priv = per_cpu_ptr(chan_priv->buf, cpu);
-       else
-               buf_priv = chan_priv->buf;
-
-       tmpname = kzalloc(NAME_MAX + 1, GFP_KERNEL);
-       if (!tmpname) {
-               ret = -ENOMEM;
-               goto end;
-       }
-
-       snprintf(tmpname, NAME_MAX, "%s%s_%d",
-                (client_config.mode == RING_BUFFER_OVERWRITE) ? "flight-" : "",
-                name, cpu);
-
-       trace_dentry = chan_priv->trace->dentry.trace_root;
-       buf_priv->dentry = debugfs_create_file(tmpname, S_IRUSR, trace_dentry,
-                                              buf,
-                                              &lib_ring_buffer_file_operations);
-       if (!buf_priv->dentry) {
-               ret = -ENOMEM;
-               goto free_name;
-       }
-free_name:
-       kfree(tmpname);
-end:
-       return ret;
 }
 
 static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu)
 {
-       struct channel_priv *chan_priv = priv;
-       struct lib_ring_buffer_priv *buf_priv;
-
-       if (client_config.alloc == RING_BUFFER_ALLOC_PER_CPU)
-               buf_priv = per_cpu_ptr(chan_priv->buf, cpu);
-       else
-               buf_priv = chan_priv->buf;
-
-       debugfs_remove(buf_priv->dentry);
 }
 
 static const struct lib_ring_buffer_config client_config = {
@@ -166,54 +118,20 @@ static const struct lib_ring_buffer_config client_config = {
 };
 
 static
-struct channel *ltt_channel_create(const char *name, struct ltt_trace *trace,
-                                  void *buf_addr,
+struct channel *ltt_channel_create(struct ltt_session *session, void *buf_addr,
                                   size_t subbuf_size, size_t num_subbuf,
                                   unsigned int switch_timer_interval,
                                   unsigned int read_timer_interval)
 {
-       struct channel *chan;
-       struct chan_priv *chan_priv;
-
-       chan_priv = kzalloc(sizeof(struct chan_priv), GFP_KERNEL);
-       if (!chan_priv)
-               return NULL;
-       if (client_config.alloc == RING_BUFFER_ALLOC_PER_CPU) {
-               chan_priv->buf = alloc_percpu(struct lib_ring_buffer_priv);
-               memset(chan_priv->buf, 0, sizeof(*chan_priv->buf));
-       } else
-               chan_priv->buf = kzalloc(sizeof(*chan_priv->buf), GFP_KERNEL)
-       if (!channel_priv->buf)
-               goto free_chan_priv;
-       chan_priv->trace = trace;
-       chan = channel_create(&client_config, name, chan_priv, buf_addr,
+       return channel_create(&client_config, "[lttng]", session, buf_addr,
                              subbuf_size, num_subbuf, switch_timer_interval,
                              read_timer_interval);
-       if (!chan)
-               goto free_buf_priv;
-       return chan;
-
-free_buf_priv:
-       if (client_config.alloc == RING_BUFFER_ALLOC_PER_CPU)
-               free_percpu(chan_priv->buf);
-       else
-               kfree(chan_priv->buf);
-free_chan_priv:
-       kfree(chan_priv);
-       return NULL;
 }
 
 static
 void ltt_channel_destroy(struct channel *chan)
 {
-       struct chan_priv *chan_priv = channel_get_private(chan);
-
        channel_destroy(chan);
-       if (client_config.alloc == RING_BUFFER_ALLOC_PER_CPU)
-               free_percpu(chan_priv->buf);
-       else
-               kfree(chan_priv->buf);
-       kfree(chan_priv);
 }
 
 static
@@ -236,37 +154,10 @@ struct lib_ring_buffer *ltt_buffer_read_close(struct lib_ring_buffer *buf)
        lib_ring_buffer_release_read(buf);
 }
 
-static void ltt_relay_remove_dirs(struct ltt_trace *trace)
-{
-       debugfs_remove(trace->dentry.trace_root);
-}
-
-static int ltt_relay_create_dirs(struct ltt_trace *new_trace)
-{
-       struct dentry *ltt_root_dentry;
-       int ret;
-
-       ltt_root_dentry = get_ltt_root();
-       if (!ltt_root_dentry)
-               return ENOENT;
-
-       new_trace->dentry.trace_root = debugfs_create_dir(new_trace->trace_name,
-                                                         ltt_root_dentry);
-       put_ltt_root();
-       if (new_trace->dentry.trace_root == NULL) {
-               printk(KERN_ERR "LTT : Trace directory name %s already taken\n",
-                      new_trace->trace_name);
-               return EEXIST;
-       }
-       return 0;
-}
-
 static struct ltt_transport ltt_relay_transport = {
        .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING,
        .owner = THIS_MODULE,
        .ops = {
-               .create_dirs = ltt_relay_create_dirs,
-               .remove_dirs = ltt_relay_remove_dirs,
                .create_channel = ltt_channel_create,
                .destroy_channel = ltt_channel_destroy,
                .buffer_read_open = ltt_buffer_read_open,
This page took 0.024865 seconds and 4 git commands to generate.