linux-config-h-died-20061109
[openafs.git] / src / cf / linux-test4.m4
index 34dceed..261c82d 100644 (file)
@@ -1,3 +1,17 @@
+AC_DEFUN([LINUX_CONFIG_H_EXISTS], [
+  AC_MSG_CHECKING([for linux/config.h existance])
+  AC_CACHE_VAL([ac_cv_linux_config_h_exists], [
+    AC_TRY_KBUILD(
+[#include <linux/config.h>],
+[return;],
+      ac_cv_linux_config_h_exists=yes,
+      ac_cv_linux_config_h_exists=no)])
+  AC_MSG_RESULT($ac_cv_linux_config_h_exists)
+  if test "x$ac_cv_linux_config_h_exists" = "xyes"; then
+    AC_DEFINE([CONFIG_H_EXISTS], 1, [define if linux/config.h exists])
+  fi])
+
+
 AC_DEFUN([LINUX_COMPLETION_H_EXISTS], [
   AC_MSG_CHECKING([for linux/completion.h existance])
   AC_CACHE_VAL([ac_cv_linux_completion_h_exists], [
@@ -614,13 +628,12 @@ AC_DEFUN([LINUX_LINUX_KEYRING_SUPPORT], [
     AC_TRY_KBUILD(
 [#include <linux/rwsem.h>
 #include <linux/key.h>
-#include <linux/keyctl.h>
-#include <asm/unistd.h>
-static int errno;
-static inline _syscall2(long, keyctl, int, option, void*, arg2);],
+#include <linux/keyctl.h>],
 [#ifdef CONFIG_KEYS
-keyctl(KEYCTL_JOIN_SESSION_KEYRING, NULL);
 request_key(NULL, NULL, NULL);
+#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR) 
+#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
+#endif
 #else
 #error rebuild your kernel with CONFIG_KEYS
 #endif],
@@ -645,3 +658,36 @@ AC_DEFUN([LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK], [
   if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
     AC_DEFINE([KEY_ALLOC_NEEDS_STRUCT_TASK], 1, [define if key_alloc takes a struct task *])
   fi])
+
+AC_DEFUN([LINUX_DO_SYNC_READ], [
+  AC_MSG_CHECKING([for linux do_sync_read()])
+  AC_CACHE_VAL([ac_cv_linux_do_sync_read], [
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[do_sync_read(NULL, NULL, 0, NULL);],
+      ac_cv_linux_do_sync_read=yes,
+      ac_cv_linux_do_sync_read=no)
+    CPPFLAGS="$save_CPPFLAGS"])
+  AC_MSG_RESULT($ac_cv_linux_do_sync_read)
+  if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+    AC_DEFINE([DO_SYNC_READ], 1, [define if your kernel has do_sync_read()])
+  fi])
+
+AC_DEFUN([LINUX_GENERIC_FILE_AIO_READ], [
+  AC_MSG_CHECKING([for linux generic_file_aio_read()])
+  AC_CACHE_VAL([ac_cv_linux_generic_file_aio_read], [
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[generic_file_aio_read(NULL, NULL, 0, 0);],
+      ac_cv_linux_generic_file_aio_read=yes,
+      ac_cv_linux_generic_file_aio_read=no)
+    CPPFLAGS="$save_CPPFLAGS"])
+  AC_MSG_RESULT($ac_cv_linux_generic_file_aio_read)
+  if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+    AC_DEFINE([GENERIC_FILE_AIO_READ], 1, [define if your kernel has generic_file_aio_read()])
+  fi])
+