Define a structure for event exclusion data
[lttng-tools.git] / src / common / sessiond-comm / sessiond-comm.h
index 229b91e5901cae11e83a4675f48c047e8e07c32f..9a33479f3da604ad00dc5e277a1c26e36a0a321b 100644 (file)
@@ -81,7 +81,7 @@ enum lttcomm_sessiond_command {
        LTTNG_ENABLE_CONSUMER               = 20,
        LTTNG_SET_CONSUMER_URI              = 21,
        LTTNG_ENABLE_EVENT_WITH_FILTER      = 22,
-       /* Unused */
+       LTTNG_ENABLE_EVENT_WITH_EXCLUSION   = 23,
        LTTNG_DATA_PENDING                  = 24,
        LTTNG_SNAPSHOT_ADD_OUTPUT           = 25,
        LTTNG_SNAPSHOT_DEL_OUTPUT           = 26,
@@ -230,6 +230,14 @@ struct lttcomm_session_msg {
                        struct lttng_event event;
                        /* Length of following bytecode for filter. */
                        uint32_t bytecode_len;
+                       /* exclusion data */
+                       uint32_t exclusion_count;
+                       /*
+                        * After this structure, the following variable-length
+                        * items are transmitted:
+                        * - char exclusion_names[LTTNG_SYMBOL_NAME_LEN][exclusion_count]
+                        * - unsigned char filter_bytecode[bytecode_len]
+                        */
                } LTTNG_PACKED enable;
                /* Create channel */
                struct {
@@ -284,6 +292,18 @@ struct lttng_filter_bytecode {
        char data[0];
 } LTTNG_PACKED;
 
+/*
+ * Event exclusion data. At the end of the structure, there will actually
+ * by zero or more names, where the actual number of names is given by
+ * the 'count' item of the structure.
+ */
+#define LTTNG_EVENT_EXCLUSION_PADDING  32
+struct lttng_event_exclusion {
+       uint32_t count;
+       char padding[LTTNG_EVENT_EXCLUSION_PADDING];
+       char names[LTTNG_SYMBOL_NAME_LEN][0];
+} LTTNG_PACKED;
+
 /*
  * Data structure for the response from sessiond to the lttng client.
  */
This page took 0.023092 seconds and 4 git commands to generate.