X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Funix.hpp;fp=src%2Fcommon%2Funix.hpp;h=b662160cff5bff729f27c5bbb61c671162d9d409;hb=7532fa3bd22e403958f46cd35c824f490d93292d;hp=0000000000000000000000000000000000000000;hpb=985aea182b618c85c51651f224abedfe367c75ee;p=deliverable%2Flttng-tools.git diff --git a/src/common/unix.hpp b/src/common/unix.hpp new file mode 100644 index 000000000..b662160cf --- /dev/null +++ b/src/common/unix.hpp @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2012 David Goulet + * + * SPDX-License-Identifier: GPL-2.0-only + * + */ + +#ifndef _LTTCOMM_UNIX_H +#define _LTTCOMM_UNIX_H + +#include +#include + +#include +#include +#include +#include + +int lttcomm_create_unix_sock(const char *pathname); +int lttcomm_create_anon_unix_socketpair(int *fds); +int lttcomm_connect_unix_sock(const char *pathname); +int lttcomm_accept_unix_sock(int sock); +int lttcomm_listen_unix_sock(int sock); +int lttcomm_close_unix_sock(int sock); + +/* Send a message accompanied by fd(s) over a unix socket. */ +ssize_t lttcomm_send_fds_unix_sock(int sock, const int *fds, size_t nb_fd); +ssize_t lttcomm_send_payload_view_fds_unix_sock(int sock, + struct lttng_payload_view *view); +ssize_t lttcomm_send_fds_unix_sock_non_block( + int sock, const int *fds, size_t nb_fd); +ssize_t lttcomm_send_payload_view_fds_unix_sock_non_block(int sock, + struct lttng_payload_view *view); + +/* Recv a message accompanied by fd(s) from a unix socket */ +ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd); +ssize_t lttcomm_recv_payload_fds_unix_sock(int sock, size_t nb_fd, + struct lttng_payload *payload); +ssize_t lttcomm_recv_fds_unix_sock_non_block(int sock, int *fds, size_t nb_fd); +ssize_t lttcomm_recv_payload_fds_unix_sock_non_block(int sock, size_t nb_fd, + struct lttng_payload *payload); + +ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len); +ssize_t lttcomm_recv_unix_sock_non_block(int sock, void *buf, size_t len); +ssize_t lttcomm_send_unix_sock(int sock, const void *buf, size_t len); +ssize_t lttcomm_send_unix_sock_non_block(int sock, const void *buf, size_t len); + +ssize_t lttcomm_send_creds_unix_sock(int sock, const void *buf, size_t len); +ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len, + lttng_sock_cred *creds); + +int lttcomm_setsockopt_creds_unix_sock(int sock); + +#endif /* _LTTCOMM_UNIX_H */