| [8601] | 1 | /*
 | 
|---|
 | 2 |  * OS2CDROM.DMD interface for sending SCSI commands
 | 
|---|
 | 3 |  *
 | 
|---|
 | 4 |  * Based on example code by:
 | 
|---|
 | 5 |  *      (c) 2001 S&T Systemtechnik GmbH                                                     
 | 
|---|
 | 6 |  *                                                                                                          
 | 
|---|
 | 7 |  *      erzeugt:        15.02.01        R.Ihle                                                  
 | 
|---|
 | 8 |  *
 | 
|---|
 | 9 |  * Project Odin Software License can be found in LICENSE.TXT
 | 
|---|
 | 10 |  *
 | 
|---|
 | 11 |  */
 | 
|---|
 | 12 | 
 | 
|---|
 | 13 | #ifndef __CDIO_H
 | 
|---|
 | 14 | #define __CDIO_H
 | 
|---|
 | 15 | 
 | 
|---|
 | 16 | #ifdef  __cplusplus
 | 
|---|
 | 17 |   extern "C" {
 | 
|---|
 | 18 | #endif
 | 
|---|
 | 19 | 
 | 
|---|
 | 20 | extern BOOL fASPIAvailable;
 | 
|---|
 | 21 | 
 | 
|---|
 | 22 | typedef ULONG HCDIO;
 | 
|---|
 | 23 | 
 | 
|---|
 | 24 | #define MAX_CDBLEN          16
 | 
|---|
 | 25 | #define MAX_DRIVES          26
 | 
|---|
 | 26 | 
 | 
|---|
 | 27 | typedef struct
 | 
|---|
 | 28 | {
 | 
|---|
 | 29 |   unsigned      flDirection;                    // direction flag
 | 
|---|
 | 30 |   unsigned      cbCDB;                              // command length
 | 
|---|
 | 31 |   unsigned char arCDB[MAX_CDBLEN];              // actual CdIo command
 | 
|---|
 | 32 | } CDIO_CMD_BUFFER;
 | 
|---|
 | 33 | 
 | 
|---|
 | 34 | #define CMDDIR_OUTPUT           0
 | 
|---|
 | 35 | #define CMDDIR_INPUT            1
 | 
|---|
 | 36 | 
 | 
|---|
 | 37 | BOOL    OSLibCdIoInitialize(void);
 | 
|---|
 | 38 | BOOL    OSLibCdIoTerminate(void);
 | 
|---|
 | 39 | 
 | 
|---|
 | 40 | int     OSLibCdIoGetNumDrives(void);
 | 
|---|
 | 41 | HCDIO   OSLibCdIoGetDevice(int SRB_HaId, int SRB_Target, int SRB_Lun);
 | 
|---|
 | 42 | 
 | 
|---|
 | 43 | BOOL    OSLibCdIoIsSupported(HFILE hDisk);
 | 
|---|
 | 44 | BOOL    OSLibCdIoSendCommand(HCDIO hCdIo, CDIO_CMD_BUFFER *pCmd, void *pData, unsigned cbData);
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | BOOL    OSLibCdIoLoadEjectDisk(HCDIO hCdIo, int fLoad);
 | 
|---|
 | 47 | BOOL    OSLibCdIoResetUnit(HCDIO hCdIo);
 | 
|---|
 | 48 | BOOL    OSLibCdIoUnitReady(HCDIO hCdIo);
 | 
|---|
 | 49 | BOOL    OSLibCdIoInquiry(HCDIO hCdIo, unsigned uPageCode, void *pData, unsigned cbData);
 | 
|---|
 | 50 | BOOL    OSLibCdIoRequestSense(HCDIO hCdIo, void *pData, unsigned cbData);
 | 
|---|
 | 51 | BOOL    OSLibCdIoQueryCapacity(HCDIO hCdIo, unsigned *pctBlocks, unsigned *pcbBlock);
 | 
|---|
 | 52 | BOOL    OSLibCdIoReadBlock(HCDIO hCdIo, unsigned uLBA, void *pData, unsigned cbData);
 | 
|---|
 | 53 | 
 | 
|---|
 | 54 | ULONG   OSLibCdIoQueryDriveList(void);
 | 
|---|
 | 55 | BOOL    OSLibCdIoQueryFullName(char *pchPartName, char *pchFullName, unsigned cbFullName);
 | 
|---|
 | 56 | BOOL    OSLibCdIoQueryVolumeLabel(char chDrive, char *pchLabel, unsigned cbLabel);
 | 
|---|
 | 57 | 
 | 
|---|
 | 58 | #ifdef  __cplusplus
 | 
|---|
 | 59 |   }
 | 
|---|
 | 60 | #endif
 | 
|---|
 | 61 | 
 | 
|---|
 | 62 | #endif
 | 
|---|
 | 63 | 
 | 
|---|
 | 64 | 
 | 
|---|