+struct lttng_interpreter_output;
+
+enum lttng_kernel_bytecode_type {
+ LTTNG_KERNEL_BYTECODE_TYPE_FILTER,
+ LTTNG_KERNEL_BYTECODE_TYPE_CAPTURE,
+};
+
+struct lttng_kernel_bytecode_node {
+ enum lttng_kernel_bytecode_type type;
+ struct list_head node;
+ struct lttng_enabler *enabler;
+ struct {
+ uint32_t len;
+ uint32_t reloc_offset;
+ uint64_t seqnum;
+ char data[];
+ } bc;
+};
+
+struct lttng_kernel_bytecode_runtime {
+ /* Associated bytecode */
+ enum lttng_kernel_bytecode_type type;
+ struct lttng_kernel_bytecode_node *bc;
+ int (*interpreter_func)(struct lttng_kernel_bytecode_runtime *kernel_bytecode,
+ const char *interpreter_stack_data,
+ struct lttng_kernel_probe_ctx *lttng_probe_ctx,
+ void *caller_ctx);
+ int link_failed;
+ struct list_head node; /* list of bytecode runtime in event */
+ struct lttng_kernel_ctx *ctx;
+};
+