]> granicus.if.org Git - zfs/blob - config/kernel-declare-event-class.m4
Add support for O_TMPFILE
[zfs] / 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 ])