home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / OS2ASPI / ASPIPRO.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-14  |  5.3 KB  |  113 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. /*static char *SCCSID = "src/dev/dasd/os2aspi/aspipro.h, aspi, r206 93/03/20";*/
  13.  
  14. /**************************************************************************
  15.  *
  16.  * SOURCE FILE NAME = ASPIPRO.H
  17.  *
  18.  * DESCRIPTIVE NAME = OS2ASPI.DMD - OS/2 ASPI Device Manager
  19.  *                    ASPI Device Manager - C function prototypes
  20.  *
  21.  *
  22.  * VERSION = V2.0
  23.  *
  24.  * DATE
  25.  *
  26.  * DESCRIPTION  Define ASPI to Device Module shared structures
  27.  *
  28.  *
  29.  *
  30. */
  31. typedef void   near *NPVOID;
  32. typedef USHORT near *NPUSHORT;
  33.  
  34. /*----------------------*/
  35. /* Module: ASPISTR1.C   */
  36. /*----------------------*/
  37.  
  38. VOID FAR ASPIEntry (USHORT ASPIDataSegment,PASPI_SRB_HEADER pSRB);
  39. VOID FAR ASPIStr1(VOID);
  40. VOID NEAR StatusError(PRPH pRPH, USHORT errorCode );
  41.  
  42. /*----------------------*/
  43. /* Module: ASPIINIT.C   */
  44. /*----------------------*/
  45.  
  46. USHORT NEAR ASPIInit(PRPINITIN pRPI);
  47. USHORT ScanForSCSIAdapters(VOID (FAR *pADD_IORB_Entry) (PIORB),
  48.                            struct DevClassTableEntry FAR *pADDEntry);
  49. USHORT GetADDDeviceTable( VOID (FAR * pADD_IORB_Entry) (PIORB));
  50. USHORT CheckUnitAllocated( VOID (FAR * pADD_IORB_Entry) (PIORB), NPUNITINFO npUI );
  51. NPACB BuildACB(NPADAPTERINFO npAI );
  52. NPSCSI_INQDATA GetInquiryData( NPATE npATE );
  53. NPATE BuildATE(VOID (FAR * pADD_IORB_Entry) (PIORB), NPUNITINFO npUI,USHORT allocationStatus);
  54. NPVOID NEAR InitAllocate( USHORT Size );
  55. VOID NEAR InitSRBPool(VOID);
  56. VOID FAR _loadds InitPost (PIORBH pIORBH);                           /*@V64399*/
  57. USHORT ParseCmdLine(PDDD_PARM_LIST pADDParms);
  58. VOID TTYWrite(PSZ Buf);
  59.  
  60. /*----------------------*/
  61. /* Module: ASPISRB.C    */
  62. /*----------------------*/
  63.  
  64. VOID NEAR _loadds ASPISRBEntr(PASPI_SRB_HEADER pSRBH, USHORT virtualASPI);
  65. USHORT NEAR DoASPIInquiry(PASPI_SRB_INQUIRY pSRBI, USHORT virtualASPI);
  66. USHORT NEAR DoASPIDeviceType(PASPI_SRB_DEVICE_TYPE pSRBDT, USHORT virtualASPI);
  67. VOID NEAR DoASPIExecuteIO(PASPI_SRB_EXECUTE_IO pSRBIO, USHORT virtualASPI);
  68. VOID NEAR DoASPIResetDevice(PASPI_SRB_RESET_DEVICE pSRB, USHORT virtualASPI);
  69. VOID NEAR DoASPIAbortIO(PASPI_SRB_ABORT_IO pSRBIO, USHORT virtualASPI);
  70. VOID NEAR AbortIORB(NPATE npATE,PASPI_SRB_ABORT_IO pSRBIO,
  71.                     PASPI_SRBWORK pSRBToAbortWork,NPSRB_LINK npSRBLink,
  72.                     USHORT virtualASPI);
  73. USHORT NEAR DoASPISetAdapterParms(PASPI_SRB_ADAPTER_PARMS pSRAP, USHORT virtualASPI);
  74. VOID NEAR SRBToIORBPassThru(NPATE npATE,PASPI_SRB_EXECUTE_IO pSRBIO,
  75.                             NPSRB_LINK npSRBLink,USHORT virtualASPI);
  76. VOID NEAR SRBToIORBReset(NPATE npATE,PASPI_SRB_RESET_DEVICE pSRBRD,
  77.                          NPSRB_LINK npSRBLink, USHORT virtualASPI);
  78. VOID CalculateCommandTimeout(PIORB_ADAPTER_PASSTHRU pIORB);
  79. USHORT DetermineDirectionBits(NPATE npATE,PIORB_ADAPTER_PASSTHRU pIORB,PASPI_SRB_EXECUTE_IO pSRBIO);
  80. NPACB FindAdapter(UCHAR adapterIndex);
  81. NPATE FindTarget(UCHAR adapterIndex,UCHAR targetID, UCHAR targetLUN);
  82. NPSRB_LINK AllocateIORB(NPATE npATE, PASPI_SRB_HEADER pSRBH,
  83.                         VOID (NEAR *ASPIRequestRoutine)(),USHORT virtualASPI);
  84. VOID FreeIORB(NPSRB_LINK npSRBLink);
  85. VOID BuildPassThruIORB( NPATE npATE,PASPI_SRB_EXECUTE_IO pSRBIO,
  86.                         NPSRB_LINK npSRBLink, USHORT virtualASPI);
  87. VOID SendIORB(PIORBH pIORB, VOID (FAR *pADD_IORB_Entry)(PIORB));
  88. USHORT SendIORBandWait( NPIORB npIORB, VOID (FAR * pADD_IORB_Entry) (PIORB));
  89. VOID FAR _loadds NotifyIORBDone(PIORB fpIORB);                       /*@V61779*/
  90. VOID ConvertIORBError(PIORBH pIORBH,PASPI_SRB_EXECUTE_IO pSRBIO);
  91. VOID CallPostRoutine(PASPI_SRB_EXECUTE_IO pSRBIO);
  92. USHORT SendUnitControlCommand(NPATE npATE,USHORT unitControlCommand);
  93. VOID InsertSRBActiveQueue(NPATE npATE,NPSRB_LINK npSRBLink,PASPI_SRB_HEADER pSRBH);
  94. VOID DeleteSRBActiveQueue(NPATE npATE,NPSRB_LINK npSRBLink);
  95. VOID FreeGDTSelector(SEL GDTselector);
  96. VOID FAR _loadds AllocationPost(PIORB pIORB);                        /*@V64399*/
  97.  
  98. /*----------------------*/
  99. /* Module: ASPIASUB.ASM */
  100. /*----------------------*/
  101.  
  102. VOID  NEAR memcpy( PBYTE Dst, PBYTE Src, USHORT cb );
  103. VOID  NEAR memset( PBYTE Dst, UCHAR Value, USHORT byteCount);
  104. ULONG NEAR ULONGdivUSHORT( ULONG Dividend, USHORT Divisor, NPUSHORT npRemainder );
  105. ULONG NEAR ULONGmulULONG( ULONG Multiplier, ULONG Multiplicand );
  106.  
  107.  
  108. /*----------------------*/
  109. /* Module: ASPIVIRT.ASM */
  110. /*----------------------*/
  111. VOID _pascal _far VirtualASPIEntry (ULONG,PASPI_SRB_HEADER, PVOID);
  112. VOID CallVirtPostRoutine(PVOID pSRB);
  113.