X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Fust-comm.h;h=6a08b306b1b9ade6b44cf722d8b3d26a73281600;hb=3703f1d2e6e5a48c5fe066a7df0d1cc7f76ea4f0;hp=b9bbb39bbbeeea702d045e818096b5a188960417;hpb=75582b3a56366b73ba1f656e03fc8df4a991ac45;p=lttng-ust.git diff --git a/include/ust-comm.h b/include/ust-comm.h index b9bbb39b..6a08b306 100644 --- a/include/ust-comm.h +++ b/include/ust-comm.h @@ -31,6 +31,7 @@ #include #include #include +#include #include /* @@ -39,7 +40,7 @@ * variable "LTTNG_UST_REGISTER_TIMEOUT". Note that if the sessiond is not * found, the application proceeds directly without any delay. */ -#define LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS 3000 +#define LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS CONFIG_LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS #define LTTNG_DEFAULT_RUNDIR LTTNG_SYSTEM_RUNDIR #define LTTNG_DEFAULT_HOME_RUNDIR ".lttng" @@ -50,6 +51,9 @@ struct lttng_event_field; struct lttng_ctx_field; +struct lttng_enum_entry; +struct lttng_integer_type; +struct lttng_session; struct ustctl_reg_msg { uint32_t magic; @@ -147,6 +151,22 @@ struct ustcomm_notify_event_reply { char padding[USTCOMM_NOTIFY_EVENT_REPLY_PADDING]; } LTTNG_PACKED; +#define USTCOMM_NOTIFY_ENUM_MSG_PADDING 32 +struct ustcomm_notify_enum_msg { + uint32_t session_objd; + char enum_name[LTTNG_UST_SYM_NAME_LEN]; + uint32_t entries_len; + char padding[USTCOMM_NOTIFY_ENUM_MSG_PADDING]; + /* followed by enum entries */ +} LTTNG_PACKED; + +#define USTCOMM_NOTIFY_EVENT_REPLY_PADDING 32 +struct ustcomm_notify_enum_reply { + int32_t ret_code; /* 0: ok, negative: error code */ + uint64_t enum_id; + char padding[USTCOMM_NOTIFY_EVENT_REPLY_PADDING]; +} LTTNG_PACKED; + #define USTCOMM_NOTIFY_CHANNEL_MSG_PADDING 32 struct ustcomm_notify_channel_msg { uint32_t session_objd; @@ -170,7 +190,8 @@ struct ustcomm_notify_channel_reply { */ extern int ustcomm_create_unix_sock(const char *pathname); -extern int ustcomm_connect_unix_sock(const char *pathname); +extern int ustcomm_connect_unix_sock(const char *pathname, + long timeout); extern int ustcomm_accept_unix_sock(int sock); extern int ustcomm_listen_unix_sock(int sock); extern int ustcomm_close_unix_sock(int sock); @@ -213,6 +234,7 @@ int ustcomm_send_reg_msg(int sock, * Returns -EPIPE or -ECONNRESET if other end has hung up. */ int ustcomm_register_event(int sock, + struct lttng_session *session, int session_objd, /* session descriptor */ int channel_objd, /* channel descriptor */ const char *event_name, /* event name (input) */ @@ -223,11 +245,23 @@ int ustcomm_register_event(int sock, const char *model_emf_uri, uint32_t *id); /* event id (output) */ +/* + * Returns 0 on success, negative error value on error. + * Returns -EPIPE or -ECONNRESET if other end has hung up. + */ +int ustcomm_register_enum(int sock, + int session_objd, /* session descriptor */ + const char *enum_name, /* enum name (input) */ + size_t nr_entries, /* entries */ + const struct lttng_enum_entry *entries, + uint64_t *id); /* enum id (output) */ + /* * Returns 0 on success, negative error value on error. * Returns -EPIPE or -ECONNRESET if other end has hung up. */ int ustcomm_register_channel(int sock, + struct lttng_session *session, int session_objd, /* session descriptor */ int channel_objd, /* channel descriptor */ size_t nr_ctx_fields,