[BACK]Return to ntfs_inode.h CVS log [TXT][DIR] Up to [local] / sys / ntfs

Annotation of sys/ntfs/ntfs_inode.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: ntfs_inode.h,v 1.3 2007/04/12 22:02:57 thib Exp $     */
        !             2: /*     $NetBSD: ntfs_inode.h,v 1.1 2002/12/23 17:38:33 jdolecek Exp $  */
        !             3:
        !             4: /*-
        !             5:  * Copyright (c) 1998, 1999 Semen Ustimenko
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms, with or without
        !             9:  * modification, are permitted provided that the following conditions
        !            10:  * are met:
        !            11:  * 1. Redistributions of source code must retain the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer.
        !            13:  * 2. Redistributions in binary form must reproduce the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer in the
        !            15:  *    documentation and/or other materials provided with the distribution.
        !            16:  *
        !            17:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
        !            18:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            19:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            20:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
        !            21:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            22:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            23:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            24:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            25:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            26:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            27:  * SUCH DAMAGE.
        !            28:  *
        !            29:  *     Id: ntfs_inode.h,v 1.4 1999/05/12 09:43:00 semenu Exp
        !            30:  */
        !            31:
        !            32: #if defined(__FreeBSD__) || defined(__NetBSD__)
        !            33: #include <miscfs/genfs/genfs_node.h>
        !            34: #endif
        !            35:
        !            36: /* These flags are kept in i_flag. */
        !            37: #if defined(__FreeBSD__)
        !            38: #define        IN_ACCESS       0x0001  /* Access time update request. */
        !            39: #define        IN_CHANGE       0x0002  /* Inode change time update request. */
        !            40: #define        IN_UPDATE       0x0004  /* Modification time update request. */
        !            41: #define        IN_MODIFIED     0x0008  /* Inode has been modified. */
        !            42: #define        IN_RENAME       0x0010  /* Inode is being renamed. */
        !            43: #define        IN_SHLOCK       0x0020  /* File has shared lock. */
        !            44: #define        IN_EXLOCK       0x0040  /* File has exclusive lock. */
        !            45: #define        IN_LAZYMOD      0x0080  /* Modified, but don't write yet. */
        !            46: #else /* defined(__NetBSD__) */
        !            47: #define        IN_ACCESS       0x0001  /* Access time update request. */
        !            48: #define        IN_CHANGE       0x0002  /* Inode change time update request. */
        !            49: #define        IN_EXLOCK       0x0004  /* File has exclusive lock. */
        !            50: #define        IN_LOCKED       0x0008  /* Inode lock. */
        !            51: #define        IN_LWAIT        0x0010  /* Process waiting on file lock. */
        !            52: #define        IN_MODIFIED     0x0020  /* Inode has been modified. */
        !            53: #define        IN_RENAME       0x0040  /* Inode is being renamed. */
        !            54: #define        IN_SHLOCK       0x0080  /* File has shared lock. */
        !            55: #define        IN_UPDATE       0x0100  /* Modification time update request. */
        !            56: #define        IN_WANTED       0x0200  /* Inode is wanted by a process. */
        !            57: #define        IN_RECURSE      0x0400  /* Recursion expected */
        !            58: #endif
        !            59:
        !            60: #define        IN_HASHED       0x0800  /* Inode is on hash list */
        !            61: #define        IN_LOADED       0x8000  /* ntvattrs loaded */
        !            62: #define        IN_PRELOADED    0x4000  /* loaded from directory entry */
        !            63:
        !            64: struct ntnode {
        !            65:        struct vnode   *i_devvp;        /* vnode of blk dev we live on */
        !            66:        dev_t           i_dev;          /* Device associated with the inode. */
        !            67:
        !            68:        LIST_ENTRY(ntnode)      i_hash;
        !            69:        struct ntnode  *i_next;
        !            70:        struct ntnode **i_prev;
        !            71:        struct ntfsmount       *i_mp;
        !            72:        ino_t           i_number;
        !            73:        u_int32_t       i_flag;
        !            74:
        !            75:        /* locking */
        !            76:        struct lock     i_lock;
        !            77:        int             i_usecount;
        !            78:
        !            79:        LIST_HEAD(,fnode)       i_fnlist;
        !            80:        LIST_HEAD(,ntvattr)     i_valist;
        !            81:
        !            82:        long            i_nlink;        /* MFR */
        !            83:        ino_t           i_mainrec;      /* MFR */
        !            84:        u_int32_t       i_frflag;       /* MFR */
        !            85: };
        !            86:
        !            87: #define        FN_PRELOADED    0x0001
        !            88: #define        FN_VALID        0x0002
        !            89: #define        FN_AATTRNAME    0x0004  /* space allocated for f_attrname */
        !            90: struct fnode {
        !            91: #ifdef __FreeBSD__
        !            92:        struct lock     f_lock; /* fnode lock >Keep this first< */
        !            93: #endif
        !            94: #if defined(__FreeBSD__) || defined(__NetBSD__)
        !            95:        struct genfs_node f_gnode;
        !            96: #endif
        !            97:
        !            98:        LIST_ENTRY(fnode) f_fnlist;
        !            99:        struct vnode   *f_vp;           /* Associatied vnode */
        !           100:        struct ntnode  *f_ip;           /* Associated ntnode */
        !           101:        u_long          f_flag;
        !           102:
        !           103:        ntfs_times_t    f_times;        /* $NAME/dirinfo */
        !           104:        ino_t           f_pnumber;      /* $NAME/dirinfo */
        !           105:        u_int32_t       f_fflag;        /* $NAME/dirinfo */
        !           106:        u_int64_t       f_size;         /* defattr/dirinfo: */
        !           107:        u_int64_t       f_allocated;    /* defattr/dirinfo */
        !           108:
        !           109:        u_int32_t       f_attrtype;
        !           110:        char           *f_attrname;
        !           111:
        !           112:        /* for ntreaddir */
        !           113:        u_int32_t       f_lastdattr;
        !           114:        u_int32_t       f_lastdblnum;
        !           115:        u_int32_t       f_lastdoff;
        !           116:        u_int32_t       f_lastdnum;
        !           117:        caddr_t         f_dirblbuf;
        !           118:        u_int32_t       f_dirblsz;
        !           119: };
        !           120:
        !           121: /* This overlays the fid structure (see <sys/mount.h>) */
        !           122: struct ntfid {
        !           123:        u_int16_t ntfid_len;    /* Length of structure. */
        !           124:        u_int16_t ntfid_pad;    /* Force 32-bit alignment. */
        !           125:        ino_t     ntfid_ino;    /* File number (ino). */
        !           126:        u_int8_t  ntfid_attr;   /* Attribute identifier */
        !           127: #ifdef notyet
        !           128:        int32_t   ntfid_gen;    /* Generation number. */
        !           129: #endif
        !           130: };

CVSweb