#include <lttng/ust-error.h>
#include <lttng/ust-compiler.h>
#include <lttng/ust-ctl.h>
-#include "ust-helper.h"
#ifndef LTTNG_PACKED
#error "LTTNG_PACKED should be defined"
* struct lttng_ust_field_iter field.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_create_unix_sock(const char *pathname);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_connect_unix_sock(const char *pathname,
long timeout);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_accept_unix_sock(int sock);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_listen_unix_sock(int sock);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_close_unix_sock(int sock);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
ssize_t ustcomm_recv_unix_sock(int sock, void *buf, size_t len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ustcomm_send_unix_sock(int sock, const void *buf, size_t len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ustcomm_send_fds_unix_sock(int sock, int *fds, size_t nb_fd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ustcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
const char *ustcomm_get_readable_code(int code);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_send_app_msg(int sock, struct ustcomm_ust_msg *lum);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_recv_app_reply(int sock, struct ustcomm_ust_reply *lur,
uint32_t expected_handle, uint32_t expected_cmd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_send_app_cmd(int sock,
struct ustcomm_ust_msg *lum,
struct ustcomm_ust_reply *lur);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_recv_fd(int sock);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
ssize_t ustcomm_recv_channel_from_sessiond(int sock,
void **chan_data, uint64_t len, int *wakeup_fd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_recv_stream_from_sessiond(int sock,
uint64_t *memory_map_size,
int *shm_fd, int *wakeup_fd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ustcomm_recv_event_notifier_notif_fd_from_sessiond(int sock,
int *event_notifier_notif_fd);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
ssize_t ustcomm_recv_counter_from_sessiond(int sock,
void **counter_data, uint64_t len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_recv_counter_shm_from_sessiond(int sock,
int *shm_fd);
* Returns 0 on success, negative error value on error.
* Returns -EPIPE or -ECONNRESET if other end has hung up.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_send_reg_msg(int sock,
enum ustctl_socket_type type,
uint32_t bits_per_long,
* Returns 0 on success, negative error value on error.
* Returns -EPIPE or -ECONNRESET if other end has hung up.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_register_event(int sock,
struct lttng_session *session,
int session_objd, /* session descriptor */
* Returns 0 on success, negative error value on error.
* Returns -EPIPE or -ECONNRESET if other end has hung up.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_register_enum(int sock,
int session_objd, /* session descriptor */
const char *enum_name, /* enum name (input) */
* Returns 0 on success, negative error value on error.
* Returns -EPIPE or -ECONNRESET if other end has hung up.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_register_channel(int sock,
struct lttng_session *session,
int session_objd, /* session descriptor */
uint32_t *chan_id, /* channel id (output) */
int *header_type); /* header type (output) */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ustcomm_setsockopt_rcv_timeout(int sock, unsigned int msec);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ustcomm_setsockopt_snd_timeout(int sock, unsigned int msec);
#endif /* _LTTNG_UST_COMM_H */
#include <lttng/ust-events.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_ust_dynamic_type_choices(size_t *nr_choices,
const struct lttng_ust_event_field ***choices);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
const struct lttng_ust_event_field *lttng_ust_dynamic_type_field(int64_t value);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
const struct lttng_ust_event_field *lttng_ust_dynamic_type_tag_field(void);
#endif /* _LTTNG_UST_DYNAMIC_TYPE_H */
#define LTTNG_UST_CALLER_IP() __builtin_return_address(0)
#endif /* #else #if defined(__PPC__) && !defined(__PPC64__) */
-/*
- * LTTNG_HIDDEN: set the hidden attribute for internal functions
- * On Windows, symbols are local unless explicitly exported,
- * see https://gcc.gnu.org/wiki/Visibility
- */
-#if defined(_WIN32) || defined(__CYGWIN__)
-#define LTTNG_HIDDEN
-#else
-#define LTTNG_HIDDEN __attribute__((visibility("hidden")))
-#endif
-
#endif /* _LTTNG_UST_HELPER_H */
#include <stdlib.h>
#include <sys/uio.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
ssize_t ust_patient_write(int fd, const void *buf, size_t count);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ust_patient_writev(int fd, struct iovec *iov, int iovcnt);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
ssize_t ust_patient_send(int fd, const void *buf, size_t count, int flags);
#endif /* _LTTNG_SHARE_H */
#include <stdarg.h>
#include <stddef.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ust_safe_vsnprintf(char *str, size_t n, const char *fmt, va_list ap);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int ust_safe_snprintf(char *str, size_t n, const char *fmt, ...)
__attribute__ ((format (printf, 3, 4)));
#include <stdbool.h>
#include <stdio.h>
#include <ust-share.h>
-#include "ust-helper.h"
#include "ust-tid.h"
#include "ust-snprintf.h"
UST_ERR_LOGLEVEL_DEBUG,
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern volatile enum ust_err_loglevel ust_err_loglevel;
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void ust_err_init(void);
#ifdef LTTNG_UST_DEBUG
#include <stdint.h>
#include <lttng/ust-config.h>
#include "counter-types.h"
-#include "ust-helper.h"
/* max_nr_elem is for each dimension. */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lib_counter *lttng_counter_create(const struct lib_counter_config *config,
size_t nr_dimensions,
const size_t *max_nr_elem,
int nr_counter_cpu_fds,
const int *counter_cpu_fds,
bool is_daemon);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_counter_destroy(struct lib_counter *counter);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_counter_set_global_shm(struct lib_counter *counter, int fd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_counter_set_cpu_shm(struct lib_counter *counter, int cpu, int fd);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_counter_get_global_shm(struct lib_counter *counter, int *fd, size_t *len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_counter_get_cpu_shm(struct lib_counter *counter, int cpu, int *fd, size_t *len);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_counter_read(const struct lib_counter_config *config,
struct lib_counter *counter,
const size_t *dimension_indexes,
int cpu, int64_t *value,
bool *overflow, bool *underflow);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_counter_aggregate(const struct lib_counter_config *config,
struct lib_counter *counter,
const size_t *dimension_indexes,
int64_t *value,
bool *overflow, bool *underflow);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_counter_clear(const struct lib_counter_config *config,
struct lib_counter *counter,
const size_t *dimension_indexes);
#include <usterr-signal-safe.h>
#include <urcu/compiler.h>
#include "shm_types.h"
-#include "ust-helper.h"
/* lttng_counter_handle_create - for UST. */
extern
int lttng_counter_handle_add_cpu(struct lttng_counter_shm_handle *handle,
int shm_fd, uint32_t cpu_nr,
uint64_t memory_map_size);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
unsigned int lttng_counter_handle_get_nr_cpus(struct lttng_counter_shm_handle *handle);
/*
#define lttng_counter_set_shmp(ref, src) _lttng_counter_set_shmp(&(ref)._ref, src)
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_counter_shm_object_table *lttng_counter_shm_object_table_create(size_t max_nb_obj);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct lttng_counter_shm_object *lttng_counter_shm_object_table_alloc(struct lttng_counter_shm_object_table *table,
size_t memory_map_size,
enum lttng_counter_shm_object_type type,
const int cpu_fd,
int cpu);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct lttng_counter_shm_object *lttng_counter_shm_object_table_append_shm(struct lttng_counter_shm_object_table *table,
int shm_fd, size_t memory_map_size);
+
/* mem ownership is passed to lttng_counter_shm_object_table_append_mem(). */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_counter_shm_object *lttng_counter_shm_object_table_append_mem(struct lttng_counter_shm_object_table *table,
void *mem, size_t memory_map_size);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_counter_shm_object_table_destroy(struct lttng_counter_shm_object_table *table, int consumer);
/*
* *NOT* multithread-safe (should be protected by mutex).
* Returns a -1, -1 tuple on error.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_counter_shm_ref lttng_counter_zalloc_shm(struct lttng_counter_shm_object *obj, size_t len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_counter_align_shm(struct lttng_counter_shm_object *obj, size_t align);
static inline
#ifndef _LIBCOUNTER_SMP_H
#define _LIBCOUNTER_SMP_H
-#include "ust-helper.h"
-
/*
* 4kB of per-cpu data available.
*/
#define LTTNG_COUNTER_PER_CPU_MEM_SIZE 4096
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int __lttng_counter_num_possible_cpus;
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void _lttng_counter_get_num_possible_cpus(void);
static inline
extern void lttng_ring_buffer_client_discard_exit(void);
extern void lttng_ring_buffer_client_discard_rt_exit(void);
extern void lttng_ring_buffer_metadata_client_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_32_modular_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_32_modular_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_64_modular_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_64_modular_exit(void);
int ustctl_release_handle(int sock, int handle)
#define _LTTNG_UST_CONTEXT_INTERNAL_H
#include <lttng/ust-events.h>
-#include "ust-helper.h"
#include "ust-events-internal.h"
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_context_init_all(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_attach_context(struct lttng_ust_abi_context *context_param,
union lttng_ust_abi_args *uargs,
struct lttng_ctx **ctx, struct lttng_session *session);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_find_context(struct lttng_ctx *ctx, const char *name);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_get_context_index(struct lttng_ctx *ctx, const char *name);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_update(struct lttng_ctx *ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_remove_context_field(struct lttng_ctx **ctx_p,
struct lttng_ctx_field *field);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_destroy_context(struct lttng_ctx *ctx);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_context_add_rcu(struct lttng_ctx **ctx_p,
const struct lttng_ctx_field *f);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_context_is_app(const char *name);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_context_vtid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vpid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_cgroup_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_ipc_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_mnt_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_net_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_pid_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_user_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_uts_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_time_ns_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vuid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_veuid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vsuid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vgid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vegid_reset(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_context_vsgid_reset(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_pthread_id_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_procname_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_ip_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_cpu_id_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_dyntest_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_time_ns_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vuid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_veuid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vsuid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vgid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vegid_to_ctx(struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_add_vsgid_to_ctx(struct lttng_ctx **ctx);
#endif /* _LTTNG_UST_CONTEXT_INTERNAL_H */
#include <stddef.h>
#include <lttng/ust-events.h>
-#include "ust-helper.h"
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_context_set_event_notifier_group_provider(const char *name,
size_t (*get_size)(struct lttng_ctx_field *field, size_t offset),
void (*record)(struct lttng_ctx_field *field,
#include <time.h>
#include <sys/syscall.h>
-#include "ust-helper.h"
-
#ifdef __cplusplus
extern "C" {
#endif
* (returns EINTR).
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lttng_ust_compat_futex_noasync(int32_t *uaddr, int op, int32_t val,
const struct timespec *timeout, int32_t *uaddr2, int32_t val3);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int lttng_ust_compat_futex_async(int32_t *uaddr, int op, int32_t val,
const struct timespec *timeout, int32_t *uaddr2, int32_t val3);
#ifndef _COMPAT_GETENV_H
#define _COMPAT_GETENV_H
-#include "ust-helper.h"
-
/*
* Always add the lttng-ust environment variables using the lttng_ust_getenv()
* infrastructure rather than using getenv() directly. This ensures that we
* lttng-ust)
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
char *lttng_ust_getenv(const char *name);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_getenv_init(void);
#endif /* _COMPAT_GETENV_H */
#include "context-internal.h"
#include "lttng-bytecode.h"
#include "ust-events-internal.h"
+#include "ust-helper.h"
static int lttng_fls(int val)
{
#include "lttng-hash-helper.h"
#include "string-utils.h"
#include "ust-events-internal.h"
+#include "ust-helper.h"
/*
* Number of merge points for hash table size. Hash table initialized to
#include "context-internal.h"
#include "lttng-bytecode.h"
#include "ust-events-internal.h"
+#include "ust-helper.h"
static const char *opnames[] = {
[ BYTECODE_OP_UNKNOWN ] = "UNKNOWN",
} u;
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
const char *lttng_bytecode_print_op(enum bytecode_op op);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_bytecode_filter_sync_state(struct lttng_ust_bytecode_runtime *runtime);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_bytecode_capture_sync_state(struct lttng_ust_bytecode_runtime *runtime);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_bytecode_validate(struct bytecode_runtime *bytecode);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_bytecode_specialize(const struct lttng_ust_event_desc *event_desc,
struct bytecode_runtime *bytecode);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
uint64_t lttng_bytecode_filter_interpret_false(void *filter_data,
const char *filter_stack_data);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
uint64_t lttng_bytecode_filter_interpret(void *filter_data,
const char *filter_stack_data);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
uint64_t lttng_bytecode_capture_interpret_false(void *capture_data,
const char *capture_stack_data,
struct lttng_interpreter_output *output);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
uint64_t lttng_bytecode_capture_interpret(void *capture_data,
const char *capture_stack_data,
struct lttng_interpreter_output *output);
#include <lttng/bug.h>
#include <lttng/ringbuffer-config.h>
#include <usterr-signal-safe.h>
-#include <ust-helper.h>
/*
* The longuest possible namespace proc path is with the cgroup ns
struct lttng_ctx_value;
struct lttng_ust_event_notifier;
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int ust_lock(void) __attribute__ ((warn_unused_result));
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void ust_lock_nocheck(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void ust_unlock(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_fixup_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_event_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_vtid_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_procname_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_cgroup_ns_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_ipc_ns_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_net_ns_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_time_ns_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_fixup_uts_ns_tls(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_fixup_fd_tracker_tls(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
const char *lttng_ust_obj_get_name(int id);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_get_notify_socket(void *owner);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
char* lttng_ust_sockinfo_get_procname(void *owner);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_sockinfo_session_enabled(void *owner);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
ssize_t lttng_ust_read(int fd, void *buf, size_t len);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
size_t lttng_ust_dummy_get_size(struct lttng_ctx_field *field, size_t offset);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_dummy_record(struct lttng_ctx_field *field,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
struct lttng_channel *chan);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_dummy_get_value(struct lttng_ctx_field *field,
struct lttng_ctx_value *value);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_event_notifier_notification_send(
struct lttng_ust_event_notifier *event_notifier,
const char *stack_data);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_counter_transport *lttng_counter_transport_find(const char *name);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_counter_transport_register(struct lttng_counter_transport *transport);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_counter_transport_unregister(struct lttng_counter_transport *transport);
#ifdef HAVE_PERF_EVENT
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_fixup_perf_counter_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_perf_lock(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_perf_unlock(void);
#else /* #ifdef HAVE_PERF_EVENT */
static inline
#include <urcu/compiler.h>
#include <urcu/list.h>
-#include <ust-helper.h>
#include <lttng/tracepoint.h>
#include <lttng/ust-abi.h>
#include <lttng/ust-error.h>
#include "string-utils.h"
#include "ust-events-internal.h"
#include "context-internal.h"
+#include "ust-helper.h"
#define OBJ_NAME_LEN 16
return ret;
}
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_release_event_notifier_group_error_counter(int objd)
{
struct lttng_counter *counter = objd_private(objd);
extern void lttng_ring_buffer_client_discard_exit(void);
extern void lttng_ring_buffer_client_discard_rt_exit(void);
extern void lttng_ring_buffer_metadata_client_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_32_modular_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_32_modular_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_64_modular_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lttng_counter_client_percpu_64_modular_exit(void);
static char *get_map_shm(struct sock_info *sock_info);
}
-LTTNG_HIDDEN
char* lttng_ust_sockinfo_get_procname(void *owner)
{
struct sock_info *info = owner;
#include "lttng-tracer-core.h"
#include "lttng-ust-elf.h"
+#include "ust-helper.h"
#define BUF_LEN 4096
#include <lttng/ust-events.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_statedump_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_statedump_destroy(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int do_lttng_ust_statedump(void *owner);
#endif /* LTTNG_UST_STATEDUMP_H */
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
-#include "ust-helper.h"
#ifdef DEBUG
#define dbg_printf(fmt, args...) printf("[debug lttng-ust rculfhash] " fmt, ## args)
*/
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern unsigned int lttng_ust_lfht_fls_ulong(unsigned long x);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_get_count_order_u32(uint32_t x);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_get_count_order_ulong(unsigned long x);
#ifdef POISON_FREE
#include <stdint.h>
#include <pthread.h>
#include <urcu/compiler.h>
-#include "ust-helper.h"
#ifdef __cplusplus
extern "C" {
unsigned long index);
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern const struct lttng_ust_lfht_mm_type lttng_ust_lfht_mm_order;
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern const struct lttng_ust_lfht_mm_type lttng_ust_lfht_mm_chunk;
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern const struct lttng_ust_lfht_mm_type lttng_ust_lfht_mm_mmap;
/*
* Return NULL on error.
* Note: the RCU flavor must be already included before the hash table header.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern struct lttng_ust_lfht *lttng_ust_lfht_new(unsigned long init_size,
unsigned long min_nr_alloc_buckets,
unsigned long max_nr_buckets,
* thread to handle resize operations, which removes RCU requirements on
* lttng_ust_lfht_destroy.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_destroy(struct lttng_ust_lfht *ht);
/*
* Call with rcu_read_lock held.
* Threads calling this API need to be registered RCU read-side threads.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_count_nodes(struct lttng_ust_lfht *ht,
long *split_count_before,
unsigned long *count,
* Threads calling this API need to be registered RCU read-side threads.
* This function acts as a rcu_dereference() to read the node pointer.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_lookup(struct lttng_ust_lfht *ht, unsigned long hash,
lttng_ust_lfht_match_fct match, const void *key,
struct lttng_ust_lfht_iter *iter);
* Threads calling this API need to be registered RCU read-side threads.
* This function acts as a rcu_dereference() to read the node pointer.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_next_duplicate(struct lttng_ust_lfht *ht,
lttng_ust_lfht_match_fct match, const void *key,
struct lttng_ust_lfht_iter *iter);
* Threads calling this API need to be registered RCU read-side threads.
* This function acts as a rcu_dereference() to read the node pointer.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_first(struct lttng_ust_lfht *ht, struct lttng_ust_lfht_iter *iter);
/*
* Threads calling this API need to be registered RCU read-side threads.
* This function acts as a rcu_dereference() to read the node pointer.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_next(struct lttng_ust_lfht *ht, struct lttng_ust_lfht_iter *iter);
/*
* This function issues a full memory barrier before and after its
* atomic commit.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_add(struct lttng_ust_lfht *ht, unsigned long hash,
struct lttng_ust_lfht_node *node);
* node pointer. The failure case does not guarantee any other memory
* barrier.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern struct lttng_ust_lfht_node *lttng_ust_lfht_add_unique(struct lttng_ust_lfht *ht,
unsigned long hash,
lttng_ust_lfht_match_fct match,
* This function issues a full memory barrier before and after its
* atomic commit.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern struct lttng_ust_lfht_node *lttng_ust_lfht_add_replace(struct lttng_ust_lfht *ht,
unsigned long hash,
lttng_ust_lfht_match_fct match,
* after its atomic commit. Upon failure, this function does not issue
* any memory barrier.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_replace(struct lttng_ust_lfht *ht,
struct lttng_ust_lfht_iter *old_iter,
unsigned long hash,
* after its atomic commit. Upon failure, this function does not issue
* any memory barrier.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_del(struct lttng_ust_lfht *ht, struct lttng_ust_lfht_node *node);
/*
* Threads calling this API need to be registered RCU read-side threads.
* This function does not issue any memory barrier.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lttng_ust_lfht_is_node_deleted(const struct lttng_ust_lfht_node *node);
/*
* lttng_ust_lfht_resize should *not* be called from a RCU read-side critical
* section.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lttng_ust_lfht_resize(struct lttng_ust_lfht *ht, unsigned long new_size);
/*
#include <stdbool.h>
#include <stddef.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
bool strutils_is_star_glob_pattern(const char *pattern);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
bool strutils_is_star_at_the_end_only_glob_pattern(const char *pattern);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
bool strutils_star_glob_match(const char *pattern, size_t pattern_len,
const char *candidate, size_t candidate_len);
#include <lttng/tracepoint-types.h>
#include <lttng/ust-events.h>
-#include "ust-helper.h"
-
#define TRACE_DEFAULT TRACE_DEBUG_LINE
struct tracepoint_lib {
struct cds_list_head callsites;
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int tracepoint_probe_register_noupdate(const char *name,
void (*callback)(void), void *priv,
const char *signature);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int tracepoint_probe_unregister_noupdate(const char *name,
void (*callback)(void), void *priv);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void tracepoint_probe_update_all(void);
+
+__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden1(void);
+
+__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden2(void);
+
+__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden3(void);
/*
char a[24];
} __tracepoint_test_symbol3 __attribute__((weak, visibility("hidden")));
-__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden1(void)
{
return &__tracepoint_test_symbol1;
}
-__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden2(void)
{
return &__tracepoint_test_symbol2;
}
-__attribute__((visibility("hidden")))
void *lttng_ust_tp_check_weak_hidden3(void)
{
return &__tracepoint_test_symbol3;
#include <urcu/list.h>
#include <urcu/hlist.h>
-#include <ust-helper.h>
#include <lttng/ust-events.h>
* On success, returns a `struct lttng_event_enabler`,
* On memory error, returns NULL.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_event_enabler *lttng_event_enabler_create(
enum lttng_enabler_format_type format_type,
struct lttng_ust_abi_event *event_param,
/*
* Destroy a `struct lttng_event_enabler` object.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_event_enabler_destroy(struct lttng_event_enabler *enabler);
/*
* Enable a `struct lttng_event_enabler` object and all events related to this
* enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_enabler_enable(struct lttng_event_enabler *enabler);
/*
* Disable a `struct lttng_event_enabler` object and all events related to this
* enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_enabler_disable(struct lttng_event_enabler *enabler);
/*
* Attach filter bytecode program to `struct lttng_event_enabler` and all
* events related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_enabler_attach_filter_bytecode(
struct lttng_event_enabler *enabler,
struct lttng_ust_bytecode_node **bytecode);
*
* Not implemented.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_enabler_attach_context(struct lttng_event_enabler *enabler,
struct lttng_ust_abi_context *ctx);
* Attach exclusion list to `struct lttng_event_enabler` and all
* events related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_enabler_attach_exclusion(struct lttng_event_enabler *enabler,
struct lttng_ust_excluder_node **excluder);
* This function goes over all bytecode programs of the enabler (event or
* event_notifier enabler) to ensure each is linked to the provided instance.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_enabler_link_bytecode(const struct lttng_ust_event_desc *event_desc,
struct lttng_ctx **ctx,
struct cds_list_head *instance_bytecode_runtime_head,
* On success, returns a `struct lttng_triggre_group`,
* on memory error, returns NULL.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_event_notifier_group *lttng_event_notifier_group_create(void);
/*
* Destroy a `struct lttng_event_notifier_group` object.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_event_notifier_group_destroy(
struct lttng_event_notifier_group *event_notifier_group);
* On success, returns a `struct lttng_event_notifier_enabler`,
* On memory error, returns NULL.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_event_notifier_enabler *lttng_event_notifier_enabler_create(
struct lttng_event_notifier_group *event_notifier_group,
enum lttng_enabler_format_type format_type,
/*
* Destroy a `struct lttng_event_notifier_enabler` object.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_event_notifier_enabler_destroy(
struct lttng_event_notifier_enabler *event_notifier_enabler);
* Enable a `struct lttng_event_notifier_enabler` object and all event
* notifiers related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_notifier_enabler_enable(
struct lttng_event_notifier_enabler *event_notifier_enabler);
* Disable a `struct lttng_event_notifier_enabler` object and all event
* notifiers related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_notifier_enabler_disable(
struct lttng_event_notifier_enabler *event_notifier_enabler);
* Attach filter bytecode program to `struct lttng_event_notifier_enabler` and
* all event notifiers related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_notifier_enabler_attach_filter_bytecode(
struct lttng_event_notifier_enabler *event_notifier_enabler,
struct lttng_ust_bytecode_node **bytecode);
* Attach capture bytecode program to `struct lttng_event_notifier_enabler` and
* all event_notifiers related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_notifier_enabler_attach_capture_bytecode(
struct lttng_event_notifier_enabler *event_notifier_enabler,
struct lttng_ust_bytecode_node **bytecode);
* Attach exclusion list to `struct lttng_event_notifier_enabler` and all
* event notifiers related to this enabler.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_event_notifier_enabler_attach_exclusion(
struct lttng_event_notifier_enabler *event_notifier_enabler,
struct lttng_ust_excluder_node **excluder);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_free_event_filter_runtime(struct lttng_ust_event_common *event);
/*
* Connect the probe on all enablers matching this event description.
* Called on library load.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_fix_pending_event_notifiers(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_counter *lttng_ust_counter_create(
const char *counter_transport_name,
size_t number_dimensions, const struct lttng_counter_dimension *dimensions);
#ifdef HAVE_PERF_EVENT
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_add_perf_counter_to_ctx(uint32_t type,
uint64_t config,
const char *name,
struct lttng_ctx **ctx);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_perf_counter_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_perf_counter_exit(void);
#else /* #ifdef HAVE_PERF_EVENT */
}
#endif /* #else #ifdef HAVE_PERF_EVENT */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_probes_get_event_list(struct lttng_ust_tracepoint_list *list);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_probes_prune_event_list(struct lttng_ust_tracepoint_list *list);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_probes_get_field_list(struct lttng_ust_field_list *list);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_probes_prune_field_list(struct lttng_ust_field_list *list);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_ust_abi_tracepoint_iter *
lttng_ust_tracepoint_list_get_iter_next(struct lttng_ust_tracepoint_list *list);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct lttng_ust_abi_field_iter *
lttng_ust_field_list_get_iter_next(struct lttng_ust_field_list *list);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_session *lttng_session_create(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_session_enable(struct lttng_session *session);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_session_disable(struct lttng_session *session);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_session_statedump(struct lttng_session *session);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_session_destroy(struct lttng_session *session);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct cds_list_head *lttng_get_sessions(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_handle_pending_statedump(void *owner);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_channel *lttng_channel_create(struct lttng_session *session,
const char *transport_name,
void *buf_addr,
uint64_t **memory_map_size,
struct lttng_channel *chan_priv_init);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_channel_enable(struct lttng_channel *channel);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_channel_disable(struct lttng_channel *channel);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_transport_register(struct lttng_transport *transport);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_transport_unregister(struct lttng_transport *transport);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_probe_provider_unregister_events(struct lttng_ust_probe_desc *desc);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_fix_pending_events(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct cds_list_head *lttng_get_probe_list_head(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct lttng_enum *lttng_ust_enum_get_from_desc(struct lttng_session *session,
const struct lttng_ust_enum_desc *enum_desc);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_abi_create_root_handle(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
const struct lttng_ust_abi_objd_ops *lttng_ust_abi_objd_ops(int id);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_ust_abi_objd_unref(int id, int is_owner);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_abi_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_abi_events_exit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_abi_objd_table_owner_cleanup(void *owner);
#endif /* _LTTNG_UST_EVENTS_INTERNAL_H */
#include <linux/types.h>
#else /* __KERNEL__ */
#include <stdint.h>
-#include "ust-helper.h"
#endif /* __KERNEL__ */
struct lttng_msgpack_writer {
uint8_t map_nesting;
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_msgpack_writer_init(
struct lttng_msgpack_writer *writer,
uint8_t *buffer, size_t size);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_unsigned_integer(
struct lttng_msgpack_writer *writer, uint64_t value);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_signed_integer(
struct lttng_msgpack_writer *writer, int64_t value);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer,
const char *value);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_begin_array(
struct lttng_msgpack_writer *writer, size_t count);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer);
#endif /* _LTTNG_UST_MSGPACK_H */
#include <stddef.h>
#include <unistd.h>
-#include "ust-helper.h"
-
/* Internal helpers */
#include "backend_internal.h"
#include "frontend_internal.h"
/* Ring buffer backend access (read/write) */
-LTTNG_HIDDEN
+__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);
-LTTNG_HIDDEN
+__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);
* 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.
*/
-LTTNG_HIDDEN
+__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);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void *
lib_ring_buffer_read_offset_address(struct lttng_ust_lib_ring_buffer_backend *bufb,
size_t offset,
#include "backend_types.h"
#include "frontend_types.h"
#include "shm.h"
-#include "ust-helper.h"
/* Ring buffer backend API presented to the frontend */
/* Ring buffer and channel backend create/free */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lib_ring_buffer_backend_create(struct lttng_ust_lib_ring_buffer_backend *bufb,
struct channel_backend *chan, int cpu,
struct lttng_ust_shm_handle *handle,
struct shm_object *shmobj);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void channel_backend_unregister_notifiers(struct channel_backend *chanb);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lib_ring_buffer_backend_free(struct lttng_ust_lib_ring_buffer_backend *bufb);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int channel_backend_init(struct channel_backend *chanb,
const char *name,
const struct lttng_ust_lib_ring_buffer_config *config,
size_t subbuf_size,
size_t num_subbuf, struct lttng_ust_shm_handle *handle,
const int *stream_fds);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void channel_backend_free(struct channel_backend *chanb,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lib_ring_buffer_backend_reset(struct lttng_ust_lib_ring_buffer_backend *bufb,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void channel_backend_reset(struct channel_backend *chanb);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int lib_ring_buffer_backend_init(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lib_ring_buffer_backend_exit(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void _lib_ring_buffer_write(struct lttng_ust_lib_ring_buffer_backend *bufb,
size_t offset, const void *src, size_t len,
ssize_t pagecpy);
#include <urcu/uatomic.h>
#include "smp.h"
-#include "ust-helper.h"
/* Internal helpers */
#include "frontend_internal.h"
* private data area.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
struct lttng_ust_shm_handle *channel_create(const struct lttng_ust_lib_ring_buffer_config *config,
const char *name,
* channel_destroy finalizes all channel's buffers, waits for readers to
* release all references, and destroys the channel.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
void channel_destroy(struct channel *chan, struct lttng_ust_shm_handle *handle,
int consumer);
#define for_each_channel_cpu(cpu, chan) \
for_each_possible_cpu(cpu)
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern struct lttng_ust_lib_ring_buffer *channel_get_ring_buffer(
const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan, int cpu,
int *shm_fd, int *wait_fd,
int *wakeup_fd,
uint64_t *memory_map_size);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern
int ring_buffer_channel_close_wait_fd(const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern
int ring_buffer_channel_close_wakeup_fd(const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern
int ring_buffer_stream_close_wait_fd(const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan,
struct lttng_ust_shm_handle *handle,
int cpu);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern
int ring_buffer_stream_close_wakeup_fd(const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan,
struct lttng_ust_shm_handle *handle,
int cpu);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lib_ring_buffer_open_read(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lib_ring_buffer_release_read(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
* Initialize signals for ring buffer. Should be called early e.g. by
* main() in the program to affect all threads.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lib_ringbuffer_signal_init(void);
/*
* Read sequence: snapshot, many get_subbuf/put_subbuf, move_consumer.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lib_ring_buffer_snapshot(struct lttng_ust_lib_ring_buffer *buf,
unsigned long *consumed,
unsigned long *produced,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int lib_ring_buffer_snapshot_sample_positions(
struct lttng_ust_lib_ring_buffer *buf,
unsigned long *consumed,
unsigned long *produced,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lib_ring_buffer_move_consumer(struct lttng_ust_lib_ring_buffer *buf,
unsigned long consumed_new,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lib_ring_buffer_get_subbuf(struct lttng_ust_lib_ring_buffer *buf,
unsigned long consumed,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void lib_ring_buffer_put_subbuf(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
handle);
}
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void channel_reset(struct channel *chan);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lib_ring_buffer_reset(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
#include "backend_types.h"
#include "frontend_types.h"
#include "shm.h"
-#include "ust-helper.h"
/* Buffer offset macros */
}
#endif
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
int lib_ring_buffer_reserve_slow(struct lttng_ust_lib_ring_buffer_ctx *ctx,
void *client_ctx);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
void lib_ring_buffer_switch_slow(struct lttng_ust_lib_ring_buffer *buf,
enum switch_mode mode,
struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lib_ring_buffer_check_deliver_slow(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer *buf,
struct channel *chan,
v_set(config, &cc_hot->seq, commit_count);
}
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int lib_ring_buffer_create(struct lttng_ust_lib_ring_buffer *buf,
struct channel_backend *chanb, int cpu,
struct lttng_ust_shm_handle *handle,
struct shm_object *shmobj);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void lib_ring_buffer_free(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
/* Keep track of trap nesting inside ring buffer code */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern DECLARE_URCU_TLS(unsigned int, lib_ring_buffer_nesting);
#endif /* _LTTNG_RING_BUFFER_FRONTEND_INTERNAL_H */
#include <urcu/system.h>
#include <urcu/arch.h>
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_ust_getcpu_init(void);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int (*lttng_get_cpu)(void);
#ifdef LTTNG_UST_DEBUG_VALGRIND
#ifndef _LTTNG_RING_BUFFER_NOHZ_H
#define _LTTNG_RING_BUFFER_NOHZ_H
-#include "ust-helper.h"
-
#ifdef CONFIG_LIB_RING_BUFFER
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lib_ring_buffer_tick_nohz_flush(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lib_ring_buffer_tick_nohz_stop(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lib_ring_buffer_tick_nohz_restart(void);
#else
static inline void lib_ring_buffer_tick_nohz_flush(void)
#ifndef _LTTNG_UST_LIB_RINGBUFFER_RB_INIT_H
#define _LTTNG_UST_LIB_RINGBUFFER_RB_INIT_H
-#include "ust-helper.h"
-
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
void lttng_fixup_ringbuffer_tls(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void lttng_ust_ringbuffer_set_allow_blocking(void);
#endif /* _LTTNG_UST_LIB_RINGBUFFER_RB_INIT_H */
#include <usterr-signal-safe.h>
#include <urcu/compiler.h>
#include "shm_types.h"
-#include "ust-helper.h"
/* channel_handle_create - for UST. */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
struct lttng_ust_shm_handle *channel_handle_create(void *data,
uint64_t memory_map_size, int wakeup_fd);
+
/* channel_handle_add_stream - for UST. */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern
int channel_handle_add_stream(struct lttng_ust_shm_handle *handle,
int shm_fd, int wakeup_fd, uint32_t stream_nr,
uint64_t memory_map_size);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
unsigned int channel_handle_get_nr_streams(struct lttng_ust_shm_handle *handle);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern
void channel_destroy(struct channel *chan, struct lttng_ust_shm_handle *handle,
int consumer);
#define set_shmp(ref, src) _set_shmp(&(ref)._ref, src)
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct shm_object_table *shm_object_table_create(size_t max_nb_obj);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct shm_object *shm_object_table_alloc(struct shm_object_table *table,
size_t memory_map_size,
enum shm_object_type type,
const int stream_fd,
int cpu);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
struct shm_object *shm_object_table_append_shm(struct shm_object_table *table,
int shm_fd, int wakeup_fd, uint32_t stream_nr,
size_t memory_map_size);
+
/* mem ownership is passed to shm_object_table_append_mem(). */
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct shm_object *shm_object_table_append_mem(struct shm_object_table *table,
void *mem, size_t memory_map_size, int wakeup_fd);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void shm_object_table_destroy(struct shm_object_table *table, int consumer);
/*
* *NOT* multithread-safe (should be protected by mutex).
* Returns a -1, -1 tuple on error.
*/
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
struct shm_ref zalloc_shm(struct shm_object *obj, size_t len);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void align_shm(struct shm_object *obj, size_t align);
static inline
#ifndef _LIBRINGBUFFER_SMP_H
#define _LIBRINGBUFFER_SMP_H
-#include "ust-helper.h"
#include "getcpu.h"
/*
*/
#define PER_CPU_MEM_SIZE 4096
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int __num_possible_cpus;
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern void _get_num_possible_cpus(void);
static inline
* Chris Torek.
*/
-#include "ust-helper.h"
-
/*
* Floating point scanf/printf (input/output) definitions.
*/
#error "floating point buffers too small"
#endif
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
char *__hdtoa(double, const char *, int, int *, int *, char **);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
char *__hldtoa(long double, const char *, int, int *, int *, char **);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
char *__ldtoa(long double *, int, int, int *, int *, char **);
*/
#include <stddef.h>
-#include "ust-helper.h"
-
struct __lttng_ust_siov {
void *iov_base;
size_t iov_len;
int uio_resid;
};
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int __sfvwrite(LTTNG_UST_LFILE *, struct __lttng_ust_suio *);
#include <stdio.h>
#include <wchar.h>
-#include "ust-helper.h"
#include "various.h"
#include "wcio.h"
#include "fileext.h"
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
int __sflush(LTTNG_UST_LFILE *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
LTTNG_UST_LFILE *__sfp(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __srefill(LTTNG_UST_LFILE *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __sread(void *, char *, int);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __swrite(void *, const char *, int);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
fpos_t __sseek(void *, fpos_t, int);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __sclose(void *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void __sinit(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void _cleanup(void);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
void __smakebuf(LTTNG_UST_LFILE *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __swhatbuf(LTTNG_UST_LFILE *, size_t *, int *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int _fwalk(int (*)(LTTNG_UST_LFILE *));
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __swsetup(LTTNG_UST_LFILE *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
int __sflags(const char *, int *);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
wint_t __fgetwc_unlock(LTTNG_UST_LFILE *);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern void __atexit_register_cleanup(void (*)(void));
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int __sdidinit;
/*
#include <stdio.h>
#include <wchar.h>
-#include "ust-helper.h"
-
struct __lttng_ust_sbuf {
unsigned char *_base;
int _size;
#define __sferror(p) (((p)->_flags & __SERR) != 0)
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern int ust_safe_fflush(LTTNG_UST_LFILE *fp);
-LTTNG_HIDDEN
+
+__attribute__((visibility("hidden")))
extern int ust_safe_vfprintf(LTTNG_UST_LFILE *fp, const char *fmt0, va_list ap);
-LTTNG_HIDDEN
+__attribute__((visibility("hidden")))
extern size_t ust_safe_mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
#endif /* UST_SNPRINTF_VARIOUS_H */