• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/xnu-2422.115.4/iokit/Kernel/

Lines Matching refs:dataQueue

49     IODataQueue *dataQueue = new IODataQueue;
51 if (dataQueue) {
52 if (!dataQueue->initWithCapacity(size)) {
53 dataQueue->release();
54 dataQueue = 0;
58 return dataQueue;
63 IODataQueue *dataQueue = new IODataQueue;
65 if (dataQueue) {
66 if (!dataQueue->initWithEntries(numEntries, entrySize)) {
67 dataQueue->release();
68 dataQueue = 0;
72 return dataQueue;
93 dataQueue = (IODataQueueMemory *)IOMallocAligned(allocSize, PAGE_SIZE);
94 if (dataQueue == 0) {
98 dataQueue->queueSize = size;
99 dataQueue->head = 0;
100 dataQueue->tail = 0;
122 if (dataQueue) {
123 IOFreeAligned(dataQueue, round_page(dataQueue->queueSize + DATA_QUEUE_MEMORY_HEADER_SIZE));
133 const UInt32 head = dataQueue->head; // volatile
134 const UInt32 tail = dataQueue->tail;
142 // Check for underflow of (dataQueue->queueSize - tail)
143 if (dataQueue->queueSize < tail) {
151 ((tail + entrySize) <= dataQueue->queueSize) )
153 entry = (IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail);
160 // The tail can range from 0 to dataQueue->queueSize inclusive.
162 OSAddAtomic(entrySize, (SInt32 *)&dataQueue->tail);
169 dataQueue->queue->size = dataSize;
175 if ( ( dataQueue->queueSize - tail ) >= DATA_QUEUE_ENTRY_HEADER_SIZE )
177 ((IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail))->size = dataSize;
180 memcpy(&dataQueue->queue->data, data, dataSize);
181 OSCompareAndSwap(dataQueue->tail, entrySize, &dataQueue->tail);
195 entry = (IODataQueueEntry *)((UInt8 *)dataQueue->queue + tail);
199 OSAddAtomic(entrySize, (SInt32 *)&dataQueue->tail);
210 || ( dataQueue->head == tail ) ) /* queue was emptied during enqueue() */
262 if (dataQueue != 0) {
263 descriptor = IOMemoryDescriptor::withAddress(dataQueue, dataQueue->queueSize + DATA_QUEUE_MEMORY_HEADER_SIZE, kIODirectionOutIn);