This patch is to kernel.m4 and adds the appropriate configure checks
to make sure building against a xen kernel works okay.

mainly its just adding the #ifdef CONFIG_XEN then include the appropriate files.

Thanks,
- David Brown
--- a/maint/config/kernel.m4	2007-05-07 15:16:42.000000000 -0700
+++ b/maint/config/kernel.m4	2007-05-07 15:18:37.000000000 -0700
@@ -23,6 +23,11 @@
 	dnl if this test fails, the kernel already defined it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		void i_size_write(struct inode *inode,
 				loff_t i_size)
@@ -40,6 +45,11 @@
 	dnl if this test fails, the kernel already defined it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		loff_t i_size_read(struct inode *inode)
 		{
@@ -56,6 +66,11 @@
 	dnl if this test fails, the kernel already defined it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		loff_t iget_locked(struct inode *inode)
 		{
@@ -72,6 +87,11 @@
 	dnl if this test fails, the kernel already defined it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		loff_t iget4_locked(struct inode *inode)
 		{
@@ -88,6 +108,11 @@
 	dnl if this test fails, the kernel already defined it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		loff_t iget5_locked(struct inode *inode)
 		{
@@ -104,6 +129,11 @@
 	AC_MSG_CHECKING(for struct xtvec in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/uio.h>
 		static struct xtvec xv = { 0, 0 };
 	], [],
@@ -116,6 +146,11 @@
 	AC_MSG_CHECKING(for struct kmem_cache in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/slab.h>
 		static struct kmem_cache;
 	], [],
@@ -128,6 +163,11 @@
 	AC_MSG_CHECKING(for SLAB_KERNEL flag in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/slab.h>
 		static int flags = SLAB_KERNEL;
 	], [],
@@ -141,6 +181,11 @@
 	AC_MSG_CHECKING(for memory_backed in struct backing_dev_info in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/mm.h>
 		#include <linux/backing-dev.h>
 		static struct backing_dev_info bdi = {
@@ -157,6 +202,11 @@
 		AC_MSG_CHECKING(for sendfile callback in struct file_operations in kernel)
 		AC_TRY_COMPILE([
 			#define __KERNEL__
+                        #ifdef CONFIG_XEN
+                        #include <linux/types.h>
+                        #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                        #include <xen/interface/xen.h>
+                        #endif
 			#include <linux/fs.h>
 			static struct file_operations fop = {
 				 .sendfile = NULL,
@@ -172,6 +222,11 @@
 	AC_MSG_CHECKING(for find_inode_handle callback in struct super_operations in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct super_operations sop = {
 		    .find_inode_handle = NULL,
@@ -186,6 +241,11 @@
 	AC_MSG_CHECKING(for i_blksize in struct inode)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct inode i = {
 			.i_blksize = 0,
@@ -200,6 +260,11 @@
 	AC_MSG_CHECKING(for statfs_lite callback in struct super_operations in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct super_operations sop = {
 		    .statfs_lite = NULL,
@@ -214,6 +279,11 @@
 	AC_MSG_CHECKING(for fill_handle callback in struct inode_operations in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct inode_operations iop = {
 		    .fill_handle = NULL,
@@ -228,6 +298,11 @@
 	AC_MSG_CHECKING(for getattr_lite callback in struct inode_operations in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct inode_operations iop = {
 		    .getattr_lite = NULL,
@@ -242,6 +317,11 @@
 	AC_MSG_CHECKING(for get_fs_key callback in struct super_operations in kernel)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		static struct super_operations sop = {
 		    .get_fs_key = NULL,
@@ -256,6 +336,11 @@
 	AC_MSG_CHECKING(for readdirplus member in file_operations structure)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 		 ], [
 		 struct file_operations filop = {
@@ -271,6 +356,11 @@
 	AC_MSG_CHECKING(for readdirplus_lite member in file_operations structure)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 		 ], [
 		 struct file_operations filop = {
@@ -287,6 +377,11 @@
 	AC_MSG_CHECKING(for readx member in file_operations structure)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 		 ], [
 		 struct file_operations filop = {
@@ -302,6 +397,11 @@
 	AC_MSG_CHECKING(for writex member in file_operations structure)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 		 ], [
 		 struct file_operations filop = {
@@ -318,6 +418,11 @@
 	dnl if this test fails, the kernel does not have it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/wait.h>
 		#include <linux/aio.h>
 		  static struct kiocb iocb;
@@ -336,6 +441,11 @@
 		dnl have this member and we disable support for AIO
 		AC_TRY_COMPILE([
 			#define __KERNEL__
+                        #ifdef CONFIG_XEN
+                        #include <linux/types.h>
+                        #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                        #include <xen/interface/xen.h>
+                        #endif
 			#include <linux/wait.h>
 			#include <linux/aio.h>
 			static struct kiocb io_cb = {
@@ -359,6 +469,11 @@
 	dnl if this test fails, the kernel does not have it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		extern int pvfs_statfs(struct dentry *, struct kstatfs *);
 			  static struct super_operations s_op = {
@@ -375,6 +490,11 @@
 	dnl if this test fails, the kernel does not have it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		#include <linux/mount.h>
 		extern int pvfs_get_sb(struct file_system_type *fst, int flags, const char *devname, void *data, struct vfsmount *);
@@ -393,6 +513,11 @@
 	dnl if this test fails, the kernel does not have it
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 			  static struct inode_operations in_op = {
 				  .getxattr = NULL
@@ -411,6 +536,11 @@
 	   dnl if this test passes, there is a const void* argument
 	   AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		], 
 		[
@@ -435,7 +565,12 @@
 	dnl if this test passes, there is a 6th argument
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
-	    #include <linux/fs.h>
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
+            #include <linux/fs.h>
 	    #include <linux/sysctl.h>
 	    ], [
 	    proc_dointvec_minmax(NULL, 0, NULL, NULL, NULL, NULL);
@@ -447,6 +582,11 @@
 
 	AC_CHECK_HEADERS([linux/posix_acl.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <linux/fs.h>
 		 #ifdef HAVE_XATTR 
 		 #include <linux/xattr.h> 
@@ -455,6 +595,11 @@
 
 	AC_CHECK_HEADERS([linux/posix_acl_xattr.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <linux/fs.h>
 		 #ifdef HAVE_XATTR 
 		 #include <linux/xattr.h> 
@@ -472,22 +617,47 @@
 
 	AC_CHECK_HEADERS([linux/mount.h], [], [], 
 		[#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		 #include <linux/mount.h>
 		 ] )
 	AC_CHECK_HEADERS([linux/ioctl32.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <linux/ioctl32.h>
 		 ] )
 	AC_CHECK_HEADERS([linux/compat.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <linux/compat.h>
 		 ] )
 	AC_CHECK_HEADERS([linux/syscalls.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <linux/syscalls.h>
 		 ] )
 	AC_CHECK_HEADERS([asm/ioctl32.h], [], [], 
 		[#define __KERNEL__
+                 #ifdef CONFIG_XEN
+                 #include <linux/types.h>
+                 #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                 #include <xen/interface/xen.h>
+                 #endif
 		 #include <asm/ioctl32.h>
 		 ] )
 
@@ -499,6 +669,11 @@
 
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		int generic_file_readv(struct inode *inode)
 		{
@@ -518,6 +693,11 @@
 
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		int generic_permission(struct inode *inode)
 		{
@@ -534,6 +714,11 @@
 	dnl if this test fails, the kernel has it defined
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 				#include <linux/xattr.h>
 		int generic_getxattr(struct inode *inode)
@@ -549,6 +734,11 @@
 	AC_MSG_CHECKING(for arg member in read_descriptor_t in kernel)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 	    ], [
 	    read_descriptor_t x;
@@ -582,6 +772,11 @@
 	AC_MSG_CHECKING(for int return in inode_operations follow_link)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 	    extern int page_follow_link_light(struct dentry *,
 	                                      struct nameidata *);
@@ -599,6 +794,11 @@
 	AC_MSG_CHECKING(for older int return in invalidatepage)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+                #ifdef CONFIG_XEN
+                #include <linux/types.h>
+                #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+                #include <xen/interface/xen.h>
+                #endif
 		#include <linux/fs.h>
 		], 
                 [
@@ -681,6 +881,11 @@
 	AC_MSG_CHECKING(for combined file_operations readv and aio_read)
 	AC_TRY_COMPILE([
 	    #define __KERNEL__
+            #ifdef CONFIG_XEN
+            #include <linux/types.h>
+            #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+            #include <xen/interface/xen.h>
+            #endif
 	    #include <linux/fs.h>
 		 ], [
 		 struct file_operations filop = {
@@ -696,6 +901,11 @@
 	AC_MSG_CHECKING(for kzalloc)
 	AC_TRY_COMPILE([
 		#define __KERNEL__
+		#ifdef CONFIG_XEN
+		#include <linux/types.h>
+		#define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
+		#include <xen/interface/xen.h>
+		#endif
 		#include <linux/slab.h>
 	], [
 		void * a;
_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to