home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / IBM / IBM2SCSI / SCSIPRO.H < prev    next >
Encoding:
Text File  |  1995-04-14  |  6.4 KB  |  195 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 = SCSIPRO.H
  15.  *
  16.  * DESCRIPTIVE NAME = IBM2SCSI.ADD - Adapter Driver for IBM scsi adapters.
  17.  *              Prototype definitions.
  18.  *
  19.  *
  20.  * VERSION = V2.0
  21.  *
  22.  * DATE
  23.  *
  24.  * DESCRIPTION    Defines all function prototypes.
  25.  *
  26.  *
  27. */
  28.  
  29. /*-------------------*/
  30. /* Organized by file */
  31. /*-------------------*/
  32.  
  33. /*------------*/
  34. /* SCSISTR1.C */
  35. /*------------*/
  36.  
  37. VOID NEAR SCSIStrat1();
  38.  
  39. /*------------*/
  40. /* SCSISUBS.C */
  41. /*------------*/
  42.  
  43. NPDCB  NEAR FindDeviceEntry(USHORT);
  44. VOID   NEAR BuildSCB(NPSCB, USHORT, NPDCB, ULONG, ULONG, ULONG, USHORT, USHORT);
  45. NPSCBH NEAR AllocSCB(NPDCB, PIORB);
  46. NPSCBH NEAR FreeSCB(USHORT, NPSCBH, NPDCB);
  47. VOID   NEAR QueueIORB(PIORB, NPDCB, USHORT);
  48. PIORB  NEAR DeQueueIORB(NPDCB);
  49. VOID   NEAR StartIORB(PIORB, NPDCB);
  50. USHORT NEAR FinishIORB(PIORB, NPDCB);
  51. NPDCB  NEAR ValidIORBCommand(PIORB);
  52. USHORT NEAR CountSGBlocks(PSCATGATENTRY, USHORT, USHORT);
  53. VOID   NEAR InitIORBWorkSpace(PIORB);
  54. PIORB  NEAR GetNextWork(NPDCB);
  55. VOID   NEAR Trace(USHORT, PIORB);
  56. ULONG  NEAR VirtToPhys (PBYTE);
  57. PIORB  NEAR CompleteIORBChain(NPDCB, PIORB, PIORB, USHORT);
  58. USHORT NEAR StartLocateModeSCB(USHORT, ULONG, USHORT);
  59.  
  60. /*------------*/
  61. /* SCSISUB2.C */
  62. /*------------*/
  63.  
  64. USHORT NEAR InitMoveMode(USHORT);
  65. VOID   NEAR InitAutoReqSense(PIORB, PSTDHEAD, NPDCB);
  66. VOID   NEAR StartCtrlEl(PREQH, NPDCB);
  67. VOID   NEAR AllocEntityID(NPDCB);
  68. USHORT NEAR AllocEntityIDStage(PIORB, NPDCB);
  69. USHORT NEAR AbortDevice (NPDCB, PIORB, USHORT, USHORT);
  70. VOID   NEAR ResetDevice (NPDCB, PIORB);
  71. USHORT NEAR MMDevCtrlDone(PIORB, NPDCB);
  72. USHORT NEAR HoldDevice(NPDCB, USHORT);
  73. USHORT NEAR StartUnit(PIORB, NPDCB);
  74. USHORT NEAR MMStartUnit_AbortDone(PIORB, NPDCB);
  75. USHORT NEAR MMStartUnit_StartDone(PIORB, NPDCB);
  76. ULONG  FAR  _loadds SignalAdapter (USHORT, ULONG);
  77. ULONG  FAR  _loadds PipeFull (ULONG, PREQH);
  78.  
  79.  
  80. /*------------*/
  81. /* SCSIREQ1.C */
  82. /*------------*/
  83.  
  84. VOID   _loadds FAR  IORBEntry(PIORB);
  85. VOID   NEAR IOCC_Configuration(PIORB_CONFIGURATION, NPDCB);
  86. VOID   NEAR IOCM_GetDeviceTable(PIORB_CONFIGURATION, NPDCB);
  87. VOID   NEAR IOCM_CompleteInit(PIORB_CONFIGURATION, NPDCB);
  88. VOID   NEAR IOCC_UnitControl(PIORB_UNIT_CONTROL, NPDCB);
  89. VOID   NEAR IOCC_Geometry(PIORB_GEOMETRY, NPDCB);
  90. VOID   NEAR IOCC_MM_Geometry(PIORB_GEOMETRY, NPDCB);
  91. USHORT NEAR IOCM_GeometrySetup(PIORB_GEOMETRY, NPDCB);
  92. USHORT NEAR IOCM_GeometryDone(PIORB_GEOMETRY, NPDCB);
  93. USHORT NEAR IOCM_GeometryCheckBootSector(PIORB_GEOMETRY, NPDCB); /*@V95775*/
  94.  
  95. /*------------*/
  96. /* SCSIREQ2.C */
  97. /*------------*/
  98.  
  99. VOID   NEAR IOCC_Format(PIORB_FORMAT, NPDCB);
  100. VOID   NEAR IOCC_MM_Format(PIORB_FORMAT, NPDCB);
  101. VOID   NEAR IOCC_UnitStatus(PIORB_UNIT_STATUS, NPDCB);
  102. USHORT NEAR IOCC_SetupUnitStatus(PIORB_UNIT_STATUS, NPDCB);
  103. VOID   NEAR IOCC_MM_UnitStatus(PIORB_UNIT_STATUS, NPDCB);
  104. USHORT NEAR IOCC_UnitStatusDone(PIORB_UNIT_STATUS, NPDCB);
  105. VOID   NEAR IOCC_AdapterPassthru(PIORB_ADAPTER_PASSTHRU, NPDCB);
  106. USHORT NEAR IOCC_SetupPassthruCDB(PIORB_ADAPTER_PASSTHRU, NPDCB);
  107. VOID   NEAR IOCC_MM_AdapterPassthru(PIORB_ADAPTER_PASSTHRU, NPDCB);
  108. VOID   NEAR IOCC_Undefined(PIORB, NPDCB);
  109.  
  110.  
  111. /*------------*/
  112. /* SCSIREQ3.C */
  113. /*------------*/
  114.  
  115. VOID   NEAR IOCC_ExecuteIO(PIORB_EXECUTEIO, NPDCB);
  116. VOID   NEAR IOCC_MM_ExecuteIO(PIORB_EXECUTEIO, NPDCB);
  117. USHORT NEAR IOCC_MM_ExecIOBuildCtrlEl(PIORB_EXECUTEIO, NPDCB);
  118. USHORT NEAR IOCC_ExecIOBldSCBChain(PIORB_EXECUTEIO, NPDCB);
  119. USHORT NEAR IOCC_ExecIODone(PIORB_EXECUTEIO, NPDCB);
  120. VOID   NEAR IOCC_DeviceControl(PIORB_DEVICE_CONTROL, NPDCB);
  121. USHORT NEAR IOCM_MediaControl(PIORB, NPDCB);
  122. VOID   NEAR IOCM_MM_MediaControl(PIORB, NPDCB);
  123.  
  124.  
  125. /*-----------*/
  126. /* SCSIINT.C */
  127. /*-----------*/
  128.  
  129.  
  130. VOID   NEAR SCSIInterruptHdlr();
  131. BOOL   NEAR GetSenseData(NPDCB,);
  132. PIORB  NEAR FindFailingIORB(NPDCB);
  133. USHORT NEAR GetIntrAdapter();
  134. VOID   NEAR ProcessLocateModeDevice (NPDCB);
  135. ULONG  FAR  _loadds DequeueSignal(ULONG);
  136. ULONG  FAR  _loadds EnqueueSignal(ULONG);
  137. ULONG  FAR  _loadds ProcessMoveModeElement(PEXTREPLY, ULONG);
  138. VOID   NEAR ProcessGoodElement(PIORB);
  139. VOID   NEAR ProcessErrorElement(PIORB, PEXTREPLY);
  140. NPDCB  NEAR GetIntrDevice(USHORT);
  141. USHORT NEAR ProcessSenseData (PIORB, NPDCB);
  142. USHORT NEAR RemoveIORBFromActiveChain(PIORB, NPDCB);
  143. USHORT NEAR ProcessTSB(PTSB, PIORB);
  144.  
  145.  
  146. /*------------*/
  147. /* SCSITIMR.C */
  148. /*------------*/
  149.  
  150. VOID FAR  TimerHandler();
  151. VOID NEAR ResetAdapter(USHORT);
  152. VOID NEAR AdapterResetComplete(USHORT);
  153. VOID NEAR RestartIO(USHORT);
  154. VOID NEAR AdapterResetFailed(USHORT);
  155.  
  156. /*--------*/
  157. /* io.asm */
  158. /*--------*/
  159.  
  160. USHORT NEAR _StartIO(USHORT,ULONG, USHORT);
  161. UCHAR  NEAR ReadReg(USHORT);
  162. VOID   NEAR WriteReg(USHORT, USHORT);
  163. VOID   NEAR WriteAttn(USHORT, USHORT);
  164. VOID   NEAR ResetToggle(USHORT);
  165.  
  166.  
  167. /*-------------*/
  168. /* dprintf.asm */
  169. /*-------------*/
  170.  
  171. VOID NEAR dprintf(CHAR FAR * msg, ...);
  172.  
  173. /*------------*/
  174. /* SCSIINIT.C */
  175. /*------------*/
  176.  
  177. VOID   NEAR Code_End();
  178. USHORT NEAR SCSIInit();
  179. VOID   NEAR BuildSCBPool();
  180. VOID   NEAR BuildUnitHandleTable();
  181. VOID   NEAR InitTimerPool();
  182. VOID   NEAR InitTraceBuffer();
  183. VOID   NEAR FreeResources();
  184. USHORT NEAR GetEBDAPtr();
  185. USHORT NEAR GetSCSIDataPtr(PSCSIDATATBL FAR *);
  186. USHORT NEAR InitSCSISubsystem();
  187. USHORT NEAR ScanDIRs(PDIR, USHORT, USHORT, USHORT);
  188. USHORT NEAR GetINQData(USHORT, NPDCB);
  189. USHORT NEAR GetPOSData(USHORT, PSCSIADPINFO);
  190. USHORT NEAR InitDevice(NPDCB, USHORT, PDIR);
  191. USHORT NEAR InitAdapter(PSCSIADPINFO, USHORT, USHORT);
  192. USHORT NEAR PatchTribble(USHORT);
  193. VOID   NEAR GetInitParms (PRPINITIN);
  194.  
  195.