Annotation of Net2/pcfs/fat.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  Written by Paul Popelka ([email protected])
                      3:  *
                      4:  *  You can do anything you want with this software,
                      5:  *    just don't say you wrote it,
                      6:  *    and don't remove this notice.
                      7:  *
                      8:  *  This software is provided "as is".
                      9:  *
                     10:  *  The author supplies this software to be publicly
                     11:  *  redistributed on the understanding that the author
                     12:  *  is not responsible for the correct functioning of
                     13:  *  this software in any circumstances and is not liable
                     14:  *  for any damages caused by this software.
                     15:  *
                     16:  *  October 1992
                     17:  *
                     18:  *     fat.h,v 1.2 1993/05/20 03:34:07 cgd Exp
                     19:  */
                     20: 
                     21: /*
                     22:  *  Some useful cluster numbers.
                     23:  */
                     24: #define        PCFSROOT        0       /* cluster 0 means the root dir         */
                     25: #define        CLUST_FREE      0       /* cluster 0 also means a free cluster  */
                     26: #define        PCFSFREE        CLUST_FREE
                     27: #define        CLUST_FIRST     2       /* first legal cluster number           */
                     28: #define        CLUST_RSRVS     0xfff0  /* start of reserved cluster range      */
                     29: #define        CLUST_RSRVE     0xfff6  /* end of reserved cluster range        */
                     30: #define        CLUST_BAD       0xfff7  /* a cluster with a defect              */
                     31: #define        CLUST_EOFS      0xfff8  /* start of eof cluster range           */
                     32: #define        CLUST_EOFE      0xffff  /* end of eof cluster range             */
                     33: 
                     34: #define        FAT12_MASK      0x0fff  /* mask for 12 bit cluster numbers      */
                     35: #define        FAT16_MASK      0xffff  /* mask for 16 bit cluster numbers      */
                     36: 
                     37: /*
                     38:  *  Return true if filesystem uses 12 bit fats.
                     39:  *  Microsoft Programmer's Reference says if the
                     40:  *  maximum cluster number in a filesystem is greater
                     41:  *  than 4086 then we've got a 16 bit fat filesystem.
                     42:  */
                     43: #define        FAT12(pmp)      (pmp->pm_maxcluster <= 4086)
                     44: #define        FAT16(pmp)      (pmp->pm_maxcluster >  4086)
                     45: 
                     46: #define        PCFSEOF(cn)     (((cn) & 0xfff8) == 0xfff8)
                     47: 
                     48: /*
                     49:  *  These are the values for the function argument to
                     50:  *  the function fatentry().
                     51:  */
                     52: #define        FAT_GET         0x0001          /* get a fat entry              */
                     53: #define        FAT_SET         0x0002          /* set a fat entry              */
                     54: #define        FAT_GET_AND_SET (FAT_GET | FAT_SET)
                     55: 
                     56: #if defined(KERNEL)
                     57: int pcbmap __P((struct denode *dep,
                     58:                u_long findcn,
                     59:                daddr_t *bnp,
                     60:                u_long *cnp));
                     61: int clusterfree __P((struct pcfsmount *pmp, u_long cn, u_long *oldcnp));
                     62: int clusteralloc __P((struct pcfsmount *pmp, u_long *retcluster,
                     63:        u_long fillwith));
                     64: int fatentry __P((int function, struct pcfsmount *pmp,
                     65:        u_long cluster, u_long *oldcontents, u_long newcontents));
                     66: int freeclusterchain __P((struct pcfsmount *pmp, u_long startchain));
                     67: #endif /* defined(KERNEL) */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.