Refactoring: combine event recorder and notifier callback functions
[lttng-ust.git] / include / lttng / ust-events.h
index 4cc4e1e431f9442fc8625d15a3c25a614c69d33f..8a7abd641be5b31e39d829ace52b98810f8f6d79 100644 (file)
@@ -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;
 
 /*
@@ -287,7 +286,6 @@ struct lttng_event_desc {
        union {
                struct {
                        const char **model_emf_uri;
-                       void (*event_notifier_callback)(void);
                } ext;
                char padding[LTTNG_UST_EVENT_DESC_PADDING];
        } u;
@@ -351,10 +349,18 @@ struct lttng_bytecode_runtime {
 
 struct lttng_ust_event_common_private;
 
-struct lttng_event_common {
+enum lttng_ust_event_type {
+       LTTNG_UST_EVENT_TYPE_RECORDER = 0,
+       LTTNG_UST_EVENT_TYPE_NOTIFIER = 1,
+};
+
+struct lttng_ust_event_common {
        uint32_t struct_size;                           /* Size of this structure. */
        struct lttng_ust_event_common_private *priv;    /* Private event interface */
 
+       enum lttng_ust_event_type type;
+       void *child;                                    /* Pointer to child, for inheritance by aggregation. */
+
        int enabled;
        int has_enablers_without_bytecode;
        /* list of struct lttng_bytecode_runtime, sorted by seqnum */
@@ -365,7 +371,7 @@ struct lttng_ust_event_recorder_private;
 
 struct lttng_ust_event_recorder {
        uint32_t struct_size;                           /* Size of this structure. */
-       struct lttng_event_common *parent;
+       struct lttng_ust_event_common *parent;          /* Inheritance by aggregation. */
        struct lttng_ust_event_recorder_private *priv;  /* Private event record interface */
 
        unsigned int id;
@@ -373,22 +379,16 @@ struct lttng_ust_event_recorder {
        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;          /* Inheritance by aggregation. */
+       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 {
@@ -462,7 +462,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 */
 };
This page took 0.023545 seconds and 4 git commands to generate.