X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libringbuffer%2Ffrontend_types.h;h=43300f6a74ddec2324fbfb9f0d0c6dd8bcbb1786;hb=fb31eb73d8a4a6d9784ed5c335b7fa3b9684108c;hp=bf4b4185e2368945494dd39e3df86efed5ff1aa8;hpb=a9ff648cc4cc06d28b522d705c467d45ab916a9d;p=lttng-ust.git diff --git a/libringbuffer/frontend_types.h b/libringbuffer/frontend_types.h index bf4b4185..43300f6a 100644 --- a/libringbuffer/frontend_types.h +++ b/libringbuffer/frontend_types.h @@ -28,6 +28,7 @@ * See ring_buffer_frontend.c for more information on wait-free algorithms. */ +#include #include #include /* for timer_t */ @@ -70,7 +71,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 +203,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)