Changeset 29902 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- May 31, 2010 12:56:31 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PDMAllQueue.cpp
r28800 r29902 79 79 Assert(VALID_PTR(pItem)); 80 80 81 #if 0 /* the paranoid android version: */ 82 void *pvNext; 83 do 84 { 85 pvNext = ASMAtomicUoReadPtr((void * volatile *)&pQueue->CTX_SUFF(pPending)); 86 ASMAtomicUoWritePtr((void * volatile *)&pItem->CTX_SUFF(pNext), pvNext); 87 } while (!ASMAtomicCmpXchgPtr((void * volatile *)&pQueue->CTX_SUFF(pPending), pItem, pvNext)); 88 #else 81 89 PPDMQUEUEITEMCORE pNext; 82 90 do … … 85 93 pItem->CTX_SUFF(pNext) = pNext; 86 94 } while (!ASMAtomicCmpXchgPtr((void * volatile *)&pQueue->CTX_SUFF(pPending), pItem, pNext)); 95 #endif 87 96 88 97 if (!pQueue->pTimer) … … 170 179 } 171 180 172 173 /**174 * Flushes a PDM queue.175 *176 * @param pQueue The queue handle.177 */178 VMMDECL(void) PDMQueueFlush(PPDMQUEUE pQueue)179 {180 Assert(VALID_PTR(pQueue));181 Assert(pQueue->pVMR3);182 PVM pVM = pQueue->CTX_SUFF(pVM);183 184 #if defined(IN_RC) || defined(IN_RING0)185 Assert(pQueue->CTX_SUFF(pVM));186 pVM->pdm.s.CTX_SUFF(pQueueFlush) = pQueue;187 VMMRZCallRing3NoCpu(pVM, VMMCALLRING3_PDM_QUEUE_FLUSH, (uintptr_t)pQueue);188 189 #else /* IN_RING3: */190 VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)PDMR3QueueFlushWorker, 2, pVM, pQueue);191 #endif192 }
Note:
See TracChangeset
for help on using the changeset viewer.