#
case `uname -r` in
*9*|*10*)
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
;;
*11*)
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
* find the maximum positive lock offset as an SMB_OFF_T.
*/
-#if defined(LARGE_SMB_OFF_T) && !defined(HAVE_BROKEN_FCNTL64_LOCKS)
+#if defined(MAX_POSITIVE_LOCK_OFFSET) /* Some systems have arbitrary limits. */
+
+ SMB_OFF_T max_positive_lock_offset = (MAX_POSITIVE_LOCK_OFFSET);
+
+#elif defined(LARGE_SMB_OFF_T) && !defined(HAVE_BROKEN_FCNTL64_LOCKS)
/*
* In this case SMB_OFF_T is 64 bits,
}
/*
- * We must truncate the offset and count to less than max_positive_lock_offset.
- */
-
- offset &= max_positive_lock_offset;
- count &= max_positive_lock_offset;
-
-
- /*
- * Deal with a very common case of count of all ones.
- * (lock entire file).
+ * We must truncate the count to less than max_positive_lock_offset.
*/
- if(count == (SMB_OFF_T)-1)
+ if (u_count & ~((SMB_BIG_UINT)max_positive_lock_offset))
count = max_positive_lock_offset;
/*