Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inode(4UFS) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fs(4UFS)






       inode(4UFS)                    (UFS)                     inode(4UFS)


       NAME
             inode (ufs) - format of a ufs inode

       SYNOPSIS
             #include <sys/param.h>
             #include <sys/types.h>
             #include <sys/vnode.h>
             #include <sys/fs/ufs_inode.h>

       DESCRIPTION
             The inode is the focus of all local file activity in UNIX.
             There is a unique inode allocated for each active file, each
             current directory, each mounted-on file, each mapping, and the
             root.  An inode is `named' by its dev/inumber pair.  Data in
             icommon is read in from permanent inode on the actual volume.

             struct inode {
             /* Filesystem independent view of this inode. */
               struct inode        *i_forw;/* hash chain, forward */
               struct inode        *i_back;/* hash chain, back */
               struct inode        *i_freef;/* free chain, forward */
               struct inode        *i_freeb;/* free chain, back */
               struct vnode        *i_vp;/* ptr to vnode */
               struct idata        *i_data;/* pointer to the pool data */
             /* Filesystem dependent view of this inode. */
               union  i_secure     *i_secp;/* extra memory for security data */
               struct    vnode  i_vnode;/* vnode for this inode */
               struct    vnode  *i_devvp;/* vnode for block I/O */
               ushort_t  i_flag;   /* inode flags (see below) */
               dev_t     i_dev;    /* device where inode resides */
               ino_t     i_number; /* i number, 1-to-1 with device address */
               off_t     i_diroff; /* offset in dir, where we found last
                                      entry */
               struct    fs *i_fs; /* file sys associated with this inode */
               struct    dquot *i_dquot;/* quota structure controlling this file */
               short     i_owner;  /* proc index of process locking inode */
               short     i_count;  /* number of inode locks for i_owner */
               daddr_t   i_nextr;  /* next byte read offset (read-ahead) */
               ulong     i_vcode;  /* version code attribute */
               long      i_mapcnt; /* mappings to file pages */
               int       *i_map;   /* block list for the corresponding file */
               int       i_opencnt;/* count of opens for this inode */
               lid_t     i_dirofflid;/* last proc changing i_diroff w/o write
                                      access */
               clock_t   i_stamp;  /* time when inode was modified but not
                                      copied to the buffer cache */


                           Copyright 1994 Novell, Inc.               Page 1













      inode(4UFS)                    (UFS)                     inode(4UFS)


              struct    icommon i_ic;
            };
            struct  icommon {
              o_mode_t  ic_smode; /*  0: mode and type of file */
              short     ic_nlink; /*  2: number of links to file */
              o_uid_t   ic_suid;  /*  4: owner's user id */
              o_gid_t   ic_sgid;  /*  6: owner's group id */
              quad      ic_size;  /*  8: number of bytes in file */
            #ifdef _KERNEL
              struct timeval ic_atime;/* 16: time last accessed */
              struct timeval ic_mtime;/* 24: time last modified */
              nstruct timeval ic_ctime;/* 32: last time inode changed */
            #else
              time_t    ic_atime; /* 16: time last accessed */
              long      ic_atspare;
              time_t    ic_mtime; /* 24: time last modified */
              long      ic_mtspare;
              time_t    ic_ctime; /* 32: last time inode changed */
              long      ic_ctspare;
            #endif
              daddr_t   ic_db[NDADDR];/* 40: disk block addresses */
              daddr_t   ic_ib[NIADDR];/* 88: indirect blocks */
              long      ic_flags; /* 100: status, currently unused */
              long      ic_blocks;/* 104: blocks actually held */
              long      ic_gen;   /* 108: generation number */
              mode_t    ic_mode;  /* 112: EFT version of mode*/
              uid_t     ic_uid;   /* 116: EFT version of uid */
              gid_t     ic_gid;   /* 120: EFT version of gid */
              ulong     ic_eftflag;/* 124: indicate EFT version*/
            };

      REFERENCES
            ufs-specific fs(4UFS)















                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026