X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Fust-events-internal.h;h=055e4f6eab259b633b615015a449a888f3538d52;hb=8936b6c0add7eb6706e0a1ca50e03c446dda4006;hp=53c76d57c2d9d44f41086e2f7d7e46e6fb39a641;hpb=0f2ab8669b01a138682e333cc2ff5ba721a5d4e1;p=lttng-ust.git diff --git a/liblttng-ust/ust-events-internal.h b/liblttng-ust/ust-events-internal.h index 53c76d57..055e4f6e 100644 --- a/liblttng-ust/ust-events-internal.h +++ b/liblttng-ust/ust-events-internal.h @@ -7,6 +7,7 @@ #ifndef _LTTNG_UST_EVENTS_INTERNAL_H #define _LTTNG_UST_EVENTS_INTERNAL_H +#include #include #include @@ -240,9 +241,9 @@ struct lttng_event_notifier_group { int notification_fd; struct cds_list_head node; /* Event notifier group handle list */ struct cds_list_head enablers_head; - struct cds_list_head event_notifiers_head; /* list of event_notifiers */ + struct cds_list_head event_notifiers_head; /* list of event_notifiers */ struct lttng_ust_event_notifier_ht event_notifiers_ht; /* hashtable of event_notifiers */ - struct lttng_ust_ctx *ctx; /* contexts for filters. */ + struct lttng_ust_ctx *ctx; /* contexts for filters. */ struct lttng_counter *error_counter; size_t error_counter_len; @@ -251,7 +252,7 @@ struct lttng_event_notifier_group { struct lttng_transport { char *name; struct cds_list_head node; - struct lttng_ust_channel_ops ops; + struct lttng_ust_channel_buffer_ops ops; const struct lttng_ust_lib_ring_buffer_config *client_config; }; @@ -268,7 +269,7 @@ struct lttng_ust_event_common_private { struct lttng_ust_event_desc *desc; /* Backward references: list of lttng_enabler_ref (ref to enablers) */ struct cds_list_head enablers_ref_head; - int registered; /* has reg'd tracepoint probe */ + int registered; /* has reg'd tracepoint probe */ uint64_t user_token; int has_enablers_without_filter_bytecode; @@ -283,6 +284,7 @@ struct lttng_ust_event_recorder_private { struct cds_list_head node; /* Event recorder list */ struct cds_hlist_node hlist; /* Hash table of event recorders */ struct lttng_ust_ctx *ctx; + unsigned int id; }; struct lttng_ust_event_notifier_private { @@ -295,7 +297,6 @@ struct lttng_ust_event_notifier_private { struct cds_list_head node; /* Event notifier list */ struct cds_hlist_node hlist; /* Hash table of event notifiers */ struct cds_list_head capture_bytecode_runtime_head; - }; struct lttng_ust_bytecode_runtime { @@ -305,7 +306,7 @@ struct lttng_ust_bytecode_runtime { int (*interpreter_func)(struct lttng_ust_bytecode_runtime *bytecode_runtime, const char *interpreter_stack_data, void *ctx); - struct cds_list_head node; /* list of bytecode runtime in event */ + struct cds_list_head node; /* list of bytecode runtime in event */ /* * Pointer to a URCU-protected pointer owned by an `struct * lttng_session`or `struct lttng_event_notifier_group`. @@ -332,21 +333,24 @@ struct lttng_ust_session_private { struct lttng_ust_enum_ht enums_ht; /* ht of enumerations */ struct cds_list_head enums_head; - struct lttng_ust_ctx *ctx; /* contexts for filters. */ + struct lttng_ust_ctx *ctx; /* contexts for filters. */ + + unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */ + bool uuid_set; /* Is uuid set ? */ }; struct lttng_enum { struct lttng_ust_enum_desc *desc; struct lttng_ust_session *session; - struct cds_list_head node; /* Enum list in session */ - struct cds_hlist_node hlist; /* Session ht of enums */ - uint64_t id; /* Enumeration ID in sessiond */ + struct cds_list_head node; /* Enum list in session */ + struct cds_hlist_node hlist; /* Session ht of enums */ + uint64_t id; /* Enumeration ID in sessiond */ }; struct lttng_ust_shm_handle; -struct lttng_ust_channel_ops_private { - struct lttng_ust_channel_ops *pub; /* Public channels ops interface */ +struct lttng_ust_channel_buffer_ops_private { + struct lttng_ust_channel_buffer_ops *pub; /* Public channel buffer ops interface */ struct lttng_ust_channel_buffer *(*channel_create)(const char *name, void *buf_addr, @@ -363,30 +367,29 @@ struct lttng_ust_channel_ops_private { * packet. Note that the size returned is only a hint, since it * may change due to concurrent writes. */ - size_t (*packet_avail_size)(struct lttng_ust_lib_ring_buffer_channel *chan, - struct lttng_ust_shm_handle *handle); - int (*is_finalized)(struct lttng_ust_lib_ring_buffer_channel *chan); - int (*is_disabled)(struct lttng_ust_lib_ring_buffer_channel *chan); - int (*flush_buffer)(struct lttng_ust_lib_ring_buffer_channel *chan, - struct lttng_ust_shm_handle *handle); + size_t (*packet_avail_size)(struct lttng_ust_channel_buffer *chan); + int (*is_finalized)(struct lttng_ust_channel_buffer *chan); + int (*is_disabled)(struct lttng_ust_channel_buffer *chan); + int (*flush_buffer)(struct lttng_ust_channel_buffer *chan); }; struct lttng_ust_channel_common_private { struct lttng_ust_channel_common *pub; /* Public channel interface */ - int objd; /* Object associated with channel. */ - int tstate:1; /* Transient enable state */ + int objd; /* Object associated with channel. */ + int tstate:1; /* Transient enable state */ }; struct lttng_ust_channel_buffer_private { struct lttng_ust_channel_common_private parent; struct lttng_ust_channel_buffer *pub; /* Public channel buffer interface */ - struct cds_list_head node; /* Channel list in session */ - int header_type; /* 0: unset, 1: compact, 2: large */ - unsigned int id; /* Channel ID */ + struct cds_list_head node; /* Channel list in session */ + int header_type; /* 0: unset, 1: compact, 2: large */ + unsigned int id; /* Channel ID */ enum lttng_ust_abi_chan_type type; struct lttng_ust_ctx *ctx; + struct lttng_ust_lib_ring_buffer_channel *rb_chan; /* Ring buffer channel */ unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */ }; @@ -507,7 +510,7 @@ struct lttng_ust_type_common *lttng_ust_create_type_array_text(unsigned int leng array_type->alignment = 0; array_type->encoding = lttng_ust_string_encoding_UTF8; array_type->elem_type = lttng_ust_create_type_integer(sizeof(char) * CHAR_BIT, - lttng_alignof(char) * CHAR_BIT, lttng_is_signed_type(char), + lttng_ust_rb_alignof(char) * CHAR_BIT, lttng_ust_is_signed_type(char), BYTE_ORDER, 10); if (!array_type->elem_type) goto error_elem; @@ -752,7 +755,7 @@ 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 +#ifdef HAVE_LINUX_PERF_EVENT_H __attribute__((visibility("hidden"))) int lttng_add_perf_counter_to_ctx(uint32_t type, @@ -766,7 +769,7 @@ int lttng_perf_counter_init(void); __attribute__((visibility("hidden"))) void lttng_perf_counter_exit(void); -#else /* #ifdef HAVE_PERF_EVENT */ +#else /* #ifdef HAVE_LINUX_PERF_EVENT_H */ static inline int lttng_add_perf_counter_to_ctx(uint32_t type, @@ -785,7 +788,7 @@ static inline void lttng_perf_counter_exit(void) { } -#endif /* #else #ifdef HAVE_PERF_EVENT */ +#endif /* #else #ifdef HAVE_LINUX_PERF_EVENT_H */ __attribute__((visibility("hidden"))) int lttng_probes_get_event_list(struct lttng_ust_tracepoint_list *list); @@ -894,4 +897,15 @@ int lttng_ust_interpret_event_filter(struct lttng_ust_event_common *event, const char *interpreter_stack_data, void *filter_ctx); +__attribute__((visibility("hidden"))) +int lttng_ust_session_uuid_validate(struct lttng_ust_session *session, + unsigned char *uuid); + +__attribute__((visibility("hidden"))) +bool lttng_ust_validate_event_name(const struct lttng_ust_event_desc *desc); + +__attribute__((visibility("hidden"))) +void lttng_ust_format_event_name(const struct lttng_ust_event_desc *desc, + char *name); + #endif /* _LTTNG_UST_EVENTS_INTERNAL_H */