xref: /freebsd/sys/contrib/openzfs/config/kernel-sched.m4 (revision eda14cbc264d6969b02f2b1994cef11148e914f1)
1*eda14cbcSMatt Macydnl #
2*eda14cbcSMatt Macydnl # 3.9 API change,
3*eda14cbcSMatt Macydnl # Moved things from linux/sched.h to linux/sched/rt.h
4*eda14cbcSMatt Macydnl #
5*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_SCHED_RT_HEADER], [
6*eda14cbcSMatt Macy	ZFS_LINUX_TEST_SRC([sched_rt_header], [
7*eda14cbcSMatt Macy		#include <linux/sched.h>
8*eda14cbcSMatt Macy		#include <linux/sched/rt.h>
9*eda14cbcSMatt Macy	],[
10*eda14cbcSMatt Macy		return 0;
11*eda14cbcSMatt Macy	])
12*eda14cbcSMatt Macy])
13*eda14cbcSMatt Macy
14*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SCHED_RT_HEADER], [
15*eda14cbcSMatt Macy	AC_MSG_CHECKING([whether header linux/sched/rt.h exists])
16*eda14cbcSMatt Macy	ZFS_LINUX_TEST_RESULT([sched_rt_header], [
17*eda14cbcSMatt Macy		AC_MSG_RESULT(yes)
18*eda14cbcSMatt Macy	],[
19*eda14cbcSMatt Macy		ZFS_LINUX_TEST_ERROR([sched_rt_header])
20*eda14cbcSMatt Macy	])
21*eda14cbcSMatt Macy])
22*eda14cbcSMatt Macy
23*eda14cbcSMatt Macydnl #
24*eda14cbcSMatt Macydnl # 4.11 API change,
25*eda14cbcSMatt Macydnl # Moved things from linux/sched.h to linux/sched/signal.h
26*eda14cbcSMatt Macydnl #
27*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_SCHED_SIGNAL_HEADER], [
28*eda14cbcSMatt Macy	ZFS_LINUX_TEST_SRC([sched_signal_header], [
29*eda14cbcSMatt Macy		#include <linux/sched.h>
30*eda14cbcSMatt Macy		#include <linux/sched/signal.h>
31*eda14cbcSMatt Macy	],[
32*eda14cbcSMatt Macy		return 0;
33*eda14cbcSMatt Macy	])
34*eda14cbcSMatt Macy])
35*eda14cbcSMatt Macy
36*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SCHED_SIGNAL_HEADER], [
37*eda14cbcSMatt Macy	AC_MSG_CHECKING([whether header linux/sched/signal.h exists])
38*eda14cbcSMatt Macy	ZFS_LINUX_TEST_RESULT([sched_signal_header], [
39*eda14cbcSMatt Macy		AC_DEFINE(HAVE_SCHED_SIGNAL_HEADER, 1,
40*eda14cbcSMatt Macy		    [linux/sched/signal.h exists])
41*eda14cbcSMatt Macy		AC_MSG_RESULT(yes)
42*eda14cbcSMatt Macy	],[
43*eda14cbcSMatt Macy		AC_MSG_RESULT(no)
44*eda14cbcSMatt Macy	])
45*eda14cbcSMatt Macy])
46*eda14cbcSMatt Macy
47*eda14cbcSMatt Macydnl #
48*eda14cbcSMatt Macydnl # 3.19 API change
49*eda14cbcSMatt Macydnl # The io_schedule_timeout() function is present in all 2.6.32 kernels
50*eda14cbcSMatt Macydnl # but it was not exported until Linux 3.19.  The RHEL 7.x kernels which
51*eda14cbcSMatt Macydnl # are based on a 3.10 kernel do export this symbol.
52*eda14cbcSMatt Macydnl #
53*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_IO_SCHEDULE_TIMEOUT], [
54*eda14cbcSMatt Macy	ZFS_LINUX_TEST_SRC([io_schedule_timeout], [
55*eda14cbcSMatt Macy		#include <linux/sched.h>
56*eda14cbcSMatt Macy	], [
57*eda14cbcSMatt Macy		(void) io_schedule_timeout(1);
58*eda14cbcSMatt Macy	])
59*eda14cbcSMatt Macy])
60*eda14cbcSMatt Macy
61*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_IO_SCHEDULE_TIMEOUT], [
62*eda14cbcSMatt Macy	AC_MSG_CHECKING([whether io_schedule_timeout() is available])
63*eda14cbcSMatt Macy	ZFS_LINUX_TEST_RESULT_SYMBOL([io_schedule_timeout],
64*eda14cbcSMatt Macy	[io_schedule_timeout], [], [
65*eda14cbcSMatt Macy		AC_MSG_RESULT(yes)
66*eda14cbcSMatt Macy		AC_DEFINE(HAVE_IO_SCHEDULE_TIMEOUT, 1, [yes])
67*eda14cbcSMatt Macy	],[
68*eda14cbcSMatt Macy		AC_MSG_RESULT(no)
69*eda14cbcSMatt Macy	])
70*eda14cbcSMatt Macy])
71*eda14cbcSMatt Macy
72*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_SCHED], [
73*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SRC_SCHED_RT_HEADER
74*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SRC_SCHED_SIGNAL_HEADER
75*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SRC_IO_SCHEDULE_TIMEOUT
76*eda14cbcSMatt Macy])
77*eda14cbcSMatt Macy
78*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SCHED], [
79*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SCHED_RT_HEADER
80*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SCHED_SIGNAL_HEADER
81*eda14cbcSMatt Macy	ZFS_AC_KERNEL_IO_SCHEDULE_TIMEOUT
82*eda14cbcSMatt Macy])
83