X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Ffd-tracker%2Futils.hpp;fp=src%2Fcommon%2Ffd-tracker%2Futils.hpp;h=0507c39374275f54a57616c06d065144e6f7770e;hb=7532fa3bd22e403958f46cd35c824f490d93292d;hp=0000000000000000000000000000000000000000;hpb=985aea182b618c85c51651f224abedfe367c75ee;p=lttng-tools.git diff --git a/src/common/fd-tracker/utils.hpp b/src/common/fd-tracker/utils.hpp new file mode 100644 index 000000000..0507c3937 --- /dev/null +++ b/src/common/fd-tracker/utils.hpp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2018 Jérémie Galarneau + * + * SPDX-License-Identifier: GPL-2.0-only + * + */ + +#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. + */ +int fd_tracker_util_close_fd(void *, int *fd); + +/* + * Create a pipe and track its underlying fds. + */ +int fd_tracker_util_pipe_open_cloexec( + struct fd_tracker *tracker, const char *name, int *pipe); +int fd_tracker_util_pipe_close(struct fd_tracker *tracker, int *pipe); + +/* + * Create a poll event and track its underlying fd, if applicable. + */ +int fd_tracker_util_poll_create(struct fd_tracker *tracker, + const char *name, + struct lttng_poll_event *events, + int size, + int flags); +int fd_tracker_util_poll_clean( + struct fd_tracker *tracker, struct lttng_poll_event *events); + +struct lttng_directory_handle *fd_tracker_create_directory_handle( + struct fd_tracker *tracker, const char *path); + +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 */