X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=libringbuffer%2Fbackend.h;h=4ecbfe53886a28bb36a2b6c46eeea59702a84a18;hb=f574bfb4d81b26d3cfc0243868d138e33470a950;hp=1364d383f4006b7c9db851aeb0813d8e55cbd2b6;hpb=a3492932cffa2c9dfbc9416792b20ce763708fc1;p=lttng-ust.git diff --git a/libringbuffer/backend.h b/libringbuffer/backend.h index 1364d383..4ecbfe53 100644 --- a/libringbuffer/backend.h +++ b/libringbuffer/backend.h @@ -1,31 +1,18 @@ -#ifndef _LTTNG_RING_BUFFER_BACKEND_H -#define _LTTNG_RING_BUFFER_BACKEND_H - /* - * libringbuffer/backend.h - * - * Ring buffer backend (API). + * SPDX-License-Identifier: LGPL-2.1-only * * Copyright (C) 2011-2012 Mathieu Desnoyers * - * 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 + * Ring buffer backend (API). * * Credits to Steven Rostedt for proposing to use an extra-subbuffer owned by * the reader in flight recorder mode. */ +#ifndef _LTTNG_RING_BUFFER_BACKEND_H +#define _LTTNG_RING_BUFFER_BACKEND_H + +#include #include /* Internal helpers */ @@ -36,10 +23,12 @@ /* Ring buffer backend access (read/write) */ +__attribute__((visibility("hidden"))) extern size_t lib_ring_buffer_read(struct lttng_ust_lib_ring_buffer_backend *bufb, size_t offset, void *dest, size_t len, struct lttng_ust_shm_handle *handle); +__attribute__((visibility("hidden"))) extern int lib_ring_buffer_read_cstr(struct lttng_ust_lib_ring_buffer_backend *bufb, size_t offset, void *dest, size_t len, struct lttng_ust_shm_handle *handle); @@ -50,10 +39,13 @@ extern int lib_ring_buffer_read_cstr(struct lttng_ust_lib_ring_buffer_backend *b * it's never on a page boundary, it's safe to write directly to this address, * as long as the write is never bigger than a page size. */ +__attribute__((visibility("hidden"))) extern void * lib_ring_buffer_offset_address(struct lttng_ust_lib_ring_buffer_backend *bufb, size_t offset, struct lttng_ust_shm_handle *handle); + +__attribute__((visibility("hidden"))) extern void * lib_ring_buffer_read_offset_address(struct lttng_ust_lib_ring_buffer_backend *bufb, size_t offset, @@ -71,7 +63,7 @@ lib_ring_buffer_read_offset_address(struct lttng_ust_lib_ring_buffer_backend *bu * backend-specific memcpy() operation. Calls the slow path (_ring_buffer_write) * if copy is crossing a page boundary. */ -static inline +static inline __attribute__((always_inline)) void lib_ring_buffer_write(const struct lttng_ust_lib_ring_buffer_config *config, struct lttng_ust_lib_ring_buffer_ctx *ctx, const void *src, size_t len) @@ -106,7 +98,7 @@ void lib_ring_buffer_write(const struct lttng_ust_lib_ring_buffer_config *config * terminating character is found in @src. Returns the number of bytes * copied. Does *not* terminate @dest with NULL terminating character. */ -static inline +static inline __attribute__((always_inline)) size_t lib_ring_buffer_do_strcpy(const struct lttng_ust_lib_ring_buffer_config *config, char *dest, const char *src, size_t len) { @@ -142,7 +134,7 @@ size_t lib_ring_buffer_do_strcpy(const struct lttng_ust_lib_ring_buffer_config * * character is found in @src before @len - 1 characters are copied, pad * the buffer with @pad characters (e.g. '#'). */ -static inline +static inline __attribute__((always_inline)) void lib_ring_buffer_strcpy(const struct lttng_ust_lib_ring_buffer_config *config, struct lttng_ust_lib_ring_buffer_ctx *ctx, const char *src, size_t len, int pad) @@ -204,7 +196,7 @@ unsigned long lib_ring_buffer_get_records_unread( struct lttng_ust_lib_ring_buffer_backend *bufb = &buf->backend; unsigned long records_unread = 0, sb_bindex; unsigned int i; - struct channel *chan; + struct lttng_ust_lib_ring_buffer_channel *chan; chan = shmp(handle, bufb->chan); if (!chan)