Annotation of coherent/d/bin/dos/dos0.h, revision 1.1

1.1     ! root        1: /* dos0.h */
        !             2: 
        !             3: #include "dos1.h"
        !             4: #include <access.h>
        !             5: #include <stdio.h>
        !             6: #include <ctype.h>
        !             7: #include <string.h>
        !             8: #include <sys/devices.h>
        !             9: #include <sys/dir.h>
        !            10: #include <sys/fdisk.h>
        !            11: #include <fcntl.h>
        !            12: #include <signal.h>
        !            13: #undef DIR
        !            14: #include <sys/stat.h>
        !            15: #include <time.h>
        !            16: #include <sys/types.h>
        !            17: 
        !            18: /* Definitions. */
        !            19: #define        VERSION "4.1"                   /* Version id                   */
        !            20: #define        CTRLZ   '\032'                  /* ASCII <Control-Z> character  */
        !            21: #define        NAMEMAX 128                     /* Maximum filename length      */
        !            22: 
        !            23: #define        OUSAGE  \
        !            24: "Usage:        dos [-][dFlrtx][acknpsv[1-9]] [ device ] [ file ... ]\n"\
        !            25: "Functions:\n"\
        !            26: "      d       Delete specified files\n"\
        !            27: "      F       Format disk                     (optional argument: boot block)\n"\
        !            28: "      l       Label disk                      (one argument: label)\n"\
        !            29: "      r       Replace files                   (default: all files in '.')\n"\
        !            30: "      t       Table of contents               (default: all files)\n"\
        !            31: "      x       Extract specified files         (default: all files)\n"\
        !            32: "Options:\n"\
        !            33: "      a       ASCII data extract/replace      (default: binary data)\n"\
        !            34: "      c       Check only; do not write changes to MS-DOS filesystem\n"\
        !            35: "      k       Keep mtime on extract/replace   (default: current time)\n"\
        !            36: "      n       Newest files first in list      (default: alphabetized)\n"\
        !            37: "      p       Piped extract/replace\n"\
        !            38: "      s       Suppress subdirectory x/r       (default: recursive descent)\n"\
        !            39: "      v       Verbose\n"\
        !            40: "      [1-9]   Specify desired drive on extended MS-DOS partition\n"\
        !            41: "The default device is /dev/dos.\n\n"\
        !            42: "See also doscat, doscp, doscpdir, dosdel, dosdir, dosformat, doslabel,\n"\
        !            43: "         dosls, dosmkdir, dosrm, dosrmdir.\n\n"
        !            44: 
        !            45: #define        USAGE   \
        !            46: "Usage: Copy:        doscp [-abkmrv] src dest\n"\
        !            47: "       Copy Tree:   doscpdir [-akmrv] src dest\n"\
        !            48: "       Cat Files:   doscat src\n"\
        !            49: "       Directory:   dosdir [-vn] src   or   dosls [-vn] src\n"\
        !            50: "       Mkdir:       dosmkdir dest\n"\
        !            51: "       Rmdir:       dosrmdir dest\n"\
        !            52: "       Delete:      dosdel src         or   dosrm src\n"\
        !            53: "       Format:      dosformat dest [boot block]\n"\
        !            54: "       Label:       doslabel dest \"label\"\n\n"\
        !            55: "Options:\n"\
        !            56: "      a or m  ASCII copies - always convert CRLF to LF\n"\
        !            57: "      b or r  Binary copies - never convert CRLF to LF\n"\
        !            58: "      k       Keep mtime on copies            (default: current time)\n"\
        !            59: "      n       Newest files first in list      (default: alphabetized)\n"\
        !            60: "      f       force removal of readonly files\n"\
        !            61: "      v       Verbose\n\n"\
        !            62: "       See also /etc/default/msdos\n\n"
        !            63: /*
        !            64: "       The src and dest arguments have the format \"[device:]name\" where\n"\
        !            65: "       device is a COHERENT pathname for the special device file, and name\n"\
        !            66: "       is a pathname to a file or directory. Note that all paths must be\n"\
        !            67: "       specified with forward slashes. Arguments without a device are assumed\n"\
        !            68: "       to be COHERENT files.\n"\
        !            69: */
        !            70: 
        !            71: 
        !            72: /*
        !            73:  * Directories.
        !            74:  * A DIR is allocated the root and for each subdirectory on a disk.
        !            75:  * Rather than having pointers to multiple children,
        !            76:  * a DIR has a linked list of siblings rooted at a child.
        !            77:  * The MS-DOS directory is not read into d_dir until required.
        !            78:  */
        !            79: #ifdef _I386
        !            80: #pragma align 1
        !            81: #endif
        !            82: typedef        struct  dir {
        !            83:        struct dir *    d_parent;       /* Parent, NULL if root         */
        !            84:        struct dir *    d_child;        /* Child                        */
        !            85:        struct dir *    d_sibling;      /* Sibling                      */
        !            86:        unsigned short  d_cluster;      /* First cluster                */
        !            87:        unsigned short  d_files;        /* Max number of files          */
        !            88:        unsigned short  d_dirblocks;    /* Number of directory blocks   */
        !            89:        MDIR *          d_dir;          /* MS-DOS directory             */
        !            90:        MDIR *          d_edp;          /* Pointer past end of d_dir    */
        !            91:        unsigned char   d_dname[12];    /* NUL-terminated name          */
        !            92:        char            d_dirflag;      /* Directory must be written    */
        !            93: } DIR;
        !            94: #ifdef _I386
        !            95: #pragma align
        !            96: #endif
        !            97: 
        !            98: /* Externals. */
        !            99: extern char *          calloc();
        !           100: extern struct tm *     localtime();
        !           101: extern void            qsort();
        !           102: extern char *          realloc();
        !           103: extern char *          strcat();
        !           104: extern char *          strcpy();
        !           105: extern char *          strncpy();
        !           106: extern time_t          time();
        !           107: extern char *          base, basehold[];
        !           108: extern char *          base1;
        !           109: extern char *          dest;
        !           110: /* Globals in dos0.c. */
        !           111: /* dos1.c globals are declared in dos1.h, included above. */
        !           112: extern short           oldstyle;
        !           113: extern short           aflag;
        !           114: extern short           bflag;
        !           115: extern short           fflag;
        !           116: extern unsigned char   cohfile[NAMEMAX];
        !           117: extern unsigned char   cmd[6 + NAMEMAX];
        !           118: extern char *          device;
        !           119: extern short           estat;
        !           120: extern short           (*fun)();
        !           121: extern short           kflag;
        !           122: extern short           nflag;
        !           123: extern long            partseek;
        !           124: extern short           pflag;
        !           125: extern DIR *           root;
        !           126: extern short           sflag;
        !           127: extern MDIR *          volume;
        !           128: extern short           xpart;
        !           129: extern char            ext[];
        !           130: extern short           sext;
        !           131: extern short           numargs;
        !           132: extern char            adev[];
        !           133: extern  short          isdir_keep;
        !           134: 
        !           135: /* Functions. */
        !           136: /* dos1.c functions are declared in dos1.h, included above. */
        !           137: /* dos2.c */
        !           138: extern char *          cohname();
        !           139: extern void            cohtime();
        !           140: extern DIR *           creatdir();
        !           141: extern MDIR *          creatfile();
        !           142: extern void            delete();
        !           143: extern void            deletedir();
        !           144: extern void            deletefile();
        !           145: extern unsigned short  dirclusters();
        !           146: extern char *          dosname();
        !           147: extern void            dostime();
        !           148: extern void            extract();
        !           149: extern void            createdir();
        !           150: extern void            extractdir();
        !           151: extern void            extractfile();
        !           152: /* dos3.c */
        !           153: extern MDIR *          find();
        !           154: extern MDIR *          findnext();
        !           155: extern  char *                 cohn();
        !           156: extern short           finput();
        !           157: extern void            format();
        !           158: extern short           foutput();
        !           159: extern unsigned short  freecluster();
        !           160: extern short           key();
        !           161: extern void            label();
        !           162: extern void            mdirinit();
        !           163: /* dos4.c */
        !           164: extern short           namecmp();
        !           165: extern DIR *           newdir();
        !           166: extern void            nonfatal();
        !           167: extern void            readmdir();
        !           168: extern void            replace();
        !           169: extern void            replacedir();
        !           170: extern void            replacefile();
        !           171: extern void            table();
        !           172: extern void            tabledir();
        !           173: extern void            tablefile();
        !           174: extern char *          uppercase();
        !           175: extern void            writedir();
        !           176: extern  char *                 makef();
        !           177: 
        !           178: /* end of dos0.h */
        !           179: 

unix.superglobalmegacorp.com

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