vbox的更動 12984 路徑 trunk/src/VBox/VMM/VMMAll/PDMAllQueue.cpp
- 時間撮記:
- 2008-10-4 下午11:20:58 (16 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMAll/PDMAllQueue.cpp
r11152 r12984 49 49 PDMDECL(PPDMQUEUEITEMCORE) PDMQueueAlloc(PPDMQUEUE pQueue) 50 50 { 51 Assert(VALID_PTR(pQueue) && pQueue->CTX SUFF(pVM));51 Assert(VALID_PTR(pQueue) && pQueue->CTX_SUFF(pVM)); 52 52 PPDMQUEUEITEMCORE pNew; 53 53 uint32_t iNext; … … 58 58 if (i == pQueue->iFreeHead) 59 59 return NULL; 60 pNew = pQueue->aFreeItems[i].CTX SUFF(pItem);60 pNew = pQueue->aFreeItems[i].CTX_SUFF(pItem); 61 61 iNext = (i + 1) % (pQueue->cItems + PDMQUEUE_FREE_SLACK); 62 62 } while (!ASMAtomicCmpXchgU32(&pQueue->iFreeTail, iNext, i)); … … 76 76 PDMDECL(void) PDMQueueInsert(PPDMQUEUE pQueue, PPDMQUEUEITEMCORE pItem) 77 77 { 78 Assert(VALID_PTR(pQueue) && pQueue->CTX SUFF(pVM));78 Assert(VALID_PTR(pQueue) && pQueue->CTX_SUFF(pVM)); 79 79 Assert(VALID_PTR(pItem)); 80 80 … … 82 82 do 83 83 { 84 pNext = pQueue->CTX SUFF(pPending);85 pItem->CTX SUFF(pNext) = pNext;86 } while (!ASMAtomicCmpXchgPtr((void * volatile *)&pQueue->CTX SUFF(pPending), pItem, pNext));84 pNext = pQueue->CTX_SUFF(pPending); 85 pItem->CTX_SUFF(pNext) = pNext; 86 } while (!ASMAtomicCmpXchgPtr((void * volatile *)&pQueue->CTX_SUFF(pPending), pItem, pNext)); 87 87 88 88 if (!pQueue->pTimer) 89 89 { 90 PVM pVM = pQueue->CTX SUFF(pVM);90 PVM pVM = pQueue->CTX_SUFF(pVM); 91 91 Log2(("PDMQueueInsert: VM_FF_PDM_QUEUES %d -> 1\n", VM_FF_ISSET(pVM, VM_FF_PDM_QUEUES))); 92 92 VM_FF_SET(pVM, VM_FF_PDM_QUEUES); … … 114 114 PDMQueueInsert(pQueue, pItem); 115 115 #ifdef IN_GC 116 PVM pVM = pQueue->CTX SUFF(pVM);116 PVM pVM = pQueue->CTX_SUFF(pVM); 117 117 /** @todo figure out where to put this, the next bit should go there too. 118 118 if (NanoMaxDelay) … … 140 140 { 141 141 Assert(VALID_PTR(pQueue)); 142 Assert(pQueue->pVM HC && pQueue->pVMGC);142 Assert(pQueue->pVMR3 && pQueue->pVMRC); 143 143 #ifdef IN_GC 144 144 return pQueue; 145 145 #else 146 return MMHyperCCToRC(pQueue-> pVMHC, pQueue);146 return MMHyperCCToRC(pQueue->CTX_SUFF(pVM), pQueue); 147 147 #endif 148 148 } … … 159 159 { 160 160 Assert(VALID_PTR(pQueue)); 161 Assert(pQueue->pVM HC && pQueue->pVMGC);161 Assert(pQueue->pVMR3 && pQueue->pVMR0); 162 162 #ifdef IN_RING0 163 163 return pQueue; 164 164 #else 165 return MMHyperCCToR0(pQueue->CTX SUFF(pVM), pQueue);165 return MMHyperCCToR0(pQueue->CTX_SUFF(pVM), pQueue); 166 166 #endif 167 167 } … … 176 176 { 177 177 Assert(VALID_PTR(pQueue)); 178 Assert(pQueue->pVMHC && pQueue->pVMGC); 179 PVM pVM = CTXSUFF(pQueue->pVM); 178 Assert(pQueue->pVMR3); 179 PVM pVM = pQueue->CTX_SUFF(pVM); 180 180 181 #ifdef IN_GC 181 pVM->pdm.s.CTXSUFF(pQueueFlush) = pQueue; 182 Assert(pQueue->pVMRC); 183 pVM->pdm.s.CTX_SUFF(pQueueFlush) = pQueue; 182 184 VMMGCCallHost(pVM, VMMCALLHOST_PDM_QUEUE_FLUSH, (uintptr_t)pQueue); 185 183 186 #elif defined(IN_RING0) 184 pVM->pdm.s.CTXSUFF(pQueueFlush) = pQueue; 187 Assert(pQueue->pVMR0); 188 pVM->pdm.s.CTX_SUFF(pQueueFlush) = pQueue; 185 189 VMMR0CallHost(pVM, VMMCALLHOST_PDM_QUEUE_FLUSH, (uintptr_t)pQueue); 190 186 191 #else /* IN_RING3: */ 187 192 PVMREQ pReq;
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器