X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-rb-clients.h;h=9cec72e8dc53b887fd2fba9029e5ba79a71a30d4;hb=6ba6fd60507f8e045bdc4f1be14e9d99c6a15f7f;hp=85d4e1bcbfe1477cd85a340af3bb750367bbcd0c;hpb=fca361e81cbb39f076182e9d2c6dd2c4c8c25b5d;p=lttng-ust.git diff --git a/liblttng-ust/lttng-rb-clients.h b/liblttng-ust/lttng-rb-clients.h index 85d4e1bc..9cec72e8 100644 --- a/liblttng-ust/lttng-rb-clients.h +++ b/liblttng-ust/lttng-rb-clients.h @@ -1,48 +1,94 @@ -#ifndef _LTTNG_RB_CLIENT_H -#define _LTTNG_RB_CLIENT_H - /* - * Copyright (c) 2013 - 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. + * 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 + * Copyright (C) 2013 Mathieu Desnoyers */ +#ifndef _LTTNG_RB_CLIENT_H +#define _LTTNG_RB_CLIENT_H + +#include +#include "../libringbuffer/ringbuffer-config.h" + struct lttng_ust_client_lib_ring_buffer_client_cb { struct lttng_ust_lib_ring_buffer_client_cb parent; int (*timestamp_begin) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *timestamp_begin); int (*timestamp_end) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *timestamp_end); int (*events_discarded) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *events_discarded); int (*content_size) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *content_size); int (*packet_size) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *packet_size); int (*stream_id) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *stream_id); int (*current_timestamp) (struct lttng_ust_lib_ring_buffer *buf, - struct lttng_ust_shm_handle *handle, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *ts); + int (*sequence_number) (struct lttng_ust_lib_ring_buffer *buf, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *seq); + int (*instance_id) (struct lttng_ust_lib_ring_buffer *buf, + struct lttng_ust_lib_ring_buffer_channel *chan, uint64_t *id); }; +/* + * The ring buffer clients init/exit symbols are private ABI for + * liblttng-ust-ctl, which is why they are not hidden. + */ +void lttng_ust_ring_buffer_clients_init(void); +void lttng_ust_ring_buffer_clients_exit(void); + +void lttng_ring_buffer_client_overwrite_init(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_overwrite_rt_init(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_discard_init(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_discard_rt_init(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_metadata_client_init(void) + __attribute__((visibility("hidden"))); + + +void lttng_ring_buffer_client_overwrite_exit(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_overwrite_rt_exit(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_discard_exit(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_client_discard_rt_exit(void) + __attribute__((visibility("hidden"))); + +void lttng_ring_buffer_metadata_client_exit(void) + __attribute__((visibility("hidden"))); + + +void lttng_ust_fixup_ring_buffer_client_overwrite_tls(void) + __attribute__((visibility("hidden"))); + +void lttng_ust_fixup_ring_buffer_client_overwrite_rt_tls(void) + __attribute__((visibility("hidden"))); + +void lttng_ust_fixup_ring_buffer_client_discard_tls(void) + __attribute__((visibility("hidden"))); + +void lttng_ust_fixup_ring_buffer_client_discard_rt_tls(void) + __attribute__((visibility("hidden"))); + #endif /* _LTTNG_RB_CLIENT_H */