X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttng-events.h;h=9c8f03b8d4fc27849cf31c557e44de78da350fd8;hb=dc5cd5702b74d72f0db0141c6d888a1d820aed9c;hp=fe7628473c2afa7a7c55590379624160ebbbc0a9;hpb=f513b2bf88afa9a36a725fbf8e91e3a3f3efebc9;p=lttng-modules.git diff --git a/lttng-events.h b/lttng-events.h index fe762847..9c8f03b8 100644 --- a/lttng-events.h +++ b/lttng-events.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -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, }; @@ -67,8 +69,13 @@ enum channel_type { METADATA_CHANNEL, }; +struct lttng_enum_value { + unsigned long long value; + unsigned int signedness:1; +}; + struct lttng_enum_entry { - unsigned long long start, end; /* start and end are inclusive */ + struct lttng_enum_value start, end; /* start and end are inclusive */ const char *string; }; @@ -99,7 +106,8 @@ struct lttng_integer_type { union _lttng_basic_type { struct lttng_integer_type integer; struct { - const char *name; + const struct lttng_enum_desc *desc; /* Enumeration mapping */ + struct lttng_integer_type container_type; } enumeration; struct { enum lttng_string_encodings encoding; @@ -139,14 +147,18 @@ 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; }; -struct lttng_enum { +struct lttng_enum_desc { const char *name; - struct lttng_type container_type; const struct lttng_enum_entry *entries; - unsigned int len; + unsigned int nr_entries; }; /* Event field description */ @@ -447,6 +459,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 +648,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);