Implement filter bytecode support in lttng-session, and parse filter string
[lttng-tools.git] / src / bin / lttng-sessiond / lttng-ust-abi.h
index 1bf82ed4431ee8cc1267f8e6606012f05f7bad43..d8b10c257039effd035a9c7edc04fd4fba356d6f 100644 (file)
@@ -88,6 +88,23 @@ struct lttng_ust_event {
        } u;
 };
 
+enum lttng_ust_field_type {
+       LTTNG_UST_FIELD_OTHER                   = 0,
+       LTTNG_UST_FIELD_INTEGER                 = 1,
+       LTTNG_UST_FIELD_ENUM                    = 2,
+       LTTNG_UST_FIELD_FLOAT                   = 3,
+       LTTNG_UST_FIELD_STRING                  = 4,
+};
+
+#define LTTNG_UST_FIELD_ITER_PADDING           LTTNG_UST_SYM_NAME_LEN + 32
+struct lttng_ust_field_iter {
+       char event_name[LTTNG_UST_SYM_NAME_LEN];
+       char field_name[LTTNG_UST_SYM_NAME_LEN];
+       enum lttng_ust_field_type type;
+       int loglevel;                           /* event loglevel */
+       char padding[LTTNG_UST_FIELD_ITER_PADDING];
+};
+
 enum lttng_ust_context_type {
        LTTNG_UST_CONTEXT_VTID                  = 0,
        LTTNG_UST_CONTEXT_VPID                  = 1,
@@ -151,6 +168,13 @@ struct lttng_ust_calibrate {
        } u;
 };
 
+#define FILTER_BYTECODE_MAX_LEN                65535
+struct lttng_ust_filter_bytecode {
+       uint16_t len;
+       uint16_t reloc_offset;
+       char data[0];
+};
+
 #define _UST_CMD(minor)                                (minor)
 #define _UST_CMDR(minor, type)                 (minor)
 #define _UST_CMDW(minor, type)                 (minor)
@@ -167,6 +191,7 @@ struct lttng_ust_calibrate {
 #define LTTNG_UST_TRACEPOINT_LIST              _UST_CMD(0x42)
 #define LTTNG_UST_WAIT_QUIESCENT               _UST_CMD(0x43)
 #define LTTNG_UST_REGISTER_DONE                        _UST_CMD(0x44)
+#define LTTNG_UST_TRACEPOINT_FIELD_LIST                _UST_CMD(0x45)
 
 /* Session FD commands */
 #define LTTNG_UST_METADATA                     \
@@ -193,6 +218,7 @@ struct lttng_ust_calibrate {
 
 /* Tracepoint list commands */
 #define LTTNG_UST_TRACEPOINT_LIST_GET          _UST_CMD(0x90)
+#define LTTNG_UST_TRACEPOINT_FIELD_LIST_GET    _UST_CMD(0x91)
 
 #define LTTNG_UST_ROOT_HANDLE  0
 
@@ -209,6 +235,9 @@ union ust_args {
                int *wait_fd;
                uint64_t *memory_map_size;
        } stream;
+       struct {
+               struct lttng_ust_field_iter entry;
+       } field_list;
 };
 
 struct lttng_ust_objd_ops {
This page took 0.024002 seconds and 4 git commands to generate.