Pull in fls64 compat changes from spl-00-rhel4-compat.patch,

to allow greater compatibility with kernels pre 2.6.16.



git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@149 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
behlendo 2008-08-06 04:52:39 +00:00
parent 7afde631f6
commit 877a32e91e
3 changed files with 38 additions and 0 deletions

View File

@ -439,3 +439,21 @@ AC_DEFUN([SPL_AC_CTL_UNNUMBERED],
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
]) ])
]) ])
dnl #
dnl # 2.6.16 API change.
dnl # Check if 'fls64()' is available
dnl #
AC_DEFUN([SPL_AC_FLS64],
[AC_MSG_CHECKING([whether fls64() is available])
SPL_LINUX_TRY_COMPILE([
#include <linux/bitops.h>
],[
return fls64(0);
],[
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_FLS64, 1, [fls64() is available])
],[
AC_MSG_RESULT(no)
])
])

View File

@ -51,6 +51,7 @@ SPL_AC_SET_SHRINKER
SPL_AC_PATH_IN_NAMEIDATA SPL_AC_PATH_IN_NAMEIDATA
SPL_AC_TASK_CURR SPL_AC_TASK_CURR
SPL_AC_CTL_UNNUMBERED SPL_AC_CTL_UNNUMBERED
SPL_AC_FLS64
TOPDIR=`/bin/pwd` TOPDIR=`/bin/pwd`

View File

@ -0,0 +1,19 @@
#ifndef _SPL_BITOPS_COMPAT_H
#define _SPL_BITOPS_COMPAT_H
#include <linux/bitops.h>
#ifndef HAVE_FLS64
static inline int fls64(__u64 x)
{
__u32 h = x >> 32;
if (h)
return fls(h) + 32;
return fls(x);
}
#endif /* HAVE_FLS64 */
#endif /* _SPL_BITOPS_COMPAT_H */