Annotation of Net2/pcfs/direntry.h, revision 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:  *     direntry.h,v 1.2 1993/05/20 03:34:06 cgd Exp
        !            19:  */
        !            20: 
        !            21: /*
        !            22:  *  Structure of a dos directory entry.
        !            23:  */
        !            24: struct direntry {
        !            25:        u_char deName[8];               /* filename, blank filled       */
        !            26: #define        SLOT_EMPTY      0x00            /* slot has never been used     */
        !            27: #define        SLOT_E5         0x05            /* the real value is 0xe5       */
        !            28: #define        SLOT_DELETED    0xe5            /* file in this slot deleted    */
        !            29:        u_char deExtension[3];          /* extension, blank filled      */
        !            30:        u_char deAttributes;            /* file attributes              */
        !            31: #define        ATTR_NORMAL     0x00            /* normal file                  */
        !            32: #define        ATTR_READONLY   0x01            /* file is readonly             */
        !            33: #define        ATTR_HIDDEN     0x02            /* file is hidden               */
        !            34: #define        ATTR_SYSTEM     0x04            /* file is a system file        */
        !            35: #define        ATTR_VOLUME     0x08            /* entry is a volume label      */
        !            36: #define        ATTR_DIRECTORY  0x10            /* entry is a directory name    */
        !            37: #define        ATTR_ARCHIVE    0x20            /* file is new or modified      */
        !            38:        char deReserved[10];            /* reserved                     */
        !            39:        u_short deTime;                 /* create/last update time      */
        !            40:        u_short deDate;                 /* create/last update date      */
        !            41:        u_short deStartCluster;         /* starting cluster of file     */
        !            42:        u_long deFileSize;              /* size of file in bytes        */
        !            43: };
        !            44: 
        !            45: /*
        !            46:  *  This is the format of the contents of the deTime
        !            47:  *  field in the direntry structure.
        !            48:  */
        !            49: struct DOStime {
        !            50:        u_short
        !            51:                        dt_2seconds:5,  /* seconds divided by 2         */
        !            52:                        dt_minutes:6,   /* minutes                      */
        !            53:                        dt_hours:5;     /* hours                        */
        !            54: };
        !            55: 
        !            56: /*
        !            57:  *  This is the format of the contents of the deDate
        !            58:  *  field in the direntry structure.
        !            59:  */
        !            60: struct DOSdate {
        !            61:        u_short
        !            62:                        dd_day:5,       /* day of month                 */
        !            63:                        dd_month:4,     /* month                        */
        !            64:                        dd_year:7;      /* years since 1980             */
        !            65: };
        !            66: 
        !            67: union dostime {
        !            68:        struct DOStime dts;
        !            69:        u_short dti;
        !            70: };
        !            71: 
        !            72: union dosdate {
        !            73:        struct DOSdate dds;
        !            74:        u_short ddi;
        !            75: };
        !            76: 
        !            77: /*
        !            78:  *  The following defines are used to rename fields in
        !            79:  *  the ufs_specific structure in the nameidata structure
        !            80:  *  in namei.h
        !            81:  */
        !            82: #define        ni_pcfs         ni_ufs
        !            83: #define        pcfs_count      ufs_count
        !            84: #define        pcfs_offset     ufs_offset
        !            85: #define        pcfs_cluster    ufs_ino
        !            86: 
        !            87: #if defined(KERNEL)
        !            88: void unix2dostime __P((struct timeval *tvp,
        !            89:                        union dosdate *ddp,
        !            90:                        union dostime *dtp));
        !            91: void dos2unixtime __P((union dosdate *ddp,
        !            92:                        union dostime *dtp,
        !            93:                        struct timeval *tvp));
        !            94: int  dos2unixfn __P((u_char dn[11], u_char *un));
        !            95: void unix2dosfn __P((u_char *un, u_char dn[11], int unlen));
        !            96: #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.