IOUSBControllerListElement.h [plain text]
#ifndef _IOUSBCONTROLLERLISTELEMENT_H
#define _IOUSBCONTROLLERLISTELEMENT_H
#include <libkern/c++/OSObject.h>
#include <IOKit/IOTypes.h>
#include <IOKit/usb/USB.h>
class IOUSBControllerListElement : public OSObject
{
OSDeclareDefaultStructors(IOUSBControllerListElement)
private:
public:
virtual void SetPhysicalLink(IOPhysicalAddress next) = 0;
virtual IOPhysicalAddress GetPhysicalLink(void) = 0;
virtual IOPhysicalAddress GetPhysicalAddrWithType(void) = 0;
virtual void print(int level);
IOPhysicalAddress _sharedPhysical; void * _sharedLogical; IOUSBControllerListElement *_logicalNext;
};
class IOUSBControllerV2; class IOUSBControllerIsochEndpoint;
class IOUSBControllerIsochListElement : public IOUSBControllerListElement
{
OSDeclareDefaultStructors(IOUSBControllerIsochListElement)
private:
public:
virtual void SetPhysicalLink(IOPhysicalAddress next) = 0;
virtual IOPhysicalAddress GetPhysicalLink(void) = 0;
virtual IOPhysicalAddress GetPhysicalAddrWithType(void) = 0;
virtual void print(int level);
IOUSBControllerIsochEndpoint *_pEndpoint;
IOUSBIsocFrame *_pFrames;
IOUSBIsocCompletion _completion;
Boolean _lowLatency;
bool _requestFromRosettaClient; UInt8 _framesInTD; UInt64 _frameNumber; UInt32 _frameIndex; IOUSBControllerIsochListElement *_doneQueueLink;
virtual IOReturn UpdateFrameList(AbsoluteTime timeStamp) = 0;
virtual IOReturn Deallocate(IOUSBControllerV2 *uim) = 0;
};
class IOUSBControllerIsochEndpoint : public OSObject
{
OSDeclareDefaultStructors(IOUSBControllerIsochEndpoint)
public:
virtual bool init();
IOUSBControllerIsochEndpoint *nextEP;
IOUSBControllerIsochListElement *toDoList; IOUSBControllerIsochListElement *toDoEnd; IOUSBControllerIsochListElement *doneQueue; IOUSBControllerIsochListElement *doneEnd; IOUSBControllerIsochListElement *deferredQueue; IOUSBControllerIsochListElement *deferredEnd; UInt64 firstAvailableFrame; UInt32 maxPacketSize;
UInt32 activeTDs; UInt32 onToDoList; UInt32 onDoneQueue; UInt32 scheduledTDs; UInt32 deferredTDs;
UInt32 onProducerQ;
UInt32 onReversedList;
UInt16 inSlot; short functionAddress;
short endpointNumber;
IOReturn accumulatedStatus;
UInt8 interval; UInt8 direction;
bool aborting;
};
#endif