X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=52369dc625d565a1e8c26d31520caecea48f5cd8;hp=eb9ae8475f272f9b2ad6ce8f22ce4fabadf5bbc3;hb=6364a07adde1072d595044a19359e61fc27940dd;hpb=0d37f2bce95a09b86a1afde525c429d0ae7d19e9 diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index eb9ae8475..52369dc62 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -30,6 +30,12 @@ #include #include +#include +#include +#include + +#include "inet.h" +#include "inet6.h" #include "unix.h" /* Queue size of listen(2) */ @@ -162,6 +168,7 @@ enum lttcomm_return_code { LTTCOMM_INVALID, /* Invalid parameter */ LTTCOMM_NO_USTCONSUMERD, /* No UST consumer detected */ LTTCOMM_NO_KERNCONSUMERD, /* No Kernel consumer detected */ + LTTCOMM_EVENT_EXIST_LOGLEVEL, /* Event already enabled with different loglevel */ /* MUST be last element */ LTTCOMM_NR, /* Last element */ @@ -287,6 +294,62 @@ struct lttcomm_ust_reply { #endif /* HAVE_LIBLTTNG_UST_CTL */ +/* lttng socket protocol. */ +enum lttcomm_sock_proto { + LTTCOMM_SOCK_UDP, + LTTCOMM_SOCK_TCP, +}; + +/* + * Index in the net_families array below. Please keep in sync! + */ +enum lttcomm_sock_domain { + LTTCOMM_INET, + LTTCOMM_INET6, +}; + +struct lttcomm_sockaddr { + enum lttcomm_sock_domain type; + union { + struct sockaddr_in sin; + struct sockaddr_in6 sin6; + } addr; +}; + +struct lttcomm_sock { + int fd; + enum lttcomm_sock_proto proto; + struct lttcomm_sockaddr sockaddr; + const struct lttcomm_proto_ops *ops; +}; + +struct lttcomm_net_family { + int family; + int (*create) (struct lttcomm_sock *sock, int type, int proto); +}; + +struct lttcomm_proto_ops { + int (*bind) (struct lttcomm_sock *sock); + int (*close) (struct lttcomm_sock *sock); + int (*connect) (struct lttcomm_sock *sock); + struct lttcomm_sock *(*accept) (struct lttcomm_sock *sock); + int (*listen) (struct lttcomm_sock *sock, int backlog); + ssize_t (*recvmsg) (struct lttcomm_sock *sock, void *buf, size_t len, + int flags); + ssize_t (*sendmsg) (struct lttcomm_sock *sock, void *buf, size_t len, + int flags); +}; + extern const char *lttcomm_get_readable_code(enum lttcomm_return_code code); +extern int lttcomm_init_inet_sockaddr(struct lttcomm_sockaddr *sockaddr, + const char *ip, unsigned int port); +extern int lttcomm_init_inet6_sockaddr(struct lttcomm_sockaddr *sockaddr, + const char *ip, unsigned int port); + +extern struct lttcomm_sock *lttcomm_alloc_sock(enum lttcomm_sock_domain domain, + enum lttcomm_sock_proto proto); +extern int lttcomm_create_sock(struct lttcomm_sock *sock, + enum lttcomm_sock_domain domain, enum lttcomm_sock_proto proto); + #endif /* _LTTNG_SESSIOND_COMM_H */