Refactoring: introduce bytecode runtime private structure
[lttng-ust.git] / include / lttng / ust-events.h
index 8d71f0b4c325feece293392a13b3d602e9813724..c739f71d1525a860fa07cf3c55663a604a882438 100644 (file)
@@ -361,16 +361,18 @@ enum lttng_bytecode_interpreter_ret {
 };
 
 struct lttng_interpreter_output;
+struct lttng_ust_bytecode_runtime_private;
 
 /*
- * This structure is used in the probes. More specifically, the `filter` and
- * `node` fields are explicity used in the probes. When modifying this
- * structure we must not change the layout of these two fields as it is
- * considered ABI.
+ * This structure is used in the probes. More specifically, the
+ * `interpreter_funcs` and `node` fields are explicity used in the
+ * probes. When modifying this structure we must not change the layout
+ * of these two fields as it is considered ABI.
  */
 struct lttng_bytecode_runtime {
+       struct lttng_ust_bytecode_runtime_private *priv;
+
        /* Associated bytecode */
-       struct lttng_ust_bytecode_node *bc;
        union {
                uint64_t (*filter)(void *interpreter_data,
                                const char *interpreter_stack_data);
@@ -378,13 +380,7 @@ struct lttng_bytecode_runtime {
                                const char *interpreter_stack_data,
                                struct lttng_interpreter_output *interpreter_output);
        } interpreter_funcs;
-       int link_failed;
        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`.
-        */
-       struct lttng_ctx **pctx;
 };
 
 /*
@@ -395,22 +391,19 @@ struct lttng_bytecode_runtime {
  * UST. Fields need to be only added at the end, never reordered, never
  * removed.
  */
+
+struct lttng_ust_event_private;
+
 struct lttng_event {
+       struct lttng_ust_event_private *priv;   /* Private event interface */
+
        unsigned int id;
-       struct lttng_channel *chan;
        int enabled;
-       const struct lttng_event_desc *desc;
-       struct lttng_ctx *ctx;
-       enum lttng_ust_instrumentation instrumentation;
-       struct cds_list_head node;              /* Event list in session */
-
+       int has_enablers_without_bytecode;
        /* list of struct lttng_bytecode_runtime, sorted by seqnum */
        struct cds_list_head filter_bytecode_runtime_head;
-       int has_enablers_without_bytecode;
-       /* Backward references: list of lttng_enabler_ref (ref to enablers) */
-       struct cds_list_head enablers_ref_head;
-       struct cds_hlist_node hlist;    /* session ht of events */
-       int registered;                 /* has reg'd tracepoint probe */
+       struct lttng_channel *chan;
+       struct lttng_ctx *ctx;
 };
 
 struct lttng_event_notifier {
This page took 0.024393 seconds and 4 git commands to generate.