+struct ustcomm_marker_info {
+ char *trace;
+ char *channel;
+ char *marker;
+ char data[USTCOMM_DATA_SIZE];
+};
+
+struct ustcomm_pidunique {
+ s64 pidunique;
+};
+
+struct ustcomm_notify_buf_mapped {
+ char data[USTCOMM_DATA_SIZE];
+};
+
+/* Ensure directory existence, usefull for unix sockets */
+extern int ensure_dir_exists(const char *dir, mode_t mode);
+
+/* Create and delete sockets */
+extern struct ustcomm_sock * ustcomm_init_sock(int fd, int epoll_fd,
+ struct cds_list_head *list);
+extern void ustcomm_del_sock(struct ustcomm_sock *sock, int keep_in_epoll);
+
+/* Create and delete named sockets */
+extern struct ustcomm_sock * ustcomm_init_named_socket(const char *name,
+ int epoll_fd);
+extern void ustcomm_del_named_sock(struct ustcomm_sock *sock,
+ int keep_socket_file);
+
+/* Send and receive functions for file descriptors */
+extern int ustcomm_send_fd(int sock, const struct ustcomm_header *header,
+ const char *data, int *fd);
+extern int ustcomm_recv_fd(int sock, struct ustcomm_header *header,
+ char *data, int *fd);
+
+/* Normal send and receive functions */
+extern int ustcomm_send(int sock, const struct ustcomm_header *header,
+ const char *data);
+extern int ustcomm_recv(int sock, struct ustcomm_header *header,
+ char *data);
+
+/* Receive and allocate data, not to be used inside libust */
+extern int ustcomm_recv_alloc(int sock,
+ struct ustcomm_header *header,
+ char **data);
+
+/* Request function, send and receive */
+extern int ustcomm_req(int sock,
+ const struct ustcomm_header *req_header,
+ const char *req_data,
+ struct ustcomm_header *res_header,
+ char *res_data);