Annotation of Net2/scsi/scsiconf.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Written by Julian Elischer ([email protected])
                      3:  * for TRW Financial Systems for use under the MACH(2.5) operating system.
                      4:  *
                      5:  * TRW Financial Systems, in accordance with their agreement with Carnegie
                      6:  * Mellon University, makes this software available to CMU to distribute
                      7:  * or use in any manner that they see fit as long as this message is kept with
                      8:  * the software. For this reason TFS also grants any other persons or
                      9:  * organisations permission to use or modify this software.
                     10:  *
                     11:  * TFS supplies this software to be publicly redistributed
                     12:  * on the understanding that TFS is not responsible for the correct
                     13:  * functioning of this software in any circumstances.
                     14:  *
                     15:  * PATCHES MAGIC                LEVEL   PATCH THAT GOT US HERE
                     16:  * --------------------         -----   ----------------------
                     17:  * CURRENT PATCH LEVEL:         1       00098
                     18:  * --------------------         -----   ----------------------
                     19:  *
                     20:  * 16 Feb 93   Julian Elischer         ADDED for SCSI system
                     21:  *
                     22:  */
                     23: 
                     24: /*
                     25:  * Ported to run under 386BSD by Julian Elischer ([email protected]) Sept 1992
                     26:  */
                     27: 
                     28: /***********************************************\
                     29: * these calls are called by the high-end       *
                     30: * drivers to get services from whatever low-end        *
                     31: * drivers they are attached to                 *
                     32: \***********************************************/
                     33: struct scsi_switch
                     34: {
                     35:        int             (*scsi_cmd)();
                     36:        void            (*scsi_minphys)();
                     37:        int             (*open_target_lu)();
                     38:        int             (*close_target_lu)();
                     39:        long    int     (*adapter_info)(); /* see definitions below */
                     40:        u_long  spare[3];
                     41: };
                     42: #define        AD_INF_MAX_CMDS         0x000000FF /* maximum number of entries
                     43:                                                queuable to a device by 
                     44:                                                the adapter */
                     45: /* 24 bits of other adapter charcteristics go here */
                     46: 
                     47: /***********************************************\
                     48: * The scsi debug control bits                  *
                     49: \***********************************************/
                     50: extern int     scsi_debug;
                     51: #define PRINTROUTINES  0x01
                     52: #define        TRACEOPENS      0x02
                     53: #define        TRACEINTERRUPTS 0x04
                     54: #define        SHOWREQUESTS    0x08
                     55: #define        SHOWSCATGATH    0x10
                     56: #define        SHOWINQUIRY     0x20
                     57: #define        SHOWCOMMANDS    0x40
                     58: 
                     59: 
                     60: /********************************/
                     61: /* return values for scsi_cmd() */
                     62: /********************************/
                     63: #define SUCCESSFULLY_QUEUED    0
                     64: #define TRY_AGAIN_LATER                1
                     65: #define        COMPLETE                2
                     66: #define        HAD_ERROR               3
                     67: 
                     68: struct scsi_xfer
                     69: {
                     70:        struct  scsi_xfer *next;        /* when free */
                     71:        int     flags;
                     72:        u_char  adapter;
                     73:        u_char  targ;
                     74:        u_char  lu;
                     75:        u_char  retries;        /* the number of times to retry */
                     76:        long    int     timeout;        /* in miliseconds */
                     77:        struct  scsi_generic *cmd;
                     78:        int     cmdlen;
                     79:        u_char  *data;          /* either the dma address OR a uio address */
                     80:        int     datalen;        /* data len (blank if uio)    */
                     81:        int     resid;
                     82:        int     (*when_done)();
                     83:        int     done_arg;
                     84:        int     done_arg2;
                     85:        int     error;
                     86:        struct  buf *bp;
                     87:        struct  scsi_sense_data sense;
                     88: };
                     89: /********************************/
                     90: /* Flag values                 */
                     91: /********************************/
                     92: #define        SCSI_NOSLEEP    0x01    /* Not a user... don't sleep            */
                     93: #define        SCSI_NOMASK     0x02    /* dont allow interrupts.. booting      */
                     94: #define        SCSI_NOSTART    0x04    /* left over from ancient history       */
                     95: #define        ITSDONE         0x10    /* the transfer is as done as it gets   */
                     96: #define        INUSE           0x20    /* The scsi_xfer block is in use        */
                     97: #define        SCSI_SILENT     0x40    /* Don't report errors to console       */
                     98: #define SCSI_ERR_OK    0x80    /* An error on this operation is OK.    */
                     99: #define        SCSI_RESET      0x100   /* Reset the device in question         */
                    100: #define        SCSI_DATA_UIO   0x200   /* The data address refers to a UIO     */
                    101: #define        SCSI_DATA_IN    0x400   /* expect data to come INTO memory      */
                    102: #define        SCSI_DATA_OUT   0x800   /* expect data to flow OUT of memory    */
                    103: #define        SCSI_TARGET     0x1000  /* This defines a TARGET mode op.       */
                    104: /********************************/
                    105: /* Error values                        */
                    106: /********************************/
                    107: #define XS_NOERROR     0x0     /* there is no error, (sense is invalid)  */
                    108: #define XS_SENSE       0x1     /* Check the returned sense for the error */
                    109: #define        XS_DRIVER_STUFFUP 0x2   /* Driver failed to perform operation     */
                    110: #define XS_TIMEOUT     0x03    /* The device timed out.. turned off?     */
                    111: #define XS_SWTIMEOUT   0x04    /* The Timeout reported was caught by SW  */
                    112: #define XS_BUSY                0x08    /* The device busy, try again later?      */
                    113: 

unix.superglobalmegacorp.com

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