#include <limits.h>
#include <lttng/lttng.h>
+#include <lttng-ust.h>
#define LTTNG_RUNDIR "/var/run/lttng"
#define DEFAULT_HOME_CLIENT_UNIX_SOCK "%s/.client-ltt-sessiond"
/* Queue size of listen(2) */
-#define MAX_LISTEN 10
+#define MAX_LISTEN 64
-/* Get the error code index from 0 since
- * LTTCOMM_OK start at 1000
+/*
+ * Get the error code index from 0 since LTTCOMM_OK start at 1000
*/
#define LTTCOMM_ERR_INDEX(code) (code - LTTCOMM_OK)
LTTNG_LIST_EVENTS,
LTTNG_LIST_SESSIONS,
LTTNG_LIST_TRACEPOINTS,
+ LTTNG_REGISTER_CONSUMER,
LTTNG_START_TRACE,
LTTNG_STOP_TRACE,
};
LTTCOMM_SELECT_SESS, /* Must select a session */
LTTCOMM_EXIST_SESS, /* Session name already exist */
LTTCOMM_NO_EVENT, /* No event found */
+ LTTCOMM_CONNECT_FAIL, /* Unable to connect to unix socket */
LTTCOMM_KERN_NA, /* Kernel tracer unavalable */
LTTCOMM_KERN_EVENT_EXIST, /* Kernel event already exists */
LTTCOMM_KERN_SESS_FAIL, /* Kernel create session failed */
LTTCOMM_KERN_DIR_EXIST, /* Kernel trace directory exist */
LTTCOMM_KERN_NO_SESSION, /* No kernel session found */
LTTCOMM_KERN_LIST_FAIL, /* Kernel listing events failed */
+ LTTCOMM_UST_SESS_FAIL, /* UST create session failed */
KCONSUMERD_COMMAND_SOCK_READY, /* when kconsumerd command socket ready */
KCONSUMERD_SUCCESS_RECV_FD, /* success on receiving fds */
KCONSUMERD_ERROR_RECV_FD, /* error on receiving fds */
char event_name[NAME_MAX];
struct lttng_event_context ctx;
} context;
+ /* Use by register_consumer */
+ struct {
+ char path[PATH_MAX];
+ } reg;
/* List */
struct {
char channel_name[NAME_MAX];
enum lttng_event_output output; /* use splice or mmap to consume this fd */
};
+/*
+ * Data structure for the commands sent from sessiond to UST.
+ */
+struct lttcomm_ust_msg {
+ uint32_t handle;
+ uint32_t cmd;
+ union {
+ struct lttng_ust_tracer_version version;
+ struct lttng_ust_channel channel;
+ struct lttng_ust_event event;
+ struct lttng_ust_context context;
+ } u;
+};
+
+/*
+ * Data structure for the response from UST to the session daemon.
+ * cmd_type is sent back in the reply for validation.
+ */
+struct lttcomm_ust_reply {
+ uint32_t handle;
+ uint32_t cmd;
+ uint32_t ret_code; /* enum lttcomm_return_code */
+ uint32_t ret_val; /* return value */
+ union {
+ } u;
+};
+
extern int lttcomm_create_unix_sock(const char *pathname);
extern int lttcomm_connect_unix_sock(const char *pathname);
extern int lttcomm_accept_unix_sock(int sock);