Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/openzfs/config/kernel-vfs-iov_iter.m4
dnl # | dnl # | ||||
dnl # Check for available iov_iter functionality. | dnl # Check for available iov_iter functionality. | ||||
dnl # | dnl # | ||||
AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_IOV_ITER], [ | AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_IOV_ITER], [ | ||||
ZFS_LINUX_TEST_SRC([iov_iter_types], [ | ZFS_LINUX_TEST_SRC([iov_iter_types], [ | ||||
#include <linux/fs.h> | #include <linux/fs.h> | ||||
#include <linux/uio.h> | #include <linux/uio.h> | ||||
],[ | ],[ | ||||
int type __attribute__ ((unused)) = | int type __attribute__ ((unused)) = | ||||
ITER_IOVEC | ITER_KVEC | ITER_BVEC | ITER_PIPE; | ITER_IOVEC | ITER_KVEC | ITER_BVEC | ITER_PIPE; | ||||
]) | ]) | ||||
ZFS_LINUX_TEST_SRC([iov_iter_init], [ | |||||
#include <linux/fs.h> | |||||
#include <linux/uio.h> | |||||
],[ | |||||
struct iov_iter iter = { 0 }; | |||||
struct iovec iov; | |||||
unsigned long nr_segs = 1; | |||||
size_t count = 1024; | |||||
iov_iter_init(&iter, WRITE, &iov, nr_segs, count); | |||||
]) | |||||
ZFS_LINUX_TEST_SRC([iov_iter_init_legacy], [ | |||||
#include <linux/fs.h> | |||||
#include <linux/uio.h> | |||||
],[ | |||||
struct iov_iter iter = { 0 }; | |||||
struct iovec iov; | |||||
unsigned long nr_segs = 1; | |||||
size_t count = 1024; | |||||
size_t written = 0; | |||||
iov_iter_init(&iter, &iov, nr_segs, count, written); | |||||
]) | |||||
ZFS_LINUX_TEST_SRC([iov_iter_advance], [ | ZFS_LINUX_TEST_SRC([iov_iter_advance], [ | ||||
#include <linux/fs.h> | #include <linux/fs.h> | ||||
#include <linux/uio.h> | #include <linux/uio.h> | ||||
],[ | ],[ | ||||
struct iov_iter iter = { 0 }; | struct iov_iter iter = { 0 }; | ||||
size_t advance = 512; | size_t advance = 512; | ||||
iov_iter_advance(&iter, advance); | iov_iter_advance(&iter, advance); | ||||
▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | AC_DEFUN([ZFS_AC_KERNEL_VFS_IOV_ITER], [ | ||||
AC_MSG_CHECKING([whether iov_iter types are available]) | AC_MSG_CHECKING([whether iov_iter types are available]) | ||||
ZFS_LINUX_TEST_RESULT([iov_iter_types], [ | ZFS_LINUX_TEST_RESULT([iov_iter_types], [ | ||||
AC_MSG_RESULT(yes) | AC_MSG_RESULT(yes) | ||||
AC_DEFINE(HAVE_IOV_ITER_TYPES, 1, | AC_DEFINE(HAVE_IOV_ITER_TYPES, 1, | ||||
[iov_iter types are available]) | [iov_iter types are available]) | ||||
],[ | ],[ | ||||
AC_MSG_RESULT(no) | AC_MSG_RESULT(no) | ||||
enable_vfs_iov_iter="no" | enable_vfs_iov_iter="no" | ||||
]) | |||||
dnl # | |||||
dnl # 'iov_iter_init' available in Linux 3.16 and newer. | |||||
dnl # 'iov_iter_init_legacy' available in Linux 3.15 and older. | |||||
dnl # | |||||
AC_MSG_CHECKING([whether iov_iter_init() is available]) | |||||
ZFS_LINUX_TEST_RESULT([iov_iter_init], [ | |||||
AC_MSG_RESULT(yes) | |||||
AC_DEFINE(HAVE_IOV_ITER_INIT, 1, | |||||
[iov_iter_init() is available]) | |||||
],[ | |||||
ZFS_LINUX_TEST_RESULT([iov_iter_init_legacy], [ | |||||
AC_MSG_RESULT(yes) | |||||
AC_DEFINE(HAVE_IOV_ITER_INIT_LEGACY, 1, | |||||
[iov_iter_init() is available]) | |||||
],[ | |||||
ZFS_LINUX_TEST_ERROR([iov_iter_init()]) | |||||
]) | |||||
]) | ]) | ||||
AC_MSG_CHECKING([whether iov_iter_advance() is available]) | AC_MSG_CHECKING([whether iov_iter_advance() is available]) | ||||
ZFS_LINUX_TEST_RESULT([iov_iter_advance], [ | ZFS_LINUX_TEST_RESULT([iov_iter_advance], [ | ||||
AC_MSG_RESULT(yes) | AC_MSG_RESULT(yes) | ||||
AC_DEFINE(HAVE_IOV_ITER_ADVANCE, 1, | AC_DEFINE(HAVE_IOV_ITER_ADVANCE, 1, | ||||
[iov_iter_advance() is available]) | [iov_iter_advance() is available]) | ||||
],[ | ],[ | ||||
▲ Show 20 Lines • Show All 65 Lines • Show Last 20 Lines |