|
@@ -99,6 +99,29 @@ extern void syscall_unregfunc(void);
|
|
|
#define TRACE_DEFINE_ENUM(x)
|
|
#define TRACE_DEFINE_ENUM(x)
|
|
|
#define TRACE_DEFINE_SIZEOF(x)
|
|
#define TRACE_DEFINE_SIZEOF(x)
|
|
|
|
|
|
|
|
|
|
+#ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
|
|
|
|
|
+static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
|
|
|
|
|
+{
|
|
|
|
|
+ return offset_to_ptr(p);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#define __TRACEPOINT_ENTRY(name) \
|
|
|
|
|
+ asm(" .section \"__tracepoints_ptrs\", \"a\" \n" \
|
|
|
|
|
+ " .balign 4 \n" \
|
|
|
|
|
+ " .long __tracepoint_" #name " - . \n" \
|
|
|
|
|
+ " .previous \n")
|
|
|
|
|
+#else
|
|
|
|
|
+static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
|
|
|
|
|
+{
|
|
|
|
|
+ return *p;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#define __TRACEPOINT_ENTRY(name) \
|
|
|
|
|
+ static tracepoint_ptr_t __tracepoint_ptr_##name __used \
|
|
|
|
|
+ __attribute__((section("__tracepoints_ptrs"))) = \
|
|
|
|
|
+ &__tracepoint_##name
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
#endif /* _LINUX_TRACEPOINT_H */
|
|
#endif /* _LINUX_TRACEPOINT_H */
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -253,19 +276,6 @@ extern void syscall_unregfunc(void);
|
|
|
return static_key_false(&__tracepoint_##name.key); \
|
|
return static_key_false(&__tracepoint_##name.key); \
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-#ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
|
|
|
|
|
-#define __TRACEPOINT_ENTRY(name) \
|
|
|
|
|
- asm(" .section \"__tracepoints_ptrs\", \"a\" \n" \
|
|
|
|
|
- " .balign 4 \n" \
|
|
|
|
|
- " .long __tracepoint_" #name " - . \n" \
|
|
|
|
|
- " .previous \n")
|
|
|
|
|
-#else
|
|
|
|
|
-#define __TRACEPOINT_ENTRY(name) \
|
|
|
|
|
- static struct tracepoint * const __tracepoint_ptr_##name __used \
|
|
|
|
|
- __attribute__((section("__tracepoints_ptrs"))) = \
|
|
|
|
|
- &__tracepoint_##name
|
|
|
|
|
-#endif
|
|
|
|
|
-
|
|
|
|
|
/*
|
|
/*
|
|
|
* We have no guarantee that gcc and the linker won't up-align the tracepoint
|
|
* We have no guarantee that gcc and the linker won't up-align the tracepoint
|
|
|
* structures, so we create an array of pointers that will be used for iteration
|
|
* structures, so we create an array of pointers that will be used for iteration
|