IOATAPIDVDDriveNub.cpp [plain text]
#include <IOKit/IOLib.h>
#include <IOKit/storage/IODVDBlockStorageDevice.h>
#include <IOKit/storage/ata/IOATAPIDVDDriveNub.h>
#include <IOKit/storage/ata/IOATAPIDVDDrive.h>
class IOMemoryDescriptor;
#define super IODVDBlockStorageDevice
OSDefineMetaClassAndStructors(IOATAPIDVDDriveNub, IODVDBlockStorageDevice)
bool
IOATAPIDVDDriveNub::attach(IOService * provider)
{
if (!super::attach(provider))
return false;
_provider = OSDynamicCast(IOATAPIDVDDrive, provider);
if (_provider == 0) {
IOLog("IOATAPIDVDDriveNub: attach; wrong provider type!\n");
return false;
}
return true;
}
void
IOATAPIDVDDriveNub::detach(IOService * provider)
{
if (_provider == provider)
_provider = 0;
super::detach(provider);
}
IOReturn
IOATAPIDVDDriveNub::audioPlay(CDMSF timeStart, CDMSF timeStop)
{
return _provider->audioPlay(timeStart, timeStop);
}
IOReturn
IOATAPIDVDDriveNub::audioPause(bool pause)
{
return _provider->audioPause(pause);
}
IOReturn
IOATAPIDVDDriveNub::audioScan(CDMSF timeStart, bool reverse)
{
return kIOReturnUnsupported;
}
IOReturn IOATAPIDVDDriveNub::audioStop()
{
return _provider->audioStop();
}
IOReturn IOATAPIDVDDriveNub::doAsyncReadCD(IOMemoryDescriptor * buffer,
UInt32 block,
UInt32 nblks,
CDSectorArea sectorArea,
CDSectorType sectorType,
IOStorageCompletion completion)
{
return _provider->doAsyncReadCD(buffer,
block,
nblks,
sectorArea,
sectorType,
completion);
}
IOReturn
IOATAPIDVDDriveNub::doAsyncReadWrite(IOMemoryDescriptor * buffer,
UInt32 block,
UInt32 nblks,
IOStorageCompletion completion)
{
return _provider->doAsyncReadWrite(buffer, block, nblks, completion);
}
IOReturn
IOATAPIDVDDriveNub::doSyncReadWrite(IOMemoryDescriptor * buffer,
UInt32 block,
UInt32 nblks)
{
return _provider->doSyncReadWrite(buffer, block, nblks);
}
IOReturn
IOATAPIDVDDriveNub::doEjectMedia()
{
return _provider->doEjectMedia();
}
IOReturn
IOATAPIDVDDriveNub::doFormatMedia(UInt64 byteCapacity)
{
return _provider->doFormatMedia(byteCapacity);
}
UInt32
IOATAPIDVDDriveNub::doGetFormatCapacities(UInt64 * capacities,
UInt32 capacitiesMaxCount) const
{
return _provider->doGetFormatCapacities(capacities, capacitiesMaxCount);
}
IOReturn
IOATAPIDVDDriveNub::doLockUnlockMedia(bool doLock)
{
return _provider->doLockUnlockMedia(doLock);
}
IOReturn
IOATAPIDVDDriveNub::doSynchronizeCache()
{
return _provider->doSynchronizeCache();
}
IOReturn
IOATAPIDVDDriveNub::getAudioStatus(CDAudioStatus * status)
{
return _provider->getAudioStatus(status);
}
IOReturn
IOATAPIDVDDriveNub::getAudioVolume(UInt8 * leftVolume, UInt8 * rightVolume)
{
return _provider->getAudioVolume(leftVolume, rightVolume);
}
UInt32
IOATAPIDVDDriveNub::getMediaType()
{
return _provider->getMediaType();
}
char *
IOATAPIDVDDriveNub::getVendorString()
{
return _provider->getVendorString();
}
char *
IOATAPIDVDDriveNub::getProductString()
{
return _provider->getProductString();
}
char *
IOATAPIDVDDriveNub::getRevisionString()
{
return _provider->getRevisionString();
}
char *
IOATAPIDVDDriveNub::getAdditionalDeviceInfoString()
{
return _provider->getAdditionalDeviceInfoString();
}
IOReturn
IOATAPIDVDDriveNub::readISRC(UInt8 track, CDISRC isrc)
{
return _provider->readISRC(track, isrc);
}
IOReturn
IOATAPIDVDDriveNub::readMCN(CDMCN mcn)
{
return _provider->readMCN(mcn);
}
IOReturn
IOATAPIDVDDriveNub::readTOC(IOMemoryDescriptor * buffer)
{
return _provider->readTOC(buffer);
}
IOReturn
IOATAPIDVDDriveNub::reportBlockSize(UInt64 * blockSize)
{
return _provider->reportBlockSize(blockSize);
}
IOReturn
IOATAPIDVDDriveNub::reportEjectability(bool * isEjectable)
{
return _provider->reportEjectability(isEjectable);
}
IOReturn
IOATAPIDVDDriveNub::reportKey(IOMemoryDescriptor * buffer,
const DVDKeyClass keyClass,
const UInt32 lba,
const UInt8 agid,
const DVDKeyFormat keyFormat)
{
return _provider->reportKey(buffer, keyClass, lba, agid, keyFormat);
}
IOReturn
IOATAPIDVDDriveNub::sendKey(IOMemoryDescriptor * buffer,
const DVDKeyClass keyClass,
const UInt8 agid,
const DVDKeyFormat keyFormat)
{
return _provider->sendKey(buffer, keyClass, agid, keyFormat);
}
IOReturn
IOATAPIDVDDriveNub::reportLockability(bool * isLockable)
{
return _provider->reportLockability(isLockable);
}
IOReturn
IOATAPIDVDDriveNub::reportPollRequirements(bool * pollIsRequired,
bool * pollIsExpensive)
{
return _provider->reportPollRequirements(pollIsRequired, pollIsExpensive);
}
IOReturn
IOATAPIDVDDriveNub::reportMaxReadTransfer(UInt64 blockSize, UInt64 * max)
{
return _provider->reportMaxReadTransfer(blockSize, max);
}
IOReturn
IOATAPIDVDDriveNub::reportMaxValidBlock(UInt64 * maxBlock)
{
return _provider->reportMaxValidBlock(maxBlock);
}
IOReturn
IOATAPIDVDDriveNub::reportMaxWriteTransfer(UInt64 blockSize, UInt64 * max)
{
return _provider->reportMaxWriteTransfer(blockSize, max);
}
IOReturn
IOATAPIDVDDriveNub::reportMediaState(bool * mediaPresent, bool * changed)
{
return _provider->reportMediaState(mediaPresent, changed);
}
IOReturn
IOATAPIDVDDriveNub::reportRemovability(bool * isRemovable)
{
return _provider->reportRemovability(isRemovable);
}
IOReturn
IOATAPIDVDDriveNub::reportWriteProtection(bool * isWriteProtected)
{
return _provider->reportWriteProtection(isWriteProtected);
}
IOReturn
IOATAPIDVDDriveNub::setAudioVolume(UInt8 leftVolume, UInt8 rightVolume)
{
return _provider->setAudioVolume(leftVolume, rightVolume);
}