Detailed system call tracing (TRACE_EVENT() generation for integer support)
[lttng-modules.git] / ltt-events.h
index 31a50ca5f34968d0705e22885d30d54289d0db51..98cfae03017f5689ba79753864d8342487a47885 100644 (file)
@@ -163,6 +163,8 @@ struct lttng_probe_desc {
        struct list_head head;                  /* chain registered probes */
 };
 
+struct lttng_krp;                              /* Kretprobe handling */
+
 /*
  * ltt_event structure is referred to by the tracing fast path. It must be
  * kept small.
@@ -180,6 +182,10 @@ struct ltt_event {
                        struct kprobe kp;
                        char *symbol_name;
                } kprobe;
+               struct {
+                       struct lttng_krp *lttng_krp;
+                       char *symbol_name;
+               } kretprobe;
                struct {
                        char *symbol_name;
                } ftrace;
@@ -210,7 +216,7 @@ 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 channel *chan);
+       wait_queue_head_t *(*get_writer_buf_wait_queue)(struct channel *chan, int cpu);
        wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan);
        int (*is_finalized)(struct channel *chan);
        int (*is_disabled)(struct channel *chan);
@@ -351,6 +357,38 @@ void lttng_kprobes_destroy_private(struct ltt_event *event)
 }
 #endif
 
+#ifdef CONFIG_KRETPROBES
+int lttng_kretprobes_register(const char *name,
+               const char *symbol_name,
+               uint64_t offset,
+               uint64_t addr,
+               struct ltt_event *event_entry,
+               struct ltt_event *event_exit);
+void lttng_kretprobes_unregister(struct ltt_event *event);
+void lttng_kretprobes_destroy_private(struct ltt_event *event);
+#else
+static inline
+int lttng_kretprobes_register(const char *name,
+               const char *symbol_name,
+               uint64_t offset,
+               uint64_t addr,
+               struct ltt_event *event_entry,
+               struct ltt_event *event_exit)
+{
+       return -ENOSYS;
+}
+
+static inline
+void lttng_kretprobes_unregister(struct ltt_event *event)
+{
+}
+
+static inline
+void lttng_kretprobes_destroy_private(struct ltt_event *event)
+{
+}
+#endif
+
 #ifdef CONFIG_DYNAMIC_FTRACE
 int lttng_ftrace_register(const char *name,
                          const char *symbol_name,
@@ -377,6 +415,8 @@ void lttng_ftrace_destroy_private(struct ltt_event *event)
 }
 #endif
 
+int lttng_calibrate(struct lttng_kernel_calibrate *calibrate);
+
 extern const struct file_operations lttng_tracepoint_list_fops;
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
This page took 0.025543 seconds and 4 git commands to generate.