X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Ffd-tracker%2Futils.h;h=202c4a1b846f47d0dd434daa32daccd0020ff0bc;hp=e1c3b790dc173add970801eaed378deb28ca848e;hb=640b9481e1805d314256361ed49d55dcc35d6172;hpb=df038819ef174fb8b0d5a76c293a3b94ce2a43b9 diff --git a/src/common/fd-tracker/utils.h b/src/common/fd-tracker/utils.h index e1c3b790d..202c4a1b8 100644 --- a/src/common/fd-tracker/utils.h +++ b/src/common/fd-tracker/utils.h @@ -1,27 +1,56 @@ /* - * Copyright (C) 2018 - Jérémie Galarneau + * Copyright (C) 2018 Jérémie Galarneau * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License, version 2 only, as - * published by the Free Software Foundation. + * SPDX-License-Identifier: GPL-2.0-only * - * This program 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 General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 51 - * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef FD_TRACKER_UTILS_H #define FD_TRACKER_UTILS_H +#include +#include +#include + +struct lttng_poll_event; + /* * Utility implementing a close_fd callback which receives one file descriptor * and closes it, returning close()'s return value. */ +LTTNG_HIDDEN int fd_tracker_util_close_fd(void *, int *fd); +/* + * Create a pipe and track its underlying fds. + */ +LTTNG_HIDDEN +int fd_tracker_util_pipe_open_cloexec( + struct fd_tracker *tracker, const char *name, int *pipe); +LTTNG_HIDDEN +int fd_tracker_util_pipe_close(struct fd_tracker *tracker, int *pipe); + +/* + * Create a poll event and track its underlying fd, if applicable. + */ +LTTNG_HIDDEN +int fd_tracker_util_poll_create(struct fd_tracker *tracker, + const char *name, + struct lttng_poll_event *events, + int size, + int flags); +LTTNG_HIDDEN +int fd_tracker_util_poll_clean( + struct fd_tracker *tracker, struct lttng_poll_event *events); + +LTTNG_HIDDEN +struct lttng_directory_handle *fd_tracker_create_directory_handle( + struct fd_tracker *tracker, const char *path); + +LTTNG_HIDDEN +struct lttng_directory_handle *fd_tracker_create_directory_handle_from_handle( + struct fd_tracker *tracker, + struct lttng_directory_handle *handle, + const char *path); + #endif /* FD_TRACKER_UTILS_H */