Fix: handle missing ftrace header on v4.12
[lttng-modules.git] / lttng-events.h
index 2eccf8692864f2cfae6ea1809e085fe058482976..eb952ae2aa1e80635aa3718b03b804a699c8ce96 100644 (file)
 #include <linux/list.h>
 #include <linux/kprobes.h>
 #include <linux/kref.h>
-#include "wrapper/uuid.h"
-#include "lttng-abi.h"
-#include "lttng-abi-old.h"
+#include <lttng-cpuhotplug.h>
+#include <wrapper/uuid.h>
+#include <lttng-abi.h>
+#include <lttng-abi-old.h>
 
 #define lttng_is_signed_type(type)     (((type)(-1)) < 0)
 
@@ -154,8 +155,13 @@ union lttng_ctx_value {
  * lttng_ctx_field because cpu hotplug needs fixed-location addresses.
  */
 struct lttng_perf_counter_field {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+       struct lttng_cpuhp_node cpuhp_prepare;
+       struct lttng_cpuhp_node cpuhp_online;
+#else
        struct notifier_block nb;
        int hp_enable;
+#endif
        struct perf_event_attr *attr;
        struct perf_event **e;  /* per-cpu array */
 };
@@ -660,6 +666,10 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
                                  uint64_t config,
                                  const char *name,
                                  struct lttng_ctx **ctx);
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+               struct lttng_cpuhp_node *node);
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+               struct lttng_cpuhp_node *node);
 #else
 static inline
 int lttng_add_perf_counter_to_ctx(uint32_t type,
@@ -669,6 +679,18 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
 {
        return -ENOSYS;
 }
+static inline
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+               struct lttng_cpuhp_node *node)
+{
+       return 0;
+}
+static inline
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+               struct lttng_cpuhp_node *node)
+{
+       return 0;
+}
 #endif
 
 int lttng_logger_init(void);
@@ -747,7 +769,7 @@ int lttng_kretprobes_event_enable_state(struct lttng_event *event,
 }
 #endif
 
-#ifdef CONFIG_DYNAMIC_FTRACE
+#if defined(CONFIG_DYNAMIC_FTRACE) && !defined(LTTNG_FTRACE_MISSING_HEADER)
 int lttng_ftrace_register(const char *name,
                          const char *symbol_name,
                          struct lttng_event *event);
This page took 0.024577 seconds and 4 git commands to generate.