/* Queue size of listen(2) */
#define MAX_LISTEN 10
-/* Maximum amount of PID the list_apps command
- * can send back to the lttng client.
- */
-#define MAX_APPS_PID 20
-
/* Get the error code index from 0 since
* LTTCOMM_OK start at 1000
*/
-#define LTTCOMM_ERR_INDEX(code) code - LTTCOMM_OK
+#define LTTCOMM_ERR_INDEX(code) (code - LTTCOMM_OK)
enum lttcomm_command_type {
LTTNG_CREATE_SESSION,
LTTCOMM_SESSION_FAIL, /* Create session fail */
LTTCOMM_START_FAIL, /* Start tracing fail */
LTTCOMM_LIST_FAIL, /* Listing apps fail */
+ LTTCOMM_NO_APPS, /* No traceable application */
+ LTTCOMM_NO_SESS, /* No sessions available */
+ LTTCOMM_NO_TRACE, /* No trace exist */
+ LTTCOMM_FATAL, /* Session daemon had a fatal error */
+ LTTCOMM_NO_TRACEABLE, /* Error for non traceable app */
+ LTTCOMM_SELECT_SESS, /* Must select a session */
+ LTTCOMM_EXIST_SESS, /* Session name already exist */
LTTCOMM_NR, /* Last element */
};
};
/*
- * Data structure for the lttng client response
+ * Data structure for the lttng client response.
+ *
+ * This data structure is the control struct use in
+ * the header of the transmission. NEVER put variable
+ * size data in here.
*/
struct lttcomm_lttng_msg {
enum lttcomm_command_type cmd_type;
uuid_t session_id;
pid_t pid;
char trace_name[NAME_MAX];
- union {
- /* UST_LIST_APPS */
- struct {
- size_t size;
- pid_t pids[MAX_APPS_PID];
- } list_apps;
- } u;
+ unsigned int size_payload;
};
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);
extern int lttcomm_listen_unix_sock(int sock);
+extern int lttcomm_close_unix_sock(int sock);
extern ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len);
extern ssize_t lttcomm_send_unix_sock(int sock, void *buf, size_t len);
extern const char *lttcomm_get_readable_code(enum lttcomm_return_code code);