lttng-destroy(1): add usage examples
[lttng-tools.git] / src / common / fd-handle.h
1 /*
2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 *
6 */
7
8 #ifndef FD_HANDLE_H
9 #define FD_HANDLE_H
10
11 #include <common/macros.h>
12
13 /*
14 * Wrapper around a file descriptor providing reference counting semantics.
15 *
16 * An fd_handle will close() the underlying file descriptor when its reference
17 * count reaches zero.
18 */
19 struct fd_handle;
20
21 /* Create a file descriptor handle. */
22 LTTNG_HIDDEN
23 struct fd_handle *fd_handle_create(int fd);
24
25 /* Acquire reference to a file descriptor handle. */
26 LTTNG_HIDDEN
27 void fd_handle_get(struct fd_handle *handle);
28
29 /* Release reference to a file descriptor handle. */
30 LTTNG_HIDDEN
31 void fd_handle_put(struct fd_handle *handle);
32
33 /*
34 * Return the underlying file descriptor of a file descriptor handle.
35 *
36 * This function can't fail.
37 */
38 LTTNG_HIDDEN
39 int fd_handle_get_fd(struct fd_handle *handle);
40
41 /*
42 * Obtain a copy of a file descriptor handle.
43 *
44 * On success, the caller becomes the sole owner of the returned file descriptor
45 * handle. The underlying file descriptor is duplicated using dup(). Refer to
46 * the system documentation for the semantics of dup() for this particular file
47 * descriptor type.
48 */
49 LTTNG_HIDDEN
50 struct fd_handle *fd_handle_copy(const struct fd_handle *handle);
51
52 #endif /* FS_HANDLE_H */
This page took 0.029485 seconds and 4 git commands to generate.