X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.cpp;h=96ed7b41b8abc5f5afc60a6b20de84950c1445ca;hb=d93bbc2a50cd24ea2837d8710c99b71b5d1a5f11;hp=03ed2aa10a4459891018fe038b7a8cbdbaf50c75;hpb=dd7ef1243236f524e57b25baa038973e793d5d72;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/lttng-ctl.cpp b/src/lib/lttng-ctl/lttng-ctl.cpp index 03ed2aa10..96ed7b41b 100644 --- a/src/lib/lttng-ctl/lttng-ctl.cpp +++ b/src/lib/lttng-ctl/lttng-ctl.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -1180,7 +1181,7 @@ int lttng_enable_event_with_exclusions(struct lttng_handle *handle, serialize: ret = lttng_event_serialize(ev, exclusion_count, - const_cast(exclusion_list), + exclusion_list, filter_expression, bytecode_len, (ctx && bytecode_len) ? &ctx->bytecode->b : nullptr, @@ -2877,6 +2878,34 @@ end: return ret; } +/* + * Get the status of the kernel tracer + * + * Sets the value of the argument + */ +enum lttng_error_code lttng_get_kernel_tracer_status(enum lttng_kernel_tracer_status *out_status) +{ + if (out_status == nullptr) { + return LTTNG_ERR_INVALID; + } + + struct lttcomm_session_msg lsm = {}; + lsm.cmd_type = LTTCOMM_SESSIOND_COMMAND_KERNEL_TRACER_STATUS; + + uint32_t *raw_tracer_status = nullptr; + const auto ask_ret = lttng_ctl_ask_sessiond(&lsm, (void **) &raw_tracer_status); + + const auto tracer_status = + lttng::make_unique_wrapper(raw_tracer_status); + + if (ask_ret != 4) { + return LTTNG_ERR_INVALID; + } + + *out_status = (enum lttng_kernel_tracer_status) * tracer_status; + return LTTNG_OK; +} + /* * Regenerate the metadata for a session. * Return 0 on success, a negative error code on error.