Allow building on kernels < 2.6.33 (without perf event support)
[lttng-modules.git] / ltt-events.h
index 05eff540726defe0b8e14d3a8c28785e65aef8bc..10015ad6150cb7404b9bfe39797e3848c969d7a2 100644 (file)
@@ -12,8 +12,8 @@
  */
 
 #include <linux/list.h>
-#include <linux/uuid.h>
 #include <linux/kprobes.h>
+#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;
@@ -211,6 +212,7 @@ struct ltt_channel_ops {
 struct ltt_channel {
        unsigned int id;
        struct channel *chan;           /* Channel buffers */
+       int enabled;
        struct lttng_ctx *ctx;
        /* Event ID management */
        struct ltt_session *session;
@@ -243,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,
@@ -263,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);
 
@@ -283,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,
@@ -346,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 */
This page took 0.023514 seconds and 4 git commands to generate.