#include <linux/fs.h>
-#define LTTNG_KPROBE_SYM_NAME_LEN 128
+#define LTTNG_SYM_NAME_LEN 128
enum lttng_kernel_instrumentation {
LTTNG_KERNEL_TRACEPOINTS,
LTTNG_KERNEL_KPROBES,
+ LTTNG_KERNEL_FUNCTION_TRACER,
};
/*
*/
struct lttng_kernel_channel {
- int overwrite; /* 1: overwrite, 0: discard */
- uint64_t subbuf_size;
+ int overwrite; /* 1: overwrite, 0: discard */
+ uint64_t subbuf_size; /* in bytes */
uint64_t num_subbuf;
- unsigned int switch_timer_interval;
- unsigned int read_timer_interval;
+ unsigned int switch_timer_interval; /* usecs */
+ unsigned int read_timer_interval; /* usecs */
+};
+
+struct lttng_kernel_tracepoint {
};
/*
uint64_t addr;
uint64_t offset;
- char symbol_name[LTTNG_KPROBE_SYM_NAME_LEN];
+ char symbol_name[LTTNG_SYM_NAME_LEN];
+};
+
+struct lttng_kernel_function_tracer {
+ char symbol_name[LTTNG_SYM_NAME_LEN];
};
struct lttng_kernel_event {
+ char name[LTTNG_SYM_NAME_LEN]; /* event name */
enum lttng_kernel_instrumentation instrumentation;
/* Per instrumentation type configuration */
union {
+ struct lttng_kernel_tracepoint tracepoint;
struct lttng_kernel_kprobe kprobe;
+ struct lttng_kernel_function_tracer ftrace;
} u;
- char name[];
};
struct lttng_kernel_tracer_version {