Lines Matching defs:pVBVA

103                                 VBVABUFFER *pVBVA, int32_t cScreen)
107 // LogFlowFunc(("pVBVA %p\n", pVBVA));
113 // LogFunc(("pVBVA %p vbva off 0x%x\n", pVBVA, pCtx->offVRAMBuffer));
115 pVBVA->hostFlags.u32HostEvents = 0;
116 pVBVA->hostFlags.u32SupportedOrders = 0;
117 pVBVA->off32Data = 0;
118 pVBVA->off32Free = 0;
119 memset(pVBVA->aRecords, 0, sizeof (pVBVA->aRecords));
120 pVBVA->indexRecordFirst = 0;
121 pVBVA->indexRecordFree = 0;
122 pVBVA->cbPartialWriteThreshold = 256;
123 pVBVA->cbData = pCtx->cbBuffer - sizeof (VBVABUFFER) + sizeof (pVBVA->au8Data);
127 pCtx->pVBVA = pVBVA;
148 pCtx->pVBVA = NULL;
160 // LogFunc(("flags = 0x%08X\n", pCtx->pVBVA? pCtx->pVBVA->u32HostEvents: -1));
162 if ( pCtx->pVBVA
163 && (pCtx->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED))
170 indexRecordNext = (pCtx->pVBVA->indexRecordFree + 1) % VBVA_MAX_RECORDS;
172 if (indexRecordNext == pCtx->pVBVA->indexRecordFirst)
178 if (indexRecordNext == pCtx->pVBVA->indexRecordFirst)
182 // pCtx->pVBVA->indexRecordFirst, pCtx->pVBVA->indexRecordFree));
187 VBVARECORD *pRecord = &pCtx->pVBVA->aRecords[pCtx->pVBVA->indexRecordFree];
191 pCtx->pVBVA->indexRecordFree = indexRecordNext;
211 Assert(pCtx->pVBVA);
228 static uint32_t vboxHwBufferAvail (const VBVABUFFER *pVBVA)
230 int32_t i32Diff = pVBVA->off32Data - pVBVA->off32Free;
232 return i32Diff > 0? i32Diff: pVBVA->cbData + i32Diff;
263 VBVABUFFER *pVBVA = pCtx->pVBVA;
264 uint32_t u32BytesTillBoundary = pVBVA->cbData - offset;
265 uint8_t *dst = &pVBVA->au8Data[offset];
277 memcpy (&pVBVA->au8Data[0], (uint8_t *)p + u32BytesTillBoundary, i32Diff);
292 VBVABUFFER *pVBVA = pCtx->pVBVA;
293 Assert(pVBVA);
295 if (!pVBVA || pCtx->fHwBufferOverflow)
300 Assert(pVBVA->indexRecordFirst != pVBVA->indexRecordFree);
307 cbHwBufferAvail = vboxHwBufferAvail (pVBVA);
313 // LogFunc(("pVBVA->off32Free %d, pRecord->cbRecord 0x%08X, cbHwBufferAvail %d, cb %d, cbWritten %d\n",
314 // pVBVA->off32Free, pRecord->cbRecord, cbHwBufferAvail, cb, cbWritten));
322 cbHwBufferAvail = vboxHwBufferAvail (pVBVA);
329 if (cbHwBufferAvail <= pVBVA->cbPartialWriteThreshold)
337 cbChunk = cbHwBufferAvail - pVBVA->cbPartialWriteThreshold;
342 Assert(cbChunk <= vboxHwBufferAvail (pVBVA));
344 vboxHwBufferPlaceDataAt (pCtx, (uint8_t *)p + cbWritten, cbChunk, pVBVA->off32Free);
346 pVBVA->off32Free = (pVBVA->off32Free + cbChunk) % pVBVA->cbData;
369 VBVABUFFER *pVBVA = pCtx->pVBVA;
371 if (!pVBVA)
376 if (pVBVA->hostFlags.u32SupportedOrders & (1 << code))