AppleUHCIListElement.h [plain text]
#ifndef _IOKIT_AppleUHCIListElement_H
#define _IOKIT_AppleUHCIListElement_H
#include <libkern/c++/OSObject.h>
#include <IOKit/usb/IOUSBControllerListElement.h>
#include "AppleUSBUHCI.h"
#include "UHCI.h"
class AppleUHCIQueueHead : public IOUSBControllerListElement
{
OSDeclareDefaultStructors(AppleUHCIQueueHead)
private:
public:
static AppleUHCIQueueHead *WithSharedMemory(UHCIQueueHeadSharedPtr sharedLogical, IOPhysicalAddress sharedPhysical);
virtual void SetPhysicalLink(IOPhysicalAddress next);
virtual IOPhysicalAddress GetPhysicalLink(void);
virtual IOPhysicalAddress GetPhysicalAddrWithType(void);
virtual void print(int level);
UHCIQueueHeadSharedPtr GetSharedLogical(void);
UInt16 functionNumber;
UInt16 endpointNumber;
UInt16 speed;
UInt16 maxPacketSize;
UInt16 pollingRate; UInt8 direction;
UInt8 type; UInt8 interruptSlot; bool stalled;
bool aborting;
AppleUHCITransferDescriptor *firstTD; AppleUHCITransferDescriptor *lastTD;
};
#define kQHTypeDummy 0xDD
class AppleUHCITransferDescriptor : public IOUSBControllerListElement
{
OSDeclareDefaultStructors(AppleUHCITransferDescriptor)
private:
public:
static AppleUHCITransferDescriptor *WithSharedMemory(UHCITransferDescriptorSharedPtr sharedLogical, IOPhysicalAddress sharedPhysical);
virtual void SetPhysicalLink(IOPhysicalAddress next);
virtual IOPhysicalAddress GetPhysicalLink(void);
virtual IOPhysicalAddress GetPhysicalAddrWithType(void);
virtual void print(int level);
UHCITransferDescriptorSharedPtr GetSharedLogical(void);
UHCIAlignmentBuffer *alignBuffer; IOUSBCommand *command; IOMemoryDescriptor *logicalBuffer;
AppleUHCIQueueHead *pQH; bool callbackOnTD; bool multiXferTransaction; bool finalXferInTransaction;
UInt32 lastFrame; UInt32 lastRemaining; UInt16 direction;
};
class AppleUHCIIsochTransferDescriptor : public IOUSBControllerIsochListElement
{
OSDeclareDefaultStructors(AppleUHCIIsochTransferDescriptor)
public:
static AppleUHCIIsochTransferDescriptor *WithSharedMemory(UHCITransferDescriptorSharedPtr sharedLogical, IOPhysicalAddress sharedPhysical);
virtual void SetPhysicalLink(IOPhysicalAddress next);
virtual IOPhysicalAddress GetPhysicalLink(void);
virtual IOPhysicalAddress GetPhysicalAddrWithType(void);
virtual IOReturn UpdateFrameList(AbsoluteTime timeStamp);
virtual IOReturn Deallocate(IOUSBControllerV2 *uim);
virtual void print(int level);
UHCITransferDescriptorSharedPtr GetSharedLogical(void);
UHCIAlignmentBuffer *alignBuffer; IOMemoryDescriptor *pBuffer;
IOReturn frStatus;
};
#endif