Move include/ust/ to include/lttng/
[lttng-ust.git] / libust / lttng-ust-abi.c
index 6eb74ed8170d2b5ae1bdcd2c63a7fc57dc0af14e..6d17c2005dd2999a02ab20f382b0dd525761ef31 100644 (file)
  * Dual LGPL v2.1/GPL v2 license.
  */
 
-#include <ust/lttng-ust-abi.h>
+#include <lttng/ust-abi.h>
 #include <urcu/compiler.h>
 #include <urcu/list.h>
-#include <ust/lttng-events.h>
-#include <ust/usterr-signal-safe.h>
-#include "ust/core.h"
+#include <lttng/ust-events.h>
+#include <lttng/usterr-signal-safe.h>
+#include "lttng/core.h"
 #include "ltt-tracer.h"
 
 /*
  * by the caller.
  */
 
-struct obj {
+struct lttng_ust_obj {
        union {
                struct {
                        void *private_data;
-                       const struct objd_ops *ops;
+                       const struct lttng_ust_objd_ops *ops;
                        int f_count;
                } s;
                int freelist_next;      /* offset freelist. end is -1. */
        } u;
 };
 
-struct objd_table {
-       struct obj *array;
+struct lttng_ust_objd_table {
+       struct lttng_ust_obj *array;
        unsigned int len, allocated_len;
        int freelist_head;              /* offset freelist head. end is -1 */
 };
 
-static struct objd_table objd_table = {
+static struct lttng_ust_objd_table objd_table = {
        .freelist_head = -1,
 };
 
 static
-int objd_alloc(void *private_data, const struct objd_ops *ops)
+int objd_alloc(void *private_data, const struct lttng_ust_objd_ops *ops)
 {
-       struct obj *obj;
+       struct lttng_ust_obj *obj;
 
        if (objd_table.freelist_head != -1) {
                obj = &objd_table.array[objd_table.freelist_head];
@@ -71,7 +71,7 @@ int objd_alloc(void *private_data, const struct objd_ops *ops)
 
        if (objd_table.len >= objd_table.allocated_len) {
                unsigned int new_allocated_len, old_allocated_len;
-               struct obj *new_table, *old_table;
+               struct lttng_ust_obj *new_table, *old_table;
 
                old_allocated_len = objd_table.allocated_len;
                old_table = objd_table.array;
@@ -79,11 +79,11 @@ int objd_alloc(void *private_data, const struct objd_ops *ops)
                        new_allocated_len = 1;
                else
                        new_allocated_len = old_allocated_len << 1;
-               new_table = zmalloc(sizeof(struct obj) * new_allocated_len);
+               new_table = zmalloc(sizeof(struct lttng_ust_obj) * new_allocated_len);
                if (!new_table)
                        return -ENOMEM;
                memcpy(new_table, old_table,
-                      sizeof(struct obj) * old_allocated_len);
+                      sizeof(struct lttng_ust_obj) * old_allocated_len);
                free(old_table);
                objd_table.array = new_table;
                objd_table.allocated_len = new_allocated_len;
@@ -99,7 +99,7 @@ end:
 }
 
 static
-struct obj *_objd_get(int id)
+struct lttng_ust_obj *_objd_get(int id)
 {
        if (id >= objd_table.len)
                return NULL;
@@ -111,7 +111,7 @@ struct obj *_objd_get(int id)
 static
 void *objd_private(int id)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
        assert(obj);
        return obj->u.s.private_data;
 }
@@ -119,14 +119,14 @@ void *objd_private(int id)
 static
 void objd_set_private(int id, void *private_data)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
        assert(obj);
        obj->u.s.private_data = private_data;
 }
 
-const struct objd_ops *objd_ops(int id)
+const struct lttng_ust_objd_ops *objd_ops(int id)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
 
        if (!obj)
                return NULL;
@@ -136,7 +136,7 @@ const struct objd_ops *objd_ops(int id)
 static
 void objd_free(int id)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
 
        assert(obj);
        obj->u.freelist_next = objd_table.freelist_head;
@@ -148,13 +148,13 @@ void objd_free(int id)
 static
 void objd_ref(int id)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
        obj->u.s.f_count++;
 }
 
-int objd_unref(int id)
+int lttng_ust_objd_unref(int id)
 {
-       struct obj *obj = _objd_get(id);
+       struct lttng_ust_obj *obj = _objd_get(id);
 
        if (!obj)
                return -EINVAL;
@@ -163,7 +163,7 @@ int objd_unref(int id)
                return -EINVAL;
        }
        if ((--obj->u.s.f_count) == 1) {
-               const struct objd_ops *ops = objd_ops(id);
+               const struct lttng_ust_objd_ops *ops = objd_ops(id);
                
                if (ops->release)
                        ops->release(id);
@@ -178,7 +178,7 @@ void objd_table_destroy(void)
        int i;
 
        for (i = 0; i < objd_table.allocated_len; i++)
-               (void) objd_unref(i);
+               (void) lttng_ust_objd_unref(i);
        free(objd_table.array);
        objd_table.array = NULL;
        objd_table.len = 0;
@@ -191,12 +191,12 @@ void objd_table_destroy(void)
  * We send commands over a socket.
  */
 
-static const struct objd_ops lttng_ops;
-static const struct objd_ops lttng_session_ops;
-static const struct objd_ops lttng_channel_ops;
-static const struct objd_ops lttng_metadata_ops;
-static const struct objd_ops lttng_event_ops;
-static const struct objd_ops lib_ring_buffer_objd_ops;
+static const struct lttng_ust_objd_ops lttng_ops;
+static const struct lttng_ust_objd_ops lttng_session_ops;
+static const struct lttng_ust_objd_ops lttng_channel_ops;
+static const struct lttng_ust_objd_ops lttng_metadata_ops;
+static const struct lttng_ust_objd_ops lttng_event_ops;
+static const struct lttng_ust_objd_ops lib_ring_buffer_objd_ops;
 
 enum channel_type {
        PER_CPU_CHANNEL,
@@ -208,7 +208,6 @@ int lttng_abi_create_root_handle(void)
        int root_handle;
 
        root_handle = objd_alloc(NULL, &lttng_ops);
-       assert(root_handle == 0);
        return root_handle;
 }
 
@@ -273,8 +272,14 @@ long lttng_abi_add_context(int objd,
                return -EPERM;
 
        switch (context_param->ctx) {
+       case LTTNG_UST_CONTEXT_PTHREAD_ID:
+               return lttng_add_pthread_id_to_ctx(ctx);
        case LTTNG_UST_CONTEXT_VTID:
-               //TODO return lttng_add_vtid_to_ctx(ctx);
+               return lttng_add_vtid_to_ctx(ctx);
+       case LTTNG_UST_CONTEXT_VPID:
+               return lttng_add_vpid_to_ctx(ctx);
+       case LTTNG_UST_CONTEXT_PROCNAME:
+               return lttng_add_procname_to_ctx(ctx);
        default:
                return -EINVAL;
        }
@@ -319,7 +324,7 @@ long lttng_cmd(int objd, unsigned int cmd, unsigned long arg)
        }
 }
 
-static const struct objd_ops lttng_ops = {
+static const struct lttng_ust_objd_ops lttng_ops = {
        .cmd = lttng_cmd,
 };
 
@@ -360,7 +365,7 @@ int lttng_abi_create_channel(int session_objd,
                             enum channel_type channel_type)
 {
        struct ltt_session *session = objd_private(session_objd);
-       const struct objd_ops *ops;
+       const struct lttng_ust_objd_ops *ops;
        const char *transport_name;
        struct ltt_channel *chan;
        int chan_objd;
@@ -424,7 +429,7 @@ chan_error:
        {
                int err;
 
-               err = objd_unref(chan_objd);
+               err = lttng_ust_objd_unref(chan_objd);
                assert(!err);
        }
 objd_error:
@@ -496,13 +501,13 @@ int lttng_release_session(int objd)
        }
 }
 
-static const struct objd_ops lttng_session_ops = {
+static const struct lttng_ust_objd_ops lttng_session_ops = {
        .release = lttng_release_session,
        .cmd = lttng_session_cmd,
 };
 
 struct stream_priv_data {
-       struct lib_ring_buffer *buf;
+       struct lttng_ust_lib_ring_buffer *buf;
        struct ltt_channel *ltt_chan;
 };
 
@@ -510,7 +515,7 @@ static
 int lttng_abi_open_stream(int channel_objd, struct lttng_ust_stream *info)
 {
        struct ltt_channel *channel = objd_private(channel_objd);
-       struct lib_ring_buffer *buf;
+       struct lttng_ust_lib_ring_buffer *buf;
        struct stream_priv_data *priv;
        int stream_objd, ret;
 
@@ -574,7 +579,7 @@ event_error:
        {
                int err;
 
-               err = objd_unref(event_objd);
+               err = lttng_ust_objd_unref(event_objd);
                assert(!err);
        }
 objd_error:
@@ -627,6 +632,8 @@ long lttng_channel_cmd(int objd, unsigned int cmd, unsigned long arg)
                return ltt_channel_enable(channel);
        case LTTNG_UST_DISABLE:
                return ltt_channel_disable(channel);
+       case LTTNG_UST_FLUSH_BUFFER:
+               return channel->ops->flush_buffer(channel->chan, channel->handle);
        default:
                return -EINVAL;
        }
@@ -648,6 +655,8 @@ long lttng_channel_cmd(int objd, unsigned int cmd, unsigned long arg)
 static
 long lttng_metadata_cmd(int objd, unsigned int cmd, unsigned long arg)
 {
+       struct ltt_channel *channel = objd_private(objd);
+
        switch (cmd) {
        case LTTNG_UST_STREAM:
        {
@@ -657,6 +666,8 @@ long lttng_metadata_cmd(int objd, unsigned int cmd, unsigned long arg)
                /* stream used as output */
                return lttng_abi_open_stream(objd, stream);
        }
+       case LTTNG_UST_FLUSH_BUFFER:
+               return channel->ops->flush_buffer(channel->chan, channel->handle);
        default:
                return -EINVAL;
        }
@@ -698,17 +709,17 @@ int lttng_channel_release(int objd)
        struct ltt_channel *channel = objd_private(objd);
 
        if (channel)
-               return objd_unref(channel->session->objd);
+               return lttng_ust_objd_unref(channel->session->objd);
        return 0;
 }
 
-static const struct objd_ops lttng_channel_ops = {
+static const struct lttng_ust_objd_ops lttng_channel_ops = {
        .release = lttng_channel_release,
        //.poll = lttng_channel_poll,
        .cmd = lttng_channel_cmd,
 };
 
-static const struct objd_ops lttng_metadata_ops = {
+static const struct lttng_ust_objd_ops lttng_metadata_ops = {
        .release = lttng_channel_release,
        .cmd = lttng_metadata_cmd,
 };
@@ -722,13 +733,10 @@ static const struct objd_ops lttng_metadata_ops = {
  *
  *     This object descriptor implements lttng commands:
  *             (None for now. Access is done directly though shm.)
- *             TODO: Add buffer flush.
  */
 static
 long lttng_rb_cmd(int objd, unsigned int cmd, unsigned long arg)
 {
-       //struct stream_priv_data *priv = objd_private(objd);
-
        switch (cmd) {
        default:
                return -EINVAL;
@@ -739,7 +747,7 @@ static
 int lttng_rb_release(int objd)
 {
        struct stream_priv_data *priv = objd_private(objd);
-       struct lib_ring_buffer *buf;
+       struct lttng_ust_lib_ring_buffer *buf;
        struct ltt_channel *channel;
 
        if (priv) {
@@ -748,12 +756,12 @@ int lttng_rb_release(int objd)
                free(priv);
                channel->ops->buffer_read_close(buf, channel->handle);
 
-               return objd_unref(channel->objd);
+               return lttng_ust_objd_unref(channel->objd);
        }
        return 0;
 }
 
-static const struct objd_ops lib_ring_buffer_objd_ops = {
+static const struct lttng_ust_objd_ops lib_ring_buffer_objd_ops = {
        .release = lttng_rb_release,
        .cmd = lttng_rb_cmd,
 };
@@ -798,12 +806,12 @@ int lttng_event_release(int objd)
        struct ltt_event *event = objd_private(objd);
 
        if (event)
-               return objd_unref(event->chan->objd);
+               return lttng_ust_objd_unref(event->chan->objd);
        return 0;
 }
 
 /* TODO: filter control ioctl */
-static const struct objd_ops lttng_event_ops = {
+static const struct lttng_ust_objd_ops lttng_event_ops = {
        .release = lttng_event_release,
        .cmd = lttng_event_cmd,
 };
This page took 0.028667 seconds and 4 git commands to generate.