X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Fmain.c;h=e65e8198b756add9dc21ce96922300dd2170147e;hp=68481146eb1badc3bc30c2810448434013ac50a5;hb=2ef84c95c5158ce40e77229fb5705524ff22be7b;hpb=33cb613d0d0e9238591566ce7b86868f9976c597 diff --git a/ltt-sessiond/main.c b/ltt-sessiond/main.c index 68481146e..e65e8198b 100644 --- a/ltt-sessiond/main.c +++ b/ltt-sessiond/main.c @@ -658,6 +658,7 @@ static int process_client_msg(struct command_ctx *cmd_ctx) switch (cmd_ctx->lsm->cmd_type) { case LTTNG_CREATE_SESSION: case LTTNG_LIST_SESSIONS: + case KERNEL_LIST_EVENTS: case UST_LIST_APPS: break; default: @@ -676,6 +677,7 @@ static int process_client_msg(struct command_ctx *cmd_ctx) case KERNEL_CREATE_STREAM: case KERNEL_DISABLE_EVENT: case KERNEL_ENABLE_EVENT: + case KERNEL_LIST_EVENTS: case KERNEL_OPEN_METADATA: case KERNEL_START_TRACE: case KERNEL_STOP_TRACE: @@ -761,6 +763,34 @@ static int process_client_msg(struct command_ctx *cmd_ctx) ret = LTTCOMM_OK; break; } + case KERNEL_LIST_EVENTS: + { + char *event_list; + ssize_t size; + + size = kernel_list_events(kernel_tracer_fd, &event_list); + if (size < 0) { + ret = LTTCOMM_KERN_LIST_FAIL; + goto error; + } + + /* + * Setup lttng message with payload size set to the event list size in + * bytes and then copy list into the llm payload. + */ + ret = setup_lttng_msg(cmd_ctx, size); + if (ret < 0) { + goto setup_error; + } + + /* Copy event list into message payload */ + memcpy(cmd_ctx->llm->payload, event_list, size); + + free(event_list); + + ret = LTTCOMM_OK; + break; + } case KERNEL_OPEN_METADATA: { /* Setup lttng message with no payload */