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 / atapipro.h < prev    next >
Encoding:
Text File  |  1998-04-10  |  7.9 KB  |  201 lines

  1. /**************************************************************************
  2.  *
  3.  * SOURCE FILE NAME = ATAPIPRO.H
  4.  *
  5.  * DESCRIPTIVE NAME = Proto-types for ATAPI driver
  6.  *
  7.  *
  8.  * Copyright : COPYRIGHT IBM CORPORATION, 1991, 1992
  9.  *             LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
  10.  *             REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083
  11.  *             RESTRICTED MATERIALS OF IBM
  12.  *             IBM CONFIDENTIAL
  13.  *
  14.  * VERSION = 1.0
  15.  *
  16.  * DATE
  17.  *
  18.  * DESCRIPTION :
  19.  *
  20.  * Purpose:
  21.  *
  22.  *
  23.  *
  24.  *
  25.  *
  26.  * CHANGE ACTIVITY =
  27.  *   DATE      FLAG        DEFECT  CHANGE DESCRIPTION
  28.  *   --------  ----------  -----   --------------------------------------
  29.  *   04/05/96  @V151168            Merged warm dock/swap code.
  30.  *   05/09/96  @V153151            Moved some code and data from init to
  31.  *                                 run-time residency.
  32.  *   05/24/96  @V155162            Thinkpad docking/swapping IDE update.
  33.  ****************************************************************************/
  34.  
  35. /*
  36. ZDDDDDDDDDDDD?
  37. 3 ATAPIISM.C 3
  38. @DDDDDDDDDDDDY
  39. */
  40.  
  41. VOID FAR StartOSMRequest           ( NPACB npACB );
  42. VOID NEAR StartISM                 ( NPACB npACB );
  43. VOID NEAR ISMStartState            ( NPACB npACB );
  44. VOID NEAR InterruptState           ( NPACB npACB );
  45. VOID NEAR PutByteInSGList          ( NPACB npACB, USHORT Data );
  46. VOID NEAR StartATAPICmd            ( NPACB npACB );
  47. VOID NEAR StartATACmd              ( NPACB npACB );
  48. VOID NEAR WriteATAPIPkt            ( NPACB npACB );
  49. VOID NEAR InitializeISM            ( NPACB npACB );
  50. USHORT NEAR DRQ_AND_BSY_CLEAR_WAIT ( NPACB npACB );
  51. VOID FAR IRQTimeOutHandler         ( ULONG TimerHandle, ULONG Parm1,
  52.                                                         ULONG Parm2 );
  53. USHORT FAR _loadds AdapterIRQ0     ();
  54. USHORT FAR _loadds AdapterIRQ1     ();
  55. USHORT FAR _loadds AdapterIRQ2     ();
  56. USHORT FAR _loadds AdapterIRQ3     ();
  57. USHORT NEAR AdptInterrupt          ( NPACB npACB );
  58. USHORT NEAR GetRegister            ( NPACB npACB, USHORT Register );
  59.  
  60. /*
  61. ZDDDDDDDDDDDD?
  62. 3 ATAPIOSM.C 3
  63. @DDDDDDDDDDDDY
  64. */
  65.  
  66. VOID   FAR StartOSM               ( NPACB npACB );
  67. VOID   NEAR StartIORB             ( NPACB npACB );
  68. VOID   NEAR CompleteIORB          ( NPACB npACB );
  69. VOID   NEAR Execute_CDB           ( NPACB npACB );
  70. VOID   NEAR FreeHWResources       ( NPACB npACB );
  71. USHORT NEAR ImmediateSuspendCheck ( NPACB npACB );
  72. VOID   NEAR GetDeviceTable        ( NPACB npACB );
  73. VOID   NEAR AllocateUnit          ( NPACB npACB );
  74. VOID   NEAR DeallocateUnit        ( NPACB npACB );
  75. VOID   NEAR ChangeUnitInfo        ( 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. ZDDDDDDDDDDDD?
  97. 3 ATAPINIT.C 3
  98. @DDDDDDDDDDDDY
  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, BOOL Resume,       /*@V155162*/
  109.                                     USHORT UnitHandle,
  110.                                     PUNITINFO pOldUnitInfo,
  111.                                     VOID (FAR *DriverEP)() );
  112. USHORT NEAR Issue_ReportResources ( PRESOURCE_ENTRY pRE,
  113.                                     USHORT UnitHandle, VOID (FAR *DriverEP)());
  114. USHORT NEAR Issue_AllocateUnit    ( USHORT UnitHandle, VOID (FAR *DriverEP)());
  115. USHORT NEAR Issue_DeallocateUnit  ( USHORT UnitHandle, VOID (FAR *DriverEP)());
  116. USHORT NEAR Issue_ChangeUnitInfo  ( PUNITINFO pUI, USHORT UnitHandle,
  117.                                     VOID (FAR *DriverEP)() );
  118. VOID   NEAR ConfigureACB          ( NPATBL npAT );
  119. USHORT NEAR ATAPIIdentify         ( NPATBL npAT );
  120. USHORT NEAR ATAPIReset            ( NPATBL npAT ); /* chl */
  121. USHORT NEAR ConfigureController   ( NPATBL npAT, USHORT AdapterId );
  122. USHORT NEAR ConfigureUnit         ( NPATBL npAT, USHORT AdapterId, USHORT UnitId );
  123. VOID   NEAR GetATAPIUnits         ();
  124. USHORT NEAR CheckController       ( NPATBL npAT );
  125. USHORT NEAR CheckSectorReg        ( NPATBL npAT );
  126. VOID   NEAR SelectUnit            ( NPACB npACB, USHORT UnitId );
  127. USHORT FAR  CheckReady            ( NPACB npACB );
  128. USHORT NEAR InitSuspendOtherAdd   ( NPACB npACB );
  129. USHORT NEAR InitResumeOtherAdd    ( NPACB npACB );
  130. VOID   FAR  _loadds NotifyIORBDone( PIORB pIORB );                  /*@V153151*/
  131. USHORT NEAR GetIdentifyData       ( NPACB npACB, USHORT UnitId, PBYTE pID );
  132. VOID   FAR  CalibrateTimers       ( NPACB npACB );
  133. VOID   FAR  CalibrateTimer        ( ULONG hCalibrateTimer, ULONG Unused1,
  134.                                                            ULONG Unused2 );
  135.  
  136. typedef
  137. VOID   (FAR *PCV)                 ();
  138.  
  139. ULONG  FAR  CalibrateWorker       ( NPACB npACB, PCV npWorker );
  140. VOID   FAR  ElapsedTimer          ( ULONG hElapsedTimer, ULONG Unused1,
  141.                                                          ULONG Unused2);
  142. VOID   NEAR ResetController       ( NPACB npACB );
  143.  
  144.  
  145. /*
  146. ZDDDDDDDDDDDD?
  147. 3 ATAPIGEN.C 3
  148. @DDDDDDDDDDDDY
  149. */
  150.  
  151. VOID   FAR  IODelay                        ();
  152. VOID   NEAR setmem                         ( PBYTE d, USHORT c, USHORT len );
  153. VOID   NEAR memcopy                        ( PBYTE d, PBYTE s, USHORT len );
  154. VOID   NEAR strncpy                        ( PSZ d, PSZ s, USHORT n );
  155. BOOL   NEAR strncmp                        ( PSZ d, PSZ s, USHORT n );
  156. ULONG  VirtToPhys                          ( PBYTE VirtAddr);
  157. USHORT NEAR SuspendOtherAdd                ( NPACB npACB );
  158. USHORT NEAR ResumeOtherAdd                 ( NPACB npACB );
  159. ULONG  NEAR QueryOtherAdd                  ( NPACB npACB );
  160. VOID   FAR  _loadds NotifySuspendResumeDone( PIORB pIORB );
  161. VOID   NEAR IDECDStr                       ();
  162. USHORT FAR BSY_CLR_DRQ_SET_WAIT            ( NPACB npACB );
  163.  
  164. VOID   NEAR ATAPCompleteInit               ( NPACB npACB );         /*@V151168*/
  165. USHORT FAR  APMEventHandler                ( PAPMEVENT );           /*@V151168*/
  166. USHORT NEAR APMSuspend                     ();                      /*@V151168*/
  167. USHORT NEAR APMResume                      ();                      /*@V151168*/
  168.  
  169.  
  170. /*
  171. ZDDDDDDDDDDDD?
  172. 3 ATAPIORB.C 3
  173. @DDDDDDDDDDDDY
  174. */
  175. typedef PIORB FAR *PPIORB;
  176.  
  177. VOID   FAR _loadds ATAPIADDEntry  ( PIORBH pNewIORB );
  178. PIORB  NEAR PreProcessIORBs( NPACB npACB, PPIORB ppNewIORB );
  179. VOID   NEAR RemoveIORB( PIORB pIORB, PIORB pIORBPrev, PPIORB pIORBFirst );
  180. USHORT NEAR SuspendIORB( NPACB npACB, PIORB pIORB );
  181. USHORT NEAR ResumeIORB( NPACB npACB, PIORB pIORB );
  182. USHORT NEAR ActivateACBCheck( NPACB npACB );
  183. USHORT NEAR Valid_CDB_Length_Check( PIORBH pIORB, NPACB npACB );
  184. UCHAR  NEAR x2BCD ( UCHAR Data );
  185. VOID   NEAR Convert_17B_to_ATAPI( ULONG pPhysData );
  186.  
  187. /*
  188. ZDDDDDDDDDD?
  189. 3 PRINTF.C 3
  190. @DDDDDDDDDDY
  191. */
  192. VOID NEAR sprintf( PSZ s, PSZ fmt, ... );
  193.  
  194. /*
  195. ZDDDDDDDDDDDDD?
  196. 3 dprintf.asm 3
  197. @DDDDDDDDDDDDDY
  198. */
  199.  
  200. VOID NEAR dprintf(CHAR FAR * msg, ...);
  201.