Add excluders to enabler structure
authorJP Ikaheimonen <jp_ikaheimonen@mentor.com>
Thu, 7 Nov 2013 10:22:32 +0000 (12:22 +0200)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 13 Nov 2013 20:20:26 +0000 (15:20 -0500)
Define a structure that holds excluders and can be used in lists.
Add a list holding these structures to the enabler structure.
Initialize and destroy the list when the enabler is initialized
and destroyed.

Signed-off-by: JP Ikaheimonen <jp_ikaheimonen@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/lttng/ust-events.h
liblttng-ust/lttng-events.c

index c563511dd522d0bcc7dc23704f1d9477021ce1d0..db8b9dc14a7c112df7cd5805e70b92e9e2c84a69 100644 (file)
@@ -301,6 +301,8 @@ struct lttng_enabler {
 
        /* head list of struct lttng_ust_filter_bytecode_node */
        struct cds_list_head filter_bytecode_head;
+       /* head list of struct lttng_ust_excluder_node */
+       struct cds_list_head excluder_head;
        struct cds_list_head node;      /* per-session list of enablers */
 
        struct lttng_ust_event event_param;
@@ -342,6 +344,15 @@ struct lttng_ust_filter_bytecode_node {
        struct lttng_ust_filter_bytecode bc;
 };
 
+struct lttng_ust_excluder_node {
+       struct cds_list_head node;
+       struct lttng_enabler *enabler;
+       /*
+        * struct lttng_ust_event_exclusion had variable sized array,
+        * must be last field.
+        */
+       struct lttng_ust_event_exclusion excluder;
+};
 /*
  * Filter return value masks.
  */
index 26601a671c976506587564fe556f7eabc16a7566..ad374f3bc521b93527eb9550fcca989917beb078 100644 (file)
@@ -687,6 +687,7 @@ struct lttng_enabler *lttng_enabler_create(enum lttng_enabler_type type,
                return NULL;
        enabler->type = type;
        CDS_INIT_LIST_HEAD(&enabler->filter_bytecode_head);
+       CDS_INIT_LIST_HEAD(&enabler->excluder_head);
        memcpy(&enabler->event_param, event_param,
                sizeof(enabler->event_param));
        enabler->chan = chan;
@@ -767,6 +768,7 @@ static
 void lttng_enabler_destroy(struct lttng_enabler *enabler)
 {
        struct lttng_ust_filter_bytecode_node *filter_node, *tmp_filter_node;
+       struct lttng_ust_excluder_node *excluder_node, *tmp_excluder_node;
 
        /* Destroy filter bytecode */
        cds_list_for_each_entry_safe(filter_node, tmp_filter_node,
@@ -774,6 +776,12 @@ void lttng_enabler_destroy(struct lttng_enabler *enabler)
                free(filter_node);
        }
 
+       /* Destroy excluders */
+       cds_list_for_each_entry_safe(excluder_node, tmp_excluder_node,
+                       &enabler->excluder_head, node) {
+               free(excluder_node);
+       }
+
        /* Destroy contexts */
        lttng_destroy_context(enabler->ctx);
 
This page took 0.027826 seconds and 4 git commands to generate.