Changeset 39350 in vbox
- Timestamp:
- Nov 17, 2011 3:07:24 PM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 74932
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/include/iprt/circbuf.h ¶
r37210 r39350 92 92 RTDECL(size_t) RTCircBufSize(PRTCIRCBUF pBuf); 93 93 94 RTDECL(bool) RTCircBufIsReading(PRTCIRCBUF pBuf); 95 RTDECL(bool) RTCircBufIsWriting(PRTCIRCBUF pBuf); 96 94 97 /** 95 98 * Acquire a block of the circular buffer for reading. -
TabularUnified trunk/include/iprt/mangling.h ¶
r39046 r39350 279 279 # define RTCircBufDestroy RT_MANGLER(RTCircBufDestroy) 280 280 # define RTCircBufFree RT_MANGLER(RTCircBufFree) 281 # define RTCircBufIsReading RT_MANGLER(RTCircBufIsReading) 282 # define RTCircBufIsWriting RT_MANGLER(RTCircBufIsWriting) 281 283 # define RTCircBufReleaseReadBlock RT_MANGLER(RTCircBufReleaseReadBlock) 282 284 # define RTCircBufReleaseWriteBlock RT_MANGLER(RTCircBufReleaseWriteBlock) -
TabularUnified trunk/src/VBox/Runtime/common/misc/circbuf.cpp ¶
r39032 r39350 44 44 /** The current read position in the buffer. */ 45 45 size_t offRead; 46 /** Is a read block acquired currently? */ 47 bool fReading; 48 /** Is a write block acquired currently? */ 49 bool fWriting; 46 50 /** The current write position in the buffer. */ 47 51 size_t offWrite; … … 97 101 pBuf->offRead = 0; 98 102 pBuf->offWrite = 0; 99 pBuf->cbUsed = 0; 103 pBuf->cbUsed = 0; 104 pBuf->fReading = false; 105 pBuf->fWriting = false; 100 106 } 101 107 … … 118 124 } 119 125 120 121 126 RTDECL(size_t) RTCircBufSize(PRTCIRCBUF pBuf) 122 127 { … … 127 132 } 128 133 134 RTDECL(bool) RTCircBufIsReading(PRTCIRCBUF pBuf) 135 { 136 /* Validate input. */ 137 AssertPtrReturn(pBuf, 0); 138 139 return ASMAtomicReadBool(&pBuf->fReading); 140 } 141 142 RTDECL(bool) RTCircBufIsWriting(PRTCIRCBUF pBuf) 143 { 144 /* Validate input. */ 145 AssertPtrReturn(pBuf, 0); 146 147 return ASMAtomicReadBool(&pBuf->fWriting); 148 } 129 149 130 150 RTDECL(void) RTCircBufAcquireReadBlock(PRTCIRCBUF pBuf, size_t cbReqSize, void **ppvStart, size_t *pcbSize) … … 152 172 *ppvStart = (char *)pBuf->pvBuf + pBuf->offRead; 153 173 *pcbSize = cbSize; 174 175 ASMAtomicWriteBool(&pBuf->fReading, true); 154 176 } 155 177 } … … 166 188 167 189 ASMAtomicSubZ(&pBuf->cbUsed, cbSize); 190 ASMAtomicWriteBool(&pBuf->fReading, false); 168 191 } 169 192 … … 193 216 *ppvStart = (char*)pBuf->pvBuf + pBuf->offWrite; 194 217 *pcbSize = cbSize; 218 219 ASMAtomicWriteBool(&pBuf->fWriting, true); 195 220 } 196 221 } … … 207 232 208 233 ASMAtomicAddZ(&pBuf->cbUsed, cbSize); 209 } 210 234 ASMAtomicWriteBool(&pBuf->fWriting, false); 235 } 236
Note:
See TracChangeset
for help on using the changeset viewer.