Annotation of researchv9/sys/boot/stand/ardef.h, revision 1.1

1.1     ! root        1: /*     @(#)ardef.h 1.1 86/02/03 SMI    */
        !             2: 
        !             3: /*
        !             4:  * Copyright (c) 1984 by Sun Microsystems, Inc.
        !             5:  */
        !             6: 
        !             7: /*
        !             8:  * Standalone Driver for Archive Intelligent Streaming Tape
        !             9:  * ardef.h 
        !            10:  */
        !            11: 
        !            12: /*
        !            13:  * Interesting tape commands
        !            14:  */
        !            15: #define AR_CLOSE       0       /* Close tape: WTM-if-writing, rewind */
        !            16: #define AR_REWIND      1       /* Rewind (overlapped) */
        !            17: #define AR_STATUS      2       /* Drive Status */
        !            18: #define AR_READ                3       /* Read to MB memory */
        !            19: #define AR_WRITE       4       /* Write to MB memory */
        !            20: #define AR_WEOF                5       /* Write file mark (EOF) */ 
        !            21: #define AR_ERASE       6       /* Erase entire tape */
        !            22: #define AR_SELECT      7       /* Select drive of interest */
        !            23: #define AR_DESELECT    8       /* Select no interesting drive */
        !            24: #define AR_TENSE       9       /* Retension tape */
        !            25: #define AR_SKIPFILE    10      /* Skip one file forward */
        !            26: #define        AR_CMDOK        11      /* See if ok to do cmd */
        !            27: 
        !            28: /* 
        !            29:  * States into which the tape drive can get.
        !            30:  */
        !            31: enum ARstates {
        !            32:        FINstate = 0x00, IDLEstate, CMDstate,   /* Finished, Idle, Command  */
        !            33:        WFMinit,                                /* Write File Mark */
        !            34:        RFMinit,                                /* Read to File Mark */
        !            35:        REWinit,                                /* Rewind tape */
        !            36:        TENSEinit,                              /* Retension tape */
        !            37:        ERASEinit,                              /* Erase tape */
        !            38:        SELinit,                                /* Select a drive */
        !            39:        DESELinit,                              /* Deselect all drives */
        !            40:        RDSTinit,                               /* Read status */
        !            41:        CLOSEinit,                              /* Deassert aronline */
        !            42:        READinit, READcmd, READburst, READfin, READidle,        /* Read */
        !            43:        WRinit, WRcmd,   WRburst,   WRfin,   WRidle,            /* Write */
        !            44:        CMDOKinit,                              /* OK to issue commands? */
        !            45: };
        !            46: 
        !            47: /*
        !            48:  * Software state per tape controller.
        !            49:  */
        !            50: struct ar_softc {
        !            51:        enum ARstates sc_state; /* Current state of hard/software */
        !            52:        enum ARstates sc_oldstate;  /* Previous state of sc_state */
        !            53:        struct arstatus sc_status; /* Status at last "Read status" cmd */
        !            54:        int     sc_size;        /* Size of buffer to read/write */
        !            55:        char    *sc_bufptr;     /* Pointer to buffer to read/write */
        !            56:        char    sc_initted;     /* Is controller initialized yet? */
        !            57:        char    sc_opened;      /* Is this drive open? */
        !            58:        char    sc_lastiow;     /* last op was write */
        !            59:        int     sc_count;       /* # times to repeat high-level op */
        !            60:        u_char  sc_drive;       /* Drive # to select/deselect */
        !            61:        u_char  sc_histate;     /* Higher level state than sc_state */
        !            62:        struct ardevice *sc_addr;/* Address of I/O registers */
        !            63:        u_char  sc_qidle;       /* =0 if buf in progress, =1 if not. */
        !            64:        char    sc_eoflag;      /* raw eof flag */
        !            65:        u_char  sc_cmdok;       /* 0 => can only issue read/RFM/write/WFM */
        !            66:        char    sc_selecteddev; /* currently selected drive */
        !            67: /* When adding new fields to ar_softc, also initialize them in arinit(). */
        !            68: };

unix.superglobalmegacorp.com

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