X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fust-app.h;h=071ad0d90d0189c93ebfc3427a256cf820cd5e8d;hp=2e8ce58da28f0cab9ecc1a8a194bad49c88be2c6;hb=f2ca2e251d8f49b0dbbcca529dd61b3562c1147f;hpb=ce4500b0db50259c41d9f148ae3e8ecb2030683a diff --git a/lttng-sessiond/ust-app.h b/lttng-sessiond/ust-app.h index 2e8ce58da..071ad0d90 100644 --- a/lttng-sessiond/ust-app.h +++ b/lttng-sessiond/ust-app.h @@ -45,14 +45,21 @@ struct ust_register_msg { /* * Global applications HT used by the session daemon. */ -struct cds_lfht *ust_app_ht; +struct lttng_ht *ust_app_ht; -struct cds_lfht *ust_app_sock_key_map; +struct lttng_ht *ust_app_sock_key_map; struct ust_app_key { pid_t pid; int sock; - struct cds_lfht_node node; + struct lttng_ht_node_ulong node; +}; + +struct ust_app_ctx { + int handle; + struct lttng_ust_context ctx; + struct lttng_ust_object_data *obj; + struct lttng_ht_node_ulong node; }; struct ust_app_event { @@ -61,8 +68,8 @@ struct ust_app_event { struct lttng_ust_object_data *obj; struct lttng_ust_event attr; char name[LTTNG_UST_SYM_NAME_LEN]; - struct cds_lfht *ctx; - struct cds_lfht_node node; + struct lttng_ht *ctx; + struct lttng_ht_node_str node; }; struct ust_app_channel { @@ -72,21 +79,24 @@ struct ust_app_channel { struct lttng_ust_channel attr; struct lttng_ust_object_data *obj; struct ltt_ust_stream_list streams; - struct cds_lfht *ctx; - struct cds_lfht *events; - struct cds_lfht_node node; + struct lttng_ht *ctx; + struct lttng_ht *events; + struct lttng_ht_node_str node; }; struct ust_app_session { int enabled; /* started: has the session been in started state at any time ? */ int started; /* allows detection of start vs restart. */ - int handle; /* Used has unique identifier */ - unsigned int uid; + int handle; /* used has unique identifier for app session */ + int id; /* session unique identifier */ struct ltt_ust_metadata *metadata; - struct cds_lfht *channels; /* Registered channels */ - struct cds_lfht_node node; + struct lttng_ht *channels; /* Registered channels */ + struct lttng_ht_node_ulong node; char path[PATH_MAX]; + /* UID/GID of the user owning the session */ + uid_t uid; + gid_t gid; }; /* @@ -101,19 +111,20 @@ struct ust_app { uint32_t v_major; /* Verion major number */ uint32_t v_minor; /* Verion minor number */ char name[17]; /* Process name (short) */ - struct cds_lfht *sessions; - struct cds_lfht_node node; + struct lttng_ht *sessions; + struct lttng_ht_node_ulong node; struct ust_app_key key; }; #ifdef HAVE_LIBLTTNG_UST_CTL int ust_app_register(struct ust_register_msg *msg, int sock); +static inline +int ust_app_register_done(int sock) +{ + return ustctl_register_done(sock); +} void ust_app_unregister(int sock); -int ust_app_create_channel_all(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan); -int ust_app_create_event_all(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent); unsigned long ust_app_list_count(void); int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app); int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app); @@ -122,19 +133,38 @@ int ust_app_stop_trace_all(struct ltt_ust_session *usess); int ust_app_destroy_trace(struct ltt_ust_session *usess, struct ust_app *app); int ust_app_destroy_trace_all(struct ltt_ust_session *usess); int ust_app_list_events(struct lttng_event **events); -int ust_app_disable_channel_all(struct ltt_ust_session *usess, +int ust_app_create_channel_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan); -int ust_app_enable_channel_all(struct ltt_ust_session *usess, +int ust_app_create_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent); +int ust_app_disable_event_pid(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + pid_t pid); +int ust_app_enable_event_pid(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + pid_t pid); +int ust_app_disable_channel_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan); +int ust_app_enable_channel_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan); +int ust_app_enable_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent); +int ust_app_disable_all_event_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan); -int ust_app_disable_event_all(struct ltt_ust_session *usess, +int ust_app_enable_all_event_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan); -int ust_app_disable_event(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan, char *event_name); +int ust_app_disable_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent); +int ust_app_add_ctx_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + struct ltt_ust_context *uctx); +int ust_app_add_ctx_channel_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_context *uctx); void ust_app_global_update(struct ltt_ust_session *usess, int sock); void ust_app_clean_list(void); void ust_app_ht_alloc(void); -struct cds_lfht *ust_app_get_ht(void); +struct lttng_ht *ust_app_get_ht(void); struct ust_app *ust_app_find_by_pid(pid_t pid); #else /* HAVE_LIBLTTNG_UST_CTL */ @@ -170,6 +200,11 @@ int ust_app_register(struct ust_register_msg *msg, int sock) return -ENOSYS; } static inline +int ust_app_register_done(int sock) +{ + return -ENOSYS; +} +static inline void ust_app_unregister(int sock) { } @@ -201,19 +236,7 @@ struct ust_app *ust_app_get_by_pid(pid_t pid) return NULL; } static inline -int ust_app_add_channel_all(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan) -{ - return 0; -} -static inline -int ust_app_add_event_all(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent) -{ - return 0; -} -static inline -struct cds_lfht *ust_app_get_ht(void) +struct lttng_ht *ust_app_get_ht(void) { return NULL; } @@ -224,41 +247,80 @@ static inline void ust_app_global_update(struct ltt_ust_session *usess, int sock) {} static inline -int ust_app_disable_channel_all(struct ltt_ust_session *usess, +int ust_app_disable_channel_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan) { return 0; } static inline -int ust_app_enable_channel_all(struct ltt_ust_session *usess, +int ust_app_enable_channel_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan) { return 0; } static inline -int ust_app_disable_event_all(struct ltt_ust_session *usess, +int ust_app_create_channel_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan) { return 0; } static inline -int ust_app_disable_event(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan, char *event_name) +int ust_app_disable_all_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan) { return 0; } static inline -int ust_app_create_channel_all(struct ltt_ust_session *usess, +int ust_app_enable_all_event_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan) { return 0; } static inline -int ust_app_create_event_all(struct ltt_ust_session *usess, +int ust_app_create_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent) +{ + return 0; +} +static inline +int ust_app_disable_event_glb(struct ltt_ust_session *usess, struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent) { return 0; } +static inline +int ust_app_enable_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent) +{ + return 0; +} +static inline +int ust_app_add_ctx_event_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + struct ltt_ust_context *uctx) +{ + return 0; +} +static inline +int ust_app_add_ctx_channel_glb(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_context *uctx) +{ + return 0; +} +static inline +int ust_app_enable_event_pid(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + pid_t pid) +{ + return 0; +} +static inline +int ust_app_disable_event_pid(struct ltt_ust_session *usess, + struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent, + pid_t pid) +{ + return 0; +} #endif /* HAVE_LIBLTTNG_UST_CTL */