X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=liblttngctl%2Fliblttngctl.c;h=bd02a13b2c451fad17d6b0612472bba7b5652023;hb=520ff6876d5fdf7e5421733a8f2a7d0c20e43c8c;hp=9afd6fda3239e0085c24ec433383ac2755019bd8;hpb=8028d92056a3f0f8999cb895d0fd21eeca0ce849;p=lttng-tools.git diff --git a/liblttngctl/liblttngctl.c b/liblttngctl/liblttngctl.c index 9afd6fda3..bd02a13b2 100644 --- a/liblttngctl/liblttngctl.c +++ b/liblttngctl/liblttngctl.c @@ -167,6 +167,51 @@ const char *lttng_get_readable_code(int code) return lttcomm_get_readable_code(code); } +/* + * lttng_ust_start_trace + * + * Request a trace start for pid. + */ +int lttng_ust_start_trace(pid_t pid) +{ + int ret; + + lsm.pid = pid; + ret = ask_sessiond(UST_START_TRACE, NULL); + + return ret; +} + +/* + * lttng_ust_stop_trace + * + * Request a trace stop for pid. + */ +int lttng_ust_stop_trace(pid_t pid) +{ + int ret; + + lsm.pid = pid; + ret = ask_sessiond(UST_STOP_TRACE, NULL); + + return ret; +} + +/* + * lttng_ust_create_trace + * + * Request a trace creation for pid. + */ +int lttng_ust_create_trace(pid_t pid) +{ + int ret; + + lsm.pid = pid; + ret = ask_sessiond(UST_CREATE_TRACE, NULL); + + return ret; +} + /* * lttng_ust_list_apps * @@ -188,6 +233,28 @@ int lttng_ust_list_apps(pid_t **pids) return ret / sizeof(pid_t); } +/* + * lttng_list_traces + * + * Ask the session daemon for all traces (kernel and ust) + * for the session identified by uuid. + * + * Return the number of traces. + */ +int lttng_list_traces(uuid_t *uuid, struct lttng_trace **traces) +{ + int ret; + + uuid_copy(lsm.session_id, *uuid); + + ret = ask_sessiond(LTTNG_LIST_TRACES, (void **) traces); + if (ret < 0) { + return ret; + } + + return ret / sizeof(struct lttng_trace); +} + /* * lttng_create_session * @@ -197,7 +264,6 @@ int lttng_ust_list_apps(pid_t **pids) int lttng_create_session(char *name, uuid_t *session_id) { int ret; - char *uuid; strncpy(lsm.session_name, name, sizeof(lsm.session_name)); lsm.session_name[sizeof(lsm.session_name) - 1] = '\0'; @@ -281,6 +347,34 @@ int lttng_connect_sessiond(void) return 0; } +/* + * lttng_disconnect_sessiond + * + * Clean disconnect the session daemon. + */ +int lttng_disconnect_sessiond(void) +{ + int ret = 0; + + if (connected) { + ret = lttcomm_close_unix_sock(sessiond_socket); + sessiond_socket = 0; + connected = 0; + } + + return ret; +} + +/* + * lttng_set_current_session_uuid + * + * Set the session uuid for current lsm. + */ +void lttng_set_current_session_uuid(char *uuid) +{ + uuid_parse(uuid, lsm.session_id); +} + /* * lttng_set_tracing_group *