/* cdparam.h */ #pragma options align=mac68k typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; Byte status; Byte play; Byte control; Byte minute; Byte second; Byte block; Byte unused[16]; } CDCntrlParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; short typeOfTOCCall; Ptr tocBuffer; short bufLen; Byte startTrack; Byte unused[13]; } CDTOCParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; short playAddrFormat; Byte isZero; Byte absMin; Byte absSec; Byte absBlock; short stopAddrFlag; short playMode; Byte unused[12]; } CDSrchPlayParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; long pauseState; Byte unused[18]; } CDPauseParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; short trackFormat; Byte isZero[3]; Byte trackNum; short stopAddrFlag; short playMode; Byte unused[12]; } CDTrackParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; Byte audioStatus; Byte playMode; Byte ctrlField; Byte absMin; Byte absSec; Byte absBlock; Byte unused[16]; } CDStatusParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; short track; Byte wrProtect; Byte diskInPlace; Byte installed; Byte numSides; long dqL; short dqT; short dQDrive; /* drive number */ short dQRefNum; /* drive ref num */ short dQFSID; Byte twoSideFmt; Byte needsFlush; Byte diskErrors; Byte unused[3]; } CDDiskParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; Byte leftVol; Byte rightVol; short unused[9]; } CDVolumeParam; typedef struct { QElemPtr qLink; short qType; short ioTrap; Ptr ioCmdAddr; IOCompletionUPP ioCompletion; OSErr ioResult; StringPtr ioNamePtr; short ioVRefNum; short ioRefNum; short csCode; short csParam[11]; } CDGenericParam; typedef struct { unsigned char extDev; // SCSI = Target (upper 5 bits) // SCSI = LUN (lower 3 bits) // ATAPI = Bus unsigned char partition; // Unused unsigned char SIMSlot; // SCSI = Slot // ATAPI = 0x20 (internal ATA) unsigned char SIMsRSRC; // SCSI = sRsrcID // ATAPI = 0 (unused) } DriverGestaltBootResponse; #define driverGestaltSyncResponse 'sync' // True if the driver only behaves synchronously. #define driverGestaltVersResponse 'vers' // version number of the driver (First 4 bytes of // the vers #1 resource). #define driverGestaltIntfResponse 'intf' // Physical interface to device. #define driverGestaltDevTResponse 'devt' // Type of device the driver is driving. #define driverGestaltBootResponse 'boot' // PRAM value to designate this driver/drive. Valid // only for ATAPI drives or when SCSI Manager // 4.3 is active. #pragma options align=reset