]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - config/kernel-block-device-operations.m4
Fix dracut Debian/Ubuntu packaging
[FreeBSD/FreeBSD.git] / config / kernel-block-device-operations.m4
1 dnl #
2 dnl # 2.6.38 API change
3 dnl #
4 AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS], [
5         AC_MSG_CHECKING([whether bops->check_events() exists])
6         tmp_flags="$EXTRA_KCFLAGS"
7         EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
8         ZFS_LINUX_TRY_COMPILE([
9                 #include <linux/blkdev.h>
10
11                 unsigned int blk_check_events(struct gendisk *disk,
12                     unsigned int clearing) { return (0); }
13
14                 static const struct block_device_operations
15                     bops __attribute__ ((unused)) = {
16                         .check_events   = blk_check_events,
17                 };
18         ],[
19         ],[
20                 AC_MSG_RESULT(yes)
21                 AC_DEFINE(HAVE_BLOCK_DEVICE_OPERATIONS_CHECK_EVENTS, 1,
22                     [bops->check_events() exists])
23         ],[
24                 AC_MSG_RESULT(no)
25         ])
26         EXTRA_KCFLAGS="$tmp_flags"
27 ])
28
29 dnl #
30 dnl # 3.10.x API change
31 dnl #
32 AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID], [
33         AC_MSG_CHECKING([whether bops->release() is void])
34         tmp_flags="$EXTRA_KCFLAGS"
35         EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
36         ZFS_LINUX_TRY_COMPILE([
37                 #include <linux/blkdev.h>
38
39                 void blk_release(struct gendisk *g, fmode_t mode) { return; }
40
41                 static const struct block_device_operations
42                     bops __attribute__ ((unused)) = {
43                         .open           = NULL,
44                         .release        = blk_release,
45                         .ioctl          = NULL,
46                         .compat_ioctl   = NULL,
47                 };
48         ],[
49         ],[
50                 AC_MSG_RESULT(void)
51                 AC_DEFINE(HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID, 1,
52                           [bops->release() returns void])
53         ],[
54                 AC_MSG_RESULT(int)
55         ])
56         EXTRA_KCFLAGS="$tmp_flags"
57 ])