X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=ltt-events.h;h=10015ad6150cb7404b9bfe39797e3848c969d7a2;hb=96ba7208aa8009345a525148e32f78cd8d4693ab;hp=ec70eceadc69986627e2b02031a3b41324185c86;hpb=8289661dc0d57d1fe33253b651100ccabe5945da;p=lttng-modules.git diff --git a/ltt-events.h b/ltt-events.h index ec70ecea..10015ad6 100644 --- a/ltt-events.h +++ b/ltt-events.h @@ -12,8 +12,8 @@ */ #include -#include #include +#include "wrapper/uuid.h" #include "ltt-debugfs-abi.h" #undef is_signed_type @@ -164,6 +164,7 @@ struct lttng_probe_desc { struct ltt_event { unsigned int id; struct ltt_channel *chan; + int enabled; const struct lttng_event_desc *desc; void *filter; struct lttng_ctx *ctx; @@ -202,19 +203,22 @@ struct ltt_channel_ops { * may change due to concurrent writes. */ size_t (*packet_avail_size)(struct channel *chan); - wait_queue_head_t *(*get_reader_wait_queue)(struct ltt_channel *chan); + wait_queue_head_t *(*get_reader_wait_queue)(struct channel *chan); + wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan); + int (*is_finalized)(struct channel *chan); + int (*is_disabled)(struct channel *chan); }; struct ltt_channel { unsigned int id; struct channel *chan; /* Channel buffers */ + int enabled; struct lttng_ctx *ctx; /* Event ID management */ struct ltt_session *session; struct file *file; /* File associated to channel */ unsigned int free_event_id; /* Next event ID to allocate */ struct list_head list; /* Channel list */ - wait_queue_head_t notify_wait; /* Channel addition notif. waitqueue */ struct ltt_channel_ops *ops; int header_type; /* 0: unset, 1: compact, 2: large */ int metadata_dumped:1; @@ -241,8 +245,8 @@ struct ltt_transport { }; struct ltt_session *ltt_session_create(void); -int ltt_session_start(struct ltt_session *session); -int ltt_session_stop(struct ltt_session *session); +int ltt_session_enable(struct ltt_session *session); +int ltt_session_disable(struct ltt_session *session); void ltt_session_destroy(struct ltt_session *session); struct ltt_channel *ltt_channel_create(struct ltt_session *session, @@ -261,9 +265,15 @@ struct ltt_event *ltt_event_create(struct ltt_channel *chan, struct lttng_kernel_event *event_param, void *filter); +int ltt_channel_enable(struct ltt_channel *channel); +int ltt_channel_disable(struct ltt_channel *channel); +int ltt_event_enable(struct ltt_event *event); +int ltt_event_disable(struct ltt_event *event); + void ltt_transport_register(struct ltt_transport *transport); void ltt_transport_unregister(struct ltt_transport *transport); +void synchronize_trace(void); int ltt_debugfs_abi_init(void); void ltt_debugfs_abi_exit(void); @@ -281,10 +291,26 @@ int lttng_add_pid_to_ctx(struct lttng_ctx **ctx); int lttng_add_comm_to_ctx(struct lttng_ctx **ctx); int lttng_add_prio_to_ctx(struct lttng_ctx **ctx); int lttng_add_nice_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_tid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx); +#ifdef CONFIG_PERF_EVENTS int lttng_add_perf_counter_to_ctx(uint32_t type, uint64_t config, const char *name, struct lttng_ctx **ctx); +#else +static inline +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx) +{ + return -ENOSYS; +} +#endif #ifdef CONFIG_KPROBES int lttng_kprobes_register(const char *name, @@ -344,4 +370,8 @@ void lttng_ftrace_destroy_private(struct ltt_event *event) extern const struct file_operations lttng_tracepoint_list_fops; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +#define TRACEPOINT_HAS_DATA_ARG +#endif + #endif /* _LTT_EVENTS_H */