Implement custom field support
[deliverable/lttng-modules.git] / lttng-events.h
index fe7628473c2afa7a7c55590379624160ebbbc0a9..5d0ef4dc72b307881e57c730be87e385929b6164 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/kprobes.h>
 #include <linux/kref.h>
 #include <wrapper/uuid.h>
+#include <lttng-tracer.h>
 #include <lttng-abi.h>
 #include <lttng-abi-old.h>
 
@@ -52,6 +53,7 @@ enum abstract_types {
        atype_struct,
        atype_array_compound,           /* Array of compound types. */
        atype_sequence_compound,        /* Sequence of compound types. */
+       atype_variant,
        NR_ABSTRACT_TYPES,
 };
 
@@ -139,6 +141,11 @@ struct lttng_type {
                        struct lttng_type *elem_type;
                        const char *length_name;
                } sequence_compound;
+               struct {
+                       const char *tag_name;
+                       struct lttng_event_field *choices; /* Array of fields. */
+                       uint32_t nr_choices;
+               } variant;
        } u;
 };
 
@@ -447,6 +454,14 @@ struct lttng_metadata_stream {
        uint64_t version;               /* Current version of the metadata cache */
 };
 
+#define LTTNG_DYNAMIC_LEN_STACK_SIZE   128
+
+struct lttng_dynamic_len_stack {
+       size_t stack[LTTNG_DYNAMIC_LEN_STACK_SIZE];
+       size_t offset;
+};
+
+DECLARE_PER_CPU(struct lttng_dynamic_len_stack, lttng_dynamic_len_stack);
 
 /*
  * struct lttng_pid_tracker declared in header due to deferencing of *v
@@ -628,6 +643,8 @@ int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
 void lttng_enabler_event_link_bytecode(struct lttng_event *event,
                struct lttng_enabler *enabler);
 
+int lttng_probes_init(void);
+
 extern struct lttng_ctx *lttng_static_ctx;
 
 int lttng_context_init(void);
This page took 0.024874 seconds and 5 git commands to generate.