home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / os2 / gtak212b.zip / SOURCE.ZIP / TAPE / tapedrvr.h < prev    next >
Text File  |  1992-12-03  |  4KB  |  107 lines

  1. /*****************************************************************************
  2.  * $Id: tapedrvr.h,v 1.3 1992/10/14 18:35:31 ak Exp $
  3.  *****************************************************************************
  4.  * $Log: tapedrvr.h,v $
  5.  * Revision 1.3  1992/10/14  18:35:31  ak
  6.  * IBM SCSI driver.
  7.  *
  8.  * Revision 1.2  1992/09/02  19:05:38  ak
  9.  * Version 2.0
  10.  * - EMX version
  11.  * - AIX version
  12.  * - SCSI-2 commands
  13.  * - ADD Driver
  14.  * - blocksize support
  15.  *
  16.  * Revision 1.1.1.1  1992/01/06  20:27:46  ak
  17.  * Interface now based on ST01 and ASPI.
  18.  * AHA_DRVR no longer supported.
  19.  * Files reorganized.
  20.  *
  21.  * Revision 1.1  1992/01/06  20:27:45  ak
  22.  * Initial revision
  23.  *
  24.  *****************************************************************************/
  25.  
  26. /*
  27.  * Tape driver interface.
  28.  */
  29.  
  30. #define IOCtlCategory    0x80    /* GIOCtl category of tape driver */
  31.  
  32. /*
  33.  * GIOCtl2 function codes:
  34.  */
  35.  
  36.      /* no Level (ST01): */
  37.  
  38. #define IOCtlSlow    0    /* Fast data phase command */
  39.                 /* Param = CDB, Data = data */
  40. #define IOCtlFast    1    /* Slow data phase command */
  41.                 /* Param = CDB, Data = data */
  42. #define IOCtlBusReset    2    /* SCSI bus or device reset */
  43. #define IOCtlDevReset    3    /* SCSI device reset */
  44. #define IOCtlTrace    4    /* Set trace level */
  45.                 /* Param -> trace level byte */
  46.                 /* Data  <- previous trace level */
  47.  
  48.      /* Level 2 (ASPI): */
  49.  
  50. #define IOCtlLevel    5    /* Return driver level */
  51.                 /* Data[0] -> driver level byte */
  52.                 /* Data[1] -> sense mode byte */
  53. #define IOCtlRead    6    /* SCSI command, "read" type data transfer */
  54.     /* slow: 6, fast: 7 */    /* Param = CDB, Data = data */
  55. #define IOCtlWrite    8    /* SCSI command, "write" type data transfer */
  56.     /* slow: 8, fast: 9 */    /* Param = CDB, Data = data */
  57. #define IOCtlSense    10    /* Return sense data of last command or issue */
  58.                 /* the given CDB if no sense data available */
  59.                 /* Param = sense CDB, Data = sense data */
  60.  
  61.      /* Level 3 (ADD): -- codes 0..1 no longer supported */
  62.  
  63. #define IOCtlBlocksize    12    /* Set r/w blocksize */
  64.                 /* Param -> blocksize (dword) */
  65.                 /* Data  <- previous blocksize */
  66.  
  67. /*
  68.  * IOCtl return codes, levels 0..2, 0xFF00..0xFFFF:
  69.  */
  70. #define ErrSource    0xE0
  71. #define ErrMask        0x1F
  72. #define ErrTargetStatus    0x00    /* SCSI target status byte */
  73. #define ErrST01Driver    0x20    /* ST01 driver error code */
  74. #define ErrASPIDriver1    0x40    /* ASPI driver error codes 00-1F */
  75. #define ErrASPIDriver2    0x60    /* ASPI driver error codes 80-9F */
  76. #define ErrHostAdapter    0x80    /* AHA154x host adapter status */
  77. #define ErrTapeDriver    0xA0    /* Tape driver error */
  78. /*
  79.  * IOCtl return codes, level 3
  80.  *    00..9F:    ADD ErrorCode 000..90F.
  81.  *    A0..FF:    ErrTapeDriver
  82.  *
  83.  * IOCtl return codes, level 4
  84.  *    00..1F: standard driver status codes
  85.  *    40..4F:    TSB device status codes >> 1
  86.  *    50..7F:    TSB device error codes
  87.  *    80..9F:    OS2SCSI.DMD special status codes
  88.  *    A0..FF:    ErrTapeDriver
  89.  */
  90.  
  91. /*
  92.  * Driver level
  93.  */
  94. #define ST01driver    0    /* physical ST01 device driver */
  95. #define ASPIdriver    2    /* ASPITAPE.SYS based on ASPI */
  96. #define ADDdriver    3    /* SCSITAPE.DMD based on *.ADD */
  97. #define SCSIdriver    4    /* SCSITAPE.SYS based on OS2SCSI.DMD */
  98.  
  99. /*
  100.  * Tape driver:
  101.  */
  102.      /* ASPITAPE: */
  103. #define TapeInvalidFcn    (ErrTapeDriver+0)    /* Invalid cat/fcn code */
  104. #define TapeInvalidParm    (ErrTapeDriver+1)    /* Invalid parm pointer/length */
  105. #define TapeInvalidData    (ErrTapeDriver+2)    /* Invalid data pointer/length */
  106. #define TapeNoSenseData    (ErrTapeDriver+3)    /* No sense data available */
  107.