1dnl # 2dnl # 3.16 API Change 3dnl # 4dnl # rwsem-spinlock "->activity" changed to "->count" 5dnl # 6AC_DEFUN([ZFS_AC_KERNEL_SRC_RWSEM_ACTIVITY], [ 7 ZFS_LINUX_TEST_SRC([rwsem_activity], [ 8 #include <linux/rwsem.h> 9 ],[ 10 struct rw_semaphore dummy_semaphore __attribute__ ((unused)); 11 dummy_semaphore.activity = 0; 12 ]) 13]) 14 15AC_DEFUN([ZFS_AC_KERNEL_RWSEM_ACTIVITY], [ 16 AC_MSG_CHECKING([whether struct rw_semaphore has member activity]) 17 ZFS_LINUX_TEST_RESULT([rwsem_activity], [ 18 AC_MSG_RESULT(yes) 19 AC_DEFINE(HAVE_RWSEM_ACTIVITY, 1, 20 [struct rw_semaphore has member activity]) 21 ],[ 22 AC_MSG_RESULT(no) 23 ]) 24]) 25 26dnl # 27dnl # 4.8 API Change 28dnl # 29dnl # rwsem "->count" changed to atomic_long_t type 30dnl # 31AC_DEFUN([ZFS_AC_KERNEL_SRC_RWSEM_ATOMIC_LONG_COUNT], [ 32 ZFS_LINUX_TEST_SRC([rwsem_atomic_long_count], [ 33 #include <linux/rwsem.h> 34 ],[ 35 DECLARE_RWSEM(dummy_semaphore); 36 (void) atomic_long_read(&dummy_semaphore.count); 37 ]) 38]) 39 40AC_DEFUN([ZFS_AC_KERNEL_RWSEM_ATOMIC_LONG_COUNT], [ 41 AC_MSG_CHECKING( 42 [whether struct rw_semaphore has atomic_long_t member count]) 43 ZFS_LINUX_TEST_RESULT([rwsem_atomic_long_count], [ 44 AC_MSG_RESULT(yes) 45 AC_DEFINE(HAVE_RWSEM_ATOMIC_LONG_COUNT, 1, 46 [struct rw_semaphore has atomic_long_t member count]) 47 ],[ 48 AC_MSG_RESULT(no) 49 ]) 50]) 51 52AC_DEFUN([ZFS_AC_KERNEL_SRC_RWSEM], [ 53 ZFS_AC_KERNEL_SRC_RWSEM_ACTIVITY 54 ZFS_AC_KERNEL_SRC_RWSEM_ATOMIC_LONG_COUNT 55]) 56 57AC_DEFUN([ZFS_AC_KERNEL_RWSEM], [ 58 ZFS_AC_KERNEL_RWSEM_ACTIVITY 59 ZFS_AC_KERNEL_RWSEM_ATOMIC_LONG_COUNT 60]) 61