Sync ioctl headers with kernel
[lttng-tools.git] / include / lttng-kernel.h
index 142de0706ef670bdbcd7680961333adcb2da37d5..1ce9fc5e4b96157cb23896805f2ca4bf58e8afca 100644 (file)
 
 #include "lttng-share.h"
 
+#define LTTNG_SYM_NAME_LEN  128
+
+enum lttng_kernel_instrumentation {
+       LTTNG_KERNEL_TRACEPOINTS,
+       LTTNG_KERNEL_KPROBES,
+       LTTNG_KERNEL_FUNCTION_TRACER,
+};
+
 /*
  * LTTng DebugFS ABI structures.
  */
-enum lttng_instrum_type {
-       INSTRUM_TRACEPOINTS,
+
+struct lttng_kernel_channel {
+       int overwrite;              /* 1: overwrite, 0: discard */
+       uint64_t subbuf_size;           /* in bytes */
+       uint64_t num_subbuf;
+       unsigned int switch_timer_interval; /* usecs */
+       unsigned int read_timer_interval;   /* usecs */
+};
+
+struct lttng_kernel_tracepoint {
+};
+
+/*
+ * Either addr is used, or symbol_name and offset.
+ */
+struct lttng_kernel_kprobe {
+       uint64_t addr;
+
+       uint64_t offset;
+       char symbol_name[LTTNG_SYM_NAME_LEN];
+};
+
+struct lttng_kernel_function_tracer {
+       char symbol_name[LTTNG_SYM_NAME_LEN];
 };
 
-struct lttng_channel {
-       int overwrite;         /* 1: overwrite, 0: discard */
-       u64 subbuf_size;
-       u64 num_subbuf;
-       unsigned int switch_timer_interval;
-       unsigned int read_timer_interval;
+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;
 };
 
-struct lttng_event {
-       enum lttng_instrum_type itype;
-       char name[];
+struct lttng_kernel_tracer_version {
+       uint32_t version;
+       uint32_t patchlevel;
+       uint32_t sublevel;
 };
 
 #endif /* _LTTNG_KERNEL_H */
This page took 0.023318 seconds and 4 git commands to generate.