payload: use fd_handle instead of raw file descriptors
[lttng-tools.git] / src / common / unix.h
1 /*
2 * Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 */
7
8 #ifndef _LTTCOMM_UNIX_H
9 #define _LTTCOMM_UNIX_H
10
11 #include <limits.h>
12 #include <sys/un.h>
13
14 #include <common/compat/socket.h>
15 #include <common/macros.h>
16 #include <common/payload.h>
17 #include <common/payload-view.h>
18
19 LTTNG_HIDDEN
20 int lttcomm_create_unix_sock(const char *pathname);
21 LTTNG_HIDDEN
22 int lttcomm_create_anon_unix_socketpair(int *fds);
23 LTTNG_HIDDEN
24 int lttcomm_connect_unix_sock(const char *pathname);
25 LTTNG_HIDDEN
26 int lttcomm_accept_unix_sock(int sock);
27 LTTNG_HIDDEN
28 int lttcomm_listen_unix_sock(int sock);
29 LTTNG_HIDDEN
30 int lttcomm_close_unix_sock(int sock);
31
32 /* Send a message accompanied by fd(s) over a unix socket. */
33 LTTNG_HIDDEN
34 ssize_t lttcomm_send_fds_unix_sock(int sock, const int *fds, size_t nb_fd);
35 LTTNG_HIDDEN
36 ssize_t lttcomm_send_payload_view_fds_unix_sock(int sock,
37 struct lttng_payload_view *view);
38 LTTNG_HIDDEN
39 ssize_t lttcomm_send_fds_unix_sock_non_block(
40 int sock, const int *fds, size_t nb_fd);
41 LTTNG_HIDDEN
42 ssize_t lttcomm_send_payload_view_fds_unix_sock_non_block(int sock,
43 struct lttng_payload_view *view);
44
45 /* Recv a message accompanied by fd(s) from a unix socket */
46 LTTNG_HIDDEN
47 ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd);
48 LTTNG_HIDDEN
49 ssize_t lttcomm_recv_payload_fds_unix_sock(int sock, size_t nb_fd,
50 struct lttng_payload *payload);
51 LTTNG_HIDDEN
52 ssize_t lttcomm_recv_fds_unix_sock_non_block(int sock, int *fds, size_t nb_fd);
53 LTTNG_HIDDEN
54 ssize_t lttcomm_recv_payload_fds_unix_sock_non_block(int sock, size_t nb_fd,
55 struct lttng_payload *payload);
56
57 LTTNG_HIDDEN
58 ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len);
59 LTTNG_HIDDEN
60 ssize_t lttcomm_recv_unix_sock_non_block(int sock, void *buf, size_t len);
61 LTTNG_HIDDEN
62 ssize_t lttcomm_send_unix_sock(int sock, const void *buf, size_t len);
63 LTTNG_HIDDEN
64 ssize_t lttcomm_send_unix_sock_non_block(int sock, const void *buf, size_t len);
65
66 LTTNG_HIDDEN
67 ssize_t lttcomm_send_creds_unix_sock(int sock, const void *buf, size_t len);
68 LTTNG_HIDDEN
69 ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len,
70 lttng_sock_cred *creds);
71
72 LTTNG_HIDDEN
73 int lttcomm_setsockopt_creds_unix_sock(int sock);
74
75 #endif /* _LTTCOMM_UNIX_H */
This page took 0.041644 seconds and 4 git commands to generate.