X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lib%2Fringbuffer%2Fconfig.h;h=67caba0646acffcfa1b99c354f8f1dc7dccc3980;hb=165eee701dce7f180d958125c1794459280fe64d;hp=5a9f8962070e49af5884bdb2e0478e9f5bdc07ba;hpb=f3bc08c50e1b302bceea699027d889fd6d9af525;p=lttng-modules.git diff --git a/lib/ringbuffer/config.h b/lib/ringbuffer/config.h index 5a9f8962..67caba06 100644 --- a/lib/ringbuffer/config.h +++ b/lib/ringbuffer/config.h @@ -1,19 +1,33 @@ -#ifndef _LINUX_RING_BUFFER_CONFIG_H -#define _LINUX_RING_BUFFER_CONFIG_H +#ifndef _LIB_RING_BUFFER_CONFIG_H +#define _LIB_RING_BUFFER_CONFIG_H /* - * linux/ringbuffer/config.h - * - * Copyright (C) 2010 - Mathieu Desnoyers + * lib/ringbuffer/config.h * * Ring buffer configuration header. Note: after declaring the standard inline * functions, clients should also include linux/ringbuffer/api.h. * - * Dual LGPL v2.1/GPL v2 license. + * Copyright (C) 2010-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 */ #include #include +#include "../align.h" +#include "../../lttng-tracer-core.h" struct lib_ring_buffer; struct channel; @@ -33,9 +47,7 @@ struct lib_ring_buffer_client_cb { u64 (*ring_buffer_clock_read) (struct channel *chan); size_t (*record_header_size) (const struct lib_ring_buffer_config *config, struct channel *chan, size_t offset, - size_t data_size, size_t *pre_header_padding, - unsigned int rflags, struct lib_ring_buffer_ctx *ctx); /* Slow path only, at subbuffer switch */ @@ -195,7 +207,7 @@ struct lib_ring_buffer_ctx { * @ctx: ring buffer context to initialize * @chan: channel * @priv: client private data - * @data_size: size of record data payload + * @data_size: size of record data payload. It must be greater than 0. * @largest_align: largest alignment within data payload types * @cpu: processor id */ @@ -210,6 +222,7 @@ void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, ctx->data_size = data_size; ctx->largest_align = largest_align; ctx->cpu = cpu; + ctx->rflags = 0; } /* @@ -229,6 +242,10 @@ void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, #define RING_BUFFER_RFLAG_FULL_TSC (1U << 0) #define RING_BUFFER_RFLAG_END (1U << 1) +#ifndef LTTNG_TRACER_CORE_H +#error "lttng-tracer-core.h is needed for RING_BUFFER_ALIGN define" +#endif + /* * We need to define RING_BUFFER_ALIGN_ATTR so it is known early at * compile-time. We have to duplicate the "config->align" information and the @@ -295,4 +312,4 @@ int lib_ring_buffer_check_config(const struct lib_ring_buffer_config *config, #include "../../wrapper/ringbuffer/vatomic.h" -#endif /* _LINUX_RING_BUFFER_CONFIG_H */ +#endif /* _LIB_RING_BUFFER_CONFIG_H */