From fa194c4157f029404fe2ea10098d1bbcebcf6aa9 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Fri, 12 Mar 2021 14:04:44 -0500 Subject: [PATCH] Move context types to private header This is an API change but the major SONAME bump to '1' gives us the opportunity to hide symbols that should have been private from the start. Change-Id: Iad136e690b420e497b6b8d39155608278f537f7b Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- include/lttng/ust-events.h | 54 +----------------------------- include/ust-context-provider.h | 40 ++++++++++++++++++++++ include/ust-dynamic-type.h | 16 +++++++++ liblttng-ust/context-internal.h | 1 + liblttng-ust/ust-events-internal.h | 1 + 5 files changed, 59 insertions(+), 53 deletions(-) diff --git a/include/lttng/ust-events.h b/include/lttng/ust-events.h index 809c056d..de7d322a 100644 --- a/include/lttng/ust-events.h +++ b/include/lttng/ust-events.h @@ -246,59 +246,6 @@ struct lttng_ust_event_field { /* End of base ABI. Fields below should be used after checking struct_size. */ }; -enum lttng_ust_dynamic_type { - LTTNG_UST_DYNAMIC_TYPE_NONE, - LTTNG_UST_DYNAMIC_TYPE_S8, - LTTNG_UST_DYNAMIC_TYPE_S16, - LTTNG_UST_DYNAMIC_TYPE_S32, - LTTNG_UST_DYNAMIC_TYPE_S64, - LTTNG_UST_DYNAMIC_TYPE_U8, - LTTNG_UST_DYNAMIC_TYPE_U16, - LTTNG_UST_DYNAMIC_TYPE_U32, - LTTNG_UST_DYNAMIC_TYPE_U64, - LTTNG_UST_DYNAMIC_TYPE_FLOAT, - LTTNG_UST_DYNAMIC_TYPE_DOUBLE, - LTTNG_UST_DYNAMIC_TYPE_STRING, - _NR_LTTNG_UST_DYNAMIC_TYPES, -}; - -struct lttng_ctx_value { - enum lttng_ust_dynamic_type sel; - union { - int64_t s64; - uint64_t u64; - const char *str; - double d; - } u; -}; - -struct lttng_perf_counter_field; - -#define LTTNG_UST_CTX_FIELD_PADDING 40 -struct lttng_ctx_field { - struct lttng_ust_event_field event_field; - size_t (*get_size)(struct lttng_ctx_field *field, size_t offset); - void (*record)(struct lttng_ctx_field *field, - struct lttng_ust_lib_ring_buffer_ctx *ctx, - struct lttng_channel *chan); - void (*get_value)(struct lttng_ctx_field *field, - struct lttng_ctx_value *value); - union { - struct lttng_perf_counter_field *perf_counter; - char padding[LTTNG_UST_CTX_FIELD_PADDING]; - } u; - void (*destroy)(struct lttng_ctx_field *field); - char *field_name; /* Has ownership, dynamically allocated. */ -}; - -#define LTTNG_UST_CTX_PADDING 20 -struct lttng_ctx { - struct lttng_ctx_field *fields; - unsigned int nr_fields; - unsigned int allocated_fields; - unsigned int largest_align; - char padding[LTTNG_UST_CTX_PADDING]; -}; /* * IMPORTANT: this structure is part of the ABI between the probe and @@ -396,6 +343,7 @@ struct lttng_ust_bytecode_runtime { * removed. */ +struct lttng_ctx; struct lttng_ust_event_common_private; enum lttng_ust_event_type { diff --git a/include/ust-context-provider.h b/include/ust-context-provider.h index cd845583..670c3863 100644 --- a/include/ust-context-provider.h +++ b/include/ust-context-provider.h @@ -15,6 +15,46 @@ #include #include +#include "ust-dynamic-type.h" + +struct lttng_ctx_value { + enum lttng_ust_dynamic_type sel; + union { + int64_t s64; + uint64_t u64; + const char *str; + double d; + } u; +}; + +struct lttng_perf_counter_field; + +#define LTTNG_UST_CTX_FIELD_PADDING 40 +struct lttng_ctx_field { + struct lttng_ust_event_field event_field; + size_t (*get_size)(struct lttng_ctx_field *field, size_t offset); + void (*record)(struct lttng_ctx_field *field, + struct lttng_ust_lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan); + void (*get_value)(struct lttng_ctx_field *field, + struct lttng_ctx_value *value); + union { + struct lttng_perf_counter_field *perf_counter; + char padding[LTTNG_UST_CTX_FIELD_PADDING]; + } u; + void (*destroy)(struct lttng_ctx_field *field); + char *field_name; /* Has ownership, dynamically allocated. */ +}; + +#define LTTNG_UST_CTX_PADDING 20 +struct lttng_ctx { + struct lttng_ctx_field *fields; + unsigned int nr_fields; + unsigned int allocated_fields; + unsigned int largest_align; + char padding[LTTNG_UST_CTX_PADDING]; +}; + struct lttng_ust_context_provider { char *name; size_t (*get_size)(struct lttng_ctx_field *field, size_t offset); diff --git a/include/ust-dynamic-type.h b/include/ust-dynamic-type.h index 7a6b1b15..cb628ad8 100644 --- a/include/ust-dynamic-type.h +++ b/include/ust-dynamic-type.h @@ -9,6 +9,22 @@ #include +enum lttng_ust_dynamic_type { + LTTNG_UST_DYNAMIC_TYPE_NONE, + LTTNG_UST_DYNAMIC_TYPE_S8, + LTTNG_UST_DYNAMIC_TYPE_S16, + LTTNG_UST_DYNAMIC_TYPE_S32, + LTTNG_UST_DYNAMIC_TYPE_S64, + LTTNG_UST_DYNAMIC_TYPE_U8, + LTTNG_UST_DYNAMIC_TYPE_U16, + LTTNG_UST_DYNAMIC_TYPE_U32, + LTTNG_UST_DYNAMIC_TYPE_U64, + LTTNG_UST_DYNAMIC_TYPE_FLOAT, + LTTNG_UST_DYNAMIC_TYPE_DOUBLE, + LTTNG_UST_DYNAMIC_TYPE_STRING, + _NR_LTTNG_UST_DYNAMIC_TYPES, +}; + __attribute__((visibility("hidden"))) int lttng_ust_dynamic_type_choices(size_t *nr_choices, const struct lttng_ust_event_field ***choices); diff --git a/liblttng-ust/context-internal.h b/liblttng-ust/context-internal.h index 2a3cb317..f31d8a24 100644 --- a/liblttng-ust/context-internal.h +++ b/liblttng-ust/context-internal.h @@ -9,6 +9,7 @@ #include #include "ust-events-internal.h" +#include "ust-context-provider.h" __attribute__((visibility("hidden"))) int lttng_context_init_all(struct lttng_ctx **ctx); diff --git a/liblttng-ust/ust-events-internal.h b/liblttng-ust/ust-events-internal.h index 51411def..505db0b1 100644 --- a/liblttng-ust/ust-events-internal.h +++ b/liblttng-ust/ust-events-internal.h @@ -14,6 +14,7 @@ #include +#include "ust-context-provider.h" struct lttng_ust_abi_obj; -- 2.34.1