configure: add --enable-Werror
[lttng-tools.git] / include / lttng / channel.h
index 6ab0c7b62a5a0a5bd4ad867b91ce0996f42ef27b..f3241ed30847af1886801ea728060a51ef2b2813 100644 (file)
@@ -1,18 +1,8 @@
 /*
- * Copyright (C) 2014 David Goulet <dgoulet@efficios.com>
+ * Copyright (C) 2014 David Goulet <dgoulet@efficios.com>
  *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License, version 2.1 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: LGPL-2.1-only
  *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #ifndef LTTNG_CHANNEL_H
@@ -20,6 +10,7 @@
 
 #include <lttng/domain.h>
 #include <lttng/event.h>
+#include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -32,8 +23,8 @@ extern "C" {
  */
 #define LTTNG_CHANNEL_ATTR_PADDING1        LTTNG_SYMBOL_NAME_LEN + 12
 struct lttng_channel_attr {
-       int overwrite;                      /* 1: overwrite, 0: discard */
-       uint64_t subbuf_size;               /* bytes */
+       int overwrite;                      /* -1: session default, 1: overwrite, 0: discard */
+       uint64_t subbuf_size;               /* bytes, power of 2 */
        uint64_t num_subbuf;                /* power of 2 */
        unsigned int switch_timer_interval; /* usec */
        unsigned int read_timer_interval;   /* usec */
@@ -43,6 +34,12 @@ struct lttng_channel_attr {
        uint64_t tracefile_count;           /* number of tracefiles */
        /* LTTng 2.3 padding limit */
        unsigned int live_timer_interval;   /* usec */
+       /* LTTng 2.7 padding limit */
+       uint32_t align_to_64;
+       union {
+               uint64_t padding;
+               void *ptr;
+       } extended;
 
        char padding[LTTNG_CHANNEL_ATTR_PADDING1];
 };
@@ -61,6 +58,14 @@ struct lttng_channel {
        char padding[LTTNG_CHANNEL_PADDING1];
 };
 
+/*
+ */
+extern struct lttng_channel *lttng_channel_create(struct lttng_domain *domain);
+
+/*
+ */
+extern void lttng_channel_destroy(struct lttng_channel *channel);
+
 /*
  * List the channel(s) of a session.
  *
@@ -101,6 +106,34 @@ extern int lttng_disable_channel(struct lttng_handle *handle,
 extern void lttng_channel_set_default_attr(struct lttng_domain *domain,
                struct lttng_channel_attr *attr);
 
+/*
+ * Get the discarded event count of a specific LTTng channel.
+ *
+ * Returns 0 on success, or a negative LTTng error code on error.
+ */
+extern int lttng_channel_get_discarded_event_count(struct lttng_channel *chan,
+               uint64_t *discarded_events);
+
+/*
+ * Get the lost packet count of a specific LTTng channel.
+ *
+ * Returns 0 on success, or a negative LTTng error code on error.
+ */
+extern int lttng_channel_get_lost_packet_count(struct lttng_channel *chan,
+               uint64_t *lost_packets);
+
+extern int lttng_channel_get_monitor_timer_interval(struct lttng_channel *chan,
+               uint64_t *monitor_timer_interval);
+
+extern int lttng_channel_set_monitor_timer_interval(struct lttng_channel *chan,
+               uint64_t monitor_timer_interval);
+
+extern int lttng_channel_get_blocking_timeout(struct lttng_channel *chan,
+               int64_t *blocking_timeout);
+
+extern int lttng_channel_set_blocking_timeout(struct lttng_channel *chan,
+               int64_t blocking_timeout);
+
 #ifdef __cplusplus
 }
 #endif
This page took 0.0243 seconds and 4 git commands to generate.