X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl-helper.h;h=ed91148f6760aed8ed89e7ddf96b8a121fa68c83;hp=58b3dba57fecb13c93a946fd8b759ace6b531ba1;hb=refs%2Fheads%2Fsow-2019-0002-rev1;hpb=6c71277b0dc97ce8a4ac6b8d359b4b349c04b658 diff --git a/src/lib/lttng-ctl/lttng-ctl-helper.h b/src/lib/lttng-ctl/lttng-ctl-helper.h index 58b3dba57..ed91148f6 100644 --- a/src/lib/lttng-ctl/lttng-ctl-helper.h +++ b/src/lib/lttng-ctl/lttng-ctl-helper.h @@ -1,24 +1,13 @@ /* * Copyright (C) 2013 David Goulet * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_CTL_HELPER_H #define LTTNG_CTL_HELPER_H -#define _GNU_SOURCE #include #include @@ -36,14 +25,55 @@ 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 of the + * 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_varlen(struct lttcomm_session_msg *lsm, - void *vardata, size_t varlen, void **buf); +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); + +/* + * 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, + 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) +{ + return lttng_ctl_ask_sessiond_fds_varlen(lsm, fds, nb_fd, NULL, + 0, NULL, NULL, NULL); +} + +/* + * Calls lttng_ctl_ask_sessiond_fds_varlen() with fds with no expected command + * header and with varlen data. + */ +static inline int lttng_ctl_ask_sessiond_fds_varlen_no_cmd_header( + struct lttcomm_session_msg *lsm, + const int *fds, + size_t nb_fd, + void *vardata, + size_t vardata_len, + void **user_payload_buf) +{ + return lttng_ctl_ask_sessiond_fds_varlen(lsm, fds, nb_fd, vardata, + vardata_len, user_payload_buf, NULL, NULL); +} /* * Use this if no variable length data needs to be sent. @@ -51,9 +81,11 @@ int lttng_ctl_ask_sessiond_varlen(struct lttcomm_session_msg *lsm, static inline int lttng_ctl_ask_sessiond(struct lttcomm_session_msg *lsm, void **buf) { - return lttng_ctl_ask_sessiond_varlen(lsm, NULL, 0, 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 */