Fix: pad strings that are modified concurrently with tracing
[lttng-ust.git] / include / lttng / ust-events.h
index d541f81f3445a3c37068ad362ea6c06522394e25..3d473407613b85f312cfc3b33dae15f59d4a5b9d 100644 (file)
 #include <lttng/ust-endian.h>
 #include <float.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define LTTNG_UST_UUID_LEN             16
 
 /*
@@ -429,7 +433,10 @@ struct lttng_channel_ops {
                        unsigned char *uuid,
                        uint32_t chan_id);
        void (*channel_destroy)(struct lttng_channel *chan);
-       void *_deprecated1;
+       union {
+               void *_deprecated1;
+               unsigned long has_strcpy:1;             /* ABI has strcpy */
+       } u;
        void *_deprecated2;
        int (*event_reserve)(struct lttng_ust_lib_ring_buffer_ctx *ctx,
                             uint32_t event_id);
@@ -448,6 +455,8 @@ struct lttng_channel_ops {
        int (*is_finalized)(struct channel *chan);
        int (*is_disabled)(struct channel *chan);
        int (*flush_buffer)(struct channel *chan, struct lttng_ust_shm_handle *handle);
+       void (*event_strcpy)(struct lttng_ust_lib_ring_buffer_ctx *ctx,
+                       const char *src, size_t len);
 };
 
 /*
@@ -613,4 +622,8 @@ typedef int (*t_statedump_func_ptr)(struct lttng_session *session);
 void lttng_handle_pending_statedump(void *owner);
 struct cds_list_head *_lttng_get_sessions(void);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _LTTNG_UST_EVENTS_H */
This page took 0.023532 seconds and 4 git commands to generate.