X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl-helper.h;fp=src%2Flib%2Flttng-ctl%2Flttng-ctl-helper.h;h=ed9a24fbfcb5f02508b9d3f2ab7a8456e00b1a4d;hp=0000000000000000000000000000000000000000;hb=cac3069d663ba0887b2abf4f114974ae3c0feb91;hpb=8991668e5aee318628b29aa36904855461dad07a diff --git a/src/lib/lttng-ctl/lttng-ctl-helper.h b/src/lib/lttng-ctl/lttng-ctl-helper.h new file mode 100644 index 000000000..ed9a24fbf --- /dev/null +++ b/src/lib/lttng-ctl/lttng-ctl-helper.h @@ -0,0 +1,57 @@ +/* + * 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. + * + * 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 +#include + +/* + * NOTE: Every symbol in this helper header MUST be set to hidden so not to + * polute the library name space. Use LTTNG_HIDDEN macro before declaring the + * function in the C file. + */ + +/* Copy helper functions. */ +void lttng_ctl_copy_string(char *dst, const char *src, size_t len); +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 + * 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); + +/* + * 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(lsm, NULL, 0, buf); +} + +#endif /* LTTNG_CTL_HELPER_H */