home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cdrom.zip / DDK / BASE / SRC / DEV / DASD / CDROM / ATAPI / atapicon.h next >
Encoding:
C/C++ Source or Header  |  1998-04-10  |  6.3 KB  |  183 lines

  1. /* SCCSID = %W% %E% */
  2. /**************************************************************************
  3.  *
  4.  * SOURCE FILE NAME = ATAPICON.H
  5.  *
  6.  * DESCRIPTION : Locally defined equates.
  7.  *
  8.  *
  9.  * Copyright : COPYRIGHT IBM CORPORATION, 1991, 1992
  10.  *             LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
  11.  *             REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083
  12.  *             RESTRICTED MATERIALS OF IBM
  13.  *             IBM CONFIDENTIAL
  14.  *
  15.  * VERSION = 1.0
  16.  *
  17.  * DATE
  18.  *
  19.  * DESCRIPTION :
  20.  *
  21.  * Purpose:
  22.  *
  23.  *
  24.  *
  25.  *
  26.  *
  27.  * CHANGE ACTIVITY =
  28.  *   DATE      FLAG        DEFECT  CHANGE DESCRIPTION
  29.  *   --------  ----------  ------  --------------------------------------
  30.  *   08/22/94  V@93531     93531   1) Suspend/Resume logic passes IRQ handler
  31.  *                                 address. 2) DRQ polling is not valid while
  32.  *                                 BSY bit set.
  33.  *   04/03/95  @V117508   117508  Add #defines to include MCA version of driver
  34.  *   04/05/96  @V151168            Merged warm dock/swap code.
  35.  *   08/26/96  @V162970            Fixed the DIAMOND 8X CDROM problem.
  36.  ****************************************************************************/
  37. /*
  38.  * Edit History for Feature # 149178:
  39.  *
  40.  * Edit    Date    Comments
  41.  * ----- --------  -------------------------------------------------------------
  42.  * [001] 01-03-96  Added definitions required for Bus Master DMA support. /jlh
  43.  *
  44.  */
  45.  
  46. /*---------------------------------------*/
  47. /* Maximum Adapters/Units                */
  48. /*---------------------------------------*/
  49. #define MAX_ADAPTERS    4
  50. #define MAX_UNITS       2
  51.  
  52. /*-------------------*/
  53. /* TimeOut Equates   */
  54. /*-------------------*/
  55.  
  56. /*---------------------------------------*/
  57. /* TimeOut for RESET to complete (30s)   */
  58. /*                                       */
  59. /* After a RESET the drive is checked    */
  60. /* every 200ms.                          */
  61. /*---------------------------------------*/
  62. #define DELAYED_RESET_MAX       (30*1000L)
  63. #define DELAYED_RESET_INTERVAL  200L
  64. #define ATAPI_RESET_DELAY 20                                            /*@V162970*/
  65. #define ATAPI_NUM_RETRIES 5                                             /*@V162970*/
  66.  
  67. /*----------------------------------------------*/
  68. /* TimeOut for IRQ from last interrupt (5s)     */
  69. /*----------------------------------------------*/
  70. #define IRQ_TIMEOUT_INTERVAL    (5*1000L)
  71.  
  72. /*----------------------------------------------*/
  73. /* Retry Delay interval (200ms)                 */
  74. /*----------------------------------------------*/
  75. #define DELAYED_RETRY_INTERVAL  200L
  76.  
  77. /*---------------------------------------*/
  78. /* Minimum User Timeout (5s)             */
  79. /*---------------------------------------*/
  80. #define MIN_USER_TIMEOUT        (IRQ_TIMEOUT_INTERVAL / 1000L)
  81.  
  82. /*---------------------------------------*/
  83. /* Default User Timeout (30s)            */
  84. /*---------------------------------------*/
  85. #define DEFAULT_USER_TIMEOUT    30
  86.  
  87. /*---------------------------------------*/
  88. /* Maximum Cmd/Data Error Retries        */
  89. /*---------------------------------------*/
  90. #define MAX_DATA_ERRORS         25
  91.  
  92. /*---------------------------------------*/
  93. /* Initialization unit timeouts          */
  94. /*---------------------------------------*/
  95. #define INIT_TIMEOUT_LONG       (10*1000L)
  96. #define INIT_TIMEOUT_SHORT      (    500L)                         /*@V117508*/
  97. #define IRQ_TIMEOUT_LENGTH      ( 2*1000L)                         /*@V117508*/
  98.  
  99. /*---------------------------------------*/
  100. /* Elapsed Timer Interval (200ms)        */
  101. /*---------------------------------------*/
  102. #define ELAPSED_TIMER_INTERVAL  200
  103.  
  104. /*---------------------------------------*/
  105. /* Calibrate Loop Counter                */
  106. /*---------------------------------------*/
  107. #define CALIBRATE_LOOP_COUNT            1024
  108. #define CALIBRATE_TIMER_INTERVAL        (4*31L)
  109. #define CALIBRATE_INTERVAL_ACTUAL       (CALIBRATE_TIMER_INTERVAL + 31L)
  110.  
  111. /*---------------------------------------*/
  112. /* Maximum PIO Delays (us)               */
  113. /*---------------------------------------*/
  114. #define MAX_WAIT_DRQ                 30                          /*V@93531*/
  115. #define MAX_WAIT_BSY                  2000                          /*V@93531*/
  116. #define MAX_WAIT_READY                1000
  117.  
  118. /*---------------------------------------*/
  119. /* Maximum Transfer - MultiBlock Mode    */
  120. /*---------------------------------------*/
  121. #define MAX_MULTMODE_BLK                 16
  122.  
  123. /*---------------------------------------*/
  124. /* Maximum Transfer - Bytes              */
  125. /*---------------------------------------*/
  126. #define MAX_XFER_BYTES_PER_INTERRUPT   8192
  127.  
  128. /*---------------------------------------*/
  129. /* Maximum Transfer - Overall            */
  130. /*---------------------------------------*/
  131. #define MAX_XFER_SEC                    256
  132.  
  133. /*---------------------------------------*/
  134. /* Mask to remove High Byte              */
  135. /*---------------------------------------*/
  136. #define LOW_BYTE_MASK                0x00FF
  137.  
  138. #define SECTORSHIFT             9
  139.  
  140. #define SCRATCH_BUF_SIZE        1024
  141. #define SENSE_DATA_BYTES        18
  142.  
  143. #define TIMERS_PER_ACB          2
  144.  
  145. #define TIMER_POOL_SIZE         (sizeof(ADD_TIMER_POOL) +                     \
  146.                                       ((TIMERS_PER_ACB * MAX_ADAPTERS))       \
  147.                                 * sizeof(ADD_TIMER_DATA))
  148.  
  149. #define ACB_POOL_SIZE           (MAX_ADAPTERS * (sizeof(ACB) + (MAX_UNITS *   \
  150.                                 (sizeof(UCB)))))
  151.  
  152. #define UNITINFO_POOL_SIZE      (sizeof(UNITINFO) * MAX_ADAPTERS * MAX_UNITS)
  153.  
  154.  
  155. /*-------------------------------*/
  156. /* Miscellaneous                 */
  157. /*-------------------------------*/
  158. #define ENABLE  _asm{ sti }
  159. #define DISABLE _asm{ cli }
  160. #define INT3   _asm{ int 3 }
  161.  
  162. #define uSPerMS                 1000
  163.  
  164. #define      COM1ADDRESS           0x03F8
  165. #define      COM2ADDRESS           0x02F8
  166. #define      COM3ADDRESS           0x03E8
  167. #define      COM4ADDRESS           0x02E8
  168.  
  169. #define      MAXRESETS       4
  170.  
  171. #define      TASKTIME               -1L
  172.  
  173. #define  LEN_MODE_SENSE_10    24                                    /*@V151168*/
  174.  
  175. /* Begin [001] */
  176.  
  177. /* Miscellaneous constants */
  178.  
  179. #define MR_64K_LIMIT    0x00010000L         /* 64K memory limit */
  180. #define MR_4K_LIMIT     0x00001000L         /* 4K memory limit */
  181.  
  182. /* End [001] */
  183.