X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl-helper.hpp;fp=src%2Flib%2Flttng-ctl%2Flttng-ctl-helper.hpp;h=4b025a4e268d753543b7929e59c2dc15e63a1d9b;hp=0000000000000000000000000000000000000000;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/src/lib/lttng-ctl/lttng-ctl-helper.hpp b/src/lib/lttng-ctl/lttng-ctl-helper.hpp new file mode 100644 index 000000000..4b025a4e2 --- /dev/null +++ b/src/lib/lttng-ctl/lttng-ctl-helper.hpp @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2013 David Goulet + * + * SPDX-License-Identifier: LGPL-2.1-only + * + */ + +#ifndef LTTNG_CTL_HELPER_H +#define LTTNG_CTL_HELPER_H + +#include + +#include +#include + +/* Copy helper functions. */ +void lttng_ctl_copy_lttng_domain(struct lttng_domain *dst, + struct lttng_domain *src); + +/* + * Sends the lttcomm message to the session daemon and fills buf if the + * returned data is not NULL. + * + * Return the size of the received data on success or else a negative lttng + * error code. If buf is NULL, 0 is returned on success. + */ +int lttng_ctl_ask_sessiond_fds_varlen(struct lttcomm_session_msg *lsm, + const int *fds, size_t nb_fd, + const void *vardata, size_t vardata_len, + void **user_payload_buf, void **user_cmd_header_buf, + size_t *user_cmd_header_len); + +/* + * Sends the lttcomm message to the session daemon and fills the reply payload. + * + * Return the size of the received data on success or else a negative lttng + * error code. + */ +int lttng_ctl_ask_sessiond_payload(struct lttng_payload_view *message, + struct lttng_payload *reply); + +/* + * Calls lttng_ctl_ask_sessiond_fds_varlen() with no expected command header. + */ +static inline int lttng_ctl_ask_sessiond_varlen_no_cmd_header( + struct lttcomm_session_msg *lsm, + const void *vardata, + size_t vardata_len, + void **user_payload_buf) +{ + return lttng_ctl_ask_sessiond_fds_varlen(lsm, NULL, 0, vardata, + vardata_len, user_payload_buf, NULL, NULL); +} + +/* + * Calls lttng_ctl_ask_sessiond_fds_varlen() with fds and no expected command header. + */ +static inline +int lttng_ctl_ask_sessiond_fds_no_cmd_header(struct lttcomm_session_msg *lsm, + const int *fds, size_t nb_fd, void **buf __attribute__((unused))) +{ + return lttng_ctl_ask_sessiond_fds_varlen(lsm, fds, nb_fd, NULL, + 0, NULL, NULL, NULL); +} +/* + * Use this if no variable length data needs to be sent. + */ +static inline +int lttng_ctl_ask_sessiond(struct lttcomm_session_msg *lsm, void **buf) +{ + return lttng_ctl_ask_sessiond_varlen_no_cmd_header(lsm, NULL, 0, buf); +} + +int lttng_check_tracing_group(void); + +int connect_sessiond(void); + +#endif /* LTTNG_CTL_HELPER_H */