#ifndef _IOKIT_HID_IOHIDEVENTQUEUE_H
#define _IOKIT_HID_IOHIDEVENTQUEUE_H
#include <IOKit/IOSharedDataQueue.h>
#include <IOKit/IOLocks.h>
#include "IOHIDKeys.h"
#include "IOHIDElementPrivate.h"
#define DEFAULT_HID_ENTRY_SIZE sizeof(IOHIDElementValue)+ sizeof(void *)
#define MIN_HID_QUEUE_CAPACITY 16384
class IOHIDEventQueue: public IOSharedDataQueue
{
OSDeclareDefaultStructors( IOHIDEventQueue )
protected:
IOOptionBits _state;
IOLock * _lock;
UInt32 _currentEntrySize;
UInt32 _maxEntrySize;
UInt32 _numEntries;
OSSet * _elementSet;
IOMemoryDescriptor * _descriptor;
IOHIDQueueOptionsType _options;
struct ExpansionData { };
ExpansionData * _reserved;
public:
static IOHIDEventQueue * withCapacity( UInt32 size );
static IOHIDEventQueue * withEntries( UInt32 numEntries,
UInt32 entrySize );
virtual Boolean initWithEntries(UInt32 numEntries, UInt32 entrySize);
virtual void free();
virtual Boolean enqueue( void * data, UInt32 dataSize );
virtual void start();
virtual void stop();
virtual Boolean isStarted();
virtual void setOptions(IOHIDQueueOptionsType flags);
virtual IOHIDQueueOptionsType getOptions();
virtual void enable();
virtual void disable();
virtual void addElement( IOHIDElementPrivate * element );
virtual void removeElement( IOHIDElementPrivate * element );
virtual UInt32 getEntrySize ();
virtual IOMemoryDescriptor *getMemoryDescriptor();
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 0);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 1);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 2);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 3);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 4);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 5);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 6);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 7);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 8);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 9);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 10);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 11);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 12);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 13);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 14);
OSMetaClassDeclareReservedUnused(IOHIDEventQueue, 15);
};
#endif