Lines Matching defs:pBuf

85 RTDECL(void) RTCircBufDestroy(PRTCIRCBUF pBuf)
88 if (!pBuf)
90 AssertPtr(pBuf);
91 RTMemFree(pBuf->pvBuf);
92 RTMemFree(pBuf);
96 RTDECL(void) RTCircBufReset(PRTCIRCBUF pBuf)
99 AssertPtr(pBuf);
101 pBuf->offRead = 0;
102 pBuf->offWrite = 0;
103 pBuf->cbUsed = 0;
104 pBuf->fReading = false;
105 pBuf->fWriting = false;
109 RTDECL(size_t) RTCircBufFree(PRTCIRCBUF pBuf)
112 AssertPtrReturn(pBuf, 0);
114 return pBuf->cbBuf - ASMAtomicReadZ(&pBuf->cbUsed);
118 RTDECL(size_t) RTCircBufUsed(PRTCIRCBUF pBuf)
121 AssertPtrReturn(pBuf, 0);
123 return ASMAtomicReadZ(&pBuf->cbUsed);
126 RTDECL(size_t) RTCircBufSize(PRTCIRCBUF pBuf)
129 AssertPtrReturn(pBuf, 0);
131 return pBuf->cbBuf;
134 RTDECL(bool) RTCircBufIsReading(PRTCIRCBUF pBuf)
137 AssertPtrReturn(pBuf, 0);
139 return ASMAtomicReadBool(&pBuf->fReading);
142 RTDECL(bool) RTCircBufIsWriting(PRTCIRCBUF pBuf)
145 AssertPtrReturn(pBuf, 0);
147 return ASMAtomicReadBool(&pBuf->fWriting);
150 RTDECL(void) RTCircBufAcquireReadBlock(PRTCIRCBUF pBuf, size_t cbReqSize, void **ppvStart, size_t *pcbSize)
153 AssertPtr(pBuf);
162 size_t cbUsed = ASMAtomicReadZ(&pBuf->cbUsed);
167 size_t cbSize = RT_MIN(cbReqSize, RT_MIN(pBuf->cbBuf - pBuf->offRead, cbUsed));
172 *ppvStart = (char *)pBuf->pvBuf + pBuf->offRead;
175 ASMAtomicWriteBool(&pBuf->fReading, true);
181 RTDECL(void) RTCircBufReleaseReadBlock(PRTCIRCBUF pBuf, size_t cbSize)
184 AssertPtr(pBuf);
187 pBuf->offRead = (pBuf->offRead + cbSize) % pBuf->cbBuf;
189 ASMAtomicSubZ(&pBuf->cbUsed, cbSize);
190 ASMAtomicWriteBool(&pBuf->fReading, false);
194 RTDECL(void) RTCircBufAcquireWriteBlock(PRTCIRCBUF pBuf, size_t cbReqSize, void **ppvStart, size_t *pcbSize)
197 AssertPtr(pBuf);
206 size_t cbFree = pBuf->cbBuf - ASMAtomicReadZ(&pBuf->cbUsed);
211 size_t cbSize = RT_MIN(cbReqSize, RT_MIN(pBuf->cbBuf - pBuf->offWrite, cbFree));
216 *ppvStart = (char*)pBuf->pvBuf + pBuf->offWrite;
219 ASMAtomicWriteBool(&pBuf->fWriting, true);
225 RTDECL(void) RTCircBufReleaseWriteBlock(PRTCIRCBUF pBuf, size_t cbSize)
228 AssertPtr(pBuf);
231 pBuf->offWrite = (pBuf->offWrite + cbSize) % pBuf->cbBuf;
233 ASMAtomicAddZ(&pBuf->cbUsed, cbSize);
234 ASMAtomicWriteBool(&pBuf->fWriting, false);