linux-generate-struct-vnode-dyanmically-from-kernel-headers-instead-of-by-perverting...
[openafs.git] / src / afs / LINUX / osi_vfs.h
diff --git a/src/afs/LINUX/osi_vfs.h b/src/afs/LINUX/osi_vfs.h
deleted file mode 100644 (file)
index 962e3b1..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * 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.
- *
- * The Linux "inode" has been abstracted to the fs independent part to avoid
- * wasting 100+bytes per vnode.
- */
-
-#ifndef OSI_VFS_H_
-#define OSI_VFS_H_
-
-/* The vnode should match the current implementation of the fs independent
- * part of the Linux inode.
- */
-/* The first cut is to continue to use a separate vnode pool. */
-typedef struct vnode {
-       struct list_head        i_hash;
-       struct list_head        i_list;
-       struct list_head        i_dentry;
-#if defined(AFS_LINUX24_ENV)
-        struct list_head        i_dirty_buffers;
-#endif
-#if defined(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS)
-        struct list_head        i_dirty_data_buffers;
-#endif
-       unsigned long           i_ino;
-       unsigned int            i_count;
-       kdev_t                  i_dev;
-       umode_t                 i_mode;
-       nlink_t                 i_nlink;
-       uid_t                   i_uid;
-       gid_t                   i_gid;
-       kdev_t                  i_rdev;
-#if defined(AFS_LINUX24_ENV) || defined(pgoff2loff) 
-        loff_t                  i_size;
-#else
-       off_t                   i_size;
-#endif
-       time_t                  i_atime;
-       time_t                  i_mtime;
-       time_t                  i_ctime;
-       unsigned long           i_blksize;
-       unsigned long           i_blocks;
-       unsigned long           i_version;
-#if !defined(AFS_LINUX24_ENV)
-       unsigned long           i_nrpages;
-#endif
-#ifdef STRUCT_INODE_HAS_I_BYTES
-        unsigned short          i_bytes;
-#endif
-       struct semaphore        i_sem;
-#ifdef STRUCT_INODE_HAS_I_TRUNCATE_SEM
-        struct rw_semaphore     i_truncate_sem;
-#endif
-#if defined(AFS_LINUX24_ENV)
-        struct semaphore        i_zombie;
-#else
-       struct semaphore        i_atomic_write;
-#endif
-       struct inode_operations *i_op;
-#if defined(AFS_LINUX24_ENV)
-        struct file_operations  *i_fop;
-#endif
-       struct super_block      *i_sb;
-#if defined(AFS_LINUX24_ENV)
-        wait_queue_head_t       i_wait;
-#else
-       struct wait_queue       *i_wait;
-#endif
-       struct file_lock        *i_flock;
-#if defined(AFS_LINUX24_ENV)
-        struct address_space    *i_mapping;
-        struct address_space    i_data;
-#else
-       struct vm_area_struct   *i_mmap;
-#if defined(STRUCT_INODE_HAS_I_MMAP_SHARED)
-        struct vm_area_struct   *i_mmap_shared;
-#endif
-       struct page             *i_pages;
-#endif
-#if defined(STRUCT_INODE_HAS_I_MAPPING_OVERLOAD)
-        int                     i_mapping_overload;
-#endif
-       struct dquot            *i_dquot[MAXQUOTAS];
-#if defined(AFS_LINUX24_ENV)
-#if defined(STRUCT_INODE_HAS_I_DEVICES)
-        struct list_head        i_devices;
-#endif
-        struct pipe_inode_info  *i_pipe;
-        struct block_device     *i_bdev;
-#if defined(STRUCT_INODE_HAS_I_CDEV)
-        struct char_device      *i_cdev;
-#endif
-        unsigned long           i_dnotify_mask;
-        struct dnotify_struct   *i_dnotify;
-#endif
-
-       unsigned long           i_state;
-
-       unsigned int            i_flags;
-#if !defined(AFS_LINUX24_ENV)
-       unsigned char           i_pipe;
-#endif
-       unsigned char           i_sock;
-
-#if defined(AFS_LINUX24_ENV)
-        atomic_t                i_writecount;
-#else
-       int                     i_writecount;
-#endif
-       unsigned int            i_attr_flags;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,10)
-       __u32                   i_generation;
-#endif
-#ifdef notdef
-       union {
-               struct pipe_inode_info          pipe_i;
-               struct minix_inode_info         minix_i;
-               struct ext2_inode_info          ext2_i;
-               struct hpfs_inode_info          hpfs_i;
-               struct ntfs_inode_info          ntfs_i;
-               struct msdos_inode_info         msdos_i;
-               struct umsdos_inode_info        umsdos_i;
-               struct iso_inode_info           isofs_i;
-               struct nfs_inode_info           nfs_i;
-               struct sysv_inode_info          sysv_i;
-               struct affs_inode_info          affs_i;
-               struct ufs_inode_info           ufs_i;
-               struct romfs_inode_info         romfs_i;
-               struct coda_inode_info          coda_i;
-               struct smb_inode_info           smbfs_i;
-               struct hfs_inode_info           hfs_i;
-               struct adfs_inode_info          adfs_i;
-               struct qnx4_inode_info          qnx4_i;    
-               struct socket                   socket_i;
-               void                            *generic_ip;
-       } u;
-#endif
-} vnode_t;
-
-/* Map vnode fields to inode fields. */
-#define i_number       i_ino
-#define v_count                i_count
-#define v_op           i_op
-#if defined(AFS_LINUX24_ENV)
-#define v_fop           i_fop
-#endif
-#define v_type         i_mode
-#define v_vfsp         i_sb
-#define vfs_vnodecovered s_covered
-
-/* 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
-
-/* 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)  ((struct inode*)V)
-#define VN_HOLD(V) ((vnode_t*)V)->i_count++;
-#define VN_RELE(V) osi_iput((struct inode *)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. */
-    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))
-
-
-/* va_masks - these should match their respective ATTR_xxx #defines in fs.h.
- * afs_notify_change has to use the attr bits in both the Linux and AFS
- * meanings. The glue layer code uses the ATTR_xxx style names.
- */
-#define AT_SIZE                ATTR_SIZE
-#define AT_MODE                ATTR_MODE
-#define AT_UID         ATTR_UID
-#define AT_GID         ATTR_GID
-#define AT_MTIME       ATTR_MTIME
-
-
-#define vnodeops inode_operations
-
-#endif /* OSI_VFS_H_ */