X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt-events.h;h=d07f1c879d2d44e4a1fa76cf6da372e723d7b527;hb=aa7c23a91f7af01415106af98b96a2a1871e97b0;hp=1419fb67219e047c6125ebf9af4183a7c8bc0a51;hpb=acd614cc4d30407efd46a528e29dadb403d25ffb;p=lttng-modules.git diff --git a/ltt-events.h b/ltt-events.h index 1419fb67..d07f1c87 100644 --- a/ltt-events.h +++ b/ltt-events.h @@ -17,6 +17,8 @@ struct ltt_channel; struct ltt_session; struct lib_ring_buffer_ctx; +struct perf_event; +struct perf_event_attr; /* Type description */ @@ -112,10 +114,30 @@ struct lttng_event_field { struct lttng_type type; }; +struct lttng_ctx_field { + const char *name; + struct lttng_type type; + void *callback; + union { + struct { + struct perf_event **e; /* per-cpu array */ + struct list_head head; + struct perf_event_attr *attr; + } perf_counter; + } u; +}; + +struct lttng_ctx { + struct lttng_ctx_field *fields; + unsigned int nr_fields; + unsigned int allocated_fields; +}; + struct lttng_event_desc { - const struct lttng_event_field *fields; const char *name; void *probe_callback; + const struct lttng_event_ctx *ctx; /* context */ + const struct lttng_event_field *fields; /* event payload */ unsigned int nr_fields; }; @@ -220,13 +242,11 @@ struct ltt_channel *ltt_global_channel_create(struct ltt_session *session, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, unsigned int read_timer_interval); -void _ltt_channel_destroy(struct ltt_channel *chan); struct ltt_event *ltt_event_create(struct ltt_channel *chan, char *name, struct lttng_kernel_event *event_param, void *filter); -int ltt_event_unregister(struct ltt_event *event); void ltt_transport_register(struct ltt_transport *transport); void ltt_transport_unregister(struct ltt_transport *transport); @@ -259,6 +279,7 @@ int lttng_kprobes_register(const char *name, return -ENOSYS; } +static inline void lttng_kprobes_unregister(struct ltt_event *event) { }