| 94 | } |
| 95 | |
| 96 | uint32_t RingBufferWriteData(RingBuffer *rBuf, const char *buf, uint32_t size) |
| 97 | { |
| 98 | if (size > rBuf->m_size - rBuf->m_fillCount.load() - rBuf->m_backCount.load()) { |
| 99 | return 0; |
| 100 | } |
| 101 | |
| 102 | if (size + rBuf->m_writePtr > rBuf->m_size) { |
| 103 | unsigned int chunk = rBuf->m_size - rBuf->m_writePtr; |
| 104 | memcpy(rBuf->m_buffer + rBuf->m_writePtr, buf, chunk); |
| 105 | memcpy(rBuf->m_buffer, buf + chunk, size - chunk); |
| 106 | rBuf->m_writePtr = size - chunk; |
| 107 | } else { |
| 108 | if ((rBuf->m_buffer + rBuf->m_writePtr) != buf) { |
| 109 | memcpy(rBuf->m_buffer + rBuf->m_writePtr, buf, size); |
| 110 | } |
| 111 | |
| 112 | rBuf->m_writePtr += size; |
| 113 | } |
| 114 | |
| 115 | if (rBuf->m_writePtr == rBuf->m_size) { |
| 116 | rBuf->m_writePtr = 0; |
| 117 | } |
| 118 | |
| 119 | rBuf->m_fillCount += size; |
| 120 | return size; |
| 121 | } |
| 122 | |
| 123 | int32_t RingBufferSkipBytes(RingBuffer *rBuf, int skipSize) |
| 124 | { |
no test coverage detected