IOCDBlockStorageDevice.h [plain text]
#ifndef _IOCDBLOCKSTORAGEDEVICE_H
#define _IOCDBLOCKSTORAGEDEVICE_H
#include <IOKit/storage/IOCDTypes.h>
#define kIOCDBlockStorageDeviceClass "IOCDBlockStorageDevice"
#ifdef KERNEL
#ifdef __cplusplus
#include <IOKit/storage/IOBlockStorageDevice.h>
#define kIOBlockStorageDeviceTypeCDROM "CDROM"
class IOCDBlockStorageDevice : public IOBlockStorageDevice {
OSDeclareAbstractStructors(IOCDBlockStorageDevice)
protected:
struct ExpansionData { };
ExpansionData * _expansionData;
public:
virtual bool init(OSDictionary * properties);
virtual IOReturn doAsyncReadCD(IOMemoryDescriptor *buffer,
UInt32 block,UInt32 nblks,
CDSectorArea sectorArea,
CDSectorType sectorType,
IOStorageCompletion completion) = 0;
virtual UInt32 getMediaType(void) = 0;
virtual IOReturn readISRC(UInt8 track,CDISRC isrc) = 0;
virtual IOReturn readMCN(CDMCN mcn) = 0;
virtual IOReturn readTOC(IOMemoryDescriptor *buffer) = 0;
virtual IOReturn audioPause(bool pause) = 0;
virtual IOReturn audioPlay(CDMSF timeStart,CDMSF timeStop) = 0;
virtual IOReturn audioScan(CDMSF timeStart,bool reverse) = 0;
virtual IOReturn audioStop() = 0;
virtual IOReturn getAudioStatus(CDAudioStatus *status) = 0;
virtual IOReturn getAudioVolume(UInt8 *leftVolume,UInt8 *rightVolume) = 0;
virtual IOReturn setAudioVolume(UInt8 leftVolume,UInt8 rightVolume) = 0;
virtual IOReturn getSpeed(UInt16 * kilobytesPerSecond);
OSMetaClassDeclareReservedUsed(IOCDBlockStorageDevice, 0);
virtual IOReturn setSpeed(UInt16 kilobytesPerSecond);
OSMetaClassDeclareReservedUsed(IOCDBlockStorageDevice, 1);
virtual IOReturn readTOC(IOMemoryDescriptor *buffer,CDTOCFormat format,
UInt8 msf,UInt8 trackSessionNumber,
UInt16 *actualByteCount);
OSMetaClassDeclareReservedUsed(IOCDBlockStorageDevice, 2);
virtual IOReturn readDiscInfo(IOMemoryDescriptor *buffer,
UInt16 *actualByteCount);
OSMetaClassDeclareReservedUsed(IOCDBlockStorageDevice, 3);
virtual IOReturn readTrackInfo(IOMemoryDescriptor *buffer,UInt32 address,
CDTrackInfoAddressType addressType,
UInt16 *actualByteCount);
OSMetaClassDeclareReservedUsed(IOCDBlockStorageDevice, 4);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 5);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 6);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 7);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 8);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 9);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 10);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 11);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 12);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 13);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 14);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 15);
};
#endif
#endif
#endif