Commit | Line | Data |
---|---|---|
df038819 | 1 | /* |
ab5be9fa | 2 | * Copyright (C) 2018 Jérémie Galarneau <jeremie.galarneau@efficios.com> |
df038819 | 3 | * |
ab5be9fa | 4 | * SPDX-License-Identifier: GPL-2.0-only |
df038819 | 5 | * |
df038819 JG |
6 | */ |
7 | ||
8 | #ifndef FD_TRACKER_UTILS_H | |
9 | #define FD_TRACKER_UTILS_H | |
10 | ||
dd95933f | 11 | #include <common/compat/directory-handle.h> |
184597e3 | 12 | #include <common/fd-tracker/fd-tracker.h> |
dd95933f | 13 | #include <common/macros.h> |
184597e3 JG |
14 | |
15 | struct lttng_poll_event; | |
16 | ||
df038819 JG |
17 | /* |
18 | * Utility implementing a close_fd callback which receives one file descriptor | |
19 | * and closes it, returning close()'s return value. | |
20 | */ | |
dd95933f | 21 | LTTNG_HIDDEN |
df038819 JG |
22 | int fd_tracker_util_close_fd(void *, int *fd); |
23 | ||
c3e9c4c6 JG |
24 | /* |
25 | * Create a pipe and track its underlying fds. | |
26 | */ | |
dd95933f | 27 | LTTNG_HIDDEN |
5c1f54d1 JG |
28 | int fd_tracker_util_pipe_open_cloexec( |
29 | struct fd_tracker *tracker, const char *name, int *pipe); | |
dd95933f | 30 | LTTNG_HIDDEN |
c3e9c4c6 JG |
31 | int fd_tracker_util_pipe_close(struct fd_tracker *tracker, int *pipe); |
32 | ||
184597e3 JG |
33 | /* |
34 | * Create a poll event and track its underlying fd, if applicable. | |
35 | */ | |
dd95933f | 36 | LTTNG_HIDDEN |
5c1f54d1 JG |
37 | int fd_tracker_util_poll_create(struct fd_tracker *tracker, |
38 | const char *name, | |
39 | struct lttng_poll_event *events, | |
40 | int size, | |
41 | int flags); | |
dd95933f | 42 | LTTNG_HIDDEN |
5c1f54d1 JG |
43 | int fd_tracker_util_poll_clean( |
44 | struct fd_tracker *tracker, struct lttng_poll_event *events); | |
184597e3 | 45 | |
dd95933f JG |
46 | LTTNG_HIDDEN |
47 | struct lttng_directory_handle *fd_tracker_create_directory_handle( | |
48 | struct fd_tracker *tracker, const char *path); | |
49 | ||
50 | LTTNG_HIDDEN | |
51 | struct lttng_directory_handle *fd_tracker_create_directory_handle_from_handle( | |
52 | struct fd_tracker *tracker, | |
53 | struct lttng_directory_handle *handle, | |
54 | const char *path); | |
55 | ||
df038819 | 56 | #endif /* FD_TRACKER_UTILS_H */ |