linux-2624-20071123
[openafs.git] / src / cf / linux-test4.m4
index dd543b3..efea052 100644 (file)
@@ -41,6 +41,15 @@ lose
       ac_cv_linux_completion_h_exists=no)])
   AC_MSG_RESULT($ac_cv_linux_completion_h_exists)])
 
+AC_DEFUN([LINUX_EXPORTFS_H_EXISTS], [
+  AC_MSG_CHECKING([for linux/exportfs.h existence])
+  AC_CACHE_VAL([ac_cv_linux_exportfs_h_exists], [
+    AC_TRY_KBUILD(
+[#include <linux/exportfs.h>],
+[return;],
+      ac_cv_linux_exportfs_h_exists=yes,
+      ac_cv_linux_exportfs_h_exists=no)])
+  AC_MSG_RESULT($ac_cv_linux_exportfs_h_exists)])
 
 AC_DEFUN([LINUX_DEFINES_FOR_EACH_PROCESS], [
   AC_MSG_CHECKING([for defined for_each_process])
@@ -444,6 +453,18 @@ printk("%d\n", _tsk.exit_state);],
   AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_exit_state)])
 
 
+AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO], [
+  AC_MSG_CHECKING([for thread_info in struct task_struct])
+  AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_thread_info], [
+    AC_TRY_KBUILD(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printk("%d\n", _tsk.thread_info);],
+      ac_cv_linux_sched_struct_task_struct_has_thread_info=yes,
+      ac_cv_linux_sched_struct_task_struct_has_thread_info=no)])
+  AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_thread_info)])
+
+
 AC_DEFUN([LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE], [
   AC_MSG_CHECKING([for alloc_inode in struct super_operations])
   AC_CACHE_VAL([ac_cv_linux_fs_struct_super_has_alloc_inode], [
@@ -838,3 +859,113 @@ register_sysctl_table (t);],
       ac_cv_linux_register_sysctl_table_noflag=no)])
   AC_MSG_RESULT($ac_cv_linux_register_sysctl_table_noflag)])
 
+AC_DEFUN([LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T], [
+  AC_MSG_CHECKING([whether file_operations.flush takes a fl_owner_t])
+  AC_CACHE_VAL([ac_cv_linux_func_f_flush_takes_fl_owner_t], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct inode _inode;
+struct file _file;
+fl_owner_t id;
+(void)_inode.i_fop->flush(&_file, &id);],
+      ac_cv_linux_func_f_flush_takes_fl_owner_t=yes,
+      ac_cv_linux_func_f_flush_takes_fl_owner_t=no)])
+  AC_MSG_RESULT($ac_cv_linux_func_f_flush_takes_fl_owner_t)])
+
+AC_DEFUN([LINUX_HAVE_KMEM_CACHE_T], [
+  AC_MSG_CHECKING([whether kmem_cache_t exists])
+  AC_CACHE_VAL([ac_cv_linux_have_kmem_cache_t], [
+    AC_TRY_KBUILD(
+[#include <linux/slab.h>],
+[kmem_cache_t *k;],
+      ac_cv_linux_have_kmem_cache_t=yes,
+      ac_cv_linux_have_kmem_cache_t=no)])
+  AC_MSG_RESULT($ac_cv_linux_have_kmem_cache_t)])
+
+AC_DEFUN([LINUX_KMEM_CACHE_CREATE_TAKES_DTOR], [
+  AC_MSG_CHECKING([whether kmem_cache_create takes a destructor argument])
+  AC_CACHE_VAL([ac_cv_linux_kmem_cache_create_takes_dtor], [
+    AC_TRY_KBUILD(
+[#include <linux/slab.h>],
+[kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);],
+      ac_cv_linux_kmem_cache_create_takes_dtor=yes,
+      ac_cv_linux_kmem_cache_create_takes_dtor=no)])
+  AC_MSG_RESULT($ac_cv_linux_kmem_cache_create_takes_dtor)])
+
+AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SENDFILE], [
+  AC_MSG_CHECKING([for sendfile in struct file_operations])
+  AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_sendfile], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct file_operations _fop;
+_fop.sendfile(NULL, NULL, 0, 0, NULL);],
+      ac_cv_linux_fs_struct_fop_has_sendfile=yes,
+      ac_cv_linux_fs_struct_fop_has_sendfile=no)])
+  AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_sendfile)])
+
+AC_DEFUN([LINUX_HAVE_SVC_ADDR_IN], [
+  AC_MSG_CHECKING([whether svc_addr_in exists])
+  AC_CACHE_VAL([ac_cv_linux_have_svc_addr_in], [
+    AC_TRY_KBUILD(
+[#include <linux/sunrpc/svc.h>],
+[svc_addr_in(NULL);],
+      ac_cv_linux_have_svc_addr_in=yes,
+      ac_cv_linux_have_svc_addr_in=no)])
+  AC_MSG_RESULT($ac_cv_linux_have_svc_addr_in)])
+
+AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SPLICE], [
+  AC_MSG_CHECKING([for splice_write and splice_read in struct file_operations])
+  AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_splice], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);],
+      ac_cv_linux_fs_struct_fop_has_splice=yes,
+      ac_cv_linux_fs_struct_fop_has_splice=no)])
+  AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_splice)])
+
+AC_DEFUN([LINUX_KEY_TYPE_H_EXISTS], [
+  AC_MSG_CHECKING([whether linux/key-type.h exists])
+  AC_CACHE_VAL([ac_cv_linux_key_type_h_exists], [
+    AC_TRY_KBUILD(
+[#include <linux/key-type.h>],
+[return;],
+      ac_cv_linux_key_type_h_exists=yes,
+      ac_cv_linux_key_type_h_exists=no)])
+  AC_MSG_RESULT($ac_cv_linux_key_type_h_exists)])
+
+AC_DEFUN([LINUX_HAVE_CURRENT_KERNEL_TIME], [
+  AC_MSG_CHECKING([for current_kernel_time()])
+  AC_CACHE_VAL([ac_cv_linux_have_current_kernel_time], [
+    AC_TRY_KBUILD(
+[#include <linux/time.h>],
+[struct timespec s = current_kernel_time();],
+      ac_cv_linux_have_current_kernel_time=yes,
+      ac_cv_linux_have_current_kernel_time=no)])
+  AC_MSG_RESULT($ac_cv_linux_have_current_kernel_time)])
+
+AC_DEFUN([LINUX_KMEM_CACHE_INIT], [
+  AC_MSG_CHECKING([for new kmem_cache init function parameters])
+  AC_CACHE_VAL([ac_cv_linux_kmem_cache_init], [
+    AC_TRY_KBUILD(
+[#include <linux/slab.h>],
+[extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+                        unsigned long,
+                        void (*)(struct kmem_cache *, void *));
+return;],
+      ac_cv_linux_kmem_cache_init=yes,
+      ac_cv_linux_kmem_cache_init=no)])
+  AC_MSG_RESULT($ac_cv_linux_kmem_cache_init)])
+
+AC_DEFUN([LINUX_SYSCTL_TABLE_CHECKING], [
+  AC_MSG_CHECKING([for sysctl table checking])
+  AC_CACHE_VAL([ac_cv_linux_sysctl_table_checking], [
+    AC_TRY_KBUILD(
+[#include <linux/sysctl.h>],
+[extern int sysctl_check_table(struct ctl_table *t);
+sysctl_check_table(NULL);],
+      ac_cv_linux_sysctl_table_checking=yes,
+      ac_cv_linux_sysctl_table_checking=no)])
+  AC_MSG_RESULT($ac_cv_linux_sysctl_table_checking)])
+