Version 2.4.4
[lttng-modules.git] / lttng-events.h
index bce6507c77989450f682e983b08856cec3e5ea99..e8c9afedffc3eb3ac94c1536e72d3943aaf330be 100644 (file)
@@ -167,10 +167,12 @@ struct lttng_ctx {
        struct lttng_ctx_field *fields;
        unsigned int nr_fields;
        unsigned int allocated_fields;
+       size_t largest_align;   /* in bytes */
 };
 
 struct lttng_event_desc {
-       const char *name;
+       const char *name;               /* lttng-modules name */
+       const char *kname;              /* Linux kernel name (tracepoints) */
        void *probe_callback;
        const struct lttng_event_ctx *ctx;      /* context */
        const struct lttng_event_field *fields; /* event payload */
@@ -235,6 +237,10 @@ struct lttng_channel_ops {
                                      const void *src, size_t len);
        void (*event_memset)(struct lib_ring_buffer_ctx *ctx,
                             int c, size_t len);
+       void (*event_strcpy)(struct lib_ring_buffer_ctx *ctx, const char *src,
+                            size_t len);
+       void (*event_strcpy_from_user)(struct lib_ring_buffer_ctx *ctx,
+                                      const char __user *src, size_t len);
        /*
         * packet_avail_size returns the available size in the current
         * packet. Note that the size returned is only a hint, since it
@@ -263,6 +269,9 @@ struct lttng_channel_ops {
        int (*stream_id) (const struct lib_ring_buffer_config *config,
                        struct lib_ring_buffer *bufb,
                        uint64_t *stream_id);
+       int (*current_timestamp) (const struct lib_ring_buffer_config *config,
+                       struct lib_ring_buffer *bufb,
+                       uint64_t *ts);
 };
 
 struct lttng_transport {
@@ -303,6 +312,7 @@ struct lttng_metadata_stream {
        wait_queue_head_t read_wait;    /* Reader buffer-level wait queue */
        struct list_head list;          /* Stream list */
        struct lttng_transport *transport;
+       struct mutex lock;
 };
 
 struct lttng_session {
@@ -324,6 +334,7 @@ struct lttng_metadata_cache {
        unsigned int metadata_written;  /* Number of bytes written in metadata cache */
        struct kref refcount;           /* Metadata cache usage */
        struct list_head metadata_stream;       /* Metadata stream list */
+       uuid_le uuid;                   /* Trace session unique ID (copy) */
 };
 
 struct lttng_session *lttng_session_create(void);
@@ -395,6 +406,7 @@ static inline int lttng_syscalls_unregister(struct lttng_channel *chan)
 #endif
 
 struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx);
+void lttng_context_update(struct lttng_ctx *ctx);
 int lttng_find_context(struct lttng_ctx *ctx, const char *name);
 void lttng_remove_context_field(struct lttng_ctx **ctx,
                                struct lttng_ctx_field *field);
This page took 0.025048 seconds and 4 git commands to generate.