home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Jumpstart / Multimedia Microsoft Jumpstart Version 1.1a (Microsoft).BIN / develpmt / drivers / mscdex / testdrv / request.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-10  |  6.3 KB  |  164 lines

  1. /* FILE: request.h
  2. ** 
  3. ** Copyright 1990 by Microsoft, All Rights Reserved.
  4. ** 
  5. ** Part of TESTDRV, Device Driver Test for MSCDEX compatible CD-ROM
  6. ** 
  7. ** History:
  8. **    7/90      Created -by- JYG 
  9. **    10/1/90   Final (v1.0) -by- JYG
  10. */
  11.  
  12. #ifndef WORD
  13. typedef unsigned short WORD;
  14. typedef unsigned long  DWORD;
  15. typedef unsigned char  BYTE;
  16. #endif
  17.  
  18. /*   *** DEVICE REQUEST CONSTANTS ***   */
  19.  
  20. /*   *** DOS device driver commands ***   */
  21.  
  22. #define DVRQ_INIT           0x00
  23. #define DVRQ_MEDIACHK       0x01
  24. #define DVRQ_BLDBPB         0x02
  25. #define DVRQ_IOCTLI         0x03
  26. #define DVRQ_INPUT          0x04
  27. #define DVRQ_NONDSTI        0x05
  28. #define DVRQ_STATI          0x06
  29. #define DVRQ_FLUSHI         0x07
  30. #define DVRQ_OUTPUT         0x08
  31. #define DVRQ_VOUTPUT        0x09
  32. #define DVRQ_STATO          0x0A
  33. #define DVRQ_FLUSHO         0x0B
  34. #define DVRQ_IOCTLO         0x0C
  35. #define DVRQ_DEVOPEN        0x0D
  36. #define DVRQ_DEVCLOSE       0x0E
  37. #define DVRQ_REM$MED        0x0F
  38. #define DVRQ_BUSYO          0x10
  39.  
  40. /*   *** Extended CDROM device driver requests ***   */
  41.  
  42. #define DVRQ_READL          0x80
  43. #define DVRQ_READLNB        0x81
  44. #define DVRQ_READLPRE       0x82
  45. #define DVRQ_SEEK           0x83
  46. #define DVRQ_PLAY           0x84
  47. #define DVRQ_STOP           0x85
  48. #define DVRQ_WRITEL         0x86
  49. #define DVRQ_WRITELV        0x87
  50. #define DVRQ_RESUME         0x88
  51.  
  52. /*   *** Ioctl Input commands ***   */
  53.  
  54. #define IOI_ret_addr            0x00
  55. #define IOI_loc_head            0x01
  56. #define IOI_ioquery             0x02
  57. #define IOI_err_stats           0x03
  58. #define IOI_audio_info          0x04
  59. #define IOI_rd_drv_bytes        0x05
  60. #define IOI_dev_status          0x06
  61. #define IOI_ret_sectsize        0x07
  62. #define IOI_ret_volsize         0x08
  63. #define IOI_media_changed       0x09
  64. #define IOI_audio_dsk_inf       0x0A
  65. #define IOI_audio_trk_inf       0x0B
  66. #define IOI_audio_qch_inf       0x0C
  67. #define IOI_audio_subinfo       0x0D
  68. #define IOI_upc_code            0x0E
  69. #define IOI_audio_status        0x0F
  70.  
  71.  
  72. /*   ***  Ioctl Output commands  *** */
  73.  
  74. #define IOO_eject_disc          0x00
  75. #define IOO_lock_door           0x01
  76. #define IOO_reset_drv           0x02
  77. #define IOO_set_audio_ch_ctl    0x03
  78. #define IOO_wr_drv_bytes        0x04
  79. #define IOO_close_tray          0x05
  80.  
  81. /*
  82. ** Request prototypes and macros
  83. */
  84.  
  85. #define WDvRqReadL(drv,xfer,start,num,addrmode,mode,ilsize,ilskip) \
  86.     WDvRqReadWriteL(drv,DVRQ_READL,xfer,start,num,addrmode,mode,ilsize,ilskip)
  87. #define WDvRqReadLPre(drv,start,num,addrmode,mode,ilsize,ilskip) \
  88.     WDvRqReadWriteL(drv,DVRQ_READLPRE,0,start,num,addrmode,mode,ilsize,ilskip)
  89. #define WDvRqWriteL(drv,xfer,start,num,addrmode,mode,ilsize,ilskip) \
  90.     WDvRqReadWriteL(drv,DVRQ_WRITEL,xfer,start,num,addrmode,mode,ilsize,ilskip)
  91. #define WDvRqWriteLV(drv,start,num,addrmode,mode,ilsize,ilskip) \
  92.     WDvRqReadWriteL(drv,DVRQ_WRITELV,xfer,start,num,addrmode,mode,ilsize,ilskip)
  93.  
  94. #define WDvRqMedChk(drv)        WDvRqSimple(drv,DVRQ_MEDIACHK)
  95. #define WDvRqBldBPB(drv)        WDvRqSimple(drv,DVRQ_BLDBPB)
  96. #define WDvRqInput(drv)         WDvRqSimple(drv,DVRQ_INPUT)
  97. #define WDvRqNonDistI(drv)      WDvRqSimple(drv,DVRQ_NONDSTI)
  98. #define WDvRqInStat(drv)        WDvRqSimple(drv,DVRQ_STATI)
  99. #define WDvRqOutput(drv)        WDvRqSimple(drv,DVRQ_OUTPUT)
  100. #define WDvRqOutputVer(drv)     WDvRqSimple(drv,DVRQ_VOUTPUT)
  101. #define WDvRqStat(drv)          WDvRqSimple(drv,DVRQ_STATO)
  102. #define WDvRqBusy(drv)          WDvRqSimple(drv,DVRQ_BUSYO)
  103. #define WDvRqRemMedia(drv)      WDvRqSimple(drv,DVRQ_REM$MED)
  104. #define WDvRqStop(drv)          WDvRqSimple(drv,DVRQ_STOP)
  105. #define WDvRqResume(drv)        WDvRqSimple(drv,DVRQ_RESUME)
  106. #define WDvRqFlushI(drv)        WDvRqSimple(drv,DVRQ_FLUSHI)
  107. #define WDvRqFlushO(drv)        WDvRqSimple(drv,DVRQ_FLUSHO)
  108. #define WDvRqOpen(drv)          WDvRqSimple(drv,DVRQ_DEVOPEN)
  109. #define WDvRqClose(drv)         WDvRqSimple(drv,DVRQ_DEVCLOSE)
  110.  
  111. #define WDvRqIoiErrStat(drv)    WDvRqIoiSimple(drv,IOI_err_stats)
  112.  
  113. #define WDvRqIoiAudStat(drv,astat)\
  114.     ioctl(drv,(BYTE *)(astat),DVRQ_IOCTLI,IOI_audio_status,\
  115.     sizeof(AudStat_Rec))
  116. #define WDvRqIoiUPCCode(drv,upc)\
  117.     ioctl(drv,(BYTE *)(upc),DVRQ_IOCTLI,IOI_upc_code,sizeof(UPCCode_Rec))
  118. #define WDvRqIoiQinfo(drv,qinfo)\
  119.     ioctl(drv,(BYTE *)(qinfo),DVRQ_IOCTLI,IOI_audio_qch_inf,\
  120.     sizeof(QchanInfo_Rec))
  121. #define WDvRqIoiDiskInfo(drv,pInfo) \
  122.     ioctl(drv,(BYTE *)(pInfo),DVRQ_IOCTLI,IOI_audio_dsk_inf,\
  123.     sizeof(DiskInfo_Rec))
  124. #define WDvRqIoiDrvBytes(drv,pDrvBytes) \
  125.     ioctl(drv,(BYTE *)(pDrvBytes),DVRQ_IOCTLI,IOI_rd_drv_bytes,\
  126.     sizeof(DrvBytes_Rec))
  127.  
  128. #define WDvRqIoiAudInfo(drv,pAud) \
  129.     ioctl(drv,(BYTE *)(pAud),DVRQ_IOCTLI,IOI_audio_info,\
  130.     sizeof(AudInfo_Rec))
  131.  
  132. #define WDvRqIooAudInfo(drv,ainfo) \
  133.     ioctl(drv,(BYTE *)ainfo,DVRQ_IOCTLO,IOO_set_audio_ch_ctl,\
  134.         sizeof(AudInfo_Rec))
  135.  
  136. extern WORD WDvRqInit(Dev_List *drv,BYTE _far *endaddr,BYTE _far *pBPB);
  137. extern WORD WDvRqIoiRaddr(Dev_List *drv,DWORD *pAddr);
  138. extern WORD WDvRqIoiLocHead(Dev_List *drv,BYTE addrmode,DWORD *drvhead);
  139. extern WORD WDvRqIoiSimple(Dev_List *drv,BYTE chCall);
  140. extern WORD WDvRqIooSimple(Dev_List *drv,BYTE chCall);
  141. extern WORD WDvRqIoiDevStat(Dev_List *drv,DWORD *pParams);
  142. extern WORD WDvRqIoiSectSize(Dev_List *drv,BYTE rdmode,WORD *wSize);
  143. extern WORD WDvRqIoiVolSize(Dev_List *drv,DWORD *wSize);
  144. extern WORD WDvRqIoiMedChng(Dev_List *drv,char *pMbyte);
  145. extern WORD WDvRqIoiTnoInfo(Dev_List *drv,BYTE tno,struct TnoInfo_Rec *trackinf);
  146. extern WORD WDvRqIoiSubChInfo(Dev_List *drv,DWORD frameAddr,BYTE _far *xfer,
  147.    DWORD nosects);
  148. extern WORD WDvRqIooEject(Dev_List *drv);
  149. extern WORD WDvRqIooLockDoor(Dev_List *drv,BYTE fcn);
  150. extern WORD WDvRqIooReset(Dev_List *drv);
  151. extern WORD WDvRqIooDrvBytes(Dev_List *drv);
  152. extern WORD WDvRqIooCloseTray(Dev_List *drv);
  153. extern WORD WDvRqReadWriteL(Dev_List *drv,BYTE cmd,BYTE _far *xfer,
  154.         DWORD start,WORD num,BYTE addrmode,BYTE mode,BYTE ilsize,BYTE ilskip);
  155. extern WORD WDvRqSeek(Dev_List *drv,DWORD start,BYTE mode);
  156. extern WORD WDvRqPlay(Dev_List *drv,DWORD start,DWORD num,BYTE mode);
  157. extern WORD WDvRqSimple(Dev_List *drv,BYTE cmd);
  158. extern WORD ioctl( Dev_List *drv,BYTE *xbuf,BYTE iocmd,BYTE cmd,BYTE cmdlen );
  159.  
  160. // send.asm
  161.  
  162. extern void send_req(ReadWriteL_Hdr _far *, Dev_Hdr _far * );
  163.  
  164.