Implement enumeration type
[lttng-modules.git] / lttng-events.h
index 5d0ef4dc72b307881e57c730be87e385929b6164..9c8f03b8d4fc27849cf31c557e44de78da350fd8 100644 (file)
@@ -69,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;
 };
 
@@ -101,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;
@@ -149,11 +155,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 */
This page took 0.023407 seconds and 4 git commands to generate.