Add ctf_enum_auto() for autoincrementing enumeration values
[lttng-modules.git] / lttng-events.h
index 5d0ef4dc72b307881e57c730be87e385929b6164..42a7b24bbb35f103e771d8488cf11ffc6273f265 100644 (file)
@@ -69,9 +69,17 @@ 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;
+       struct {
+               unsigned int is_auto:1;
+       } options;
 };
 
 #define __type_integer(_type, _size, _alignment, _signedness,  \
@@ -101,7 +109,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;
@@ -149,11 +158,10 @@ struct lttng_type {
        } 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 */
@@ -528,6 +536,7 @@ int lttng_session_enable(struct lttng_session *session);
 int lttng_session_disable(struct lttng_session *session);
 void lttng_session_destroy(struct lttng_session *session);
 int lttng_session_metadata_regenerate(struct lttng_session *session);
+int lttng_session_statedump(struct lttng_session *session);
 void metadata_cache_destroy(struct kref *kref);
 
 struct lttng_channel *lttng_channel_create(struct lttng_session *session,
This page took 0.023667 seconds and 4 git commands to generate.