AC_MSG_RESULT(no))
AC_SUBST(have_sendfile)
])
+
+#
+# Check if we have a getmntent libc call (Linux)
+#
+AC_DEFUN([AC_HAVE_GETMNTENT],
+ [ AC_MSG_CHECKING([for getmntent ])
+ AC_TRY_COMPILE([
+#include <stdio.h>
+#include <mntent.h>
+ ], [
+ getmntent(0);
+ ], have_getmntent=yes
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+ AC_SUBST(have_getmntent)
+ ])
+
+#
+# Check if we have a getmntinfo libc call (FreeBSD, Mac OS X)
+#
+AC_DEFUN([AC_HAVE_GETMNTINFO],
+ [ AC_MSG_CHECKING([for getmntinfo ])
+ AC_TRY_COMPILE([
+#include <sys/param.h>
+#include <sys/ucred.h>
+#include <sys/mount.h>
+ ], [
+ getmntinfo(0, 0);
+ ], have_getmntinfo=yes
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+ AC_SUBST(have_getmntinfo)
+ ])
+
+#
+#
+# Check if we have a copy_file_range system call (Linux)
+#
+AC_DEFUN([AC_HAVE_COPY_FILE_RANGE],
+ [ AC_MSG_CHECKING([for copy_file_range])
+ AC_TRY_LINK([
+#define _GNU_SOURCE
+#include <sys/syscall.h>
+#include <unistd.h>
+ ], [
+ syscall(__NR_copy_file_range, 0, 0, 0, 0, 0, 0);
+ ], have_copy_file_range=yes
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+ AC_SUBST(have_copy_file_range)
+ ])
+