X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libustcmd%2Fustcmd.c;h=46a95618439915336fc654f9a90495b479d11039;hb=b9318b35947bbd6d3b2998b28d974c5e5bfabcf6;hp=7a05afa20079944b0ce3e79e60efcf06cc17f233;hpb=2a79ceebcba229c91c93272705444c61c458bb06;p=ust.git diff --git a/libustcmd/ustcmd.c b/libustcmd/ustcmd.c index 7a05afa..46a9561 100644 --- a/libustcmd/ustcmd.c +++ b/libustcmd/ustcmd.c @@ -150,6 +150,61 @@ int ustcmd_set_subbuf_num(const char *channel_size, pid_t pid) return 0; } +/** + * Get subbuffer size. + * + * @param channel Channel name + * @param pid Traced process ID + * @return subbuf size if successful, or error + */ +int ustcmd_get_subbuf_size(const char *channel, pid_t pid) +{ + char *cmd, *reply; + int result; + + /* format: channel_cpu */ + asprintf(&cmd, "%s %s_0", "get_subbuf_size", channel); + + result = ustcmd_send_cmd(cmd, pid, &reply); + if (result) { + free(cmd); + free(reply); + return -1; + } + + result = atoi(reply); + free(cmd); + free(reply); + return result; +} + +/** + * Get subbuffer num. + * + * @param channel Channel name + * @param pid Traced process ID + * @return subbuf cnf if successful, or error + */ +int ustcmd_get_subbuf_num(const char *channel, pid_t pid) +{ + char *cmd, *reply; + int result; + + /* format: channel_cpu */ + asprintf(&cmd, "%s %s_0", "get_n_subbufs", channel); + + result = ustcmd_send_cmd(cmd, pid, &reply); + if (result) { + free(cmd); + free(reply); + return -1; + } + + result = atoi(reply); + free(cmd); + free(reply); + return result; +} /** * Destroys an UST trace according to a PID. @@ -365,6 +420,68 @@ int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid) return 0; } +/** + * Set socket path + * + * @param sock_path Socket path + * @param pid Traced process ID + * @return 0 if successful, or error + */ +int ustcmd_set_sock_path(const char *sock_path, pid_t pid) +{ + char *cmd; + int result; + + asprintf(&cmd, "%s %s", "set_sock_path", sock_path); + + result = ustcmd_send_cmd(cmd, pid, NULL); + if (result != 1) { + free(cmd); + return USTCMD_ERR_GEN; + } + + free(cmd); + return 0; +} + +/** + * Get socket path + * + * @param sock_path Pointer to where the socket path will be returned + * @param pid Traced process ID + * @return 0 if successful, or error + */ +int ustcmd_get_sock_path(char **sock_path, pid_t pid) +{ + char *cmd, *reply; + int result; + + asprintf(&cmd, "%s", "get_sock_path"); + + result = ustcmd_send_cmd(cmd, pid, &reply); + if (result != 1) { + free(cmd); + free(reply); + return USTCMD_ERR_GEN; + } + + free(cmd); + *sock_path = reply; + return 0; +} + +int ustcmd_force_switch(pid_t pid) +{ + int result; + + result = ustcmd_send_cmd("force_switch", pid, NULL); + if (result != 1) { + return USTCMD_ERR_GEN; + } + + return 0; +} + /** * Sends a given command to a traceable process *