X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fevents-internal.h;h=defea8405e255d6ca838882e966377ffeb7d8035;hb=6c8c025bf7552b6073c5c1884e1493badd842f42;hp=177198870da16fd2a45c948861e57ddf7abcf67e;hpb=fc66bf6a911e374789389f465c653c0c33b4c197;p=lttng-modules.git diff --git a/include/lttng/events-internal.h b/include/lttng/events-internal.h index 17719887..defea840 100644 --- a/include/lttng/events-internal.h +++ b/include/lttng/events-internal.h @@ -10,6 +10,12 @@ #include +struct lttng_syscall_filter; +struct lttng_metadata_cache; +struct perf_event; +struct perf_event_attr; +struct lib_ring_buffer_config; + enum lttng_enabler_format_type { LTTNG_ENABLER_FORMAT_STAR_GLOB, LTTNG_ENABLER_FORMAT_NAME, @@ -338,6 +344,13 @@ struct lttng_counter { struct lttng_counter_ops *ops; }; +#define LTTNG_EVENT_NOTIFIER_HT_BITS 12 +#define LTTNG_EVENT_NOTIFIER_HT_SIZE (1U << LTTNG_EVENT_NOTIFIER_HT_BITS) + +struct lttng_event_notifier_ht { + struct hlist_head table[LTTNG_EVENT_NOTIFIER_HT_SIZE]; +}; + struct lttng_event_notifier_group { struct file *file; /* File associated to event notifier group */ struct file *notif_file; /* File used to expose notifications to userspace. */ @@ -389,6 +402,13 @@ struct lttng_counter_transport { struct lttng_counter_ops ops; }; +#define LTTNG_EVENT_HT_BITS 12 +#define LTTNG_EVENT_HT_SIZE (1U << LTTNG_EVENT_HT_BITS) + +struct lttng_event_ht { + struct hlist_head table[LTTNG_EVENT_HT_SIZE]; +}; + struct lttng_kernel_session_private { struct lttng_kernel_session *pub; /* Public session interface */ @@ -415,6 +435,24 @@ struct lttng_id_hash_node { int id; }; +enum tracker_type { + TRACKER_PID, + TRACKER_VPID, + TRACKER_UID, + TRACKER_VUID, + TRACKER_GID, + TRACKER_VGID, + + TRACKER_UNKNOWN, +}; + +struct lttng_kernel_id_tracker_private { + struct lttng_kernel_id_tracker *pub; /* Public interface */ + + struct lttng_kernel_session *session; + enum tracker_type tracker_type; +}; + extern struct lttng_kernel_ctx *lttng_static_ctx; static inline @@ -1062,10 +1100,14 @@ int lttng_metadata_output_channel(struct lttng_metadata_stream *stream, struct channel *chan, bool *coherent); int lttng_id_tracker_get_node_id(const struct lttng_id_hash_node *node); -int lttng_id_tracker_empty_set(struct lttng_id_tracker *lf); -void lttng_id_tracker_destroy(struct lttng_id_tracker *lf, bool rcu); -int lttng_id_tracker_add(struct lttng_id_tracker *lf, int id); -int lttng_id_tracker_del(struct lttng_id_tracker *lf, int id); +int lttng_id_tracker_empty_set(struct lttng_kernel_id_tracker *lf); +int lttng_id_tracker_init(struct lttng_kernel_id_tracker *lf, + struct lttng_kernel_session *session, + enum tracker_type type); +void lttng_id_tracker_fini(struct lttng_kernel_id_tracker *lf); +void lttng_id_tracker_destroy(struct lttng_kernel_id_tracker *lf, bool rcu); +int lttng_id_tracker_add(struct lttng_kernel_id_tracker *lf, int id); +int lttng_id_tracker_del(struct lttng_kernel_id_tracker *lf, int id); int lttng_session_track_id(struct lttng_kernel_session *session, enum tracker_type tracker_type, int id);