class AppleUSBCDC : public IOService
{
OSDeclareDefaultStructors(AppleUSBCDC);
private:
bool fTerminate; bool fStopping; UInt8 fConfig; IOCommandGate *fCommandGate;
IOWorkLoop *fWorkLoop;
public:
IOUSBDevice *fpDevice;
UInt8 fbmAttributes;
UInt8 fCacheEaddr[6];
UInt8 fDevClass;
UInt8 fDevSubClass;
UInt8 fDevProtocol;
bool fIAD;
UInt8 fDataInterfaceNumber;
virtual IOService *probe(IOService *provider, SInt32 *score);
virtual bool start(IOService *provider);
virtual void free(void);
virtual void stop(IOService *provider);
virtual IOReturn message(UInt32 type, IOService *provider, void *argument = 0);
virtual IOReturn setProperties( OSObject * properties );
static IOReturn setPropertiesAction( OSObject *owner,void *arg1, void *arg2,void *arg3,void *arg4 );
virtual IOReturn setPropertiesWL( OSObject * properties );
virtual IOCommandGate *getCommandGate() const;
UInt8 Asciihex_to_binary(char c);
virtual IOUSBDevice *getCDCDevice(void);
bool checkDevice(IOUSBDevice *theDevice);
bool initDevice(UInt8 numConfigs);
virtual IOReturn reInitDevice(void);
bool checkACM(IOUSBInterface *Comm, UInt8 cInterfaceNumber, UInt8 dataInterfaceNum);
bool checkECM(IOUSBInterface *Comm, UInt8 cInterfaceNumber, UInt8 dataInterfaceNum);
bool checkWMC(IOUSBInterface *Comm, UInt8 cInterfaceNumber, UInt8 dataInterfaceNum);
bool checkDMM(IOUSBInterface *Comm, UInt8 cInterfaceNumber, UInt8 dataInterfaceNum);
bool checkMBIM(IOUSBInterface *Comm, UInt8 cInterfaceNumber, UInt8 dataInterfaceNum);
virtual bool confirmDriver(UInt8 subClass, UInt8 dataInterface);
virtual bool confirmControl(UInt8 subClass, IOUSBInterface *CInterface);
};