home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / CDROM / ATAPI / ATAPIPRO.H < prev    next >
Encoding:
Text File  |  1995-04-14  |  7.9 KB  |  200 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 = ATAPIPRO.H
  15.  *
  16.  * DESCRIPTIVE NAME = Proto-types for ATAPI driver
  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. ┌────────────┐
  36. │ ATAPIISM.C │
  37. └────────────┘
  38. */
  39.  
  40. VOID FAR StartOSMRequest           ( NPACB npACB );
  41. VOID NEAR StartISM                 ( NPACB npACB );
  42. VOID NEAR ISMStartState            ( NPACB npACB );
  43. VOID NEAR InterruptState           ( NPACB npACB );
  44. VOID NEAR PutByteInSGList          ( NPACB npACB, USHORT Data );
  45. VOID NEAR StartATAPICmd            ( NPACB npACB );
  46. VOID NEAR StartATACmd              ( NPACB npACB );
  47. VOID NEAR WriteATAPIPkt            ( NPACB npACB );
  48. VOID NEAR InitializeISM            ( NPACB npACB );
  49. USHORT NEAR DRQ_AND_BSY_CLEAR_WAIT ( NPACB npACB );
  50. VOID FAR IRQTimeOutHandler         ( ULONG TimerHandle, ULONG Parm1,
  51.                                                         ULONG Parm2 );
  52. USHORT FAR _loadds AdapterIRQ0     ();
  53. USHORT FAR _loadds AdapterIRQ1     ();
  54. USHORT FAR _loadds AdapterIRQ2     ();
  55. USHORT FAR _loadds AdapterIRQ3     ();
  56. USHORT NEAR AdptInterrupt          ( NPACB npACB );
  57. USHORT NEAR GetRegister            ( NPACB npACB, USHORT Register );
  58.  
  59. /*
  60. ┌────────────┐
  61. │ ATAPIOSM.C │
  62. └────────────┘
  63. */
  64.  
  65. VOID   FAR StartOSM               ( NPACB npACB );
  66. VOID   NEAR StartIORB             ( NPACB npACB );
  67. VOID   NEAR CompleteIORB          ( NPACB npACB );
  68. VOID   NEAR Execute_CDB           ( NPACB npACB );
  69. VOID   NEAR FreeHWResources       ( NPACB npACB );
  70. USHORT NEAR ImmediateSuspendCheck ( NPACB npACB );
  71. VOID   NEAR GetDeviceTable        ( NPACB npACB );
  72. VOID   NEAR AllocateUnit          ( NPACB npACB );
  73. VOID   NEAR DeallocateUnit        ( NPACB npACB );
  74. VOID   NEAR ChangeUnitInfo        ( NPACB npACB );
  75. VOID   NEAR CompleteInit          ( NPACB npACB );
  76. VOID   NEAR Suspend_Complete      ( NPACB npACB );
  77. VOID   NEAR Resume_Complete       ( NPACB npACB );
  78. USHORT FAR  NextIORB              ( NPACB npACB );
  79. VOID   NEAR GetMediaGeometry      ( NPACB npACB );
  80. VOID   NEAR GetDeviceGeometry     ( NPACB npACB );
  81. VOID   NEAR IORBRead              ( NPACB npACB );
  82. VOID   NEAR GetUnitStatus         ( NPACB npACB );
  83. VOID   NEAR GetLockStatus         ( NPACB npACB );
  84. VOID   NEAR Abort                 ( NPACB npACB );
  85. VOID   NEAR Reset                 ( NPACB npACB );
  86. VOID   NEAR Suspend               ( NPACB npACB );
  87. VOID   NEAR Resume                ( NPACB npACB );
  88. VOID   NEAR LockMedia             ( NPACB npACB );
  89. VOID   NEAR UnlockMedia           ( NPACB npACB );
  90. VOID   NEAR EjectMedia            ( NPACB npACB );
  91. VOID   NEAR GetQueueStatus        ( NPACB npACB );
  92. VOID   NEAR ISMComplete           ( NPACB npACB );
  93. VOID   NEAR SetUpXferData         ( NPACB npACB );
  94.  
  95. /*
  96. ┌────────────┐
  97. │ ATAPINIT.C │
  98. └────────────┘
  99. */
  100. VOID   FAR  DriverInit            ( PRPINITIN  pRPH );
  101. VOID   NEAR SetupADDVars          ();
  102. NPBYTE FAR  InitAllocate          ( USHORT Size );
  103. VOID   FAR  InitDeAllocate        ( USHORT Size );
  104. VOID   NEAR PrintInfo             ( NPATBL npAT );
  105. VOID   NEAR DisplayInfo           ( NPATBL npAT );
  106. VOID   NEAR TTYWrite              ( PSZ Buf );
  107. USHORT NEAR ParseCmdLine          ( PDDD_PARM_LIST pADDParms );
  108. USHORT NEAR ClaimUnit             ( NPATBL npAT, USHORT UnitHandle,
  109.                                     PUNITINFO pOldUnitInfo,
  110.                                     VOID (FAR *DriverEP)() );
  111. USHORT NEAR Issue_ReportResources ( PRESOURCE_ENTRY pRE,
  112.                                     USHORT UnitHandle, VOID (FAR *DriverEP)());
  113. USHORT NEAR Issue_AllocateUnit    ( USHORT UnitHandle, VOID (FAR *DriverEP)());
  114. USHORT NEAR Issue_DeallocateUnit  ( USHORT UnitHandle, VOID (FAR *DriverEP)());
  115. USHORT NEAR Issue_ChangeUnitInfo  ( PUNITINFO pUI, USHORT UnitHandle,
  116.                                     VOID (FAR *DriverEP)() );
  117. VOID   NEAR ConfigureACB          ( NPATBL npAT );
  118. USHORT NEAR ATAPIIdentify         ( NPATBL npAT );
  119. USHORT NEAR ConfigureController   ( NPATBL npAT, USHORT AdapterId );
  120. USHORT NEAR ConfigureUnit         ( NPATBL npAT, USHORT AdapterId, USHORT UnitId );
  121. VOID   NEAR GetATAPIUnits         ();
  122. USHORT NEAR CheckController       ( NPATBL npAT );
  123. USHORT NEAR CheckSectorReg        ( NPATBL npAT );
  124. VOID   NEAR SelectUnit            ( NPACB npACB, USHORT UnitId );
  125. USHORT FAR  CheckReady            ( NPACB npACB );
  126. USHORT NEAR InitSuspendOtherAdd   ( NPACB npACB );
  127. USHORT NEAR InitResumeOtherAdd    ( NPACB npACB );
  128. VOID   FAR  _loadds NotifyInitIORBDone( PIORB pIORB );
  129. USHORT NEAR GetIdentifyData       ( NPACB npACB, USHORT UnitId, PBYTE pID );
  130. VOID   FAR  CalibrateTimers       ( NPACB npACB );
  131. VOID   FAR  CalibrateTimer        ( ULONG hCalibrateTimer, ULONG Unused1,
  132.                                                            ULONG Unused2 );
  133.  
  134. typedef
  135. VOID   (FAR *PCV)                 ();
  136.  
  137. ULONG  FAR  CalibrateWorker       ( NPACB npACB, PCV npWorker );
  138. VOID   FAR  ElapsedTimer          ( ULONG hElapsedTimer, ULONG Unused1,
  139.                                                          ULONG Unused2);
  140. VOID   NEAR ResetController       ( NPACB npACB );
  141.  
  142.  
  143. /*
  144. ┌────────────┐
  145. │ ATAPIGEN.C │
  146. └────────────┘
  147. */
  148.  
  149. VOID   FAR  IODelay                        ();
  150. VOID   NEAR setmem                         ( PBYTE d, USHORT c, USHORT len );
  151. VOID   NEAR memcopy                        ( PBYTE d, PBYTE s, USHORT len );
  152. VOID   NEAR strncpy                        ( PSZ d, PSZ s, USHORT n );
  153. BOOL   NEAR strncmp                        ( PSZ d, PSZ s, USHORT n );
  154. ULONG  VirtToPhys                          ( PBYTE VirtAddr);
  155. USHORT NEAR SuspendOtherAdd                ( NPACB npACB );
  156. USHORT NEAR ResumeOtherAdd                 ( NPACB npACB );
  157. ULONG  NEAR QueryOtherAdd                  ( NPACB npACB );
  158. VOID   FAR  _loadds NotifySuspendResumeDone( PIORB pIORB );
  159. VOID   NEAR HookIRQ                        ( NPACB npACB );
  160. VOID   FAR Start_ResumeOtherAdd            ( NPACB npACB );
  161. VOID   FAR Start_SuspendOtherAdd           ( NPACB npACB );
  162. VOID   FAR Start_HookIRQ                   ( NPACB npACB );
  163. VOID   NEAR UnHookIRQ                      ( NPACB npACB );
  164. VOID   FAR  PASCAL StateCtxHookRtn         ( VOID );
  165. VOID   NEAR IDECDStr                       ();
  166. USHORT FAR BSY_CLR_DRQ_SET_WAIT            ( NPACB npACB );
  167.  
  168.  
  169. /*
  170. ┌────────────┐
  171. │ ATAPIORB.C │
  172. └────────────┘
  173. */
  174. typedef PIORB FAR *PPIORB;
  175.  
  176. VOID   FAR _loadds ATAPIADDEntry  ( PIORBH pNewIORB );
  177. PIORB  NEAR PreProcessIORBs( NPACB npACB, PPIORB ppNewIORB );
  178. VOID   NEAR RemoveIORB( PIORB pIORB, PIORB pIORBPrev, PPIORB pIORBFirst );
  179. USHORT NEAR SuspendIORB( NPACB npACB, PIORB pIORB );
  180. USHORT NEAR ResumeIORB( NPACB npACB, PIORB pIORB );
  181. USHORT NEAR ActivateACBCheck( NPACB npACB );
  182. USHORT NEAR Valid_CDB_Length_Check( PIORBH pIORB, NPACB npACB );
  183. UCHAR  NEAR x2BCD ( UCHAR Data );
  184. VOID   NEAR Convert_17B_to_ATAPI( ULONG pPhysData );
  185.  
  186. /*
  187. ┌──────────┐
  188. │ PRINTF.C │
  189. └──────────┘
  190. */
  191. VOID NEAR sprintf( PSZ s, PSZ fmt, ... );
  192.  
  193. /*
  194. ┌─────────────┐
  195. │ dprintf.asm │
  196. └─────────────┘
  197. */
  198.  
  199. VOID NEAR dprintf(CHAR FAR * msg, ...);
  200.