Update version to 0.16
[ust.git] / libustcomm / ustcomm.h
index ed8470f773e92cb93b2018166ce4b0392b360b49..4706b72fbb930eaf4d22e5d1ac11702fe627171a 100644 (file)
 #include <ust/kcompat/kcompat.h>
 
 #define SOCK_DIR "/tmp/ust-app-socks"
+#define USER_TMP_DIR "/tmp"
+#define USER_SOCK_DIR_BASE "ust-socks-"
+#define USER_SOCK_DIR USER_TMP_DIR "/" USER_SOCK_DIR_BASE
 
 struct ustcomm_sock {
-       struct list_head list;
+       struct cds_list_head list;
        int fd;
        int epoll_fd;
 };
@@ -78,12 +81,13 @@ enum tracectl_commands {
        STOP_TRACE,
 };
 
-struct ustcomm_trace_info {
-       char *trace;
+struct ustcomm_single_field {
+       char *field;
        char data[USTCOMM_DATA_SIZE];
 };
 
 struct ustcomm_channel_info {
+       char *trace;
        char *channel;
        unsigned int subbuf_size;
        unsigned int subbuf_num;
@@ -91,6 +95,7 @@ struct ustcomm_channel_info {
 };
 
 struct ustcomm_buffer_info {
+       char *trace;
        char *channel;
        int ch_cpu;
        pid_t pid;
@@ -100,14 +105,10 @@ struct ustcomm_buffer_info {
        char data[USTCOMM_DATA_SIZE];
 };
 
-struct ustcomm_marker_info {
+struct ustcomm_ust_marker_info {
+       char *trace;
        char *channel;
-       char *marker;
-       char data[USTCOMM_DATA_SIZE];
-};
-
-struct ustcomm_sock_path {
-       char *sock_path;
+       char *ust_marker;
        char data[USTCOMM_DATA_SIZE];
 };
 
@@ -120,11 +121,11 @@ struct ustcomm_notify_buf_mapped {
 };
 
 /* Ensure directory existence, usefull for unix sockets */
-extern int ensure_dir_exists(const char *dir);
+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 list_head *list);
+                                              struct cds_list_head *list);
 extern void ustcomm_del_sock(struct ustcomm_sock *sock, int keep_in_epoll);
 
 /* Create and delete named sockets */
@@ -158,6 +159,16 @@ extern int ustcomm_req(int sock,
                       char *res_data);
 
 extern int ustcomm_request_consumer(pid_t pid, const char *channel);
+
+/* Returns the current users socket directory, must be freed */
+extern char *ustcomm_user_sock_dir(void);
+
+/* Get the st_m_time from proc*/
+extern time_t ustcomm_pid_st_mtime(pid_t pid);
+
+/* Check that a socket is live */
+extern int ustcomm_is_socket_live(char *sock_name, pid_t *read_pid);
+
 extern int ustcomm_connect_app(pid_t pid, int *app_fd);
 extern int ustcomm_connect_path(const char *path, int *connection_fd);
 
@@ -177,37 +188,33 @@ extern char * ustcomm_restore_ptr(char *ptr, char *data_field,
        (size_t) (long)(struct_ptr)->data - (long)(struct_ptr) + (offset)
 
 /* Packing and unpacking functions, making life easier */
-extern int ustcomm_pack_trace_info(struct ustcomm_header *header,
-                                  struct ustcomm_trace_info *trace_inf,
+extern int ustcomm_pack_single_field(struct ustcomm_header *header,
+                                  struct ustcomm_single_field *sf,
                                   const char *trace);
 
-extern int ustcomm_unpack_trace_info(struct ustcomm_trace_info *trace_inf);
+extern int ustcomm_unpack_single_field(struct ustcomm_single_field *sf);
 
 extern int ustcomm_pack_channel_info(struct ustcomm_header *header,
                                     struct ustcomm_channel_info *ch_inf,
+                                    const char *trace,
                                     const char *channel);
 
 extern int ustcomm_unpack_channel_info(struct ustcomm_channel_info *ch_inf);
 
 extern int ustcomm_pack_buffer_info(struct ustcomm_header *header,
                                    struct ustcomm_buffer_info *buf_inf,
+                                   const char *trace,
                                    const char *channel,
                                    int channel_cpu);
 
 extern int ustcomm_unpack_buffer_info(struct ustcomm_buffer_info *buf_inf);
 
-extern int ustcomm_pack_marker_info(struct ustcomm_header *header,
-                                   struct ustcomm_marker_info *marker_inf,
+extern int ustcomm_pack_ust_marker_info(struct ustcomm_header *header,
+                                   struct ustcomm_ust_marker_info *ust_marker_inf,
+                                   const char *trace,
                                    const char *channel,
-                                   const char *marker);
-
-extern int ustcomm_unpack_marker_info(struct ustcomm_marker_info *marker_inf);
-
-
-extern int ustcomm_pack_sock_path(struct ustcomm_header *header,
-                                 struct ustcomm_sock_path *sock_path_inf,
-                                 const char *socket_path);
+                                   const char *ust_marker);
 
-extern int ustcomm_unpack_sock_path(struct ustcomm_sock_path *sock_path_inf);
+extern int ustcomm_unpack_ust_marker_info(struct ustcomm_ust_marker_info *ust_marker_inf);
 
 #endif /* USTCOMM_H */
This page took 0.024197 seconds and 4 git commands to generate.