home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / CDROM / ATAPI / ATAPICON.H next >
Encoding:
C/C++ Source or Header  |  1995-04-14  |  5.7 KB  |  165 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /**************************************************************************
  13.  *
  14.  * SOURCE FILE NAME = ATAPICON.H
  15.  *
  16.  * DESCRIPTION : Locally defined equates.
  17.  *
  18.  *
  19.  *
  20.  * VERSION = 1.0
  21.  *
  22.  * DATE
  23.  *
  24.  * DESCRIPTION :
  25.  *
  26.  * Purpose:
  27.  *
  28.  *
  29.  *
  30.  *
  31.  *
  32. */
  33.  
  34. /*---------------------------------------*/
  35. /* Maximum Adapters/Units                */
  36. /*---------------------------------------*/
  37. #define MAX_ADAPTERS    4
  38. #define MAX_UNITS       2
  39.  
  40. /*-------------------*/
  41. /* TimeOut Equates   */
  42. /*-------------------*/
  43.  
  44. /*---------------------------------------*/
  45. /* TimeOut for RESET to complete (30s)   */
  46. /*                                       */
  47. /* After a RESET the drive is checked    */
  48. /* every 200ms.                          */
  49. /*---------------------------------------*/
  50. #define DELAYED_RESET_MAX       (30*1000L)
  51. #define DELAYED_RESET_INTERVAL  200L
  52.  
  53. /*----------------------------------------------*/
  54. /* TimeOut for IRQ from last interrupt (5s)     */
  55. /*----------------------------------------------*/
  56. #define IRQ_TIMEOUT_INTERVAL    (5*1000L)
  57.  
  58. /*----------------------------------------------*/
  59. /* Retry Delay interval (200ms)                 */
  60. /*----------------------------------------------*/
  61. #define DELAYED_RETRY_INTERVAL  200L
  62.  
  63. /*---------------------------------------*/
  64. /* Minimum User Timeout (5s)             */
  65. /*---------------------------------------*/
  66. #define MIN_USER_TIMEOUT        (IRQ_TIMEOUT_INTERVAL / 1000L)
  67.  
  68. /*---------------------------------------*/
  69. /* Default User Timeout (30s)            */
  70. /*---------------------------------------*/
  71. #define DEFAULT_USER_TIMEOUT    30
  72.  
  73. /*---------------------------------------*/
  74. /* Maximum Cmd/Data Error Retries        */
  75. /*---------------------------------------*/
  76. #define MAX_DATA_ERRORS         25
  77.  
  78. /*---------------------------------------*/
  79. /* Initialization unit timeouts          */
  80. /*---------------------------------------*/
  81. #define INIT_TIMEOUT_LONG       (10*1000L)
  82. #define INIT_TIMEOUT_SHORT      ( 2*1000L)
  83.  
  84. /*---------------------------------------*/
  85. /* Elapsed Timer Interval (200ms)        */
  86. /*---------------------------------------*/
  87. #define ELAPSED_TIMER_INTERVAL  200
  88.  
  89. /*---------------------------------------*/
  90. /* Calibrate Loop Counter                */
  91. /*---------------------------------------*/
  92. #define CALIBRATE_LOOP_COUNT            1024
  93. #define CALIBRATE_TIMER_INTERVAL        (4*31L)
  94. #define CALIBRATE_INTERVAL_ACTUAL       (CALIBRATE_TIMER_INTERVAL + 31L)
  95.  
  96. /*---------------------------------------*/
  97. /* Maximum PIO Delays (us)               */
  98. /*---------------------------------------*/
  99. #define MAX_WAIT_DRQ                 30                          /*V@93531*/
  100. #define MAX_WAIT_BSY                  2000                          /*V@93531*/
  101. #define MAX_WAIT_READY                1000
  102.  
  103. /*---------------------------------------*/
  104. /* Maximum Transfer - MultiBlock Mode    */
  105. /*---------------------------------------*/
  106. #define MAX_MULTMODE_BLK                 16
  107.  
  108. /*---------------------------------------*/
  109. /* Maximum Transfer - Bytes              */
  110. /*---------------------------------------*/
  111. #define MAX_XFER_BYTES_PER_INTERRUPT   8192
  112.  
  113. /*---------------------------------------*/
  114. /* Maximum Transfer - Overall            */
  115. /*---------------------------------------*/
  116. #define MAX_XFER_SEC                    256
  117.  
  118. /*---------------------------------------*/
  119. /* Mask to remove High Byte              */
  120. /*---------------------------------------*/
  121. #define LOW_BYTE_MASK                0x00FF
  122.  
  123. #define SECTORSHIFT             9
  124.  
  125. #define SCRATCH_BUF_SIZE        1024
  126. #define SENSE_DATA_BYTES        18
  127.  
  128. /*---------------------------------------------*/
  129. /* Dummy IORB CommandModifier                  */
  130. /*                                             */
  131. /* To pass internal requests to state machine  */
  132. /*---------------------------------------------*/
  133. #define IOCM_EXECUTE_ATA        0
  134.  
  135. #define TIMERS_PER_ACB          2
  136.  
  137. #define TIMER_POOL_SIZE         (sizeof(ADD_TIMER_POOL) +                     \
  138.                                       ((TIMERS_PER_ACB * MAX_ADAPTERS))       \
  139.                                 * sizeof(ADD_TIMER_DATA))
  140.  
  141. #define ACB_POOL_SIZE           (MAX_ADAPTERS * (sizeof(ACB) + (MAX_UNITS *   \
  142.                                 (sizeof(UCB)))))
  143.  
  144. #define UNITINFO_POOL_SIZE      (sizeof(UNITINFO) * MAX_ADAPTERS * MAX_UNITS)
  145.  
  146.  
  147. /*-------------------------------*/
  148. /* Miscellaneous                 */
  149. /*-------------------------------*/
  150. #define ENABLE  _asm{ sti }
  151. #define DISABLE _asm{ cli }
  152. #define INT3   _asm{ int 3 }
  153.  
  154. #define uSPerMS                 1000
  155.  
  156. #define      COM1ADDRESS           0x03F8
  157. #define      COM2ADDRESS           0x02F8
  158. #define      COM3ADDRESS           0x03E8
  159. #define      COM4ADDRESS           0x02E8
  160.  
  161. #define      MAXRESETS       4
  162.  
  163. #define      TASKTIME               -1L
  164.  
  165.