Move to kernel style SPDX license identifiers
[lttng-ust.git] / libringbuffer / frontend_types.h
index bf4b4185e2368945494dd39e3df86efed5ff1aa8..2791c18fd184417e477aefea8fbd6823dcd19adc 100644 (file)
@@ -1,33 +1,17 @@
-#ifndef _LTTNG_RING_BUFFER_FRONTEND_TYPES_H
-#define _LTTNG_RING_BUFFER_FRONTEND_TYPES_H
-
 /*
- * libringbuffer/frontend_types.h
- *
- * Ring Buffer Library Synchronization Header (types).
+ * SPDX-License-Identifier: LGPL-2.1-only
  *
  * Copyright (C) 2005-2012 Mathieu Desnoyers <mathieu.desnoyers@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 as published by the Free Software Foundation; only
- * version 2.1 of the License.
- *
- * 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
- *
- * Author:
- *     Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Ring Buffer Library Synchronization Header (types).
  *
  * See ring_buffer_frontend.c for more information on wait-free algorithms.
  */
 
+#ifndef _LTTNG_RING_BUFFER_FRONTEND_TYPES_H
+#define _LTTNG_RING_BUFFER_FRONTEND_TYPES_H
+
+#include <stdint.h>
 #include <string.h>
 #include <time.h>      /* for timer_t */
 
@@ -70,7 +54,13 @@ struct channel {
        size_t priv_data_offset;
        unsigned int nr_streams;                /* Number of streams */
        struct lttng_ust_shm_handle *handle;
-       char padding[RB_CHANNEL_PADDING];
+       /* Extended options. */
+       union {
+               struct {
+                       int32_t blocking_timeout_ms;
+               } s;
+               char padding[RB_CHANNEL_PADDING];
+       } u;
        /*
         * Associated backend contains a variable-length array. Needs to
         * be last member.
@@ -196,6 +186,20 @@ struct lttng_ust_lib_ring_buffer {
 
        DECLARE_SHMP(struct commit_counters_cold, commit_cold);
                                        /* Commit count per sub-buffer */
+       DECLARE_SHMP(uint64_t, ts_end); /*
+                                        * timestamp_end per sub-buffer.
+                                        * Time is sampled by the
+                                        * switch_*_end() callbacks
+                                        * which are the last space
+                                        * reservation performed in the
+                                        * sub-buffer before it can be
+                                        * fully committed and
+                                        * delivered. This time value is
+                                        * then read by the deliver
+                                        * callback, performed by the
+                                        * last commit before the buffer
+                                        * becomes readable.
+                                        */
        long active_readers;            /*
                                         * Active readers count
                                         * standard atomic access (shared)
This page took 0.023658 seconds and 4 git commands to generate.