Fix: liblttng-ctl comm: lttng_channel is not packed
[lttng-tools.git] / include / lttng / channel-internal.h
index 04b19322f96ea35f1340b6e5d6f74ac569ca3246..c3e1230635558fad9df00c711b7f6d7c5b957616 100644 (file)
@@ -9,6 +9,11 @@
 #define LTTNG_CHANNEL_INTERNAL_H
 
 #include <common/macros.h>
+#include <lttng/channel.h>
+#include <lttng/lttng-error.h>
+
+struct lttng_dynamic_buffer;
+struct lttng_buffer_view;
 
 struct lttng_channel_extended {
        uint64_t discarded_events;
@@ -17,4 +22,45 @@ struct lttng_channel_extended {
        int64_t blocking_timeout;
 } LTTNG_PACKED;
 
+struct lttng_channel_comm {
+       /* Includes terminator `\0`. */
+       uint32_t name_len;
+       uint8_t enabled;
+
+       /* attr */
+       int8_t overwrite;
+       uint64_t subbuf_size;
+       uint64_t num_subbuf;
+       uint32_t switch_timer_interval;
+       uint32_t read_timer_interval;
+       uint8_t output;
+       uint64_t tracefile_size;
+       uint64_t tracefile_count;
+       uint32_t live_timer_interval;
+
+       /* Extended struct */
+       uint64_t discarded_events;
+       uint64_t lost_packets;
+       uint64_t monitor_timer_interval;
+       int64_t blocking_timeout;
+} LTTNG_PACKED;
+
+struct lttng_channel *lttng_channel_create_internal(void);
+
+struct lttng_channel *lttng_channel_copy(const struct lttng_channel *src);
+
+ssize_t lttng_channel_create_from_buffer(const struct lttng_buffer_view *view,
+               struct lttng_channel **event);
+
+int lttng_channel_serialize(struct lttng_channel *channel,
+               struct lttng_dynamic_buffer *buf);
+
+void lttng_channel_set_default_extended_attr(struct lttng_domain *domain,
+               struct lttng_channel_extended *extended_attr);
+
+enum lttng_error_code lttng_channels_create_and_flatten_from_buffer(
+               const struct lttng_buffer_view *view,
+               unsigned int count,
+               struct lttng_channel **channels);
+
 #endif /* LTTNG_CHANNEL_INTERNAL_H */
This page took 0.024208 seconds and 4 git commands to generate.