Fix: comment related to filter bytecode list
[lttng-modules.git] / include / lttng / events.h
index 194e89004cb3b451c17719990c3266e9deb9f139..3abdb80570f3015fc065fcdc1ed3bf4143b2729e 100644 (file)
@@ -232,30 +232,39 @@ enum lttng_event_type {
        LTTNG_TYPE_ENABLER = 1,
 };
 
-struct lttng_filter_bytecode_node {
+enum lttng_bytecode_node_type {
+       LTTNG_BYTECODE_NODE_TYPE_FILTER,
+};
+
+struct lttng_bytecode_node {
+       enum lttng_bytecode_node_type type;
        struct list_head node;
        struct lttng_enabler *enabler;
-       /*
-        * struct lttng_kernel_filter_bytecode has var. sized array, must be
-        * last field.
-        */
-       struct lttng_kernel_filter_bytecode bc;
+       struct {
+               uint32_t len;
+               uint32_t reloc_offset;
+               uint64_t seqnum;
+               char data[];
+       } bc;
 };
 
 /*
- * Filter return value masks.
+ * Bytecode interpreter return value masks.
  */
-enum lttng_filter_ret {
-       LTTNG_FILTER_DISCARD = 0,
-       LTTNG_FILTER_RECORD_FLAG = (1ULL << 0),
+enum lttng_bytecode_interpreter_ret {
+       LTTNG_INTERPRETER_DISCARD = 0,
+       LTTNG_INTERPRETER_RECORD_FLAG = (1ULL << 0),
        /* Other bits are kept for future use. */
 };
 
 struct lttng_bytecode_runtime {
        /* Associated bytecode */
-       struct lttng_filter_bytecode_node *bc;
-       uint64_t (*filter)(void *filter_data, struct lttng_probe_ctx *lttng_probe_ctx,
-                       const char *filter_stack_data);
+       struct lttng_bytecode_node *bc;
+       union {
+               uint64_t (*filter)(void *filter_data,
+                               struct lttng_probe_ctx *lttng_probe_ctx,
+                               const char *filter_stack_data);
+       } interpreter_funcs;
        int link_failed;
        struct list_head node;  /* list of bytecode runtime in event */
        struct lttng_ctx *ctx;
@@ -384,7 +393,7 @@ struct lttng_enabler {
 
        enum lttng_enabler_format_type format_type;
 
-       /* head list of struct lttng_ust_filter_bytecode_node */
+       /* head list of struct lttng_bytecode_node */
        struct list_head filter_bytecode_head;
 
        struct lttng_kernel_event event_param;
@@ -886,7 +895,6 @@ static inline int lttng_syscall_filter_disable_event_notifier(
 
 #endif
 
-void lttng_filter_sync_state(struct lttng_bytecode_runtime *runtime);
 int lttng_event_enabler_attach_filter_bytecode(struct lttng_event_enabler *event_enabler,
                struct lttng_kernel_filter_bytecode __user *bytecode);
 int lttng_event_notifier_enabler_attach_filter_bytecode(
@@ -895,8 +903,8 @@ int lttng_event_notifier_enabler_attach_filter_bytecode(
 
 void lttng_enabler_link_bytecode(const struct lttng_event_desc *event_desc,
                struct lttng_ctx *ctx,
-               struct list_head *bytecode_runtime_head,
-               struct lttng_enabler *enabler);
+               struct list_head *instance_bytecode_runtime_head,
+               struct list_head *enabler_bytecode_runtime_head);
 
 int lttng_probes_init(void);
 
This page took 0.024599 seconds and 4 git commands to generate.