1dnl #
2dnl # Determine an available miscellaneous minor number which can be used
3dnl # for the /dev/zfs device.  This is needed because kernel module
4dnl # auto-loading depends on registering a reserved non-conflicting minor
5dnl # number.  Start with a large known available unreserved minor and work
6dnl # our way down to lower value if a collision is detected.
7dnl #
8AC_DEFUN([ZFS_AC_KERNEL_MISC_MINOR], [
9	AC_MSG_CHECKING([whether /dev/zfs minor is available])
10
11	for i in $(seq 249 -1 200); do
12		if ! grep -q "^#define\s\+.*_MINOR\s\+.*$i" \
13		    ${LINUX}/include/linux/miscdevice.h; then
14			ZFS_DEVICE_MINOR="$i"
15			AC_MSG_RESULT($ZFS_DEVICE_MINOR)
16			AC_DEFINE_UNQUOTED([ZFS_DEVICE_MINOR],
17			    [$ZFS_DEVICE_MINOR], [/dev/zfs minor])
18			break
19		fi
20	done
21
22	AS_IF([ test -z "$ZFS_DEVICE_MINOR"], [
23		AC_MSG_ERROR([
24	*** No available misc minor numbers available for use.])
25	])
26])
27