X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=d1a2bd97de18574b82344a6cc52fa169c4ec3a14;hb=fbc9f37df245d544a7705ba576297df791220b44;hp=0b4c05fb795359b3e936008024d41c68eaf3288d;hpb=a2814ea7573bf5edd5323d6f89c48ff14105db69;p=lttng-tools.git diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index 0b4c05fb7..d1a2bd97d 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -41,7 +41,12 @@ #define LTTNG_SESSIOND_COMM_MAX_LISTEN 64 /* Maximum number of FDs that can be sent over a Unix socket */ -#define LTTCOMM_MAX_SEND_FDS 4 +#if defined(__linux__) +/* Based on the kernel's SCM_MAX_FD which is 253 since 2.6.38 (255 before) */ +#define LTTCOMM_MAX_SEND_FDS 253 +#else +#define LTTCOMM_MAX_SEND_FDS 16 +#endif /* * Get the error code index from 0 since LTTCOMM_OK start at 1000 @@ -101,6 +106,7 @@ enum lttcomm_sessiond_command { LTTNG_SESSION_LIST_ROTATION_SCHEDULES = 48, LTTNG_CREATE_SESSION_EXT = 49, LTTNG_CLEAR_SESSION = 50, + LTTNG_LIST_TRIGGERS = 51, }; enum lttcomm_relayd_command { @@ -179,6 +185,7 @@ enum lttcomm_return_code { LTTCOMM_CONSUMERD_TRACE_CHUNK_EXISTS_REMOTE,/* Trace chunk exists on relay daemon. */ LTTCOMM_CONSUMERD_UNKNOWN_TRACE_CHUNK, /* Unknown trace chunk. */ LTTCOMM_CONSUMERD_RELAYD_CLEAR_DISALLOWED, /* Relayd does not accept clear command. */ + LTTCOMM_CONSUMERD_UNKNOWN_ERROR, /* Unknown error. */ /* MUST be last element */ LTTCOMM_NR, /* Last element */ @@ -277,7 +284,7 @@ struct lttcomm_session_msg { /* Event data */ struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event event LTTNG_PACKED; + struct lttng_event event; /* Length of following filter expression. */ uint32_t expression_len; /* Length of following bytecode for filter. */ @@ -296,7 +303,7 @@ struct lttcomm_session_msg { } LTTNG_PACKED enable; struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event event LTTNG_PACKED; + struct lttng_event event; /* Length of following filter expression. */ uint32_t expression_len; /* Length of following bytecode for filter. */ @@ -310,14 +317,13 @@ struct lttcomm_session_msg { } LTTNG_PACKED disable; /* Create channel */ struct { - struct lttng_channel chan LTTNG_PACKED; - /* struct lttng_channel_extended is already packed. */ + struct lttng_channel chan; struct lttng_channel_extended extended; } LTTNG_PACKED channel; /* Context */ struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event_context ctx LTTNG_PACKED; + struct lttng_event_context ctx; uint32_t provider_name_len; uint32_t context_name_len; } LTTNG_PACKED context; @@ -336,18 +342,18 @@ struct lttcomm_session_msg { uint32_t size; } LTTNG_PACKED uri; struct { - struct lttng_snapshot_output output LTTNG_PACKED; + struct lttng_snapshot_output output; } LTTNG_PACKED snapshot_output; struct { uint32_t wait; - struct lttng_snapshot_output output LTTNG_PACKED; + struct lttng_snapshot_output output; } LTTNG_PACKED snapshot_record; struct { uint32_t nb_uri; unsigned int timer_interval; /* usec */ } LTTNG_PACKED session_live; struct { - struct lttng_save_session_attr attr; /* struct already packed */ + struct lttng_save_session_attr attr; } LTTNG_PACKED save_session; struct { char shm_path[PATH_MAX]; @@ -410,6 +416,8 @@ struct lttcomm_session_msg { /* An lttng_session_descriptor follows. */ } LTTNG_PACKED create_session; } u; + /* Count of fds sent. */ + uint32_t fd_count; } LTTNG_PACKED; #define LTTNG_FILTER_MAX_LEN 65536 @@ -501,6 +509,7 @@ struct lttcomm_lttng_msg { uint32_t pid; /* pid_t */ uint32_t cmd_header_size; uint32_t data_size; + uint32_t fd_count; } LTTNG_PACKED; struct lttcomm_lttng_output_id { @@ -705,6 +714,9 @@ struct lttcomm_consumer_msg { struct { uint64_t key; } LTTNG_PACKED clear_channel; + struct { + uint64_t key; + } LTTNG_PACKED open_channel_packets; } u; } LTTNG_PACKED;