]> git.proxmox.com Git - mirror_zfs.git/blob - config/kernel-declare-event-class.m4
kernel_fpu fixes
[mirror_zfs.git] / config / kernel-declare-event-class.m4
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 ])