OPENAFS_GCC_SUPPORTS_NO_COMMON
OPENAFS_GCC_SUPPORTS_PIPE
AC_SUBST(LINUX_GCC_KOPTS)
- ifdef([OPENAFS_CONFIGURE_LIBAFS],
- [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
- [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
- )
LINUX_KBUILD_USES_EXTRA_CFLAGS
LINUX_KERNEL_COMPILE_WORKS
AC_SUBST(LINUX_PKGVER)
AC_SUBST(LINUX_PKGREL)
-define(OPENAFS_CONFIGURE_LIBAFS)
AC_PROG_CC
OPENAFS_CONFIGURE_COMMON
+++ /dev/null
-# After changing this file, please run
-# git ls-files -i --exclude-standard
-# to check that you haven't inadvertently ignored any tracked files.
-
-/osi_vfs.h
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+/*
+ * Linux interpretations of vnode and vfs structs.
+ */
+
+#ifndef OSI_VFS_H_
+#define OSI_VFS_H_
+
+typedef struct inode vnode_t;
+#define vnode inode
+
+/* Map vnode fields to inode fields */
+#define i_number i_ino
+#define v_count i_count
+#define v_op i_op
+#define v_fop i_fop
+#define v_type i_mode
+#define v_vfsp i_sb
+#define v_data u.generic_ip
+
+/* v_type bits map to mode bits */
+#define VNON 0
+#define VREG S_IFREG
+#define VDIR S_IFDIR
+#define VBLK S_IFBLK
+#define VCHR S_IFCHR
+#define VLNK S_IFLNK
+#define VSOCK S_IFSOCK
+#define VFIFO S_IFIFO
+
+/* vcexcl - used only by afs_create */
+enum vcexcl { EXCL, NONEXCL } ;
+
+/* afs_open and afs_close needs to distinguish these cases */
+#define FWRITE O_WRONLY|O_RDWR|O_APPEND
+#define FTRUNC O_TRUNC
+
+#define IO_APPEND O_APPEND
+#define FSYNC O_SYNC
+
+#define VTOI(V) (V)
+
+/* Various mode bits */
+#define VWRITE S_IWUSR
+#define VREAD S_IRUSR
+#define VEXEC S_IXUSR
+#define VSUID S_ISUID
+#define VSGID S_ISGID
+
+#define vfs super_block
+
+typedef struct vattr {
+ int va_type; /* One of v_types above. */
+ afs_size_t va_size;
+ unsigned long va_blocks;
+ unsigned long va_blocksize;
+ int va_mask; /* AT_xxx operation to perform. */
+ umode_t va_mode; /* mode bits. */
+ uid_t va_uid;
+ gid_t va_gid;
+ int va_fsid; /* Not used? */
+ dev_t va_rdev;
+ ino_t va_nodeid; /* Inode number */
+ nlink_t va_nlink; /* link count for file. */
+ struct timeval va_atime;
+ struct timeval va_mtime;
+ struct timeval va_ctime;
+} vattr_t;
+
+#define VATTR_NULL(A) memset(A, 0, sizeof(struct vattr))
+
+#ifndef HAVE_LINUX_I_SIZE_READ
+#define i_size_read(X) ((X)->i_size)
+#define i_size_write(X,Y) (X)->i_size = Y
+#endif
+
+#endif /* OSI_VFS_H_ */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*
- * Linux interpretations of vnode and vfs structs.
- */
-
-#ifndef OSI_VFS_H_
-#define OSI_VFS_H_
-
-typedef struct inode vnode_t;
-#define vnode inode
-
-/* Map vnode fields to inode fields */
-#define i_number i_ino
-#define v_count i_count
-#define v_op i_op
-#define v_fop i_fop
-#define v_type i_mode
-#define v_vfsp i_sb
-#define v_data u.generic_ip
-
-/* v_type bits map to mode bits */
-#define VNON 0
-#define VREG S_IFREG
-#define VDIR S_IFDIR
-#define VBLK S_IFBLK
-#define VCHR S_IFCHR
-#define VLNK S_IFLNK
-#define VSOCK S_IFSOCK
-#define VFIFO S_IFIFO
-
-/* vcexcl - used only by afs_create */
-enum vcexcl { EXCL, NONEXCL } ;
-
-/* afs_open and afs_close needs to distinguish these cases */
-#define FWRITE O_WRONLY|O_RDWR|O_APPEND
-#define FTRUNC O_TRUNC
-
-#define IO_APPEND O_APPEND
-#define FSYNC O_SYNC
-
-#define VTOI(V) (V)
-
-/* Various mode bits */
-#define VWRITE S_IWUSR
-#define VREAD S_IRUSR
-#define VEXEC S_IXUSR
-#define VSUID S_ISUID
-#define VSGID S_ISGID
-
-#define vfs super_block
-
-typedef struct vattr {
- int va_type; /* One of v_types above. */
- afs_size_t va_size;
- unsigned long va_blocks;
- unsigned long va_blocksize;
- int va_mask; /* AT_xxx operation to perform. */
- umode_t va_mode; /* mode bits. */
- uid_t va_uid;
- gid_t va_gid;
- int va_fsid; /* Not used? */
- dev_t va_rdev;
- ino_t va_nodeid; /* Inode number */
- nlink_t va_nlink; /* link count for file. */
- struct timeval va_atime;
- struct timeval va_mtime;
- struct timeval va_ctime;
-} vattr_t;
-
-#define VATTR_NULL(A) memset(A, 0, sizeof(struct vattr))
-
-#ifndef HAVE_LINUX_I_SIZE_READ
-#define i_size_read(X) ((X)->i_size)
-#define i_size_write(X,Y) (X)->i_size = Y
-#endif
-
-#endif /* OSI_VFS_H_ */
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+/*
+ * Linux interpretations of vnode and vfs structs.
+ */
+
+#ifndef OSI_VFS_H_
+#define OSI_VFS_H_
+
+typedef struct inode vnode_t;
+#define vnode inode
+
+/* Map vnode fields to inode fields */
+#define i_number i_ino
+#define v_count i_count
+#define v_op i_op
+#define v_fop i_fop
+#define v_type i_mode
+#define v_vfsp i_sb
+#define v_data u.generic_ip
+
+/* v_type bits map to mode bits */
+#define VNON 0
+#define VREG S_IFREG
+#define VDIR S_IFDIR
+#define VBLK S_IFBLK
+#define VCHR S_IFCHR
+#define VLNK S_IFLNK
+#define VSOCK S_IFSOCK
+#define VFIFO S_IFIFO
+
+/* vcexcl - used only by afs_create */
+enum vcexcl { EXCL, NONEXCL } ;
+
+/* afs_open and afs_close needs to distinguish these cases */
+#define FWRITE O_WRONLY|O_RDWR|O_APPEND
+#define FTRUNC O_TRUNC
+
+#define IO_APPEND O_APPEND
+#define FSYNC O_SYNC
+
+#define VTOI(V) (V)
+#define VFS_STATFS(V, S) ((V)->s_op->statfs)((V), (S), sizeof(*(S)))
+
+/* Various mode bits */
+#define VWRITE S_IWUSR
+#define VREAD S_IRUSR
+#define VEXEC S_IXUSR
+#define VSUID S_ISUID
+#define VSGID S_ISGID
+
+#define vfs super_block
+
+typedef struct vattr {
+ int va_type; /* One of v_types above. */
+ afs_size_t va_size;
+ unsigned long va_blocks;
+ unsigned long va_blocksize;
+ int va_mask; /* AT_xxx operation to perform. */
+ umode_t va_mode; /* mode bits. */
+ uid_t va_uid;
+ gid_t va_gid;
+ int va_fsid; /* Not used? */
+ dev_t va_rdev;
+ ino_t va_nodeid; /* Inode number */
+ nlink_t va_nlink; /* link count for file. */
+ struct timeval va_atime;
+ struct timeval va_mtime;
+ struct timeval va_ctime;
+} vattr_t;
+
+#define VATTR_NULL(A) memset(A, 0, sizeof(struct vattr))
+
+#ifndef HAVE_LINUX_I_SIZE_READ
+#define i_size_read(X) ((X)->i_size)
+#define i_size_write(X,Y) (X)->i_size = Y
+#endif
+
+#endif /* OSI_VFS_H_ */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*
- * Linux interpretations of vnode and vfs structs.
- */
-
-#ifndef OSI_VFS_H_
-#define OSI_VFS_H_
-
-typedef struct inode vnode_t;
-#define vnode inode
-
-/* Map vnode fields to inode fields */
-#define i_number i_ino
-#define v_count i_count
-#define v_op i_op
-#define v_fop i_fop
-#define v_type i_mode
-#define v_vfsp i_sb
-#define v_data u.generic_ip
-
-/* v_type bits map to mode bits */
-#define VNON 0
-#define VREG S_IFREG
-#define VDIR S_IFDIR
-#define VBLK S_IFBLK
-#define VCHR S_IFCHR
-#define VLNK S_IFLNK
-#define VSOCK S_IFSOCK
-#define VFIFO S_IFIFO
-
-/* vcexcl - used only by afs_create */
-enum vcexcl { EXCL, NONEXCL } ;
-
-/* afs_open and afs_close needs to distinguish these cases */
-#define FWRITE O_WRONLY|O_RDWR|O_APPEND
-#define FTRUNC O_TRUNC
-
-#define IO_APPEND O_APPEND
-#define FSYNC O_SYNC
-
-#define VTOI(V) (V)
-#define VFS_STATFS(V, S) ((V)->s_op->statfs)((V), (S), sizeof(*(S)))
-
-/* Various mode bits */
-#define VWRITE S_IWUSR
-#define VREAD S_IRUSR
-#define VEXEC S_IXUSR
-#define VSUID S_ISUID
-#define VSGID S_ISGID
-
-#define vfs super_block
-
-typedef struct vattr {
- int va_type; /* One of v_types above. */
- afs_size_t va_size;
- unsigned long va_blocks;
- unsigned long va_blocksize;
- int va_mask; /* AT_xxx operation to perform. */
- umode_t va_mode; /* mode bits. */
- uid_t va_uid;
- gid_t va_gid;
- int va_fsid; /* Not used? */
- dev_t va_rdev;
- ino_t va_nodeid; /* Inode number */
- nlink_t va_nlink; /* link count for file. */
- struct timeval va_atime;
- struct timeval va_mtime;
- struct timeval va_ctime;
-} vattr_t;
-
-#define VATTR_NULL(A) memset(A, 0, sizeof(struct vattr))
-
-#ifndef HAVE_LINUX_I_SIZE_READ
-#define i_size_read(X) ((X)->i_size)
-#define i_size_write(X,Y) (X)->i_size = Y
-#endif
-
-#endif /* OSI_VFS_H_ */
+++ /dev/null
-dnl LINUX_BUILD_VNODE_FROM_INODE (configdir, outputdir, tmpldir)
-dnl defaults: (src/config, src/afs/LINUX, src/afs/linux)
-
-AC_DEFUN([LINUX_BUILD_VNODE_FROM_INODE], [
-AC_MSG_CHECKING(whether to build osi_vfs.h)
-configdir=ifelse([$1], ,[src/config],$1)
-outputdir=ifelse([$2], ,[src/afs/LINUX],$2)
-tmpldir=ifelse([$3], ,[src/afs/LINUX],$3)
-mkdir -p $outputdir
-cp $tmpldir/osi_vfs.hin $outputdir/osi_vfs.h
-# chmod +x $configdir/make_vnode.pl
-# $configdir/make_vnode.pl -i $LINUX_KERNEL_PATH -t ${tmpldir} -o $outputdir
- AC_MSG_RESULT(yes)
-])
-make_vnode.pl
Makefile.config.in
Makefile.version-NOCML.in
afsconfig.h.in
+++ /dev/null
-#!/usr/bin/perl
-#
-# Make VNODE structure from INODE structure
-#
-# Created By: Derek Atkins <warlord@MIT.EDU>
-#
-use File::Path;
-
-$linux_header_dir="/usr/src/linux";
-$outdir="./src/afs/LINUX";
-$tmpldir="./src/afs/LINUX";
-
-$sepline="/* LINUX VNODE INCLUDED BELOW -- DO NOT MODIFY */\n";
-
-# makeVfs (fs.h, vfs.hin, vfs.out)
-sub makeVfs {
- my ($in,$base,$out) = @_;
- my ($seplinefound);
-
- open (IN, "$in") || die "Cannot open $in for reading";
- open (BASE, "$base" ) || die "Cannot open base file $base";
- open (OUT, ">$out") || die "Cannot open tempfile $out";
-
- while (<BASE>) {
- print OUT;
- if ($_ eq $sepline) {
- $seplinefound = 1;
- last;
- }
- }
-
- print OUT $sepline if !$seplinefound;
-
- my ($state) = 0;
- while (<IN>) {
-
- # Look for 'struct inode' definition
- if ($state == 0) {
- next unless m/^struct\s+inode\s*\{/;
- $state++;
- s/inode/vnode/;
- # Fallthrough
- }
-
- # Look for 'union {' -- print otherwise
- if ($state == 1) {
- if (m/^\s*union\s*\{/) {
- $state++;
- print OUT "#ifdef notdef\n";
- }
- print OUT;
- next;
- }
-
- # Look for the end of the union -- ignore otherwise
- if ($state == 2) {
- print OUT;
- next unless (m/^\s+\}\s*u;/);
- $state++;
- print OUT "#endif /* notdef */\n";
- next;
- }
-
- # Look for end brace -- print until we find it
- if ($state == 3) {
- print OUT;
- if (m/^\s*\};/) { $state++ }
- }
- }
-
- while (<BASE>) { print OUT; }
-
- close (IN);
- close (BASE);
- close (OUT);
-}
-
-sub usage {
- print "usage: $0 [-i linux_header_dir] [-o output_dir] [-h]\n";
- exit 1;
-}
-
-sub testArg {
- my ($arg) = @_;
- return $arg if ($arg && $arg ne "");
- usage;
-}
-
-while ($_ = shift @ARGV) {
- if (m/^-i/) { $linux_header_dir = testArg(shift @ARGV); next; }
- if (m/^-o/) { $outdir = testArg(shift @ARGV); next; }
- if (m/^-t/) { $tmpldir = testArg(shift @ARGV); next; }
- usage;
-}
-
-$linux_fs_h="$linux_header_dir/include/linux/fs.h";
-$vfs_h="$outdir/osi_vfs.h";
-$vfs_hin="$tmpldir/osi_vfs.hin";
-
-# we're running prior to configure finishing, so outdir might not exist yet
-mkpath([$outdir], 0, 0755);
-
-makeVfs ($linux_fs_h, $vfs_hin, "$vfs_h.new");
-
-system ("cmp", "-s", $vfs_h, "$vfs_h.new");
-$exit_value = $? >> 8;
-$signal_num = $? & 127;
-$core_dump = $? & 128;
-
-if ($exit_value == 0 || $signal_num > 0) {
- unlink "$vfs_h.new";
- print "nothing to do... $vfs_h not changed.\n"
-} else {
- unlink "$vfs_h";
- rename ("$vfs_h.new", $vfs_h);
- print "wrote $vfs_h\n";
-}
-
-exit 0;