ringbuffer: datacount function

This commit is contained in:
Matheus
2023-01-08 19:29:17 -03:00
parent b405e35fe7
commit 6a8abf28a8
2 changed files with 12 additions and 0 deletions
+1
View File
@@ -12,6 +12,7 @@ typedef struct{
} ringbuffer_t;
size_t ringbuffer_datacount(ringbuffer_t* ringubffer);
int ringbuffer_init(ringbuffer_t* ringbuffer, size_t size);
size_t ringbuffer_read(ringbuffer_t* ringbuffer, void* buffer, size_t count);
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count);
+11
View File
@@ -42,6 +42,17 @@ size_t ringbuffer_read(ringbuffer_t* ringbuffer, void* buffer, size_t count){
}
size_t ringbuffer_datacount(ringbuffer_t* ringbuffer){
spinlock_acquire(&ringbuffer->lock);
size_t c = ringbuffer->write - ringbuffer->read;
spinlock_release(&ringbuffer->lock);
return c;
}
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count){
spinlock_acquire(&ringbuffer->lock);