Decouple `struct lttng_session` from filter code
[lttng-ust.git] / include / lttng / ust-events.h
index 54eb09550ce4000bd20855c0e40f254960ad19cb..66c7390b9e24100c7e0ff84b63bdee14cbc592d6 100644 (file)
@@ -459,13 +459,23 @@ enum lttng_filter_ret {
        /* Other bits are kept for future use. */
 };
 
+/*
+ * 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.
+ */
 struct lttng_bytecode_runtime {
        /* Associated bytecode */
        struct lttng_ust_filter_bytecode_node *bc;
        uint64_t (*filter)(void *filter_data, const char *filter_stack_data);
        int link_failed;
        struct cds_list_head node;      /* list of bytecode runtime in event */
-       struct lttng_session *session;
+       /*
+        * Pointer to a `struct lttng_session`-owned and URCU-protected
+        * pointer.
+        */
+       struct lttng_ctx **pctx;
 };
 
 /*
@@ -729,6 +739,7 @@ int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
+int lttng_add_time_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_vuid_to_ctx(struct lttng_ctx **ctx);
@@ -745,6 +756,7 @@ void lttng_context_ipc_ns_reset(void);
 void lttng_context_mnt_ns_reset(void);
 void lttng_context_net_ns_reset(void);
 void lttng_context_pid_ns_reset(void);
+void lttng_context_time_ns_reset(void);
 void lttng_context_user_ns_reset(void);
 void lttng_context_uts_ns_reset(void);
 void lttng_context_vuid_reset(void);
This page took 0.023143 seconds and 4 git commands to generate.