home *** CD-ROM | disk | FTP | other *** search
- /* FILE: request.h
- **
- ** Copyright 1990 by Microsoft, All Rights Reserved.
- **
- ** Part of TESTDRV, Device Driver Test for MSCDEX compatible CD-ROM
- **
- ** History:
- ** 7/90 Created -by- JYG
- ** 10/1/90 Final (v1.0) -by- JYG
- */
-
- #ifndef WORD
- typedef unsigned short WORD;
- typedef unsigned long DWORD;
- typedef unsigned char BYTE;
- #endif
-
- /* *** DEVICE REQUEST CONSTANTS *** */
-
- /* *** DOS device driver commands *** */
-
- #define DVRQ_INIT 0x00
- #define DVRQ_MEDIACHK 0x01
- #define DVRQ_BLDBPB 0x02
- #define DVRQ_IOCTLI 0x03
- #define DVRQ_INPUT 0x04
- #define DVRQ_NONDSTI 0x05
- #define DVRQ_STATI 0x06
- #define DVRQ_FLUSHI 0x07
- #define DVRQ_OUTPUT 0x08
- #define DVRQ_VOUTPUT 0x09
- #define DVRQ_STATO 0x0A
- #define DVRQ_FLUSHO 0x0B
- #define DVRQ_IOCTLO 0x0C
- #define DVRQ_DEVOPEN 0x0D
- #define DVRQ_DEVCLOSE 0x0E
- #define DVRQ_REM$MED 0x0F
- #define DVRQ_BUSYO 0x10
-
- /* *** Extended CDROM device driver requests *** */
-
- #define DVRQ_READL 0x80
- #define DVRQ_READLNB 0x81
- #define DVRQ_READLPRE 0x82
- #define DVRQ_SEEK 0x83
- #define DVRQ_PLAY 0x84
- #define DVRQ_STOP 0x85
- #define DVRQ_WRITEL 0x86
- #define DVRQ_WRITELV 0x87
- #define DVRQ_RESUME 0x88
-
- /* *** Ioctl Input commands *** */
-
- #define IOI_ret_addr 0x00
- #define IOI_loc_head 0x01
- #define IOI_ioquery 0x02
- #define IOI_err_stats 0x03
- #define IOI_audio_info 0x04
- #define IOI_rd_drv_bytes 0x05
- #define IOI_dev_status 0x06
- #define IOI_ret_sectsize 0x07
- #define IOI_ret_volsize 0x08
- #define IOI_media_changed 0x09
- #define IOI_audio_dsk_inf 0x0A
- #define IOI_audio_trk_inf 0x0B
- #define IOI_audio_qch_inf 0x0C
- #define IOI_audio_subinfo 0x0D
- #define IOI_upc_code 0x0E
- #define IOI_audio_status 0x0F
-
-
- /* *** Ioctl Output commands *** */
-
- #define IOO_eject_disc 0x00
- #define IOO_lock_door 0x01
- #define IOO_reset_drv 0x02
- #define IOO_set_audio_ch_ctl 0x03
- #define IOO_wr_drv_bytes 0x04
- #define IOO_close_tray 0x05
-
- /*
- ** Request prototypes and macros
- */
-
- #define WDvRqReadL(drv,xfer,start,num,addrmode,mode,ilsize,ilskip) \
- WDvRqReadWriteL(drv,DVRQ_READL,xfer,start,num,addrmode,mode,ilsize,ilskip)
- #define WDvRqReadLPre(drv,start,num,addrmode,mode,ilsize,ilskip) \
- WDvRqReadWriteL(drv,DVRQ_READLPRE,0,start,num,addrmode,mode,ilsize,ilskip)
- #define WDvRqWriteL(drv,xfer,start,num,addrmode,mode,ilsize,ilskip) \
- WDvRqReadWriteL(drv,DVRQ_WRITEL,xfer,start,num,addrmode,mode,ilsize,ilskip)
- #define WDvRqWriteLV(drv,start,num,addrmode,mode,ilsize,ilskip) \
- WDvRqReadWriteL(drv,DVRQ_WRITELV,xfer,start,num,addrmode,mode,ilsize,ilskip)
-
- #define WDvRqMedChk(drv) WDvRqSimple(drv,DVRQ_MEDIACHK)
- #define WDvRqBldBPB(drv) WDvRqSimple(drv,DVRQ_BLDBPB)
- #define WDvRqInput(drv) WDvRqSimple(drv,DVRQ_INPUT)
- #define WDvRqNonDistI(drv) WDvRqSimple(drv,DVRQ_NONDSTI)
- #define WDvRqInStat(drv) WDvRqSimple(drv,DVRQ_STATI)
- #define WDvRqOutput(drv) WDvRqSimple(drv,DVRQ_OUTPUT)
- #define WDvRqOutputVer(drv) WDvRqSimple(drv,DVRQ_VOUTPUT)
- #define WDvRqStat(drv) WDvRqSimple(drv,DVRQ_STATO)
- #define WDvRqBusy(drv) WDvRqSimple(drv,DVRQ_BUSYO)
- #define WDvRqRemMedia(drv) WDvRqSimple(drv,DVRQ_REM$MED)
- #define WDvRqStop(drv) WDvRqSimple(drv,DVRQ_STOP)
- #define WDvRqResume(drv) WDvRqSimple(drv,DVRQ_RESUME)
- #define WDvRqFlushI(drv) WDvRqSimple(drv,DVRQ_FLUSHI)
- #define WDvRqFlushO(drv) WDvRqSimple(drv,DVRQ_FLUSHO)
- #define WDvRqOpen(drv) WDvRqSimple(drv,DVRQ_DEVOPEN)
- #define WDvRqClose(drv) WDvRqSimple(drv,DVRQ_DEVCLOSE)
-
- #define WDvRqIoiErrStat(drv) WDvRqIoiSimple(drv,IOI_err_stats)
-
- #define WDvRqIoiAudStat(drv,astat)\
- ioctl(drv,(BYTE *)(astat),DVRQ_IOCTLI,IOI_audio_status,\
- sizeof(AudStat_Rec))
- #define WDvRqIoiUPCCode(drv,upc)\
- ioctl(drv,(BYTE *)(upc),DVRQ_IOCTLI,IOI_upc_code,sizeof(UPCCode_Rec))
- #define WDvRqIoiQinfo(drv,qinfo)\
- ioctl(drv,(BYTE *)(qinfo),DVRQ_IOCTLI,IOI_audio_qch_inf,\
- sizeof(QchanInfo_Rec))
- #define WDvRqIoiDiskInfo(drv,pInfo) \
- ioctl(drv,(BYTE *)(pInfo),DVRQ_IOCTLI,IOI_audio_dsk_inf,\
- sizeof(DiskInfo_Rec))
- #define WDvRqIoiDrvBytes(drv,pDrvBytes) \
- ioctl(drv,(BYTE *)(pDrvBytes),DVRQ_IOCTLI,IOI_rd_drv_bytes,\
- sizeof(DrvBytes_Rec))
-
- #define WDvRqIoiAudInfo(drv,pAud) \
- ioctl(drv,(BYTE *)(pAud),DVRQ_IOCTLI,IOI_audio_info,\
- sizeof(AudInfo_Rec))
-
- #define WDvRqIooAudInfo(drv,ainfo) \
- ioctl(drv,(BYTE *)ainfo,DVRQ_IOCTLO,IOO_set_audio_ch_ctl,\
- sizeof(AudInfo_Rec))
-
- extern WORD WDvRqInit(Dev_List *drv,BYTE _far *endaddr,BYTE _far *pBPB);
- extern WORD WDvRqIoiRaddr(Dev_List *drv,DWORD *pAddr);
- extern WORD WDvRqIoiLocHead(Dev_List *drv,BYTE addrmode,DWORD *drvhead);
- extern WORD WDvRqIoiSimple(Dev_List *drv,BYTE chCall);
- extern WORD WDvRqIooSimple(Dev_List *drv,BYTE chCall);
- extern WORD WDvRqIoiDevStat(Dev_List *drv,DWORD *pParams);
- extern WORD WDvRqIoiSectSize(Dev_List *drv,BYTE rdmode,WORD *wSize);
- extern WORD WDvRqIoiVolSize(Dev_List *drv,DWORD *wSize);
- extern WORD WDvRqIoiMedChng(Dev_List *drv,char *pMbyte);
- extern WORD WDvRqIoiTnoInfo(Dev_List *drv,BYTE tno,struct TnoInfo_Rec *trackinf);
- extern WORD WDvRqIoiSubChInfo(Dev_List *drv,DWORD frameAddr,BYTE _far *xfer,
- DWORD nosects);
- extern WORD WDvRqIooEject(Dev_List *drv);
- extern WORD WDvRqIooLockDoor(Dev_List *drv,BYTE fcn);
- extern WORD WDvRqIooReset(Dev_List *drv);
- extern WORD WDvRqIooDrvBytes(Dev_List *drv);
- extern WORD WDvRqIooCloseTray(Dev_List *drv);
- extern WORD WDvRqReadWriteL(Dev_List *drv,BYTE cmd,BYTE _far *xfer,
- DWORD start,WORD num,BYTE addrmode,BYTE mode,BYTE ilsize,BYTE ilskip);
- extern WORD WDvRqSeek(Dev_List *drv,DWORD start,BYTE mode);
- extern WORD WDvRqPlay(Dev_List *drv,DWORD start,DWORD num,BYTE mode);
- extern WORD WDvRqSimple(Dev_List *drv,BYTE cmd);
- extern WORD ioctl( Dev_List *drv,BYTE *xbuf,BYTE iocmd,BYTE cmd,BYTE cmdlen );
-
- // send.asm
-
- extern void send_req(ReadWriteL_Hdr _far *, Dev_Hdr _far * );
-