MMCDeviceUserClientClass.h [plain text]
#ifndef __MMC_DEVICE_USER_CLIENT_CLASS_H__
#define __MMC_DEVICE_USER_CLIENT_CLASS_H__
#include <IOKit/IOCFPlugIn.h>
#include "SCSITaskLib.h"
#include "SCSITaskLibPriv.h"
class MMCDeviceUserClientClass
{
public:
struct InterfaceMap
{
IUnknownVTbl * pseudoVTable;
MMCDeviceUserClientClass * obj;
};
MMCDeviceUserClientClass ( void );
virtual ~MMCDeviceUserClientClass ( void );
protected:
static IOCFPlugInInterface sIOCFPlugInInterface;
InterfaceMap fIOCFPlugInInterface;
static MMCDeviceInterface sMMCDeviceInterface;
InterfaceMap fMMCDeviceInterfaceMap;
CFUUIDRef fFactoryId;
UInt32 fRefCount;
io_service_t fService;
io_connect_t fConnection;
static inline MMCDeviceUserClientClass * getThis ( void * self )
{ return ( MMCDeviceUserClientClass * ) ( ( InterfaceMap * ) self)->obj; };
static HRESULT staticQueryInterface ( void * self, REFIID iid, void **ppv );
virtual HRESULT QueryInterface ( REFIID iid, void **ppv );
static UInt32 staticAddRef ( void * self );
virtual UInt32 AddRef ( void );
static UInt32 staticRelease ( void * self );
virtual UInt32 Release ( void );
static IOReturn staticProbe ( void * self, CFDictionaryRef propertyTable,
io_service_t service, SInt32 * order );
virtual IOReturn Probe ( CFDictionaryRef propertyTable, io_service_t service, SInt32 * order );
static IOReturn staticStart ( void * self, CFDictionaryRef propertyTable, io_service_t service );
virtual IOReturn Start ( CFDictionaryRef propertyTable, io_service_t service );
static IOReturn staticStop ( void * self );
virtual IOReturn Stop ( void );
static IOReturn staticInquiry ( void * self, SCSICmd_INQUIRY_StandardData * inquiryBuffer,
UInt32 inqBufferSize, SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
IOReturn Inquiry ( SCSICmd_INQUIRY_StandardData * inquiryBuffer, UInt32 bufferSize,
SCSITaskStatus * outTaskStatus, SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticTestUnitReady ( void * self,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
IOReturn TestUnitReady ( SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticGetPerformance ( void * self, UInt8 TOLERANCE, UInt8 WRITE, UInt8 EXCEPT,
UInt32 STARTING_LBA, UInt16 MAXIMUM_NUMBER_OF_DESCRIPTORS,
void * buffer, UInt16 bufferSize, SCSITaskStatus * taskStatus,
SCSI_Sense_Data * senseDataBuffer );
virtual IOReturn GetPerformance ( UInt8 TOLERANCE, UInt8 WRITE, UInt8 EXCEPT, UInt32 STARTING_LBA,
UInt16 MAXIMUM_NUMBER_OF_DESCRIPTORS, void * buffer, UInt16 bufferSize,
SCSITaskStatus * taskStatus, SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticGetConfiguration ( void * self, UInt8 RT, UInt16 STARTING_FEATURE_NUMBER,
void * buffer, UInt16 bufferSize, SCSITaskStatus * taskStatus,
SCSI_Sense_Data * senseDataBuffer );
virtual IOReturn GetConfiguration ( UInt8 RT, UInt16 STARTING_FEATURE_NUMBER,
void * buffer, UInt16 bufferSize, SCSITaskStatus * taskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticModeSense10 ( void * self, UInt8 LLBAA, UInt8 DBD, UInt8 PC,
UInt8 PAGE_CODE, void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
virtual IOReturn ModeSense10 ( UInt8 LLBAA, UInt8 DBD, UInt8 PC, UInt8 PAGE_CODE,
void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticSetWriteParametersModePage ( void * self, void * buffer, UInt8 bufferSize,
SCSITaskStatus * taskStatus,
SCSI_Sense_Data * senseDataBuffer );
virtual IOReturn SetWriteParametersModePage ( void * buffer, UInt8 bufferSize,
SCSITaskStatus * taskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticGetTrayState ( void * self, UInt8 * trayState );
IOReturn GetTrayState ( UInt8 * trayState );
static IOReturn staticSetTrayState ( void * self, UInt8 trayState );
IOReturn SetTrayState ( UInt8 trayState );
static IOReturn staticReadTableOfContents ( void * self, UInt8 MSF, UInt8 format,
UInt8 trackSessionNumber,
void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
IOReturn ReadTableOfContents ( UInt8 MSF, UInt8 format, UInt8 trackSessionNumber,
void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticReadDiscInformation ( void * self, void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus, SCSI_Sense_Data * senseDataBuffer);
IOReturn ReadDiscInformation ( void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticReadTrackInformation ( void * self, UInt8 addressNumberType,
UInt32 lbaTrackSessionNumber,
void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
IOReturn ReadTrackInformation ( UInt8 addressNumberType, UInt32 lbaTrackSessionNumber,
void * buffer, UInt16 bufferSize, SCSITaskStatus * outTaskStatus,
SCSI_Sense_Data * senseDataBuffer );
static IOReturn staticReadDVDStructure ( void * self, UInt32 logicalBlockAddress, UInt8 layerNumber,
UInt8 format, void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus, SCSI_Sense_Data * senseDataBuffer );
IOReturn ReadDVDStructure ( UInt32 logicalBlockAddress, UInt8 layerNumber,
UInt8 format, void * buffer, UInt16 bufferSize,
SCSITaskStatus * outTaskStatus, SCSI_Sense_Data * senseDataBuffer );
static SCSITaskDeviceInterface ** staticGetSCSITaskDeviceInterface ( void * self );
SCSITaskDeviceInterface ** GetSCSITaskDeviceInterface ( void );
private:
MMCDeviceUserClientClass ( MMCDeviceUserClientClass &src );
void operator = ( MMCDeviceUserClientClass &src );
public:
static IOCFPlugInInterface ** alloc ( void );
};
#endif