- /* Get long real uuid_t from session daemon */
- count = lttng_list_sessions(&sessions);
- for (i = 0; i < count; i++) {
- uuid_unparse(sessions[i].uuid, long_str_uuid);
- if (strncmp(long_str_uuid, short_str_uuid, 8) == 0) {
- uuid_copy(current_uuid, sessions[i].uuid);
- break;
- }
+ /* Create an empty channel (with no event) */
+ ret = lttng_kernel_create_channel();
+ if (ret < 0) {
+ goto error;
+ }
+
+ /* Opening metadata for session */
+ ret = lttng_kernel_open_metadata();
+ if (ret < 0) {
+ goto error;
+ }
+
+ return 0;
+
+error:
+ return ret;
+}
+
+/*
+ * process_opt_kernel_list_events
+ *
+ * Ask for all trace events in the kernel and pretty print them.
+ */
+static int process_opt_kernel_list_events(void)
+{
+ int ret, pos, size;
+ char *event_list, *event, *ptr;
+
+ DBG("Getting all tracing events");
+
+ ret = lttng_kernel_list_events(&event_list);
+ if (ret < 0) {
+ ERR("Unable to list events.");
+ return ret;
+ }
+
+ MSG("Kernel tracepoints:\n-------------");
+
+ ptr = event_list;
+ while ((size = sscanf(ptr, "event { name = %m[^;]; };%n\n", &event, &pos)) == 1) {
+ MSG(" - %s", event);
+ /* Move pointer to the next line */
+ ptr += pos + 1;
+ free(event);
+ }
+
+ free(event_list);
+
+ return 0;
+}
+
+/*
+ * process_opt_kernel_event
+ *
+ * Enable kernel event from the command line list given.
+ */
+static int process_opt_kernel_event(void)
+{
+ int ret;
+ char *event_name;
+
+ if (opt_enable_all_event) {
+ ret = lttng_kernel_enable_event(NULL);
+ if (ret < 0) {
+ ERR("%s", lttng_get_readable_code(ret));
+ } else {
+ MSG("All kernel event enabled");