Lines Matching defs:dataQueue

48     IODataQueue *dataQueue = new IODataQueue;
50 if (dataQueue) {
51 if (!dataQueue->initWithCapacity(size)) {
52 dataQueue->release();
53 dataQueue = 0;
57 return dataQueue;
62 IODataQueue *dataQueue = new IODataQueue;
64 if (dataQueue) {
65 if (!dataQueue->initWithEntries(numEntries, entrySize)) {
66 dataQueue->release();
67 dataQueue = 0;
71 return dataQueue;
88 dataQueue = (IODataQueueMemory *)IOMallocAligned(allocSize, PAGE_SIZE);
89 if (dataQueue == 0) {
93 dataQueue->queueSize = size;
94 dataQueue->head = 0;
95 dataQueue->tail = 0;
107 if (dataQueue) {
108 IOFreeAligned(dataQueue, round_page(dataQueue->queueSize + DATA_QUEUE_MEMORY_HEADER_SIZE));
118 const UInt32 head = dataQueue->head; // volatile
119 const UInt32 tail = dataQueue->tail;
126 if ( (tail + entrySize) <= dataQueue->queueSize )
128 entry = (IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail);
135 // The tail can range from 0 to dataQueue->queueSize inclusive.
137 dataQueue->tail += entrySize;
144 dataQueue->queue->size = dataSize;
150 if ( ( dataQueue->queueSize - tail ) >= DATA_QUEUE_ENTRY_HEADER_SIZE )
152 ((IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail))->size = dataSize;
155 memcpy(&dataQueue->queue->data, data, dataSize);
156 dataQueue->tail = entrySize;
170 entry = (IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail);
174 dataQueue->tail += entrySize;
185 || ( dataQueue->head == tail ) ) /* queue was emptied during enqueue() */
236 if (dataQueue != 0) {
237 descriptor = IOMemoryDescriptor::withAddress(dataQueue, dataQueue->queueSize + DATA_QUEUE_MEMORY_HEADER_SIZE, kIODirectionOutIn);