mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
ringbuffer: datacount function
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user