Update loglevel selection ABI
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 31 Jan 2012 22:17:48 +0000 (17:17 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 31 Jan 2012 22:17:48 +0000 (17:17 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/lttng/ust-abi.h
liblttng-ust/ltt-events.c
liblttng-ust/ltt-probes.c
liblttng-ust/lttng-ust-abi.c

index 470645e6cf9e4ff58f37524febf4ebd26f088893..c03a4da177d44ecb5811186433ca0eb342d4efe6 100644 (file)
@@ -29,7 +29,11 @@ enum lttng_ust_instrumentation {
        LTTNG_UST_TRACEPOINT            = 0,
        LTTNG_UST_PROBE                 = 1,
        LTTNG_UST_FUNCTION              = 2,
-       LTTNG_UST_TRACEPOINT_LOGLEVEL   = 3,
+};
+
+enum lttng_ust_loglevel_type {
+       LTTNG_UST_LOGLEVEL              = 0,
+       LTTNG_UST_LOGLEVEL_ONLY         = 1,
 };
 
 enum lttng_ust_output {
@@ -55,8 +59,12 @@ struct lttng_ust_stream {
 };
 
 struct lttng_ust_event {
-       char name[LTTNG_UST_SYM_NAME_LEN];      /* event name */
        enum lttng_ust_instrumentation instrumentation;
+       char name[LTTNG_UST_SYM_NAME_LEN];      /* event name */
+
+       enum lttng_ust_loglevel_type loglevel_type;
+       char loglevel[LTTNG_UST_SYM_NAME_LEN];  /* loglevel name */
+
        /* Per instrumentation type configuration */
        union {
        } u;
index 85afc1ba63599027ea930d4aea52a0f07856241c..2f94d8c9c10b745f19b6725936aa072fecb7c7c0 100644 (file)
@@ -548,9 +548,6 @@ int ltt_event_create(struct ltt_channel *chan,
                                goto add_pending_error;
                }
                break;
-       case LTTNG_UST_TRACEPOINT_LOGLEVEL:
-               assert(0);
-               break;
        default:
                WARN_ON_ONCE(1);
        }
index 12ddb47973ee9d3fb7be28b5dd120c74af5137b9..98928cf369049bed6e5898b1a5507491e7674b53 100644 (file)
@@ -315,6 +315,7 @@ void _probes_create_loglevel_events(struct loglevel_entry *entry,
 /*
  * Add the loglevel to the loglevel hash table. Must be called with
  * ust lock held.
+ * TODO: should be integrated with events and wildcards.
  */
 struct session_loglevel *add_loglevel(const char *name,
        struct ltt_channel *chan,
index b3db6fd735c7e91239a0f61e3e89898b9754c545..baea888586536c6555dbad8422db5d86b4a08cba 100644 (file)
@@ -669,44 +669,6 @@ objd_error:
        return ret;
 }
 
-static
-int lttng_abi_create_loglevel(int channel_objd,
-                             struct lttng_ust_event *event_param)
-{
-       struct ltt_channel *channel = objd_private(channel_objd);
-       struct session_loglevel *loglevel;
-       int loglevel_objd, ret;
-
-       event_param->name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
-       loglevel_objd = objd_alloc(NULL, &lttng_loglevel_ops);
-       if (loglevel_objd < 0) {
-               ret = loglevel_objd;
-               goto objd_error;
-       }
-       /*
-        * We tolerate no failure path after loglevel creation. It will
-        * stay invariant for the rest of the session.
-        */
-       ret = ltt_loglevel_create(channel, event_param, &loglevel);
-       if (ret < 0) {
-               goto loglevel_error;
-       }
-       objd_set_private(loglevel_objd, loglevel);
-       /* The loglevel holds a reference on the channel */
-       objd_ref(channel_objd);
-       return loglevel_objd;
-
-loglevel_error:
-       {
-               int err;
-
-               err = lttng_ust_objd_unref(loglevel_objd);
-               assert(!err);
-       }
-objd_error:
-       return ret;
-}
-
 static
 int lttng_abi_create_wildcard(int channel_objd,
                              struct lttng_ust_event *event_param)
@@ -787,15 +749,11 @@ long lttng_channel_cmd(int objd, unsigned int cmd, unsigned long arg,
        {
                struct lttng_ust_event *event_param =
                        (struct lttng_ust_event *) arg;
-               if (event_param->instrumentation == LTTNG_UST_TRACEPOINT_LOGLEVEL) {
-                       return lttng_abi_create_loglevel(objd, event_param);
+               if (event_param->name[strlen(event_param->name) - 1] == '*') {
+                       /* If ends with wildcard, create wildcard. */
+                       return lttng_abi_create_wildcard(objd, event_param);
                } else {
-                       if (event_param->name[strlen(event_param->name) - 1] == '*') {
-                               /* If ends with wildcard, create wildcard. */
-                               return lttng_abi_create_wildcard(objd, event_param);
-                       } else {
-                               return lttng_abi_create_event(objd, event_param);
-                       }
+                       return lttng_abi_create_event(objd, event_param);
                }
        }
        case LTTNG_UST_CONTEXT:
This page took 0.027043 seconds and 4 git commands to generate.