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