scope-exit: Clarify scope_exit noexcept requirement
[lttng-tools.git] / include / lttng / channel.h
index e770f6835a491f35c3dbdea7b4705ad65afefbdc..3d175b8a4b7312fcc94349a740d2cc81831b486a 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,9 @@
 
 #include <lttng/domain.h>
 #include <lttng/event.h>
+#include <lttng/lttng-export.h>
+
+#include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -30,19 +23,19 @@ extern "C" {
  *
  * The structures should be initialized to zero before use.
  */
-#define LTTNG_CHANNEL_ATTR_PADDING1        LTTNG_SYMBOL_NAME_LEN + 12
+#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, power of 2 */
-       uint64_t num_subbuf;                /* power of 2 */
+       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 */
-       enum lttng_event_output output;     /* splice, mmap */
+       unsigned int read_timer_interval; /* usec */
+       enum lttng_event_output output; /* splice, mmap */
        /* LTTng 2.1 padding limit */
-       uint64_t tracefile_size;            /* bytes */
-       uint64_t tracefile_count;           /* number of tracefiles */
+       uint64_t tracefile_size; /* bytes */
+       uint64_t tracefile_count; /* number of tracefiles */
        /* LTTng 2.3 padding limit */
-       unsigned int live_timer_interval;   /* usec */
+       unsigned int live_timer_interval; /* usec */
        /* LTTng 2.7 padding limit */
        uint32_t align_to_64;
        union {
@@ -58,7 +51,7 @@ struct lttng_channel_attr {
  *
  * The structures should be initialized to zero before use.
  */
-#define LTTNG_CHANNEL_PADDING1             16
+#define LTTNG_CHANNEL_PADDING1 16
 struct lttng_channel {
        char name[LTTNG_SYMBOL_NAME_LEN];
        uint32_t enabled;
@@ -67,6 +60,14 @@ struct lttng_channel {
        char padding[LTTNG_CHANNEL_PADDING1];
 };
 
+/*
+ */
+LTTNG_EXPORT extern struct lttng_channel *lttng_channel_create(struct lttng_domain *domain);
+
+/*
+ */
+LTTNG_EXPORT extern void lttng_channel_destroy(struct lttng_channel *channel);
+
 /*
  * List the channel(s) of a session.
  *
@@ -75,8 +76,8 @@ struct lttng_channel {
  * Return the size (number of entries) of the "lttng_channel" array. Caller
  * must free channels. On error, a negative LTTng error code is returned.
  */
-extern int lttng_list_channels(struct lttng_handle *handle,
-               struct lttng_channel **channels);
+LTTNG_EXPORT extern int lttng_list_channels(struct lttng_handle *handle,
+                                           struct lttng_channel **channels);
 
 /*
  * Create or enable a channel.
@@ -85,8 +86,8 @@ extern int lttng_list_channels(struct lttng_handle *handle,
  *
  * Return 0 on success else a negative LTTng error code.
  */
-extern int lttng_enable_channel(struct lttng_handle *handle,
-               struct lttng_channel *chan);
+LTTNG_EXPORT extern int lttng_enable_channel(struct lttng_handle *handle,
+                                            struct lttng_channel *chan);
 
 /*
  * Disable channel.
@@ -95,8 +96,7 @@ extern int lttng_enable_channel(struct lttng_handle *handle,
  *
  * Return 0 on success else a negative LTTng error code.
  */
-extern int lttng_disable_channel(struct lttng_handle *handle,
-               const char *name);
+LTTNG_EXPORT extern int lttng_disable_channel(struct lttng_handle *handle, const char *name);
 
 /*
  * Set the default channel attributes for a specific domain and an allocated
@@ -104,8 +104,36 @@ extern int lttng_disable_channel(struct lttng_handle *handle,
  *
  * If one or both arguments are NULL, nothing happens.
  */
-extern void lttng_channel_set_default_attr(struct lttng_domain *domain,
-               struct lttng_channel_attr *attr);
+LTTNG_EXPORT 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.
+ */
+LTTNG_EXPORT 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.
+ */
+LTTNG_EXPORT extern int lttng_channel_get_lost_packet_count(struct lttng_channel *chan,
+                                                           uint64_t *lost_packets);
+
+LTTNG_EXPORT extern int lttng_channel_get_monitor_timer_interval(struct lttng_channel *chan,
+                                                                uint64_t *monitor_timer_interval);
+
+LTTNG_EXPORT extern int lttng_channel_set_monitor_timer_interval(struct lttng_channel *chan,
+                                                                uint64_t monitor_timer_interval);
+
+LTTNG_EXPORT extern int lttng_channel_get_blocking_timeout(struct lttng_channel *chan,
+                                                          int64_t *blocking_timeout);
+
+LTTNG_EXPORT extern int lttng_channel_set_blocking_timeout(struct lttng_channel *chan,
+                                                          int64_t blocking_timeout);
 
 #ifdef __cplusplus
 }
This page took 0.0279 seconds and 4 git commands to generate.