]>
Commit | Line | Data |
---|---|---|
87d546d8 TG |
1 | dnl # |
2 | dnl # Ensure the DECLARE_EVENT_CLASS macro is available to non-GPL modules. | |
3 | dnl # | |
4 | AC_DEFUN([ZFS_AC_KERNEL_DECLARE_EVENT_CLASS], [ | |
5 | tmp_flags="$EXTRA_KCFLAGS" | |
6 | EXTRA_KCFLAGS="-I\$(src)" | |
7 | ||
8 | AC_MSG_CHECKING([whether DECLARE_EVENT_CLASS() is available]) | |
9 | ZFS_LINUX_TRY_COMPILE_HEADER([ | |
10 | #include <linux/module.h> | |
11 | MODULE_LICENSE(ZFS_META_LICENSE); | |
12 | ||
13 | #define CREATE_TRACE_POINTS | |
14 | #include "conftest.h" | |
15 | ],[ | |
16 | trace_zfs_autoconf_event_one(1UL); | |
17 | trace_zfs_autoconf_event_two(2UL); | |
18 | ],[ | |
19 | AC_MSG_RESULT(yes) | |
20 | AC_DEFINE(HAVE_DECLARE_EVENT_CLASS, 1, | |
21 | [DECLARE_EVENT_CLASS() is available]) | |
22 | ],[ | |
23 | AC_MSG_RESULT(no) | |
24 | ],[ | |
25 | #if !defined(_CONFTEST_H) || defined(TRACE_HEADER_MULTI_READ) | |
26 | #define _CONFTEST_H | |
27 | ||
28 | #undef TRACE_SYSTEM | |
29 | #define TRACE_SYSTEM zfs | |
30 | #include <linux/tracepoint.h> | |
31 | ||
32 | DECLARE_EVENT_CLASS(zfs_autoconf_event_class, | |
33 | TP_PROTO(unsigned long i), | |
34 | TP_ARGS(i), | |
35 | TP_STRUCT__entry( | |
36 | __field(unsigned long, i) | |
37 | ), | |
38 | TP_fast_assign( | |
39 | __entry->i = i; | |
40 | ), | |
41 | TP_printk("i = %lu", __entry->i) | |
42 | ); | |
43 | ||
44 | #define DEFINE_AUTOCONF_EVENT(name) \ | |
45 | DEFINE_EVENT(zfs_autoconf_event_class, name, \ | |
46 | TP_PROTO(unsigned long i), \ | |
47 | TP_ARGS(i)) | |
48 | DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_one); | |
49 | DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_two); | |
50 | ||
51 | #endif /* _CONFTEST_H */ | |
52 | ||
53 | #undef TRACE_INCLUDE_PATH | |
54 | #define TRACE_INCLUDE_PATH . | |
55 | #define TRACE_INCLUDE_FILE conftest | |
56 | #include <trace/define_trace.h> | |
57 | ]) | |
58 | EXTRA_KCFLAGS="$tmp_flags" | |
59 | ]) |