linux-lock-tracking-20070208
[openafs.git] / src / cf / linux-test4.m4
index 261c82d..0fd4e3c 100644 (file)
@@ -176,6 +176,21 @@ printk("%d\n", _inode.i_blksize);],
       ac_cv_linux_fs_struct_inode_has_i_blksize=no)])
   AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_blksize)])
 
+AC_DEFUN([LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS], [
+  AC_MSG_CHECKING([for i_blkbits in struct inode])
+  AC_CACHE_VAL([ac_cv_linux_fs_struct_inode_has_i_blkbits], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct inode _inode;
+printk("%d\n", _inode.i_blkbits);],
+      ac_cv_linux_fs_struct_inode_has_i_blkbits=yes,
+      ac_cv_linux_fs_struct_inode_has_i_blkbits=no)])
+  AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_blkbits)
+  if test "x$ac_cv_linux_fs_struct_inode_has_i_blkbits" = "xyes"; then
+    AC_DEFINE(STRUCT_INODE_HAS_I_BLKBITS, 1, [define if your struct inode has i_blkbits])
+  fi])
+
+
 AC_DEFUN([LINUX_FS_STRUCT_INODE_HAS_I_CDEV], [
   AC_MSG_CHECKING([for i_cdev in struct inode])
   AC_CACHE_VAL([ac_cv_linux_fs_struct_inode_has_i_cdev], [
@@ -318,6 +333,18 @@ printk("%d\n", _tsk.parent);],
   AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_parent)])
 
 
+AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID], [
+  AC_MSG_CHECKING([for tgid in struct task_struct])
+  AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_tgid], [
+    AC_TRY_KBUILD(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printk("%d\n", _tsk.tgid);],
+      ac_cv_linux_sched_struct_task_struct_has_tgid=yes,
+      ac_cv_linux_sched_struct_task_struct_has_tgid=no)])
+  AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_tgid)])
+
+
 AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT], [
   AC_MSG_CHECKING([for real_parent in struct task_struct])
   AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_real_parent], [
@@ -547,7 +574,10 @@ AC_DEFUN([LINUX_REFRIGERATOR], [
   AC_MSG_CHECKING([whether refrigerator takes PF_FREEZE])
   AC_CACHE_VAL([ac_cv_linux_func_refrigerator_takes_pf_freeze], [
     AC_TRY_KBUILD(
-[#include <linux/sched.h>],
+[#include <linux/sched.h>
+#ifdef FREEZER_H_EXISTS
+#include <linux/freezer.h>
+#endif],
 [refrigerator(PF_FREEZE);],
       ac_cv_linux_func_refrigerator_takes_pf_freeze=yes,
       ac_cv_linux_func_refrigerator_takes_pf_freeze=no)])
@@ -622,6 +652,19 @@ AC_DEFUN([LINUX_GET_SB_HAS_STRUCT_VFSMOUNT], [
       ac_cv_linux_get_sb_has_struct_vfsmount=no)])
   AC_MSG_RESULT($ac_cv_linux_get_sb_has_struct_vfsmount)])
 
+AC_DEFUN([LINUX_STATFS_TAKES_DENTRY], [
+  AC_MSG_CHECKING([for dentry in statfs])
+  AC_CACHE_VAL([ac_cv_linux_statfs_takes_dentry], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>
+#include <linux/statfs.h>],
+[
+extern int vfs_statfs(struct dentry *, struct kstatfs *);
+],
+      ac_cv_linux_statfs_takes_dentry=yes,
+      ac_cv_linux_statfs_takes_dentry=no)])
+  AC_MSG_RESULT($ac_cv_linux_statfs_takes_dentry)])
+
 AC_DEFUN([LINUX_LINUX_KEYRING_SUPPORT], [
   AC_MSG_CHECKING([for linux kernel keyring support])
   AC_CACHE_VAL([ac_cv_linux_keyring_support], [
@@ -691,3 +734,53 @@ AC_DEFUN([LINUX_GENERIC_FILE_AIO_READ], [
     AC_DEFINE([GENERIC_FILE_AIO_READ], 1, [define if your kernel has generic_file_aio_read()])
   fi])
 
+AC_DEFUN([LINUX_FREEZER_H_EXISTS], [
+  AC_MSG_CHECKING([for linux/freezer.h existance])
+  AC_CACHE_VAL([ac_cv_linux_freezer_h_exists], [
+    AC_TRY_KBUILD(
+[#include <linux/freezer.h>],
+[return;],
+      ac_cv_linux_freezer_h_exists=yes,
+      ac_cv_linux_freezer_h_exists=no)])
+  AC_MSG_RESULT($ac_cv_linux_freezer_h_exists)
+  if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
+    AC_DEFINE([FREEZER_H_EXISTS], 1, [define if linux/freezer.h exists])
+  fi])
+
+AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO], [
+  AC_MSG_CHECKING([for todo in struct task_struct])
+  AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_todo], [
+    AC_TRY_KBUILD(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printk("%d\n", _tsk.todo);],
+      ac_cv_linux_sched_struct_task_struct_has_todo=yes,
+      ac_cv_linux_sched_struct_task_struct_has_todo=no)])
+  AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_todo)])
+
+AC_DEFUN([LINUX_INIT_WORK_HAS_DATA], [
+  AC_MSG_CHECKING([whether INIT_WORK has a _data argument])
+  AC_CACHE_VAL([ac_cv_linux_init_work_has_data], [
+    AC_TRY_KBUILD(
+[#include <linux/kernel.h>
+#include <linux/workqueue.h>],
+[ 
+void f(struct work_struct *w) {}
+struct work_struct *w;
+int *i;
+INIT_WORK(w,f,i);],
+      ac_cv_linux_init_work_has_data=yes,
+      ac_cv_linux_init_work_has_data=no)])
+  AC_MSG_RESULT($ac_cv_linux_init_work_has_data)])
+
+
+AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_FLOCK], [
+  AC_MSG_CHECKING([for flock in struct file_operations])
+  AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_flock], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct file_operations _fop;
+_fop.flock(NULL, 0, NULL);],
+      ac_cv_linux_fs_struct_fop_has_flock=yes,
+      ac_cv_linux_fs_struct_fop_has_flock=no)])
+  AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_flock)])