X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fust-events.h;h=9a74ed4d44bf576ff3e1bf0381b79310276967a6;hb=2b7080aa8c2481a3a316c98702884c902a01bde5;hp=d75a73235b5218f93831a010c88b209eb6ae5e00;hpb=bdb12629ec5577e27573886dfc229552df94a7c2;p=lttng-ust.git diff --git a/include/lttng/ust-events.h b/include/lttng/ust-events.h index d75a7323..9a74ed4d 100644 --- a/include/lttng/ust-events.h +++ b/include/lttng/ust-events.h @@ -44,7 +44,6 @@ struct lttng_channel; struct lttng_session; struct lttng_ust_lib_ring_buffer_ctx; struct lttng_event_field; -struct lttng_event_notifier; struct lttng_event_notifier_group; /* @@ -57,13 +56,9 @@ struct lttng_event_notifier_group; /* Update the astract_types name table in lttng-types.c along with this enum */ enum lttng_abstract_types { atype_integer, - atype_enum, /* legacy */ - atype_array, /* legacy */ - atype_sequence, /* legacy */ atype_string, atype_float, atype_dynamic, - atype_struct, /* legacy */ atype_enum_nestable, atype_array_nestable, atype_sequence_nestable, @@ -162,29 +157,6 @@ struct lttng_float_type { char padding[LTTNG_UST_FLOAT_TYPE_PADDING]; }; -/* legacy */ -#define LTTNG_UST_BASIC_TYPE_PADDING 128 -union _lttng_basic_type { - struct lttng_integer_type integer; /* legacy */ - struct { - const struct lttng_enum_desc *desc; /* Enumeration mapping */ - struct lttng_integer_type container_type; - } enumeration; /* legacy */ - struct { - enum lttng_string_encodings encoding; - } string; /* legacy */ - struct lttng_float_type _float; /* legacy */ - char padding[LTTNG_UST_BASIC_TYPE_PADDING]; -}; - -/* legacy */ -struct lttng_basic_type { - enum lttng_abstract_types atype; - union { - union _lttng_basic_type basic; - } u; -}; - #define LTTNG_UST_TYPE_PADDING 128 struct lttng_type { enum lttng_abstract_types atype; @@ -215,22 +187,6 @@ struct lttng_type { unsigned int alignment; } struct_nestable; - union { - /* legacy provider ABI 1.0 */ - union _lttng_basic_type basic; /* legacy */ - struct { - struct lttng_basic_type elem_type; - unsigned int length; /* Num. elems. */ - } array; /* legacy */ - struct { - struct lttng_basic_type length_type; - struct lttng_basic_type elem_type; - } sequence; /* legacy */ - struct { - unsigned int nr_fields; - struct lttng_event_field *fields; /* Array of fields. */ - } _struct; /* legacy */ - } legacy; char padding[LTTNG_UST_TYPE_PADDING]; } u; }; @@ -392,36 +348,40 @@ struct lttng_bytecode_runtime { * removed. */ -struct lttng_ust_event_private; +struct lttng_ust_event_common_private; -struct lttng_event { - struct lttng_ust_event_private *priv; /* Private event interface */ +struct lttng_ust_event_common { + uint32_t struct_size; /* Size of this structure. */ + struct lttng_ust_event_common_private *priv; /* Private event interface */ - unsigned int id; int enabled; int has_enablers_without_bytecode; /* list of struct lttng_bytecode_runtime, sorted by seqnum */ struct cds_list_head filter_bytecode_runtime_head; +}; + +struct lttng_ust_event_recorder_private; + +struct lttng_ust_event_recorder { + uint32_t struct_size; /* Size of this structure. */ + struct lttng_ust_event_common *parent; + struct lttng_ust_event_recorder_private *priv; /* Private event record interface */ + + unsigned int id; struct lttng_channel *chan; struct lttng_ctx *ctx; }; -struct lttng_event_notifier { - uint64_t user_token; - uint64_t error_counter_index; - int enabled; - int registered; /* has reg'd tracepoint probe */ - size_t num_captures; /* Needed to allocate the msgpack array. */ - void (*notification_send)(struct lttng_event_notifier *event_notifier, +struct lttng_ust_event_notifier_private; + +struct lttng_ust_event_notifier { + uint32_t struct_size; /* Size of this structure. */ + struct lttng_ust_event_common *parent; + struct lttng_ust_event_notifier_private *priv; /* Private event notifier interface */ + + void (*notification_send)(struct lttng_ust_event_notifier *event_notifier, const char *stack_data); - struct cds_list_head filter_bytecode_runtime_head; struct cds_list_head capture_bytecode_runtime_head; - int has_enablers_without_bytecode; - struct cds_list_head enablers_ref_head; - const struct lttng_event_desc *desc; - struct cds_hlist_node hlist; /* hashtable of event_notifiers */ - struct cds_list_head node; /* event_notifier list in session */ - struct lttng_event_notifier_group *group; /* weak ref */ }; struct lttng_enum { @@ -495,7 +455,7 @@ struct lttng_channel { /* Channel ID */ unsigned int id; - enum lttng_ust_chan_type type; + enum lttng_ust_abi_chan_type type; unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */ int tstate:1; /* Transient enable state */ }; @@ -524,7 +484,7 @@ struct lttng_counter_ops { #define LTTNG_UST_STACK_CTX_PADDING 32 struct lttng_stack_ctx { - struct lttng_event *event; + struct lttng_ust_event_recorder *event_recorder; struct lttng_ctx *chan_ctx; /* RCU dereferenced. */ struct lttng_ctx *event_ctx; /* RCU dereferenced. */ char padding[LTTNG_UST_STACK_CTX_PADDING]; @@ -558,6 +518,7 @@ struct lttng_ust_session_private; * removed. */ struct lttng_session { + uint32_t struct_size; /* Size of this structure */ struct lttng_ust_session_private *priv; /* Private session interface */ int active; /* Is trace session active ? */