]) # LIBCFS_HAVE_TASK_IS_RUNNING
#
-# LIBCFS_IOV_ITER_HAS_ITER_TYPE
-#
-# kernel 5.13 commit 8cd54c1c848031a87820e58d772166ffdf8c08c0 change
-# ->type to ->iter_type
-#
-AC_DEFUN([LIBCFS_SRC_IOV_ITER_HAS_ITER_TYPE], [
- LB2_LINUX_TEST_SRC([iov_iter_has_iter_type_member], [
- #include <linux/uio.h>
- ],[
- struct iov_iter iter = { .iter_type = ITER_KVEC };
- (void)iter;
- ],
- [-Werror])
-])
-AC_DEFUN([LIBCFS_IOV_ITER_HAS_ITER_TYPE], [
- AC_MSG_CHECKING([if iov_iter has member type])
- LB2_LINUX_TEST_RESULT([iov_iter_has_iter_type_member], [
- AC_DEFINE(HAVE_IOV_ITER_HAS_ITER_TYPE_MEMBER, 1,
- [if iov_iter has member iter_type])
- ])
-]) # LIBCFS_IOV_ITER_HAS_ITER_TYPE
-
-#
# LIBCFS_LINUX_STDARG_HEADER
#
# Kernel 5.14-rc5 commit c0891ac15f0428ffa81b2e818d416bdf3cb74ab6
LIBCFS_SRC_LINUX_FORTIFY_STRING_HEADER
# 5.13
LIBCFS_SRC_HAVE_TASK_IS_RUNNING
- LIBCFS_SRC_IOV_ITER_HAS_ITER_TYPE
# 5.15
LIBCFS_SRC_PARAM_SET_UINT_MINMAX
# 5.17
LIBCFS_LINUX_FORTIFY_STRING_HEADER
# 5.13
LIBCFS_HAVE_TASK_IS_RUNNING
- LIBCFS_IOV_ITER_HAS_ITER_TYPE
# 5.15
LIBCFS_PARAM_SET_UINT_MINMAX
# 5.17
#include <linux/uio.h>
#include <linux/kallsyms.h>
+/*
+ * Since 4.20 commit 00e23707442a75b404392cef1405ab4fd498de6b
+ * iov_iter: Use accessor functions to access an iterator's type and direction.
+ * iter_is_iovec() and iov_iter_is_* are available, supply the missing
+ * functionality for older kernels.
+ */
#ifndef HAVE_IOV_ITER_TYPE
+/*
+ * Since 3.15-rc4 commit 71d8e532b1549a478e6a6a8a44f309d050294d00
+ * The iov iterator has a type and can iterate over numerous vector types.
+ * Prior to this only iovec is supported, so all iov_iter_is_* are false.
+ */
#ifdef HAVE_IOV_ITER_HAS_TYPE_MEMBER
#define iter_is_iovec(iter) ((iter)->type & ITER_IOVEC)
#define iov_iter_is_kvec(iter) ((iter)->type & ITER_KVEC)