Move away headers that will be deprecated
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 16 Jun 2011 19:09:17 +0000 (15:09 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 16 Jun 2011 19:09:17 +0000 (15:09 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Makefile.am
configure.ac
deprecated/ustconsumer.h [new file with mode: 0644]
deprecated/ustctl.h [new file with mode: 0644]
include/Makefile.am
include/ust/ustconsumer.h [deleted file]
include/ust/ustctl.h [deleted file]
usttrace [deleted file]

index bff619836298e38d90aaec245f36d2f19a488a4e..0a9cde64acfe3d892db0b1bbf5efce60a1551325 100644 (file)
@@ -5,10 +5,9 @@ ACLOCAL_AMFLAGS = -I config
 # libust and '.' (that contains the linker script). However, '.'
 # must be installed after libust so it can overwrite libust.so with
 # the linker script.
-SUBDIRS = snprintf libustcomm libustctl libust . tests libustinstr-malloc libustconsumer ust-consumerd ustctl libustfork include doc
+SUBDIRS = snprintf libust . tests libustinstr-malloc libustfork include doc
 
 EXTRA_DIST = libust.ldscript.in libust-initializer.c libust-initializer.h
-dist_bin_SCRIPTS = usttrace
 
 ldscriptsdir = $(libdir)
 ldscripts_DATA = libust.so libust-initializer.o
@@ -24,4 +23,4 @@ libust-initializer.o: libust-initializer.c
        $(CC) $(CFLAGS) -fno-strict-aliasing -fPIC -c -I$(top_srcdir)/include -I$(top_srcdir) -o $@ $<
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = ust.pc
\ No newline at end of file
+pkgconfig_DATA = ust.pc
index a24525fd00756d46d62ade6c237767617345aad2..8594a4707c1a9f053b1950e877285dab6438465e 100644 (file)
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([ust], [0.14], [mathieu dot desnoyers at efficios dot com])
+AC_INIT([ust], [1.9.0], [mathieu dot desnoyers at efficios dot com])
 AC_CONFIG_AUX_DIR([config])
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
@@ -26,18 +26,8 @@ AC_PROG_MAKE_SET
 AC_PROG_LIBTOOL
 
 ## Checks for libraries.
-## FIXME: Replace `main' with a function in `-ldl':
-#AC_CHECK_LIB([dl], [main])
-## FIXME: Replace `main' with a function in `-lmarkers':
-#AC_CHECK_LIB([markers], [main])
-## FIXME: Replace `main' with a function in `-lpthread':
-#AC_CHECK_LIB([pthread], [main])
-## FIXME: Replace `main' with a function in `-ltracectl':
-#AC_CHECK_LIB([tracectl], [main])
-## FIXME: Replace `main' with a function in `-ltracing':
-#AC_CHECK_LIB([tracing], [main])
-## FIXME: Replace `main' with a function in `-lurcu':
-#AC_CHECK_LIB([urcu], [main])
+AC_CHECK_LIB([dl], [dlopen])
+AC_CHECK_LIB([pthread], [pthread_create])
 
 # Checks for header files.
 #AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
@@ -172,11 +162,6 @@ AC_CONFIG_FILES([
        tests/exit-fast/Makefile
        libustinstr-malloc/Makefile
        libustfork/Makefile
-       libustconsumer/Makefile
-       ust-consumerd/Makefile
-       ustctl/Makefile
-       libustcomm/Makefile
-       libustctl/Makefile
        snprintf/Makefile
        ust.pc
        include/ust/version.h
diff --git a/deprecated/ustconsumer.h b/deprecated/ustconsumer.h
new file mode 100644 (file)
index 0000000..8c53488
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+ * libustconsumer header file
+ *
+ * Copyright 2005-2010 -
+ *              Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
+ * Copyright 2010-
+ *              Oumarou Dicko <oumarou.dicko@polymtl.ca>
+ *              Michael Sills-Lavoie <michael.sills-lavoie@polymtl.ca>
+ *              Alexis Halle <alexis.halle@polymtl.ca>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _USTCONSUMER_H
+#define _USTCONSUMER_H
+
+#include <pthread.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <urcu/list.h>
+
+#define USTCONSUMER_DEFAULT_TRACE_PATH "/tmp/usttrace"
+
+struct ustcomm_sock;
+
+struct buffer_info {
+       char *name;
+       char *trace;
+       char *channel;
+       int channel_cpu;
+
+       pid_t pid;
+       int app_sock;
+       /* The pipe file descriptor */
+       int pipe_fd;
+
+       int shmid;
+       int bufstruct_shmid;
+
+       /* the buffer memory */
+       void *mem;
+       /* buffer size */
+       int memlen;
+       /* number of subbuffers in buffer */
+       int n_subbufs;
+       /* size of each subbuffer */
+       int subbuf_size;
+       /* subbuf size count order */
+       int subbuf_size_order;
+       /* alloc size of all subbuf */
+       int alloc_size;
+
+       /* the buffer information struct */
+       void *bufstruct_mem;
+
+       long consumed_old;
+
+       int64_t pidunique;
+
+       void *user_data;
+};
+
+struct ustconsumer_callbacks;
+
+/**
+ * struct ustconsumer_instance - Contains the data associated with a trace instance.
+ * The lib user can read but MUST NOT change any attributes but callbacks.
+ * @callbacks: Contains the necessary callbacks for a tracing session.
+ */
+struct ustconsumer_instance {
+       struct ustconsumer_callbacks *callbacks;
+       int quit_program;
+       int is_init;
+       struct cds_list_head connections;
+       int epoll_fd;
+       struct ustcomm_sock *listen_sock;
+       char *sock_path;
+       pthread_mutex_t mutex;
+       int active_buffers;
+       int active_threads;
+};
+
+/**
+* struct ustconsumer_callbacks - Contains the necessary callbacks for a tracing
+* session. The user can set the unnecessary functions to NULL if he does not
+* need them.
+*/
+struct ustconsumer_callbacks {
+       /**
+        * on_open_buffer - Is called after a buffer is attached to process memory
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        * @buf: structure that contains the data associated with the buffer
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_open_buffer)(struct ustconsumer_callbacks *data,
+                               struct buffer_info *buf);
+
+       /**
+        * on_close_buffer - Is called after a buffer is detached from process memory
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        * @buf: structure that contains the data associated with the buffer
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_close_buffer)(struct ustconsumer_callbacks *data,
+                               struct buffer_info *buf);
+
+       /**
+        * on_read_subbuffer - Is called after a subbuffer is a reserved.
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        * @buf: structure that contains the data associated with the buffer
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_read_subbuffer)(struct ustconsumer_callbacks *data,
+                               struct buffer_info *buf);
+
+       /**
+        * on_read_partial_subbuffer - Is called when an incomplete subbuffer
+        *                             is being salvaged from an app crash
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        * @buf: structure that contains the data associated with the buffer
+        * @subbuf_index: index of the subbuffer to read in the buffer
+        * @valid_length: number of bytes considered safe to read
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_read_partial_subbuffer)(struct ustconsumer_callbacks *data,
+                                       struct buffer_info *buf,
+                                       long subbuf_index,
+                                       unsigned long valid_length);
+
+       /**
+        * on_put_error - Is called when a put error has occured and the last
+        *                subbuffer read is no longer safe to keep
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        * @buf: structure that contains the data associated with the buffer
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_put_error)(struct ustconsumer_callbacks *data,
+                               struct buffer_info *buf);
+
+       /**
+        * on_new_thread - Is called when a new thread is created
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_new_thread)(struct ustconsumer_callbacks *data);
+
+       /**
+        * on_close_thread - Is called just before a thread is destroyed
+        *
+        * @data: pointer to the callbacks structure that has been passed to the
+        *        library.
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * It has to be thread safe, because it is called by many threads.
+        */
+       int (*on_close_thread)(struct ustconsumer_callbacks *data);
+
+       /**
+        * on_trace_end - Is called at the very end of the tracing session. At
+        * this time, everything has been closed and the threads have
+        * been destroyed.
+        *
+        * @instance: pointer to the instance structure that has been passed to
+        *            the library.
+        *
+        * Returns 0 if the callback succeeds else not 0.
+        *
+        * After this callback is called, no other callback will be called
+        * again and the tracing instance will be deleted automatically by
+        * libustconsumer. After this call, the user must not use the libustconsumer instance.
+        */
+       int (*on_trace_end)(struct ustconsumer_instance *instance);
+
+       /**
+        * The library's data.
+        */
+       void *user_data;
+};
+
+/**
+ * ustconsumer_new_instance - Is called to create a new tracing session.
+ *
+ * @callbacks:    Pointer to a callbacks structure that contain the user
+ *                callbacks and data.
+ * @sock_path:    Path to the socket used for communication with the traced app
+ *
+ * Returns the instance if the function succeeds else NULL.
+ */
+struct ustconsumer_instance *
+ustconsumer_new_instance(
+       struct ustconsumer_callbacks *callbacks, char *sock_path);
+
+/**
+ * ustconsumer_delete_instance - Is called to free a ustconsumer_instance struct
+ *
+ * @instance: The tracing session instance that needs to be freed.
+ *
+ * This function should only be called if the instance has not been started,
+ * as it will automatically be called at the end of ustconsumer_start_instance.
+ */
+void ustconsumer_delete_instance(struct ustconsumer_instance *instance);
+
+/**
+ * ustconsumer_init_instance - Is called to initiliaze a new tracing session
+ *
+ * @instance: The tracing session instance that needs to be started.
+ *
+ * Returns 0 if the function succeeds.
+ *
+ * This function must be called between ustconsumer_new_instance and
+ * ustconsumer_start_instance. It sets up the communication between the library
+ * and the tracing application.
+ */
+int ustconsumer_init_instance(struct ustconsumer_instance *instance);
+
+/**
+ * ustconsumer_start_instance - Is called to start a new tracing session.
+ *
+ * @instance: The tracing session instance that needs to be started.
+ *
+ * Returns 0 if the function succeeds.
+ *
+ * This is a blocking function. The caller will be blocked on it until the
+ * tracing session is stopped by the user using ustconsumer_stop_instance or until
+ * the traced application terminates
+ */
+int ustconsumer_start_instance(struct ustconsumer_instance *instance);
+
+/**
+ * ustconsumer_stop_instance - Is called to stop a tracing session.
+ *
+ * @instance: The tracing session instance that needs to be stoped.
+ * @send_msg: If true, a message will be sent to the listening thread through
+ *            the daemon socket to force it to return from the poll syscall
+ *            and realize that it must close. This is not necessary if the
+ *            instance is being stopped as part of an interrupt handler, as
+ *            the interrupt itself will cause poll to return.
+ *
+ * Returns 0 if the function succeeds.
+ *
+ * This function returns immediately, it only tells libustconsumer to stop the
+ * instance. The on_trace_end callback will be called when the tracing session
+ * will really be stopped. The instance is deleted automatically by libustconsumer
+ * after on_trace_end is called.
+ */
+int ustconsumer_stop_instance(struct ustconsumer_instance *instance, int send_msg);
+
+#endif /* _USTCONSUMER_H */
+
diff --git a/deprecated/ustctl.h b/deprecated/ustctl.h
new file mode 100644 (file)
index 0000000..33d7ade
--- /dev/null
@@ -0,0 +1,98 @@
+/* Copyright (C) 2009  Pierre-Marc Fournier
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef _USTCTL_H
+#define _USTCTL_H
+
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <fcntl.h>
+
+#define USTCTL_ERR_CONN                1 /* Process connection error */
+#define USTCTL_ERR_ARG         2 /* Invalid function argument */
+#define USTCTL_ERR_GEN         3 /* General ustctl error */
+
+#define USTCTL_MS_CHR_OFF      '0' /* Marker state 'on' character */
+#define USTCTL_MS_CHR_ON       '1' /* Marker state 'on' character */
+#define USTCTL_MS_OFF          0   /* Marker state 'on' value */
+#define USTCTL_MS_ON           1   /* Marker state 'on' value */
+
+#define USTCTL_SOCK_PATH       "/tmp/socks/"
+
+/* Channel/marker/state/format string (cmsf) info. structure */
+struct ust_marker_status {
+       char *channel; /* Channel name (end of ust_marker_status array if NULL) */
+       char *ust_marker; /* Marker name (end of ust_marker_status array if NULL) */
+       int state; /* State (0 := marker disabled, 1 := marker enabled) */
+       char *fs; /* Format string (end of ust_marker_status array if NULL) */
+};
+
+struct trace_event_status {
+       char *name;
+};
+
+extern pid_t *ustctl_get_online_pids(void);
+
+extern int ustctl_connect_pid(pid_t pid);
+
+extern int ustctl_set_ust_marker_state(int sock, const char *trace,
+                                  const char *channel, const char *ust_marker,
+                                  int state);
+
+extern int ustctl_set_subbuf_size(int sock, const char *trace,
+                                 const char *channel,
+                                 unsigned int subbuf_size);
+
+extern int ustctl_set_subbuf_num(int sock, const char *trace,
+                                const char *channel,
+                                unsigned int num);
+
+extern int ustctl_get_subbuf_size(int sock, const char *trace,
+                                 const char *channel);
+
+extern int ustctl_get_subbuf_num(pid_t pid, const char *trace,
+                                const char *channel);
+
+extern int ustctl_destroy_trace(int sock, const char *trace);
+
+extern int ustctl_setup_and_start(int sock, const char *trace);
+
+extern int ustctl_stop_trace(int sock, const char *trace);
+
+extern int ustctl_create_trace(int sock, const char *trace);
+
+extern int ustctl_start_trace(int sock, const char *trace);
+
+extern int ustctl_alloc_trace(int sock, const char *trace);
+
+extern int ustctl_free_cmsf(struct ust_marker_status *);
+extern int ustctl_free_tes(struct trace_event_status *);
+extern unsigned int ustctl_count_nl(const char *);
+
+extern int ustctl_get_cmsf(int sock, struct ust_marker_status **);
+
+extern int ustctl_get_tes(int sock, struct trace_event_status **);
+
+extern int ustctl_set_sock_path(int sock, const char *sock_path);
+
+extern int ustctl_get_sock_path(int sock, char **sock_path);
+
+extern int ustctl_force_switch(int sock, const char *trace);
+
+#endif /* _USTCTL_H */
index 6b128faded4c581aacec48d8246b61d8cbdcc94d..3b1503ffe4f4b208c5f38c128214b064fbce16e2 100644 (file)
@@ -23,6 +23,4 @@ noinst_HEADERS = \
        ust/kcompat/compiler.h \
        ust/kcompat/types.h \
        ust/tracectl.h \
-       ust/ustctl.h \
-       ust/ustconsumer.h \
        ust/stringify.h
diff --git a/include/ust/ustconsumer.h b/include/ust/ustconsumer.h
deleted file mode 100644 (file)
index 8c53488..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * libustconsumer header file
- *
- * Copyright 2005-2010 -
- *              Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
- * Copyright 2010-
- *              Oumarou Dicko <oumarou.dicko@polymtl.ca>
- *              Michael Sills-Lavoie <michael.sills-lavoie@polymtl.ca>
- *              Alexis Halle <alexis.halle@polymtl.ca>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef _USTCONSUMER_H
-#define _USTCONSUMER_H
-
-#include <pthread.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <urcu/list.h>
-
-#define USTCONSUMER_DEFAULT_TRACE_PATH "/tmp/usttrace"
-
-struct ustcomm_sock;
-
-struct buffer_info {
-       char *name;
-       char *trace;
-       char *channel;
-       int channel_cpu;
-
-       pid_t pid;
-       int app_sock;
-       /* The pipe file descriptor */
-       int pipe_fd;
-
-       int shmid;
-       int bufstruct_shmid;
-
-       /* the buffer memory */
-       void *mem;
-       /* buffer size */
-       int memlen;
-       /* number of subbuffers in buffer */
-       int n_subbufs;
-       /* size of each subbuffer */
-       int subbuf_size;
-       /* subbuf size count order */
-       int subbuf_size_order;
-       /* alloc size of all subbuf */
-       int alloc_size;
-
-       /* the buffer information struct */
-       void *bufstruct_mem;
-
-       long consumed_old;
-
-       int64_t pidunique;
-
-       void *user_data;
-};
-
-struct ustconsumer_callbacks;
-
-/**
- * struct ustconsumer_instance - Contains the data associated with a trace instance.
- * The lib user can read but MUST NOT change any attributes but callbacks.
- * @callbacks: Contains the necessary callbacks for a tracing session.
- */
-struct ustconsumer_instance {
-       struct ustconsumer_callbacks *callbacks;
-       int quit_program;
-       int is_init;
-       struct cds_list_head connections;
-       int epoll_fd;
-       struct ustcomm_sock *listen_sock;
-       char *sock_path;
-       pthread_mutex_t mutex;
-       int active_buffers;
-       int active_threads;
-};
-
-/**
-* struct ustconsumer_callbacks - Contains the necessary callbacks for a tracing
-* session. The user can set the unnecessary functions to NULL if he does not
-* need them.
-*/
-struct ustconsumer_callbacks {
-       /**
-        * on_open_buffer - Is called after a buffer is attached to process memory
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        * @buf: structure that contains the data associated with the buffer
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_open_buffer)(struct ustconsumer_callbacks *data,
-                               struct buffer_info *buf);
-
-       /**
-        * on_close_buffer - Is called after a buffer is detached from process memory
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        * @buf: structure that contains the data associated with the buffer
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_close_buffer)(struct ustconsumer_callbacks *data,
-                               struct buffer_info *buf);
-
-       /**
-        * on_read_subbuffer - Is called after a subbuffer is a reserved.
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        * @buf: structure that contains the data associated with the buffer
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_read_subbuffer)(struct ustconsumer_callbacks *data,
-                               struct buffer_info *buf);
-
-       /**
-        * on_read_partial_subbuffer - Is called when an incomplete subbuffer
-        *                             is being salvaged from an app crash
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        * @buf: structure that contains the data associated with the buffer
-        * @subbuf_index: index of the subbuffer to read in the buffer
-        * @valid_length: number of bytes considered safe to read
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_read_partial_subbuffer)(struct ustconsumer_callbacks *data,
-                                       struct buffer_info *buf,
-                                       long subbuf_index,
-                                       unsigned long valid_length);
-
-       /**
-        * on_put_error - Is called when a put error has occured and the last
-        *                subbuffer read is no longer safe to keep
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        * @buf: structure that contains the data associated with the buffer
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_put_error)(struct ustconsumer_callbacks *data,
-                               struct buffer_info *buf);
-
-       /**
-        * on_new_thread - Is called when a new thread is created
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_new_thread)(struct ustconsumer_callbacks *data);
-
-       /**
-        * on_close_thread - Is called just before a thread is destroyed
-        *
-        * @data: pointer to the callbacks structure that has been passed to the
-        *        library.
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * It has to be thread safe, because it is called by many threads.
-        */
-       int (*on_close_thread)(struct ustconsumer_callbacks *data);
-
-       /**
-        * on_trace_end - Is called at the very end of the tracing session. At
-        * this time, everything has been closed and the threads have
-        * been destroyed.
-        *
-        * @instance: pointer to the instance structure that has been passed to
-        *            the library.
-        *
-        * Returns 0 if the callback succeeds else not 0.
-        *
-        * After this callback is called, no other callback will be called
-        * again and the tracing instance will be deleted automatically by
-        * libustconsumer. After this call, the user must not use the libustconsumer instance.
-        */
-       int (*on_trace_end)(struct ustconsumer_instance *instance);
-
-       /**
-        * The library's data.
-        */
-       void *user_data;
-};
-
-/**
- * ustconsumer_new_instance - Is called to create a new tracing session.
- *
- * @callbacks:    Pointer to a callbacks structure that contain the user
- *                callbacks and data.
- * @sock_path:    Path to the socket used for communication with the traced app
- *
- * Returns the instance if the function succeeds else NULL.
- */
-struct ustconsumer_instance *
-ustconsumer_new_instance(
-       struct ustconsumer_callbacks *callbacks, char *sock_path);
-
-/**
- * ustconsumer_delete_instance - Is called to free a ustconsumer_instance struct
- *
- * @instance: The tracing session instance that needs to be freed.
- *
- * This function should only be called if the instance has not been started,
- * as it will automatically be called at the end of ustconsumer_start_instance.
- */
-void ustconsumer_delete_instance(struct ustconsumer_instance *instance);
-
-/**
- * ustconsumer_init_instance - Is called to initiliaze a new tracing session
- *
- * @instance: The tracing session instance that needs to be started.
- *
- * Returns 0 if the function succeeds.
- *
- * This function must be called between ustconsumer_new_instance and
- * ustconsumer_start_instance. It sets up the communication between the library
- * and the tracing application.
- */
-int ustconsumer_init_instance(struct ustconsumer_instance *instance);
-
-/**
- * ustconsumer_start_instance - Is called to start a new tracing session.
- *
- * @instance: The tracing session instance that needs to be started.
- *
- * Returns 0 if the function succeeds.
- *
- * This is a blocking function. The caller will be blocked on it until the
- * tracing session is stopped by the user using ustconsumer_stop_instance or until
- * the traced application terminates
- */
-int ustconsumer_start_instance(struct ustconsumer_instance *instance);
-
-/**
- * ustconsumer_stop_instance - Is called to stop a tracing session.
- *
- * @instance: The tracing session instance that needs to be stoped.
- * @send_msg: If true, a message will be sent to the listening thread through
- *            the daemon socket to force it to return from the poll syscall
- *            and realize that it must close. This is not necessary if the
- *            instance is being stopped as part of an interrupt handler, as
- *            the interrupt itself will cause poll to return.
- *
- * Returns 0 if the function succeeds.
- *
- * This function returns immediately, it only tells libustconsumer to stop the
- * instance. The on_trace_end callback will be called when the tracing session
- * will really be stopped. The instance is deleted automatically by libustconsumer
- * after on_trace_end is called.
- */
-int ustconsumer_stop_instance(struct ustconsumer_instance *instance, int send_msg);
-
-#endif /* _USTCONSUMER_H */
-
diff --git a/include/ust/ustctl.h b/include/ust/ustctl.h
deleted file mode 100644 (file)
index 33d7ade..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 2009  Pierre-Marc Fournier
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef _USTCTL_H
-#define _USTCTL_H
-
-#include <stdio.h>
-#include <unistd.h>
-#include <getopt.h>
-#include <stdlib.h>
-#include <fcntl.h>
-
-#define USTCTL_ERR_CONN                1 /* Process connection error */
-#define USTCTL_ERR_ARG         2 /* Invalid function argument */
-#define USTCTL_ERR_GEN         3 /* General ustctl error */
-
-#define USTCTL_MS_CHR_OFF      '0' /* Marker state 'on' character */
-#define USTCTL_MS_CHR_ON       '1' /* Marker state 'on' character */
-#define USTCTL_MS_OFF          0   /* Marker state 'on' value */
-#define USTCTL_MS_ON           1   /* Marker state 'on' value */
-
-#define USTCTL_SOCK_PATH       "/tmp/socks/"
-
-/* Channel/marker/state/format string (cmsf) info. structure */
-struct ust_marker_status {
-       char *channel; /* Channel name (end of ust_marker_status array if NULL) */
-       char *ust_marker; /* Marker name (end of ust_marker_status array if NULL) */
-       int state; /* State (0 := marker disabled, 1 := marker enabled) */
-       char *fs; /* Format string (end of ust_marker_status array if NULL) */
-};
-
-struct trace_event_status {
-       char *name;
-};
-
-extern pid_t *ustctl_get_online_pids(void);
-
-extern int ustctl_connect_pid(pid_t pid);
-
-extern int ustctl_set_ust_marker_state(int sock, const char *trace,
-                                  const char *channel, const char *ust_marker,
-                                  int state);
-
-extern int ustctl_set_subbuf_size(int sock, const char *trace,
-                                 const char *channel,
-                                 unsigned int subbuf_size);
-
-extern int ustctl_set_subbuf_num(int sock, const char *trace,
-                                const char *channel,
-                                unsigned int num);
-
-extern int ustctl_get_subbuf_size(int sock, const char *trace,
-                                 const char *channel);
-
-extern int ustctl_get_subbuf_num(pid_t pid, const char *trace,
-                                const char *channel);
-
-extern int ustctl_destroy_trace(int sock, const char *trace);
-
-extern int ustctl_setup_and_start(int sock, const char *trace);
-
-extern int ustctl_stop_trace(int sock, const char *trace);
-
-extern int ustctl_create_trace(int sock, const char *trace);
-
-extern int ustctl_start_trace(int sock, const char *trace);
-
-extern int ustctl_alloc_trace(int sock, const char *trace);
-
-extern int ustctl_free_cmsf(struct ust_marker_status *);
-extern int ustctl_free_tes(struct trace_event_status *);
-extern unsigned int ustctl_count_nl(const char *);
-
-extern int ustctl_get_cmsf(int sock, struct ust_marker_status **);
-
-extern int ustctl_get_tes(int sock, struct trace_event_status **);
-
-extern int ustctl_set_sock_path(int sock, const char *sock_path);
-
-extern int ustctl_get_sock_path(int sock, char **sock_path);
-
-extern int ustctl_force_switch(int sock, const char *trace);
-
-#endif /* _USTCTL_H */
diff --git a/usttrace b/usttrace
deleted file mode 100755 (executable)
index e76dae7..0000000
--- a/usttrace
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/bin/sh
-
-# usttrace  by Pierre-Marc Fournier 2009
-# Distributed under the GPLv2.
-
-error() {
-       echo "$0: error: $1" 1>&2
-}
-
-sighandler() {
-       echo "Caught Ctrl-C"
-       if [ -z "${UST_CONSUMERD_PID}" ]; then
-               UST_CONSUMERD_PID=`cat $pidfilepath`
-       fi
-       # Tell the daemon to die
-       kill -TERM "${UST_CONSUMERD_PID}"
-
-       echo "Waiting for ust-consumerd to shutdown..."
-       wait "${UST_CONSUMERD_PID}"
-
-       rm "$pidfilepath"
-
-       exit 0;
-}
-
-USTTRACE_DIR="$(dirname $0)"
-if [ -x "${USTTRACE_DIR}/ust-consumerd/ust-consumerd" ] ; then
-    # Use the not installed libraries instead
-    UST_CONSUMERD="${USTTRACE_DIR}/ust-consumerd/ust-consumerd"
-    LIBINTERFORK_PATH="${USTTRACE_DIR}/libustfork/.libs/libustfork.so"
-    LIBMALLOCWRAP_PATH="${USTTRACE_DIR}/libustinstr-malloc/.libs/libustinstr-malloc.so"
-    LIBUST_PATH="${USTTRACE_DIR}/libust/.libs/libust.so"
-else
-    # Use the libraries that the dynamic link finds
-    UST_CONSUMERD="ust-consumerd"
-    if [ ! -x "$(which ust-consumerd 2>/dev/null)" ]; then
-        error "cannot find an executable ust-consumerd; make sure its location is in the PATH"
-        exit 1
-    fi
-    LIBINTERFORK_PATH="libustfork.so"
-    LIBMALLOCWRAP_PATH="libustinstr-malloc.so"
-    LIBUST_PATH="libust.so.0"
-fi
-
-BASE_TRACE_DIR="${HOME}/.usttraces"
-
-usage() {
-       echo "usage:  $0 OPTIONS COMMAND" 1>&2
-       echo "" 1>&2
-       echo "Options:" 1>&2
-       echo "    -l    Runtime link with UST library." 1>&2
-       echo "          (Needed only if program was not linked at compile time with libust.)" 1>&2
-       echo "    -L    Add path to ust libraries to LD_LIBRARY_PATH." 1>&2
-       echo "    -m    Instrument malloc calls." 1>&2
-       echo "    -f    Also trace forked processes." 1>&2
-       echo "    -s    Use system-wide daemon instead of creating one for this session." 1>&2
-       echo "    -S    Specify the subbuffer size." 1>&2
-       echo "    -N    Specify the number of subbuffers." 1>&2
-       echo "    -o    Output directory of the trace." 1>&2
-}
-
-while getopts ":hlLmfsWS:N:o:" options; do
-       case $options in
-               l) arg_preload_libust=1;;
-               L) arg_ld_std_ust=1;;
-               m) arg_preload_malloc=1;;
-               f) arg_preload_fork=1;;
-               s) arg_syswide_daemon=1;;
-               W) where=1;;
-               S) export UST_SUBBUF_SIZE=$OPTARG;;
-               N) export UST_SUBBUF_NUM=$OPTARG;;
-               o) OUTPUT_DIR=$OPTARG;;
-               h) usage;
-                  exit 0;;
-               \?) usage
-                       exit 1;;
-               *) usage
-                       exit 1;;
-       esac
-done
-shift $(($OPTIND - 1))
-
-if [ -n "$where" ]; then
-       echo $BASE_TRACE_DIR/$(ls "$BASE_TRACE_DIR" | tail -n 1)
-       exit 0
-fi
-
-# Prepare vars
-CMD=$*
-
-# Validate input
-if [ -z "$HOME" ];
-then
-       error "no home specified"
-fi
-
-if [ -z "$CMD" ];
-then
-       error "no command specified"
-       usage;
-       exit 1
-fi
-
-# Create directory for trace output
-if [ -n "$OUTPUT_DIR" ]; then
-       OUTDIR=$OUTPUT_DIR
-else
-       DATESTRING="$(hostname)-$(date +%Y%m%d%H%M%S%N)"
-       OUTDIR="$BASE_TRACE_DIR/$DATESTRING"
-fi
-
-# Check if directory exist
-if [ ! -d "$OUTDIR" ]; then
-       mkdir -p $OUTDIR
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-fi
-
-# Choose ust-consumerd socket path
-UST_CONSUMERD_SOCKPATH="/tmp/ust-consumerd-sock-$$"
-
-if [ "$arg_syswide_daemon" != "1" ];
-then
-       pidfilepath="/tmp/usttrace-$USER-$(date +%Y%m%d%H%M%S%N)-ust-consumerd-pid"
-       trap "sighandler $pidfilepath" INT
-       mkfifo -m 0600 "$pidfilepath"
-       # Start daemon
-       ${UST_CONSUMERD} --pidfile "$pidfilepath" -s "${UST_CONSUMERD_SOCKPATH}" -o "$OUTDIR" >"$OUTDIR/ust-consumerd.log" 2>&1 &
-       # ust-consumerd sets up its server socket
-       # ust-consumerd opens the pidfile, blocks because no one has opened it
-       # we open pidfile
-       # we block reading pidfile
-       # ust-consumerd writes to pidfile
-       # ust-consumerd closes pidfile
-       # we unblock reading pidfile
-       UST_CONSUMERD_PID=`cat $pidfilepath`
-       export UST_DAEMON_SOCKET="${UST_CONSUMERD_SOCKPATH}"
-fi
-
-# Establish the environment for the command
-(
-    export UST_TRACE=1
-    export UST_AUTOPROBE=1
-
-    if [ "$arg_preload_libust" = "1" ];
-    then
-       if [ -n "${LIBUST_PATH%libust.so}" ];
-       then
-               if [ -n "$LD_LIBRARY_PATH" ];
-               then
-                       export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${LIBUST_PATH%libust.so}"
-               else
-                       export LD_LIBRARY_PATH="${LIBUST_PATH%libust.so}"
-               fi
-       fi
-       if [ -n "$LIBUST_PATH" ];
-       then
-               if [ -n "$LD_PRELOAD" ];
-               then
-                       export LD_PRELOAD="$LD_PRELOAD:$LIBUST_PATH"
-               else
-                       export LD_PRELOAD="$LIBUST_PATH"
-               fi
-       fi
-    fi
-
-    if [ "$arg_ld_std_ust" = "1" ] && [ -n "${LIBUST_PATH%libust.so}" ];
-    then
-       if [ -n "$LD_LIBRARY_PATH" ];
-       then
-               export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${LIBUST_PATH%libust.so}"
-       else
-               export LD_LIBRARY_PATH="${LIBUST_PATH%libust.so}"
-       fi
-    fi
-
-    if [ "$arg_preload_malloc" = "1" ] && [ -n "$LIBMALLOCWRAP_PATH" ];
-    then
-       if [ -n "$LD_PRELOAD" ];
-       then
-               export LD_PRELOAD="$LD_PRELOAD:$LIBMALLOCWRAP_PATH"
-       else
-               export LD_PRELOAD="$LIBMALLOCWRAP_PATH"
-       fi
-    fi
-
-    if [ "$arg_preload_fork" = "1" ] && [ -n "$LIBINTERFORK_PATH" ];
-    then
-       if [ -n "$LD_PRELOAD" ];
-       then
-               export LD_PRELOAD="$LD_PRELOAD:$LIBINTERFORK_PATH"
-       else
-               export LD_PRELOAD="$LIBINTERFORK_PATH"
-       fi
-    fi
-
-# Execute the command
-    $CMD 2>&1
-) | tee "$OUTDIR/app.log"
-
-## Because of the keepalive mechanism, we're sure that by the time
-## we get here, the daemon is connected to all the buffers that still exist.
-## Therefore we can politely ask it to die when it's done.
-
-if [ "$arg_syswide_daemon" != "1" ];
-then
-       # Tell the daemon to die
-       kill -TERM "${UST_CONSUMERD_PID}"
-
-       echo "Waiting for ust-consumerd to shutdown..."
-       wait "${UST_CONSUMERD_PID}"
-
-       rm "$pidfilepath"
-fi
-
-echo "Trace was output in: " $OUTDIR
This page took 0.036371 seconds and 4 git commands to generate.